- •1.Трудоемкость алгоритмов
- •2.Алгоритмы сортировки
- •3.Сортировка слиянием
- •4.Бинарные поисковые деревья
- •5.2-3-4 Деревья
- •6.Хеширование
- •7. Поиск подстроки. Алгоритм Кнута-Морриса- Пратта.
- •8. Графы. Структуры данных для представления графов
- •9. Алгоритм нахождения Эйлерова цикла
- •10 .Поиск в ширину(волновой алгоритм)
- •11.Поиск в глубину
- •12.Жадные алгоритмы и матроиды
- •13.Задача об остовном дереве. Алгоритмы Прима и Краскала, их реализация
- •14. Алгоритм Дийкстры
- •15. Алгоритм Флойда
- •16. Паросочетания в двудольных графах
- •17. Потоки и разрезы в сетях. Алгоритм Форда-Фалкерсона
- •18. Задача о рюкзаке
- •21. Классы p и np. Полиномиальное сведение.
- •22. Np- полные задачи. Теорема Кука-Карпа-Левина. Np-полнота задачи о клике
- •23. Алгоритмы с гарантированной оценкой точности. Задача упаковки
- •24.Метод локального поиска и поиска с запретами. Задача о максимальном разрезе.
- •25.Метод ветвей и границ. Задача коммивояжера.
- •26. Задача коммивояжера с неравенством треугольника. Алгоритм Кристофидеса
- •27.Задача о независимом множестве, точные и эвристические алгоритмы ее решения
- •28.Задача о раскраске графа, точные и эвристические алгоритмы ее решения.
- •31.Задача о раскраске хордальных графов
- •32.Генетические алгоритмы
- •33. Page Rank
- •34 Криптосистема с открытым ключом. Криптосистема rsa
- •35.Задача разделения секрета.
- •36. Алгоритмы сжатия информации
35.Задача разделения секрета.
Схема разделения секрета позволяет раздать информацию о сообщении S мн-ву участников таким образом, чтобы заранее заданные разрешённые подмн-ва участников могли однозначно восстановить сообщение S, а неразрешённые не имели такой возможности.
Защищаемое сообщение S – секрет, а мн-во S всех возможных секретов – мн-во секретов.
Сообщение, содержащее частичную информацию о секрете и созданное для индивидуального участника – доля этого участника.
Простейший случай: имеется n участников, любые t из них, собравшись вместе, могут открыть секрет , (t,n)-пороговая система доступа
Пусть t=n.
1) Кодируем секрет как большое натуральное число S. 2) Выбираем n-1 большое случайное число r1,…,rn-1 и выдаем ri в качестве доли i-го участника. 3) В качестве доли n-го участника полагаем rn = s-r1-…-rn-1.
Пусть t<n, тогда – схема Шамира.
Идея: для любых k точек (x1,y1),…,(xk,yk)ÎR2 существует единственный полином q(x)
степени k-1 такой, что q(xi) = yi для всех i=1,…,k.1) Кодируем секрет как большое натуральное число S2) Пусть f(x)=ak-1xk-1+…+a1x + a0, где a0 = s, a1,…,ak-1-случайные числа из интервала (0,p), где p – простое число, существенно большее, чем n и S.3) i-му участнику в качестве его доли выдается пара (xi,yi).
36. Алгоритмы сжатия информации
Имеется файл с данными. Данные представляют собой последовательность символов .Нужно закодировать символы таким образом, чтобы
1) размер файла уменьшился;
2) исходный файл можно было бы восстановить из сжатого
Каждый символ кодируется последовательностью битов (например, ASCII-кодом, в котором каждый символ кодируется 8 битами)
Идея: кодировать символы таким образом, чтобы выполнялось следующее:
чем чаще встречается символ, тем короче его код .
Алгоритм Хаффмана
Пусть имеется файл с размером 100 байт,
состоящий из символов A,B,C,D,E,F.
1)Посчитаем число вхождений каждого символа
A |
B |
C |
D |
E |
F |
10 |
20 |
30 |
5 |
25 |
10 |
2) Отсортируем символы по частоте их вхождений
C |
E |
B |
F |
A |
D |
30 |
25 |
20 |
10 |
10 |
5 |
C |
E |
B |
F |
A |
D |
00 |
10 |
11 |
010 |
0110 |
0111 |
Нужно еще хранить и дерево кодирования!
В дереве 11 вершин, каждая должна содержать указатели на своего правого и левого сына. Каждый указатель – например 4 байта.
Итого получаем 4*11 = 44 байта
100 байт |
74 байт |
|
было |
Стало |
C |
30*8=240 |
30*2=60 |
E |
25*8=240 |
25*2=50 |
B |
20*8=160 |
20*2=40 |
F |
10*8=80 |
10*3=30 |
A |
10*8=80 |
10*4=40 |
D |
5*8=40 |
5*4=20 |
|
800бит=100байт |
240бит=30байт |