Список алгоритмов
1 Тривиальное вычисление y = x
n
mod m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Разумное вычисление y = x
n
mod m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 Вычисление факториала y = n! mod m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4 Алгоритм Евклида . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5 Неэффективный алгоритм для нахождения НОД . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6 Переборный алгоритм для задачи 3 «TSP» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7 Алгоритм Дейкстры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8 Алгоритм Флойда-Уоршолла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
9 Алгоритм Прима . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
10 Сортировка слиянием . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
11 Быстрая сортировка с детерминированным выбором оси . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
12 Быстрая сортировка с вероятностным выбором оси . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
13 Быстрое переполнение памяти в присутствии умножения. . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
14 Простой способ вычисления произведения R
1
· R
2
на RAM. . . . . . . . . . . . . . . . . . . . . . . . . . 25
15 Симулятор работы машины Тьюринга . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
16 Сведение оптимизационных задач к задачам разрешения . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
17 Моделирование перебора недетерминизмом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
18 Жадный алгоритм для задачи 20 «MSSC» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
19 Модифицированный жадный алгоритм для задачи 0-1 РЮКЗАК . . . . . . . . . . . . . . . . . . . . . . . 74
20 Алгоритм нахождения Эйлерова цикла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
21 Простой алгоритм для решения метрической задачи коммивояжера . . . . . . . . . . . . . . . . . . . . . 76
22 Алгоритм Кристофидеса для решения метрической TSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
23 Динамическое программирование для задачи 22«Сумма размеров» . . . . . . . . . . . . . . . . . . . . . 80
24 Динамическое программирование для задачи 0-1 РЮКЗАК . . . . . . . . . . . . . . . . . . . . . . . . . 81
25 Алгоритм Немхаузера-Ульмана для задачи о рюкзаке . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
26 PTAS для задачи 0-1 РЮКЗАК: Общая схема . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
27 PTAS для задачи 0-1 РЮКЗАК: Алгоритмы сложности
n
3
ε
и
n
2
ε
. . . . . . . . . . . . . . . . . . . . . . . 86
28 Динамическое программирование для задачи «Упаковка» . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
29 Приближенный вероятностный алгоритм для задачи 25 (MAX-SAT) на основе линейной релаксации . . 106
30 «SDP-округление MAX-CUT»: вероятностное округление для задачи 28 «MAX-CUT» . . . . . . . . . 109
31 Дерандомизация вероятностного алгоритма 29 «вероятностный MAX-SAT» по методу условных веро-
ятностей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
32 Полиномиальный алгоритм для проверки простоты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
33 Протокол выработки общего секретного ключа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
34 Схема RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
134