Combinatorial Algorithm

Preview:

DESCRIPTION

Э.Рейнгольд, Ю.Нивергельт, Н.ДеоКОМБИНАТОРНЫЕ АЛГОРИТМЫ. ТЕОРИЯ И ПРАКТИКАМ.: Мир, 1980, 476 стр.

Citation preview

Э.Рейнгольд, Ю.Нивергельт, Н.Део КОМБИНАТОРНЫЕ АЛГОРИТМЫ. ТЕОРИЯ И ПРАКТИКА

М.: Мир, 1980, 476 стр. Первые два автора известны советскому читателю по переводу их книги

"Машинный подход к решению математических задач" (М.:Мир, 1977), написанной совместно с Дж.Фарраром. В данной книге предпринята попытка систематизации комбинаторных алгоритмов, выявления их общих черт и закономерностей. Подробно рассматриваются конкретные задачи использования комбинаторных алгоритмов, в частности очень важная для программирования задача сортировки данных. Каждая глава сопровождается достаточно подробной исторической справкой и большим числом упражнений.

Книга будет полезной математикам-прикладникам, аспирантам и студентам, имеющим дело с задачами дискретной математики.

Содержание От редактора перевода 6 Предисловие 7 Глава 1. Что такое комбинаторные вычисления? 11 1.1. Пример. Подсчет числа единиц в двоичном наборе 12 1.2. Проблема представления: коды, сохраняющие разности 17 1.3. Способы композиции 21 1.4. Способы декомпозиции 23 1.5. Классы алгоритмов 26 1.6. Анализ алгоритмов 36 1.7. Комментарии и ссылки 41 1.8. Упражнения 43 Глава 2. Представление комбинаторных объектов 45 2.1. Целые 45 2.2. Последовательности 48

2.2.1. Последовательное распределение 49 2.2.2. Связанное распределение 52 2.2.3. Стеки и очереди 55

2.3. Деревья 58 2.3.1. Представления 60 2.3.2. Прохождения 62 2.3.3. Длина путей 66

2.4. Множества и мультимножества 72 2.5. Комментарии и ссылки 80 2.6. Упражнения 82 Глава 3. Подсчет и оценивание 87 3.1. Асимптотики 88 3.2. Рекуррентные соотношения 94

3.2.1. Линейные рекуррентные соотношения с постоянными коэффициентами

94

3.2.2. Общие рекуррентные соотношения 98

3.3. Производящие функции 103 3.4. Подсчет классов эквивалентности: теорема Пойа 109

3.4.1. Пример: раскраска бинарного дерева 110 3.4.2. Теорема Пойа и лемма Бернсайда 114

3.5. Комментарии и ссылки 118 3.6. Упражнения 119 Глава 4. Исчерпывающий поиск 124 4.1. Поиск с возвращением 124

4.1.1. Общий алгоритм 125 4.1.2. Усовершенствования 128 4.1.3. Оценка сложности выполнения 131 4.1.4. Два способа программирования 133 4.1.5. Пример. Оптимальные коды, сохраняющие разности 136 4.1.6. Метод ветвей и границ 140 4.1.7. Динамическое программирование 150

4.2. Методы решета 153 4.2.1. Нерекурсивное модульное решето 154 4.2.2. Рекурсивное решето 158 4.2.3. Решето, отбраковывающее изоморфные объекты 161

4.3. Приближения исчерпывающего поиска 162 4.4. Комментарии и ссылки 170 4.5. Упражнения 175 Глава 5. Порождение элементарных комбинаторных объектов 182 5.1. Перестановки различных элементов 184

5.1.1. Лексикографический порядок 184 5.1.2. Векторы инверсий 187 5.1.3. Вложенные циклы 189 5.1.4. Транспозиция смежных моментов 191 5.1.5. Случайные перестановки 194

5.2. Подмножества множеств 195 5.2.1. Коды Грея 196 5.2.2. k-подмножества (сочетания) 202

5.3. Композиции и разбиения целых чисел 213 5.3.1. Композиции 213 5.3.2. Разбиения 214

5.4. Комментарии и ссылки 218 5.5. Упражнения 222 Глава 6. Быстрый поиск 226 6.1. Поиск и другие операции над таблицами 226 6.2. Последовательный поиск 230 6.3. Логарифмический поиск в статических таблицах 235

6.3.1. Бинарный поиск 236 6.3.2. Оптимальные деревья бинарного поиска 240 6.3.3. Почти оптимальные деревья бинарного поиска 248

6.3.4. Цифровой поиск 253 6.4. Логарифмический поиск в динамических таблицах 257

6.4.1. Случайные деревья бинарного поиска 258 6.4.2. Бинарные деревья, сбалансированные по высоте 261 6.4.3. Бинарные деревья, сбалансированные по весу 269 6.4.4. Сбалансированные сильно ветвящиеся деревья 277

6.5. Методы вычисления адреса 282 6.5.1. Хеширование и его варианты 283 6.5.2. Хеш-функции 288 6.5.3. Разрешение коллизий 291 6.5.4. Влияние коэффициента загрузки 293

6.6. Комментарии и ссылки 295 6.7. Упражнения 300 Глава 7. Сортировка 307 7.1. Внутренняя сортировка 308

7.1.1. Вставка 312 7.1.2. Обменная сортировка 314 7.1.3. Выбор 321 7.1.4. Распределяющая сортировка 326

7.2. Внешняя сортировка 329 7.3. Частичная сортировка 334

7.3.1. Выбор 335 7.3.2. Слияние 338

7.4. Комментарии и ссылки 341 7.5. Упражнения 344 Глава 8. Алгоритмы на графах 351 8.1. Представления 352 8.2. Связность и расстояние 356

8.2.1. Остовные деревья 357 8.2.2. Поиск в глубину 361 8.2.3. Двусвязность 366 8.2.4. Сильная связность 369 8.2.5. Транзитивное замыкание 374 8.2.6. Кратчайшие пути 377

8.3. Циклы 382 8.3.1. Фундаментальные множества циклов 382 8.3.2. Порождение всех циклов 384

8.4. Клики 389 8.5. Изоморфизм 396 8.6. Планарность 402 8.7. Комментарии и ссылки 424 8.8. Упражнения 433 Глава 9. Эквивалентность некоторых комбинаторных задач 441 9.1. Классы P и NP 441

9.2. NP-трудные и NP-полные задачи 445 9.2.1. Выполнимость 446 9.2.2. Некоторые NP-полные задачи 450 9.2.3. Еще раз о задаче коммивояжера 456

9.3. Комментарии и ссылки 458 9.4. Упражнения 463 Предметный указатель 466

Предметный указатель Алгоритмы ближайшего соседа

163—165, 358—360, 425 - включения ближайшего города

165—170 - Евклида 105 - отыскания (см. также Алгоритм - объединения отыскания) 74 - самого дешевого включения 181 - слияния множеств (см. также

Алгоритмы слияния / объединения) 72—80, 358

- суммирования числа единиц в двоичном наборе 12—17, 24—25, 42

Алгоритмы на графах 352—440 - вершинная база 433 - вершинное множество обратных

связей 440 - гамильтонов цикл 452—456 - двусвязные компоненты 366—369,

426 - доминатор 439 - жадный алгоритм 74, 358, 425 - задача коммивояжера 140—145 - изоморфизм 396—402, 431—432,

459—460 - клика (максимальная) 433, 437, 451 - клики (все) 389—396, 430, 433, 437 - кратчайшие пути 333, 377—382,

428—429, 451, 452 - максимальное независимое

множество вершин 438 - мосты 435 - остовное дерево (минимальное)

357—360, 425, 433—434

- остовные деревья (все) 357—360, 425, 433—434

- планарность 402—424, 433, 438 - поиск в глубину 361—366, 426 - поиск в ширину 377—436 - покрытие вершин 452—453 - поток в сети 439—440, 461 - раскраска 440, 461—462 - реберное множество обратных

связей 440 - связные компоненты 364 - сильно связные компоненты 369—

373, 426, 436 - топологическая сортировка 365—

366, 427, 432 - транзитивное замыкание 374—376,

427—428, 436 - транзитивное сокращение 436 - циклы (все) 384—389, 429, 433, 437 - циклы (фундаментальное

множество) 382—384, 429, 437 - эйлеров путь 439 Анализ - алгоритмов 36—41 - сетей 351, 360 Асимптотики 38—94 Асимптотические ряды 90—91 Асимптотический рост 88, 90—91 Бернсайда лемма 114, 116—117 Беспорядки 224 Боры 255—256, 297, 462 Брат (в дереве) 59 Венок перестановок 224 Вершина (графа) 351 - последователь 354 - предшественник 355

- смежная 356 - соседи 355 Вершинная база 439 Вершинное покрытие 452 Ветви и границы 140—150, 171, 360 Взвешенная длина пути 242, 249—

252 Включение - в бинарные деревья поиска 258 - в боры 258 - в очереди 56—58 - в последовательно размещенные

списки 49—51 - в сбалансированные по весам

бинарные деревья поиска 269—271

- в сбалансированные по высоте бинарные деревья поиска 261—266

- в связные списки 51 - в стеки 51 - в таблицу хеширования 287, 291—

293 - в упорядоченные хеш-таблицы 305 Вложенные циклы (в перестановке)

189—191 Внешние узлы (дерева) 58 Внутренние узлы (дерева) 58 Возвращение 87, 124—153, 168—170,

171, 183, 185, 196, 361, 386, 391 - ветви и границы 140—150, 171, 360 - динамическое программирование

150—153, 172, 243, 437, 442 - использование макрорасширений

133—134, 139, 171 - недетерминированный алгоритм

453, 454, 458 - общий алгоритм 125—128 - оценка сложности выполнения

131—133, 171 - применение к DP- кодам, 1, 135—

140, 171 - усовершенствования 128—131 Вращение 264—265, 274—276

- двойное 264—265, 276—277, 303 Выполнимость 446—450 Высота (дерева) 66 Гамильтонов цикл 452—456 Гармонические числа 93 Грамматический разбор 124 Граф 351 - ациклический 356 - взвешенный 354 - гомеоморфный 438 - двудольный 439 - двусвязный 366—369 - доминатор 439 - дополнение 438 - изолированный 366 - изоморфный 396—398 - Муна — Мозера 390—391, 430 - неориентированный 351 - неразделимый (см. двусвязный) - несвязный 356 - ориентированный 351 - планарный 402 - плотный 354 - подграф 356 - полный 359, 450 - представления 352—355 - простой 351, 354 - разделимый 366 - разреженный 354 - связный 356 - связные компоненты 356 - сильно связные компоненты 356,

369—374, 426, 435 Группа (перестановок) 112—118 Деревья 26—28, 58—72, 357 - бинарного поиска 162, 240—254 - бинарные 54, 107—109 - длина внешних путей 66—72, 239,

298, 311 - длина внутренних путей 66—72,

121—122, 240 - длина максимальная 69—70 - длина минимальная 70—72

- естественное соответствие между бинарными деревьями и лесами 62, 64

- игры 126—149 - корневые 58, 357 - монотонные 249—253, 297 - остовные 357—361, 425—426, 433 - пирамида 250, 322—324 - полностью сбалансированные

бинарные 70, 239 - представления 60—62 - прошитые 84—85 - прохождения 62—66, 126 - пустые бинарные 59 - раскраска узлов 110—116 - расширенные бинарные 68 - расширенные тарные 86 - решений 26—28, 311 - сбалансированные 248—283, 261—

277, 297—298 - сбалансированные по весам 269—

277, 298, 303 - сбалансированные по высоте 261—

269, 298, 303 - сильно ветвящиеся 278—282, 298,

303 - случайные бинарные 249—253,

258—261, 297, 302 - тернарные 27—28 - деревья, 2, 3, 298 Детерминированный алгоритм 453 Дизъюнкт (в булевом выражении)

447 Динамическое программирование

150—153, 437, 442 Дважды связанный список 55 Двойное хеширование 292, 293—295 Естественный порядок (таблицы)

226, 294 Естественное соответствие (между

бинарными деревьями я лесами) 62, 64

Задачи коммивояжера 140—145, 150—153, 162—170, 354, 425, 445, 450, 456—458, 459

- о кёнигсбергских мостах 424 - о назначениях 179 - о потоке 439—440, 461 - о почтовых марках 175 - о расписании занятий 461 - о фальшивой монете 26—36, 43—

44, 58, 71—72 - о ферзях 127—131, 135, 136, 161—

162, 176 - покрытия (паркеты) 175 - составления расписаний 124, 175,

179, 351 - упаковки 179 Закон Зипфа 233, 234, 304 Золотое сечение 95, 156, 263—264 Имена 226 Инверсия (в перестановке) 187 - выбор инверсий 187—188, 219, 223,

315 Индуцированный подграф 356 Информационный поиск 390, 430 Исключение из бинарных деревьев

поиска 259 - из боров 258 - из очередей 56—58 - из последовательно размещенных

списков 49—51 - из сбалансированных сильно

ветвящихся деревьев 277—282 - из сбалансированных по весам

бинарных деревьев поиска 269—271

- из сбалансированных по высоте бинарных деревьев поиска 281—282

- из связанных списков 49—51 - из стеков 51 - из таблицы хеширования 258 - из характеристического вектора 51 Исследование операций 351, 425, 458 Исходные отрезки 329—330, 343

Каскадное слияние 343, 349 Квадратичные вычеты 157 Квадратичные невычеты 157 Китайское кольцо 220 Классы алгоритмов 25—36, 309—310 Клики (в графах) 389 - максимальная клика 433—435 - порождение всех клик 389—396,

430, 433, 437 Ключ 228 Кодирование хеширования (см.

Методы вычисления адреса) 285

Коды Грея 43, 196—202, 220—221, 224—225

- двоично-отраженные 197—198, 221 - порождение 191—202, 205—212 - последовательность прохождения

197—198 Коды оптимальные 20—21, 23, 135—

140, 171 - сохраняющие разности 17, 25, 37—

41, 44, 196 - сложение порогов 22—23 - увеличение ранга 23, 37—38 - цепные 42 Коллизия 285—286 Комбинаторная математика 7, 41 Комбинаторные вычисления 22 Композиции (целых чисел) 213—214,

221—222, 225 Конъюнктивная нормальная форма

447 Корень (дерева) 58—59 Коэффициент загрузки 293—295 Кратчайшие пути (в графе) 377—382,

425, 428—429, 433, 459 - из одной вершины в другую 377—

378 - из одной вершины до всех

остальных вершин 380 - между всеми парами вершин 381—

382 - отрицательные веса 380—381

Крестики-нолики 145—147, 179 Куб Минусинского 177 Кубики сома 176 Куратовского теорема 438 Латинские квадраты 178 Лексикографический порядок в

бинарном дереве (см. также Симметричный порядок прохождения дерева) 64

- перестановок 181, 184—187, 219, 222—223

- разбиений 214—218, 225 - сочетаний 202—204, 221 Лексикографически меньше, чем 161,

184 Лес (= множество деревьев) 59, 62—

66 Линейные рекуррентные

соотношения 94—98 Линейные уравнения 462 Листья (дерева) (см. также Внешние

узлы) 58 Литерал (в булевском выражении)

447 Магические квадраты 177 Макроконструкции в возвращении

133—135, 139, 171 - в порождении перестановок 194,

220, 223 Максимум клик 433, 438, 451 Максимальное независимое

множество вершин 438 Максимальный и максимум 356 Маркова цепи 351 Маршрут коня 153 Массива размещение 49—50, 83 Математическая логика 458 Матрица (см. также Массива

размещение) весов 354 - инциденций 438 - логическое произведение 436 - перемножение 179, 428, 436 - разреженная 84, 462 - NP-полные задачи 462

- связности 374 - соединений (== матрица

смежностей) 353 Методы вычисления адреса 282—299 - исключения Гаусса 462 Монте-Карло (в возвращении) 131—

133, 139, 171, 183 - решета 153—162, 173—174 - квадраты Фибоначчи 156—158, 175 - нерекурсивное модульное решето

154—158 - обобщенное модульное решето 155,

173 - отбраковка изоморфных объектов

161—162, 174 - простые числа 154—155, 158, 180 - рекурсивное решето 158—160 - Эратосфена решето 154—155, 158—

159 - U (последовательность Улама) 160,

174, 180 - цепочек 292—293 Минимум остовных деревьев 357—

361, 433 - покрытий вершин 452 Минимальный и минимум 356 Многопродуктовый поток 461 Многошаговый процесс решения 150 Множество 72 - обратных связей 440, 464 - вершинное 440, 464 - реберное 470 Мост (в графе) 436 Мультимножество 72 Мультипликативные функции

хеширования 290 Начальная ячейка

последовательности 52 Невыполнимость 450 Недетерминированные алгоритмы

453—445, 458 - для выполнимости 448 - для задачи коммивояжера 445 - для поиска с возвращением 458

Неоднородные рекуррентные соотношения 97—98

Несравнимые прямоугольники 175 Неудача (функция) 444 Неустойчивость 98 Нижние границы - алгоритмов выбора 342 - слияния 338—340 - сортировки 309—313 Новое хеширование 287 Нумерация Штралера 69 Обратное ребро 363 Ограничение 129 Однородные рекуррентные

соотношения 94—97 Оптимальность алгоритмов 16—17 Оптимальные боры 462 Оптимальные коды, сохраняющие

разности 20—23, 135—140, 171 Орграф (= ориентированный граф)

351 Ортогональные латинские квадраты

178 Основание системы счисления 46, 49 - двоичной 46, 195 - десятичной 46 - основание r 46 - смешанное 47—48 - с убывающими факториалами 48,

191 - с факториалами 48, 184, 188 - уравновешенной тернарной 83 Отец (в дереве) 59—60 Открытая адресация 291 Отрезки исходные 329—330 Отсечение ветвей 129 Отыскание середины квадрата 290 Очередь 55—58 - последовательная реализация 56—

57 - связанное распределение 57—58 - с двумя концами (=дек) 84 - с приоритетом 84 Ошибка 97

- абсолютная 96 - относительная 97 Паросочетание (в графах) 439 Перестановки 110—118, 182, 184—

195, 218—219 - беспорядки 224 - векторы инверсии 187—188 - венки 224 - группы 112 - лексикографический порядок 181—

187, 222—223 - порядок минимального изменения

191—194, 220, 223 - представление вложенными

циклами 189—194, 219 - представление цикла 112 - случайные 194—195, 220, 223, 224 Петля (в графе) 351 Пирамида 250, 322—324 Пандиагональные магические

квадраты 178 Пентамино 176 Подграфы 356 - изоморфизм 459 - индуцированные 356 - максимальные полные (=клики) 389 - полные 450 Поиск 125—170, 226—295 - быстрый 226—296 - в глубину 134, 366, 426, 761 - в ширину 377, 466 - вычисление адреса (хеширование)

240—253, 258—277, 296—298 - исчерпывающий 170—174 - общий бинарный 236—240, 296, 301 - последовательный 230—235 - приближения 162—170 - самоорганизующиеся файлы 254,

295, 301 - цифровой (боры) 253—257 Поле 228 - INFO 52 - LINK 52 - NAME 241

Полиномиально сводимый 460 Полиномиальный алгоритм 460 Полустепень захода вершины 397 - исхода вершины 397 Понятие « большое», 88—99 - «о-малое» 88—89 Поперечное ребро 370 Порог (кода, сохраняющего

разности) 19 Порождение подмножеств 195—212 - все подмножества 196—202 - сочетания 202—212 Порядок минимального изменения

183 - для перестановок 191—193, 220,

223 - для сочетаний 204—205, 221 Последователь (вершины) 354 Последовательная реализация 56—57 - очередь 56 - последовательности 56—57 - стеки 55 - таблицы 234 Порядок (в дереве) 59 Последовательности (см. также

Связанное распределение) 48—58

- переходов 196 - сумм 180 Поток в сети 425, 439—440, 461 Потомок (в дереве) 59 Правило Де Моргана 447 Программирование линейное 459 - целочисленное 464 Представление комбинаторных

объектов 44—86 - графы 352—356 - деревья 60—62 - леса 60—62 - множества 72—80 - целые 45—48 Представление чисел 46—49 - вычетами 83 - двоичная система 46

- десятичная система 46 - система по основанию r 46—47 - система Фибоначчи 83 - смешанные системы счисления 47 - уравновешенная тернарная система

82 Предшественник (вершины) 355 Преобразование числа в его

представлении в системе счисления 47—48

Преобразуемая (задача) 446, 459 Приближение Стирлинга 93, 120, 311 Приведенные латинские квадраты

178 Прикладные задачи 349, 351 Принцип оптимальности 150 Производящие функции 86, 103—

109, 118, 211 - изменение масштаба 106—107 - линейные операции 104 - свертка 107—109 - сдвиг начала 104—105 - таблица 105 - частичные суммы 106 Пропускная способность 354, 439 Простой путь (в графе) 356 Пространство имен 225 Прохождение дерева в глубину 62—

66, 84, 126 - симметричный порядок 63, 66 - снизу вверх 62, 63, 84 Псевдоквадраты 180 Путь (к орграфе) 356 - простой 356 - цикл 356 Разбиения (множеств) 220, 225 Разбиения (целых чисел) 213—218,

221, 225 - лексикографический порядок 214,

225 - словарный порядок 215—216 - случайные 216—218, 222 Разделяющая вершина (==точка

сочленения) 366

Размещение памяти для массивов 50, 84

- для последовательностей 36—52, 254

- последовательное распределение 49—51, 56—58, 234

- связанное 53—58 Разностные уравнения (рекуррентные

соотношения) 118 Разрез 439 Разреженная матрица 84, 462 Разреженные полиномы 463 Разрешение коллизий 285, 291—293 Ранг (кодов, сохраняющих разности)

19, 37—38, 44 Раскраска 110—114, 440, 461—462 Раскрашиваемость 461—462 Расстояние Хемминга 19 Ребро (графа) 351 Ребро, направленное вперед 370 Рекуррентные соотношения 86, 94—

103, 107—108, 118 - неоднородные 97—98 - однородные 94—95 Ряд Тейлора 103 Сбалансирование 74—77, 249—253,

261—277, 297—298 Сбор мусора 54 Свертка последовательностей 107—

109 Сводимая задача 460 Связанное распределение (см. также Связанный список) 52—55 - очереди 55—58 - последовательности 52—55 - стека 55—58 Связанный список 52—55, 84, 234 Сжатие путей (в алгоритме

объединения/отыскания) 76 Симметрическая разность 383 Симметричный порядок

прохождения дерева 64 Система переписывания 458 Слияние 129, 151, 308, 338—340

- бинарное 338—340, 344, 350 - прямое 338—339, 349 - нижняя граница 339 Сложение порогов (в кодах,

сохраняющих разности) 22—23 Случайные конфигурации

беспорядки 224 - венок перестановок 224 - деревья 250—251, 258—261, 297 - перестановки 194—195, 220, 222—

224 - разбиения (целых чисел) 216—218 - сочетания 209, 220 Смежные вершины 356 Собственный адрес 285 Совершенное распределение (в

многофазном слиянии) 332 Сортировка быстрая 316—321, 344—

350 - внешняя 329—334 - внутренняя 308—329 - вставками 312—314, 344 - выбор с замещением 330 - выбором 321—326 - каскадное слияние 343 - линейный алгоритм выбора 335 - многофазное слияние 332 - наименьшая занумерованная

вершина 404 - нижние оценки 309—312 - обменная 314—321 - перечислением 344 - пирамидальная 324—326, 342 - пузырьковая 314—316 - распределяющая 308, 326—329 - с уменьшающимся шагом

(сортировка Шелла) 344 - слиянием 330—334, 338—340 - топологическая 365—366, 427 - устойчивая 347 - цифровая обменная 346 - цифровая распределяющая 327, 347 - шейкер-сортировка 345 Сосед (вершины) 355

Составное число 363 Список ребер 354 Способы декомпозиции 23—25, 150 - с возвращением 130—131 Способы композиции 21—23 Стек 55—58 Сток 433 Структура смежности 354—355 Счастливые числа 158, 173, 180 Сын (в дереве) 59 Табличный порядок 227 Таблица - динамическая 229, 257 - статическая 229, 235—236 Теорема о максимальном потоке и

минимальном разрезе 440 Теория вероятностей 351 - вычислимости 459 - графов 424—425 - информации 35 - кодирования 296 - перечисления Пойа 117 Точка решетки 225 - сочленения 366 Транзитивное замыкание 374—377,

427, 436 Транзитивное сокращение 436 Транзитивный орграф 436 Транспортные сети 439 Трехсвязность 427 Указатель 228 - FATHER 60 - LEFT 61 - RIGHT 61 Упаковка множества 464 Упорядочение дерева (=техника

перестройки дерева) 130, 141 Упорядоченные прохождения дерева

(см. также Симметричный порядок прохождения дерева) 63

Упорядоченные таблицы хеширования 299, 305

Успех 444

Файл 228 Фибоначчи (= Леонардо из Пизы) 94 - деревья (= наиболее асимметричные

деревья, сбалансированные по высоте) 262—263

- квадраты 156, 157, 173 - поиск 300—301 - числа 94—96, 156, 157, 173 - числовая система 83 Фундаментальное множество циклов

(в графе) 382—386 Функции хеширования 288—291, 299 - метод середины квадрата 290 - методы деления 291 - мультипликативные методы 290 Характеристический вектор

(последовательности) 51—52 Хеширование (см. также Методы

вычисления адреса) 73, 282—288

- середины квадрата 290 Хроматическое число 440 Циклы в графе 356 - в подстановках 112—113 - вложенные в перестановках 189—

191 - порождение всех циклов в графе

384—389, 429, 433, 437 - фундаментальное множество 382—

386, 429 Числа Спрэга 180 Эйлера постоянная 93, 217, 424, 438 Эйлеров путь 439 Эратосфена решето 154—155, 158 \alpha-отсечение 147 \alpha-\beta-отсечение 145—150, 172,

179 В-деревья {см. Сильно ветвящиеся

деревья) 278—282, 298, 303 \beta-отсечение 147 DFS-дерево 363—364 DP-t-код (см. также Коды,

сохраняющие разности) 49

\varepsilon-субоптимальность 457—458

get-cell 54 H(D_i, D_j) = Хеммингово

расстояние между двоичными последовательностями D_i и D_j, т. е. число разрядов, в которых они различаются 19

\mathcal{H}(p_ n\ge, \ldots, p_n, энтропия, =, \sum\limits_{i=1}^n, p_i\lgp_i, для, 1, 2, 35

\mathcal{H}(\alpha) - частный случай энтропии =-\alpha\lg\alpha-( \alpha, \lg, \alpha, 1, 1, 272

H_n-n -е гармоническое число =\sum\limits_{i= 1}^n, 1/i=\lnn+o, 1, 93

ILLIAC I 42 k-выполнимость 448 K-подмножества (сочетания) 202—

212, 220 - лексикографический порядок 202—

204, 220 - порядок минимального изменения

204—212 - случайные K-множества 212, 220 \Lambda(пустой указатель) 53 lg* (повторный логарифм по

основанию 2, 77 lowlink (v) 373 lowpt (v) 367—368 Maniac II 343 NP 441 NP-полные задачи вершинное

множество обратных связей 464 - вершинное покрытие 452 - выполнимость 446, 459 - выполнимость, 3, 448, 459 - гамильтонов цикл 453—454 - изоморфизм подграфов 459 - матричные задачи 462 - многопродуктовый поток 461 - полный подграф 450—451

- построение бора раскрашиваемость 461—462

- реберное множество обратных связей 464

- составление расписания 461 - упаковка множеств 464 - целочисленное программирование

464 NP-трудные задачи задача

коммивояжера 456—458, 464—465

- максимум клик 451 - минимальное покрытие вершин 452 - разреженные полиномы 463

NP-трудный 445 nexlopt (v) 404 num (v) 363 overflow 56 P 441 Padj (v) 406 Pr(x} (вероятность события х) 148 rand (k, l) 194 выполнимость, 3, 448 U (= последовательность Улама) 160 underflow 57 WB (\alpha) 270 Y-пентамино 177

Recommended