Книга
Книга
ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ И ТРУДНОРЕШАЕМЫЕ ЗАДАЧИ
М.: Мир, 1982
Монография американских ученых, посвященная вопросам сложности решения комбинаторных задач, возникающих в дискретной оптимизации, математическом программировании, алгебре, теории чисел, теории автоматов, математической логике, теории множеств, теории графов и т.п. Книга отличается строгим и систематическим изложением теории, в приложении содержится более 300 труднорешаемых задач из различных разделов математики.
Для математиков-прикладников, аспирантов и студентов университетов.
Содержание
От редактора перевода5
Предисловие10
Вычислительные машины, сложность и труднорешаемые задачи13
Введение13
Задачи, алгоритмы и сложность16
Полиномиальные алгоритмы и труднорешаемые задачи19
Задачи, труднорешаемость которых доказуема25
NP-полные задачи26
О содержании книги28
Теория NP-полных задач31
Задачи распознавания, языки и кодирование31
Детерминированные машины Тьюринга и класс Р38
Недетерминированное вычисление и класс NP43
Взаимоотношения между классами Р и NP49
Полиномиальная сводимость и NP-полные задачи51
Теорема Кука56
Доказательство результатов об NP-полноте64
Шесть основных NP-полных задач64
3-выполнимость67
Трехмерное сочетание69
Вершинное покрытие и Клика73
Гамильтонов цикл77
Разбиение81
Некоторые методы доказательства NP-полноты84
Сужение задачи85
Локальная замена88
Построение компонент96
Упражнения99
Применение теории NP-полноты для анализа задач102
Анализ подзадач105
Задачи с числовыми параметрами и сильная NP-полнота117
Некоторые дополнительные определения119
Доказательство результатов о сильной NP-полноте123
4.3. Временная сложность как функция натуральных параметров
136
5. NP-трудные задачи
139
5.1. Сводимость по Тьюрингу и NP-трудные задачи
139
5.2. Историческая справка
150
6. Подходы к решению NP-полных задач
154
6.1. Оценки погрешности приближенных алгоритмов
156
6.2. Применение теории NP-полноты к отысканию приближенных
174
решений
6.3 Оценки погрешности и поведение алгоритмов «на практике»
189
7. За пределами класса NP-полных задач
192
7.1. Структура класса NP
192
7.2. Полиномиальная иерархия
201
7.3. Сложность задач перечисления
208
7.4. Полнота с полиномиально ограниченной памятью
212
7.5. Логарифмическая память
220
7.6. Доказательства труднорешаемости и взаимоотношения между Р и NP
225
А. Приложение. Список NP-полных задач
232
А1. Теория графов
235
А1.1. Покрытие и разбиение
235
А1.2. Подграфы и надграфы
242
А1.3. Упорядочение вершин
249
А1.4 Морфизмы и изоморфизмы
252
А1.5. Разное
254
А2. Построение сетей
258
А2.1. Остовные деревья
258
А2.2. Разрезы и связность
263
А2.3. Задачи о маршрутах
266
А2.4. Потоковые задачи
270
А2.5. Разное
275
A3. Множества и разбиения
279
А3.1. Покрытие, представители к расщепление
279
А3.2. Задачи о множествах с взвешенными элементами
282
А4. Хранение и поиск данных
286
А4.1. Хранение данных
286
А4.2. Сжатие и представление информации
289
А4.3. Задачи о базах данных
295
А5. Задачи теории расписаний
300
А5.1. Задачи составления расписания в случае одного
300
А5.2. Многопроцессорные расписания для параллельных процессоров
304
А5.3. Многопроцессорные расписания конвейерного типа
308
А5.4. Разные задачи
311
А6. Математическое программирование
313
А7. Алгебра и теория чисел
318
А7.1. Задачи о делимости
318
А7.2. Разрешимость уравнений
321
А7.3. Разное
323
А8. Игры и головоломки
325
А9. Логика
332
А9.1. Пропозициональная логика
332
А9.2. Разное
336
А10. Теория автоматов и языков
339
А10.1. Теория автоматов
339
А10.2. Формальные языки
343
A11. Оптимизация программ
349
А11.1 Генерация кода программы
349
А11.2. Программы и схемы
364
А12. Разное
369
А13. Открытые задачи
367
Литература
374
Предметный указатель
411
Предметный указатель
Алгоритм 17
Вполне полиномиальная
- «в наилучший из подходящих» (best
приближенная схема 173
fit) 159
Временная сложность алгоритма
- «в первый подходящий» (first fit)
(time complexity function) 18,
157
137
в порядке убывания 160
«жадный» (greedy) 171
недетерминированный 44
полиномиальный 19
приближенный 156
псевдополиномиальный (pseudo polynomial time algorithm) 121
эвристический 155
экспоненциальный 19
Алфавит 18, 33
Асимптотическая погрешность алгоритма (asymptotic performance ratio) 162
Бандерснечи 13
БУЛЕВСКИЕ ФОРМУЛЫ С
КВАНТОРАМИ (БФК) 213
Быстродействие ЭВМ 19
Величина решения (solution value) 156
ВЕРШИННОЕ ПОКРЫТИЕ (ВП)(vertex cover) 65, 74
- НДМТ-программы 48
Входная длина задачи (input length)
18
Выигрыш форсированный (forced win) 215
ВЫПОЛНИМОСТЬ (ВЫП) 56—57 выполнимость, вып, 3, 3, 65, 67 ВЫЧИСЛЕНИЕ СЕМЕЙСТВА
(ensemble computation) 88
ГАМИЛЬТОНОВ ПУТЬ (Path) 81
ЦИКЛ (ГЦ) (circuit) 53, 66, 77
Граф ориентированный (directed) 81
планарный 113
ДЕЛИМОСТЬ НА ЧЕТЫРЕ 41
Дерево 135
ДЕРЕВО ШТЕЙНЕРА 100
Детерминированная одноленточная
машина Тьюринга, или ДМТ 38
Дизъюнкция (clause) 56
Длина решения задачи (solution length) 25
ДОМИНИРУЮЩЕЕ МНОЖЕСТВО 100
ДМТ [см. Детерминированная одноленточная машина Тьюринга] 38
программа 38—40
- линейно ограниченная (linear bounded) 218
- полиномиальная 42
ДОСТРОЙКА МАРШРУТА КОММИВОЯЖЕРА (ДМК) (extension) 147
ЕДИНИЧНАЯ РЕЗОЛЮЦИЯ (unit resolution) 223
Задача (problem) 16
выполнимости (satisfiability) 27
индивидуальная (instance) 16
комбинаторная оптимизационная 156
массовая 16
перечисления (enumeration) 209
распознавания свойств (decision problem) 27, 31—32
с числовыми параметрами (number problem) 122
труднорешаемая (intractable) 21
Игры комбинаторные (combinatorial games) 215
Иерархия полиномиальная 203
ИЗОМОРФИЗМ ГРАФОВ 194
ПОДГРАФУ 32, 43, 86
ПОДЛЕСУ (subforest) 135
Изоморфность языков полиномиальная 200
Индивидуальная задача (instance) 16, 139
Класс 220
DLOG-SPACE 220
EXP-SPACE 228
EXP-TIME 228
KP 210
КР-полных задач (Р-complete) 210
NEXP-SPACE 229
NEXP-T 1me, 228
NLOQ-SPACE 225
NP 27, 28, 45, 48
NP-полных задач (NPC) 45
NPI 193
NP-SPACE 219
Р 42
P-SPACE 213
P-SPACE — полных задач 23 КЛИКА 65, 242
МАКСИМАЛЬНОГО РАЗМЕРА
(maximum size clique) 205 КОММИВОЯЖЕР (KM) 32, 43—44 Композиция графов 181 КРАТЧАЙШИЙ ПУТЬ МЕЖДУ
ДВУМЯ ВЕРШИНАМИ 112
Кука теорема 57
Лес (forest) 134
ЛИНЕЙНАЯ ДЕЛИМОСТЬ 200 ЛИНЕЙНОЕ
ПРОГРАММИРОВАНИЕ 194
Логарифмическая память 220 Локальная замена (local replacement) 88
Максимальная полиномиально
разрешимая подзадача 108 МАКСИМАЛЬНЫЙ РАЗРЕЗ
(maximum cut) 113
Машина недетерминированная 26, 46 - Тьюринга 24, 46
Минимальная NP-полная подзадача 108
Минимальное остовное дерево
(spanning tree) 165
МИНИМАЛЬНОЕ ПОКРЫТИЕ 86
ЭКВИВАЛЕНТНОЕ ВЫРАЖЕНИЕ 201
МИНИМАЛЬНЫЙ НАБОР ТЕСТОВ 95
ЭКВИВАЛЕНТНЫЙ
ОРИЕНТИРОВАННЫЙ ГРАФ
112
МИНИМУМ СУММЫ КВАДРАТОВ 99
МНОЖЕСТВО ВЕРШИН, РАЗРЕЗАЮЩИХ КОНТУРЫ (feedback vertex set) 100
ПРЕДСТАВИТЕЛЕЙ (hitting set) 86
Мультираскраска графа 182
Набор значений истинности (truth assignment) 56
НАИБОЛЬШИЙ ОБЩИЙ ПОДГРАФ 99
НДМТ-программа 46
Недетерминированная машина 26 - одноленточная машина Тьюринга, или НДМТ 46
оракульная машина Тьюринга, или НОМТ 202
НЕЗАВИСИМОЕ МНОЖЕСТВО 74
Неразрешимая задача (undecidable) 25
НЕУНИВЕРСАЛЬНОСТЬ РЕГУЛЯРНОГО ВЫРАЖЕНИЯ 217
НЕЭКВИВАЛЕНТНОСТЬ РЕГУЛЯРНОГО ВЫРАЖЕНИЯ, НЕ СОДЕРЖАЩЕГО ЗВЕЗДОЧЕК 100
ЦЕЛОЧИСЛЕННЫХ ВЫРАЖЕНИЙ 207
НУМЕРАЦИЯ ГРАФА ПО ГРУНДИ 101
ОБОБЩЕННЫЙ ГЕКС (generalized Hex) 216
ОМТ-программа 144
Оптимальное решение задачи 156
Оракульная машина Тьюринга, или
ОМТ (oracle) 141
Остовное дерево (spanning tree) 86, 165, 258
ОСТОВНОЕ ДЕРЕВО ОГРАНИЧЕННОЙ СТЕПЕНИ 86
Отношение Rм (relation) 198
Параметр 16
числовой 122
Паросочетание (matching) 167, 169
максимальное 169
Переборная задача (search problem)
139
Погрешность алгоритма (performance ratio) 162
Подзадача (subproblem) 105
Покрытие множества (cover) 86
Полиномиальная ДМТ-программа 42
ОМТ-программа 144
память (space) 212
схема 173
сводимость (polynomial transformation) 51—52
Полиномиально эквивалентны
(polynomialy related) 35
Построение компоненты (component
design) 84, 96
Правильно построенное слово
(structured string) 36
Принимаемое программой слово
(accepted) 39
ПРИНЯТИЕ С ЛИНЕЙНОЙ
ПАМЯТЬЮ 218
Программа ДМТ (DTM) 38
НДМТ (NDTM) 46
Псевдополиномиальная сводимость
(pseudo-polynomial
transformation) 130
Псевдополиномиальный алгоритм 121
РАЗБИЕНИЕ (partition) 66, 81
НА ГАМИЛЬТОНОВЫ
ПОДГРАФЫ 99
- ПУТИ ДЛИНЫ 2, 100
- ТРЕУГОЛЬНИКИ 90—91
разбиение, 3, 124
разбиение, 4, 125
Размер задачи (size) 17—18
РАЗМЕР МИНИМАЛЬНОГО
ЭКВИВАЛЕНТНОГО
ВЫРАЖЕНИЯ 205
РАСКРАШИВАЕМОСТЬ ГРАФА В colorability, цвета, 3, 3, 101, 110, 182
РАСПИСАНИЕ ДЛЯ МУЛЬТИПРОЦЕССОРНОЙ СИСТЕМЫ 87
- ОБРАТНОГО ДЕРЕВА ЗАДАНИЙ 112
- ПРЯМОГО ДЕРЕВА ЗАДАНИЙ 112
С ОТНОШЕНИЕМ ПРЕДШЕСТВОВАНИЯ (precedence constrained scheduling) 107
Распознавание языка (recognition)
РАСЩЕПЛЕНИЕ МНОЖЕСТВА (splitting) 100
РЕБЕРНОЕ ПОКРЫТИЕ (edge cover) 112
Регулярное выражение 217
Релятивизация 230
Решение задачи алгоритмом
(solution) 17
РЮКЗАК (knapsack) 87, 171
САМЫЙ ДЛИННЫЙ ПУТЬ 99, 112
Сводимость консервативная (parsimonious transformation) 210
по Куку 150
полиномиальная 51—52
по Тьюрингу 141
псевдополиномиальная 130
log-space 222
Y(v-reducibility) 198
Словарное отношение (string relation) 140
Слово алфавита (string) 33
- — правильно построенное (structured) 36
Сложность алгоритма временная (time complexity function) 18, 137
СОСТАВНЫЕ ЧИСЛА (composite numbers) 194
Степень вершины графа (degree) 110
Сужение задачи (restriction) 85
Схема кодирования (encoding
scheme) 18
приближенная 173
- «разумная» 24, 34, 36
Теория графов 110
ТОЧНОЕ ПОКРЫТИЕ множествами, тп, 3, 3, 73
- множествами, 4, 100
ТРАНЗИТИВНАЯ РЕДУКЦИЯ 112
ТРЕХМЕРНОЕ СОЧЕТАНИЕ ( с, 3,
70
Угадывающее устройство (guessine
device) 47
Упаковка в контейнеры 157
УПАКОВКА МНОЖЕСТВ 99
УПОРЯДОЧЕНИЕ ВНУТРИ
ИНТЕРВАЛОВ (sequencing within intervals) 93
С МИНИМАЛЬНЫМ
ЗАПАЗДЫВАНИЕМ (tardiness) 97
Управляющее устройство ДМТ (finite state control) 38
Функция, конструируемая по
времени (time constructible) 227
- по памяти (space constructible) 227
Цепочка символов (string) 18
Цикл простой в графе (simple circuit) 53
Числовой параметр (number) 122
Читающая/пишущая головка ДМТ 38
Эвристический алгоритм 155
Эйлеров граф 166
маршрут (tour) 166
Эквивалентность полиномиальная 35
Язык в алфавите 33—34
контекстно-зависимый (contextsensitive) 220
распознаваемый программой 39, 47
рекурсивный 193
log-space-полный 223
NP-полный 55
\gamma-полный 199
DLB-автомат детерминированный
линейно ограниченный 220
GA-алгоритм 171
К-е ПО ПОРЯДКУ
ПОДМНОЖЕСТВО (K-th
largest set subset) 145
КР-полная задача (#Р-complete) 210
Length [I] 35, 119
Max [I] 119—120
ММ-алгоритм 167—168
MST-алгоритм 166
NLB-автомат (недетерминированный
линейно ограниченный) 220
NN-алгоритм 163—164
NP-легкая задача (easy) 149
NP-полная задача 27, 45, 48, 51
- в сильном смысле 123
NP-трудная задача (hard) 145
NP-эквивалентная задача 149
P-space-полная задача 213
ОТ РЕДАКТОРА ПЕРЕВОДА
Математике всегда было присуще стремление разрабатывать эффективные методы решения как можно более широких классов задач. Многолетний опыт развития теории дискретных и комбинаторных задач и практика их решения показали, что эти две стороны — общность метода и его эффективность — находятся в известном антагонизме. Вместе с тем, очень важно знать, и в особенности это касается задач дискретной математики, можно ли в принципе надеяться на создание достаточно общих и эффективных методов или надо сознательно идти по пути разбиения задач на все более узкие классы и, пользуясь их спецификой разрабатывать для них эффективные (хорошие) алгоритмы.
Неудачи, постигшие исследователей на этом пути, привели к необходимости анализа сложности задач. На наших глазах возникло новое и интенсивно развивающееся “сложностное” направление исследований. Число публикаций в этой области быстро растет, так что появление настоящей книги, посвященной вопросам сложности дискретных и комбинаторных задач, вполне закономерно. Проблематика эта весьма актуальна, поскольку такие задачи часто возникают на практике (в экономике, технике, военном деле, в исследовании операций и т. д.), а их решение средствами ЭВМ наталкивается на трудности, связанные с большими затратами машинного времени и памяти.
Предисловие авторов и вводная глава, где обсуждается содержание книги, позволяют читателю ознакомиться (на интуитивном уровне) с основными идеями, понятиями и вопросами, освещаемыми в книге. Поэтому мы, не повторяясь, заострим внимание читателя на некоторых принципиальных вопросах.
Большинство дискретных и комбинаторных задач, вообще говоря, допускает решение с помощью некоторого процесса перебора. Так, например, булевскую задачу о рюкзаке вида
п
У atxt = b, х, = 0,1
<-i
можно решить, перебирая булевские n-мерные векторы (варианты). Такие задачи называются переборными. Однако число шагов переборного метода растет экспоненциально в зависимости от размеров задачи. Для некоторых задач этого типа удается построить эффективные (существенно менее трудоемкие.
чем полный перебор вариантов) методы решения, (это удается сделать например, для решения в Z" систем линейных уравнений с целыми коэффициентами для потоковых задач, для нахождения паросочетаний в графе и т. д.). Однако, число таких задач невелико.
Анализ трудностей, встретившихся на пути создания эффективных методов решения дискретных задач, привел к постановке центральной теоретико-методологической проблемы всей дискретной математики — можно ли исключить перебор при решении дискретных задач? Другими словами, речь идет о принципиальной возможности найти нужное решение (например, оптимальное), не перебирая всех или почти всех вариантов в задаче. Эта проблема имеет не только чисто математическое, но и глубокое познавательное значение. Оно заключается в том, что при поиске эффективных точных методов решения широкого класса дискретных задач надо учитывать возможность отсутствия таких методов и, следовательно, уметь вовремя ограничить “аппетит”, признав что существуют “труднорешаемые задачи”. До настоящего времени эта проблема остается открытой.
Феномен труднорешаемых задач не нов для математики. После уточнения понятия алгоритма было обнаружено наличие алгоритмически неразрешимых проблем. В качестве наиболее известного примера укажем десятую проблему Гильберта: “Существует ли алгоритм, который по данному многочлену р(хь ..., хп) с целыми коэффициентами распознает, имеет ли уравнение р = 0 решение в целых числах”. Как показал Ю. В. Матиясевич [376], такого алгоритма в принципе не существует.
В переборных задачах, как правило, имеется конечное множество вариантов, среди которых нужно найти решение. Так, в задаче о рюкзаке решение отыскивается среди 2” булевских векторов длины п, и перебрав это экспоненциальное множество векторов, мы обязательно решим задачу. Но с ростом п число векторов быстро растет и задача становится “труднорешаемой”, т. е. практически неразрешимой. Поэтому в конечной области аналогом алгоритмической неразрешимости является перебор экспоненциального числа вариантов, а аналогом алгоритмической разрешимости — существование алгоритма существенно более экономичного, чем перебор. Стало общепринятым считать переборную задачу решаемой эффективно, если имеется алгоритм, решающий ее за время, ограниченное полиномом от “размера задачи”.
В настоящей книге систематически излагается концепция эффективной (полиномиальной) сводимости переборных задач, развитая в работах С. Кука [91], Р. Карпа [280], Л. Левина
[340], а также освещаются более поздние результаты в этой области. Роль основного инструмента здесь играет понятие сводимости задач, возникшее в математической логике. Говорят, что переборная задача П1 сводится к переборной задаче П2, если метод решения задачи П2 можно преобразовать в метод решения задачи Пь Сводимость называется полиномиальной, если подобное преобразование можно осуществить за полиномиальное время. Главными объектами теории являются: класс NP всех переборных задач и класс Р переборных задач, разрешимых за полиномиальное время на машине Тьюринга. Очевидно, что Р = NP. Центральным в теории сводимости является вопрос о том, совпадают ли классы Р и NP — такова математическая формулировка проблемы элиминации перебора.
В классе NP выявлены так называемые универсальные (или NP-полные) задачи, к которым полиномиально сводится любая задача из NP. В этом смысле универсальные задачи как бы дают эталон сложности. В настоящее время установлена универсальность многих задач, эквивалентных между собой относительно полиномиальной сводимости. В книге приведено много примеров NP-полных задач. Если бы удалось доказать, что хотя бы какая-то одна NP-полная задача принадлежит классу Р, то тем самым было бы доказано, что Р = NP, и можно было бы в принципе надеяться на построение эффективных алгоритмов для различных классов дискретных задач. Если же классы Р и NP различны, то придется разрабатывать эффективные алгоритмы для все более узких классов задач. Однако возможна и такая ситуация, что гипотезу Р N= NP (принимаемую многими математиками) нельзя ни доказать, ни опровергнуть (аналогично кон- тинуум-гипотезе).
Большой практический опыт решения дискретных задач дает основание считать, что NP-полные задачи и задачи из Р сильно отличаются по трудоемкости решения, но в строгом смысле до сих пор это различие и, следовательно, различие между классами Р и NP не доказано. Это, в частности, объясняется тем, что классы Р и NP определяются с помощью понятия времени работы вычислительного устройства с потенциально неограниченной памятью. Однако хорошо известно, что время выполнения алгоритма на машине плохо поддается описанию и анализу общематематическими средствами. Следует отметить, что еще в 1965 г. Кобхэм [80] попытался описать сложность вычисления функций внутренним образом, в рамках последовательности алгебраических операций, порождающих эти функции. К сожалению, эта работа оказалась в тени, поскольку в то время не было еще теории сводимости переборных задач.
Излагаемая в книге и ставшая уже классической теория полиномиальной сводимости была построена для задач
распознавания свойств. Оказывается, можно построить аналогичную теорию (полиномиальной) сводимости для экстремальных дискретных задач [16*, 31*, 32*]. Более того, при построении указанной теории можно не пользоваться моделью вычислительного устройства, т. е. сделать ее машинно независимой, а все изложение вести в терминах вычислимых операторов над функциями [16*, 21*, 22*].
Книга Гэри и Джонсона — это, насколько нам известно, первая монография по теории полиномиальной сводимости дискретных задач. В ней систематически изложен материал, разбросанный по журнальным статьям и отчетам. Авторы не ограничились описанием концепции Кука — Карпа — Левина, а дополнили ее новыми вопросами, в том числе своими собственными результатами. Особый интерес в этом смысле представляют гл. 6—7, где собран большой теоретический материал по новым направлениям исследований и намечаются “точки роста” теории. О разнообразии и богатстве материала этих глав свидетельствует краткий перечень вопросов, освещаемых в них: оценки алгоритмов, их отклонения от оптимума, оценки в худшем случае и в среднем для различных классов задач; структура класса NP, существование в NP труднорешаемых задач, отличных от NP-полных; полиномиальная по сложности иерархия задач; сложность задач определения числа решений без их предъявления; различные типы вычислительных ресурсов, используемых при решении задач; взаимосвязь между сложностью по времени и сложностью по памяти; задачи с логарифмической памятью, сводимость с логарифмической памятью; доказательства труднорешаемости задач.
Книга содержит поистине уникальное приложение—в нем собрано более 300 задач из различных областей науки: теории графов, математического программирования, теории расписаний, теории языков и автоматов, математической логики, и отдельно— открытых задач. Здесь для каждой задачи, помимо основной формулировки и источника, приводится комментарий, включающий сводку результатов о задаче и ее модификациях (с указанием авторов), а также смежные вопросы. Все это делает приложение исключительно ценным справочным пособием.
В конце книги дана обширная библиография — около 600 работ. Мы сочли целесообразным несколько расширить библиографический список, добавив ряд работ — либо вышедших позже, либо оказавшихся вне поля зрения авторов. Эти работы дают представление о новых направлениях исследований и результатах в рассматриваемой области. (Добавленные при переводе работы сведены в отдельный список и их номера помечены звездочкой.)
Книга хорошо написана и читается достаточно легко, хотя новизна материала и, как следствие, не вполне установившаяся терминология затрудняли работу переводчиков и редактора. Неудивительно, что при большой насыщенности и разнообразии материала в книге обнаружились некоторые неточности, погрешности, опечатки, которые переводчики и редактор постарались устранить путем введения соответствующих примечаний или небольшого исправления авторского текста.
Книга предназначена для математиков, а также для всех, кто интересуется дискретными и комбинаторными задачами и их приложениями. Она отражает новое направление в развитии теории дискретных и комбинаторных задач. Внимательный читатель найдет в ней новый взгляд на дискретные задачи, свежие идеи, подходы, много открытых вопросов, порождающих и стимулирующих интерес к самостоятельной творческой работе.
В заключение хочется поблагодарить Ю. И. Хмелевского, М. Р. Когаловского, В. П. Гришухина, А. Л. Семенова, С. Г. Влэ- дуца, А. Б. Ароновича за помощь в работе над переводом книги: их замечания и советы помогли устранить ряд неточностей и способствовали улучшению качества перевода.
Л. Фридман
ПРЕДИСЛОВИЕ
Найдется немного научных терминов, так быстро завоевавших широкую известность, как понятие “NP-полная задача". За короткий отрезок времени с момента возникновения этого понятия в начале 70-х годов оно стало символом громадных трудностей, с которыми все чаще приходится сталкиваться разработчикам алгоритмов по мере того, как они берутся за решение задач постоянно возрастающей размерности и усложняющейся структуры. Многочисленные и разнообразные задачи, часто встречающиеся в математике, теоретическом программировании и исследовании операций, оказались NP-полными, и список таких задач пополняется почти ежедневно. NP-полные задачи настолько широко распространены, что для всех, кто в своей работе соприкасается с вычислительными аспектами указанных областей, очень важно понимать смысл и значение этого понятия.
Настоящая книга задумана как подробное руководство по теории NP-полных задач; здесь особое внимание уделено тем понятиям и приемам, которые представляются наиболее полезными для применения теории к практическим задачам. Книгу можно условно разбить на три части.
В первой части (гл. 1—5) изложены основы теории NP-полных задач. Гл. 1 представляет собой сравнительно элементарное введение в некоторые центральные понятия вычислительной сложности, и в этом контексте обсуждается значение NP-полных задач. В гл. 2—5 подробно изложены определения и методы доказательства, необходимые для того, чтобы глубже понять теорию и научиться ею пользоваться на практике.
Во второй части (гл. 6 и 7) дан обзор двух альтернативных направлений дальнейшего изучения. В гл. 6 внимание сосредоточено на поиске эффективных “приближенных" алгоритмов решения NP-полных задач, т. е. области, тесно связанной с теорией NP-полноты. В гл. 7 обсуждаются многочисленные теоретические вопросы сложности вычислений, многие из которых возникли в результате развития теории NP-полных задач, изложенной в предыдущих главах. Обе эти главы (особенно гл. 7) следует рассматривать исключительно как введение в соответствующие области. Читателю, желающему более детально ознакомиться с теми или иными вопросами, следует обратиться к указанной нами литературе. ■
Третья, заключительная часть книги — приложение. В нем содержится большой список NP-полных и NP-трудных задач (более 300 основных задач и большое число относящихся к ним результатов). В примечаниях к задачам обсуждаются известные результаты, касающиеся сложности подзадач и различных модификаций основной задачи.
Книгой можно пользоваться как вспомогательным материалом к курсам по построению алгоритмов, вычислительной сложности, исследованию операций или комбинаторной математике. С нее можно, например, начинать семинар по приближенным алгоритмам или вычислительной сложности для студентов старших курсов и аспирантов. Один из авторов книги (Д. Джонсон), использовал первоначальный вариант книги в качестве основы семинара аспирантов по приближенным алгоритмам. При этом гл. 1—5 были пройдены за 5 недель, а изучение гл. 6 сопровождалось широким привлечением материала, указанного в библиографическом списке. Семинар по теории сложности можно организовать аналогичным образом, приняв в качестве основы для изучения литературы гл. 7 вместо гл. 6. Эти главы можно также изучать и одновременно, на “комбинированных” семинарских занятиях.
В более общем смысле книга может служить как учебником для читателя, интересующегося теорией NP-полных задач, так и справочником для исследователя и практика, сталкивающегося с алгоритмами и их сложностью. К изучению NP-полных задач, приведенных в приложе.нии, читатель может приступить сразу, даже не прочитав основного материала книги, — для этого требуется лишь знакомство с основными понятиями теории NP-полных задач. Начинающие могут достичь такого знакомства, если бегло прочтут гл. 1—5, концентрируя внимание на неформальных обсуждениях определений и методов и обращаясь к формальным рассуждениям только тогда, когда это необходимо для полной ясности. Чтобы этой книгой можно было пользоваться как справочником, в предметный указатель включено большое число терминов, а в обширной библиографии приведены номера разделов книги, в которых упоминаются соответствующие работы.
Мы признательны многим людям, помогавшим нам в работе над книгой. X. Габов, Л. Лэндвебер и Р. Тарьян ознакомились с первоначальным ее вариантом и исходя из своего опыта внесли ценные предложения. А. Ахо, Ш. Ивен, Р. Грэхем, Г. Хант, В. Кли, А. Мейер, К. Пападимитриу, Г. Поллак, С. Сахни, Р. Сефи, Л. Стокмейер и Дж. Ульман прочли рукопись всей книги или ее отдельных частей и сделали конструктивные замечания. Мы не смогли бы здесь перечислить всех исследователей, которые откликнулись на нашу просьбу присылать
результаты об NP-полноте задач и помогли нам составить обширный список NP-полных задач. Их имена можно найти в библиографии. Несколько наших коллег по Bell Laboratories, особенно Б. Керниган, оказали нам неоценимую помощь при машинном наборе книги с помощью вычислительной системы UNIXR. Наконец, хотелось бы особенно отметить Ж. Рейнболд, которая превратила наши рукописные иероглифы в безупречные полиграфические данные, чем существенно способствовала созданию этой книги.
Муррей Хилл, Нью Джерси, октябрь, 1978Муррей Хилл, Нью Джерси, октябрь, 1978Майкл Р. Гэри
Муррей Хилл, Нью Джерси, октябрь, 1978
Муррей Хилл, Нью Джерси, октябрь, 1978
Дэвид С. Джонсон
Вычислительные машины, сложностьи труднорешаемые задачи
ВВЕДЕНИЕ
Охарактеризовать предмет этой книги, пожалуй, лучше всего можно на таком несколько экстравагантном примере.
Представьте себе, что вы, как и авторы книги, занимаетесь исследовательской работой в одной из отраслей промышленности. Однажды шеф вызывает вас к себе в кабинет и доверительно сообщает, что компания собирается приступить к производству и продаже “бандерснечей” ) в условиях жесткой конкуренции. По этой причине нужен хороший метод, выявляющий возможность (или невозможность) создания новых изделий — узлов бандерснеча с заданными техническими характеристиками, причем этот метод должен выдавать ответ для любого заданного набора технических характеристик. Кроме того, в случае положительного ответа требуется представить проект соответствующего бандерснеча. Так как вы отвечаете за разработку алгоритмов в фирме, то вам и предстоит отыскать требуемый метод и построить соответствующий эффективный алгоритм.
Получив в Отделе бандерснечей необходимые разъяснения по постановке задачи, вы спешите в свой кабинет, запасаетесь справочниками и с большим энтузиазмом погружаетесь в решение задачи. Спустя несколько недель кабинет завален грудами скомканных черновиков, а ваш энтузиазм заметно поубавился. Вам все еще не удалось придумать алгоритма существенно лучшего, чем перебор всех возможных вариантов. За подобное решение вы едва ли удостоитесь похвалы шефа, поскольку перебор всех вариантов только для одного набора технических характеристик потребует нескольких лет машинного времени, а в Отделе бандерснечей уже по тринадцати узлам бандерснеча наблюдается отставание от намеченного графика. Естественно, что у вас нет желания возвращаться в кабинет шефа со словами:
“Я не могу найти эффективного алгоритма, боюсь, что я для этого слишком туп”.
Для вашего положения в компании было бы гораздо лучше, если бы вы смогли доказать, что поставленная задача в принципе труднорешаема и что ни один алгоритм вообще не в состоянии решить ее быстро. В этом случае вы могли бы уверенно шагнуть в кабинет шефа и заявить:
“Я не могу найти эффективного алгоритма, потому что такого алгоритма не существует!”
К сожалению, доказать, что задача труднорешаема, может быть, не менее трудно, чем найти эффективные алгоритмы. Даже выдающиеся теоретики оказывались беспомощными в попытках получить подобное доказательство для часто встречающихся трудных задач. Тем не менее эта книга поможет вам найти достойный выход из положения. Теория NP-полных задач предлагает много простых методов доказательства того, что та или иная конкретная задача столь же трудна, как и большое
число других задач, признанных очень трудными и уже много лет не поддающихся усилиям специалистов.
Взяв на вооружение эти методы, вы могли бы доказать NP- полноту задачи о бандерснече и таким образом установить ее эквивалентность всем другим трудным задачам этого класса. В этом случае можно было бы смело отправиться к шефу и сообщить:
“Я не могу найти эффективного алгоритма, но этого не может сделать и никто из этих знаменитостей".
Во всяком случае, ваше начальство будет знать, что нет смысла увольнять вас и брать на работу другого специалиста по алгоритмам.
Разумеется, наше собственное начальство вряд ли одобрило бы написание этой книги, если бы ее единственной целью было защитить разработчиков алгоритмов. На самом деле выявление NP-полноты— это обычно лишь начало работы над задачей. Проблемы отдела бандерснечей не исчезнут сразу лишь потому, что поставленная задача оказалась NP-полной. Однако знание этого факта действительно дает ценную информацию о том, какие подходы к ее решению окажутся наиболее перспективными.
Очевидно, что в этом случае не следует делать ставку на поиски эффективного точного алгоритма. Лучше сосредоточить свое внимание на иных, более скромных подходах. Например, вы могли бы начать разработку эффективных алгоритмов, позволяющих решать различные частные случаи поставленной
общей задачи. Можно было бы заняться отысканием алгоритмов, хотя и не гарантирующих быстрого решения, однако работающих быстро в большинстве случаев. Наконец, можно даже ослабить некоторым образом постановку задачи и искать быстрый алгоритм проектирования бандерснечей, у которого заданным требованиям удовлетворяет большая часть характеристик. Короче говоря, основное предназначение теории NP-полных задач состоит в том, чтобы помочь разработчикам алгоритмов и направить их усилия на выбор таких подходов к решению задач, которые, вероятнее всего, приведут к практически полезным алгоритмам.
В первой главе настоящего “руководства" по теории NP- полных задач мы введем многие основные понятия, рассмотрим их применимость (а также выскажем некоторые предостережения) и охарактеризуем содержание остальной части книги.
ЗАДАЧИ, АЛГОРИТМЫ И СЛОЖНОСТЬ
Для того чтобы в дальнейшем изучать такие понятия, как “труднорешаемые задачи" и “эквивалентные по сложности задачи", необходимо сначала договориться о значении нескольких основных терминов.
Начнем с понятия задачи. Под массовой задачей (или просто задачей) мы будем понимать некоторый общий вопрос, на который следует дать ответ. Обычно задача содержит несколько параметров, или свободных переменных, конкретные значения которых не определены. Задача П определяется следующей информацией:
общим списком всех ее параметров,
формулировкой тех свойств, которым должен удовлетворять ответ или, другими словами, решение задачи.
Индивидуальная задача I получается из массовой задачи П, если всем параметрам задачи П присвоить конкретные значения.
В качестве примера рассмотрим классическую задачу о коммивояжере. Параметры этой массовой задачи состоят из конечного набора “городов" С = {ci, с2, ..., ст} и расстояний d(.Ci, с,) между каждой парой городов a, Cj из С. Решение — это такой упорядоченный набор <ся(1), сЛ(2), •••, сЛ(т)> заданных городов, который минимизирует величину
tn-1
X ^(Ся(0> Ся (<+!)) +^(Ся(т)» Ся(1))- 1 = 1
Это выражение дает длину маршрута, начинающегося в городе ся(1), проходящего последовательно через все города и возвращающегося в ся(1) непосредственно из последнего города ся^_
Индивидуальная задача о коммивояжере, показанная на рис. 1.1, задается следующим образом:
С = {сь с2, с3, с4}, d(cb с2)=10, d(cb с3) = 5,
d = (сь с4) = 9, d (с2, с3) = 6, d (с2, с4) = 9, d (с3, с4) = 3.
Последовательность <сь с2, с4, с3> представляет собой решение задачи, поскольку соответствующий маршрут имеет минимальную возможную длину, равную 27.
Под алгоритмом будем понимать общую, выполняемую шаг за шагом процедуру решения задачи. Для определенности мы
Рис. 1.1. Индивидуальная задача о коммивояжере и маршрут минимальной возможной длины, равной 27.Рис. 1.1. Индивидуальная задача о коммивояжере и маршрут минимальной возможной длины, равной 27.можем считать ее программой для ЭВМ, написанной на формальном машинном языке. Будем говорить, чго алгоритм решает массовую задачу П, если он применим к любой индивидуальной задаче I из П и обязательно дает решение задачи /. Подчеркнем, что термин “решение" понимается здесь строго в соответствии с данным выше определением. Поэтому, в частности, нельзя сказать, что алгоритм “решает" задачу о
Рис. 1.1. Индивидуальная задача о коммивояжере и маршрут минимальной возможной длины, равной 27.
Рис. 1.1. Индивидуальная задача о коммивояжере и маршрут минимальной возможной длины, равной 27.
коммивояжере, если он не
выдаст маршрут минимальной длины хотя бы для какой-то одной индивидуальной задачи.
Вообще говоря, нам нужен наиболее “эффективный" алгоритм для решения задачи. В самом широком смысле понятие эффективности связано со всеми вычислительными ресурсами, необходимыми для работы алгоритма. Однако обычно под “самым эффективным" алгоритмом понимается самый быстрый. Поскольку ограничения по времени часто являются доминирующим фактором, определяющим пригодность конкретного алго
ритма для практики, основное внимание мы сосредоточим главным образом на этом виде ресурсов.
Время работы алгоритма удобно выражать в виде функции от одной переменной, характеризующей «размер» индивидуальной задачи, т. е. объем входных данных, требуемых для описания этой задачи. Такой подход удобен, поскольку в дальнейшем сравнительная сложность задач будет оцениваться через их размеры. Часто размер задачи измеряется неформально. В задаче о коммивояжере, например, для этой цели обычно используется
число городов. Однако в задаче с m городами кроме номеров этих городов на объем входной информации влияют также m^m—1)/2 величин, определяющих расстояния между городами, и значения этих величин. Если нам предстоит иметь дело с временными характеристиками в точной математической постановке, то мы должны так определить размер задачи, чтобы все эти факторы были учтены.
Для этого обратим внимание на то, что описание индивидуальной задачи, которое мы даем в терминах входа для ЭВМ, можно рассматривать как одну конечную цепочку (или слово) символов, выбранных из конечного входного алфавита. Невзирая на то что существуют различные пути описания данной индивидуальной задачи, предположим, что заранее выбран некоторый определенный способ и что с каждой массовой задачей связана некоторая фискированная схема кодирования, которая отображает индивидуальные задачи в соответствующие цепочки символов. Входная длина индивидуальной задачи / из П определяется как число символов в цепочке, полученной применением к задаче / схемы кодирования для массовой задачи П. Именно это число, т. е. входная длина, и используется в качестве формальной характеристики размера индивидуальной задачи.
Например, различные конкретные задачи о коммивояжере можно описать с помощью алфавита (с, [,],/, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, при этом предыдущий пример будет закодирован в виде такой цепочки символов:
с [1] с [2] с [3] с [41//10/5/9//6/9//3
Более сложные индивидуальные задачи кодируются аналогичным образом. При такой кодирующей схеме для задачи о коммивояжере входная длина в нашем примере будет равна 32.
Временная сложность алгоритма отражет требующиеся для его работы затраты времени. Это функция, которая каждой входной длине п ставит в соответствие максимальное (по всем индивидуальным задачам длины п) время, затрачиваемое алгоритмом на решение индивидуальных задач этой длины.
Естественно, что эта функция не будет полностью определена до тех пор, пока не зафиксирована схема кодирования, определяющая входную длину индивидуальной задачи, и не выбрано вычислительное устройство (или его модель), определяющее время работы. Однако, как будет видно из дальнейшего, подобные детали окажут незначительное влияние на различия между классами, возникающими в теории NP-полных задач. Поэтому в дальнейшем читателю рекомендуется зафиксировать мысленно какую-либо конкретную схему кодирования для каждой задачи, рыбрать некоторое конкретное вычисли-
тельное устройство или его модель и рассматривать затем временную сложность алгоритмов в соответствии с получающимися входными длинами и соответствующими затратами времени.
ПОЛИНОМИАЛЬНЫЕ АЛГОРИТМЫИ ТРУДНОРЕШАЕМЫЕ ЗАДАЧИ
Разные алгоритмы имеют различную временную сложность, и выяснение того, какие алгоритмы “достаточно эффективны", а какие “совершенно неэффективны", всегда будет зависеть от конкретной ситуации. Однако теоретики, занимающиеся разработкой и анализом алгоритмов, предлагают для сравнения эффективности алгоритмов один простой подход, позволяющий существенно прояснить ситуацию. Речь идет о различии между полиномиальными и экспоненциальными алгоритмами.
Будем говорить, что функция f(n) есть O(g(n)), если существует константа с, такая, что |f(n) | ^ c|g(n) | для всех значений п ^ 0. Полиномиальным алгоритмом (или алгоритмом полиномиальной временной сложности) называется алгоритм, у которого временная сложность равна О^р^п)), где р^п)— некоторая полиномиальная функция, а п — входная длина. Алгоритмы, временная сложность которых не поддается подобной оценке, называются “экспоненциальными" (следует отметить, что это определение включает и такие функции, как n'ogn,— хотя они и не являются полиномиальными, но обычно не считаются экспоненциальными).
Различие между двумя указанными типами алгоритмов становится особенно заметным при решении задач большого размера. Таблица на рис. 1.2 позволяет сравнить скорости роста нескольких типичных полиномиальных и экспоненциальных функций. (Обратите внимание на чрезвычайно быстрый рост двух приведенных экспонент.)
Различие между полиномиальными и экспоненциальными алгоритмами проявляется еще более убедительно, если проанализировать влияние увеличения быстродействия ЭВМ на время работы алгоритмов. Рис. 1.3 показывает, насколько увеличатся размеры задач, решаемых за один час машинного времени, если благодаря совершенствованию технологии быстродействие ЭВМ возрастет в 100 или 1000 раз по сравнению с современными машинами. Заметим, что для функции f(/i) = 2” увеличение скорости вычислений в 1000 раз приводит лишь к тому, что размер наибольшей задачи, разрешимой за один час, возрастет только на 10, в то время как для функции f(n) = п5 этот размер возрастет почти в 4 раза.
Размер п
Функция Временной сложности
10
20
30
40
50
60
п
0,00001 сек
0,00002 сек
0,00003 сек
0,00004 сек
0,00005 сек
0,00006 сек
п1
0,0001 сек
0,0004 сек
0,0009 сек
0,0016 сек
0,0025 сек
0,0036 сек
п3
0,001 сек
0,008 сек
0,027 сек
0,064 сек
0,125 сек
0,216 сек
п5
0,1 сек
3,2 сек
24,3 сек
1,7 мин
5,2 мин
13,0 мин
2я
0,001 сек
1.0 сек
17,9 мин
12,7 дней
35,7 лет
366 столетий
3я
0,059 сек
58 мин
6,5 лет
3855 столетий
2x10* столетий
1,Зх1О13 столетий
Рис. 1.2. Сравнение нескольких полиномиальных и экспоненциальных функ-ций временной сложности.
Размеры наибольшей задачи, разрешимой за один час
Функция Временной сложности
На современных ЭВМ
На ЭВМ, В 100 раз болев быстрых
На ЭВН.В 1000раз болев быстрых
п
Nt
100 Nx
1000 Nx
п1
Ni
10 мг
31,6 Nt
п1
Ns
4,64 N3
10W3
п5
Na
2,5 N<
3,98 N,
2”
NS
NS + 6M
Ns + W7
3я
Ne
N6 + 4,19
Ne + 6,29
Рис. 1.3. Влияние технического совершенствования ЭВМ на полиномиаль-ные и экспоненциальные алгоритмы.
Эти таблицы демонстрируют некоторые причины, по которым полиномиальные алгоритмы обычно считаются более предпочтительными по сравнению с экспоненциальными. Эта точка зрения, различающая, с одной стороны, полиномиальные алгоритмы, а с другой стороны, экспоненциальные, является отправным пунктом в нашем определении труднорешаемых задач и теории NP-полных задач.
Основополагающий характер различия между этими двумя классами впервые обсуждался в работах Кобхэма [80] и Эдмондса [106]. В частности, Эдмондс отождествлял полиномиальные алгоритмы с “хорошими” алгоритмами и высказал предположение, что некоторые задачи целочисленного программирования невозможно решить такими “хорошими" алгоритмами. Согласно такой точке зрения, экспоненциальные алгоритмы не следует считать “хорошими", и чаще всего так оно и есть.
Большинство экспоненциальных алгоритмов — это просто варианты полного перебора, в то время как полиномиальные алгоритмы обычно можно построить лишь тогда, когда удается более глубоко проникнуть в суть решаемой задачи. Имеется широко распространенное соглашение, согласно которому задача не считается “хорошо решаемой” до тех пор, пока для нее не получен полиномиальный алгоритм. Поэтому мы будем называть задачу труднорешаемой, если для ее решения не существует полиномиального алгоритма.
Конечно, это формальное определение следует рассматривать только как одну из возможных трактовок понятия “труднорешаемая задача”. Различие между “эффективными" (полиномиальными) алгоритмами и “неэффективными" (экспоненциальными) алгоритмами может принять совсем иной характер, когда размеры решаемых задач невелики. Даже на рис. 1.2 функция f(n)=2" ведет себя лучше, чем f(n) = n® при п ^ 20. Можно легко построить еще более яркие примеры
Более того, известны некоторые экспоненциальные алгоритмы, весьма хорошо зарекомендовавшие себя на практике. Дело в том, что временная сложность определена нами как мера поведения алгоритма в наихудшем случае, и тот факт, что какой-то алгоритм имеет временную сложность порядка 2", означает только, что решение по крайней мере одной индивидуальной задачи размера п требует времени порядка 2”. На самом деле может оказаться, что большинство индивидуальных задач требует для своего решения значительно меньших затрат времени, и такого рода ситуация действительно имеет место для нескольких хорошо известных алгоритмов. Например, как было установлено в работах Кли и Минти [291], а также Заде [544], симплекс-метод для решения задач линейного программирования
имеет экспоненциальную временную сложность1), но в то же время многочисленные свидетельства подтверждают, что этот метод хорошо работает на практике. Другой пример: алгоритмы ветвей и границ столь успешно решают задачу о рюкзаке, что многие исследователи считают эту задачу “хорошо решаемой’’, хотя алгоритмы ветвей и границ имеют экспоненциальную временную сложность.
К сожалению, подобные примеры очень редки. Хотя экспоненциальные алгоритмы известны для многих задач, немногие из них считаются приемлемыми для практических целей. Даже при наличии успешно работающих экспоненциальных алгоритмов, упомянутых выше, исследователи не отказались от попыток найти для соответствующих задач полиномиальные алгоритмы. В действительности сам факт успешного применения экспоненциальных алгоритмов давал основание предположить, что они каким-то образом выявляют некоторые существенные особенности решаемых задач и что более глубокое их исследование может привести к дальнейшему улучшению методов. В настоящее время пока не получено удовлетворительных объяснений, почему эти алгоритмы работают успешно, и не известны методы, позволяющие заранее прогнозировать хорошую работу того или иного экспоненциального алгоритма в практической ситуации.
С другой стороны, полиномиальные алгоритмы часто позволяют делать такого рода прогнозы, поскольку полиномиальные функции значительно более адекватно оценивают время работы алгоритмов. Хотя алгоритмы, имеющие временную сложность типа п100 или 10"п2, не могут считаться эффективными с практической точки зрения, естественно возникающие “полиномиальные" задачи обычно требуют для своего решения (в самом худшем случае) времени порядка п2 или и3, причем коэффициенты при старших членах полиномов не слишком велики. Алгоритмы, обладающие такими оценками, можно считать “эффективными", и именно это весьма желательное свойство заставляет отдавать предпочтение полиномиальным алгоритмам как средству решения задач.
Наше определение “труднорешаемой задачи” создает базу для теории, обладающей значительной общностью и большими возможностями. Понятие труднорешаемой задачи оказывается, по существу, независимым от конкретной схемы кодирования и модели ЭВМ, используемых при определении временной сложности.
Рассмотрим сначала схемы кодирования. Предположим, например, что решаемая задача определена на графе G = (V, Е), где V — множество вершин, Е — множество ребер и каждое ребро понимается как неупорядоченная пара вершин. Условия этой задачи могут быть описаны (см. рис. 1.4) либо просто
Схема кодирования
Депочка символов (слово)
Длина
Списки Вершин и ребер
Vil] V[2] V [3] V[4] (V[1]V[2]) (V[2]V[31)
36
Список соседей
(V[2))(V[1]V[3])(V[2))()
24
Строки матрицы инциденций
0100/1010/0010/0000
19
Рис. 1.4. Описания графа G = (V, £), где V = (о,, о2, о3, щ}, £ = {{«,. и2}. (и2, ГзП. при трех разных схемах кодирования.
списками всех вершин и ребер, либо с помощью матрицы инциденций графа, либо составлением для каждого узла списка всех узлов, имеющих с данным общее ребро (“списки соседей”). Эти схемы кодирования для одного и того же графа могут дать входы разной длины. Однако легко проверить (см. рис. 1.5), что
Схема кодирования
Нижняя оценка
Верхняя оценка
Списки вершини ребер
4v + 10е
4v + 10е + (v + 2е)-[logic т]
Список соседей
2v + Зе
2v + 8е + 2e-[logi0v]
Матрица инциденций
V2 + v — 1
V1 +;р - 1
Рис. 1.5. Общие оценки длины входа для трех схем кодирования графа G = (V, £), представленных на рис. 1.4, где [У| = о, |5| = е. Поскольку е < о’, эти оценки показывают, что длины входа отличаются друг от друга не более чем полиномиальным образом ([х] обозначает наименьшее целое число, не меньшее, чем х).
получаемые входы отличаются друг от друга не более чем “полиномиальным образом”, т. е. любой алгоритм, имеющий полиномиальную временную сложность при одной из этих схем кодирования, будет также обладать полиномиальной временной сложностью при всех остальных схемах.
В действительности стандартные схемы кодирования, используемые на практике для любой конкретной задачи, по-видимому, всегда будут отличаться друг от друга не более чем полиномиальным образом. Было бы трудно представить себе разумную схему кодирования для какой-либо задачи, которая
отличалась бы более чем полиномиальным образом от стандартных схем. Хотя мы не можем формально выразить такое понятие, как “разумная схема кодирования", следующие два условия охватывают важные требования, связанные с этим понятием:
код любой индивидуальной задачи / должен быть “сжатым", т. е. не содержать избыточной информации или символов;
числа, входящие в условия задачи /, должны быть представлены в двоичной системе счисления (или десятичной, или восьмеричной, или иметь любое другое основание, но только не 1).
Если мы ограничимся рассмотрением только тех схем кодирования, которые удовлетворяют этим условиям, то выяснение вопроса, является ли данная задача труднорешаемой, не будет зависеть от выбора конкретной схемы кодирования.
Моделируема* машина В
Мелирующая машина А
1МТ
КИТ
мпд
Машина Тьюринга с 1 лентой (1МТ)
Q(T(n))
O(T(n)logT(n))
фашина Тьюринга с к лентами (.кМТ)
О(ТЧп))
O(r(n)]ggr(n))
Машина произвольного доступа (МПД)
о(т3М)
ОСГЧп»
—
Рис. 1. 6. Время, требуемое машиной А для моделирования работы алгоритма сложности Т (п) на машине В (например, см. [9, 215]).
Аналогичные замечания можно сделать относительно выбора модели ЭВМ. Все известные в настоящее время реалистические модели ЭВМ (например, одноленточные и многоленточные машины Тьюринга, машины с произвольным доступом к памяти) эквивалентны относительно полиномиальной временной сложности (см. рис. 1.6). Можно ожидать, что и любая иная “разумная" модель ЭВМ будет эквивалентна по сложности всем перечисленным моделям.
Под словами “разумная модель" здесь главным образом имеется в виду то, что объем работы, выполняемой машиной в единицу времени, ограничен (сверху) полиномом. Так, например, модель, обладающая способностью выполнять параллельно произвольно много операций, не будет считаться “разумной”, и в действительности ни одна из существующих (или проектируемых) ЭВМ не обладает подобным свойством. Во всяком случае, если ограничиться рассмотрением стандартных моделей реальных ЭВМ, то класс труднорешаемых задач не будет зависеть от
выбора конкретной модели, и такой выбор можно осуществлять, исходя из интересов дела и не уменьшая при этом сферы применимости наших результатов.
1.4. ЗАДАЧИ, ТРУДНОРЕШАЕМОСТЬ КОТОРЫХДОКАЗУЕМА
После того как мы обсудили формальное содержание поня тия “труднорешаемая задача’’, уместно дать краткий обзор современного состояния наших знаний о существовании труднорешаемых задач.
Сначала охарактеризуем различия между двумя аспектами труднорешаемости, которые отражены в нашем определении Первый аспект, который обычно имеется в виду, состоит в том, что для отыскания решения требуется экспоненциальное время. Второй заключается в том, что искомое решение настолько велико, что не может быть представлено в виде выражения, длина которого была бы ограничена полиномом от длины входа.
Вторая ситуация возникает, например, если в задаче о коммивояжере в качестве дополнительного параметра фигурирует число В и требуется найти все маршруты длины, не превосходящей В. Легко построить индивидуальную задачу о коммивояжере, в которой имеется экспоненциальное число маршрутов длины, не превосходящей В, поэтому не существует алгоритма с полиномиальной временной сложностью, который все их перечисляет.
Труднорешаемостью этого вида нельзя ни в коем случае пренебрегать, и очень важно ее своевременно обнаружить. В большинстве случаев, однако, ее наличие ясно из постановки задачи. Этот аспект труднорешаемости обычно можно рассматривать как указание на то, что постановка задачи не реалистична, поскольку мы запрашиваем больше информации, чем когда- либо сможем использовать. В связи с этим с настоящего момента и до конца книги мы будем рассматривать только первый тип труднорешаемости. А именно будут изучаться только такие задачи, длина решения которых ограничена полиномиальной функцией от длины входной информации.
Первые результаты о труднорешаемости задач — классические результаты о неразрешимости — были получены А. Тьюрингом. Около 40 лет назад Тьюринг доказал, что некоторые задачи даже “неразрешимы” в том смысле, что вообще не существует алгоритма их решения. Он доказал, например, что невозможно указать алгоритм, который по произвольной программе определял бы, остановится ли эта программа на произвольно заданном входе или нет [517]. Известно большое число других неразрешимых задач. К ним относятся, в частности, задача
выяснения тривиальности конечно-порожденных групп [440], десятая проблема Гильберта (разрешимость в целых числах полиномиальных уравнений) [376], а также несколько задач о покрытии плоскости равными областями [36]. Поскольку эти задачи не могут быть решены никаким алгоритмом, то тем более они не разрешимы и полиномиальным алгоритмом и, значит, действительно труднорешаемы в самом сильном смысле.
Первые примеры труднорешаемых “разрешимых" задач были получены в начале 60-х годов, как один из результатов работы Хартманиса и Стирнза [204] по “иерархиям" сложности. Однако эти примеры включали только “искусственные” задачи, специально построенные, чтобы обладать соответствующими свойствами. Только в начале 70-х годов Мейеру и Сток- мейеру [384], Фишеру и Рабину [122] и нескольким другим авторам удалось показать, что некоторые “естественные” разрешимые задачи труднорешаемы.
В число этих задач вошло большое число изучавшихся ранее задач из теории автоматов, формальной теории языков и математической логики. На самом деле было показано, что эти задачи не могут быть решены за полиномиальное время даже с помощью "недетерминированного” вычислительного устройства, обладающего способностью параллельно выполнять неограниченное количество независимых вычислений. В дальнейшем будет видно, что эта “нереалистичная” модель вычислительного устройства играет важную роль в теории NP-полных задач, а ее возможности будут очерчены более полно в гл. 2.
Все известные в настоящее время задачи, труднорешаемость которых доказана, попадают в один из перечисленных классов: они либо вовсе неразрешимы, либо труднорешаемы недетерминированной машиной. Однако большинство представляющихся труднорешаемыми практических задач в действительности разрешимы и, более того, могут быть решены за полиномиальное время с помощью недетерминированного вычислительного устройства. Таким образом, известные методы недостаточно сильны, чтобы установить труднорешаемость этих задач.
1.6. NP-ПОЛНЫЕ ЗАДАЧИ
Пока теоретики продолжают поиск более мощных методов доказательства труднорешаемости задач, параллельно ведутся работы по сравнению сложности различных задач. Как уже было сказано ранее, обнаружение таких взаимосвязей между задачами часто может дать разработчику алгоритмов полезную информацию.
Основной метод, используемый для доказательства того, что две задачи близки, состоит в “сведении” их друг к другу с по-
мощью конструктивного преобразования, которое отображает любую индивидуальную задачу первого типа в эквивалентную ей индивидуальную задачу второго типа. Такое преобразование позволяет превратить любой алгоритм решения второй задачи в соответствующий алгоритм решения первой задачи.
Много простых примеров подобной сводимости известно уже давно. Например, Данциг [99] свел несколько комбинаторных задач оптимизации к общей задаче 0-1 целочисленного программирования. Эдмондс [105] свел задачи из теории графов — “найти минимальное вершинное покрытие графа” и “найти минимальное независимое множество вершин графа" — к задаче “о покрытии". Джимпел [173] свел задачу о покрытии к задаче о “покрытии простыми импликантами” из теории релейно-контактных схем. Данциг, Блаттнер и Рао [100] дали описание хорошо известной сводимости задачи о коммивояжере к задаче о кратчайшем пути, в которой допускаются ребра отрицательной длины.
Эти первые сводимости, хотя и были изолированы и относились к узкому кругу задач, предвосхитили дух результатов, которые доказываются в теории NP-полных задач.
Фундамент теории NP-полных задач был заложен в работе С. Кука, опубликованной в 1971 г. под названием “Сложность процедур вывода теорем" [91]. В этой короткой, но элегантной работе Кук получил несколько важных результатов.
Во-первых, он подчеркнул важность понятия “сводимость за полиномиальное время", т. е. сводимость, которая выполняется с помощью алгоритма с полиномиальной временной сложностью. Если одна задача сводится за полиномиальное время к другой, то любой полиномиальный алгоритм решения второй задачи может быть превращен в полиномиальный алгоритм решения первой.
Во-вторых, он обратил внимание на класс задач распознавания свойств (класс NP), которые могут быть решены за полиномиальное время на недетерминированном вычислительном устройстве. (Задачей распознавания свойств называется задача, решениями которой могут быть либо “да”, либо “нет".) Большинство не поддающихся решению задач, которые встречаются на практике, после переформулировки их в виде задач распознавания попадают в этот класс.
В-третьих, С. Кук доказал, что одна конкретная задача из NP, называемая задачей о выполнимости, обладает тем свойством, что всякая другая задача из класса NP может быть сведена к ней за полиномиальное время1). Таким образом, если задача о выполнимости может быть решена за полиномиальное
•) Такие задачи называют также «универсальными». — Прим. ред.
время, то и любая задача из класса NP полиномиально разрешима, а если какая-то задача из NP труднорешаема, то и задача о выполнимости также должна быть труднорешаемой. Таким образом, в некотором смысле задача о выполнимости — “самая трудная” в классе NP.
Наконец, С. Кук предположил, что и другие задачи из класса NP могут быть, аналогично задаче о выполнимости, самыми ‘"трудными” представителями класса NP. Он показал это для следующей задачи: “Содержит ли заданный граф G полный подграф с заданным числом вершин?"
Вслед за этим Р. Карп опубликовал ряд результатов [280], из которых следует, что многие хорошо известные комбинаторные задачи, включая задачу о коммивояжере, будучи сформулированы в виде задачи распознавания, столь же “трудны”, как задача о выполнимости. Позднее относительно широкого круга других задач было доказано, что они по трудности эквивалентны этим задачам, а сам класс эквивалентности, состоящий из “самых трудных" задач из NP, получил название “класс NP-полных задач'* *).
Оригинальные идеи Кука оказались удивительно плодотворными. Они позволили свести много разнообразных вопросов о сложности в единый вопрос: “Верно ли, что NP-полные задачи труднорешаемы?’’ Список, включенный в приложение к настоящей книге, содержит сотни различных задач, NP-полнота которых уже установлена. По мере того как все больше и больше задач, представляющих интерес с разных точек зрения, попадают в этот класс эквивалентности, его важность постоянно возрастает.
Вопрос о том, действительно ли NP-полные задачи труднорешаемы, в настоящее время считается одним из основных открытых вопросов современной математики и теоретической кибернетики. Вопреки готовности большинства специалистов считать, что все NP-полные задачи труднорешаемы, прогресс как в доказательстве, так и в опровержении этого далеко идущего предположения весьма незначителен. Однако, несмотря на отсутствие доказательства того, что из NP-полноты следует труд- норешаемость, NP-полнота задачи означает, что для ее решения полиномиальным алгоритмом требуется по крайней мере крупное открытие.
О СОДЕРЖАНИИ КНИГИ
Хотя эта книга задумана прежде всего как руководство, помогающее выяснить, является ли NP-полной та или иная конкретная задача (либо посредством отыскания ее в приложении,
Часто его называют «класс универсальных задач», — Прим. ред.
либо путем самостоятельного доказательства), в ней также обсуждаются различные возможности решения NP-полных задач. Ниже приводится краткий обзор содержания книги.
В гл. 2 изложены формальные основы теории NP-полных задач и доказывается теорема Кука. Здесь определяются цен-' тральные понятия теории NP-полных задач — “язык" и “машина Тьюринга" и указывается их связь с понятиями “задача" и “модель вычислительного устройства", которые обсуждались выше. Эта глава должна познакомить читателя с техникой рас- суждений, применяемых в теории NP-полных задач.
Гл. 3 посвящена методам доказательства NP-полноты различных задач. Большое число примеров иллюстрирует структуру этих методов и поясняет, какой из них следует выбрать в каждом конкретном случае. По существу, доказательство NP-полноты задачи состоит в полиномиальном сведении к ней известной NP-полной задачи. В этой главе также дается обзор наиболее подходящих для этой цели NP-полных задач и демонстрируется их применение.
В гл. 4 изучаются подходы, с помощью которых теорией NP-полных задач можно пользоваться для более тщательного анализа сложности задачи, для поиска “границы” между полиномиально разрешимыми случаями задачи и NP-пол- ными.
В гл. 5 показано, как методы, применяемые для доказательства NP-полноты, можно перенести на задачи другого типа, с целью доказать, что они “столь же трудны”, как NP-полные задачи. Чтобы помочь читателю разобраться в литературе по теории NP-полных задач, мы также приводим краткий исторический обзор развития основных идей и изменений в терминологии.
В гл. 6 обсуждаются различные подходы к работе с труднорешаемыми задачами, особенно метод отыскания почти оптимальных решений с помощью быстрых алгоритмов. Приводятся примеры, демонстрирующие достоинства и недостатки этих методов, а также иллюстрируется применение теории NP-полных задач в этой области.
Гл. 7 имеет целью познакомить читателя с некоторыми теоретическими результатами и идеями, возникшими параллельно с теорией NP-полных задач. Обсуждаются следующие вопросы: полиномиальная иерархия, теория КР-полных задач, полнота в классе задач, распознаваемых с полиномиальной памятью, и “релятивизация” проблемы труднорешаемости NP-полных задач.
Последнюю треть книги составляет приложение, в которое включено большое число NP-полных или более сложных задач, с соответствующими примечаниями. В списке задач выделены
разделы, где собраны задачи из определенных областей, например теории графов, теории расписаний, алгебры и теории чисел, теории покрытий и разбиений, математического программирования, теории языков и автоматов, и самые разные задачи, не попавшие в эту классификацию. В нем указаны также ссылки на близкие задачи, разрешимые за полиномиальное время, а также задачи, вопрос о сложности которых остается открытым, т. е. относительно которых не известно ни полиномиального алгоритма решения, ни доказательства NP-полноты.
2. Теория NP-полных задач
В настоящей главе изложен формальный аппарат теории NP-полных задач. Для того чтобы эта теория приобрела строгие математические черты, необходимо ввести формальные эквивалентны многих интуитивных понятий, например таких, как “задача" и “алгоритм”. Одна из основных целей этой главы состоит в выявлении связи между формальными терминами и интуитивными понятиями, которыми чаще всего пользуются. Овладев этой связью, мы сможем в последующих главах вести изложение главным образом на неформальном уровне, обращаясь к формальному только тогда, когда это необходимо, в строгих формулировках и доказательствах.
Глава начинается с обсуждения задач распознавания свойств и представления этих задач в виде “языков", что дает возможность отождествить “решение” такой задачи с “распознаванием" соответствующего языка. В качестве основной модели процесса вычисления принята одноленточная машина Тьюринга, которая используется также для определения класса Р (Polynomial — полиномиальный) всех языков, детерминированно распознаваемых за полиномиальное время. Машина Тьюринга затем дополняется гипотетической способностью “угадывания”, и эта дополненная модель используется для определения класса NP всех языков, “недетерминированно” распознаваемых за полиномиальное время (Nondeterministically Polynomial). После обсуждения взаимосвязи классов Р и NP определяется понятие полиномиального преобразования одного языка в другой. Это понятие применяется для определения .наиболее важного класса — класса NP-полных задач. Глава заканчивается формулировкой и доказательством фундаментальной теоремы Кука, которая дает нам первую NP-полную задачу.
ЗАДАЧИ РАСПОЗНАВАНИЯ, ЯЗЫКИИ КОДИРОВАНИЕ
Из соображений удобства теория NP-полных задач строится только для задач распознавания свойств. Такие задачи, как было упомянуто в гл. 1, имеют только два возможных решения— “да" или “нет". Выражаясь абстрактно, задача распознавания П состоит просто из двух множеств: множества Оп всех
возможных индивидуальных задач и множества Уп (Уп с Dn) индивидуальных задач с ответом “да”. Однако содержательные задачи распознавания в большинстве случаев обладают различными дополнительными структурными свойствами, которые будут учитываться нами при описании задач.
Стандартная форма, которую мы будем применять для описания задач, состоит из двух частей. В первой части дается описание условия задачи в терминах различных компонент — множеств, графов, функций, чисел и т. д. Во второй части в терминах условия формулируется вопрос, предполагающий один из двух ответов — “да" или “нет". Это описание определяет множества Dn и Уп очевидным образом. Индивидуальная задача принадлежит Dn в том и только в том случае, когда она может быть получена из стандартной формы описания подстановкой конкретных значений во все компоненты условия. Индивидуальная задача принадлежит Уп в том и только в том случае, когда ответом на вопрос задачи будет “да".
В качестве примера ниже приведена хорошо известная задача распознавания из теории графов.
ИЗОМОРФИЗМ ПОДГРАФУ
УСЛОВИЕ. Заданы два графа: Gi=(VbEi) и G2=(V2, Е2). ВОПРОС. Верно ли, что Gi содержит подграф, изоморфный G2? Другими словами, существуют ли: (1) подмножества Kz Е Vi и Е'аЕ\, такие, что |V'| = |V2|, l^'l^l^l, (2) взаимно однозначная функция f: Ег -► V', такая, что {«, и) е Е2 тогда и только тогда, когда {f(u), f(v)} е Е'"?
Задача распознавания, соответствующая задаче о коммивояжере, может быть сформулирована следующим образом.
КОММИВОЯЖЕР
УСЛОВИЕ. Заданы конечное множество C={ci, с2, ..., ст} “городов”, “расстояние" d(Ci, с/)е Z+ для каждой пары городов Ci, с/ е С и граница В е Z+ (здесь Z+ обозначает положительные целые числа).
ВОПРОС. Существует ли “маршрут", проходящий через все города из С, длина которого не превосходит В? Другими словами, существует ли последовательность <c„(ij, сЛ(2>Сл<«)>эле
ментов С, такая, что
^^(,СЩ1у ^л (1+1)) "^ ^ (^л (m)’ ^(l))^5**
В дальнейшем встретится много других примеров употребления такой формы записи задач, но и этих двух достаточно для уяснения ее смысла. Второй пример служит также для иллю-
страции важного приема — получения из оптимизационной задачи соответствующей задачи распознавания. Если в оптимизационной задаче среди всех структур данного типа ищется структура, имеющая минимальную “стоимость" (например, среди всех маршрутов ищется маршрут минимальной длины), то этой задаче можно сопоставить задачу распознавания, в которой в качестве дополнительного параметра фигурирует числовая граница В, а вопрос ставится о существовании структуры данного типа, стоимость которой не превосходит В (например, маршрут длины не более В). Аналогичным образом задача распознавания может быть получена из задачи максимизации. Для этого достаточно условие “не превосходит" заменить условием “не меньше”.
Относительно подобного соответствия между задачами распознавания и задачами оптимизации важно отметить, что поскольку значение функции легко оценить, то задача распознавания не может быть сложнее соответствующей задачи оптимизации. Если для задачи о коммивояжере можно за полиномиальное время найти маршрут минимальной длины, то совершенно ясно, как за полиномиальное время решить соответствующую задачу распознавания. Для этого нужно только найти маршрут минимальной длины, вычислить его длину и сравнить ее с заданной границей В. Поэтому, если удастся показать, что КОММИВОЯЖЕР есть NP-полная задача (а это в самом деле так), то отсюда будет следовать, что и оптимизационная задача о коммивояжере будет по крайней мере столь же сложна. Таким образом, хотя в теории NP-полных задач рассматриваются только задачи распознавания, выводы этой теории вполне применимы к задачам оптимизации. (В гл. 5 будет установлена более тесная связь между задачами распознавания и задачами оптимизации. А именно, будет показано, что многие задачи распознавания, и в частности КОММИВОЯЖЕР, “не проще” соответствующих задач оптимизации.)
Как уже говорилось, теория NP-полных задач ограничивается только задачами распознавания. Это объясняется тем, что задачи распознавания имеют очень естественный формальный эквивалент, удобный для изучения методами теории вычислений. Этот эквивалент называется “языком” и определяется следующим образом.
Для любого конечного множества символов 2 (называемого алфавитом) обозначим через 2* множество всех конечных цепочек, составленных из символов алфавита 2, такие цепочки мы будем называть словами. Например, если 2 = {0,1}, то 2* состоит из пустого слова “е”, а также слов 0, 1, 00, 01, 10, 11, 000, 001 и всех других конечных слов, состоящих из нулей и единиц. Любое подмножество L s 2* будем называть языком
в алфавите 2. Таким образом, множество {01,001, 111, 1101010} является языком в алфавите 0, 1. Языками также являются множество двоичных записей квадратов целых чисел и само множество {0, 1} *.
Соответствие между задачами распознавания и языками устанавливается с помощью схем кодирования, которые обычно применяются для представления индивидуальной задачи при ее решении на ЭВМ. Напомним, что схема кодирования е задачи П описывает каждую индивидуальную задачу из П подходящим словом в некотором фиксированном алфавите 2. Таким образом, задача П и схема кодирования е задачи П разбивают слова из 2* на три класса: слова, не являющиеся кодами индивидуальных задач из П; слова, являющиеся кодами индивидуальных задач из П с отрицательным ответом на вопрос, и слова, являющиеся кодами индивидуальных задач из П с положительным ответом на вопрос. Третий класс слов как раз и есть тот язык, который ставится в соответствие задаче П при кодировании е и обозначается через L [П, е]:
L [П, е] = <L [П, е] = <2 есть алфавит схемы кодирования е, х е 2*: ах — код индивидуальной задачи
L [П, е] = <
L [П, е] = <
/е Уп при схеме кодирования е
При применении формальной теории NP-полноты к задачам распознавания будем говорить, что некоторый результат имеет место для задачи П при схеме кодирования е, если этот результат имеет место для языка L [П, е].
В действительности, следуя общепринятой практике, мы не всегда будем соблюдать все эти формальности. Если ограничиться только “разумными схемами кодирования”, то при введении любого нового понятия, или свойства, которое формулируется в терминах языка, оно фактически не будет зависеть от способа кодирования. Другими словами, если е и е' — любые две разумные схемы кодирования задачи П, то рассматриваемое свойство языков ЦП, е] и ЦП, е'] выполняется (или не выполняется) для них одновременно. Это позволяет, не указывая явно схемы кодирования, говорить неформально о том, что рассматриваемое свойство для задачи П выполняется или не выполняется. Однако при использовании этого соглашения мы будем подразумевать, что в случае необходимости можно было бы указать такую схему кодирования е, что рассматриваемое свойство выполняется для языка L [П, е].
Заметим, что если вести изложение в стиле, не зависящем от кодирования, то теряется связь с формальным понятием “длина входа”. Поэтому необходим некоторый параметр, через который можно выразить временную сложность. Удобно счи-
тать, что с каждой задачей распознавания связана не зависящая от схемы кодирования функция Length: Dn -► Z+, которая “полиномиально эквивалентна” длине кода индивидуальной задачи, получаемой при любой разумной схеме кодирования. Полиномиальная эквивалентность понимается в следующем смысле: для любой разумной схемы кодирования е задачи П существуют два полинома р и р', такие, что если /е D и 'слово х есть код индивидуальной задачи I при кодировании е, то Length [/] ^ ^р(|х|) и |х| ^ //(Length [/]), где |х| —длина слова х. Например, в задаче ИЗОМОРФИЗМ ПОДГРАФУ можно положить
Length [/] = | К, | + | Kg |;
Gi=(Vi£i) и G2=(V2, Е2)—графы, образующие рассматриваемую индивидуальную задачу. В задаче КОММИВОЯЖЕР можно положить
Length [/] = m + riog2B~] + max {riog2</(с,, cz)n: cb Cj^C}.
Так как любые две разумные схемы кодирования задачи П дают полиномиально эквивалентные длины входов, то диапазон для выбора функции Length очень широк, а получаемые результаты будут верны для любой функции Length, удовлетворяющей сформулированным выше условиям.
Плодотворность такого неформального, не зависящего от кодирования подхода связана, конечно, с соглашением о том, что именно понимается под “разумной схемой кодирования”. Обычно схему кодирования считают “разумной”, если она достаточно “сжатая" и “допускает декодирование". Содержание понятия ‘сжатое" связано с условиями, сформулированными в гл. 1. ‘ Сжатость” нужна для того, чтобы при кодировании индивидуальной задачи сохранялась ее естественная краткость, присущая записи задачи, когда ее решают на ЭВМ, и не допускалось искусственное “раздувание” входа. Раздувание может, например, привести к такому увеличению длины входа, что экспоненциальный алгоритм, превратится неестественным образом в полиномиальный. Смысл понятия “декодируемость" заключается в том, чтобы по данной компоненте условия задачи можно было бы указать алгоритм с полиномиальным временем работы, который из любого заданного кода индивидуальной задачи позволял бы извлечь описание этой компоненты.
Приведенное выше уточнение понятия “разумное кодирование”, конечно, не является формальным определением. Нам не известен даже удовлетворительный способ, как дать такое определение. Хотя мнения большинства людей относительно разумности или неразумности конкретного кодирования той или иной задачи совпадают, отсутствие формального определения
вызывает некоторые неудобства. Для преодоления этих неудобств можно было бы потребовать, чтобы условие задачи всегда состояло из фиксированного набора основных теоретико-множественных объектов. Мы не будем здесь накладывать этого требования. Однако для уточнения того, что мы имеем в виду, говоря о “разумной схеме кодирования”, дадим краткое описание (которое при первом чтении можно опустить) одного из способов определения стандартной схемы кодирования.
Эта стандартная схема кодирования отображает индивидуальные задачи в правильно построенные слова (ППС) 1) в алфавите ф = {0, 1, —, [, ], (,),,}. ППС определяется рекурсивно:
Двоичная запись целого числа fe, рассматриваемая как слово, состоящее из нулей и единиц (со знаком “—” перед словом, если Л отрицательно), есть ППС, представляющее целое число к.
Если х есть ППС, представляющее целое число к, то [х] есть ППС, которое может использоваться как “имя" (например, “имя” вершины графа, элемента множества или города в задаче о коммивояжере).
Если Xi, Xz, ..., хт — правильно построенные слова, представляющие объекты Xi, ХаХт, то (хь ха, .... хт) есть ППС, представляющее последовательность <ль Ха, ... .... Хт).
Для указания схемы кодирования конкретной задачи распознавания, представленной в нашей стандартной записи, заметим, что если каждая компонента (или объект) условия представлена некоторым ППС, то все условия можно закодировать, пользуясь правилом (3). Таким образом, достаточно указать способ кодирования объекта каждого типа. При этом мы ограничимся целыми числами, “элементами без структуры” (вершины графа, элементы множества, города и т. д.), последовательностями, множествами, графами, конечными функциями и рациональными числами.
Правила (1) и (3) указывают, как кодировать целые числа и последовательности. Для кодирования элементов без структуры, присвоим им, согласно правилу (2), различные “имена", соблюдая при этом следующее условие: если индивидуальная задача содержит не более N элементов без структуры, то используются имена, величина которых не превосходит N. Объекты остальных четырех типов кодируются следующим образом.
Множество объектов представляется в виде произвольно упорядоченной последовательности <Хь Ха, ■ ■ •, Хт) элементов
*) В оригинале structured strings, что в буквальном переводе означает структурированные цепочки (символов алфавита). — Прим. рва.
этого множества и кодируется ППС, соответствующим этой последовательности.
Граф с множеством вершин V и множеством ребер Е кодируется ППС (х, у), где х и у есть ППС, представляющие множества V и Е соответственно (элементами Е являются двухэлементные подмножества V, образующие ребра).
Конечная функция f: («ь и», ..., ит} -*W кодируется ППС ((^I,yi),(-t2, У^, ■.., кхт,Ут^, где X/ —ППС для объекта щ, a yi — ППС для объекта f(«i)e W, I ^ I ^ т.
Рациональное число q кодируется ППС (х, у), где х и у — ППС для целых чисел а и Ь, таких, что a/b = q и наибольший общий делитель а и b равен 1.
Приведенный выше список кодов объектов довольно хорошо иллюстрирует понятие разумного кодирования. Его достаточно в большинстве встречающихся случаев, хотя иногда было бы удобнее иметь более широкий список типов объектов. Однако для описания условий задач можно, не уменьшая общности, ограничиться только перечисленными объектами, потому что другие типы объектов всегда могут быть выражены через объекты, перечисленные выше.
Отметим, что указанных рецептов не хватает для того, чтобы построить один-единственный код для каждой индивидуальной задачи, но вполне достаточно для того, чтобы любое ППС,. которое является кодом задачи, обладало определенными структурными особенностями. Изменение имен исходных элементов или порядка элементов при описании множества может привести к тому, что одна и та же индивидуальная задача будет кодироваться различными правильно построенными словами. В действительности не имеет значения, какими ППС закодирована данная индивидуальная задача, так как любое слово можно декодировать и получить существенные компоненты индивидуальной задачи. Эта возможность учтена в данных выше определениях, например, при кодировании е каждая индивидуальная задача из П может быть представлена несколько раз в языке ЦП, е] кодов индивидуальных задач с положительным ответом на вопрос.
Прежде чем продолжить обсуждение, напомним, что стандартная схема кодирования приведена с целью иллюстрации возможных определений стандартных схем кодирования; она также служит примером “разумной” схемы кодирования. Ничто не мешает воспользоваться какой-нибудь другой схемой кодирования или построить для каждой интересующей нас задачи свою схему кодирования.
Если выбранная схема кодирования “эквивалентна” указанной выше (в том смысле, что существуют алгоритмы с полиномиальным временем работы, переводящие коды индивидуальных
задач при одной схеме кодирования в коды этих же задач при другой и обратно), то эта схема кодирования также будет “разумной”. Если выбрать схему кодирования, которая в этом смысле не эквивалентна приведенной выше, то можно по-прежнему доказывать различные результаты относительно этой схемы кодирования, однако для формулировки получаемых результатов уже нельзя будет пользоваться независимой от кодирования терминологией. В настоящей книге мы ограничимся только разумными схемами кодирования.
ДЕТЕРМИНИРОВАННЫЕ МАШИНЫ ТЬЮРИНГАИ КЛАССР
Для того чтобы формализовать понятие “алгоритм", необходимо зафиксировать определенную модель процесса вычисления. Далее такой моделью будет служить детерминированная одноленточная машина Тьюринга (сокращенно ДМТ), которая схематически изображена на рис. 2.1. Машина Тьюринга состоит
Рис. 2.1. Схематическое изображение детерминированной (одноленточной машины Тьюринга (ДМТ).
из управляющего устройства с конечным числом состояний, читающей/пишущей головки, которая может считывать и записывать символы, и неограниченной в обе стороны ленты, разделенной на бесконечное число одинаковых ячеек, занумерованных целыми числами ..., —2, —1,0, 1,2,3, ... .
Программа для ДМТ, или ДМТ-программа, определяется следующими компонентами:
конечным множеством Г символов, которые записываются на ленте, подмножеством 2 с Г входных символов и выделенным пустым символом b с Г\5;
конечным множеством состояний Q, в котором выделены начальное состояние qo и два заключительных состояния qy, qN )",
функцией перехода 6: (Q\{<?r, q^^X V-*QX ГХ {—1, !}•
Работа программы определяется следующим образом. Входом для детерминированной программы является слово х е 2*. Слово записывается на ленте в ячейках с номерами 1, 2, ... .... |х| по одному символу в ячейке. Все другие ячейки в начальный момент времени содержат пустой символ и называются пустыми. Программа начинает работу, находясь в состоянии ^о, при этом читающая/пишущая головка находится над ячейкой с номером 1.
Далее процесс вычислений осуществляется последовательно, шаг за шагом. Если текущее состояние q есть qy или qN, то процесс вычисления заканчивается, при этом результатом будет “да", если q = qY, и “нет”, если q = qN- В противном случае текущее состояние принадлежит множеству Q\{<?y, q^, при этом головка читает на ленте некоторый символ s е Г и определено значение 6(^, s). Предположим, что б(^, s') = ^q', s', А). В этом случае головка стирает s, пишет на этом месте s' и сдвигается на одну ячейку влево, если А = — 1, или на одну ячейку вправо, если А = +1. Одновременно управляющее устройство переходит из состояния q в q'. На этом заканчивается один “шаг" процесса вычисления, и программа готова к выполнению следующего шага (если таковой имеется).
Пример простой ДМТ-программы М представлен на рис. 2.2. Функция перехода 6 определена таблицей, где величина, записанная в у-й строке и s-м столбце, есть значение 6(9, s). Рис. 2.3 иллюстрирует вычисление по программе М при входе х = 10100; здесь указаны состояние, расположение головки и содержимое непустых ячеек ленты до и после каждого шага.
Заметим, что это вычисление после восьми шагов оканчивается в состоянии qy, поэтому на входе 10100 ответом будет “да”. В общем случае будем говорить, что программа М, имеющая входной алфавит 2, принимает хе 2* в том и только в том случае, когда, будучи примененной ко входу х, она останавливается в состоянии qy. Язык Lm, распознаваемый программой М, задается следующим образом:
Lm = {xe2*: М принимает х}.
Нетрудно видеть, что программа, представленная на рис. 2.2, распознает язык
(rg два последних символа )
(х‘ ’ ' " слова х являются нулями) "
Г-to J, 6), L-tOJ)
Q- t«O,«h «2,«3,4r, ^1
ч
0
1
b
Чо
(«оД+П
(«o,L+D
(«1,6,-1)
Ч\
(«2,6,-1)
к,.б-1)
(«W.6,-D
41
(«Г.6.-1)
кч«Л-\^
к\,6,—1)
41
(«и, 6,-1)
^Чн> 6,-1)
(^,6,-1)
A(^ts)
Рис. 2.2. Пример ДМТ-программы М*= (Г, Q, 6).
V
«о :
■ ■ 1 * 11
1 0 1 1
1 0 1 0
1 6 1 -
V
«о :
■11
1 0 1 1
1 0 | 0
1 6 1
V
«о :
• 1 И 1
1 о 1 1
1 о 1 0
1 6 1 -
V
«о :
- 1 И 1
1 0 | 1
1 0 1 0
1 6 1 -
V
Чо :
- 111
1 0 1 1
1 0 1 0
1 6 1 -
V
«о :
1 11
1011
1 0 1 0
1 6 1 -
V
«1 :
- | 4 | 1
1 0 1 1
1 0 | 0
1 6 1 -
V
«2 :
1 0 1 1
| 0 I 4
1 6 1 -
V
Чг :
■ - 1 6 11
1 М 1
1 4 | 4
1 6 1 -■
Отметим, что это определение распознавания языка не требует, чтобы программа М останавливалась при всех входах из 2*; М обязана останавливаться лишь при входах из Lm. Если с принадлежит 2*\ Lm, то работа программы М на х может либо закончиться в состоянии дм, либо может бесконечно продолжаться без остановки. Однако ДМТ-программа, соответствующая нашему пониманию алгоритма, должна останавливаться на всех словах входного алфавита. В этом смысле программа на рис. 2.2 является алгоритмической, так как, начиная работать на любом слове из символов 0, 1, она будет останавливаться.
Соответствие между “распознаванием” языков и “решением” задач распознавания определяется следующим образом. Будем говорить, что ДМТ-программа М решает задачу распознавания П при кодировании е, если М останавливается на всех словах, составленных из букв входного алфавита, и LM = L [П, е]. Программа на рис. 2.2 иллюстрирует это соответствие. Рассмотрим следующую задачу распознавания из теории чисел:
ДЕЛИМОСТЬ НА ЧЕТЫРЕ
УСЛОВИЕ. Дано положительное целое число N.
ВОПРОС. Существует ли положительное целое число т, такое, что N = 4m?
При стандартном кодировании целое число N представляется словом из 0 и I, т. е. двоичной записью этого числа. Так как положительное целое число делится на 4 тогда и только тогда, когда последние цве цифры двоичной записи этого числа являются нулями, то программа, изображенная на рис. 2.2, “решает” при нашем стандартном кодировании задачу ДЕЛИМОСТЬ НА ЧЕТЫРЕ.
Заметим для дальнейшего, что ДМТ-программой можно пользоваться также и для вычисления функций. Предположим, что программа М, имеющая входной алфавит 2 и ленточный алфавит Г, останавливается при любом входе из 2*. Тогда М вычисляет функцию ?м: 2*-»-Г*, которая для каждого хе 2* определяется следующим образом. Если программа М, начиная работать при входе х, останавливается, то в качестве ?м(х) берется слово, составленное из символов, записанных после остановки машины в ячейках с номерами 1, 2, 3, ... , включая последнюю непустую ячейку. Программа М, представленная на рис. 2.2, вычисляет функцию fa: (0, !}*-► (О, 1,6}*, которая отображает каждое слово хе {0, 1}* в слово }м(х), получаемое из х удалением двух крайних справа символов (если |х|<2, то М выдает в качестве ?м(х) пустое слово).
Хорошо известно, что DMT-программы способны решать задачи гораздо более сложные, чем в рассмотренном примере.
Несмотря на то что ДМТ имеет только одну последовательную ленту и на каждом шаге может выполнять весьма ограниченную работу, ДМТ-программа может быть составлена так, что она выполнит (хотя и гораздо медленнее) любое вычисление, выполнимое обычной ЭВМ. Читателю, который интересуется тем, как это делается, можно посоветовать несколько хороших работ, например [388] или [215]. Читателя, который этим не интересуется, можно успокоить тем, что в данной книге не требуется умение программировать на ДМТ. Введение модели ДМТ объясняется только необходимостью дать формальный эквивалент понятию алгоритма и тем самым заложить основу для остальных определений.
Теперь можно определить понятие “временная сложность". Время, требуемое ДМТ-программой М для вычисления при входе х, есть число шагов, выполняемых до момента остановки. Если программа М останавливается на всех входах х е £*, то временную сложность Тм: Z+->Z+ этой программы можно определить так:
( существует такое слово х е S*, | х [ = п, "1 Тм (п) = max 4 гп". что вычисление по программе М на вхо- г.
I де х требует времени m J
Детерминированная программа М называется полиномиальной ДМТ-программой, если существует такой полином р, что для всех пеТЛ, Тм(п)^ р (п).
Теперь можно формально определить первый важный класс языков — класс Р. Он определяется следующим образом:
p_.tr. существует полиномиальная ДМТ-программа) ( ‘ М, для которой L = LM J
Будем говорить, что задача распознавания П принадлежит классу Р при кодировании е, если L [П, е] е Р, т. е. существует полиномиальная ДМТ-программа, которая “решает” задачу П при кодировании е. Учитывая приведенные выше рассуждения об эквивалентности разумных кодирований, мы обычно не будем приводить конкретные схемы кодирования и будем просто говорить, что задача распознавания П принадлежит классу Р.
Термин “полиномиальный алгоритм” часто будет использоваться неформально. Формальным эквивалентом понятия полиномиального алгоритма является полиномиальная ДМТ-программа. Тем не менее если учесть указанную в гл. 1 эквивалентность “реалистичных” моделей ЭВМ относительно понятия “полиномиальное время работы”, то формальное определение класса Р можно сформулировать в терминах программ для любой из этих моделей, причем в результате получится один и тот же класс языков.
Таким образом, при доказательстве того, что определенные задачи могут быть решены полиномиальным алгоритмом, нет необходимости вдаваться в детали ДМТ. На самом деле, следуя общепринятой практике, мы будем обсуждать алгоритмы в машинно-независимом стиле, как будто они работают непосредственно с компонентами индивидуальной задачи (множествами, графами, числами и т. д.), а не с их кодами. Здесь подразумевается, что при наличии желания и терпения для любого полиномиального алгоритма можно построить соответствующую полиномиальную ДМТ-программу. Наши неформальные рассуждения следует рассматривать как указание пути такого построения, они должны убедить любого читателя, знакомого с основными типами задач, разрешимых за полиномиальное время на обычных ЭВМ.
НЕДЕТЕРМИНИРОВАННОЕ ВЫЧИСЛЕНИЕИ КЛАСС NP
В настоящем разделе вводится второй важный класс языков (задач распознавания свойств) — класс NP. Прежде чем перейти к формальному определению в терминах языков и машин Тьюринга, полезно пояснить смысл понятия, лежащего в основе определения класса NP.
Рассмотрим задачу КОММИВОЯЖЕР, описание которой приведено в начале настоящей главы. В условии даны: множества городов, расстояния между ними и граница В; при этом спрашивается, существует ли проходящий через все города маршрут длины, не превосходящей В. Полиномиальный алгоритм решения этой задачи не известен. Предположим, однако, что относительно некоторой индивидуальной задачи кто-то получил ответ “да”. Если вы в этом сомневаетесь, то можно потребовать “доказательства" этого утверждения — предъявление маршрута, обладающего необходимыми свойствами. Имея предъявленное решение, нетрудно проверить, является ли оно на самом деле маршрутом, и если это так,то вычислить его длину, сравнить ее с границей В и тем самым проверить соответствующее утверждение. Более того, эту “процедуру проверки” можно представить в виде алгоритма, временная сложность которого ограничена полиномом от Length [/].
' Другой пример задачи, которая обладает этим свойством,— задача ИЗОМОРФИЗМ ПОДГРАФУ из разд. 2.1. Пусть дана индивидуальная задача /, в которой указаны два графа Gi = = (Vi, Ех) и Ga=(V2, Еа). Если ответом на вопрос задачи будет “да”, то этот факт можно “доказать", предъявив подмножества V = Vi и Е'гЕ\ и взаимно-однозначную функцию f: Уг-*-У', которые обладают необходимыми свойствами. В этом случае
верность утверждения опять-таки может быть легко установлена за полиномиальное от Length (/] время путем простой проверки того, что V', Е' и f удовлетворяют требованиям, сформулированным в задаче.
Именно понятие полиномиальной “проверяемости" позволяет выделить задачи класса NP. Отметим, что проверяемость за полиномиальное время не влечет разрешимости за полиномиальное время. А именно, утверждая, что за полиномиальное время можно проверить ответ “да" для задачи КОММИВОЯЖЕР, мы не учитываем время, которое может понадобиться на поиск нужного маршрута среди экспоненциального числа всех возможных маршрутов. Мы лишь утверждаем, что по любому заданному маршруту для индивидуальной задачи I можно за полиномиальное время проверить, “доказывает" ли этот маршрут, что ответ на вопрос относительно индивидуальной задачи / есть “да”.
Неформально класс NP можно определить с помощью понятия, которое мы будем называть недетерминированным алгоритмом. Такой алгоритм состоит из двух различных стадий — стадии угадывания и стадии проверки. По заданной индивидуальной задаче / на первой стадии происходит просто “угадывание” некоторой структуры S. Затем / и 5 вместе подаются в качестве входа на стадию проверки, которая выполняется обычным детерминированным образом и либо заканчивается ответом “да", либо заканчивается ответом “нет”, либо продолжается бесконечно без остановки (как мы увидим позже, последние две возможности различать не обязательно). Недетерминированный алгоритм “решает" задачу распознавания П, если для любой индивидуальной задачи / е /)п выполнены следующие два свойства:
Если /еУп, то существует такая структура S, угадывание которой для входа I приведет к тому, что стадия проверки, начиная работу на входе (/, S), закончится ответом “да”.
Если /^Уп, то не существует такой структуры S, угадывание которой для входа / обеспечило бы окончание стадии проверки на входе (/, S) ответом “да”.
Например, недетерминированный алгоритм решения задачи КОММИВОЯЖЕР можно было бы построить, используя в качестве стадии угадывания просто выбор произвольной последовательности городов, а в качестве стадии проверки — упомянутую выше полиномиальную процедуру “проверка доказательства” для задачи КОММИВОЯЖЕР. Очевидно, для любой индивидуальной задачи / найдется такая догадка S, что результатом работы стадии проверки на входе (/, S) будет “да" в том и только в том случае, если для индивидуальной задачи / существует маршрут искомой длины.
Говорят, что недетерминированный алгоритм, решающий задачу распознавания П, работает в течение “полиномиального времени", если найдется полином р. такой, что для любого / в в Уп найдется некоторая догадка S, приводящая на стадии детерминированной проверки на входе (/, S) к ответу “да" за время р (Length [/]). Отсюда следует, что “размер" угадываемой структуры 3 будет обязательно ограйичен полиномом от Length [/], так как на проверку догадки S может быть затрачено не более чем полиномиальное время. _
Класс NP, определяемый неформально, — это класс всех задач распознавания П, которые при разумном кодировании могут быть решены недетерминированными (N — nondeterministic) алгоритмами за полиномиальное (Р — polinomial) время. Пример, приведенный выше, показывает, что задача КОММИВОЯЖЕР принадлежит NP. У читателя не должно возникнуть трудностей при доказательстве аналогичного утверждения о задаче ИЗОМОРФИЗМ ПОДГРАФУ.
В подобных неформальных определениях термином “решает” следует, конечно, пользоваться осторожно. Должно быть ясно, что основное назначение “полиномиального недетерминированного алгоритма ” состоит в объяснении понятия “проверяемости за полиномиальное время", а не в том, чтобы служить реалистическим методом решения задач распознавания свойств. При каждом входе такой алгоритм имеет не одно, а несколько возможных вычислений — по одному для каждой возможной догадки.
Имеется еще одно важное отличие “решения” задачи распознавания недетерминированным алгоритмом от решения детерминированным алгоритмом, а именно в первом случае отсутствует симметрия между ответами “да" и “нет”. Если задача: “Дано /; верно ли, что для / выполняется свойство XV’ может быть решена полиномиальным (детерминированным) алгоритмом, то такое же утверждение справедливо и для дополнительной задачи; “Дано I, верно ли, что для / не выполняется свойство XV'. Это следует из того, что детерминированный алгоритм останавливается при всех входах, поэтому достаточно поменять местами ответы “да" и “нет” (переставить состояния qy и qN в ДМТ-программе).
Совершенно не очевидно, что то же самое верно для всех задач, разрешимых за полиномиальное время недетерминированными алгоритмами. Рассмотрим, например, дополнение задачи КОММИВОЯЖЕР: дано множество городов, расстояния между ними и граница В; верно ли, что нет маршрута, проходящего через все города и имеющего длину, не превосходящую В? Для выяснения, имеет ли поставленный вопрос ответ “да”, не известен способ, который был бы короче, чем проверка всех
(или почти всех) возможных маршрутов. Другими словами, не известен полиномиальный недетерминированный алгоритм решения этой дополнительной задачи. Та же самая ситуация имеет место для многих других задач из NP. Таким образом, принадлежность задачи П классу Р влечет принадлежность дополнительной задачи классу Р, но не известно, имеет ли место аналогичное утверждение для класса NP.
В заключение настоящего раздела мы формализуем приведенное определение в терминах языков и машин Тьюринга. Формальным эквивалентом недетерминированного алгоритма яв-
-3-2-10 1 2 3 4
Рис. 2.4. Схематическое представление недетерминированной одноленточной машины Тьюринга (НДМТ).
ляется программа для недетерминированной одноленточной машины Тьюринга (НДМТ). Для простоты будем пользоваться несколько нестандартной моделью НДМТ. (Версии более близкие к стандартным изложены в книгах [9, 215]. Полезным упражнением для читателя может оказаться проверка полиномиальной эквивалентности по отношению ко времени работы, между стандартными моделями и моделью изложенной ниже.)
Модель НДМТ, которой мы будем пользоваться, имеет в точности такую же структуру, как ДМТ; отличие состоит лишь в том, что НДМТ дополнена угадывающим модулем со своей головкой, которая может только записывать на ленту (см. рис. 2.4). Угадывающий модуль дает информацию для записывания “догадки" и применяется исключительно с этой целью.
Программа для НДМТ, или НДМТ-программа, определяется точно так же, как ДМТ-программа, при этом используются: ленточный алфавит Г, входной алфавит 2, пустой символ Ь, множество состояний Q, начальное состояние до, заключительные состояния qy и дм, функция перехода 6: (Q\ {^у, дм^Х X ГQ X Г X (—L+!}• Вычисление НДМТ-программы при входе х е 2* в отличие от вычисления ДМТ-программы имеет две различные стадии.
На первой стадии происходит “угадывание”. В начальный момент времени входное слово х записывается в ячейках с номерами 1, 2 ]х| (остальные ячейки пусты), читающая/пи-
шущая головка “смотрит" на ячейку с номером 1, пишущая головка угадывающего модуля смотрит на ячейку с номером —1, а устройство управления “пассивно". Затем угадывающий модуль начинает управлять угадывающей Золовкой, которая делает один шаг в каждый момент времени и либо пишет в находящейся под ней ячейке одну из букв алфавита Г и сдвигается при этом на одну ячейку влево, либо останавливается. В последнем случае угадывающий модуль переходит в пассивное состояние, а управляющее устройство начинает работу в состоянии ?о- Угадывающий модуль решает, продолжить ли работу (перейти ли в пассивное состояние, какую букву из Г написать на ленте), причем делает это совершенно произвольно. Таким образом, угадывающий модуль до момента окончания своей работы может написать любое слово из Г* и в действительности может никогда не остановиться.
Стадия проверки начинается в тот момент, когда управляющее устройство переходит в состояние qo. Начиная с этого момента, вычисление НДМТ-программы осуществляется в точности по тем же правилам, что и ДМТ-программы. Угадывающий модуль и его головка в вычислении больше не участвуют, выполнив свою роль, т. е. записав на ленте слово-догадку. Конечно, слово-догадка может (и обычно будет) просматриваться читающей/пишущей головкой в процессе проверки. Вычисление заканчивается тогда, когда управляющее устройство перейдет в одно из двух заключительных состояний (q? или qs); оно называется принимающим вычислением, если остановка происходит в состоянии qy. Все остальные вычисления, заканчивающиеся или нет, называются непринимающими.
Отметим, что любая НДМТ-программа М может иметь бесконечное число возможных вычислений при данном входе х, по одному для каждого слова-догадки из Г*. Будем говорить, что НДМТ-программа М принимает х, если по крайней мере одно из ее вычислений на входе х является принимающим. Язык, распознаваемый программой М, — это язык
Тч = (хбУ: М принимает х}.
Время, требующееся недетерминированной программе М для того, чтобы принять слово xeLm,— это минимальное число шагов, выполняемых на стадиях угадывания и проверки до момента достижения заключительного состояния qy, где минимум берется по всем принимающим вычислениям программы М на входе х. Временная сложность НДМТ-программы М— это
функция Тм". Z+->Z+, определяемая следующим образом:
(
Г существует xsLM, |x] = n, IX {1} (J "1 т: такое, что время принятия х ? I.
I программой М равно tn
Заметим, что временная сложность программы Л1 зависит только от числа шагов, выполняемых в принимающих вычислениях, а также, что мы полагаем Л1(п) равным 1, если нет ни одного входа длины п, принимаемого программой М.
НДМТ-программа называется НДМТ-программой с полиномиальным временем работы, если найдется полином р, такой, что Тм W ^ р (п?) для всех п ^ 1. Наконец, класс NP формально определяется так:
( существует НДМТ-программа М ] NP=sL: с полиномиальным временем работы, г.
I такая, что LM = L )
Нетрудно установить взаимосвязь между этими формальными определениями и предшествующими неформальными. Единственный момент, который следует специально оговорить, состоит в следующем. Если, как принято считать, недетерминированный алгоритм угадывает структуру 5, зависящую некоторым образом от условия рассматриваемой задачи, то угадывающий модуль НДМТ, напротив, полностью игнорирует входное слово. Хотя любое слово из Г* может быть получено в результате работы угадывающего модуля, это не существенно, так как НДМТ-программу всегда можно сконструировать так, что стадия проверки будет начинаться с проверки того, соответствует ли догадка (при той неявной интерпретации, которую наша программа дает словам) подходящей структуре для заданного входа. В противном случае программа может сразу же перейти в заключительное состояние дц.
Будем говорить, что задача распознавания принадлежит классу NP при схеме кодирования е, если L[II,e]eNP. Как и в случае класса Р, мы будем просто говорить, что П лежит в NP, не упоминая конкретную схему кодирования, когда ясно, что некоторая разумная схема кодирования задачи П даст язык, принадлежащий NP.
Более того, поскольку любая реалистичная модель вычислительного устройства может быть дополнена аналогом рассмотренного “угадывающего модуля с пишущей головкой", то наши формальные определения можно было бы перефразировать для любой другой стандартной модели вычислительного устройства, В силу того что все такие модели эквивалентны с точностью до
детерминированных полиномиальных вычислений, все получаемые при этом версии класса NP будут идентичны. Таким образом, правомерно сделанное ранее предложение отождествить формально определенный класс NP с классом всех задач распознавания, “разрешимых” недетерминированными алгоритмами с полиномиальным временем работы.
В качестве подготовки к определению третьего, самого важного для настоящей книги класса — класса NP-полных задач в следующем разделе мы обсудим взаимоотношения между классами Р и NP.
ВЗАИМООТНОШЕНИЯ МЕЖДУ КЛАССАМИ Р И NP
Вопрос о взаимоотношении классов Р и NP имеет фундаментальное значение для теории NP-полных задач. Одно соотношение, которое неявно присутствовало в проводившихся ранее рассуждениях, но до настоящего момента явно не формулировалось, заключается в том, что Р S NP. Всякая задача распознавания, разрешимая за полиномиальное время детерминированным алгоритмом, разрешима также за полиномиальное время недетерминированным алгоритмом. Чтобы убедиться в этом, достаточно заметить, что любой детерминированный алгоритм может быть использован в качестве стадии проверки недетерминированного алгоритма. Если ПеР и А— произвольный детерминированный полиномиальный алгоритм решения П, то полиномиальный недетерминированный алгоритм для П можно получить, воспользовавшись А в качестве стадии проверки и игнорируя стадию угадывания. Таким образом, из ПеР следует, что П е NP.
Из проводившихся ранее рассуждений можно понять, что есть много причин считать это включением строгим, т. е. считать, что Р не совпадает с NP. Полиномиальные недетерминированные алгоритмы определенно оказываются более мощными, чем полиномиальные детерминированные алгоритмы, и не известны общие методы их превращения в детерминированные полиномиальные алгоритмы. В действительности самый сильный из известных в настоящее время результатов состоит в следующем:
Теорема, 2.1. Если П г NP, то существует такой полином р, что П может быть решена детерминированным алгоритмом с временнбй сложностью O(2pW).
Доказательство. Пусть А — полиномиальный недетерминированный алгоритм решения задачи П и q^— полином, ограничивающий временную сложность алгоритма А. (Не умаляя
общности, можно считать, что q может быть вычислен за полиномиальное время; этого можно добиться, взяв, например, q (п) = С1ПСгпри достаточно больших константах Ci и Сг.)
По определению класса NP, для каждого принимаемого входа длины п найдется некоторое слово-догадка (в алфавите Г символов ленты) длины не более q^nY такое, что в алгоритме А стадия проверки дает при рассматриваемом входе ответ “да" не более чем за q^ шагов. Таким образом, общее число догадок, которые нужно рассмотреть, не превосходит kqW, где к = = |Г| (если слово-догадка короче ^(п), то его можно дополнить пустыми символами и рассматривать как слово длины gWY
Теперь можно детерминированным образом выяснить, имеет ли алгоритм А на заданном входе длины п принимающее вычисление. Для этого достаточно на каждой из kq№ возможных догадок запустить детерминированную стадию проверки алгоритма А и позволить ей работать до того момента, пока она не остановится или не сделает q^ шагов. Этот моделирующий алгоритм даст ответ “да", если ему встретится слово-догадка, приводящее к принимающему вычислению длины не более q(nY и ответ “нет" — в противном случае. Такой алгоритм, очевидно, будет детерминированным алгоритмом решения задачи П. Более того, его временная сложность, по существу, равна q^n)-kqW; хотя это экспонента, но при подходящем выборе полинома р сложность не превосходит О(2р<л>). ■
Безусловно, процесс моделирования, предложенный в доказательстве теоремы 2.1, можно в некоторой степени ускорить с помощью метода ветвей и границ или метода обратного поиска, или с помощью более тщательного перебора, когда избегаются, очевидно, ненужные слова-догадки. Тем не менее, несмотря на значительную экономию, которая может быть при этом достигнута, не известен метод, осуществляющий такое моделирование быстрее, чем за экспоненциальное время.
Таким образом, способность недетерминированного алгоритма проверить за полиномиальное время экспоненциальное число возможностей может навести на мысль, что полиномиальные недетерминированные алгоритмы являются более мощным средством, чем полиномиальные детерминированные алгоритмы. В самом деле, для многих частных задач класса NP, таких, как КОММИВОЯЖЕР, ИЗОМОРФИЗМ ПОДГРАФУ, и большого числа других задач не найдено полиномиального детерминированного алгоритма, несмотря на упорные усилия многих извест-* ных исследователей.
Не удивляет поэтому широко распространенное мнение, что р ^NP, хотя пока доказательство этой гипотезы отсутствует.
Конечно, скептик может сказать, что неудача в доказательстве гипотезы Р #= NP является столь же сильным аргументом в пользу соотношения Р = NP, как и неудача в поиске соответ
Рис. 2.5. Гипотетическая картина класса NP.Рис. 2.5. Гипотетическая картина класса NP.область, обозна-область, обозна-ствующих полиномиальных алгоритмов — в пользу противоположного утверждения. Задачи всегда кажутся труднорешаемыми, пока не найдены эффективные алгоритмы их решения. Однако даже скептик, вероятно, согласится, что при существующем в настоящее время уровне знаний, по-видимому, более разумно работать при соглашении, что Р N= NP, чем пытаться доказать противоположное. Во всяком случае, на основе накопленного опыта мы будем представлять себе класс NP так, как он изображен на рис. 2.5, ожидая (хотя и не с полной уверенностью), что затененная чающая NP\P, не пуста.
Рис. 2.5. Гипотетическая картина класса NP.
Рис. 2.5. Гипотетическая картина класса NP.
область, обозна-
область, обозна-
ПОЛИНОМИАЛЬНАЯ СВОДИМОСТЬИ NP-ПОЛНЫЕ ЗАДАЧИ
Если Р не совпадает с NP, то различие между Р и NP\P очень существенно. Все задачи из Р могут быть решены полиномиальными алгоритмами, а все задачи из NP\P труднорешаемы. Поэтому, если Р =# NP, то для каждой конкретной задачи П е NP важно знать, какая из этих двух возможностей реализуется.
Конечно, до тех пор пока не доказано, что Р #= NP, нет никакой надежды показать, что некоторая конкретная задача принадлежит классу NP\P. По этой причине цель теории NP-полных задач заключается в доказательстве более слабых результатов вида: “если Р ф NP, то Пе NP\P”. Хотя доказательство таких условных результатов может показаться столь же трудным, как и безусловных, однако, как мы увидим в дальнейшем, имеются несложные методы доказательства. Такие условные результаты можно рассматривать как подтверждение труднорешаемости с той же степенью уверенности, с какой мы считаем, что класс Р отличается от NP.
Основная идея подобного условного подхода основана на понятии полиномиальной сводимости. Будем говорить, что имеет место полиномиальная сводимость языка Li s S к языку LiG^, если существует функция f: 2*->Sj, удовлетворяющая двум условиям *):
Существует ДМТ-программа, вычисляющая f с временной сложностью, ограниченной полиномом.
Для любого х е Si, хе Lx в том и только в том случае, если f^eL2.
Если Lx полиномиально сводится к L2, то будем писать Lx <х L2 и говорить “Lx сводится к L2“ (опуская слово “полиномиально").
Важность понятия полиномиальная сводимость вытекает из следующей леммы:
Лемма 2.1. Если Lx ос L2, то из L2eP следует, что Lx е Р. ^Эквивалентное утверждение-, из Lx^P следует, что L2 ф Р.)
Доказательство. Пусть Si и S2— алфавиты языков Lx и L2 соответственно, функция f: Si -> Si осуществляет полиномиальную сводимость Lx к L2; М, — полиномиальная ДМТ-программа, вычисляющая f, и М2— полиномиальная ДМТ-программа, распознающая L2. Полиномиальная ДМТ-программа, распознающая Lx, может быть получена композицией программы Mf и М2. Ко входу хе Si вначале применяется Mf, чтобы построить f(x)eSz. Затем к /(х) применяется программа М2, выясняющая, верно ли, что f(x)e£z. Поскольку xeL\ тогда и только тогда, когда f(x)eLz, то это описание дает ДМТ-программу, распознающую Lx. То, что время работы этой программы ограничено полиномом, немедленно следует из полиномиальности программ Mf и М. Точнее, если pf и р2 — полиномы, ограничивающие время работы программ Mf и М2 соответственно, то I f (х) |^Р/(I х |), а время работы только что построенной программы, как не трудно видеть, ограничено функцией O0Mlxl) + P2(Pf(|x|)), которая является полиномом от |х|. ■
Если П1 и Па — задачи распознавания, а ех и е2 — их схемы кодирования, то будем писать П1 ос П2 (относительно заданных схем кодирования), если существует полиномиальная сводимость языка ЦП1, ej к ЦПг, вг]. Когда будет действовать стандартное предположение о “разумности” используемых схем кодирования, упоминание о конкретных схемах кодирования, как обычно, будет опускаться. Таким образом, на уровне задач полиномиальная сводимость задачи распознавания П1 к задаче распознавания Пг означает наличие функции f: Ощ-* Dn„ удовлетворяющей двум условиям:
f вычисляется полиномиальным алгоритмом и
для всех 1 е Dn, / е Уп, тогда и только тогда, когда f(/)sFni.
Чтобы получить конкретное представление о содержательном смысле этого определения, рассмотрим пример. Пусть G =
= (V, Е)—граф с множеством вершинУ и множеством ребер Е. Простым циклом в G называется такая последовательность <vi, иг, .... vfc> различных вершин из V, что {ор и/+1}еЕ, 1^
i < k, и {ид, yj е Е.
Гамильтоновым циклом в G называется простой цикл, содержащий все вершины графа G. Задача ГАМИЛЬТОНОВ ЦИКЛ определяется следующим образом:
ГАМИЛЬТОНОВ цикл
УСЛОВИЕ. Задан граф G = (V, Е).
ВОПРОС. Верно ли, что G содержит гамильтонов цикл?
Читатель, несомненно, заметил определенную связь между этой задачей и задачей распознавания КОММИВОЯЖЕР. Покажем, что ГАМИЛЬТОНОВ ЦИКЛ (ГЦ) сводится к КОММИВОЯЖЕРУ (КМ). Для этого требуется указать функцию f, которая отображает каждую индивидуальную задачу из ГЦ в соответствующую индвидуальную задачу из КМ и удовлетворяет двум условиям, которые требуются от полиномиальной сводимости.
Функция f определяется очень просто. Пусть G = (V, Е), |У|=7п означает фиксированную индивидуальную задачу из ГЦ. Соответствующая задача из КМ строится так: множество городов С совпадает с V; для любых двух городов о,, VjeC расстояние d(vu Vj) между ними полагаем равным 1, если V«i, и^еЕ, и 2 в противном случае. Граница В для длины искомого маршрута берется равной т.
Легко показать (на неформальном уровне), что эта функция f осуществляет сводимость и может быть вычислена за полиномиальное время. Для вычисления m(m—1)/2 расстояний d\ui, и/) необходимо лишь выяснить, принадлежит ли {о/, и,} множеству Е или нет. Поэтому первое требование полиномиальности сводимости выполнено. Для проверки второго требования необходимо показать, что G содержит гамильтонов цикл тогда и только тогда, когда в f(G) имеется проходящий через все города маршрут длины, не превосходящей В. Вначале допустим, что <vb Ui, .... vm> — гамильтонов цикл в G. Тогда <иь и2, ... .Um>— маршрут в f(G), а его длина равна т (т = В), так как расстояние между любыми соседними городами маршрута равно 1, поскольку оно соответствует ребру в G. Наоборот, предположим, что <иь и2, ...» vm> —маршрут в /(G), длина которого не превосходит В. Поскольку расстояние между любыми двумя городами в f(G) равно либо 1, либо 2 и при вычислении длины маршрута суммируется ровно т таких расстояний, то из равенства В = т следует, что расстояние между каждой парой соседних городов в маршруте равно 1. По
определению f(G), отсюда следует, что {щ, щ+1}, 1 I < т, и {um, щ} являются ребрами графа G и, следовательно, <Уь и2,... ..., ит>— гамильтонов цикл в G.
Таким образом, мы доказали, что ГЦ ос КМ. Хотя это доказательство гораздо проще многих доказательств, которые будут рассмотрены в дальнейшем, оно содержит все существенные элементы доказательства полиномиальной сводимости и на неформальном уровне может служить моделью для построения таких доказательств.
Значение леммы 2.1 для задач распознавания теперь может быть проиллюстрировано на примере сводимости ГЦ ос КМ. По существу, мы пришли к следующему заключению: если задача КОММИВОЯЖЕР может быть решена полиномиальным алгоритмом, то этот факт верен и для задачи ГАМИЛЬТОНОВ ЦИКЛ, а если ГЦ — труднорешаемая задача, то и КМ также труднорешаемая задача. Таким образом, .лемма 2.1 позволяет интерпретировать сводимость П1 ос П2 как утверждение, что задача П2 “не проще’’ задачи Пь
Отношение "полиномиальной сводимости’’ особенно удобно, поскольку оно является транзитивным. Это устанавливает следующая лемма.
Лемма 2.2. Если Li ос L2 и L2 ос L3, то Li ос L3.
Доказательство. Пусть Si, S2 и S3— алфавиты языков Ьь L2 и L3 соответственно, функция f,: S*-»S‘ реализует полиномиальную сводимость L1 к L2, a f2: S‘—»S* — полиномиальную сводимость Ь2 к L3. Тогда функция f: S*—>S‘, которая для всех хе S* определяется соотношением Цх) —ЫА(Х))> реализует искомую сводимость языка L\ к языку L3. В самом деле, Цх)еЕ3 тогда и только тогда, когда xeL\, а вычислимость f за полиномиальное время получается с помощью рассуждений, аналогичных рассуждениям, использованным при доказательстве леммы 2.1. ■
Теперь можно сказать, что языки L\ и Ь2 (соответственно задачи распознавания П1 и Пг) полиномиально эквивалентны, если они сводятся друг к другу, т. е. L\ ос L2 и L2 ос Lx (имеет место сводимость Й1 ос П2 и П2осП1). Лемма 2.2 утверждает, что это отношение является отношением эквивалентности, а также, что отношение “ос" определяет частичное упорядочение возникающих классов эквивалентности языков (задач распознавания). На самом деле класс Р — это “наименьший" относительно этого частичного порядка класс эквивалентности и с вычислительной точки зрения его можно рассматривать как класс “самых легких” языков (задач распознавания). Класс NP-полных языков (задач) дает нам другой класс эквивалент-
ности, который характеризуется тем, что он содержит “самые трудные" языки (задачи распознавания) из NP.
Язык L называется NP-яолньш, если L е NP и любой другой язык U sNP сводится к L. Говоря неформально, задача распознавания П называется NP-полной, если П е NP и любая другая задача распознавания П'eNP сводится к П. Таким образом лемма 2.1 позволяет отождествить NP-полные задачи с “самыми трудными задачами из NP”. Если хотя бы одна NP-полная задача может быть решена за полиномиальное время, то и все задачи из NP также могут быть решены за полиномиальное время. Если хотя бы одна задача из NP труднорешаема, то и все NP-полные задачи труднорешаемы. Следовательно, любая NP-полная задача П обладает свойством, которое сформулировано в начале настоящего раздела: если Р =# =# NP, то П е NP\P. Точнее, П е Р тогда и только тогда, когда Р = NP.
В предположении Р Ф NP можно дать более точную картину класса NP, см. рис. 2.6. Заметим, что NP не просто
разделяется на две области: “класс Р” и “класс NP-полных задач”. Как мы увидим в гл. 7, если Р отличен от NP, то должны существовать задачи из NP, неразрешимые за полиномиальное время и не являющиеся NP-полными.
Мы будем интересоваться в основном NP-полными задачами. Хотя в начале настоящего раздела говорилось, что имеются простые методы доказательства NP-полноты задач, требования, только что описанные нами, как будто свидетельствуют об обратном. Нужно доказать, что любая задача из NP сводится к некоторому кандидату на NP-полную задачу. Совершенно неясно, как это можно было бы доказать. Априори, не очевидно даже, что существует хотя бы одна NP-полная задача.
Следующая лемма, которая немедленно следует из определений и транзитивности отношения ос, показывает, что вопрос сильно упростился бы, если бы была известна по крайней мере одна NP-полная задача.
Лемма 2.3. Если L\ и Lt принадлежат классу NP, Li— это NP-полный язык и L\ ос Lt, то Ег также NP-полный язык.
Доказательство. Так как L2GNP, то достаточно показать, что для всякого U г NP L' сводится к Lt. Рассмотрим любой язык U е NP. Так как L\ — это NP-полный язык, то L' сводится к L\. В силу транзитивности отношения ос, из сводимости L\ ос Li следует L' ос Lt. ■
На уровне задач распознавания эта лемма указывает простой путь доказательства NP-полноты новой задачи П, если известна хотя бы одна NP-полная задача. Для того чтобы доказать NP-полноту задачи П, достаточно показать, что
HeNP.
Какая-то одна известная NP-полная задача П' сводится к П.
Однако, прежде чем можно будет воспользоваться этим методом доказательства, необходимо найти некоторую исходную NP-полную задачу. Такую задачу дает нам фундаментальная теорема Кука, которую мы сформулируем и докажем в следующем разделе.
2.6. ТЕОРЕМА КУКА
Честь быть “первой” NP-полной задачей выпала на долю задачи распознавания из булевской логики, задачи, которую обычно называют ВЫПОЛНИМОСТЬ (сокращенно ВЫП). Термины, использующиеся для ее описания, определяются следующим образом.
Пусть U = {«1, и2um} — множество булевских переменных. Под набором значений истинности на множестве U будем понимать функцию t: U-> {7, F) *). Если /(u) = Т, то будем говорить, что и принимает значение “истина” относительно t; если /(u)=F, то будем говорить, что и принимает значение “ложь”. Если и — переменная из U, то и и й назовем литералами из U. Литерал и принимает значение “истина" относительно / в том и только в том случае, если переменная и принимает значение “истина" относительно t; литерал й принимает значение истина в том и только в том случае, если переменная и принимает значение “ложь”.
Дизъюнкцией над U назовем множество литералов над [/.например (ui, й3, ug}. Она представляет дизъюнкцию этих литералов и называется выполненной при некотором наборе значений истинности тогда и только тогда, когда при рассматриваемом наборе значений истинности хотя бы один из ее членов принимает значение “истина”. В нашем примере дизъюнкция будет выполнена относительно t, если одновременно не окажется, что /(ui) = F, /(из) = 7, /(u8) = F. Набор С дизъюнкций) над U называется выполнимым в том и только в том случае, если найдется некоторый набор значений истинности на множестве U, такой, что одновременно выполнены все дизъюнкции из С. Такой набор значений истинности называется выполняющим набором значений истинности для С. Задача ВЫПОЛНИМОСТЬ формулируется следующим образом:
*) От слов Truth — истина, False — ложь (англ.). — Прим, перев.
ВЫПОЛНИМОСТЬ
УСЛОВИЕ. Заданы множество переменных U и набор С дизъюнкций над U.
ВОПРОС. Существует ли выполняющий набор значений истинности для С?
Например, пусть U = {«ь и2} и С = {{«ь й2}, (йь «2}}. Это индивидуальная задача из ВЫП, ответ на которую есть “да”. Выполняющее задание значений истинности определяется так: Ци1) = Циг) = Т. С другой стороны, заменив С на С'= = {{«i, u2), {«1, ы2}, {йО}, получим пример индивидуальной задачи, ответ на которую есть “нет", поскольку С' невыполнима.
Теперь можно сформулировать фундаментальную теорему Кука [91].
Теорема 2.2 (теорема КукаУ Задача ВЫПОЛНИМОСТЬ есть NP-полная задача.
Доказательство. Легко видеть, что ВЫП лежит в классе NP. Недетерминированному алгоритму для ее решения достаточно указать набор значений истинности на исходном множестве переменных и осуществить проверку того, что этот набор значений выполняет все дизъюнкции из исходного набора С. Все это легко сделать (недетерминированным образом) за полиномиальное время. Таким образом, первое требование, которому должны удовлетворять NP-полные задачи, выполнено.
Для того чтобы проверить выполнение второго требования, вернемся к уровню языков, т. е. к представлению ВЫП языком £вып = L [ВЫП, е] для некоторой разумной схемы кодирования е. Необходимо показать, что для всех языков L е NP имеет место соотношение L ос £вып- Разные языки из NP могут сильно отличаться; число этих языков бесконечно, поэтому невозможно указать отдельное сведение для каждого из них. Однако каждый язык из NP может быть представлен в стандартном виде, а именно НДМТ-программой, работающей полиномиальное время и распознающей этот язык.
Такое представление позволяет иметь дело с общей НДМТ- программой, время работы которой полиномиально, и получить общую сводимость языка, распознаваемого этой программой, к ^вып- Если эту общую сводимость специализировать для конкретной НДМТ-программы М, распознающей Lm, то получится искомое полиномиальное сведение Ьм к £вып- Таким образом, по существу, для всех L е NP будет представлено общее доказательство того, что L ос Ьвып.
Вначале рассмотрим произвольную НДМТ-программу М с полиномиальным временем работы, которая имеет компоненты Г, S, b, Q, go, qy, дм, 6 и распознает язык L = Ьм Кроме того.
пусть р(п)— полином с целыми коэффициентами, ограничивающий сверху временную сложность Тм(п'). (Не умаляя общности, можно считать, что р(м)^п для всех neZ+.) Функция ft, реализующая общую сводимость, будет описана в терминах М, Г, 2, 6, Q, q0, qY, qN, 6 и р.
Удобно рассматривать ft как отображение из множества слов в алфавите 2 в индивидуальные задачи из ВЫП, а не в слова в алфавите 2, которые кодируют задачи из ВЫП, так как детали, связанные с кодированием, могут быть легко восполнены. Таким образом, функция ft будет обладать тем свойством, что для всех хе 2* принадлежность хе L имеет место в том и только в том случае, если для набора дизъюнкций Il(x) имеется выполняющий набор значений истинности. Ключом к построению функции ft является использование некоторого набора дизъюнкций для записи утверждения, что х принимается НДМТ-программой М, т. е. утверждение xeL.
Если входное слово хе 2* принимается программой М, то для х существует принимающее вычисление программы М, такое, что число шагов на стадии проверки и число символов в слове-догадке ограничены величиной р(п), где п = |х|. В таком вычислении будут участвовать лишь ячейки с номерами от —р(п) до p(n)+ 1. Это следует из того, что читающая/пишу- щая головка начинает работу в ячейке с номером 1 и на каждом шаге сдвигается не более чем на 1 ячейку. Проверяющее вычисление полностью определяется заданием в каждый момент времени содержания ячеек с указанными номерами, внутреннего состояния и положения читающей/пишущей головки. Далее, поскольку в проверяющем вычислении имеется не более р(п) шагов, то необходимо учесть не более p(n)+ 1 моментов времени. Это позволяет полностью описать такое вычисление, используя полиномиально ограниченное число булевских переменных и некоторый набор значений истинности на их множестве.
Множество переменных U, участвующих в описании функции ft, предназначено именно для указанных целей. Перенумеруем элементы множеств Q и Г следующим образом: Q; q0, qi = qY, Яг-Ям* Яз. •••, Яг, гДе r=|Q|; Г: $о = 6, Si, 5г> ..., sD, где у=|Г| — 1. В дальнейших рассуждениях будут участвовать три типа переменных, каждому из которых придается определенный смысл согласно рис. 2.7. При этом фраза “в момент времени i” служит сокращением точного выражения “после выполнения i-ro шага проверяющего вычисления”.
Вычисление программы М очевидным образом индуцирует на множестве этих переменных набор значений истинности, если принять соглашение, что при окончании вычисления раньше момента времени р(п) конфигурация остается неизменной во все
моменты времени после остановки, т. е. сохраняются заключительное состояние, положение головки и запись на ленте. В нулевой момент времени запись на ленте состоит из входного слова х, расположенного в ячейках с номерами от 1 до п, и слова-догадки w в ячейках с номерами от —1 до |®|, при этом все остальные ячейки пусты.
С другой стороны, произвольный набор Значений истинности этих переменных не обязательно соответствует какому-то вычислению, а тем более принимающему. При произвольном наборе значений истинности переменных в некоторой ячейке могли
Переменная Придаваемый смысл
QI*. А]0€;/505k sн [/,/]0s^pW- р (л) SC/s2 P (л) + 1$ [/, /. *10sС I 5Cp(«)- Р (П) 5;/<; p (л) +105% 6 sQI*. А]0€;/505k sн [/,/]0s^pW- р (л) SC/s2 P (л) + 1$ [/, /. *10sС I 5Cp(«)- Р (П) 5;/<; p (л) +105% 6 sВ момент времени I программа М находится в состоянии q^В момент времени i читающая/пишу- щая головка просматривает ячейку с номером /В момент времени i в /-й ячейке записан символ $»В момент времени I программа М находится в состоянии q^В момент времени i читающая/пишу- щая головка просматривает ячейку с номером /В момент времени i в /-й ячейке записан символ $»
QI*. А]
0€
;/5
05
k s
н [/,/]
0s
^pW
- р (л) S
C/s
2 P (л) + 1
$ [/, /. *1
0s
С I 5
Cp(«)
- Р (П) 5
;/<
; p (л) +1
05
% 6 s
QI*. А]
0€
;/5
05
k s
н [/,/]
0s
^pW
- р (л) S
C/s
2 P (л) + 1
$ [/, /. *1
0s
С I 5
Cp(«)
- Р (П) 5
;/<
; p (л) +1
05
% 6 s
В момент времени I программа М находится в состоянии q^
В момент времени i читающая/пишу- щая головка просматривает ячейку с номером /
В момент времени i в /-й ячейке записан символ $»
В момент времени I программа М находится в состоянии q^
В момент времени i читающая/пишу- щая головка просматривает ячейку с номером /
В момент времени i в /-й ячейке записан символ $»
Рис. 2.7. Переменные набора дизъюнкций fL (х) и придаваемый им смысл
бы быть одновременно записаны несколько различных символов, машина могла бы находиться одновременно в нескольких различных состояниях, а читающая/пишущая головка могла бы одновременно просматривать любое подмножество ячеек с номерами от —р(п) до p(n) + 1. Описание функции ft осуществляется посредством построения такого набора дизъюнкций, содержащего перечисленные переменные, что набор значений истинности будет выполняющим тогда и только тогда, когда этот набор значений истинности индуцируется некоторым принимающим вычислением на входе х, причем стадия проверки этого вычисления выполняется не более чем за р(п) шагов и слово-догадка имеет длину не более р(п). Таким образом мы получим импликации:
хе L ФФ на входе х существует принимающее вычисление программы Л4
<=Ф на входе х существует принимающее вычисление программы М, число шагов которого не превосходит р(п), а слово-догадка w имеет длину, равную р(п)
<=Ф существует выполняющее задание значений истинности для набора дизъюнкций задачи /д(х).
Это будет означать, что для ft выполнено одно из двух условий, требующихся в определении полиномиальной сводимости. Другое условие, заключающееся в том, что ft должна быть вычислима за полиномиальное время, можно будет легко проверить после того, как описание ft будет закончено.
Дизъюнкции индивидуальной задачи }l(x) можно подразделить на 6 групп, каждая из которых будет налагать ограничение определенного типа на любой выполняющий набор значений истинности. Эти группы показаны на рис. 2.8.
ГруппадизъюнкцийГруппадизъюнкцийНалагаемое ограничениеНалагаемое ограничение
Группадизъюнкций
Группадизъюнкций
Налагаемое ограничение
Налагаемое ограничение
G1В любой -момент времени i программа М находится ровно
в одном состоянии.
GjВ любой момент времени i читающая/пишущая головка прос
матривает ровно одну ячейку.
GjВ любой момент времени i каждая ячейка содержит ровно
один символ из Г.
GtВ момент времени 0 вычисление находится в исходной кон
фигурации стадии проверки при входе х.
GeНе позднее чем через р (л) шагов М переходит в состояние
qv и, следовательно, принимает х.
GeДля любого момента времени /, 0 ^ I ^ р (л), конфигурация
программы М в момент времени / + 1 получается из конфигурации в момент времени I одноразовым применением функции перехода 6.
Рис. 2.8. Группы дизъюнкций для ^ (х) и ограничения, накладываемые ими на выполняющий набор истинностных значений.
Легко видеть, что если все 6 групп дизъюнкций действительно осуществляют поставленные перед ними цели, то выполняющий набор значений истинности обязан соответствовать нужному принимающему вычислению на входе х. Единственное, что остается, — это указать способ построения групп дизъюнкций, осуществляющих эти цели.
Группа Gi состоит из следующих дизъюнкций:
{QU, 0], Q[Z, 1]Q[i, г]}, 0<i<p№,
{QU, Л, QU,/']}, o^i^pW, 0<j<j'<r.
Первые р(п)+ 1 из этих дизъюнкций могут быть выполнены одновременно в том и только в том случае, если в каждый момент времени t программа М находится по крайней мере в одном состоянии. Остальные (р(п) 4-1) (г + 1) (г/2) дизъюнкций могут быть выполнены одновременно в том и только в том случае, если ни в один момент времени I программа М не нахо-
дится более чем в одном состоянии. Таким образом, 0^ выполняет свое назначение.
Группадизъюнк-цийГруппадизъюнк-цийГруппы Gi и Оз строятся аналогично, а группы О< и О5 очень просты, каждая из них включает дизъюнкции, состоящие только из одного литерала. На рис. 2.9 дано полное описание первых пяти групп дизъюнкций. Отметим, что как число дизъюнкций в этих группах, так и максимальное число литералов, входящих в каждую дизъюнкцию, ограничены некоторым полиномом от п (так как г и и — констднты, которые определяются по М и, значит, по языку L).
Группадизъюнк-ций
Группадизъюнк-ций
Дизъюнкции, входящие в группу
G, {Q[i, 0]. Q[Z, 1]Q [Z, г-Ц, 0<Z<p(n), {Q[Z,/1, оТГ7В, 0<z<p(n), 0</</'<n
G, (^[Z, -p(n)], H\l, -p(n) + l]H[l, p(n) + l)}, 0<Z<p(n); W\l, /L HVi, /'D. O<z<p(n),— p(nX/</'<p(n) +1
G, {S [Z, j, 0]. S [Z, /. 1 ]S [Z, /, o]}, 0 < Z < p (n),
—pW<i<p (") + *-
{^ [z, L kv s [Z, /, FJ}, 0 < Z < p (n), -p (») </<p (л) + 1,
0<fe < As'^o,
0, {Q [0, 0]}, (Я [0, 1]}, {S [0, 0, 01},
(S [0, 1, ML (S [0, 2, ft,lL ..., (S [0, n, ML {S [0, n+1, 0]}, {$[0, n + 2, 01){S[0,p(n)+ l, 0]},
где x-s^ ... s^,
G, {Q[p (n), Ш-
Рис. 2.9. Первые 5 групп дизъюнкций для fL (х).
Несколько сложнее выглядит описание последней группы дизъюнкций — Ge, которая гарантирует, что каждая следующая конфигурация машины получается из предыдущей в результате применения одной команды программы М. Эта группа состоит из двух подгрупп дизъюнкций.
Первая подгруппа гарантирует, что если читающая/пишущая головка в момент времени i не просматривает ячейку с номером /, то символ в ячейке с номером j от момента времени I к моменту времени i + 1 не изменится. Дизъюнкции этой подгруппы имеют вид
^1П77], Н\1. /], S[/+ 1, /, /]}, 0</<р(л),
— Р(«Х/<Р(п)+1. 0<L^v.
Зафиксируем произвольно момент времени I, ячейку с номером / и символ я. Если в момент времени i читающая/пишущая головка не просматривает ячейку с номером / и в этой ячейке в момент времени I записан символ /, а в момент времени i + 1 его там уже нет, то указанная выше дизъюнкция не будет выполнена (в противном случае она будет выполнена). Таким образом, 2(р(п)+ 1)2(и + 1) дизъюнкций этой группы выполняют свое назначение.
Вторая подгруппа дизъюнкций из группы G6 гарантирует, что перестройка одной машинной конфигурации в следующую происходит согласно функции перехода б программы М. Для каждой четверки
(1, /, k, I), ККр№, — p(n)</<p(n)+1,O^fe^r и O^Z^v,
эта подгруппа содержит следующие три дизъюнкции:
{ЩП, ОТШ, ЖТТ], я[/+1, / +А]}, (яО оТЖ, ЖТЛ, QU +1, &1}, <Ж7Ь оО svTTTv s[/ +1, /, zij,
где значения А, к' и V определены так:
если qteQ\^Y, q^}, то б (^fe, 8^ = (qk„ Sl„ А), а если qh г {ру, q^, то А = 0, к' = к и V = 1.
Нетрудно понять (хотя для этого может потребоваться несколько минут раздумий), что эти 6(р(п)) (p(n) + l) (г+1) (о+О дизъюнкций дают необходимое ограничение на выполняющий набор значений истинности.
Таким образом, мы показали, как построить группы дизъюнкций Gi—Ge, которые выполняют свое назначение. Если xeL, тоу программы М на входе х есть принимающее вычисление длины не более р(/г), и это вычисление дает при заданной интерпретации переменных набор значений истинности, который выполнит все дизъюнкции из С = Gi U Ог U Оз G< U О 5 U О6. Наоборот, набор дизъюнкций С построен так, что любой выполняющий набор значений истинности для С обязан соответствовать некоторому принимающему вычислению программы М на входе х. Отсюда следует, что для Д(х) имеется выполняющий набор значений истинности тогда и только тогда, когда хе L.
Теперь осталось показать, что для любого фиксированного языка L индивидуальная задача +(х) может быть построена за время, ограниченное полиномом от n = \xl. Если язык L задан, то можно выбрать некоторую НДМТ-программу М, которая рас-
познает L за время, ограниченное полиномом р (нет необходимости за полиномиальное время находить саму недетерминированную программу, так как необходимо лишь показать, что отображение ft существует). Если имеются определенная НДМТ- программа М и многочлен р, то построение множества переменных U и набора дизъюнкций С требует чуть больше работы, чем заполнение всех позиций в стандартной (хот'я и довольно сложной) формуле. Полиномиальная ограниченность этого вычисления будет ясна, если мы покажем, что Length [Д(х)] ограничена сверху полиномом от п, где Length [/], как указано в разд. 2.1, характеризует длину слова, кодирующего индивидуальную задачу I, при некоторой разумной схеме кодирования.
В качестве «разумной» функции длины для задачи ВЫП можно, например, взять Ц/|-|С|. Ни одна из дизъюнкций не может содержать более 2-|(/| литералов (т. к. общее число литералов равно 2-|1/|), а число символов, необходимое для описания каждого индивидуального литерала, не более log|£/|, но этой величиной можно пренебречь, так как она дает полиномиальный вклад в общую длину задачи. Поскольку г и и фиксированы заранее, то они могут увеличить |(/| и |С| в постоянное число раз, поэтому имеем |(71 = О(р(п)2) и |С| = О(р(п))2. Следовательно, Length [Д (х) ] = |t/| • |С| = О (р(п)4) и, значит, ограничена полиномом от п, что и требовалось.
Таким образом, преобразование ft может быть вычислено алгоритмом, имеющим полиномиальную временную сложность (однако конкретная полиномиальная граница для сложности будет зависеть от L, а также от выбора М и р), из чего можно заключить, что для всех L е NP функция fL вычислима за полиномиальное время и отображает L в ВЫП (точнее, отображает L в £вып). Отсюда вытекает утверждение теоремы, что ВЫП есть NP-полная задача. ■
Доказательство результатовоб NP-полноте
Если бы все доказательства NP-полноты были так же сложны, как доказательство NP-полноты задачи ВЫПОЛНИМОСТЬ, то очень сомнительно, что список NP-полных задач смог бы стать столь обширным, как в настоящее время. Однако, как указывалось в разд. 2.4, если уже известна одна NP-полная задача, то процедура доказательства NP-полноты других задач значительно упрощается. Для доказательства NP-полноты задачи П е NP достаточно показать, что какая-нибудь из известных NP-полных задач П' может быть сведена к П. Таким образом, в дальнейшем процесс доказательства NP-полноты задачи распознавания П будет состоять из следующих четырех шагов: (1) доказательства того, что П лежит в NP;
выбора известной NP-полной задачи П';
построения функции /, сводящей задачу П' к задаче П, и (4) доказательства того, что функция / осуществляет полиномиальное сведение.
Цель настоящей главы состоит не только в том, чтобы ознакомить читателей с конечными результатами этого процесса (с окончательными доказательствами NP-полноты), но также и в том, чтобы подготовить их к самостоятельному поиску таких доказательств.
В разд. 3.1 приводятся 6 задач, которыми чаще других пользуются при доказательстве результатов об NP-полноте в качестве “известных NP-полных задач”, и доказывается NP-полнота этих шести задач. В разд. 3.2 приводится описание трех общих подходов к установлению сводимости задач и дается их иллюстрация посредством доказательства NP-полноты большого числа различных задач. Заключительный раздел содержит несколько результатов об NP-полноте, которые предлагается доказать читателю.
ШЕСТЬ ОСНОВНЫХ NP-ПОЛНЫХ ЗАДАЧ
Когда опытным практикам встречается задача П, NP-пол- ноту которой требуется доказать, их преимущество заключается в том, что они имеют богатый выбор путей такого доказательства. Вполне может случиться, что в прошлом они уже доказывали или видели доказательство NP-полноты похожей зада-
чи П'. Это может привести к мысли попытаться построить доказательство NP-полноты задачи П, копируя доказательство NP-полноты задачи П', или просто сводя задачу П' к задаче П. Во многих случаях это может привести к достаточно простому доказательству NP-полноты задачи П.
Однако очень часто не удается найти, NP-полную задачу, похожую на П (даже располагая обширным списком задач, подобным тому, который приведен в конце книги), В таких случаях практику может быть не ясно, какая из сотен известных NP-полных задач лучше всего подходит в качестве основы искомого доказательства. Однако предыдущий опыт может оказаться полезным для ограничения области выбора некоторым “ядром” из базовых задач, использовавшихся ранее. Хотя теоретически любую из известных NP-полных задач можно наравне с другими выбрать для доказательства NP-полноты новой задачи, на практике оказывается, что некоторые задачи подходят для этой цели гораздо лучше других. Следующие шесть задач входят в число тех, которые используются наиболее часто и для начинающего они могут служить “основным ядром” списка известных NP-полных задач.
3-ВЫПОЛНИМОСТЬ (3-ВЫП)
УСЛОВИЕ. Дан набор С = {сь с2, ..., ст) дизъюнкций на конечном множестве переменных U, таких, что | cz| = 3, 1 ^ i ^ т. ВОПРОС. Существует ли на U набор значений истинности, при котором выполняются все дизъюнкции из С?
ТРЕХМЕРНОЕ СОЧЕТАНИЕ (3-С)
УСЛОВИЕ. Дано множество М с w X XX Y, где W, X и Y — непересекающиеся множества, содержащие одинаковое число элементов q.
ВОПРОС. Верно ли, что М содержит трехмерное сочетание, т. е. подмножество М' £ М, такое, что |ЛГ|=<7 и никакие два разных элемента М' не имеют ни одной равной координаты?
ВЕРШИННОЕ ПОКРЫТИЕ (ВП)
УСЛОВИЕ. Дан граф G=(V, Е) и положительное целое число K,K^\V\.
ВОПРОС. Имеется ли в графе G вершинное покрытие не более чем из К элементов, т. е. такое подмножество V's V, что |У'|^К и для каждого ребра {и, и} е Е хотя бы одна из вершин и или и принадлежит V'?
КЛИКА
УСЛОВИЕ. Дан граф G ~(V,E) и положительное целое число
ВОПРОС. Верно ли, что G содержит некоторую клику мощности не менее /, т. е. такое подмножество V s V, что | У' | ^ J и любые две вершины из V' соединены ребром из £?
ГАМИЛЬТОНОВ ЦИКЛ (ГЦ)
УСЛОВИЕ. Дан граф G =(У, £).
ВОПРОС. Верно ли, что G содержит гамильтонов цикл, т. е. такую последовательность <Уц У2, • • ■, vn> вершин графа G, что п= |У|, (on, uJeE и {уц у,-ц}е Е для всех i, 1 ^ i ^ п.
РАЗБИЕНИЕ
УСЛОВИЕ. Заданы конечное множество А и “вес" s(a)eZ+ для каждого а е А.
ВОПРОС. Существует ли подмножество А'г А, такое, что
2 s^ = £ s(a)?
аг А'аеАхА'
Одна из причин по в том, что все ониОдна из причин по в том, что все ониВЫПОЛНИМОСТЬВЫПОЛНИМОСТЬIз-выпIз-выпРАЗБИЕНИЕ ГЦРАЗБИЕНИЕ ГЦРис. 3.1. Диаграмма последовательности сведения задач, используемых для доказательства NP-полноты шести основных задач.Рис. 3.1. Диаграмма последовательности сведения задач, используемых для доказательства NP-полноты шести основных задач.этих шести задач заключается [сь в исходном списке из 21 NP-полной задачи, приведенном в работе Карпа [280].Мы начнем демонстрацию методов доказательства NP-полноты с доказательства NP-полноты этих шести задач, указывая в подходящих случаях такие их варианты, NP-полнота которых более или менее непосредственно следует из NP-полно-
Одна из причин по в том, что все они
Одна из причин по в том, что все они
ВЫПОЛНИМОСТЬ
ВЫПОЛНИМОСТЬ
I
з-вып
I
з-вып
РАЗБИЕНИЕ ГЦ
РАЗБИЕНИЕ ГЦ
Рис. 3.1. Диаграмма последовательности сведения задач, используемых для доказательства NP-полноты шести основных задач.
Рис. 3.1. Диаграмма последовательности сведения задач, используемых для доказательства NP-полноты шести основных задач.
ты этих шести задач.
Первая сводимость будет получена с помощью задачи ВЫПОЛНИМОСТЬ, посколь
ку пока это единственная задача, NP-полноту которой мы установили. Однако по мере доказательства NP-полноты этих шести задач список NP-полных задач будет расширяться и доказательство NP-полноты некоторой задачи может быть получено с использованием любой из задач, NP-полнота которой установлена раньше, чем для задачи П. На рис. 3.1 указана последовательность сведения задач, которая применяется в доказательстве NP-полноты шести основных задач, причем если стрелка ведет от одной задачи к другой, то первая сводится ко второй. Эта последовательность не совпадает с последовательностью, выбранной Карпом, но даже в
тех случаях, когда они совпадают, мы иногда изменяем или модифицируем доказательство Карпа, чтобы лучше проиллюстрировать общие приемы сводимости.
3-выполнимость
Задача 3-ВЫПОЛНИМОСТЬ есть просто ограниченный вариант задачи ВЫПОЛНИМОСТЬ, в котором каждая индивидуальная задача имеет ровно три литерала в каждой дизъюнкции. Из-за своей простой структуры эта задача наиболее часто применяется для доказательства результатов об NP-полноте.
Теорема 3.1. Задача 3-ВЫПОЛНИМОСТЬ является NP-пол- ной.
Доказательство. Нетрудно видеть, что 3-ВЫП е NP. Это следует из того, что недетерминированному алгоритму необходимо угадать лишь набор значений истинности переменных задачи и проверить за полиномиальное время, будут ли при таком наборе значений истинности выполняться все заданные трехлитеральные дизъюнкции.
Сведем задачу ВЫП к задаче 3-ВЫП. Пусть U = (ui, u2, ... ..., un} — множество переменных и С = {ci, с2, .... ст) — произвольный набор дизъюнкций, определяющий произвольную индивидуальную задачу из ВЫП. Построим набор С' трехлитеральных дизъюнкций на некотором множестве переменных U', такой, что С' выполним тогда и только тогда, когда выполним С.
Набор С' будет строиться путем замены каждой отдельной дизъюнкции Cj е С “эквивалентным” набором С/ трехлитеральных дизъюнкций на множестве U исходных переменных и множестве U's некоторых дополнительных переменных, причем переменные из U'j будут использоваться только в дизъюнкциях из С/. Другими словами,
^=^и(/0 ^) и m с
Таким образом, нужно только показать, как исходя из с/ можно построить С/ и U'].
Пусть С/ задается множеством {zi, z2, .... г*}, где г<— литералы на множестве U. Способ образования С} и и, зависит от значения к.
Случай 1. k=l. Тогда Z/' = {y‘, у^,
Ci = ^P У). У,Ь ^, у\, у^, {2,, ду У^, {г„ ду д^у Случай 2. к = 2. Тогда 6/' = \дуу
Cj = {{Zp z2, i/}}, {zp z2, д^у
Случай 3. к = 3. Тогда 1^ = 0, ^ = ^0^.
Случай 4. А > 3. Тогда U' = (yy 1 ^Z ^к — 3),
С; = {{гр z2, у'}} U {{у/, zi+2, yj+’j : 1 < i < к - 4} U
U{{^3> z6_p z6}}.
Для доказательства того, что здесь в самом деле имеет место сводимость, необходимо показать, что набор дизъюнкций С' выполним тогда и только тогда, когда выполним набор дизъюнкций С. Предположим вначале, что t; U -> {Т, F} есть набор значений истинности, выполняющий С. Покажем, что Z может быть продолжен до набора значений истинности t': U' -* ~^{T,F}, который выполняет С'. Поскольку переменные в множестве U' \ U делятся на группы U'j и так как переменные в каждой группе U'j входят только в дизъюнкции, принадлежащие С/, то достаточно показать, как t может быть продолжен на каждое множество U'j отдельно, и в каждом случае нужно проверить, что выполняются все дизъюнкции в соответствующем множестве С/.
Это можно сделать следующим образом. Если U'j построены, как в случае 1 или 2, то дизъюнкции из С/ уже выполнены с помощью /, поэтому t может быть продолжен на U'j произвольно, например, если положить f (у) = Т для всех yeU',. Если U'j построено, как в случае 3, то U'j — пусто и единственная дизъюнкция в С/ уже выполнена с помощью t. Остается только случай 4, который соответствует дизъюнкции (zb z2, ... ..., zfc} из С, причем к > 3. Поскольку t — выполняющий набор значений истинности для С, то найдется такое целое I, что Z/ при / принимает значение истина. Если /=1 или 2, то полагаем t'^y1j')=F, 1^1^ к — 3. Если 1 = к—1 или к, то полагаем ^(д‘) = ^, 1 ^ * ^ А — 3. В противном случае полагаем Z'^) = Г при l^Z^Z— 2 и t'^y^ = F при Z-l^Z^-3. Легко проверить, что такой набор значений истинности обеспечит выполнение всех дизъюнкций в С/, поэтому f выполняет все дизъюнкции из С'. Обратно, если t' — некоторый выполняющий набор значений истинности для С', то легко проверить, что ограничение f на переменные из U должно быть выполняющим набором значений истинности для С. Таким образом, С' выполним тогда и только тогда, когда выполним С.
Для того чтобы убедиться, что эта сводимость полиномиальная, достаточно заметить, что число трехлитеральных дизъюнкций в С' ограничено полиномом от мп. Следовательно, размер индивидуальной задачи 3-ВЫП ограничен сверху некоторым полиномом от размера соответствующей задачи ВЫП, а так как все детали построения сводимости очевидны, то читателю будет нетрудно проверить, что эта сводимость 'является полиномиальной. ■
Ограниченная структура задачи 3-ВЫП делает ее гораздо более полезной при доказательстве результатов об NP-полноте по сравнению с задачей ВЫП. Любое доказательство, основанное на задаче ВЫП (кроме только что приведенного), может быть легко перестроено в доказательство, основанное на 3-ВЫП, даже без изменения функции, осуществляющей сводимость. На самом деле дополнительное условие о том, что все дизъюнкции имеют одинаковую длину, часто может упростить сводимость, которую нужно построить, и тем самым облегчить ее отыскание. Более того, очень малая длина дизъюнкций позволяет использовать сводимости, которые вообще не могли бы быть построены для индивидуальных задач с дизъюнкциями большей длины. Это наводит на мысль, что было бы еще лучше, если бы удалось показать, что аналогичная задача 2-ВЫПОЛНИМОСТЬ (каждая дизъюнкция содержит ровно два литерала) является NP-полной. Однако 2-ВЫП может быть решена методом “резолюций" за время, ограниченное полиномом от произведения числа дизъюнкций и числа переменных заданной индивидуальной задачи [91] (см. также [114]), и, следовательно, принадлежит классу Р.
Трехмерное сочетание
Задача ТРЕХМЕРНОЕ СОЧЕТАНИЕ (3-С) обобщает следующую известную задачу о “бракосочетании": имеется п холостых мужчин и п незамужних женщин, а также список всех пар мужчин и женщин, согласных вступить в брак друг с другом; можно ли осуществить п бракосочетаний так, чтобы каждый получил бы приемлемого супруга (или супругу), причем никто не должен вступать в брак дважды? Аналогичным образом в задаче ТРЕХМЕРНОЕ СОЧЕТАНИЕ множества W, X и У соответствуют трем различным “полам", а каждая тройка из М отвечает “трехмерному сочетанию", приемлемому для всех трех участников. Приверженцы традиций будут довольны, узнав, что, в то время как задача 3-С является NP-полной, обычная задача о бракосочетании может быть решена за полиномиальное время (см., например, [212]).
Теорема, 3.2. Задача ТРЕХМЕРНОЕ СОЧЕТАНИЕ является NP-полной.
Доказательство. Легко видеть, что 3-С е NP. Это следует из того, что недетерминированному алгоритму нужно только угадать подмножество в М, состоящее из ^ = | W'| = | X | = | У | троек, и за полиномиальное время проверить, что любые две из угаданных троек отличаются по всем координатам.
Сведем задачу 3-ВЫП к задаче 3-С. Пусть U = {щ, и2, ■ • ■ ..., un} — множество переменных и С = {ci, с2Ст}— множество дизъюнкций произвольной индивидуальной задачи из 3-ВЫП. Нужно построить непересекающиеся множества W, X, У и М s W X X X У, такие, что | №| = |Х| = | У| и М содержит паросочетание в том и только в том случае, когда С выполнима.
Искомое множество упорядоченных троек М будет разбито на три различных класса в соответствии с их функциональным назначением: “набор значений истинности” и “развертка”, “проверка выполнения” и “достройка".
Тройки, входящие в класс "набор значений истинности и развертка”, разбиваются на группы (компоненты), каждая из которых соответствует одной переменной usU, а ее строение зависит от общего числа ш дизъюнкций в С. Строение этой компоненты для случая m = 4 показано на рис. 3.2. В общем случае каждая такая компонента, соответствующая переменной Ui, включает "внутренние" элементы а([/] еХ и МЛ е У, 1 ^ / ^ т, которые не будут входить ни в какую тройку вне этой компоненты, и “внешние” элементы а/[/], й; [у] eW, 1 ^ / ^ m, которые будут входить в другие тройки. Образующие эту компоненту гройки могут быть подразделены на два множества:
= {(Ш «ДЛ, W): Y^iCmy,
П = {(«, [/], at [/ + 1], bt [/]): 1 < / < /«} J
|J{(“dm], 0,11]. Mm])}.
Так как внутренние элементы {М/], МЛ; 1 ^/ ^ m} могут входить только в тройки, принадлежащие множеству Tt = Т\ U 7/, то легко видеть, что любое грехмерное сочетание М' должно иметь ровно иг троек из 7/, а именно либо все гройки из Г], либо все тройки из Tfi. Следовательно, можно считать, что компонента из 7/ приводит к тому, что трехмерное сочетание индуцирует присвоение переменной щ значения “истина” или “ложь". Таким образом, трехмерное сочетание M'sM определяет набор значений истинности на множестве U, при этом переменная и/ принимает значение “истина" тогда и только тогда, когда М'ПТ1 = Ть.
Каждая компонента множества М, предназначенная для проверки выполнимости, соответствует одной дизъюнкции с/ е С. Такая компонента содержит только два «внутренних» элемента si[j]eX и $2[/]е У, а также “внешние” элементы из множества {wi f/L й/1Л: 1 ^ i ^ п}, выбираемые в зависимости от того, ка-
й[3]
Рис. 8.2. Компонента Ть задающая значения истинности при m = 4 (нижние индексы у переменных для простоты опущены). Должно быть выбрано либо множество Г, (заштрихованное множество), либо множество Т^ (иезаштрихо- ванное множество), при этом остаются НЕПОКРЫТЫМИ (т. е. не объединенными в тройки) либо все U{ [/], либо все й( [/] соответственно.
кие литералы содержатся в дизъюнкции с/. Множество троек, образующих эту компоненту, определяются следующим образом:
С, = {(«<[/], зДЛ, з2 [/]): й( ecz}|J {(«<[/], ^^Ь $2^: “<есЛ-
Итак, любое трехмерное сочетание М' еМ должно содержать ровно одну тройку из С/. Но это условие может быть выполнено только в том случае, если для некоторого литерала и, е с, (или Ui е с/) элемент и, [/] (соответственно щ [/]) не войдет ни в одну из троек множества Tif\M', а это будет иметь место тогда и только тогда, когда набор значений истинности, определяемый множеством М', выполняет дизъюнкцию с/.
Построение нужной индивидуальной задачи из 3-С будет закончено после описания одной большой компоненты “достройки”
G. Эта компонента включает внешние элементы g\ [А] е X, g2[A]e У, 1 ^ А ^ m (и— 1), а также внешние элементы вида UiViA (или “‘Ш из множества W. Компонента G состоит из следующего множества троек:
G = {(«,[/], Si [A], gz 1^1), (ut [/1, gjfe], g2 [ft]):
1 ^ k ^ m (n — 1), 1 ^ i ^ n, 1 ^ /"^ m}.
Таким образом, каждая пара £4 [А], gzW должна войти в трехмерное сочетание только с одним из элементов и« [/"] или й»[/], не попавших в тройки из М'ХС. Имеется ровно т(п—1) таких “непокрытых” внешних элементов, и структура компоненты G обеспечивает, что они всегда могут быть покрыты с помощью выбора соответствующего подмножества М'ПО. Следовательно, компонента G гарантирует, что, если для некоторого подмножества из М\6 выполняются все ограничения, налагаемые компонентами набора значений истинности, тогда это подмножество может быть дополнено до трехмерного сочетания в М.
Резюмируя сказанное, положим:
гдегдеW = {и,Ш, u^iY l^t<n, 1</<т},
где
где
Л = {а<[Л: l^i^n, 1^/^т},
Si = {si[/]: 1 </<т},
Gi = {gt[/I: 1</<т(п-1)};
y = SUS2UG2,
B=(6f[/]: l^i^п, 1^/^т},52 = {s2[/]: 1</<т},G2 = {52[/]: l<j<m(n—1)},B=(6f[/]: l^i^п, 1^/^т},52 = {s2[/]: 1</<т},G2 = {52[/]: l<j<m(n—1)},где
B=(6f[/]: l^i^п, 1^/^т},
52 = {s2[/]: 1</<т},
G2 = {52[/]: l<j<m(n—1)},
B=(6f[/]: l^i^п, 1^/^т},
52 = {s2[/]: 1</<т},
G2 = {52[/]: l<j<m(n—1)},
Заметим, что каждая тройка из Af есть элемент множества W X X X У, что и требовалось. Кроме того, поскольку множество М содержит только
2mn + 3m + 2m2n (п — 1)
троек и множество М в терминах индивидуальной задачи из 3-ВЫП определяется явным образом, легко видеть, что М может быть построено за полиномиальное время. Из комментариев,
которыми сопровождалось описание множества М, немедленно следует, что оно не может содержать трехмерного сочетания, если набор С невыполним. Теперь необходимо доказать, что существование выполняющего набора значений истинности для набора дизъюнкций С влечет за собой существование в М трехмерного сочетания.
Пусть t: U -* (Т, F} — произвольный выполняющий набор значений истинности для С. Построим трехмерное сочетание М' £ М следующим образом. Для каждой дизъюнкции с/ е С рассмотрим некоторый литерал z/E {«;, «/| 1 ^ I ^ п} Псь принимающий значение “истина" при отображении t (такое г/ должно существовать, поскольку t выполняет с^. Затем положим
"’Чч.Ц-/0и(.(к/0и(Д{(г'аsi w> аМ»)и°' где G'— соответствующее подмножество множества G, выбранное так, что оно содержит все g\ [Л], g^ [Л] и оставшиеся и,- [j] и й,!/]. Нетрудно проверить, что такое множество G' всегда можно выбрать и что полученное в результате множество М' будет трехмерным сочетанием. И
Вместо задачи 3-С для доказательства результатов об NP- полноте часто пользуются следующей, более общей и более наглядной версией этой задачи.
ТОЧНОЕ ПОКРЫТИЕ 3-МНОЖЕСТВАМИ (ТП-3)
УСЛОВИЕ. Задано конечное множество X, такое, что |Х| = 3^, и семейство С трехэлементных подмножеств множества л.
ВОПРОС. Верно ли, что семейство С содержит точное покрытие множества X, т. е. такое подсемейство С' = С, что каждый элемент из X содержится ровно в одном элементе из С?
Заметим, что любую индивидуальную задачу из 3-С можно рассматривать как индивидуальную задачу из ТП-3, считая просто, что М состоит из неупорядоченных троек элементов множества W U X U У. При этом трехмерные сочетания для индивидуальной задачи из 3-С взаимно однозначно соответствуют точным покрытиям соответствующей индивидуальной задачи из ТП-3. Таким образом, задача 3-С есть ограниченная версия задачи ТП-3, и NP-полнота ТП-3 следует из естественного сведения к ней задачи 3-С.
Вершинное покрытие и Клика
Несмотря на то что задачи ВЕРШИННОЕ ПОКРЫТИЕ и КЛИКА при доказательстве результатов об NP-полноте используются независимо, в действительности они представляют собой
всего лишь разные способы рассмотрения одной и той же задачи. Для того чтобы это понять, удобно рассмотреть их вместе с третьей задачей, которая называется НЕЗАВИСИМОЕ МНОЖЕСТВО.
Независимым множеством в графе G = (V, Е) называется такое подмножество V' из V, что для любых и, ее V', ребро (и, и} не принадлежит Е. В задаче НЕЗАВИСИМОЕ МНОЖЕСТВО для заданного графа G = (V, Е) и положительного целого числа /^|У| спрашивается, верно ли, что G содержит независимое множество V', такое, что | У'| ^ J. Легко убедиться, что независимые множества, клики и вершинные покрытия связаны между собой следующим образом.
Лемма 3.1. Для любого графа G = (V, Е) и подмножества V' G V следующие утверждения эквивалентны:
У'есть вершинное покрытие G;
W' есть независимое множество в G;
У\ V' есть клика в дополнении G графа G, где G = = (V, Е), Е = {{и, и} : и, и е V и {и, и} Е}.
Таким образом, эти три задачи можно рассматривать в некотором смысле как “различные версии" одной и той же задачи. Более того, взаимосвязи между задачами, указанные в лемме 3.1, делают тривиальным вопрос о сводимости между любыми двумя из них.
Сведем, например, задачу ВЕРШИННОЕ ПОКРЫТИЕ к задаче КЛИКА. Пусть G = (V, Е) и К^|У|— произвольная индивидуальная задача из ВП. Соответствующая индивидуальная задача из КЛИКИ получается, если взять граф G и целое число / = |У|—к.
Отсюда следует, что NP-полнота всех трех задач следует из NP-полноты любой из них. Докажем, что задача ВЕРШИННОЕ ПОКРЫТИЕ NP-полна.
Теорема 3.3. Задача ВЕРШИННОЕ ПОДРЫТИЕ NP-лолна.
Доказательство. Легко видеть, что задача ВП ^ NP. Это следует из того, что недетерминированному алгоритму достаточно угадать подмножество вершин и за полиномиальное время проверить, что это подмножество содержит хотя бы один конец любого ребра и имеет соответствующее число элементов.
Сведем задачу 3-ВЫП к задаче ВП. Пусть U = {«i, и2, ... ..., «л} и С = {ci, с2, ..., Ст} определяют произвольную индивидуальную задачу из 3-ВЫП. Укажем граф G = (V, Е) и положительное целое число К^|У|, такие, что G имеет вершинное покрытие с числом элементов не более К тогда и только тогда, когда выполним набор дизъюнкций С,
Как и в предыдущем доказательстве, наша конструкция будет составлена из нескольких компонент. В данном случае, однако, будут присутствовать только компоненты набора значений истинности и проверки выполнимости, дополненные некоторыми вспомогательными ребрами, связывающими различные компоненты.
Для каждой переменной ще11 имеется компонента Т< = = (Vi, Ei) набора значений истинности (где Vt = (ui, щ), Ei = = {{и/, uj}), т. 6. Ti — это пара вершин, соединенных одним ребром. Заметим, что любое вершинное покрытие должно покрыть ребро из Ей поэтому оно должно содержать по крайней мере одну из вершин и< или Щ.
Для каждой дизъюнкции с/ е С имеется компонента проверки выполнимости S/ = (У/, £/), состоящая из трех вершин и трех соединяющих их ребер, образующих треугольник:
^ = {«! [Л, МЛ. а3 [/]},
Е*. = {(МЛ. а2ГЛ}, {«ЛЛ, аа[Л}, {«3 (Л, а» [Л}}.
Отметим, что любое вершинное покрытие должно содержать хотя бы две вершины из Vj, чтобы покрыть все три ребра из Е/
Связывающие ребра — это единственная часть конструкции, зависящая от того, какие литералы входят в дизъюнкции. Их лучше всего рассматривать с точки зрения компонент проверки выполнимости. Для каждой дизъюнкции с/ е С обозначим через хь Уь 2/ три входящих в нее литерала. Тогда связывающие ребра, исходящие из S,, задаются следующим образом:
$“{{МЛ. М.^гГЛ. ^>, {аа[Л, г^у
Построение индивидуальной задачи из ВП будет закончено, если положить к = п + 2m и G = (V, Е), где
^-СилОиф^)’
Ни/0и(ДФ(М
На рис. 3.3 приведен граф, соответствующий индивидуальной задаче из 3-ВЫП, когда U \их, и^ и3, и4} и С = ({иь й3, й4}, (йь и2, й4}}.
Нетрудно видеть, что эту конструкцию можно осуществить за полиномиальное время. Поэтому достаточно показать, что С выполнима тогда и только тогда, когда у G есть вершинное покрытие с числом элементов не более К.
Предположим вначале, что V' £ V — вершинное покрытие G и |У'|С*- В силу сделанных выше замечаний, V' должно содержать по крайней мере одну вершину каждого Tt и хотя бы две вершины каждого S/. В совокупности это дает по крайней мере п + 2m = К вершин, поэтому V' должно содержать ровно одну вершину каждого Т, и ровно две вершины каждого S/. Таким образом, можно использовать пересечение У' с компонентами наборов значений истинности, чтобы получить отображение
Рис. 3.3. Индивидуальная задача из ВЕРШИННОЕ ПОКРЫТИЕ, к которой приводит индивидуальная задача из 3-ВЫП при U = ^Ui, и2, и3, и4}, С =
“{{«1, «з, S4), {Si, «г, й4}}. Здесь Л = п + 2т = 8.
/: U—*■ {Г, F}. Для этого положим /(и,) =7, если и, е У', и t^Ui)= F, если й, е У'. Для доказательства того, что этот набор значений истинности выполняет каждую дизъюнкцию q е С, рассмотрим три ребра подграфа Е". Только два из них могут быть инцидентны вершинам из У/ f| V', поэтому одно из них должно быть инцидентно вершине некоторого подграфа У,, принадлежащей также nV'. Отсюда следует, что соответствующий литерал ы, (или Ui) дизъюнкции С/ принимает значение “истина” при рассматриваемом наборе значений истинности t, и, следовательно, t выполняет дизъюнкцию С/, Поскольку это утверждение имеет место для каждой дизъюнкции с/ е С, то отсюда следует, что t— выполняющий набор значений истинности для С.
Обратно, предположим, что t\ U -> {Г, 7} — выполняющий набор значений истинности для С. Тогда сответствующее вершинное покрытие V' содержит одну вершину из каждого Т; и две вершины из каждого S/. При этом вершиной из Ti, принадлежащей V', будет щ (если /(м/)=7) или й, (если /(«,)= 7). Поскольку t выполняет каждую дизъюнкцию с/, то это обеспечивает покрытие по крайней мере одного из трех ребер, принадлежащих множеству E"j. Следовательно, осталось включить в V' концы оставшихся двух ребер из Е", принадлежащие подграфу S/ (которые могут быть либо инцидентны, либо не инцидентны вершинам из компонент наборов значений истинности), при этом получится искомое вершинное покрытие. ■
Гамильтонов цикл
В гл. 2 мы видели, что к задаче ГАМИЛЬТОНОВ ЦИКЛ (ГЦ) может быть сведена задача распознавания КОММИВОЯЖЕР, поэтому NP-полнота последней задачи следует из NP-полноты задачи ГЦ. После завершения доказательства NP-полноты задачи ГЦ будет указано несколько вариантов задачи ГЦ, NP-полнота которых более или менее непосредственно следует из аналогичного факта для задачи ГЦ.
В дальнейшем для удобства будем пользоваться следующим соглашением: если <уь у2, .... уп>— некоторый гамильтонов цикл, то ребра {у/, Уж}. 1 ^ t < п, и {у«, yj будут называться ребрами в этом цикле. Приводимая ниже сводимость получена комбинацией двух сводимостей из работы Карпа [280], она указана в работе Лиу и Гелдмахера [358].
Теорема 3.4. Задача ГАМИЛЬТОНОВ ЦИКЛ является NP- полной.
Доказательство. Легко видеть, что HjeNP. Это вытекает из того, что недетерминированному алгоритму нужно угадать только последовательность вершин и за полиномиальное время проверить, что все вершины этой последовательности соединены ребрами, принадлежащими данному графу.
Сведем задачу ВЕРШИННОЕ ПОКРЫТИЕ к задаче ГЦ. Пусть индивидуальная задача из ВП задана графом G = (У, Е) и положительным целым числом К^|К|. Построим граф G'=(V', Е'), такой, что в G' есть гамильтонов цикл тогда и только тогда, когда в G' есть вершинное покрытие, состоящее из не более чем К элементов.
В данном случае наша конструкция опять будет состоять из нескольких компонент, соединенных линиями связи. Во-первых, граф G' имеет К “выбирающих" вершин ai, a2, ..., ак, которые будут использованы для выбора К вершин графа G. Во-вторых, для каждого ребра из Е граф О' содержит компоненту, “проверяющую покрытие", которая будет использована для того, чтобы обеспечить присутствие одного из концов каждого ребра среди К выбираемых вершин. Компонента, соответствующая ребру е = {и, и) е Е, показана на рис. 3.4. Она имеет 12 вершин
у' = {(ы, е, t), (у, е, t): l<i<6
и 14 ребер
£'е = Ш“. е> 0, (и, в, z + 1), {(у, е, i),(v, е, z"+1)}: l<z<5} []«(«. е, 3), (у, е, 1)},{(у, е, 3),(«, е, 1)}}
[]{{(«. е, 6), (у, е, 4)}, {(у, е, 6), (и, е, 4)}}.
Когда конструкция будет закончена, то дополнительные ребра, ведущие к этой проверяющей покрытие компоненте, будут инцидентны только вершинам (и, е, 1), (у, е, 1), (и, е, 6) и (у, е, 6). Отсюда следует (в этом читатель может легко убедиться), что любой гамильтонов цикл в графе G' должен пере-
(и,е,1) (.и,е,2) (и,е,3) (и,е,4) (и,е,5) (м,е,6)(и,е,1) (.и,е,2) (и,е,3) (и,е,4) (и,е,5) (м,е,6)(v,e,l) (v,e,2) (v,e,3) (v,e,4) (v,e,5) (v,e,6)(v,e,l) (v,e,2) (v,e,3) (v,e,4) (v,e,5) (v,e,6)
(и,е,1) (.и,е,2) (и,е,3) (и,е,4) (и,е,5) (м,е,6)
(и,е,1) (.и,е,2) (и,е,3) (и,е,4) (и,е,5) (м,е,6)
(v,e,l) (v,e,2) (v,e,3) (v,e,4) (v,e,5) (v,e,6)
(v,e,l) (v,e,2) (v,e,3) (v,e,4) (v,e,5) (v,e,6)
Рис. 3.4. Компонента для проверки покрытия, соответствующая ребру е == {и, о} в сведении задачи ВЕРШИННОЕ ПОКРЫТИЕ к задаче ГАМИЛЬ-ТОНОВ ЦИКЛ.
секать ребра из Е'е по одной из трех конфигураций, изображенных на рис. 3.5. Например, если цикл “подходит" к рассматриваемой компоненте в вершине (u, е, 1), то он “выходит” обязательно в вершине (ы, е, 6) и проходит либо через все 12 вершин этой компоненты, либо только через 6 вершин (u, е, t), l^z^6.
Рис. 3.5. Три возможные конфигурации пересечения гамильтонова циклас компонентой для проверки покрытия ребра е = (и, о). Конфигурации со-ответствуют следующим случаям: (а) и принадлежит, а о не принадлежитпокрытию: (б) и и о принадлежат покрытию; (в) и принадлежит, а и не при-надлежит покрытию.
Дополнительные ребра в окончательной конструкции служат либо для соединения пар компонент проверки покрытия, либо для соединения компоненты проверки покрытия с выбирающей вершиной. Для каждой вершины у е И упорядочим произвольным образом ребра, инцидентные у: e0[i], еощ, ..., eO[deg<o)i, где deg(y) — степень вершины у в графе G (т. е. число ребер,
инцидентных вершине у). Все компоненты проверки покрытия, соответствующие ребрам, инцидентным у, соединяются вместе следующими связующими ребрами:
Е'ь = {{("• eoW 6),(°. ^х-мр О}: K^<deg(y)}.
Как показано на рис. 3.6, такое соединение образует единственный путь в G', включающий в точности те вершины (х, у, г), для которых х = и.
Рис. 3.6. Путь, соединяющий все компоненты проверки покрытия, которые соответствуют ребрам из Е, инцидентным вершине о.
Последняя группа связующих ребер в G' соединяет первую ч последнюю вершины этого пути с каждой из выбирающих зершин аь аз, .... Or. Эти ребра имеют следующий вид:
5" = {{а,,(о, е0[1), 1)}, {а,, (у, eu[deg(D)], 6)}: l<i<K, у е V}.
Окончательно граф G' = ^V'. Е'У имеет вид
V = \av. l<i</<}U(UBVe) и
Нетрудно видеть, что граф G' можно построить за полиномиальное время исходя из G и К.
Мы утверждаем, что G' имеет гамильтонов цикл тогда и только тогда, когда G имеет вершинное покрытие, состоящее не более чем из К вершин. Предположим, что <У1,у2уп>— гамильтонов цикл в графе G' (здесь n = | V'|). Рассмотрим любую часть этого цикла, которая начинается и кончается в вершинах множества {оь а2, ..., а^ и не содержит ни одной вершины этого множества в качестве промежуточной. В силу ранее упомянутых ограничений на конфигурацию, по которой гамильтонов цикл может проходить через компоненту проверки покрытия, рассматриваемая часть цикла должна проходить только через компоненты проверки покрытия, соответствующие ребрам из £, инцидентным некоторой общей вершине у е V. Каждая компонента проверки покрытия пересекается одним из способов (а), (б) или (в), указанных на рис. 3.5, причем она не проходит через вершины ни из какой другой компоненты проверки покрытия.
Таким образом, К вершин множества {аь а2, ..., а^ делят рассматриваемый гамильтонов цикл на К путей, соответствующих некоторым вершинам уе К Поскольку гамильтонов цикл должен проходить через все вершины каждой компоненты проверки покрытия, причем вершины из компоненты проверки покрытия ребра егЕ могут принадлежать только пути, соответствующему одной из вершин, инцидентных е, то любое ребро в Е должно быть инцидентно по крайней мере одной из К выбранных вершин. Следовательно, это множество, состоящее из К вершин, образует искомое вершинное покрытие графа G.
Обратно, предположим, что V* Е V — вершинное покрытие графа G и |V*|^K. Можно считать, что |V*| = K, поскольку если к V* добавить несколько вершин из V, то Vе останется вершинным покрытием. Обозначим элементы V* через У1, у2, ..., ик. Рассмотрим, какие ребра нужно включить в гамильтонов цикл графа G. Из компоненты проверки покрытия, представляющей ребро е = (и, у} е Е, выберем ребра, изображенные на рис. 3.5(a), (б) или (в), в зависимости от того, равно ли {и, у} П V* соответственно {и}, {и, у} или {у}. Поскольку V* — вершинное покрытие графа G, то одна из этих возможностей обязательно должна быть реализована. Затем возьмем все ребра в £^, l^t^К. Наконец, выберем ребра
{а/, («/> eoi[l], 1)}, 1</</С,6)}’
и
t И л
Проверить то, что выбранное множество ребер в действительности соответствует гамильтонову циклу в G', мы предоставляем читателю. ■
Рассмотрим несколько вариантов задачи ГАМИЛЬТОНОВ ЦИКЛ. Задача ГАМИЛЬТОНОВ ПУТЬ формулируется так же, как задача ГЦ, но без условия, что первая и" последняя вершины в последовательности должны быть соединены ребром. Задача ГАМИЛЬТОНОВ nyjb МЕЖДУ ДВУМЯ ВЕРШИНАМИ отличается от задачи ГАМИЛЬТОНОВ ПУТЬ только тем, что в условии этой задачи фиксируются две вершины и и и и спрашивается, верно ли, что G содержит гамильтонов путь из и в и. NP-полнота обеих этих задач может быть доказана с помощью простой модификации сводимости, использованной для доказательства NP-полноты задачи ГЦ. Модифицируем граф G', который получается в конце рассмотренной выше конструкции следующим образом: добавим три новые вершины ао, ак+i и ак^г, два новых ребра {ао, aj и {ак+ь йк+г^, а также заменим каждое ребро вида {аь (и, eO[deg(o)i, 6)} на ребро {ак+ь (о, е»[ае6(»)1, 6)}. В последней модификации задачи ГЦ выделенными вершинами являются аои ак+ь
Все три перечисленные выше задачи остаются NP-полными и в том случае, если неориентированный граф G заменить ориентированным, а неориентированный гамильтонов цикл или путь заменить на ориентированный. Вспомним, что ориентированный граф G = (У, Л) состоит из множества вершин V и множества Л упорядоченных пар вершин, называемых дугами. Гамильтоновым путем в ориентированном графе G = (V, Л) называется такая последовательность <и\, иг, ..., оп> (п = |У|) вершин графа G, что <р>, и^ е Л, 1 ^ i < п. Гамильтонов путь называется гамильтоновым циклом, если <ип, th> е А. Каждая из упомянутых выше задач на неориентированных графах может быть сведена к задаче на ориентированном графе заменой ребра {и,о} неориентированного графа парой дуг (и, о) и (и, и). По существу, задачи на неориентированных графах являются частными случаями соответствующих задач на ориентированных графах.
Разбиение
В настоящем разделе будет рассмотрена последняя из шести основных NP-полных задач — задача РАЗБИЕНИЕ. Эта задача особенно полезна при доказательстве NP-полноты задач, условие которых содержит такие числовые параметры, как длины, веса, стоимости, пропускные способности и т. д.
Теорема, 3.5. Задача РАЗБИЕНИЕ является W-полной,
Доказательство. Легко видеть, что РАЗБИЕНИЕ е NP. В самом деле, недетерминированный алгоритм должен угадать только подмножество А' множества А и за полиномиальное время проверить, что сумма размеров элементов из А' такая же, как сумма размеров элементов из Л\А'.
Сведем задачу 3-С к задаче РАЗБИЕНИЕ. Пусть множества W, X, У при |U7| = |X| = |y| = ? и подмножество Me ^Х^Х X У образуют произвольную индивидуальную задачу из 3-С. Обозначим элементы этих множеств следующим образом:
ииW = (zyb tiv2l • • - . ®?}.Х = ^хь х2, .... Хд},^{Уь Уъ .... Уд\
и
и
М = {mb m2mi}»
где & = |M|. Требуется построить множество А и размеры s(q)eZ+ всех элементов аеА так, чтобы А содержало подмножество А', для которого справедливо
£ s^ = g s^aeAf аеА\А'
в том и только в том случае, если М содержит трехмерное сочетание.
Множество А будет содержать Л -f- 2 элемента и строиться в два шага. Первыми А элементами множества А будут (ai: 1 ^ i ^ fe}, где ai ассоциируется с тройкой mi е М. Размер s(ai) элемента а/ определяется с помощью двоичного представления числа s^a^. Слово из нулей и единиц, соответствующее s(a,), разбивается на 3q “зон” по р = Г log2 (k + I)-] бит в каждой. Каждая из этих зон помечается некоторым элементом из U^UXU У так, как указано на рис. 3.7.
Двоичное представление числа s(a,) зависит от соответствующей тройки mi = (xi){w xgW yhu^<=M (где/, g и h — функции, задающие индексы первой, второй и третьей компонент каждой тройки т^ В числе s(az) правые концы зон, соответствующих числам wfw xgW и yhW помечены 1, остальные знаки числа s(az) —нули. Другими словами,
s (aj _ 2Р <3’-f <'» | 2P (2’-г w | 2P ^q-h w\
Так как двоичная запись каждого из чисел s(a<) имеет длину не более ^pq, то ясно, что s^a^ можно построить по заданной индивидуальной задаче из 3-С за полиномиальное время.
На данной стадии конструкции важно отметить, что если просуммировать содержимое одной зоны всех элементов множества (в/: 1 ^I^ 6}, то результат всегда не будет превосходить 2₽—1. Следовательно, при суммировании £аеЛ-$(а) по некоторому подмножеству А £ {а/: 1 ^ I ^ 6} никогда не при-
W1 W2 w. Wg. Xi Х2 ••• Xq А У 2 •“ Уд
Рис. 3.7. Двоичная запись числа $(а) с помеченными 3q «зонами» с р = = Г logs (А + 1) ~1 двоичными знаками в каждой, которая используется в сведении 3-С к РАЗБИЕНИЕ.
дется переносить единицы из одной зоны в соседнюю. Отсюда следует, что если положить
В- 2 2"
/—О
(В — число, в двоичной записи которого в правом конце каждой зоны стоит 1), то для любого подмножества А* £ {а<: 1^/^А) соотношение
£ $(а) = ВаеЛ'
выполняется тогда и только тогда, когда АГ = {т<: а/ е А'} — трехмерное сочетание для М.
На последней стадии конструкции строятся оставшиеся два элемента из А. Они определяются элементами Ь\ и Ьа, имеющими следующие размеры:
s(d1) = 2^£s(aj)-B,stM-^Zs^ + B'*.
Двоичные записи этих величин имеют длину не более 3pq + 1 и могут быть построены за время, зависящее полиномиальным образом от размера индивидуальной задачи из 3-С.
Теперь предположим, что имеется подмножество А'г А, такое, что
£ s(a) = £ s(a).а^А' аеАХА'
Тогда каждая из этих сумм должна быть равна 2 £*=, s (at), причем одно из множеств А' или А\Л' содержит Ь\ и не содержит 62. Отсюда следует, что остальные элементы этого множества принадлежат множеству (a,: 1 ^ I ^ А}, сумма их размеров равна В и, в силу сделанного замечания, они образуют подмножество, соответствующее некоторому трехмерному сочетанию М' в М. Обратно, если задано трехмерное сочетание М'<= еМ, то множество {i^Uia^miGM'} образует искомое множество А' для заданной индивидуальной задачи из ПАРОСО- ЧЕТАНИЕ. Таким образом, задача 3-С ос РАЗБИЕНИЕ, и теорема доказана. ■
НЕКОТОРЫЕ МЕТОДЫ ДОКАЗАТЕЛЬСТВАNP-ПОЛНОТЫ
Методы, используемые при доказательстве результатов об NP-полноте, меняются почти в столь же широких пределах, как и сами NP-полные задачи, поэтому здесь у нас нет возможности проиллюстрировать их все. Однако имеется несколько общих приемов доказательства, которые часто встречаются и могут подсказать путь к доказательству NP- полноты новой задачи. Они называются: (а) сужение задачи, (б) локальная замена и (в) построение компоненты.
В настоящем разделе, в основном на примерах, мы объясним, что понимается под каждым из этих приемов доказательства. Было бы ошибкой пытаться дать их явное определение. Многие доказательства допускают интерпретации, позволяющие причислить их к любой из этих трех категорий. Некоторые доказательства так сильно зависят от специфики описания задачи, что их не удается классифицировать естественным образом в столь ограниченном множестве категорий. Так что читателю не следует рассматривать нижеизложенное как попытку классификации всех доказательств NP-полноты. Наша единственная цель — проиллюстрировать некоторые подходы к доказательству NP-полноты, которые мы (а также другие авторы) с интуитивной точки зрения нашли конструктивными и привлекательными.
Для краткости мы будем в дальнейшем опускать во всех доказательствах проверку того, что рассматриваемая задача принадлежит NP. Относительно каждой из рассматриваемых ниже задач легко установить разрешимость за полиномиальное
время недетерминированным алгоритмом, и у читателя не должно возникнуть затруднений, если потребуется построить такой алгоритм.
Сужение задачи
Из трех рассматриваемых приемов доказательства метод сужения — самый простой и, вероятно, наиболее часто встречается.
Доказательство методом сужения NP-полноты фиксированной задачи П е NP заключается просто-напросто в установлении того, что задача П включает в качестве частного случая известную NP-полную задачу П'. Суть состоит в том, чтобы указать дополнительные ограничения, которые требуется наложить на индивидуальные задачи из П, чтобы получившаяся в результате сужения задача была бы эквивалентна П'. При этом не требуется, чтобы возникающая в результате сужения задача была точной копией известной NP-полной задачи, необходимо только, чтобы между задачами имелось “очевидное” взаимнооднозначное соответствие, сохраняющее ответы “да” или “нет". Взаимно-однозначное соответствие, которое дает сведение IT к П, обычно настолько очевидно, что его даже не требуется указывать явно.
Несколько примеров доказательств этого типа уже встречалось в разд. 3.1.2. NP-полнота задачи ТОЧНОЕ ПОКРЫТИЕ 3-МНОЖЕСТВАМИ была доказана путем рассмотрения среди ее индивидуальных задач только тех, в которых трехэлементные множества содержат по одному элементу из множеств W, X и Y (где W, X и У—равномощные непересекающиеся множества). такие задачи идентичны задаче 3-С. В разд. 3.1.4 NP-полнота задачи ОРИЕНТИРОВАННЫЙ ГАМИЛЬТОНОВ ЦИКЛ была доказана благодаря тому, что среди ее индивидуальных задач мы рассматривали только те, в которых ориентированный граф вместе с каждой дугой (и, и) содержит противоположно ориентированную дугу (и, и), т. е. индивидуальные задачи, в совокупности образующие задачу, идентичную задаче ГАМИЛЬТОНОВ цикл.
Таким образом, метод сужения можно рассматривать скорее как иной взгляд на задачу, а не как стандартный способ доказательства NP-полноты. Вместо того чтобы пытаться свести одну из известных NP-полных задач к заданной, мы концентрируем внимание на последней и пытаемся отбросить “несущественные” ее детали с тем, чтобы получилась известная NP-пол- ная задача.
Ниже приведено еще несколько примеров задач, NP-полнота которых доказывается методом сужения; при этом доказа-
тельства формулируются настолько кратко, насколько это возможно.
МИНИМАЛЬНОЕ ПОКРЫТИЕ
УСЛОВИЕ. Задано семейство С подмножеств множества S и положительное целое число К.
ВОПРОС. Содержит ли С покрытие множества S размера не более К, т. е. найдется ли подмножество С'еС, такое, что КУКК и (J c = S?
CG С
Доказательство. Задача превращается в ТП-3, если ограничиться только теми индивидуальными задачами, у которых |С| = 3 для всех множеств сеС и К = | S | /3.
МНОЖЕСТВО ПРЕДСТАВИТЕЛЕЙ
УСЛОВИЕ. Задано семейство С подмножеств множества S и положительное целое число К.
ВОПРОС. Содержит ли S множество представителей для С мощности, не превосходящей К; т. е. существует ли подмножество S'gS, такое, что | S' |^ К и S' содержит по крайней мере один элемент из каждого множества семейства С?
Доказательство. Задача превращается в задачу ВП, если рассмотреть только те индивидуальные задачи, у которых |с| = 2 для всех се С.
ИЗОМОРФИЗМ ПОДГРАФУ
УСЛОВИЕ. Заданы два графа 6 = (УЬ Ех) и Н = ^V2, Е2у. ВОПРОС. Содержит ли граф G подграф, изоморфный Н? Другими словами, существуют ли такие подмножества V Е Vj, ЕгЕх и взаимно-однозначная функция f: V2-*V, что |1/| = = | Уг|, |Е| = |Е2| тогда и только тогда, когда {/(«), f(v)} еЕ?
Доказательство. Задача превращается в задачу КЛИКА, если рассматривать только те индивидуальные задачи, для которых Н — полный граф, т. е. те индивидуальные задачи, в которых Е2 содержит все возможные ребра, соединяющие вершины из У2.
ОСТОВНОЕ ДЕРЕВО ОГРАНИЧЕННОЙ СТЕПЕНИ УСЛОВИЕ. Заданы граф G=(V, Е) и положительное целое число К, К ^ | У| — 1.
ВОПРОС. Существует ли в G остовное дерево, в котором все вершины имеют степень не более К, т. е. такое подмножество Е* е Е, что |Е'| = |У|—1, граф G' =(V, Е') связен и ни одна вершина в V не принадлежит более чем К ребрам из Е'?
Доказательство. Если рассмотреть только те индивидуальные задачи, в которых К = 2, то задача превращается в задачу ГАМИЛЬТОНОВ ПУТЬ.
МИНИМАЛЬНЫЙ ЭКВИВАЛЕНТНЫЙ ОРИЕНТИРОВАННЫЙ ГРАФ
УСЛОВИЕ. Заданы ориентированный граф б = (У, А) и положительное целое число К, К ^ |А |.
ВОПРОС. Существует-ли ориентированный граф G' =(У, А'), такой, что А'г A, JA'I^K и для каждой пары вершин и и о из V в G' имеется ориентированный путь от и к и тогда и только тогда, когда в G имеется ориентированный путь из и к и.
Доказательство. Если рассматривать только индивидуальные задачи, для которых граф G сильно связен, т. е. содержит ориентированный путь от любой вершины к любой другой вершине и и |Х| = |У|, то задача превращается в задачу ОРИЕНТИРСТ- ВАННЫЙ ГАМИЛЬТОНОВ ЦИКЛ. Отметим, что при таком сужении фактически возникает задача ОРИЕНТИРОВАННЫЙ ГАМИЛЬТОНОВ ЦИКЛ В СИЛЬНО СВЯЗНОМ ОРИЕНТИРОВАННОМ ГРАФЕ, однако NP-полнота этой задачи немедленно следует из приведенных выше конструкций для задач ГЦ и ОРИЕНТИРОВАННЫЙ ГЦ.
РЮКЗАК
УСЛОВИЕ. Задано конечное множество U, “размеры" s(u)e г Z+, “стоимости” и (м) г Z+ для всех и е U, общее ограничение В на размеры, В г Z+, и значение стоимости К е Z+.
ВОПРОС. Существует ли подмножество U' S U, такое, что £ s^u^B и £ уОДЖ?
ueU'usU'
Доказательство. Если ограничиться рассмотрением только таких индивидуальных задач, в которых для всех и е U, s(u) = = v(u) и В = К= 41 HUeusW> то задача превращается в РАЗБИЕНИЕ.
РАСПИСАНИЕ ДЛЯ МУЛЬТИПРОЦЕССОРНОЙ СИСТЕМЫ
УСЛОВИЕ. Задано конечное множество А “заданий”, “длительности" Z(a)eZ+ для всех as А, число meZ+ “процессоров" и “директивный срок” D Е Z+.
ВОПРОС. Существует ли разбиение A=AiUA2U ••• Am множества А на m непересекающихся множеств, такое, что
шах ( £ ^аУ- 1 < t ^ m 1 ^ D?
1авЛ1J
Доказательство. Если рассматривать только те индивидуальные задачи, для которых т = 2 и £>=*/2 X Цо)» то задача превра
щается в РАЗБИЕНИЕ.
В заключение заметим, что из трех обсуждаемых подходов к установлению NP-полноты метод сужения в наибольшей степени выигрывает от наличия обширного списка NP-полных задач, сверх основных шести задач и их вариантов. Многие возникающие на практике задачи представляют собой просто более сложные версии задач из списка NP-полных задач в приложении, и способность усмотреть этот факт во многих случаях позволяет быстро доказать NP-полноту методом сужения.
Локальная замена
Сводимости, возникающие при доказательстве методом локальной замены, достаточно нетривиальны, чтобы их всегда можно было с гарантией представить в стандартном виде, однако они остаются относительно несложными. Этот метод состоит в том, что выбирается некоторое характерное свойство известной NP-полной задачи, с помощью него образуется семейство основных модулей, а соответствующие индивидуальные задачи заданной задачи получаются путем единообразной замены каждого основного модуля некоторой другой структурой. Сводимость задачи ВЫП к задаче 3-ВЫП из разд. 3.1.1 относится к этому типу. В ней основными модулями задачи ВЫП были дизъюнкции, и каждая дизъюнкция заменялась набором дизъюнкций согласно некоторому общему правилу. Важным моментом здесь является то, что каждая замена приводила только к локальному изменению структуры. Эти замены, по существу, не зависели одна от другой, за исключением тех случаев, когда они отражали не подвергавшиеся изменению части исходной индивидуальной задачи.
Конкретизируем эти общие рассуждения с помощью примеров. Рассмотрим сначала задачу распознавания, соответствующую задаче минимизации числа умножений, необходимых для вычисления заданного набора произведений элементарных термов; при этом предполагается, что операция умножения ассоциативна и коммутативна.
ВЫЧИСЛЕНИЕ СЕМЕЙСТВА
УСЛОВИЕ. Задано семейство С подмножеств конечного множества А и положительное целое число J.
ВОПРОС. Существует ли такая последовательность
<Zi = x1[Jy1, г2 = х2Цу22/ = Х/Цу(),
содержащая не более чем / операций типа объединение, что для каждого подмножества се С найдется номер z, 1 ^ / ^ /, такой, что zt совпадает с с? (Здесь Xi и у,— это либо множества вида {а} для некоторого а е А, либо это множество вида гк для некоторого h <2 i, причем х/ и у,, 1 ^ i ^ j, не пересекаются).
Теорема 3.6. Задача ВЫЧИСЛЕНИЕ СЕМЕЙСТВА NP-полна.
Доказательство. Сведем задачу ВЕРШИННОЕ ПОКРЫТИЕ к задаче ВЫЧИСЛЕНИЕ СЕМЕЙСТВА. Пусть граф G = (V,E) и положительное целое число К, К^|У|, определяют условие произвольной индивидуальной задачи из ВП.
В качестве основных модулей ВП возьмем ребра графа G. Пусть Со — некоторый новый элемент, не принадлежащий V Операция локальной замены замещает каждое ребро {а, о) е Е подмножеством (со, и, и} s С. В результате возникает индивидуальная задача из задачи ВЫЧИСЛЕНИЕ СЕМЕЙСТВА, условие которой полностью определяется следующими данными:
А-УиМ
С = {{оо, и, v): (и, о)еЕ), J = K + |E|.
Легко видеть, что эту индивидуальную задачу можно построить за полиномиальное время. Утверждается, что в G есть вершинное покрытие не более чем из К элементов тогда и только тогда, когда для семейства С существует последовательность длины не более /, обладающая необходимыми свойствами.
Вначале предположим, что V' — вершинное покрытие в G, содержащее не более К вершин. Если к покрытию V' добавить новые вершины, то оно по-прежнему будет оставаться покрытием, поэтому без ограничения общности можно полагать, что |У| = К. Обозначим вершины покрытия V' через щ, «2, .... «к, а ребра из множества Е через еь е2, ..., ет, где /п=|Е|. Поскольку V' — вершинное покрытие, то каждое ребро в] инцидентно по крайней мере одной вершине из V'. Поэтому каждое ребро е/ может быть представлено в виде в/ = (и/, 04/]}, где t1/1 — целое число, заключенное между 1 и К. Нетрудно видеть, что приведенная ниже последовательность, состоящая из К + + |Е| = J операций объединения, обладает всеми необходимыми свойствами:
<zi = {п0} J {vj, z2 = (со) J {v2}zK = {ад} U («к).
ZK+1 = {ui} U ^lip zK+2 = {“г) U гг 12? •••’ 2/ = {Um} U гг 1m])-
Обратно, предположим, что S = <zi = Xi U у\, ..., z/ = = */ U У/> — искомая последовательность для индивидуальной задачи из ВЫЧИСЛЕНИЕ СЕМЕЙСТВА, содержащая не более / операций объединения. Предположим далее, что последовательность S — кратчайшая из всех последовательностей для рассматриваемой индивидуальной задачи и что среди всех таких кратчайших последовательностей S содержит минимальное число операций вида z, = {и} U {и}, и, и Е V. Первое утверждение состоит в том, что в S вообще нет операций этого вида. Действительно, предположим, что операция z/=(u)U{u}, и, и е V, содержится в S. Поскольку {и, и} не принадлежит С, a S имеет минимальную возможную длину, то с необходимостью имеем {и, и} е £ и операция (а0, и, и} = {ао} U Zi (или zt Ц U (ао}) должна содержаться в 5. Но поскольку {и, и} —подмножество только одного элемента из С, то Z; не может участвовать ни в одной другой операции рассматриваемой последовательности S. Отсюда следует, что пара операций
Zi = {ti}U(y} и {а0, u, u} = (ao}|Jz< может быть заменена другой парой
2< = {ао}и{«} и ^ “- u} = MUz'-
при этом длина всей последовательности S не увеличится, а общее число операций вида {и, и}, u, deV уменьшится, что противоречит выбору S. Следовательно, S состоит только из операций, имеющих вид zt — {a0}U(u}, и Е V, или {а0, и, и} — 1= {и} U Zi, {и, и! е £ (мы пренебрегаем порядком этих операндов). Так как |С| = |£| и любой элемент из С содержит три элемента, то S должно содержать в точности |£| операций второго вида и в точности / —1£| ^/ —|£| = К операций первого вида. Поэтому множество
V' = {и е У: zf = {a0} J (и) есть операция из S} содержится самое большое К вершин из V. Исходя из способа построения С, нетрудно проверить, что У' должно быть вершинным покрытием в G. ■
Ниже приведен другой пример полиномиальной сводимости, которая получается из задачи ТОЧНОЕ ПОКРЫТИЕ ТРЕХЭЛЕМЕНТНЫМИ МНОЖЕСТВАМИ методом локальной замены.
РАЗБИЕНИЕ НА ТРЕУГОЛЬНИКИ
УСЛОВИЕ. Задан граф С=(У, £), число вершин которого | У] делится на три, т. е. |У] =3^ для некоторого целого числа q.
ВОПРОС. Существует ли такое разбиение V на q непересе- кающихся подмножеств У,, V2, ..., V, (содержащих по 3 элемента), что для каждого У< = (опц, o<(2j, o^sj) три ребра (они, «/wb {»И1Ь о» lai) и {щ w, о<1з]} принадлежат Е?
Теорема 3.7. Задача РАЗБИЕНИЕ НА ТРЕУГОЛЬНИКИ NP-полна.
Доказательство. Сведем задачу ТОЧНОЕ ПОКРЫТИЕ ТРЕХЭЛЕМЕНТНЫМИ множествами к задаче РАЗБИЕНИЕ НА ТРЕУГОЛЬНИКИ. Пусть множество Х(|Х| = 3<7) и семейство С его трехэлементных подмножеств образуют условие про-
Рис. ЗА Элемент, используемый для локальной замены подножества ct«« — Ui. ® С при построении сведения задачи ТП-3 к задаче РАЗБИЕ НИЕ НА ТРЕУГОЛЬНИКИ.
извольной индивидуальной задачи из ТП-3. Построим граф G = =(У, Е), такой, что 1^1 = 3^ и для него существует искомое разбиение тогда и только тогда, когда С содержит точное покрытие.
Основными модулями рассматриваемой индивидуальной задачи из ТП-3 будут трехэлементные подмножества из С. Операция локальной замены “превращает” каждое такое подмножество С< ={xj.y,, z<)e С в набор Еь состоящий из 18 ребер, который изображен на рис. 3.8. Таким образом, G=\V, Е) определяется так:
/С|
У = ХиО {«Л/]: 1^/С9),
<■1
Заметим, что только вершины из множества X могут быть инцидентны более чем одному множеству Ei. Отметим также, что
| У | = | X | + 9| С |= 3^ + 9| С |,
так что <?'= 9 + 3|С|. Нетрудно видеть, что эту индивидуальную задачу РАЗБИЕНИЕ НА ТРЕУГОЛЬНИКИ можно построить, отправляясь от рассматриваемой индивидуальной задачи из ТП-3, за полиномиальное время.
Если Сь с2, ..., cq — трехэлементные подмножества из С, которые образуют точное покрытие X, то соответствующее разбиение 7 = К|иИ211 ... U^»- множества V определяется следующим образом. Если с, = {xj, yt, 2i) есть элемент точного покрытия, то из множества Ei выбираются следующие подмножества:
{az [1], а, [2], х,}, (az [4], az [5], у,},{аг [7], а, [8], zz}, {a, [3], a, [6], at [9]},
а если с, не является элементом точного покрытия, то из Ei выбираются подмножества
[a, [1], az [2], az [3]}, {at [4], a, [5], a, [6]},
{az [7], a, [8], at [9]}.
Такой выбор подмножеств обеспечивает, что каждый элемент из X содержится ровно в одном трехвершинном подмножестве рассматриваемого разбиения.
Обратно, если V = Vi U /2 U ... U Vq, — произвольное разбиение графа G на треугольники, то соответствующее точное покрытие получается, если выбирать те Ci е С, для которых (az[3], az[6], а,[9]} = У/ при некотором j, l^j^q'. Непосредственную проверку того, что два построенных разбиения обладают всеми нужными свойствами, мы оставляем читателю. ■
Оба только что приведенных примера представляют собой доказательство методом локальной замены “в чистом виде". Структура рассматриваемой индивидуальной задачи однозначно определялась структурой исходной задачи (NP-полнота которой установлена) и операцией локальной замены. Часто оказывается полезным дополнить рассматриваемую индивидуальную задачу вспомогательными элементами, которые играют роль “ограничителя"1), налагающего дополнительные ограничения на способы получения ответа “да".
*) Образный термин (enforcer), предложенный Зыманским [511].
Если рассматриваемая задача имеет вид “Задана индивидуальная задача /; верно ли, что существует некоторый объект Xi с требуемым свойством?’’, то роль ограничителя в задаче / — сузить множество допустимых объектов Xi так, чтобы они отражали все варианты, возможные в исходной индивидуальной задаче. В то же время часть индивидуальной задачи I, получающаяся операцией локальной замены из исходной задачи, дает различные варианты этих ответов и обеспечивает выполнение условий, требующихся от этих ответов. Элементы 61 и Ь2 из доказательства NP-полноты задачи РАЗБИЕНИЕ как раз и играют роль подобного ограничителя. Приведем еще два примера на доказательство методом локальной замены с использованием ограничителей. Сначала рассмотрим следующую задачу о составлении расписания.
УПОРЯДОЧЕНИЕ ВНУТРИ ИНТЕРВАЛОВ
УСЛОВИЕ. Задано конечное множество “заданий” Т и для каждого teT целое число г(/)^ 0 —время готовности, “директивный срок” d^e Z+ и “длительность” l^e Z+.
ВОПРОС. Существует ли для Т допустимое расписание, т. е. такая функция о: 7 -»- Z+, что для всех teT имеет место: (1) а^>г^, (2) о(0+/(0<^(/), и (3) если Ге7\{0, то либо а(^)+^Ю^ а(0. либо ст(/')а(/) +/(/)? (Другими словами, задание / “выполняется” с момента времени о(/) до момента о(/)+/(0, оно не может быть начато ранее момента г(0, должно быть закончено не позднее d(/), и временной интервал выполнения задания / не может перекрываться с интервалом выполнения другого задания /'.)
Теорема 3.8. Задача УПОРЯДОЧЕНИЕ ВНУТРИ ИНТЕРВАЛОВ NP-полна.
Доказательство. Сведем к этой задаче задачу РАЗБИЕНИЕ. Пусть конечное множество А и размеры s(a) всех элементов из А составляют условие индивидуальной задачи РАЗБИЕНИЕ; пусть также В = £a s а 5 (°)-
Возьмем в качестве базисных модулей исходной индивидуальной задачи РАЗБИЕНИЕ отдельные элементы а е А. Операция локальной замены превращает а в задание ta, такое, что r(/a)=0, d(/a) = B+l и Z(/„)=s(a). В качестве “ограничителя” возьмем еще одно задание I, такое, что г (/) = ГВ/2~|, d(/)= = Г(В+1)/2~) и /(?)=!. Ясно, что эта индивидуальная задача может быть построена по исходной индивидуальной задаче РАЗБИЕНИЕ за полиномиальное время.
Ограничения, которые налагает ограничитель на допустимые расписания, имеют двоякий характер. Во-первых, ограничитель
не позволяет построить допустимое расписание, если В нечетно (в этом случае для рассматриваемой задачи РАЗБИЕНИЕ искомое разбиение на два подмножества не существует), по той причине, что если В нечетно, то r(Z)=d(Z) и I вообще не может быть включено в расписание. Поэтому с настоящего момента будем предполагать, что В четно. В этом случае на передний план выступает второе ограничение. Так как В четно, то г(?) = = 5/2 и d(?) = r(?) + 1, поэтому в любом допустимом расписании о(?) должно быть равно В/2. Отсюда время, которое доступно для выполнения остальных заданий, делится на два отдельных блока, каждый из которых, как показано на рис. 3.9,
ООS+1S+1В 2В 2В2В2В в г 2 Брела ■В в г 2 Брела ■Рис. 3.9. Расписание, получаемое с помощью «ограничителя» при сведении задачи РАЗБИЕНИЕ к задаче УПОРЯДОЧЕНИЕ ВНУТРИ ИНТЕРВАЛОВ.Рис. 3.9. Расписание, получаемое с помощью «ограничителя» при сведении задачи РАЗБИЕНИЕ к задаче УПОРЯДОЧЕНИЕ ВНУТРИ ИНТЕРВАЛОВ.
О
О
S+1
S+1
В 2
В 2
В
2
В
2
В в г 2 Брела ■
В в г 2 Брела ■
Рис. 3.9. Расписание, получаемое с помощью «ограничителя» при сведении задачи РАЗБИЕНИЕ к задаче УПОРЯДОЧЕНИЕ ВНУТРИ ИНТЕРВАЛОВ.
Рис. 3.9. Расписание, получаемое с помощью «ограничителя» при сведении задачи РАЗБИЕНИЕ к задаче УПОРЯДОЧЕНИЕ ВНУТРИ ИНТЕРВАЛОВ.
имеет длину В/2. Таким образом, задача составления расписания превращается в задачу выбора подмножества заданий, которые будут выполняться раньше задания 1, и подмножества заданий, которые будут выполняться после I. Поскольку общее время, имеющееся в обоих блоках, равно общей длительности В оставшихся заданий, то отсюда следует, что каждый из этих блоков должен быть полностью заполнен. Это возможно тогда и только тогда, когда существует подмножество А' еД, такое, что
2 s(a) = B/2 = У. s(a).аеА' аыА\А'
Таким образом, для рассматриваемой индивидуальной задачи РАЗБИЕНИЕ искомое подмножество А* существует тогда и только тогда, когда для соответствующей индивидуальной задачи УПОРЯДОЧЕНИЕ ВНУТРИ ИНТЕРВАЛОВ существует допустимое расписание. В
В качестве заключительного примера использования ограничителя в методе локальной замены рассмотрим следующую задачу, возникающую в диагностическом тестировании.
МИНИМАЛЬНЫЙ НАБОР ТЕСТОВ
УСЛОВИЕ. Задано конечное множество А “возможных диагнозов", набор С подмножеств множества А, представляющий бинарные “тесты", и положительное целое число I ^|С|.
ВОПРОС. Существует ли поднабор С's С, JC'I^/, такой, что для любой пары at, а/ возможных диагнозов из А имеется некоторый тест сеС', для которого | {а/, aj f) с|= 1 (т. е. тест с, “различающий” а,- и а/)?
Теорема, 3.9. Задача МИНИМАЛЬНЫЙ НАБОР ТЕСТОВ NP-полна.
Доказательство. Сведем к этой задаче задачу 3-С. Пусть W, X, У такие, что | И71 = ] X | = | У | = ^, и подмножество М s s ^ X X X У составляют условие индивидуальной задачи из 3-С.
В качестве основного модуля задачи 3-С возьмем упорядоченные тройки из множества М. Операция локальной замены вместо каждой тройки m = (w, х, у^еМ образует подмножество (щ, х, у) G С. Роль ограничителей играют три дополнительных элемента Wo, х0 и уо, не принадлежащие W U X J У, и два дополнительных теста W'Uf^o} и ХЩхо}- Окончательно индивидуальная задача МИНИМАЛЬНЫЙ НАБОР ТЕСТОВ определяется следующим образом:
А = ^и^иУи{1«о,*о.Уо}.
С = {{щ, х, у\. (w, х, у) е М} U (^ U М, X U {х0}}, / = <7 4-2.
Легко видеть, что эта индивидуальная задача может быть построена по исходной задаче 3-С за полиномиальное время.
Опять-таки ограничитель налагает определенные ограничения на вид возможных компонент (в данном случае на набор тестов С'). Во-первых, набор С' должен содержать как №U (two), так и X U {х0} по той причине, что только эти тесты отличают уо от Wo и xq. Далее, поскольку wo, xq, уо не принадлежат больше ни одному тесту из С, то каждый элемент множества W U X U У должен отличаться от одного элемента wq, хо или у0 ввиду того, что он входит в некоторый дополнительный тест ceC'Xl^U U {що}, ^U{xo}}. При этом может быть использовано самое большее / — 2 = q дополнительных тестов. Поскольку каждый из оставшихся тестов содержит ровно по одному элементу из множеств W, X и У, и, кроме того, множества W, X и Y попарно не пересекаются, и каждое из них содержит ровно q элементов, то отсюда следует, что любые q дополнительных тестов из С' должны соответствовать q тройкам из М, образующим трехмерное сочетание. Обратно, если задано любое трехмерное сочетание из М, то соответствующие q тестов из С можно использовать
для завершения построения оставшихся тестов в нужном количестве. Таким образом, М содержит трехмерное сочетание тогда и только тогда, когда в множестве С существует искомый набор тестов. ■
Хотя в обоих рассмотренных примерах ограничители очень просты, читатель должен отдавать себе отчет в том, что это не всегда так. Ограничитель особо сложной конструкции используется в доказательстве NP-полноты задачи ОРИЕНТИРОВАННЫЙ ГАМИЛЬТОНОВ ПУТЬ В ПЛОСКОМ ГРАФЕ [157]. Другие довольно сложные ограничители можно найти в работах [143, 155, 357].
Построение компонент
Последний и наиболее сложный из рассматриваемых нами методов доказательств NP-полноты — это построение компонент. Доказательства NP-полноты задач ТРЕХМЕРНОЕ СОЧЕТАНИЕ, ВЕРШИННОЕ ПОКРЫТИЕ и ГАМИЛЬТОНОВ ЦИКЛ, приведенные в разд. 3.1, представляют собой типичные примеры доказательств этого типа.
Основная идея таких доказательств заключается в том, чтобы с помощью составных частей рассматриваемой задачи сконструировать некоторые “компоненты", соединяя которые можно “реализовать” индивидуальные задачи известной NP- полной задачи. В трех перечисленных примерах имеются компоненты двух основных типов. Одну из них можно рассматривать как компоненту, “делающую выбор" (например, выбирающую вершины, выбирающую значение истинности переменных), а другую — как компоненту, “проверяющую свойства” (например, проверяющую, что каждое ребро покрыто или что каждая дизъюнкция выполнена).
В рассматриваемой индивидуальной задаче эти компоненты связаны так, что выбранные значения передаются компонентам, проверяющим условия, и последние проверяют, удовлетворяют ли сделанные выборы значений необходимым условиям. Взаимодействие компонент осуществляется с помощью прямых связей (таких, например, как ребра, соединяющие компоненты набора значений истинности с компонентами проверки выполнения условий в сводимости задачи 3-ВЫП к задаче ВП), а также с помощью глобальных ограничений (таких, например, как общая граница К в сводимости задачи 3-ВЫП к задаче ВП, которая наряду со структурой компонент обеспечивает, чтобы каждая компонента наборов значений истинности содержала в точности одну вершину из покрытия и каждая компонента проверки свойств содержала ровно две вершины этого покрытия).
Вообще говоря, любое доказательство можно считать основанным на методе построения компонент, если конструируемая в нем индивидуальная задача представляет собой набор компонент, каждая из которых выполняет определенные функции, формулируемые в терминах исходной задачи. Общая сводимость, примененная в гл. 2 для доказательства теоремы Кука, является хорошим примером доказательства этого типа; при этом каждая из шести групп дизъюнкций представляет собой один из типов компонент.
Поскольку доказательства методом построения компонент часто оказываются довольно длинными и несколько примеров таких доказательств уже было рассмотрено, то в настоящем разделе мы приведем еще только один пример. (Другие примеры можно найти в работах [114, 158, 477, 496].) Этот заключительный пример, сильно отличающийся от стандартных, иллюстрирует подход, который оказался полезным для сведения задачи КЛИКА к другим задачам. Здесь доказывается NP-пол- нота задачи теории расписаний, близкой по формулировке к задаче УПОРЯДОЧИВАНИЕ ВНУТРИ ИНТЕРВАЛОВ, рассмотренной в предыдущем подразделе.
УПОРЯДОЧЕНИЕ С МИНИМАЛЬНЫМ ЗАПАЗДЫВАНИЕМ УСЛОВИЕ. Заданы множество Т “заданий”, каждое из которых имеет длительность 1 и “директивный” срок d(f)eZ+; частичное упорядочение <• на Т и неотрицательное целое число
ВОПРОС. Существует ли “расписание” о: T-^fO, 1,..., |Т| —1}, такое, что: (1)о(0^= о(5) при t^t', (2)о(0<о(О при t<-t и (3) |{/е Т:а(0 + 1 > d(/)}|^K?
Теорема, ЗЛО. Задача УПОРЯДОЧЕНИЕ С МИНИМАЛЬНЫМ ЗАПАЗДЫВАНИЕМ W-полна.
Доказательство. Пусть граф С = (У, £) и положительное целое число /, J ^ | V|, образуют произвольную индивидуальную задачу КЛИКА. Соответствующая индивидуальная задача из задачи УПОРЯДОЧЕНИЕ С МИНИМАЛЬНЫМ ЗАПАЗДЫВАНИЕМ имеет множество заданий 7=^5, К— |Е|—/(/ — 1)/2; частичное упорядочение заданий определяется следующим образом:
/<'/'<=>/е V, /'е£ и вершина / инцидентна ребру (';
если tGE;
ll У 1 + 1 5| если (eV.
Таким образом, "компонента”, соответствующая каждой вершине, состоит из единственного задания с директивным сроком |К| + |Е|, а “компонента”, соответствующая каждому ребру,
состоит из единственного задания с директивным сроком 7(7+1)/2. Благодаря наличию частичного порядка на множестве Г в искомом расписании задание, соответствующее ребру, следует за заданиями, соответствующими его концам, и поэтому задания, для которых имеется опасность запаздывания (т. е. завершения уже после директивного срока), обязательно соответствуют ребрам.
Искомое расписание удобно представлять себе схематически, как показано на рис. 3.10. Часть расписания до директивного срока заданий, соответствующих ребрам, можно рассматривать Вершины Ребра клики клики
J
Задания,со- ontoicmdy- чырсдершигт
JU-D/I Задания, соответствующие ребрам
1/1
Задания,соответствующие бсршиком
\E\-JU-D/2
Задания, саответстбу- ющие ребрам
0/(J+1)И+|£|
2
—— Время—1—►
Рис. ЗЛО. Диаграмма искомого расписания для индивидуальной задачи УПОРЯДОЧЕНИЕ С МИНИМАЛЬНЫМ ЗАПАЗДЫВАНИЕМ, соответствующей КЛИКЕ размера I.
как “компоненту выбора клики”. До этого срока может быть выполнено не более /(/+ 1)/2 заданий. Для того чтобы число запоздавших заданий не превосходило заданной величины К, по крайней мере 7(7— 1)/2 из “ранних” заданий должны соответствовать ребрам. Однако если задание, соответствующее ребру, выполняется ранее своего директивного срока, то и задания, соответствующие его концевым вершинам, также должны быть закончены раньше этого срока. Минимально возможное число вершин, которые могут быть инцидентны 7(7 —1)/2 различным ребрам, равно 7 (причем это может быть тогда и только тогда, когда эти ребра образуют полный граф на этих 7 Вершинах). Отсюда следует, что среди “ранних" заданий должно иметься по крайней мере J заданий, соответствующих вершинам. Однако до директивного срока заданий, соответствующих ребрам, может быть выполнено не более
7 (7 + 1)/2 — 7(7 — 1)/2 = 7
заданий, отвечающих вершинам. Следовательно, в любом таком расписании до директивного срока заданий, соответствующих ребрам, должно закончиться ровно 7 заданий, отвечающих вершинам, и ровно 7(7 —1)/2 заданий, соответствующих ребрам, которые в совокупности соответствуют клике на 7 вершинах в
графе G. Обратно, если граф G содержит полный подграф на / вершинах, то искомое расписание можно построить способом, указанным на рис. 3.10.
УПРАЖНЕНИЯ
В настоящем разделе сформулированы двенадцать NP-пол- ных задач, доказательства NP-полноты которых предоставляются читателю. Ни одна из этих задач не требует сложного доказательства, поэтому мы советуем попытаться найти их все. В этих доказательствах в качестве “известных" NP-полных задач достаточно использовать только задачи, упоминавшиеся в разд. 3.1. Для облегчения решения задачи сгруппированы по методам доказательства, которые представляются авторам наилучшими. Однако читатель может не обращать внимания на эти указания, если другой путь доказательства покажется ему более перспективным. Желающие выбрать дополнительные (или более трудные задачи) могут обратиться к списку из приложения, при этом, однако, следует иметь в виду, что в списке есть задачи, для которых известные доказательства NP-полноты весьма сложны.
Метод сужения
САМЫЙ ДЛИННЫЙ ПУТЬ
УСЛОВИЕ. Задачи граф G = (V, Е) и положительное целое число К С |И.
ВОПРОС. Имеется ли в G простой путь (т. е. путь, не проходящий дважды ни через одну вершину), состоящий не менее чем из К ребер?
УПАКОВКА МНОЖЕСТВ
УСЛОВИЕ. Заданы семейство С конечных множеств и положительное целое число К, К С |С|.
ВОПРОС. Верно ли, что в С имеется К непересекающихся множеств?
РАЗБИЕНИЕ НА ГАМИЛЬТОНОВЫ ПОДГРАФЫ
УСЛОВИЕ. Заданы граф G=(V, Е) и положительное целое число К, К С I И.
ВОПРОС. Можно ли множество вершин графа G разбить на к С К непересекающихся подмножеств Vi, Vs, ..., Ух так, чтобы для всех i (1 i ^ ^) каждый подграф, индуцированный под множеством Vi, содержал гамильтонов цикл?
НАИБОЛЬШИЙ ОБЩИЙ ПОДГРАФ
УСЛОВИЕ. Заданы графы Gi = (Уь Е,), Gj = (Vs, Ег) и положительное целое число К.
ВОПРОС. Существуют ли такие подмножества Е, s Е, и F^ = Е2, что | Е{ | ™ | Е2 |>К, а подграфы G, = (Vt, Ef) и G2 = (V2, Е^ изоморфны?
МИНИМУМ СУММЫ КВАДРАТОВ
УСЛОВИЕ. Заданы конечное множество А, <размер» s(a)eZ+ для каждого а е А и положительные целые числа К и /.
ВОПРОС. Могут ли элементы из А быть разбиты на К непересекаю- К
щихся множеств At, Аг, .... Ак так, что
Метод локальной замены
МНОЖЕСТВО ВЕРШИН, РАЗРЕЗАЮЩИХ КОНТУРЫ
УСЛОВИЕ. Заданы ориентированный граф G =(V, А) и положительное целое число К, К ^ | У|.
ВОПРОС. Существует ли такое подмножество У' S У, что |У'|^К и любой ориентированный цикл в G содержит по крайней мере одно ребро из У'?
ТОЧНОЕ ПОКРЫТИЕ ЧЕТЫРЕХЭЛЕМЕНТНЫМИ МНОЖЕСТВАМИ УСЛОВИЕ. Задано конечное множество X, |Х|=4^, целое число q и семейство С четырехэлементных подмножеств множества X.
ВОПРОС. Существует ли подсемейство О' Е С, такое, что каждый элемент из X принадлежит в точности одному элементу из С'?
ДОМИНИРУЮЩЕЕ МНОЖЕСТВО
УСЛОВИЕ. Заданы граф G= (V, Е1) и целое число К, Л^|У|.
ВОПРОС. Существует ли такое подмножество У's У, что |У'|^К и каждая вершина сеУХУ' соединена ребром по крайней мере с одной вершиной из У'?
ДЕРЕВО ШТЕЙНЕРА
УСЛОВИЕ. Заданы граф G = (У, Е), подмножество R S У и положительное целое число К = | У| — 1.
ВОПРОС. Существует ли поддерево в G, содержащее все вершины из R и имеющее не более К ребер?
НЕЭКВИВАЛЕНТНОСТЬ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ, НЕ СОДЕРЖАЩИХ ЗВЕЗДОЧЕК
УСЛОВИЕ. Заданы два не содержащие звездочек регулярных выражения Е, и Ег в конечном алфавите S. Такое выражение определяется следующим образом: (1) любой символ С алфавита S есть не содержащее звездочек регулярное выражение, (2) если ei и ег— два не содержащие звездочек регулярных выражения, то и слова в1вг и (ei V е2) также не содержащие звездочек регулярные выражения.
ВОПРОС. Верно ли, что Е, и Ег представляют различные языки в алфавите S? (Язык, представляемый символом пеХ, есть {а}, а если et и ег представляют соответственно языки Lt и Ьг, то eie2 представляет язык {ху: xeLi, у е Lz}, a (ei V е2) представляет язык Lt U Ez.)
Метод построения компонент
И. РАСЩЕПЛЕНИЕ МНОЖЕСТВА
УСЛОВИЕ. Задано семейство С подмножеств конечного множества S. ВОПРОС. Существует ли разбиение S на две части Si и S2, такое, что ни одно подмножество из С не содержится ни в Si ни в S2?
Указание. Использовать 3-ВЫП.
РАЗБИЕНИЕ НА ПУТИ ДЛИНЫ 2
УСЛОВИЕ. Задан граф G =(У, Е), где [У[= 3q для некоторого целого положительного числа q.
ВОПРОС. Существует ли разбиение V на q непересекающихся подмножеств У1, Vz, .... Vq, по три вершины в каждом, такое, что для всех ^i = {vi[il* °i(2]> °<[3)} п0 кРайней меРв Дм из трех ребер {о<(|], °/ [2]}- {^ПР °i[3]}’ (°f [2р °ДЗ]} принадлежат Е?
Указание. Использовать 3-С.
НУМЕРАЦИЯ ГРАФА ПО ГРУНДИ
УСЛОВИЕ. Задан ориентированный граф G = (V, А).
ВОПРОС. Существует ли такая нумерация L. У -► Z+ (где каждой вершине может быть присвоен только один номер), что для всех у е У L(v) есть наименьшее неотрицательное целое число, не принадлежащее множеству ЦДиу и е У, (о, и)е4)?
Указание. Использовать 3-ВЫП.
РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА
УСЛОВИЕ. Задан граф G =(У, Е).
ВОПРОС. Можно ли G раскрасить в 3 цвета?
Другими словами, существует ли функция f: У -► (1, 2, 3), такая, что f (и) =И= /(и), если {u, о} е Е?
Указание. Использовать 3-ВЫП.
Применение теории NP-полнотыдля анализа задач
Теперь, когда мы овладели основными элементами теории NP-полноты, можно перейти к использованию этой теории для анализа задач.
Из рассуждений, приведенных в гл. 1, следует, что, встретившись с новой задачей, естественно сначала задать вопрос: “Можно ли рассматриваемую задачу решить полиномиальным алгоритмом?" Если ответ на этот вопрос оказывается положительным, то с точки зрения теории NP-полноты ничего большего о задаче сказать нельзя. Дальнейшие усилия мы можем сконцентрировать на поиске как можно более эффективных полиномиальных алгоритмов. Однако, если для решения задачи не известно полиномиального алгоритма, естественно возникает второй вопрос: “Верно ли, что рассматриваемая задача NP- полна?”
Для того чтобы поставленный вопрос имел смысл, предположим, что рассматриваемая задача сформулирована как задача распознавания и что она принадлежит классу NP. Заметим, что в некоторых случаях легко устанавливается полиномиальная разрешимость интересующей нас задачи, в других же оказывается очевидной ее NP-полнота. Если задача оказалась NP-полной, то это является сильным аргументом в пользу того, что ее нельзя решить за полиномиальное время.
В большинстве случаев, однако, найти ответ на каждый из поставленных вопросов довольно трудно. Обычно совсем не очевидно, что задача разрешима за полиномиальное время или что она NP-полна, а требуется некоторая работа для выяснения, какая из этих двух возможностей в действительности реализуется (в том случае, конечно, если реализуется хотя бы одна из них; напомним, что в разд. 2.5 говорилось о том, что если р у= NP, то в классе NP существуют задачи, которые неразрешимы за полиномиальное время и не NP-полны). Как в этом случае выяснить сложность рассматриваемой задачи?
Если интуитивно мы склоняемся в пользу одной из возможностей, то очень соблазнительно сконцентрировать усилия в этом направлении. Однако в подобных вопросах интуиция оказывается особенно обманчивой, ибо зачастую задачи, разрешимые за полиномиальное время, очень незначительно отличаются от NP-полных задач. Например, мы уже видели, что задачи 3-ВЫПОЛНИМОСТЬ (3-ВЫП) и ТРЕХМЕРНОЕ СОЧЕТАНИЕ
(3-С) NP-полны, а близкие задачи 2-ВЫПОЛНИМОСТЬ и ПА- РОСОЧЕТАНИЕ разрешимы за полиномиальное время. На рис. 4.1 указано несколько других пар задач, одна из которых принадлежит классу Р, а другая NP-полна. Наша интуиция, как правило, основана на опыте работы с близкими задачами. По этой причине мы серьезно рискуем сбиться с правильного пути, если позволим себе, доверяясь интуиции, сконцентрироваться на исследовании только одной возможности.
Таким образом, при анализе задач лучше пользоваться двусторонним подходом. Пытаясь с одной стороны доказать NP- полноту задачи, одновременно целесообразно искать полиномиальный алгоритм ее решения. Конечно, в каждый данный момент мы выбираем направление исследований исходя из того, что представляется нам перспективнее, но нужно быть готовым сменить направление исследований. В действительности, по мере того как мы будем переходить от одного направления к другому и обратно, оба направления, взаимодействуя друг с другом, сливаются в единое целое. Неудачи в доказательстве NP-полноты задачи могут породить идею алгоритма ее решения, а неудачи в построении алгоритма могут указать путь к доказательству NP-полноты задачи. Любые частичные результаты, полученные в процессе подобных исследований, особенно результаты о “нормальной форме” решений, могут оказаться в равной степени полезными как для доказательства NP-полноты задачи, так и для построения эффективного алгоритма ее решения.
Само собой разумеется, что успешное применение на практике такого двустороннего подхода требует от исследователя мастерства как в отыскании доказательств NP-полноты, так и в построении полиномиальных алгоритмов. О методах доказательства NP-полноты было уже достаточно много сказано в гл. 3. С методами построения эффективных алгоритмов читатель может ознакомиться в стандартных книгах по построению алгоритмов, см. например, [9, 445]. В настоящей главе мы сосредоточим внимание на следующем вопросе: если доказана NP-пол- нота некоторой задачи (что бывает очень часто), как использовать рассмотренный выше двусторонний подход для более глубокого анализа этой задачи?
В разд. 4.1 обсуждается вопрос о том, каким образом можно глубже прозондировать сложность NP-полной задачи, изучая ее подзадачи и пытаясь разграничить полиномиально разрешимые и NP-полные подзадачи. В разд. 4.2 рассматриваются подзадачи специального вида, часто заслуживающие внимания в тех случаях, когда в исходной задаче существенную роль играют целые числа. Такой подход приводит к понятиям “алгоритм с псевдополиномиальным временем работы" и “сильная NP-пол- нота", а также к дополнению списка “основных” NP-полных
р
NP-полные
КРАТЧАЙШИЙ ПУТЬ МЕЖДУ ДВУМЯ ВЕРШИНАМИ
УСЛОВИЕ. Заданы: граф G = (У, Е), длины / (е) е Z + для всех ее£, выделенные вершины а, 6 eV и положительное целое число В.
ВОПРОС. Существует ли в G простой путь из а в Ь, имеющий длину не более В?
САМЫЙ ДЛИННЫЙ ПУТЬ МЕЖДУ ДВУМЯ ВЕРШИНАМИ
УСЛОВИЕ. Заданы: граф G = (У, Е), длины Z (е) е Z+ для всех е е Е, выделенные вершины а, beV и положительное целое число В.
ВОПРОС. Существует ли в G простой путь из а в 6, имеющий длину не менее В?
РЕБЕРНОЕ ПОКРЫТИЕ
УСЛОВИЕ. Заданы граф G = (У, Е) и положительное целое число К. ВОПРОС. Существует ли подмножество Е' е Е, такое, что | Е' | ^ К и для каждой вершины о е У имеется такое ребро е е Е', что о е е?
ВЕРШИННОЕ ПОКРЫТИЕ
УСЛОВИЕ. Заданы граф G = (У, Е) и положительное целое число К. ВОПРОС. Существует ли подмножество V s У, такое, что | У '1 ^ К и для любого ребра е е Е имеется такая вершина о е V', что «ее?
ТРАНЗИТИВНАЯ РЕДУКЦИЯ
УСЛОВИЕ. Заданы ориентированный граф G = (У, А) и положительное целое число К.
ВОПРОС. Существует ли подмножество A's У X V, такое, что | А' | ^ К и для всех и, о eV граф G' = (У, А') содержит путь из и в и тогда и только тогда, когда граф G содержит такой путь?
МИНИМАЛЬНЫЙ ЭКВИВА
ЛЕНТНЫЙ ОРИЕНТИРОВАННЫЙ ГРАФ
УСЛОВИЕ. Заданы ориентированный граф G = (У, А) и положительное целое число К.
ВОПРОС. Существует ли подмножество A's А, такое, что | А' | ^ К и для всех и, «eV граф G' = (У, А'), содержит путь из и в о тогда и только тогда, когда граф G содержит такой путь?
РАСПИСАНИЕ ДЛЯ ПРЯМОГО ДЕРЕВА ЗАДАНИЙ
УСЛОВИЕ. Заданы: множество Т заданий с единичной длительностью, директивный срок d (?) е Z + для каждой t е Г, частичный порядок <• на множестве Т, относительно которого каждое задание имеет не более одного непосредственно следующего за ним, положительное целое число т.
ВОПРОС. Можно ли составить для множества Т расписание на m процессорах, на каждом из которых задания выполняются согласно заданному частичному порядку, так что все директивные сроки окажутся выполненными?
РАСПИСАНИЕ ДЛЯ ОБРАТНОГО ДЕРЕВА ЗАДАНИЙ
УСЛОВИЕ. Заданы: Множество Т заданий с единичной длительностью, директивный срок d (?) g Z + для каждого t е Т, частичный порядок <■ на множестве Т, относительно которого каждое задание имеет не более одного непосредственного предшественника, положительное целое число т.
ВОПРОС. Можно ли составить для множества Т расписание на m процессорах, на каждом из которых задания выполняются согласно заданному частичному порядку, так что все директивные сроки окажутся выполненными?
Рис. 4.1. Пары близких задач, одна из которых принадлежит классу Р,. а другая NP-полпа."
задач седьмой задачей. Заканчивает главу разд. 4.3, в котором кратко обсуждается использование подзадач при изучении влияния на сложность задачи ее индивидуальных параметров (а не только общей “длины входа”).
АНАЛИЗ ПОДЗАДАЧ
Предположим, нам только что удалось доказать, что интересующая нас задача NP-полна. При этом мы получаем полные ответы на оба вопроса, с которых начинался анализ вопросов. Однако это лишь первый шаг на пути решения задачи. Задача, которой мы занимаемся, часто получается как идеализация менее привлекательной прикладной задачи, и некоторые детали, опущенные в процессе идеализации, могут изменить задачу в такой степени, что она станет разрешимой за полиномиальное время. Даже если это не так, у задачи могут иметься некоторые важные частные подзадачи, которые могут быть решены за полиномиальное время. Возможно также, что индивидуальные задачи, плохо поддающиеся решению, встречаются относительно редко и имеют легко выявляемые особенности, позволяющие заблаговременно опознать такие задачи. Эти возможности могут быть изучены с помощью анализа подзадач интересующей нас задачи.
Согласно принятому нами описанию массовых задач распознавания, каждая из них состоит из двух частей: множества D всех индивидуальных задач и множества У индивидуальных задач из D с ответом “да”. Подзадачей (или “частным случаем") задачи П = (О, У) называется такая задача IT = (D', Y'), что D' sD и Y' = У П D'. Другими словами, П' есть подзадача задачи П, если в ней сформулирован тот же вопрос, что и в П, но только на некотором подмножестве множества индивидуальных задач из П.
Таким образом, подзадачи возникают всякий раз, когда на множество индивидуальных задач налагаются дополнительные ограничения. В задачах из теории графов, например, можно ограничиваться индивидуальными задачами, в которых графы планарны, или двудольны, или ацикличны, или обладают некоторыми из этих свойств одновременно. В задачах, содержащих множества, можно ограничиться индивидуальными задачами, в которых мощность множеств не превосходит заданной величины, или задачами, в которых все элементы содержатся не более чем в ограниченном числе множеств. Можно потребовать, чтобы любые величины, сопоставляемые элементам множества, принадлежали некоторому ограниченному множеству допустимых значений. Из всех этих возможных задач для детального анализа обычно выбираются те, которые имеют известные
приложения или в каком-то смысле являются “естественными"’ подзадачами, возникновение которых можно ожидать в приложениях.
Совершенно ясно, что, если даже задача П является NP-полной, ее подзадачи могут быть как NP-полными, так и полиномиально разрешимыми. Конечно, если задача П принадлежит классу Р, то любая ее подзадача, индивидуальные задачи которой распознаваемы за полиномиальное время (а мы будем рассматривать только подзадачи, обладающие последним свойством),
Рис. 4.2. Одна из возможных ситуаций состояния знаний о подзадачах NP- полной задачи П.
Задачи изображены кружками. Темные кружки соответствуют NP-полным задачам, светлые — задачам класса Р, а кружки с точкой — «открытым» задачам. Стрелка от задачи П1 к задаче П2 указывает на то, что lit есть подзадача П2.
также должна лежать в Р. Мы уже отмечали отличающиеся в этом отношении две подзадачи ВЫПОЛНИМОСТЬ — а именно задачи 3-ВЫПОЛНИМОСТЬ и 2-ВЫПОЛНИМОСТЬ. В предположении, что Р =# NP, можно считать что подзадачи любой NP-полной задачи лежат по разные стороны воображаемой “границы”, разделяющей полиномиально разрешимые и труднорешаемые задачи. При анализе задач наша цель состоит в выяснении, какие подзадачи по какую сторону этой границы лежат.
В действительности, по-видимому, лучше будет в каждый отдельный момент времени представлять себе “пограничную зону” между подзадачами, разрешимость которых за полиномиальное время уже известна, и подзадачами, для которых установлена NP-полнота. Подобная пограничная зона состоит из подзадач, NP-полнота которых остается под вопросом. На рис. 4.2 схематически изображено возможное "состояние знаний” о наборе подзадач задачи Ц.
Если нам удается определить, что некоторая открытая задача лежит в Р или NP-полна, то тем самым сужается пограничная зона и увеличивается изученная часть класса NP. Конечно, если задача неразрешима за полиномиальное время, нам никогда не удастся полностью исчерпать пограничную зону,' кроме, возможно, случая,когда представляет интерес только ограниченное число подзадач. Даже когда мы ограничиваемся фиксированным, конечным набором подзадач, некоторые из них могут оказаться принадлежащими к группе промежуточных задач, которые ни NP-полны, ни принадлежат классу Р (как мы уже отмечали, если Р #= NP, то такие задачи должны существовать). Тем не менее, когда мы выясняем место одной из задач, оставшейся открытой, можно считать, что мы приближаемся к воображаемой “пограничной линии”.
Чтобы конкретизировать сказанное выше, рассмотрим задачу составления расписания выполнения заданий, имеющих равную длительность и подчиненных отношению предшествования (эта задача сама по себе представляет частный случай некоторых более общих задач теории расписаний).
РАСПИСАНИЕ С ОТНОШЕНИЕМ ПРЕДШЕСТВОВАНИЯ
УСЛОВИЕ. Задано множество Т “заданий” (предполагается, что все они имеют длительность 1) и частичный порядок <• на множестве Т, число “процессоров” пг и общий директивный срок DeZ+.
ВОПРОС. Существует ли такое “расписание” о: Т{0, 1, ... ..., О}, что для каждого t е {0, 1, ..., D} | {/ е Т: a(t) = /} | ^ ^ m и если K-V, то а(0< о(О?
В качестве гипотетического “приложения” этой задачи рассмотрим следующую ситуацию. Предположим, что вы ассистент факультета прикладной математики Государственного университета и только что получили задание помочь поступившим первокурсникам составить план своих занятий на все время обучения. Студенты представляют вам список всех курсов, которые они намереваются прослушать, и число пг — максимальное число курсов, которые они могут слушать одновременно, D — число семестров обучения. Университет достаточно большой, так что каждый курс лекций читается каждый семестр и никакие два курса не пересекаются по времени. Однако некоторые курсы являются вспомогательными для других и поэтому должны быть прослушаны раньше последних (/<•/' означает, что t является вспомогательным для f). Предположим, что вы решили написать программу для ЭВМ, которая, пользуясь этой информацией, составляла бы для каждого студента соответствующее расписание.
Задача РАСПИСАНИЕ С ОТНОШЕНИЕМ ПРЕДШЕСТВОВАНИЯ NP-полна [518], поэтому мало вероятно, что вам удастся построить полиномиальный алгоритм составления расписания в общем случае. Тем не менее, возможно, найдутся некоторые естественные ограничения, приемлемые для большинства студентов и облегчающие решение задачи. Поскольку работоспособность студентов ограничена, то вполне вероятно, что tn можно ограничить сверху некоторым числом, например 6. Вспомогательные курсы лекций также могут удовлетворять дополнительным ограничениям. Многие из ваших студентов могли выбрать столь разнообразную программу обучения, что ни один из выбранных ими курсов лекций не потребует вспомогательных
«1^1 ,н^2 /и^З m<4 m^5 m^lOO m произвольно «произвольно*-(•>—*"<•)—►<•)НЭ►•
ЗаревоQ—>-Q—>-Q——n-Q- • • •• • • —►О
пустоQ—►(_)—>-О—ИЗ—►О- •1 • -►О— • • • —^О
Рис. 4.3. Современное состояние знаний о семействе подзадач задачи РАСПИСАНИЕ С ОТНОШЕНИЕМ ПРЕДШЕСТВОВАНИЯ (в обозначениях рис. 4.2).
курсов (в этом случае условие порядка отсутствует). В некоторых случаях может оказаться, что для каждого данного курса лекций требуется только один “явный" вспомогательный курс, а все остальные курсы, вспомогательные для данного, являются вспомогательными также и для “явного" вспомогательного. В этом случае частичный порядок представляет собой древовидную структуру. Возможны и другие ограничения, но мы остановимся только на перечисленных. Таким образом, возникает семейство подзадач, представленное на рис.4.3. На этом же рисунке приведены известные сведения о сложности этих подзадач.
Заметим, что все возможности, указанные на рис. 4.2, включая пограничную зону, встречаются на рис.4.3. В случае когда имеется подобная однородная иерархия подзадач, очень часто ту же самую информацию можно задать более кратко, указав “минимальную” NP-полную и “максимальную" разрешимую за полиномиальное время подзадачу. Если задано семейство С подзадач некоторой NP-полной задачи, то задача Пе С является (в настоящее время) минимальной NP-полной подзадачей, если известна NP-полнота задачи П и у нее нет подзадачи П', которая была бы NP-полна и принадлежала семейству С. Задача Пе С является (в настоящее время) максимальной полиномиально разрешимой подзадачей, если известна ее принадлеж-
ность классу Рив семействе С нет задачи П', которая была бы разрешима за полиномиальное время и содержала бы П в качестве подзадачи. Аналогичным образом можно определить минимальную и максимальную открытые подзадачи семейства С.
Для класса подзадач задачи РАСПИСАНИЕ С ОТНОШЕНИЕМ ПРЕДШЕСТВОВАНИЯ, представленного на рис. 4.3, две подзадачи, определяемые ограничениями “<•—произвольно, m 2” и “<— дерево, т — произвольно’’, являются (в настоящее время) максимальными подзадачами, разрешимыми за полиномиальное время. Сама общая задача является (в настоящее время) минимальной NP-полной подзадачей. Минимальная открытая подзадача определяется ограничениями “<■—произвольно, т ^ 3”, а максимальной открытой подзадачи не существует, поскольку все задачи с ограничением вида “<•— произвольно, т ^ /” открыты при всех целых / ^ 3.
Вполне естественным представляется изучение пограничной области задачи с помощью общей схемы двустороннего подхода, описанной выше. Мы по очереди рассматриваем подзадачи, представляющиеся наиболее вероятными кандидатами на принадлежность классу Р, и подзадачи, кажущиеся NP-полными. Используя в качестве отправных точек подзадачи, очевидным образом разрешимые за полиномиальное время, и подзадачи, NP-полнота которых следует непосредственно из NP-полноты общей задачи, мы постепенно увеличиваем множество индивидуальных задач первой подзадачи и уменьшаем множество индивидуальных задач второй. В отличие от случая, когда изучается одна отдельная задача с переходами от построения алгоритма к доказательству NP-полноты, при анализе подзадач у нас появляется возможность изменять также и сами задачи, от более ограничительных к менее ограничительным.
Техника, используемая для доказательства NP-полноты подзадач, по существу, аналогична описанной в гл. 3 технике доказательства NP-полноты изолированных задач. Однако имеется одно весьма важное различие. Когда мы пытаемся доказать NP-полноту подзадачи, нам уже известно доказательство NP-полноты некоторой обобщенной версии этой подзадачи. Это дает нам хорошего кандидата на “известную" NP-полную задачу (чем можно воспользоваться в искомом доказательстве), а также доказательство NP-полноты, которое можно было бы модифицировать, чтобы получить соответствующее доказательство для рассматриваемой подзадачи. Хотя это и не всегда облегчит достижение нашей цели, но, по крайней мере в отличие от доказательства NP-полноты изолированной задачи, нам будет от чего оттолкнуться.
Преимущества такого подхода можно удачно проиллюстрировать на некоторых хорошо известных задачах из теории гра-
фов. Поскольку среди NP-полных задач очень часто встречаются задачи из теории графов, а ограничения, которые мы будем рассматривать для таких задач, часто оказываются существенными, то в действительности различные приемы, используемые нами для доказательства результатов об NP-полноте при этих ограничениях, заслуживают рассмотрения сами по себе.
В дальнейшем мы будем обсуждать много разнообразных задач из теории графов, а в качестве первого примера возьмем следующую задачу (уже встречавшуюся в гл. 3) о “раскраске графа":
РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА
УСЛОВИЕ. Задан граф G = (V, Е).
ВОПРОС. Верно ли, что G раскрашиваем в 3 цвета? Другими словами: “Существует ли такая функция f: V->{1, 2, 3}, что f(u)=^f(u), если {и, и} е£?"
Эта задача связана со знаменитой проблемой четырех красок (недавно решенной Аппелем и Хакеном [19, 20] и возникающей в связи с задачами теории расписаний и разбиений). Задача сама по себе представляет собой частный случай задачи РАСКРАШИВАЕМОСТЬ ГРАФА В К ЦВЕТОВ, в которой / принимает значение в множестве {1, ..., К}, а К входит в условие задачи. NP-полнота задачи РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА была доказана Стокмейером [496] (доказательство опубликовано также в работе [157]).
Первое из рассматриваемых нами ограничений состоит в ограничении максимальной степени вершин (степенью вершины называется число содержащих ее ребер). Большинство задач из теории графов может быть решено за полиномиальное время, если максимум степеней вершин графа достаточно мал. Например, если потребовать, чтобы все вершины графа имели степень не более 2, то задачи ГАМИЛЬТОНОВ ЦИКЛ, ВЕРШИННОЕ ПОКРЫТИЕ и РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА (а также почти любая задача из теории графов, которую можно себе вообразить) тривиально решаются за полиномиальное время. Таким образом, возникает вопрос: “Каково самое сильное ограничение на степени вершин, при котором задача все еще остается NP-полной?”
Задача КЛИКА — одна из задач для которой никакое ограничение на степени вершин не сохраняет свойства NP-полноты. Это объясняется тем, что если степени вершин ограничены числом D, то граф не может содержать клику на более чем D + 1 вершинах. Следовательно, наибольшая клика может быть найдена перебором всех подмножеств вершин, состоящих не более чем из D + 1 элементов, а поскольку D фиксировано, то число
таких подмножеств ограничено полиномом. Заметим, что хотя (в предположении Р NP) это соображение предупреждает наши попытки доказывать NP-полноту ограниченной версии задачи КЛИКА, алгоритм, который можно построить на его основе при больших D, не представляет практического интереса.
Для многих других задач из теории графов имеются NP-пол- ные подзадачи с ограниченной степенью вершин. На рис. 4.4 представлены некоторые результаты этого типа. Отметим, что все границы являются наилучшими возможными (в предположении Р ^ NP), поскольку их уменьшение всего лишь на 1 приводит к полиномиально разрешимой подзадаче. В действительности задачи становятся тривиальными. (Для задачи РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА теорема Брукса [56]
ВЕРШИННОЕ ПОКРЫТИЕ23
ГАМИЛЬТОНОВ ЦИКЛ23
РАСКРАШИВАЕМОСТЬ34
ГРАФА В 3 ЦВЕТА МНОЖЕСТВО ВЕРШИН,23
РАЗРЕЗАЮЩИХ КОНТУРЫ
Рис. 4.4. Классификация (относительно разрешимости за полиномиальное время и NP-полноты) подзадач, получаемых рассмотрением индивидуальных задач, у которых степень вершин не превосходит D.
утверждает, что связный граф с максимальной степенью вершин, равной 3, раскрашиваем в 3 цвета тогда и только тогда, когда он не является полным графом на четырех вершинах.) (Последнее условие легко проверяется.)
Каждый из этих результатов об NP-полноте подзадач на графах с ограниченной степенью вершин может быть получен из общей задачи с помощью метода локальной замены. Основную идею, которая заключается в “замене вершин", мы проиллюстрируем на примере задачи РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА.
Теорема 4.1. Задача РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА для графов, все вершины которых имеют степень не более 4, остается NP-полной.
Доказательство. Принадлежность ограниченной задачи классу NP следует немедленно из аналогичного результата для общей задачи. Поэтому предположим, что 6 = (V, Е)—произвольная индивидуальная задача общей задачи. Необходимо по-
строить соответствующий граф G'= (У', £'), не имеющий вершин степени более 4 и раскрашиваемый в 3 цвета тогда и только тогда, когда граф G раскрашиваем в 3 цвета.
Прием “замена вершин” основан на использовании представленного на рис. 4.5(a) графа Н3 на восьми вершинах. Этот граф имеет три “разъема”, помеченные на этом рисунке числами 1, 2 и 3. При к 2^4 вершина, инцидентная к ребрам, заменяется графом Н к, имеющим к разъемов, который получается из графа Нк-\ подсоединением экземпляра графа Н3 (причем к (А—1)-му разъему графа Нк-\ подсоединяется первый разъем графа Н^. Разъемы графа Нк_х — вершины степени два. Все
Рис. 4.5. Граф Н3 и граф Н5 (образованный тремя экземплярами графа Н3), используемые для доказательства NP-полноты задачи РАСКРАШИВАЕ- МОСТЬ ГРАФА В 3 ЦВЕТА с ограниченными степенями вершин.
разъемы графа Нк-Х сохраняют свои метки, а разъемы с номерами 2 и 3 подсоединяемого графа Н3 получают метки к — 1 и к соответственно. На рис. 4.5(6) представлен граф Я5.
Легко видеть, что для всех к "^ 3 имеют место следующие утверждения:
Граф Нк имеет 7 (k— 2)+ 1 вершин, включая к помеченных разъемов.
В графе Нк нет вершин степени более 4.
Степень каждого разъема равна 2.
Граф Нк раскрашиваем в 3 цвета, но не раскрашиваем в 2 цвета, а любая его раскраска в 3 цвета сопоставляет всем разъемам один и тот же цвет.
Перенумеруем произвольным образом г вершин Уь Уг, .... Уг заданного графа G, степени которых превосходят 4. Теперь последовательность графов
G = Gq, Gx, G2Gr = G'
строится следующим образом. Граф Gt, 1 ^ i ^ г, строится по графу Gi-i. Пусть d— степень вершины у, в графе Gi-X, а {ui, у,}, {«2, Уц{и<1, «Л—ребра, содержащие эту вершину. Для построения графа Gi из графа G,_i удаляем вершину у,, заменяя ее экземпляром графа На, и при этом каждое ребро
{и/, uj заменяется ребром, соединяющим и, с /-м разъемом графа Hd.
Из построения и перечисленных выше фактов вытекает, что при О^А^л граф Gh имеет г — к вершин степени более 4 и граф Gk раскрашиваем в три цвета тогда и только тогда, когда граф G раскрашиваем в три цвета. Отсюда следует, что граф G' = О, обладает необходимым свойством. ■
Для других задач используются иные замены вершин и подчас требуется большая изобретательность, чтобы отыскать соответствующую замену, сохраняющую все нужные свойства. Однако поскольку на практике такие ограничения встречаются достаточно часто (например, ограничение на число входов и ветвлений выходов в логических схемах), то имеет смысл изучить их влияние на сложность любой общей задачи теории графов.
Другое общее ограничение для задач из теории графов связано с планарностью графов. Граф называется планарным, если его можно вложить в плоскость посредством отождествления каждой вершины с точкой плоскости, а ребра — с линией, соединяющей его конечные точки (причем никакие две линии не должны иметь общих точек, кроме, быть может, концов). Например при составлении карт и при конструировании печатаных схем возникают планарные графы, поэтому вполне естественно рассмотреть влияние планарности на сложность задачи. КЛИКА снова дает нам пример задачи, которая при наложении такого ограничения упрощается, ибо планарный граф не может содержать полного подграфа более чем на четырех вершинах. Более интересен пример следующей задачи:
МАКСИМАЛЬНЫЙ РАЗРЕЗ
УСЛОВИЕ. Заданы граф G = (V, Е^, вес w(e)eZ+ для каждого ребра е е Е, а также целое положительное число К.
ВОПРОС. Можно ли разбить множество V на такие два непере- секающихся подмножества Ki и Кг, чтобы сумма весов ребер из Е, имеющих концы в разных подмножествах, была не меньше К?
Для произвольных графов эта задача NP-полна, даже если потребовать, чтобы веса всех ребер были равны [157]. Однако в работах [406, 195] показано, как теория паросочетаний может быть использована для решения этой задачи на планарных графах без каких-либо ограничений на веса ребер.
С другой стороны, многие задачи на графах (например, все задачи, обсуждавшиеся в гл. 3) остаются NP-полными даже для планарных графов. К доказательству результатов подобного типа имеется два подхода. Первый из них состоит в том,
Рис. 4.6. Переплетение Н, используемое в доказательстве NP-полноты задачи РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА для планарных графов.Рис. 4.6. Переплетение Н, используемое в доказательстве NP-полноты задачи РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА для планарных графов.чтобы найти задачу, для которой NP-полнота на планарных графах уже известна, и использовать сводимость, сохраняющую планарность. Второй, более общий прием состоит в применении к исходной задаче метода локальной замены, для чего конструируется “переплетение”, которое можно было бы использовать вместо любого переплетения ребер, возникающего при вложении графа (не обязательно планарного). Для иллюстрации этого приема опять вернемся к задаче РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА.
Рис. 4.6. Переплетение Н, используемое в доказательстве NP-полноты задачи РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА для планарных графов.
Рис. 4.6. Переплетение Н, используемое в доказательстве NP-полноты задачи РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА для планарных графов.
Теорема 4.2. Задача РАСКРАШИВАЕМОСТЬ ПЛАНАРНОГО ГРАФА В 3 ЦВЕТА NP-полна.
Доказательство. Принадлежность этой задачи классу NP очевидна (планарность графа можно распознать за полиномиальное время, применив, например, линейный по времени алгоритм Хопкрофта и Тарья- на [213]). Поэтому предположим, что G=(V, Е)— произвольная индивидуальная задача РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА. Требуется указать способ построения соответствующего планарного графа G' = (K', Е'), такого, что G' раскрашиваем в 3 цвета тогда и только тогда, когда G раскрашиваем в 3 цвета.
“Переплетение", используемое в доказательстве, — это граф, представленный на рис. 4.6. У него разъемы х, х', у и у' помечены. Это переплете- Фишером, оно проще переплете
ние было предложено М. Дж.ние было предложено М. Дж.ния, использовавшегося в исходном доказательстве Стокмейера [496]. Граф Н имеет 13 вершин, 24 ребра и обладает следующими свойствами (проверку которых мы оставляем читателю):
ние было предложено М. Дж.
ние было предложено М. Дж.
Любая раскраска графа Н в три цвета удовлетворяет условиям f(x) = f(x') и /(«/) = f(y').
Существуют такие раскраски fY и fa графа Н в три цвета, что выполняются свойства
U(х)—fi(x (у) — Ь(у)
Граф G' строится по G следующим образом:
Вкладываем граф G в плоскость, позволяя ребрам пересекаться, но не допуская прохождения ребра через вершину, отличную от концов, и не разрешая пересечения более чем двух ребер в одной точке (за исключением вершин). Это может быть легко сделано за полиномиальное время.
Для каждого ребра {и, и} е £ назовем его представление на плоскости “{и, и)-линией”. Для каждой линии,
Рис. 4.7. Построение по заданному графу О планарного графа О', использующее переплетение /7, представленное на рис. 4.6 и сохраняющее свойство раскрашиваемости в 3 цвета.
“пересекаемой" другими линиями, добавим новые вершины по одной между каждым концом и ближайшей к нему точкой пересечения и по одной между каждой парой соседних точек пересечения — см. рис. 4.7 (а) и (б), (в) Заменяем каждую точку пересечения линий в графе экземпляром графа Н, отождествляя разъемы х и х* с ближайшими двумя точками, на одной из пересекающихся линий, а разъемы у и у' с ближайшими двумя точками на другой — см. рис. 4.7(b).
Для каждого ребра (и, и) е £ выберем одну из его выделенных конечных точек и сольем ее с ближайшей новой точкой на (и, и}-линии — см. рис. 4.7(г). Если на {и, и)-линии нет новых точек, то слияний не происходит и все исходные вершины (множества V) сохраняются неизменными. Ребро между другой концевой точкой
(и, и}-линии и ближайшей к ней новой точкой на {м, и}- линии будет называться оперантным ребром (и, и}-линии.
На этом описание графа G заканчивается. Нетрудно видеть, что граф G' планарный и может быть построен за полиномиальное время. Остается показать, что G' раскрашиваем в три цвета тогда и только тогда, когда G раскрашиваем в три цвета.
Предположим, что /: V" ^-{1, 2, 3} — произвольное раскрашивание графа G' в три цвета. Утверждается, что ограничение f на V есть раскрашивание в 3 цвета графа G. Предположим противное. Тогда должно существовать ребро {и, и} еЕ, такое, что f(u)=f(u). Рассмотрим {и, и}-линию в графе G' и (без ограничения общности) предположим, что и —выделенный конец этого ребра, выбранный на шаге (г) построения. В силу свойства 1 графа И все новые точки {м, и}-линии должны быть окрашены в тот же “цвет”, что и вершина и. Следовательно, оба конца оперантного ребра этой линии должны быть окрашены в одинаковый цвет, а это противоречит предположению, что f являлось раскрашиванием графа G' в 3 цвета.
Обратно, предположим, что /: У^-{1, 2, 3} — произвольное раскрашивание графа G в три цвета. Это раскрашивание может быть продолжено до раскрашивания в три цвета графа G' следующим образом. Для каждого ребра {м, и} g Е окрасим каждую новую точку (и, и)-линии в цвет Дм), где и — выделенная вершина этой линии. Это обеспечивает то, что оба конца каждого оперантного ребра оказываются окрашенными в разные цвета (поскольку Дм) #= Ди)). В силу свойства 2 графа Н, эта частичная раскраска графа G' может быть продолжена до раскрашивания графа G' в 3 цвета с помощью выбора соответствующей окраски вершин каждого из переплетений. Отсюда вытекает требуемый результат. •
Списки задач из приложения ознакомят читателя с большим числом других результатов об NP-полноте ограниченных версий задач из теории графов. В этих списках мы пытались дать как можно больше информации о сложности различных подзадач каждой задачи. Списками можно воспользоваться в качестве одного из источников возможных ограничений, которые для данной задачи можно подвергнуть анализу. Другие ограничения возникнут из контекста, в котором формулируются задачи. Индивидуальные задачи, возникающие в конкретных приложениях, часто будут удовлетворять специальным ограничениям. Эти ограничения могут оказать влияние на сложность задачи, хотя они на первый взгляд могут показаться несущественными.
В следующем разделе мы обсудим ограничения специального вида, часто представляющие интерес в задачах с числовыми параметрами.
ЗАДАЧИ С ЧИСЛОВЫМИ ПАРАМЕТРАМИИ СИЛЬНАЯ NP-ПОЛНОТА
Необходимость анализа подзадач NP-полной задачи особенно ярко проявляется в задачах с числовыми параметрами. Причины этого явления можно проиллюстрировать на нижеследующем примере применения метода “динамического программирования” для решения задачи РАЗБИЕНИЕ.
J 1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
1
Т
т
F
F
F
F
F
F
F
F
F
F
F
F
2
т
т
F
F
F
F
F
F
F
Т
т
F
F
F
3
т
т
F
F
F
Т
Т
F
F
т
т
F
F
F
4
т
т
F
Т
Т
Т
т
F
Т
т
т
F
Т
Т
5
т
т
F
Т
Т
т
т
F
Т
т
т
Т
Т
Т
Рис. 4.8. Таблица значений / (/, /) для индивидуальной задачи РАЗБИЕНИЕ, которая определяется множеством А = (аь аг, а3, а4, а3) и весами s(O]) = l, s (а2) = 9, s (а3) = 5, s (а4) = 3 и s (а6) = 8. Рассматриваемой индивидуальной задаче соответствует ответ «да», поскольку t (5, 13) = Г в силу того, что s (а 1) + s (а2) + s (а4) = 13 = 26/2.
Пусть множество А = {аь а2, ..., ап} и размеры его элементов 5(0]), s(a2), ..., s(a„)eZ+ определяют произвольную индивидуальную задачу РАЗБИЕНИЕ. Положим В — У, s(a). as А Если В нечетно, то, очевидно, не существует такого подмножества A's А, что
У s(a) = У s(a),as А'аеА\А'
и, следовательно, рассматриваемой индивидуальной задаче соответствует ответ “нет”. Если же В четно, то пусть /(i, /) (где 1 ^ i ^ п, 0 ^ / ^ В/2) обозначает значение истинности утверждения: “существует такое подмножество множества (ai, а2, ..., а,), что сумма размеров его элементов равна в точности /”. Значения /(i, /) можно расположить в виде таблицы, как это сделано на рис. 4.8.
“Изюминка” предлагаемого метода заключается в очень простой процедуре, которой можно воспользоваться для заполнения таблицы. Процедура позволяет заполнить таблицу последовательно, строчка за строчкой сверху вниз. Совершенно ясно,
что в первой строке /(1, /) = Т тогда и только тогда, когда либо / = 0, либо / = s(ai). Каждая следующая строка заполняется с использованием значений, расположенных в предыдущей строке. Для 1 < / ^ и, 0 ^ / ^ В/2, равенство t^i, j) = Т имеет место только в двух случаях: либо если /(t—1, j)=T, либо если s(ai)^j и /(/—1, j — s(ai)) = Т. После того как вся таблица будет заполнена, рассматриваемая индивидуальная задача РАЗБИЕНИЕ будет решена, поскольку ей соответствует ответ “да" тогда и только тогда, когда /(/г, В/2) = Т.
У читателя не должно возникнуть трудностей при написании итеративного алгоритма заполнения таблицы согласно описанному выше способу; время работы алгоритма ограничено полиномом низкой степени от числа клеток таблицы (т. е. полиномом от пВ). На первый взгляд может даже показаться, что это дает полиномиальный алгоритм решения задачи РАЗБИЕНИЕ, откуда следует, что Р = NP и в результате чего настоящая книга вообще становится ненужной. Однако это, конечно, не так. Объяснение можно найти, вспомнив о требовании “сжатости” разумных схем кодирования задач, при которых каждое целое число s(a<) должно быть представлено на входе словом длины порядка O(logs(a,)). Следовательно, длина записи всей индивидуальной задачи РАЗБИЕНИЕ будет величиной порядка О(n log В), а пВ не ограничено никаким полиномом от этой величины. Следовательно, описанный выше алгоритм не позволяет решить задачу РАЗБИЕНИЕ за полиномиальное время.
Тем не менее наличие такого алгоритма показывает, что NP-полнота задачи РАЗБИЕНИЕ (а также ее предполагаемая труднорешаемость) в значительной степени зависит от того обстоятельства, что на входе могут присутствовать чрезвычайно большие числа. Если бы на величину таких чисел заранее было наложено какое-либо ограничение, например в виде полинома от Length [/], то приведенный выше алгоритм для таким образом ограниченной задачи был бы полиномиальным. (В дальнейшем для выделения алгоритмов, обладающих этим свойством, мы введем термин “алгоритм с псевдополиномиальным временем работы”.) Естественно ожидать, что подобное ограничение выполнено во многих задачах, встречающихся на практике.
Например, в задачах теории расписаний (где числа представляют собой длительности заданий) появление слишком больших чисел мало вероятно, поскольку мы собираемся выполнять задания реально, и если какое-то из них требует чрезвычайно большого времени, то мы просто будем не в состоянии его закончить. В других задачах, где числа представляют собой эмпирически измеренные величины, доступная точность измерения ограничивает пределы изменения чисел, к которым наш алгоритм должен быть применим.
Более того, алгоритм с псевдополиномиальным временем работы может быть полезен даже в тех случаях, когда нельзя надеяться на естественное ограничение величины входных чисел. Такие алгоритмы будут работать “экспоненциально долго" только для тех индивидуальных задач, в которых имеются “экспоненциально большие” числа. Однако может оказаться, что в интересующих нас приложениях подобные индивидуальные задачи встречаются редко. Если это так, то алгоритм этого типа может служить нашим целям почти столь же хорошо, как и полиномиальный по времени алгоритм.
Таким образом, отыскание псевдополиномиального алгоритма для решения NP-полной задачи с числовыми параметрами — вопрос достойный исследования. В дальнейшем мы увидим, что не все числовые задачи в этом отношении подобны задаче РАЗБИЕНИЕ. С помощью теории NP-полноты можно показать, что если Р =/= NP, то для решения некоторых из них не может существовать даже псевдополиномиального алгоритма. В разд. 4.2.1 вводится новая терминология, а также закладывается фундамент для доказательства подобных результатов о “сильной" МР-пол- ноте. В разд. 4.2.2 иллюстрируется техника доказательств и приводится седьмая из числа “основных” NP-полная задача.
Некоторые дополнительные определения
В следующих ниже определениях участвуют подзадачи, получаемые при наложении ограничений на величины чисел, входящих в индивидуальную задачу. Эти ограничения будут формулироваться с помощью двух не зависящих от кодирования функций Length: Dn^-Z+ и Max: Dn-*Z+, которые будут связываться с каждой задачей распознавания П. Хотя теоретически эти две функции могут быть совершенно произвольными (так же как схемы кодирования), значимость определяемых с их помощью понятий будет зависеть от того, в какой мере эти функции адекватно отражают следующий вкладываемый в них смысл. Как говорилось в разд. 2.1, назначение функции Length состоит в сопоставлении любой индивидуальной задаче / некоторого целого числа Length [/], соответствующего числу символов, используемых для описания I при некоторой разумной схеме кодирования задачи П. Назначение функции Мах (не обсуждавшейся ранее) состоит в сопоставлении любой индивидуальной задаче / целого числа Мах[/], соответствующего величине максимального числа в I.
Типы результатов, которые мы будем доказывать в дальнейшем, будут носить достаточно общий характер и будут справедливы для достаточно широкого класса “полиномиально экви- взлентных” функций Length и Мах. Будем говорить, что две
функции длины записи Length и Length' для задачи П полиномиально эквивалентны, если существуют такие полиномы р и р', что для всех индивидуальных задач / е Dn выполнены соотношения
Length (/) < р' (Length' [/]);
Length' (/) ^ р (Length [7]).
Будем говорить, что пара функций (Length, Мах) полиномиально эквивалентна паре функций (Length', Max'), если, во-первых, функции Length и Length' эквивалентны в смысле данного выше определения и, во-вторых, существуют такие полиномы от двух переменных q и q', что для всех / е Dn выполнены соотношения:
Мах [/] ^ q' (Max' [7], Length' [/]);
Max' [/] q (Max [/], Length [/]).
Все формулируемые ниже результаты будут справедливы для любых функций Length и Мах, полиномиально эквивалентных тем функциям, которыми мы пользуемся.
В качестве примера рассмотрим задачу РАЗБИЕНИЕ, в которой индивидуальная задача / определяется конечным множеством А и размерами s(a)eZ+ каждого элемента qeA Любая из приводимых ниже функций подошла бы в качестве функции Length для задачи РАЗБИЕНИЕ:
Length[Z] = | А |+ ^ riog2s(a)n;
a g А
Length [7] = | А | + max {riog2 s (а)-]: а е А};
Length [ 7] = | А | - ["log2 ^д s (a)"|.
пар функций Length и Мах, получаемых комбинацией функций подошла бы в качестве функции Мах для задачи РАЗБИЕНИЕ:
Мах [7] = max {s (а): а е А};
Мах [7] = У, $ (а);
аеА
Мы оставляем читателю проверку того, что любая из девяти пар функций Length и Мах, получаемых комбинацией функций из приведенных двух списков, полиномиально эквивалентна любой другой такой же паре функций.
Неопределенность, допускаемая нами при выборе функций length и Мах, позволит избежать явного их указания для за-
дачи П, поскольку их с достаточной точностью можно восстановить по описанию условия задачи. Подходящая функция Length определяется понятием “разумная схема кодирования” задачи, а оно уточняется при описании условия задачи и посредством стандартных соглашений, принятых в разд. 2.1. Подходящая функция Мах возникает при указании того, что некоторые объекты задачи представляют собой числа (в отличие от множеств, последовательностей, графов, элементов с именами и т. д.). Обычно это будут целые числа, а более сложное “число", входящее в описание индивидуальной задачи, будет рассматриваться как образование, полученное из одного или нескольких отдельных целых чисел, аналогично рассмотренному выше случаю рациональных чисел. Примем следующее соглашение: в качестве Мах [/] будет выбираться либо величина наибольшего числа, входящего в /, либо 0, если в / вообще не входят целые числа.
От функций Length и Мах будет требоваться выполнение еще одного, последнего условия. Оно заключается в том, что при любой фиксированной разумной схеме кодирования задачи П должны существовать две ДМТ-программы с полиномиальным временем работы, которые, принимая на входе код каждой индивидуальной задачи leDn, выдают на выходе двоичные записи величин Length[/] и Мах[/].Это свойство необходимо нам лишь по той причине, что мы будем рассматривать ограничения на индивидуальные задачи, формируемые с помощью Length[/] и Maxi/], и нам нужно уметь распознавать коды индивидуальных задач, удовлетворяющие этим ограничениям. Любые естественно возникающие функции Length [7] и Мах [7] наверняка обладают этим свойством.
Нижеследующие определения предполагают, что с любой задачей распознавания П связаны функции Length и Мах, для которых выполняются перечисленные выше требования. Формально говоря, для рассуждения на уровне языков необходимо также, чтобы для каждой задачи П была предъявлена некоторая схема кодирования. Однако гораздо удобнее формулировать определения на уровне задач без этой оговорки, действуя согласно стандартным предположениям об использовании разумных схем кодирования. У читателя не должно возникнуть трудностей в восполнении всех деталей при полной формализации этих определений на уровне языков, и будет более естественно и более информативно продолжать наши рассуждения на уровне задач.
Алгоритм решения задачи П будет называться псевдополи- номиальным по времени алгоритмом (или просто псевдополи- аомиальным алгоритмом), если его временная функция ограничена сверху полиномом от двух аргументов Length]/] и
Мах[/]. По определению любой полиномиальный по времени алгоритм является также псевдополиномиальным по времени алгоритмом, поскольку время его работы ограничено полиномом от одного аргумента — Length [/]. Однако мы уже ознакомились с примером псевдополиномиального, но не полиномиального алгоритма для задачи РАЗБИЕНИЕ. Этот пример показывает, что, несмотря на то что NP-полнота задачи П исключает возможность ее решения полиномиальным алгоритмом (при условии P=/=NP), NP-полнота не исключает возможности решения задачи П псевдополиномиальным алгоритмом.
Точнее говоря, NP-полнота задачи не обязательно исключает возможность ее решения псевдополиномиальным алгоритмом. Многие из рассмотренных нами задач распознавания обладали тем свойством, что величина Мах[/] ограничена полиномом от Length [/], и, следовательно, для этих задач нет различия между полиномиальными и псевдополиномиальными алгоритмами. Например, единственный числовой параметр, входящий в условие задачи КЛИКА, — это граница J, которая не может быть больше числа вершин, заданного в условии графа. Задача ВЫПОЛНИМОСТЬ вообще не содержит чисел, за исключением лишь индексов у литералов и дизъюнкций, которыми можно пренебречь, поскольку они фактически играют роль ‘‘имен”, а не “чисел". (Принятые нами соглашения о схемах кодирования гарантируют, что такие числовые “имена" всегда будут ограничены полиномом от Length [/].) Интересующие нас здесь вопросы не имеют отношения к задачам такого типа. Выделим класс задач, к которым эти вопросы имеют отношение. Будем называть задачу П задачей с числовыми параметрами, если не существует такого полинома р, что Мах [/] ^
р (Length [/]) для всех I^Dn. Среди шести основных NP-полных задач единственной задачей с числовыми параметрами является задача РАЗБИЕНИЕ.
Непосредственно на основе данных определений можно сделать следующее замечание:
Замечание 4.1. Если NP-полная задача П не является задачей с числовыми параметрами, то П не может быть решена псевдополиномиальным алгоритмом (если Р =# NP).
Таким образом, в предположении P^NP NP-полные задачи, для которых имеется потенциальная возможность решения псевдополиномиальным алгоритмом, — это задачи с числовыми параметрами.
Для произвольной задачи распознавания П и полинома р (с целыми коэффициентами) обозначим через Пр подзадачу, получаемую из П рассмотрением только тех индивидуальных задач /, для которых выполнено соотношение Мах[/] ^
^ р(Length l/j). Задача Пр, таким образом, не является задачей с числовыми параметрами. Кроме того, если задача П разрешима псевдополиномиальным алгоритмом, то Пр должна быть разрешима полиномиальным алгоритмом. Если задано входное слово х, то достаточно проверить, что х кодирует индивидуальную задачу /, для которой Мах [/] < р (Length [/]), и если это так, то применить к / псевдополиномиальный алгоритм решения задачи П. В силу сделанных предположений, величины Мах[/] и Length [/] могут быть вычислены за полиномиальное время, поэтому требуемое неравенство может быть проверено за полиномиальное время. По определению псевдо- полиномиального алгоритма для задачи П, он будет полиномиальным для тех индивидуальных задач из П, для которых выполняется указанное неравенство. Эти соображения приводят нас к следующему определению.
Задачу П назовем NP-полной в сильном смысле, если П принадлежит NP и существует такой полином р с целыми коэффициентами, что задача Пр является NP-полной. В частности, если задача П NP-полна и не является задачей с числовыми параметрами, то задача П автоматически NP-полна в сильном смысле.
Таким образом, получаем обобщение замечания 4.1.
Замечание 4.2. Если задача П NP-полна в сильном смысле, то она не может быть решена псевдополиномиальным алгоритмом (если Р ф NP).
Благодаря этому замечанию мы получаем средства для применения теории NP-полноты к вопросам существования псевдо- полиномиальных алгоритмов. Задача РАЗБИЕНИЕ не может быть NP-полной в сильном смысле, поскольку, как нам уже известно, она может быть решена псевдополиномиальным алгоритмом. Однако у нас еще не было примеров задач с числовыми параметрами, NP-полных в сильном смысле. Этот пробел будет восполнен в следующем разделе, в котором будет показано, как можно получать результаты о сильной NP-полноте.
Доказательство результатов о сильной NP-полноте
Наиболее прямой путь доказательства сильной NP-полноты задачи П с числовыми параметрами заключается просто в доказательстве того, что для некоторого конкретного полинома р задача Пр является NP-полной. Например, задача КОММИВОЯЖЕР (КМ), определенная в разд. 2.1, представляет собой задачу с числовыми параметрами, поскольку ни расстояния между городами 4(1,П» ни граница В в ней не ограничены. Мы доказали NP-полноту задачи КМ, сведя к ней задачу ГАМИЛЬТОНОВ
ЦИКЛ. Более того, при этом сведении получаются только такие индивидуальные задачи из КМ, в которых расстояния между городами равны либо 1, либо 2, а граница В равна числу городов т. Таким образом, если взять в качестве Мах[/] максимум из границы В и наибольшего расстояния между городами и положить
Length [/] = m + Dog2 ВП + S riog2 d (i, /)~1,и
то все индивидуальные задачи, получаемые в описанной выше сводимости, будут удовлетворять ограничению
Мах [/] ^ Length [/].
Другими словами, эта сводимость фактически показывает, что подзадача задачи КМ, состоящая из всех индивидуальных задач, для которых выполняется указанное неравенство, сама является NP-полной. Отсюда следует, что задача КОММИВОЯЖЕР NP-полна в сильном смысле.
В противоположность рассмотренному примеру доказательства NP-полноты задач РЮКЗАК, РАСПИСАНИЕ ДЛЯ МУЛЬТИПРОЦЕССОРНОЙ СИСТЕМЫ и УПОРЯДОЧЕНИЕ ВНУТРИ ИНТЕРВАЛОВ, приведенных в разд. 3.2, оставляют открытым вопрос о возможности решения перечисленных задач псевдополиномиальными алгоритмами. Оказывается, что задачу РЮКЗАК можно решить за псевдополиномиальное время с помощью метода динамического программирования. Этот метод, аналогичный методу, использовавшемуся при решении задачи РАЗБИЕНИЕ, изложен в работе [98]. Все известные нам алгоритмы с псевдополиномиальным временем работы основаны на этом методе. Примеры использования этого метода читатель может найти в работах 1221, 328, 332, 465].
Задачи РАСПИСАНИЕ ДЛЯ МУЛЬТИПРОЦЕССОРНОЙ СИСТЕМЫ и УПОРЯДОЧЕНИЕ ВНУТРИ ИНТЕРВАЛОВ, напротив, NP-полны в сильном смысле. Для доказательства этого утверждения полезно иметь задачу с числовыми параметрами, NP-полную в сильном смысле и в определенном отношении “более числовую", чем любая из задач, рассмотренных до сих пор. Этой задачей будет седьмая “основная” NP-полная задача З-РАЗБИЕНИЕ, определяемая следующим образом:
З-РАЗБИЕНИЕ
УСЛОВИЕ. Заданы множество А, состоящее из 3/п элементов, граница BeZ+и “размеры" s(a)eZ+ всех элементов, аеА, причем В/4 < s (a) < В/2 и У, s(a) = mB.
аеА
ВОПРОС. Можно ли Л так разбить на m непересекающихся подмножеств Si, S2, .... Sm, что для l<Z^m У, s(a)=B.
aeSj
(Отметим, что указанные в условии ограничения на размеры элементов приводят к тому, что каждое из множеств Si должно содержать ровно три элемента из множества Л.)
Мы будем доказывать сильную NP-полноту задачи З-РАЗ- БИЕНИЕ в два этапа. Вначале докажем, что близкая к ней задача 4-РАЗБИЕНИЕ NP-полна в сильном смысле. Задача 4-РАЗБИЕНИЕ формулируется точно так же, как задача З-РАЗБИЕНИЕ, с той лишь разницей, что А содержит 4m элементов, а каждый размер s(a) должен подчиняться условию В/5 > s(a) < В/3. Отсюда следует, что каждое множество искомого разбиения будет содержать ровно четыре элемента.
Теорема 4.3. Задача 4-РАЗБИЕНИЕ NP-полна в сильном смысле.
Доказательство. Поскольку за полиномиальное время легко проверить, что заданное разбиение множества А удовлетворяет необходимым требованиям, то легко видеть, что задача 4-РАЗБИЕНИЕ лежит в классе NP. Сведем задачу ТРЕХМЕРНОЕ СОЧЕТАНИЕ (3-С) к ограниченной версии задачи 4-РАЗБИЕНИЕ, в которой размеры всех элементов ограничены полиномом от общего числа элементов и, следовательно, полиномом от Lengthl/]. В частности, положив Мах[1] равным max(s(a): аеА), мы увидим, что задача 4-РАЗБИЕНИЕ NP-полна даже в том случае, если ограничиться индивидуальными задачами, такими, что Мах[/] ^2,6|Л|4.
ПуСТЬ № = (ф], w2, ..., и»,,}, Х={Х1 *2, х3, ..., X,}. У = = {j/ь Уг. • • • > Уч} и М s № X X X У определяют произвольную индивидуальную задачу из 3-С. Не ограничивая общности, можно считать, что | М | ^ q. В соответствующей индивидуальной задаче из 4-РАЗБИЕНИЕ множество А будет иметь 4|М| элементов, по одному для каждого вхождения элемента множества W U X U У в тройку из М и по одному элементу для каждой тройки из М.
Элементы, соответствующие фиксированному г е W U X U У обозначим через z[l], z[2]z[^(z)], где N^—число
троек из М, в которые входит г. Назовем z[l] “истинным элементом, соответствующим г”, а z[2], ..., z^(z)]— “фиктивными элементами, соответствующими z”. Размеры этих элементов зависят от того, какому множеству— W, X или У — принадлежит г, а также от номера элемента z в соответствующем множестве. Веса определяются следующим образом (г принято
равным 32ф):
1 ^ Z ^ ^;1 ^ i ^ q, 1 < / < q\ \<j<Jb 1 ^ к <.q\ 1 ^ к ^q,1 ^ Z ^ ^;1 ^ i ^ q, 1 < / < q\ \<j<Jb 1 ^ к <.q\ 1 ^ к ^q,l^l^N^iY, 2< / ^ (х,);2<,l<N(ykYl^l^N^iY, 2< / ^ (х,);2<,l<N(ykYs(wi [1]) = 10г4 -Н‘г + 1, 8 (Ш/ [/]) = 11г4 + Zr + 1, s(x/[l])= Юг4 + />2н- 2, з(х/[ф = 11г4 +/г2 + 2, s(^[lD=10r4 + ^3 + 4, 5<^[Ф = 8г4 + Аг3 + 4,
1 ^ Z ^ ^;
1 ^ i ^ q, 1 < / < q\ \<j<Jb 1 ^ к <.q\ 1 ^ к ^q,
1 ^ Z ^ ^;
1 ^ i ^ q, 1 < / < q\ \<j<Jb 1 ^ к <.q\ 1 ^ к ^q,
l^l^N^iY, 2< / ^ (х,);
2<,l<N(ykY
l^l^N^iY, 2< / ^ (х,);
2<,l<N(ykY
Единственный элемент, соответствующий каждой тройке mi = ^Wi, Xj, у^е М, обозначается через щ, а его размер зависит от индексов элементов тройки следующим образом:
s (и,) = Юг4 — кг3 — jr2 — ir + 8.
Заметим, что если прибавить к з(щ) размеры трех элементов, соответствующих Wi, Xj и у к, то результатом будет 40г4 + 15 всякий раз, когда все три элемента “истинные" или когда все они “фиктивные". Возьмем это число в качестве границы В, т. е. положим
В = 40г4 + 15.
Нетрудно проверить, что описанная выше сводимость полиномиальна, размеры всех элементов лежат строго между В/3 и В/5, а также что сумма размеров всех элементов, как и требуется, равна |Л1|-В. Более того, заметим, что размер каждого элемента ограничен сверху величиной
12г4<12.84|Л|4<2,6| Др.
Поэтому для доказательства сильной NP-полноты задачи 4-РАЗБИЕНИЕ достаточно показать, что искомое 4-разбиение существует тогда и только тогда, когда М содержит трехмерное сочетание.
Предположим вначале, что имеется трехмерное сочетание М's М. Соответствующее 4-разбиение образуется из |М| подмножеств, каждое из которых содержит 4 элемента (сокращенно 4-подмножеств)—один вида щ, один вида щф], один вида хД-] и один вида у*[-], где (wt, хь у^ = mt е М. Если пне еМ', то группируем щ с элементами 10/[1], х/[ 1 ] и (/*[!]. Если пнеМ\М', то группируем щ с “фиктивными" элементами, соответствующими а>/, xj и уь Нетрудно видеть, что в нашем распоряжении имеется достаточно фиктивных элементов и такую группировку можно осуществить. В силу сделанных выше замечаний, сумма размеров элементов в каждом из образованных множеств в точности равна В. В результате получается искомое 4-разбиение.
Предположим теперь, что задано 4-разбиение нужного вида. Рассмотрим любое 4-множество из этого 4-разбиения. Рассматривая последовательно вычеты суммы размеров элементов этого множества по модулям г, г2, г3, г* и г5, покажем, что это 4-множество должно содержать по одному элементу, соответствующему каждой из составляющих тройки, причем все три элемента одновременно являются или “истинными" или “фиктивными".
Поскольку г 29=4-8 = 32, то сумма вычетов по модулю г размеров элементов, входящих в 4-множество, будет равна вычету по модулю г суммы этих элементов и, следовательно, равна В (mod г) =15. Для того чтобы сумма вычетов по модулю г размеров элементов, входящих в 4-множество, равнялась 15, имеется единственная возможность: 4-множество содержит по одному элементу, отвечающему некоторому элементу множеств IF, X и У соответственно, а также один элемент, отвечающий некоторой тройке из М. Пусть он, X/ и Ук обозначают соответствующие элементы множеств IF, X и У, a mv — (wv, Xj„ у^ обозначает соответствующую тройку из М. Тогда вычет рассматриваемой суммы размеров элементов по модулю г2 должен быть равен ((i — i')r + 15) (mod г2), а поскольку (i — i'V"V- + 15 < г2, то должно иметь место равенство
В (mod г2) = 15 = У - i') г + 15.
Отсюда следует, что i = i'. Аналогично, поскольку U ~ FV1+ + 15 < г®, то должно выполняться равенство
В (mod г3) = 15 = (/ - Л г2 + 15.
Отсюда следует, что / = j', а поскольку (А — к'^т3 + 15 < г4, то должно иметь место равенство
В (mod г4) = 15 = (А - к') г3 + 15
и, значит, к = к'. Таким образом, на самом деле Wi, х/ и ук — элементы, входящие в тройку mi, и коээфициент при г4 в сумме размеров элементов равен сумме коэффициентов при г4 каждого из слагаемых. Эти коэффициенты были выбраны нами так, что их сумма равна 40 только в том случае, когда все три элемента одновременно “истинные” или “фиктивные".
Таким образом, в q из наших 4-множеств должно содержаться 3g “истинных" элементов, по одному для каждого элемента из множества IF U X (J У, а каждое из 4-множеств состоит из одного элемента, соответствующего тройке из М, и трех “истинных” элементов, соответствующих этой тройке. Следовательно, эти q троек из М образуют искомое трехмерное сочетание. ■
Теорема, 4.4. Задача З-РАЗБИЕНИЕ NP-полна в сальном смысле.
Доказательство. Нетрудно видеть, что задача З-РАЗБИЕНИЕ принадлежит классу NP. Сведем к задаче З-РАЗБИЕНИЕ подзадачу задачи 4-РАЗБИЕНИЕ, составленную из индивидуальных задач, для которых
max (s (a): a е А} ^ 2161 А Г*;
при этом сохраняется ограниченность размеров элементов полиномом от общего числа элементов.
Пусть А = {ai, аг, ..., а^, граница В и размеры s(a) элементов (для которых выполнены неравенства В/5 < s(a) < < В/3 и s(a) ^ 216|А|4) задают произвольную индивидуальную задачу 4-РАЗБИЕНИЕ. Соответствующая индивидуальная задача из З-РАЗБИЕНИЕ будет содержать 24п2 — Зп элементов, по одному для каждого элемента А, по два элемента для каждой пары элементов из А и 8п2 — Зп “заполняющих" элементов.
Каждому отдельному элементу a/е А сопоставим “регулярный" элемент Шь размер определяется равенством
/(0y,) = 4(5B + s(a,))+l,
где $'(•)—функция размера в конструируемой индивидуальной задаче из З-РАЗБИЕНИЕ. Паре элементов а,, а/ е А соответствуют два “спаривающих” элемента u[i, j] и й [i, /], размеры которых определяются так:
s' (и [/, Л) = 4 (6В — s (az) — s (а,)) + 2,
s' Ф U, Л) = 4 (5В + s (aj + з (а,)) + 2.
Наконец, для 1 ^ к ^ 8п2 — Зп имеется „заполняющий" элемент а*к размера s'(u*) = 20В. В качестве границы В' для конструируемой индивидуальной задачи З-РАЗБИЕНИЕ возьмем 64В + 4.
Опять-таки читателю нетрудно будет убедиться в том, что эта сводимость является полиномиальной, а также, что размеры всех элементов заключены строго между В'/4 = 16В -|- 1 и В'/2 = 32В + 2 и что Сумма размеров всех элементов равна (2п2 — п^В'. Более того, поскольку размеры элементов множества А ограничены величиной 216|А|4, то размеры элементов получаемой индивидуальной задачи З-РАЗБИЕНИЕ также будут ограничены полиномом от |А|, и, следовательно, полиномом от числа элементов задачи Г, и, значит, полиномом от Length[7]. Таким образом, чтобы закончить доказательство NP-полноты в сильном смысле задачи З-РАЗБИЕНИЕ, достаточно показать, что в построенной индивидуальной задаче /'
3-разбиение существует тогда и только тогда, когда в исходной индивидуальной задаче существует 4-разбиение.
Вначале предположим, что для исходной индивидуальной задачи имеется 4-разбиение. Соответствующее 3-разбиение строится следующим образом. Каждое из 4-множеств {а/, а/, а*, а/} разбиваем произвольно на два 2-множества, скажем на {а,, а/} и {а*, а/}. Тогда искомое 3-разбиение будет содержать два 3-множества {да/, wh и [Z, /]} и {да*, wi, й [Z, /]}. (Заметим, что можно было бы использовать й [А, /] вместо и [Z, /] и и [А, /] вместо Zz[Z,/].) Сумма размеров элементов каждого 3-множества будет равна В', поскольку s(tiZ)+ $(»/) + s(a*) + s(ai) — = В. Выполняя эту процедуру для каждого из п заданных 2-множеств, получим 2п 3-множеств, содержащих все “регулярные" элементы и п связанных пар, состоящих из “спаривающих" элементов. После этого остаются свободными 8п2 —Зп связанных пар “спаривающих” элементов и 8п2 — Зп “заполняющих” элементов. Поскольку сумма размеров двух связанных “спаривающих” элементов равна 44В + 4 = В — 20В, то каждая такая связанная пара может быть сгруппирована с одним из оставшихся “заполняющих” элементов, в результате чего получается 3-разбиение.
Предположим теперь, что для построенной индивидуальной задачи имеется 3-разбиение. Из рассмотрения вычетов размеров элементов по модулю 4 получаем, что ни одно из 3-множеств не может содержать нечетное число “регулярных" элементов, ни одно из 3-множеств не может содержать три “спаривающих” элемента и ни одно из 3-множеств не может содержать два “регулярных" и один “заполняющий” элемент. Отсюда следует, что заданное 3-разбиение включает 2п 3-множеств, каждое из которых содержит два “регулярных” и один “спаривающий” элемент, а также 8п2 — Зп 3-множества, каждое из которых содержит два “спаривающих” и один “заполняющий” элемент.
Рассмотрим любое из 3-множеств последнего типа. Пусть и [Z, /] (или й [A, Z]) является одним из двух “спаривающих" элементов этого множества. Если другой спаривающий элемент nfs, Z] этого множества отличен от n[i,/] (или и [А, /]), то u[s, Z] должен иметь тот же размер, что и «[/,/], и поэтому элементы и [s, /] и й [Z, /] можно поменять местами, чтобы получилось эквивалентное 3-разбиение. Эту операцию можно повторять до тех пор, пока не получится 3-разбиение, в котором каждый “заполняющий” элемент окажется в одном 3-множестве со связанной парой u[Z,/J и Z/[Z,/]. Таким образом, оставшиеся “спаривающие” элементы, входящие совместно с регулярными элементами в одно из множеств 3-разбиения, также разбиваются на пары В результате этого 3-множества, содержащие
“регулярные" элементы, разбиваются на п пар. Поскольку два “спаривающих” элемента в каждой такой паре 3-множеств оказываются связанными, сумма их размеров равна 44В + 4, следовательно, сумма четырех “регулярных” элементов, входящих в эти два 3-множества, должна быть равна 84В + 4. Отсюда следует, что соответствующие четыре элемента множества А образуют 4-множество, сумма размеров элементов которого равна В. Следовательно, п пар рассматриваемых 3-множеств порождают искомое 4-разбиение. ■
Заметим, что если эту сводимость рассматривать как сводимость общей задачи 4-РАЗБИЕНИЕ к задаче З-РАЗБИЕ- НИЕ, то она не доказывала бы сильную NP-полноту задачи З-РАЗБИЕНИЕ. Чтобы получить результат о сильной NP-пол- ноте, необходимо рассмотреть NP-полную подзадачу задачи 4-РАЗБИЕНИЕ, в которой величина max{s(a)} ограничена полиномом. Однако легко понять, что конкретный вид полинома в оценке несуществен. На самом деле было бы удобнее, если бы у нас была возможность оперировать со сводимостями подобного типа без необходимости вдаваться в детали подзадач и конкретных полиномов. Этого можно достичь с помощью определения и леммы, приводимых ниже.
Пусть П и П'— произвольные задачи распознавания; Dn и Dn—множества их индивидуальных задач; Уп и Уш — множества индивидуальных задач с ответом “да"; Max, Length, Max' и Length' — соответствующие функции максимума и длины записи. Говорят, что задача П псевдополиномиально сводится к задаче П', если существует функция f; Dn-*Dn- обладающая следующими свойствами:
для любого leD , I е Y тогда и только тогда, когда И/)еУш;
функция f может быть вычислена за время, ограниченное полиномом от двух переменных Мах[/] и Length [/];
существует такой полином ^i, что для всех I е Dn имеет место неравенство
q, (Length' [/(/)])> Length (П;
существует такой полином <72 от двух переменных, что для всех / г Dnвыполнено неравенство
Мах' [/ (/)] ^ дг (Мах [/], Length [/]).
Говорят также, что функция, обладающая перечисленными свойствами, реализует псевдополиномиальную сводимость П к П'.
Лемма 4.1. Если П — NP-полная в сильном смысле задача, IT е NP и П псевдополиномиально сводится к П', то IT — NP-полная в сильном смысле задача.
Доказательство. Пусть / — функция, реализующая псевдопо- линомиальную сводимость, qx и qa— соответствующие полиномы, описанные выше. Без потери общности можно предполагать, что 91 и qa— полиномы с целыми положительными коэффициентами, ибо эти полиномы можно привести к такому виду, не уменьшая принимаемых ими значений. Поскольку задача П NP-полна в сильном смысле, то существует такой полином р, 'что задача Пр является NP-полной. Более того, р можно выбрать так, что у него будут только целые неотрицательные коэффициенты, поскольку если ро— любой полином с целыми коэффициентами, для которого при всех х выполняется неравенство ро(х)^р(х), то задача ПРо будет содержать все индивидуальные задачи из Пр, и, следовательно, задача ПРо будет NP-полной, если Пр была NP-полной. Определим полином 0 следующим образом:
^W = 92(p(9iW). 9iW)-
Мы утверждаем, что функция f, будучи ограниченной на индивидуальные задачи из Пр, осуществляет полиномиальное сведение задачи Пр к задаче Пр, что доказывает NP-полноту задачи Пр. Проверим вначале, что любая индивидуальная задача / из Пр при отображении j переходит в индивидуальную задачу из Щ. По определению задачи Пр и неравенств, которым удовлетворяют многочлены 91 и qa, получаем, что для каждой индивидуальной задачи / из П„ имеют место неравенства
Max' [/ (/)] < 92 (Мах [/], Length [/]) <
< 9г (р (Length [/]), Length [/]) <
< 92 (р (9, (Length' [/ (/)])), qx (Length' [f (/)])) =
= (Length'[/(/)]).
Таким образом, индивидуальная задача /(/) принадлежит задаче Щ. Из условий (а) и (б) определения псевдополиноми- альной сводимости и того факта, что для любой индивидуальной задачи / из Пр выполнено неравенство Мах [/] ^ ^ р (Length [/]), немедленно следует, что / удовлетворяет всем необходимым требованиям и реализует полиномиальную сводимость. Следовательно, задача П£ NP-полна, откуда следует сильная NP-полнота задачи П'.
Эта лемма освобождает нас от необходимости иметь дело с конкретными подзадачами ПР при доказательстве результатов
о сильной NP-полноте, что представляет собой большое удобство, поскольку мы редко интересуемся конкретным видом соответствующего полинома. Однако сложное определение псев- дополиномиальной сводимости может показаться труднопреодолимым препятствием при использовании этого подхода. В действительности оно не столь сложно, как кажется. Условие (а) совпадает с одним из условий определения обычной полиномиальной сводимости. Условие (б) почти совпадает со вторым условием, однако оставляет нам несколько больше свободы при выборе сложности сводящей функции. Условие (в) будет выполнено почти для всех сводимостей, исключая самые экзотические, поскольку требуется лишь, чтобы сводимость не приводила к значительному уменьшению длины входа. Наиболее важным условием определения является условие (г), назначение которого заключается в том, чтобы величина наибольшего числа в конструируемой индивидуальной задаче не росла экспоненциально в зависимости от функций Мах и Length исходной индивидуальной задачи.
Например, конструкцию, которой мы пользовались для доказательства теоремы 4.4, можно рассматривать как псевдопо- линомиальное сведение задачи 4-РАЗБИВАНИЕ к задаче З-РАЗБИЕНИЕ. Последняя задача заслужила название седьмой “основной NP-полной задачи" в связи с тем, что она легко может быть псевдополиномиально сведена к другим задачам. Например, можно воспользоваться такой сводимостью для доказательства сильной NP-полноты задачи УПОРЯДОЧЕНИЕ ВНУТРИ ИНТЕРВАЛОВ, NP-полнота которой была доказана в разд. 3.2.2.
Теорема, 4.5. Задача УПОРЯДОЧЕНИЕ ВНУТРИ ИНТЕРВАЛОВ NP-полна в сильном смысле.
Доказательство. Напомним, что в условии этой задачи дано множество заданий Т, длительность /(/)eZ+ каждого задания 1еТ и временной интервал [г(/), d(t) ], в пределах которого оно должно быть выполнено. Спрашивается, можно ли так упорядочить задания, чтобы были удовлетворены все условия и в каждый момент времени в процессе выполнения находилось только одно задание. В разд. 3.2.2 было доказано, что эта задача NP-полна и, следовательно, принадлежит классу NP. Построим псевдополиномиальное сведение задачи З-РАЗБИЕНИЕ к задаче УПОРЯДОЧЕНИЕ ВНУТРИ ИНТЕРВАЛОВ.
Пусть А = {аь о2, .... o3m}, BgZ+ и s(oi), s(o2), ... ..., s(o3m) определяет произвольную задачу из З-РАЗБИЕНИЕ. Соответствующая индивидуальная задача из УПОРЯДОЧЕНИЕ
ВНУТРИ ИНТЕРВАЛОВ определяется следующим образом:
T = AU{^: 1 ^Z < /и};
^Г 1, если t — ti, \^.1<пг;
I з(аД если /=а/еА;
{
iB-Vi—X, если t = tu l^i<m;
О, если t=ajeA;
{
iB + i, если t = tu \<Л<пг\ mB-\-m—\, если t = ate.A.
О В 5+125+1 25+2О В 5+125+1 25+2Эта сводимость, очевидно, может быть выполнена за полиномиальное время только по отношению к длине записи исходной информации, а длина индивидуальных задач, получаемых при таком сведении, полиномиально эквивалентна длине исходных задач. Таким образом, условия (б) и (в) из определения
О В 5+125+1 25+2
О В 5+125+1 25+2
тВ+щ~ 1
Рис. 4.9. Вид последовательности, необходимый для того, чтобы были вы-полнены все ограничения индивидуальной задачи из УПОРЯДОЧЕНИЕВНУТРИ ИНТЕРВАЛОВ, получаемой из индивидуальной задачи З-РАЗ-БИЕНИЕ в доказательстве теоремы 4.5.
полиномиальной сводимости выполняются. Более того, наибольшее число в построенной индивидуальной задаче равно тВ + + m — 1, поэтому выполняется также условие (г). Остается только показать, как в обычных доказательствах NP-полноты, что выполнено условие (а).
В любой последовательности заданий, удовлетворяющей перечисленным выше условиям, задание ti, 1 ^ i < m, должно выполняться в промежутке времени от IB + i — 1 до IB + 1, как указано на рис. 4.9. При этом остается т отдельных блоков времени продолжительностью В каждый, но поскольку времени в этих блоках ровно столько, чтобы можно было успеть выполнить все задания, то все эти блоки должны быть заполнены полностью. Следовательно, эти блоки играют ту же роль, что и множества Si, Sz, ..., Sm в искомом разбиении множества А Отсюда вытекает, что искомая последовательность существует тогда и только тогда, когда существует искомое разбиение в исходной индивидуальной задаче из З-РАЗБИЕНИЕ.
Условие (а), следовательно, также выполняется, и мы действительно получаем псевдополиномиальную сводимость задачи
З-РАЗБИЕНИЕ к задаче УПОРЯДОЧЕНИЕ ВНУТРИ ИНТЕРВАЛОВ. По лемме 4.1 отсюда следует, что последняя задача NP-полна в сильном смысле. В
В качестве упражнения читателю можно предложить построить аналогичное сведение задачи З-РАЗБИЕНИЕ к задаче РАСПИСАНИЕ ДЛЯ МУЛЬТИПРОЦЕССОРНОЙ СИСТЕМЫ, определенной в разд. 3.2.1. В наших списках NP-полных задач имеется большое число других задач, сильная NP-полнота которых доказывается сравнительно несложно, небольшой модификацией приведенных ранее доказательств посредством замены в них задачи РАЗБИЕНИЕ задачей З-РАЗБИЕНИЕ. Простота выполнения соответствующих модификаций указывает на полезность задачи З-РАЗБИЕНИЕ.
Настоящий раздел мы закончим примером того, как псевдо- полиномиальная сводимость задачи З-РАЗБИЕНИЕ может быть использована для доказательства NP-полноты задачи, не являющейся задачей с числовыми параметрами. В действительности эта задача вообще не будет содержать числовых параметров!
Напомним формулировку задачи ИЗОМОРФИЗМ ПОДГРАФУ из разд. 2.1: “Заданы два графа G и Н, верно ли, что Н изоморфен некоторому подграфу графа G?” В разд. 3.2.1 мы доказали NP-полноту этой задачи, указав, что она содержит в качестве частного случая задачу КЛИКА. Однако имеется одна важная подзадача задачи ИЗОМОРФИЗМ ПОДГРАФУ, принадлежность которой классу Р уже установлена. Это задача ИЗОМОРФИЗМ ПОДДЕРЕВУ. В ней требуется, чтобы G и Н были деревьями (дерево — это связный граф, не содержащий циклов). Полиномиальный алгоритм решения этой задачи был получен Эдмондсом и Матулой [111] (см. также [449]).
Исходя из нашей методологии, состоящей в возможно большем сужении пограничной области между трудными и легкими подзадачами NP-полной задачи, можно сформулировать следующий вопрос: “Что будет, если потребовать, чтобы только один из графов G или Н был деревом?” В одном случае ответ очевиден. Вариант задачи ИЗОМОРФИЗМ ПОДГРАФУ, в котором требуется, чтобы G был деревом, содержит в качестве подзадачи задачу ГАМИЛЬТОНОВ ПУТЬ и тем самым является NP-полным. Вариант, в котором требуется, чтобы Н было деревом, более интересен. В этом случае нам известно, что если граф Н не ацикличен (ацикличный — означает, не содержит циклов), то Н не может быть подграфом графа G, но отсюда отйюдь не следует, что граф Н должен быть деревом (поскольку Н может оказаться несвязным). В общем случае ацикличный граф называется лесом, при этом связные леса являются деревьями (рис. 4.10).
Назовем подзадачу задачи ИЗОМОРФИЗМ ПОДГРАФУ, в которой G— дерево, а Н— лес, задачей ИЗОМОРФИЗМ ПОД- ЛЕСУ. Несмотря на то, что последняя задача аналогична за-
Рис. 4.10. Примеры произвольного графа G, леса F и дерева Г. Граф G не есть лес, а лес F не есть дерево. Лес F не есть подлее дерева Т, но каждое дерево из F есть поддерево дерева Т (граф — Graph, лес — Forest, дерево — Tree).
даче ИЗОМОРФИЗМ ПОДДЕРЕВУ, справедлива следующая теорема.
Теорема, 4.6. Задача ИЗОМОРФИЗМ ПОДЛЕСУ является NP-полной.
Доказательство. Принадлежность рассматриваемой задачи классу NP следует из аналогичного результата для задачи ИЗОМОРФИЗМ ПОДГРАФУ. Укажем псевдополиномиальное сведение задачи З-РАЗБИЕНИЕ к задаче ИЗОМОРФИЗМ ПОДЛЕСУ. В силу леммы 4.1 отсюда будет следовать утверждение теоремы.
Пусть А={аь а2, .... ат}, В е Z+ и s(oi), s(.a^, ... .... s(am)eZ+ определяет произвольную индивидуальную задачу из З-РАЗБИЕНИЕ. Соответствующая индивидуальная задача из ИЗОМОРФИЗМ ПОДЛЕСУ представлена на рис. 4.11.
Дерево G состоит из пг цепей, по В + 1 вершин в каждой, концы которых соединены с дополнительной общей вершиной. Лес Н состоит из 3m + 1 дерева, в их число входит одна “звезда”, содержащая m + 1 вершину и 3m цепей, каждая из которых соответствует конкретному элементу агД и имеет s(a) вершин.
Любой изоморфизм графа И с подграфом графа G должен отображать центр звезды в единственную вершину высокой степени графа G *). Все m вершин, соседних с центром звезды из Н, должны, следовательно, отображаться в вершины графа G,
Это утверждение верно только при m > 2. При m ^ 2 сводимость модифицируется очевидным образом. — Прим. ред.
соседние этой вершине. При этом в графе G остаются свободными пг цепей (причем каждая состоит из В вершин), в которые при изоморфизме должны отобразиться оставшиеся 3m цепей графа Н. Отображение этих цепей графа Н в оставшиеся свободными цепи графа G соответствует разбиению множества А на пг подмножеств и, согласно нашей конструкции, может быть осуществлено тогда и только тогда, когда сумма размеров
m цепейm цепейGG„ЗбезЗа"„ЗбезЗа"i-л цепь uweems^ Першинi-л цепь uweems^ Першин
m цепей
m цепей
G
G
„ЗбезЗа"
„ЗбезЗа"
i-л цепь uweems^ Першин
i-л цепь uweems^ Першин
Рис. 4.11. Дерево G и лес Н, соответствующие индивидуальной задачеЗ-РАЗБИЕНИЕ в доказательстве теоремы 4.6.
элементов каждого множества равна В. Таким образом, искомый изоморфизм графа Н с подграфом графа G существует тогда и только тогда, когда существует искомое 3-разбиение множества А.
Отсюда следует, что выполнено условие (а) определения псевдополиномиальной сводимости. Легко видеть, что эта сводимость может быть осуществлена за полиномиальное время по отношению к пг и В, так что условие (б) также выполнено. Общее число вершин в графах G и Н одинаково и равно 2(тВ+1), так что выполнено и условие (в). Наконец, в конструируемой индивидуальной задаче числовые параметры отсутствуют, поэтому и условие (г) выполняется. Следовательно, по лемме 4.1 задача ИЗОМОРФИЗМ ПОДЛЕСУ NP-полна в сильном смысле, откуда следует, что она NP-полна в обычном смысле, что и требовалось доказать.
ВРЕМЕННАЯ СЛОЖНОСТЬ КАК ФУНКЦИЯНАТУРАЛЬНЫХ ПАРАМЕТРОВ
До сих пор в настоящей главе изучение подзадач мотивировалось в основном тем, что на практике истинной нашей целью является решение подзадачи, а не самой общей задачи. Зная
очертания пограничной области между NP-полными и полиномиально разрешимыми подзадачами, при возникновении конкретной подзадачи мы оказываемся лучше подготовленными к концентрации исследований по поиску алгоритмов в наиболее перспективном направлении.
Результаты, полученные относительно подзадач, могут быть также использованы в качестве вспомогательного ориентира при поиске алгоритма решения общей задачи. Если общая задача оказывается NP-полной, то для ее решения (если P^NP), как нам известно, могут существовать только экспоненциальные алгоритмы, но разные алгоритмы могут быть в различной степени ‘экспоненциальными’’, и одни могут оказаться для нас предпочтительнее других. Это особенно очевидно для практических задач, когда временная сложность выражается в терминах естественных параметров задачи, а не в терминах искусственно созданной “длины входа".
Рассмотрим, например, задачу РАСПИСАНИЕ ДЛЯ МУЛЬТИПРОЦЕССОРНОЙ СИСТЕМЫ из разд. 3.2.1. В этой задаче набор естественных параметров включает следующие величины: число заданий п, число процессоров m и длительность L самого продолжительного задания. Обычный результат об NP-полноте этой задачи, полученный в разд. 3.2.1, утверждает, что если P=^NP, то задача РАСПИСАНИЕ ДЛЯ МУЛЬТИПРОЦЕССОРНОЙ СИСТЕМЫ не может быть решена за время, ограниченное полиномом от трех параметров: п, m и logL. Однако можно задаться вопросом: “Существует ли алгоритм, временная сложность которого ограничена полиномом от /и” и log L, или полиномом от nm и logL, или полиномом от п, m и L, или даже полиномом от (пЦт?
Полученные нами результаты о сложности подзадач проливают некоторый свет на эти вопросы. Исходный результат об NP-полноте задачи РАСПИСАНИЕ ДЛЯ МУЛЬТИПРОЦЕССОРНОЙ СИСТЕМЫ показывает в действительности, что подзадача, в которой т ограничено числом 2, является NP-полной. По этой причине (если Р #= NP) для решения задачи не может существовать алгоритма, временная сложность которого ограничена полиномом от пт и log L, поскольку для указанной подзадачи этот алгоритм был бы полиномиальным. Полученные нами результаты не исключают существование алгоритма, временная сложность которого была бы ограничена полиномом от т” и log L, и в действительности алгоритмы полного перебора, имеющие такую временную сложность, могут быть построены. Аналогичным образом сильная NP-полнота задачи РАСПИСАНИЕ ДЛЯ МУЛЬТИПРОЦЕССОРНОЙ СИСТЕМЫ, о которой говорилось в разд. 4.2.2, исключает существование алгоритмов, полиномиальных по п, т и L (если P^tNP).
Однако этот результат оставляет открытым вопрос о существовании алгоритма, полиномиального по (nL)m (который давал бы псевдополиномиальный алгоритм при каждом фиксированном значении т), и опять-таки можно показать, что такой алгоритм существует.
Таким образом, рассматривая подзадачи, возникающие из исходной задачи при ограничении одного или нескольких из ее естественных параметров, мы получаем полезную информацию о возможных типах алгоритмов решения общей задачи. Однако, чтобы обеспечить выразимость Length (Z) в виде полинома от параметров, выбранных нами в качестве достаточных представителей размера индивидуальной задачи, должны быть приняты особые меры предосторожности. (Чтобы для исходной задачи класс ранее рассмотренных полиномиальных алгоритмов совпадал с классом алгоритмов, полиномиальных относительно выбранных параметров.) А в остальном можно выбирать любые параметры, которые представляются естественными и адекватно отражающими смысл задачи. Из общего результата об NP-пол- ноте, следовательно, будет вытекать, что задачу нельзя решить за время, ограниченное полиномом от всех выбранных параметров, а информация, получаемая при ограничении этих параметров, может иметь большое значение в связи с существованием общих алгоритмов других типов.
Хотя вопросы, касающиеся сильной NP-полноты и существования псевдополиномиальных алгоритмов, относятся в основном к задачам с числовыми параметрами, однако аналогичные методы можно плодотворно применять и к другим задачам. Это объясняется тем, что в любой задаче имеются числовые параметры, такие, как мощности множеств, значения границ и т. д. Например, NP-полнота задачи 3-ВЫПОЛНИМОСТЬ не допускает (при условии Р =#= NP) существования для решения задачи ВЫПОЛНИМОСТЬ алгоритма, временная сложность которого была бы ограничена полиномом от (п/п)м (где пг — число дизъюнкций, п — число литералов, М — максимум числа литералов в дизъюнкции). Напротив, для задачи КЛИКА существует алгоритм с оценкой nD (где п — число вершин графа, D — максимальная степень вершины). Таким образом, теория NP-полных задач может служить ориентиром не только при поиске полиномиальных, но и экспоненциальных алгоритмов.
NP-трудные задачи
В этой главе мы завершим рассмотрение основных понятий и применений теории NP-полных задач. Глава состоит из двух частей. В первой, основной, части показано, как сфера приложений этой теории может быть расширена за пределы класса NP при использовании сводимости задач более общего вида. Во второй части дается краткая историческая справка о развитии теории NP-полноты и приводятся некоторые альтернативные определения и термины, получившие распространение в литературе.
СВОДИМОСТЬ ПО ТЬЮРИНГУИ NP-ТРУДНЫЕ ЗАДАЧИ
Хотя до сих пор мы ограничивались в основном задачами из класса NP, очевидно, что методы, используемые для доказательства NP-полноты задач, можно также применять для установления трудности задач, лежащих вне класса NP. Пусть П — произвольная задача распознавания свойств, к которой сводится некоторая NP-полная задача. Тогда независимо от того, принадлежит ли задача П классу NP или нет, она обладает тем свойством, что ее невозможно решить за полиномиальное время, если Р #* NP. Будем говорить, что такая задача П является “NP-трудной”, поскольку она в некотором смысле не менее трудна, чем любая NP-полная задача.
Ниже будет дано более общее определение NP-трудной задачи. Это объясняется тем, что определение полиномиальной сводимости задач можно обобщить на более широкий класс задач, чем задачи распознавания, причем все они окажутся не менее трудными, чем NP-полные задачи. Как и в гл. 2, все определения будут даны и формально — в терминах языков и машин Тьюринга, и неформально — в терминах задач и алгоритмов.
Этот более общий класс задач, к которым будут применимы наши определения, — класс так называемых "переборных за- зач”, или “задач поиска”. Переборная задача П определяется как множество Dn конечных объектов, называемых индивидуальными задачами, причем для каждой индивидуальной задачи / е Ьп известно множество 5п[/] конечных объектов, называемых решениями задачи /. Будем говорить, что алгоритм решает
переборную задачу П, если,получив в качестве входа произвольную индивидуальную задачу / е Dn, этот алгоритм выдает ответ “нет”, если 5ц[/] пусто, и вырабатывает некоторое решение s е Sn [/] в противном случае.
Например, множество решений в индивидуальной задаче о коммивояжере (в оптимизационной постановке) состоит из всех маршрутов, имеющих минимально возможную длину. От алгоритма, который решает эту переборную задачу, требуется только умение находить для любой индивидуальной задачи один из таких маршрутоов. Другой пример — когда множество Sn [/] может оказаться пустым — дает нам так называемая “задача конструирования гамильтонова цикла”, в которой множество решений для заданного графа G состоит из всех гамильтоновых циклов в G. Алгоритм решения этой задачи должен выдавать “нет”, когда G не содержит гамильтонова цикла; в противном случае он должен указать один такой цикл для G. Заметим, что любая задача распознавания может быть сформулирована как переборная задача следующим образом:
с J Ь>Да“}, если /еГп;
—I 0, если I^Yn.
Полезно отметить, что все задачи распознавания ранее были сформулированы именно таким образом, поэтому любая задача распознавания может рассматриваться просто как частный случай переборной задачи.
В формальных терминах переборной задаче соответствует понятие “словарного отношения”. Пусть имеется конечный алфавит 2. Словарным отношением над алфавитом 2 называется бинарное отношение /?е2+Х2+, где 2+ = 2*\{е}—множество всех непустых слов над 2. Язык L над 2 можно отождествлять со словарным отношением
R = {(х, s): х е 2+ и хеL\,
где s — любой фиксированный символ из 2. (Заметим, что при этом игнорируется вопрос, принадлежит ли языку пустое слово, однако это не влияет на вычислительные вопросы, которыми мы занимаемся.) Мы говорим, что функция f: 2*->2* реализует словарное отношение R тогда и только тогда, когда для каждого х Е 2+ имеет место f(x)= е, если не существует у е 2+, такого, что (х, #)е/?; в противном случае f(x) равняется некоторому у е 2+, для которого (х, y)^R. ДМТ-программа М разрешает словарное отношение R, если функция 1м, вычислимая программой М, реализует R.
Соответствие между переборными задачами и словарными отношениями осуществляется снова с помощью схем кодирова-
ния, только теперь схема кодирования для задачи П должна выдавать как слово, являющееся кодом каждой индивидуальной задачи leDn, так и слово, являющееся кодом каждого решения seSn[/L При такой схеме кодирования е переборная задача П соответствует словарному отношению R [П, е], определенному следующим образом:
/?[П,е]= (х, у)-./?[П,е]= (х, у)-.х е 2+ является кодом индивидуальной задачи I е Dn, а у s 2+ — кодом не- .. которого решения s е Sn [/] при схе- ' ме кодирования е
/?[П,е]= (х, у)-.
/?[П,е]= (х, у)-.
Будем говорить, что задача П (при схеме кодирования е) разрешима полиномиальным алгоритмом, если существует полиномиальная ДМТ-программа, которая “разрешает" ^[П, е].
Необходимость обобщения понятия полиномиальной сводимости вызвана тем, что любое полиномиальное сведение задачи распознавания П к задаче распознавания ГР порождает алгоритм Л для решения задачи П при помощи гипотетической “подпрограммы" решения задачи П'. Если дана переборная задача П и ее индивидуальная задача /, то этот алгоритм сначала конструирует эквивалентную индивидуальную задачу /' из ГР, затем применяет упомянутую подпрограмму к /' и наконец выдает ответ, выработанный этой подпрограммой, поскольку он будет также правильным ответом для /. За исключением времени работы подпрограммы, алгоритм Л работает в течение полиномиального времени. Таким образом, если бы подпрограмма представляла собой полиномиальный алгоритм решения задачи ГР, вся описанная процедура целиком была бы полиномиальным алгоритмом для решения задачи П.
Заметим, что последнее утверждение останется справедливым, если алгоритм Л будет использовать подпрограмму для ГР несколько (но не более чем полиномиальное число) раз, и даже если предполагаемая подпрограмма будет предназначена для решения переборной задачи, а не задачи распознавания. Это является основанием для предлагаемого ниже обобщения. Будем говорить, что переборная задача П сводится за полиномиальное время к переборной задаче ГР в смысле Тьюринга (или, для краткости, сводится по Тьюрингу), если существует алгоритм Л, который решает задачу П с помощью гипотетической подпрограммы S решения задачи ГР, такой, что если S была бы полиномиальным алгоритмом для ГР, то Л был бы полиномиальным алгоритмом для П.
Это определение можно формально выразить в терминах так называемых оракульных машин. Для определенности мы пользуемся моделью машины Тьюринга, хотя аналогичные
определения можно было бы сделать с помощью любой стандартной модели вычислений. Оракульная машина Тьюринга (ОМТ) состоит из стандартной детерминированной машины Тьюринга, снабженной дополнительной оракульной лентой с ячейками, которые занумерованы числами ... —2, —1,0,1,2 ..., и читающей/пишущей оракульной головкой для работы с этой лентой. Схематически эта машина изображена на рис. 5.1.
-2-10123
~ Оракульная ——Jлента
т Оракульная колобка
Чпраблякхцее J устройство
Читающая/пишущая головка е , , II е е еОсновная
— ————лента
—2—10123
Рис. 5.1. Схематическое представление оракульной машины Тьюринга (ОМТ).
Программа для ОМТ аналогична программам для детерминированной машины Тьюринга и характеризуется следующими данными:
конечным множеством Г ленточных символов, содержащим некоторое подмножество 2 с= Г входных символов и выделенный пустой символ 6еГ — 2;
конечным множеством состояний Q, среди которых выделены некоторое начальное состояние qQ, конечное состояние qn, выделенное состояние вопроса к оракулу qc и резюмирующее состояние qr;
переходной функцией
б: (Q-f^.^nXFXS^QXrXSf-l, +1}Х{-1, +1}.
Вычисление программы на ОМТ, имеющей вход хе 2*, очень сходно с вычислением на ДМТ, за исключением того, что если управляющее устройство находится в состоянии qc, то поведение на следующем шаге зависит от конкретной оракульной функции g: 2*-*2*. В начальный момент вычисления символы слова х записаны в ячейках с номерами 1, ..., |х| основной ленты, при этом остальные ячейки этой ленты и все ячейки оракульной ленты пусты, каждая головка находится над ячейкой 1 на своей ленте и управляющее устройство находится в состоянии qo. Вычисления осуществляются шаг за шагом, причем на каждом шаге может возникнуть одна из трех ситуаций:
Если текущее состояние есть qh, то вычисление заканчивается, и на этом работа машины прекращается.
Если текущее состояние <7eQ\{<7h, qc\, то поведение зависит от символов, прочитанных на лентах, и от переходной функции б. Пусть Si—это символ в ячейке, просматриваемой в текущий момент основной головкой, s» — символ в ячейке, просматриваемой в этот момент оракульной головкой, и (q', si, S2, Ah Д2) —значение 6(91, Si, $2). Тогда машина переходит из состояния q в состояние q'; основная головка записывает s( вместо $1 и сдвигается на 1 ячейку вправо, если Ai = +1, или на 1 ячейку влево, если Ai = —1; оракульная головка записывает $2 вместо s2 и сдвигается аналогично в соответствии со значением Аг. Таким образом, все происходит как на одном шаге в обычной ДМТ, за исключением того, что используются две ленты.
Если текущее состояние есть qc, то поведение зависит от содержания оракульной ленты и от оракульной функции q. Пусть у eS— слово, записанное на ленте, начиная с 1-ой ячейки и кончая той, в которой расположена оракульная головка, причем у = е, если эта головка находится левее ячейки 1 *). Тогда за один шаг оракульная лента изменяется так, что в ячейках 1, ..., |z| оказывается записанным слово г, а остальные ячейки пусты; оракульная головка перемещается в позицию для просмотра ячейки 1, и машина переходит из состояния qc в состояние q,. Этот шаг не изменяет содержимого основной ленты и положения основной головки.
Главное различие между ОМТ и ДМТ проявляется в последней ситуации, которая обеспечивает возможность ОМТ “консультироваться с оракулом". Если ОМТ записывает вопрос у на оракульной ленте и затем принимает состояние вопроса к оракулу, ответное слово z = g(y’) выдается за один шаг вычисления. Это соответствует обращению к гипотетической подпрограмме вычисления функции g. Вычисление ОМТ-программы М на входе х зависит как от х, так и от используемой оракульной функции g.
Мы будем использовать символ Mg для обозначения “релятивизированной” ОМТ-программы, получаемой путем комбинирования программы М с оракулом g. Если Mg останавливается на всех входах xeS*. ее можно рассматривать как программу.
вычисляющую функцию f^: ST-^Г*, определяемую точно так же, как для случая ДМТ. Будем называть Mg полиномиальной О МТ-программой, если существует полином р, такой, что Mg останавливается на р(|х|) шагов для любого хе 2*.
Пусть R и R'— два произвольных словарных отношения над алфавитом 2. Определим полиномиальную сводимость R к R' в смысле Тьюринга как ОМТ-программу М с входным алфавитом 2, такую, что для любой функции g; 2*->-2*, реализующей отношение R', релятивизированная программа Mg будет полиномиальной ОМТ-программой, а функция f^, вычисленная программой Mg, будет реализовывать отношение R. Если R таким образом сводится к R', то это обозначается следующим образом: R xTR' (читается “R сводится к R' по Тьюрингу”). Заметим, что <хг, подобно ос, транзитивно.
Теперь можно определить понятие “NP-трудной” задачи. Словарное отношение R назовем NP-трудным, если существует NP-полный язык L (в свою очередь представленный как словарное отношение описанным выше способом), такой, что L осTR. Переборная задача П (при схеме кодирования е) называется NP-трудной, если словарное отношение R [П, е] является NP-трудным. Неформально можно сказать, что переборная задача П является NP-трудной, если существует некоторая WP-полная задача П', которая сводится по Тьюрингу к задаче П. Нетрудно видеть, что если словарное отношение R (или переборная задача П) является NP-трудной, то задача П не может быть решена за полиномиальное время, если Р =/= NP.
Заметим, что если R— произвольное NP-трудное словарное отношение и при этом R сводится по Тьюрингу к словарному отношению R', то, в силу транзитивности отношения осг, словарное отношение R' также должно быть NP-трудным. Более того, используя соответствие между языками и словарными отношениями, а также соответствие между задачами распознавания и переборными задачами, немедленно получаем, что все NP-полные языки и все NP-полные задачи являются NP-трудными.
Мы вернемся к ОМТ в гл. 7, а сейчас продолжим обсуждение на уровне задач, применяя введенные выше понятия сводимости по Тьюрингу, и NP-трудных задач обычным неформальным образом. Первое и наиболее тривиальное применение касается задач, дополнительных к NP-полным. Задача Пс называется дополнительной к задаче распознавания П, если ее область определения — это множество Dn, а множеством положительных ответов является DnWn. В гл. 2 мы отметили, что, вообще говоря, не известно, можно ли утверждать, что из принадлежности задачи П классу NP следует, что Пс е NP. Далее, совсем не очевидно, что задачу П можно полиномиальным обра-
зом свести к задаче Пс из-за несимметричности ответов “да” и “нет". Однако совершенно тривиально, что задача П сводится по Тьюрингу к Пс (и обратно); поэтому, если задача П является NP-полной или NP-трудной, то и Пс должна быть NP-трудной.
Второе применение относится к таким переборным задачам, как оптимизационная задача о коммивояжере или задача о конструировании гамильтонова цикла, у которых соответствующие задачи распознавания NP-полны.
Всякий раз, когда можно воспользоваться полиномиальным алгоритмом переборной задачи для решения соответствующей задачи распознавания за полиномиальное время, существует сводимость по Тьюрингу между ними, и, следовательно, любой результат, касающийся NP-полноты задачи распознавания может быть переформулирован как результат, устанавливающий NP-трудность переборной задачи. Поэтому аргументы, представленные в гл. 2 в пользу того, что КОММИВОЯЖЕР не труднее, чем оптимизационная задача о коммивояжере, в совокупности с тем фактом, что КОММИВОЯЖЕР—это NP-полная задача, составляют доказательство того, что эта оптимизационная задача NP-трудна.
Ни один из этих примеров не иллюстрирует всех возможностей сводимости по Тьюрингу, поскольку в каждом из них требуется лишь однократное обращение к оракулу (или к соответствующей подпрограмме). Рассмотрим теперь пример, который в более полной мере использует сводимость по Тьюрингу.
К-е ПО ПОРЯДКУ ПОДМНОЖЕСТВО
УСЛОВИЕ. Заданы конечное множество А, размер s(o)eZ+ для каждого а е А и два неотрицательных числа В^ £ s(a) и аеА
К<2|4’.
ВОПРОС. Существует ли не менее К различных подмножеств А* г А, удовлетворяющих условию s^A'^^B (где по определению $(Л') = У, s(a))?
as А'
Было показано [322], что эта задача может быть решена за псевдополиномиальное время, точнее за время, ограниченное полиномиальной функцией от | Л|-К flogs(/l) ]. Таким образом, для любого фиксированного значения К задачу можно решить за полиномиальное время. Вопрос состоит в том, чтобы выяснить, может ли она быть решена за полиномиальное время в общем случае.
Представляется, что эта задача не принадлежит классу Р. Более того, совсем не очевидно, что она принадлежит NP, поскольку естественный путь ее решения недетерминированным алгоритмом требует угадывания К подмножеств множества А
и, по-видимому, нет способа записать угаданные К подмножеств в виде слова, длина которого будет полиномом от | Л| • [ log Л1 Г logs (Л) 1. С другой стороны, не известно, сводится ли (в смысле сводимости ос) какая-либо NP-полная задача к этой задаче. Однако Джонсон и Кашдан [260] показали, что NP-полная задача РАЗБИЕНИЕ сводится по Тьюрингу к задаче К-е ПО ПОРЯДКУ ПОДМНОЖЕСТВО.
В самом деле, положим, что 3[Л, s, В, /С]— это подпрограмма для решения задачи К-е ПО ПОРЯДКУ ПОДМНОЖЕСТВО. При этом пусть Л = {oi, аг,.... ап}, s: Л^-2+, В^$(Л), А^2П. Соответствующий алгоритм для решения задачи РАЗБИЕНИЕ начинается с вычисления величины $(Л), где параметры Л = = {аь аг, .... оя} и s: Л-*-2+ описывают заданную индивидуальную задачу РАЗБИЕНИЕ. Если $(Л) нечетно, то алгоритм немедленно отвечает “нет” для этой индивидуальной задачи. В противном случае он полагает величину В равной $(Л)/2 и применяет приводимую ниже дихотомическую процедуру, использующую введенную выше процедуру 5[Л, s, В, К] и позволяющую определить число L* подмножеств A's Л, удовлетворяющих неравенству з(Л')^Ь.
Шаг 1. Положить Lmm "*~ О, Lmax-<-2л.
Шаг 2. Если Lmix— Lmin=l, положить C-t-Lmvn и остановиться.
Шаг 3. Положить L^-(Lmix + Lmm)/2 и вызвать подпрограмму 3[Л, s, 6, L). Если ответ “да", положить Lmin*-L и перейти к шагу 2. В противном случае положить Lmax*-L и перейти к шагу 2.
Эта процедура определяет L*, вызывая подпрограмму S ровно л раз. Требуется еще один дополнительный вызов для определения ответа в заданной задаче РАЗБИЕНИЕ, а именно вызывается подпрограмма S [Л, s, b— 1, L*]. Если ответ в этой подпрограмме будет "да”, то все подмножества А'г А, удовлетворяющие неравенству $(Л')^6, должны удовлетворять и условию $(Л')^ b— 1, поэтому ответом к задаче РАЗБИЕНИЕ будет “нет". Если же ответом подпрограммы будет “нет”, то должно существовать некоторое подмножество А' £ Л, для которого $(Л')=6, поэтому ответ в задаче РАЗБИЕНИЕ будет “да".
Легко видеть, что описанная процедура была бы полиномиальным алгоритмом для задачи РАЗБИЕНИЕ, если бы процедура S была полиномиальным алгоритмом для задачи К-е ПО ПОРЯДКУ ПОДМНОЖЕСТВО. Таким образом, мы имеем желаемую тьюрингову сводимость задачи РАЗБИЕНИЕ к задаче К-е ПО ПОРЯДКУ ПОДМНОЖЕСТВО- Отсюда следует,
что последняя задача NP-трудна и не может быть решена за полиномиальное время, если Р ^ NP.
Основываясь на этом примере, легко понять, что можно использовать понятие NP-трудности для анализа сложности задач почти таким же образом, как ранее использовалось понятие NP-полноты. Все типы вопросов, обсуждаемых в гл. 4, применимы к NP-трудным задачам. В частности, можно говорить о сложности подзадач и о таких смежных вопросах, как псевдо- полиномиальные алгоритмы и “сильная” NP-трудность (определяемая аналогично сильной NP-полноте: переборная задача называется NP-трудной в сильном смысле, если она содержит NP-трудную подзадачу, удовлетворяющую полиномиальной границе для Мах[/]). На эти результаты накладывается единственное ограничение: NP-полные задачи разрешимы за полиномиальное время тогда и только тогда, когда Р = NP, в то время как все, что можно сказать о NP-трудной задаче, — это то, что она неразрешима за полиномиальное время, если Р N= NP.
Мы покажем, что и это различие часто можно устранить, что будет еще одной иллюстрацией использования сводимости по Тьюрингу. Вспомним, что, когда мы говорили в гл. 2 о том, что КОММИВОЯЖЕР не труднее, чем соответствующая оптимизационная задача, мы упомянули также, что она в некотором смысле и “не легче”. Смысл этого высказывания теперь можно пояснить.
Если рассмотреть пару задач, одна из которых — задача распознавания, а другая — соответствующая оптимизационная задача, то не только задача распознавания сводима по Тьюрингу к задаче оптимизации, но и задача оптимизации также сводима по Тьюрингу к задаче распознавания. Таким образом, каждая задача рассматриваемой пары может быть решена за полиномиальное время тогда и только тогда, когда другая задача этой пары полиномиально разрешима. Поскольку задача распознавания является NP-полной, то отсюда следует, что рассматриваемая оптимизационная задача может быть решена за полиномиальное время тогда и только тогда, когда Р = NP.
Чтобы убедиться в этом, рассмотрим следующую задачу, занимающую промежуточное место между задачами распознавания и оптимизационными.
ДОСТРОЙКА МАРШРУТА КОММИВОЯЖЕРА (ДМК)
УСЛОВИЕ. Заданы конечное множество С = {С|, с2, ..., ст) городов, расстояния d(Ci, C/)eZ+ для каждой пары городов с., с/е С, граница BgZ+ и “частичный” маршрут 0 = <ся(1), Сл(2>, .... Сл(ю> между К различными городами из С, l^K^m. ВОПРОС. Можно ли так достроить 0, чтобы получить маршрут <сЯ(1), сЯ(2), .... ся(ю; сЛ(к+п, ... сЯ(т)>, проходящий через все города и имеющий длину не более В?
Легко видеть, что эта задача принадлежит NP и, следовательно, по определению NP-полноты, ДМК <х КОММИВОЯЖЕР. Поскольку сводимость <х—это лишь частный случай сводимости по Тьюрингу, отсюда сразу следует, что ДМК ос г КОММИВОЯЖЕР. Обозначим через КО оптимизационную задачу о коммивояжере и покажем, что КО осг ДМК, тогда в силу транзитивности этого факта будет достаточно для доказательства того, что КО ос КОММИВОЯЖЕР.
Итак, положим, что S [С, d, в, S] — это подпрограмма для решения задачи ДМК, где параметр С обозначает множество городов, d— функция расстояний между парами городов из С, 9 — частичный маршрут, В е Z+— граница. Пусть Cad определяют некоторую индивидуальную задачу ДМК, а В* обозначает длину оптимального маршрута в этой индивидуальной задаче (какая бы она ни получилась). Поскольку каждый город должен войти в оптимальный маршрут и циклическая перестановка городов в маршруте не изменяет его длину, то существует оптимальный маршрут, начинающийся из города Сь Далее, мы знаем, что величина В* лежит между Bmin=m и Втах= = пг-(max(d(cj, с/): с,, с/еС}). Тогда, пользуясь дихотомической процедурой, такой же, как в задаче К-е ПО ПОРЯДКУ ПОДМНОЖЕСТВО, мы сможем найти величину В*, обращаясь не более riog2Bmaxl раз к подпрограмме S[C, d, <Ci>, В], каждый раз придавая величине В различные значения.
Определив величину В* и используя подпрограмму S, мы сможем построить оптимальный маршрут. Назовем последовательность 0 различных городов из С продолжаемым частичным маршрутом, если его можно продолжить до полного маршрута, имеющего общую длину 5*. Очевидно, что <ci> — это продолжаемый частичный маршрут. Поскольку <С]> допустим, существует по крайней мере один город c,eC\(ci}, такой, что <Ci, С/> — продолжаемый частичный маршрут. Мы можем найти этот город с,, произведя не более m — 2 вызовов подпрограммы S, которая каждый раз имеет вид S[C, d, <сь с/>, В*], где С/еС\(с1}. (Если первые пг— 2 вызова не дают результата, то ясно, что оставшийся город обязательно подойдет, поэтому для него не нужно применять нашу подпрограмму.)
В общем случае, если <спт, ..., сЛ(ю> — продолжаемый частичный маршрут, где К < пг, то мы сможем найти другой продолжаемый частичный маршрут <ся(1), ..., сЛ(ю, с (к+\)), включающий еще один город, при этом к подпрограмме S делается не более m — К—1 обращений. Таким образом, можно построить полный маршрут для множества С, совершив не более (т—1)(т — 2)/2 вызовов подпрограммы S (помимо тех вызовов, которые использовались для нахождения величины В*). Поскольку в качестве подходящей функции Length в задаче о
коммивояжере можно взять функцию
Length [/] = /и + log2 Bmax, то очевидно, что описанная процедура дает (полиномиальную) сводимость по Тьюрингу задачи КО к задаче ДМК. Следовательно, КОосгДМК«г КОММИВОЯЖЕР, т. е. КО<хг КОММИВОЯЖЕР, что и требовалось доказать.
Заметим, что главное звено здесь — это сводимость КО ос г ДМК. Выяснив, что КО сводится по Тьюрингу к какой-то задаче из NP, мы получаем, что она может быть решена за полиномиальное время, если Р = NP, и, следовательно, она “не труднее”, чем WP-полные задачи. Мы назовем переборную задачу П NP-легкой, если существует задача П' г NP, такая, что П остП'.
После того как читатель усвоил технику сводимости КО ост ДМК, ему будет не трудно понять, как этим же подходом можно воспользоваться, чтобы доказать NP-легкость многих переборных задач, особенно это относится к тем задачам, которым соответствуют задачи распознавания, являющиеся NP-полными. Можно определить задачу П' из NP так, как это было сделано для задачи ДМК, с тем, чтобы последовательно построить требуемое решение (см., например, [520]). Для оптимизационных задач процедуре построения решения предшествует предварительная дихотомическая процедура, в процессе которой находится оптимальное значение целевой функции. В качестве упражнения мы предлагаем читателю попытаться доказать, что переборные задачи, соответствующие шести базовым NP-полным задачам из разд. 3.1, все являются NP-легкими, т. е. предлагается найти: (1) набор, присваивающий значение “истина”, (2) трехмерное сочетание, (3) вершинное покрытие минимальной мощности, (4) клику максимальной мощности, (5) гамильтонов цикл и (6) разбиение множества “взвешенных” элементов на два подмножества одинакового размера.
В действительности теперь мы видим, что изучение в основной теории только задач распознавания не привело к существенной потере общности, поскольку в большинстве случаев переборные задачи, у которых соответствующие задачи распознавания оказались NP-полными, сами все являются NP-легкими и, следовательно, эквивалентными по сложности. В то время как мы строили наш класс эквивалентности — класс NP-полных задач, одновременно получался значительно более широкий класс эквивалентных переборных задач, а именно тех задач, которые одновременно и NP-трудные и NP-легкие (и поэтому мы их называем ИР-эквивалентными^. Хотя этот более широкий класс содержит много задач, не принадлежащих NP, он сохраняет знакомое свойство, присущее NP-полным задачам: ни одна
задача из этого класса не может быть решена за полиномиальное время, если Р ф NP, а если Р = NP, то все задачи из этого класса могут быть решены за полиномиальное время.
ИСТОРИЧЕСКАЯ СПРАВКА
Заканчивая наше описание теории NP-полноты, уместно кратко остановиться на истории развития основных идей и терминологии, используемой для их описания.
В гл. 1 мы уже упоминали две ранние работы, в которых обсуждалось значение полиномиальной сложности. Кобхэм [80] рассматривал широкий спектр математических функций, вычислимых за полиномиальное время, и заметил, что класс всех таких функций не изменяется при различных моделях вычислений. Эдмондс [106] неформально отождествлял термин “хороший алгоритм" с понятием полиномиального алгоритма. В другой ранней работе [107] было введено неформальное понятие, близкое к классу NP. В этой работе предлагалось считать, что задача имеет “хорошую характеризацию”, если для каждого ее решения найдется проверяемое за полиномиальное время “доказательство" того, что это действительно решение.
Все эти ранние работы были написаны в терминах функций или задач, которые мы назвали переборными. Фундаментальный вклад Кука состоял, в частности, в том, что он увидел возможность свести обсуждения к языкам и соответствующим задачам распознавания. В работе Кука [91] впервые были введены классы, которые теперь называют классами Р и NP, и была доказана фундаментальная теорема (теорема Кука). Однако эта статья отличается от всех последующих работ в двух важных аспектах. Во-первых, основное понятие сводимости, введенное Куком и названное им “Р-сводимостью”, было близко к полиномиальной сводимости по Тьюрингу, а не к полиномиальной сводимости ос. Поэтому в некоторых работах полиномиальную сводимость по Тьюрингу называют “сводимостью по Куку". Во-вторых, класс эквивалентных задач, которые Кук связал с задачей ВЫПОЛНИМОСТЬ (он не дал названия этому классу), не был ограничен задачами, сейчас называемыми NP- полными, а включал все задачи распознавания, которые мы назвали “NP-эквивалентными".
Теория NP-полноты приняла свой современный вид в работе Карпа [280], хотя некоторые термины появились позднее. Карп ввел термины “класс Р” и “класс NP” и заметил, что теорема Кука останется справедливой, если понятие сводимости по Тьюрингу заменить более простой и удобной полиномиальной сводимостью (transformability). Этот тип сводимости иногда называют “сводимостью по Карпу". Иногда его также называют
“многооднозначной” сводимостью, поскольку она является многооднозначной функцией. Сам Карп просто пользовался термином “сводимость”. Он дал современное определение “NP-полной задачи", хотя при этом пользовался термином “полиномиально полная задача" (термин “полный" восходит к теории рекурсивных функций, где язык называют полным по отношению к классу с данным типом сводимости, если он принадлежит этому классу и каждый элемент класса сводится к нему). В свете различия между двумя классами, определенными Куком и Карпом, ссылки на “класс Кука — Карпа”, иногда встречающиеся в литературе, выглядят забавно (обычно при этом имеется в виду класс задач, определенный Карпом).
Статья Карпа, а также его сообщения на конференциях до публикации этой статьи вызвали широкий интерес. И естественно, что наряду с новыми научными результатами время от времени стали появляться новые термины. Вместо термина “polynomial complete” предлагалось писать “polynomially complete”, несмотря на громоздкость последнего термина. Далее, Сахни [463] ввел термин “P-полная задача", это был аналог “полиномиально полных задач", обобщенный на более широкий класс задач (аналогичных нашим “переборным задачам”). Он же предложил термин “P-трудная задача" для тех задач, которые по крайней мере столь же сложны, как NP-полные. В то же время Левин независимо доказал теорему, аналогичную теореме Кука, и ввел термин “универсальная переборная задача” [340], который относится (так же как P-полные задачи, рассматриваемые Сахни) к более широкому классу задач, чем только задачи распознавания. В•частности, используемое нами определение термина “переборная задача” заимствовано из работы [340].
Общепринятая в настоящее время терминология (NP-полная и NP-трудная задачи, полиномиальная сводимость) в большой степени является результатом деятельности Доналда Кнута. В 1973 г., подготавливая к печати четвертый том своей монографии “Искусство программирования” и нуждаясь в кратком обозначении задач, “которые по крайней мере столь же сложны, как полиномиально полные”, Кнут провел по своей инициативе опрос среди большой группы специалистов, занимающихся рассматриваемой тематикой. Он предложил им три варианта названия и просил выбрать наилучший с их точки зрения. При этом он отверг термин “P-трудная задача" из семантических соображений, поскольку если Р =# NP, то полиномиально полные задачи окажутся на самом деле намного труднее, чем задачи из Р. Опрашиваемые специалисты в свою очередь отвергли все три названия, предложенные Кнутом, и выдвинули целый ряд своих названий, некоторые из них носили не совсем серьезный характер (например, Шен Лин предложил полиномиально полные
задачи называть “РЕТ-задачами”, во-первых, потому, что это излюбленная тема его исследований1), а во-вторых, потому, что сочетание РЕТ можно рассматривать как сокращение для “Probably Exponential Time” (возможно экспоненциальное время)). Более того, если проблема Р = NP будет решена, предлагаемое сокращение получит новую интерпретацию: если Р #= NP, то РЕТ можно трактовать как “provably exponential time” (доказуемо экспоненциальное время); если же Р = NP, то РЕТ может обозначать “previously exponential time" (время, ранее считавшееся экспоненциальным).
Интересный отчет об этом опросе и последовавших дискуссиях можно найти в статье Кнута [294]. В результате проведенного опроса наибольшее число голосов получили термины “NP-полная задача” и “NP-трудная задача" (оба они отсутствовали в первоначальном списке Кнута), при этом “NP-полная задача” заменила термин “полиномиально полная задача", а “NP-трудной задачей" была названа такая задача распознавания П, что ВЫПОЛНИМОСТЬ ос П. Термин “NP-полная” был принят, поскольку он, во-первых, короче, чем “полиномиально полная”, и, во-вторых, он имеет больше смысла с теоретической точки зрения (NP-полная задача — это такая задача, которая полна в NP относительно полиномиальной сводимости). Аналогично термин “NP-трудная задача" имеет тот смысл, что это задача не проще, чем “самая трудная в NP”.
С тех пор эти термины стали применяться почти повсеместно, хотя по-прежнему нередко появляется и термин “полиномиально полная задача". Термин “NP-полная задача" употребляется достаточно стабильно, а значение термина “NP-трудная задача” меняется. В заметке [295] Кнут предложил применять термин “полиномиальное сведение” (polynomial reduction) вместо термина “полиномиальное преобразование” (polynomial transformation). Кроме того, он предложил более широкое определение NP-трудной задачи как задачи распознавания, к которой ВЫПОЛНИМОСТЬ сводится по Тьюрингу (а не в смысле сводимости ос). По этой причине, например, задачи, дополнительные к NP-полным, могут быть названы NP-трудными. Термин “NP-трудная задача” встречается в литературе и в том и в другом смысле, пожалуй, одинаково часто.
В этой книге мы сделали еще один шаг по сравнению с работами Кнута, обобщив определение NP-трудной задачи, расширив его, а также понятие сводимости по Тьюрингу, чтобы включить переборные задачи. По этой причине новые термины найдут более широкое применение. Исходя из аналогичных соображений, мы ввели понятие “NP-легких” и “NP-эквивалент-
*) Pet — излюбленная тема, излюбленный предмет. — Прим, перев.
них” задач, причем в последнем .понятии мы попытались формализовать кое-что из того, что Сахни имел в виду, введя “P-полные задачи”, а Левин — “универсальные переборные задачи".
Кроме того, авторы ввели понятие “сильной NP-полноты” (разд. 4.2), причем впервые этот термин появился в работе [151]. Другое определение этого же понятия было предложено в [317], где задача “NP-полная в сильном смысле” называлась “унарной NP-полной”, а задача “NP-полная в обычном смысле” называлась “бинарной NP-полной". Эта терминология основана на том факте, что если задача NP-полная в сильном смысле, то соответствующий язык является NP-полным даже в случае, когда кодирующая схема представляет числа в “неэкономном" унарном коде (т. е. последовательность из п единиц представляет число п).
За исключением нескольких новых терминов, введенных выше, и некоторых несущественных отличий в предлагаемых моделях ЭВМ, мы пытались следовать как можно ближе принятой в настоящее время терминологии, поэтому настоящая книга достаточно хорошо согласована с современной научной литературой. Читатель, выбравший эту книгу в качестве начального руководства для дальнейшего изучения литературы, без сомнения, найдет ссылки на многочисленные периферийные вопросы, которые являются “точками роста” в теории NP-полноты. В последующих двух главах приводится материал по подобной смежной тематике, так что читатель может представить себе, о каких вопросах идет речь, и, возможно, сам займется изучением тех вопросов, которые покажутся ему наиболее интересными.
Подходы к решениюNP-полных задач
Вернемся на короткое время в отдел бандерснечей из разд. 1.1. Напомним, что мы покинули его в несколько неопределенной ситуации. Будучи главным разработчиком алгоритмов, вы удачно избежали возможного обвинения в некомпетентности, доказав NP-полноту задачи о бандерснече. Однако после произнесения этих магических слов задача о бандерснече не исчезла, и вы по-прежнему стоите пред проблемой отыскания приемлемого алгоритма ее решения.
В настоящей главе будут обсуждаться некоторые возможные подходы к этой проблеме, главным образом новое направление, связанное с получением доказуемых “оценок погрешности” алгоритмов. Однако, прежде чем перейти к рассмотрению конкретного материала, желательно сделать краткий обзор возможных альтернатив, которые в первом приближении можно было бы разбить на две общие категории.
К первой категории относятся подходы, в которых делается попытка максимального сокращения объема перебора, хотя при этом и признается неизбежность экспоненциального времени работы. К наиболее широко используемым приемам сокращения перебора относятся приемы, основанные на методе “ветвей и границ" или методе “неявного перебора" (см., например, [161]). Эти приемы состоят в построении “частичных решений", представленных в виде дерева поиска, и применении мощных методов построения оценок, позволяющих опознать бесперспективные частичные решения, в результате чего от дерева поиска на одном шаге отсекается целая ветвь. Известны и другие подходы, когда процесс поиска организован иначе (они используются иногда совместно с методом ветвей и границ). К ним относятся метод динамического программирования (применявшийся в гл. 4 для построения алгоритмов с псевдополиномиаль- ным временем работы), методы отсечений (см., например, [226, 161]) и метод Лагранжа (см., например, [170, 206]). Кроме того, в худшем случае иногда оказывается возможным в значительной степени уменьшить сложность полного перебора за счет более удачного выбора объектов, к которым он применяется. К относительно недавним примерам использования этого подхода относятся алгоритмы решения задачи РАЗБИЕНИЕ, за-
дачи РАСКРАШИВАЕМОСТЬ ГРАФА В К ЦВЕТОВ [325] и задачи НЕЗАВИСИМОЕ МНОЖЕСТВО [513].
Подходы, относящиеся ко второй категории, применимы исключительно к оптимизационным задачам (это однако не является слишком сильным ограничением, поскольку огромное количество задач, возникающих на практике, естественно формулируются как оптимизационные) и включают прием, который можно назвать “снижение требований”. Он заключается в отказе от поиска оптимального решения и в нахождении вместо этого “хорошего” решения за приемлемое время. Алгоритмы, основанные на этом приеме, обычно называются “эвристическими", поскольку они используют различные разумные соображения без строгих обоснований. Методы, применяемые для построения алгоритмов такого типа, сильно зависят от специфики задачи, хотя и удалось выделить несколько руководящих принципов, которые могут служить полезной отправной точкой (см. [347], где проводится блестящее обсуждение этих принципов). Наиболее широко применяется так называемый метод “локального поиска", когда заранее выбранное множество локальных операций используется для последовательного улучшения начального решения до тех пор, пока такое улучшение возможно, в противном случае оказывается достигнутым “локальный оптимум".
Эвристические алгоритмы, построенные этим и другими методами, на практике оказываются весьма удовлетворительными, хотя для получения удовлетворительных характеристик алгоритма обычно требуется довольно большая работа по его “доводке". В результате удается только в очень редких случаях заранее предсказать и оценить поведение таких алгоритмов. Вместо этого такие алгоритмы оцениваются и сравниваются на основе сочетания эмпирических данных и аргументов, опирающихся на здравый смысл.
Однако совсем недавно был получен ряд результатов, которые показали, что эвристические алгоритмы не всегда столь сложны для формального анализа. В некоторых случаях удается доказать, что решения, получаемые эвристическим алгоритмом, всегда будут отличаться в процентном отношении от оптимального решения не более чем на определенную величину. Подобные результаты можно рассматривать как “оценки погрешности” алгоритмов. В настоящей главе мы остановимся именно на таких результатах.
В разд. 6.1 сделан обзор различных типов оценки погрешности алгоритмов. В разд. 6.2 показано, как теория NP-полноты позволяет дать заключение о наилучшей из возможных для данной задачи оценке погрешности. Наконец, в разд. 6.3 обсуждаются некоторые практические соображения, касающиеся
возможностей применения результатов этого типа, а также упоминаются некоторые теоретические работы, в которых делается попытка проанализировать “поведение в среднем" эвристических алгоритмов.
ОЦЕНКИ ПОГРЕШНОСТИ ПРИБЛИЖЕННЫХАЛГОРИТМОВ
Дадим вначале формальное описание понятия “оптимизационная задача".
Комбинаторная оптимизационная задача П есть либо задача минимизации, либо задача максимизации и состоит из следующих трех частей:
множества Оп индивидуальных задач;
для каждой IgDu конечного множества Sn(7) допустимых решений индивидуальной задачи I;
функции шп, сопоставляющей каждой индивидуальной задаче 7 е D и каждому допустимому решению og Sn(7) некоторое положительное целое число тп(/, ст), называемое величиной решения о.
Если П — задача минимизации (соответственно максимизации), то оптимальным решением индивидуальной задачи / е Оп является такое допустимое решение ст‘е5ц(/), что для всех ое eSn^I) выполнено неравенство тп(Д о*) ^ тп(Л ст) (соответственно тц(/,а*)^ тп(/,а)). Для обозначения величины тп(/, ст*) оптимального решения индивидуальной задачи / будет использоваться символ ОРТц(7) (в тех случаях, когда задача ясна из контекста, индекс П будет опускаться).
Алгоритм А называется приближенным алгоритмом решения задачи П, если для любой индивидуальной задачи / е Оп алгоритм А отыскивает некоторое допустимое решение сте5п(/). Через А (Г) будем обозначать величину /пп(7, о) того возможного решения ст, которое А строит по /. Если A(f) — ОРТ (7) для всех 7 е Оп, то А называется точным алгоритмом решения задачи П.
Приведенные определения можно проиллюстрировать на примере уже известной нам задачи о коммивояжере. Это задача минимизации, множество ее индивидуальных задач состоит из всех конечных множеств городов и попарных расстояний между ними. Допустимые решения конкретной индивидуальной задачи представляют собой все возможные перестановки заданных городов. Величина решения для каждой такой перестановки равна длине соответствующего маршрута. Таким образом, приближенный алгоритм для данной задачи должен отыскать только некоторую перестановку городов, а точный алгоритм должен все-
гда отыскивать перестановку, соответствующую маршруту минимальной длины.
Если оптимизационная задача NP-трудна (что имеет место в данном случае), то, как нам известно, нельзя построить точный полиномиальный алгоритм решения этой задачи (если Р #= ^NP). Более реалистично попытаться найти приближенный алгоритм А, время работы которого ограничено полиномом невысокой степени и который обладает тем свойством, что для всех индивидуальных задач I величина А^ “близка” к величине ОРТ(/). Следующий пример иллюстрирует типы результатов, которыми мы будем интересоваться в дальнейшем.
Рассмотрим задачу об “упаковке в контейнеры". Она формулируется следующим образом: Задано конечное множество U = (ui, и», ...» и^ “предметов" и “размеры" s(h)e [0, 1] каждого предмета и е U (размер предмета представлен рациональным числом); требуется найти такое разбиение множества U на непересекающиеся подмножества U\, Ui, ..., Uh, чтобы сумма размеров предметов в каждом подмножестве Ui не превосходила 1 и чтобы А было наименьшим возможным. Можно считать, что предметы, принадлежащие каждому множеству Ui, упаковываются в один контейнер размера 1, а наша цель — упаковать предметы множества U в как можно меньшее число контейнеров.
Рассматриваемая задача NP-трудна в сильном смысле (в частном случае она дает задачу З-РАЗБИЕНИЕ), так что мало надежды на отыскание даже псевдополиномиального точного алгоритма решения этой задачи. Однако для ее решения имеется несколько заслуживающих внимания простых приближенных алгоритмов.
Один из них известен под названием “в первый подходящий". Предположим, что имеется бесконечная последовательность контейнеров размера 1, каждый из которых в начальный момент времени пуст. Алгоритм заключается в том, чтобы помещать предметы в контейнеры по очереди, в порядке возрастания номеров. Предметы помещаются в контейнеры согласно следующему простому правилу: “Очередной предмет щ помещается в контейнер с наименьшим номером, у которого сумма размеров помещенных в него предметов не превосходит 1 —s(Ui)"- Другими словами, щ помешается в первый из контейнеров, куда он может попасть (не нарушая ограничения по размеру). На рис. 6.1 показан пример; здесь каждый предмет представлен прямоугольником, имеющим высоту, пропорциональную размеру предмета.
С интуитивной точки зрения этот алгоритм кажется очень естественным и разумным. Он не начинает заполнять новый контейнер до тех пор, пока все непустые контейнеры не будут
слишком сильно заполнены. Что можно сказать о качестве работы этого алгоритма?
Вначале рассмотрим число контейнеров, требующихся для указанного алгоритма, как функцию от параметров задачи. Обозначим эту функцию через FF (/)*). Имеют место неравенства:
FF(/)> 1,
FF(/) <[2 £ s(MJ
I i = l
Последнее неравенство вытекает из того, что в результате работы алгоритма не может получиться более одного контейнера,
Рис. 6.1. Пример размещения по правилу «в первый подходящий», где предмет иа кладется в контейнер В8, поскольку это первый контейнер, в который и6 может поместиться.
заполненного менее чем на половину. (В противном случае первый же предмет, попавший в такой контейнер с большим номером, должен был быть помещен алгоритмом “в первый подходящий”, т. е. такой же контейнер с меньшим номером.) То, что указанная граница — наилучшая из возможных, следует из рассмотрения индивидуальной задачи U = {ub и2, ...,«„}, где s (u<) = V2 + е, 1 ^ I ^ п. Поскольку никакие два предмета не могут попасть в один ящик, то FF (/) = п, в то время как сумма размеров предметов равна и/2 + пе, и если выбрать е достаточно малым, она будет как угодно близка к п/2.
Сделанное замечание позволяет нам также оценить, во сколько раз плохое решение, получаемое алгоритмом “в первый подходящий", может отличаться от оптимального решения задачи. Поскольку ясно, что
ОРТ(/)>[£ s(uz)11-1
’) FF — первые буквы английских слов First Fit (первый подходящий).— Прим, иерее.
то отсюда вытекает, что для всех индивидуальных задач 1 выполнено неравенство
FF(/)<2-OPT (/).
Однако, как следует из приведенной ниже теоремы, для FF(/) имеется лучшая оценка, см. [265].
Теорема 6.1. Для всех индивидуальных задач I об упаковке имеет место неравенство
FF (/)<-£ ОРТ (/) +2.
Более того, существуют индивидуальные задачи 1, для которых ОРТ (/) сколь угодно велико и
17
FF (/)>-£ (ОРТ (/)-!).
Таким образом, теорема 6.1 характеризует асимптотическое поведение в худшем случае алгоритма “в первый подходящий”. Величина FF(/) никогда не отличается от оптимума более чем на 70%, и в некоторых случаях такое отличие действительно достигается. (Небольшое улучшение верхней оценки, благодаря которому (17/10) ОРТ(/)+2 заменяется на [ (17/10 ОРТ(/) ], получено в работе [144].) Мы опустим слишком длинное доказательство теоремы 6.1, однако заметим, что близкая оценка поведения алгоритма в худшем случае может быть получена из рассмотрения примеров, представленных на рис. 6.2, для которых FF(7) = (5/3) ОРТ (7). (Доказательство нижней оценки в теореме 6.1 получается в результате некоторого усложнения этих примеров.)
Полученные результаты являются основой для анализа приближенных алгоритмов решения задачи об упаковке. Теперь можно перейти к анализу других алгоритмов с лучшими оценками поведения. Очевидно, алгоритм “в первый подходящий" можно видоизменить, пользуясь, например, следующим более совершенным правилом размещения: каждый следующий предмет Uj помещаем в тот контейнер, содержимое которого ближе всего к величине 1—s(ui), но не превосходит ее (если имеется несколько контейнеров, обладающих этим свойством, то выбираем из них контейнер с наименьшим номером). Этот алгоритм известен под названием “в наилучший из подходящих”. К сожалению (и к удивлению многих), алгоритм “в наилучший из подходящих” в худшем случае имеет, по существу, те же характеристики, что и алгоритм “в первый подходящий", см. [265].
Несколько лучший приближенный алгоритм можно получить, если учесть, что наихудшей для алгоритма “в первый подходящий” (а также для алгоритма “в наилучший из подходя- щих“) оказывается ситуация, когда в упорядочении предметов
предметы с меньшими размерами идут раньше предметов с большими размерами. Предположим, что предметы из U упорядочены непроизвольно, а в порядке уменьшения их размеров и перенумерованы так, что s(«i) ^ s(«2) ^ ••■ ^s(un). Алгоритм применения процедуры “в первый подходящий" к переупорядоченному таким образом списку предметов называется
Индивидуальнаязадача I: U = \.a1,U2, .. . ,uiem^, зЦ-) =Индивидуальнаязадача I: U = \.a1,U2, .. . ,uiem^, зЦ-) =l/7+е Ki<6m l/3+е 6т<1^12т 3/2+е 12m<i<18ml/7+е Ki<6m l/3+е 6т<1^12т 3/2+е 12m<i<18mРис. 6.2. Индивидуальные задачи / с произвольно большим значением ОРТ (/), для которых FF (/) равно 5/3 ОРТ (/).Рис. 6.2. Индивидуальные задачи / с произвольно большим значением ОРТ (/), для которых FF (/) равно 5/3 ОРТ (/).
Индивидуальная
задача I: U = \.a1,U2, .. . ,uiem^, зЦ-) =
Индивидуальная
задача I: U = \.a1,U2, .. . ,uiem^, зЦ-) =
l/7+е Ki<6m l/3+е 6т<1^12т 3/2+е 12m<i<18m
l/7+е Ki<6m l/3+е 6т<1^12т 3/2+е 12m<i<18m
Рис. 6.2. Индивидуальные задачи / с произвольно большим значением ОРТ (/), для которых FF (/) равно 5/3 ОРТ (/).
Рис. 6.2. Индивидуальные задачи / с произвольно большим значением ОРТ (/), для которых FF (/) равно 5/3 ОРТ (/).
“в первый подходящий в порядке убывания" (соответствующая функция обозначается FFD(7)). Работа этого алгоритма характеризуется следующей теоремой Джонсона [262] (набросок доказательства см. в [265]).
Теоремд 6.2. Для всех индивидуальных задач об упаковке выполняется неравенство
FFD (/) ^Цр ОРТ (7) + 4.
Более того, существуют индивидуальные задачи 7, для которых ОРТ (/) произвольно велико и
FFD (7) ^-^ ОРТ (7).
Таким образом, мы имеем гарантию, что алгоритм “в первый подходящий в порядке убывания" даже в худшем случае выдает решение, отличающееся от оптимального не более чем
1/2 + е KK6m 1/4 + 2€ 6т < К 12т 1/4 + е 12m<i<18m 1/4—2€ 18m<i^30m1/2 + е KK6m 1/4 + 2€ 6т < К 12т 1/4 + е 12m<i<18m 1/4—2€ 18m<i^30m1/4-2е1/4-2€1/4 + еI/4-2е1/2+е1/4 + 2€1/4 + 2€1/4-2е1/4-2€1/4 + еI/4-2е1/2+е1/4 + 2€1/4 + 2€, 6 m контейнероб 3 m «онтеймеробОРТ(/) =9т, 6 m контейнероб 3 m «онтеймеробОРТ(/) =9т, 6 т кантейнероб '1тконтсйндв8 Зткомтейжроб, 6 т кантейнероб '1тконтсйндв8 ЗткомтейжробFFD.(/)-llmFFD.(/)-llm
1/2 + е KK6m 1/4 + 2€ 6т < К 12т 1/4 + е 12m<i<18m 1/4—2€ 18m<i^30m
1/2 + е KK6m 1/4 + 2€ 6т < К 12т 1/4 + е 12m<i<18m 1/4—2€ 18m<i^30m
1/4-2е
1/4-2€
1/4 + е
I/4-2е
1/2+е
1/4 + 2€
1/4 + 2€
1/4-2е
1/4-2€
1/4 + е
I/4-2е
1/2+е
1/4 + 2€
1/4 + 2€
, 6 m контейнероб 3 m «онтеймероб
ОРТ(/) =9т
, 6 m контейнероб 3 m «онтеймероб
ОРТ(/) =9т
, 6 т кантейнероб '1тконтсйндв8 Зткомтейжроб
, 6 т кантейнероб '1тконтсйндв8 Зткомтейжроб
FFD.(/)-llm
FFD.(/)-llm
на 22%. Кроме того, встречаются индивидуальные задачи, для которых эта оценка достигается. Такой же результат имеет место для аналогичного алгоритма “в наилучший из подходящих в порядке убывания’’. На рис. 6.3 показан класс примеров, позволяющих установить нижнюю оценку для обоих алгоритмов.
Доказательство оценки сверху заключается в тщательном рассмотрении различных случаев, даже краткое изложение которых потребовало бы больше места, чем отведено для всей
ИнЗибиАуальноя
задача I: U = {иьм2,.... Из0т}, зЦ) =
Рис. 6.3. Индивидуальные задачи 1 с произвольно большим значением ОРТ (/)■ для которых FFD (/) равно (11/9) ОРТ (/).
настоящей главы. (Хотя длинные доказательства для задач, подобных задаче об упаковке, —обычное явление, отметим, что аналогичные результаты для других задач были получены без геркулесовых усилий, а для задачи об упаковке несколько более слабые оценки можно получить гораздо проще.)
Дальнейшие модификации алгоритма “в первый подходящий в порядке убывания" были предложены в работах [262, 542]. Цель этих модификаций состояла в получении полиномиального по времени приближенного алгоритма решения задачи об упаковке с еще лучшими оценками решения. Однако ни для одной из этих модификаций пока не получена существенно лучшая оценка.
Итак, проведенный анализ приближенных алгоритмов решения задачи об упаковке, можно подытожить следующим образом. Мы начали анализ с изучения оценки погрешности очевидного, но весьма разумного алгоритма. Этот анализ проводился посредством получения оценок работы алгоритма в худшем случае и посредством построения примеров, показывающих, что эти оценки не могут быть улучшены. На основе этого
анализа, а также интуитивных соображений о недостатках исходного алгоритма мы стали искать другие алгоритмы (возможно, представляющие собой всего лишь более сложные версии исходного алгоритма) и анализировать их. Оценки погрешностей алгоритмов были выражены в виде отношений, представляющих интерес с точки зрения возможности их сравнения и в некотором смысле отражающих близость результатов к оптимуму. Этот общий подход может служить моделью изучения NP-трудных оптимизационных задач и в действительности широко применяется (хотя, конечно, иногда могут оказаться более адекватными и легче доказуемыми оценки другого типа, см., например, [96, 399]).
Для формализации этого подхода дадим еще несколько определений. Пусть П — задача минимизации (соответственно максимизации), а / — произвольная индивидуальная задача из Од. Определим отношение RaM следующим образом:
— орт (/)
/ОРТ (П X
^соответственно RA (/) = А J^ -} • Погрешностью приближенного алгоритма А решения задачи П назовем величину RA, определяемую следующим образом: )
одля всех индивидуальных \
Ra — шт | г > 1. Ra (/) С г задач IeDnJ ‘
Асимптотической погрешностью приближенного алгоритма А назовем величину
Г найдется NeZ+, такое, что RA(/)Cr'j
R” = inf < г ^ 1: для всех 1 е Dn, для которых выполнено ? •
I соотношение ОРТ (/) ^ ^)
Заметим, что отношения, определенные выше, обладают тем свойством, что отношение для задачи минимизации обратно отношению для задачи максимизации. Благодаря этому мы получаем однородную шкалу для градации приближенных алгоритмов решения задач разных типов. При этом всегда имеют место соотношения l^^^oo и 1^/?“^<», причем чем отношение ближе к 1, тем меньше погрешность.
Отметим также, что Ra не обязательно равно Ra • Так, например, теорема 6.2 утверждает, что ^ffd=11/9, но легко построить пример такой индивидуальной задачи I, что ОРТ (/) = = 2, и FFD (/) = 3, и, значит, RFFD ^ 3/2. Для задачи об упаковке асимптотическая погрешность, по-видимому, важнее, хотя для задач другого типа более адекватной величиной может быть RaU). Может оказаться, что для интересующих нас приближенных алгоритмов обе характеристики совпадают: Ra = Ra • В любом случае полезно знать обе эти величины, а различие между ними учитывать при анализе приближенного алгоритма.
В качестве другого примера рассмотрим еще раз задачу о коммивояжере, введя в ее условие дополнительное ограничение. Индивидуальная задача / по-прежнему представляет собой множество С городов и список расстояний между ними. В данном случае, однако, потребуем, чтобы расстояния подчинялись “неравенству треугольника’’, т. е. чтобы для каждой тройки городов а, Ь, с из множества С было выполнено соотношение
d (а, с) ^ d (а, b) + d (6, с).
Это условие выполняется, например, когда расстояния между городами представляют собой кратчайшие пути в некоторой стандартной метрике или если допускаются маршруты, проходящие через некоторые города по нескольку раз, поскольку в последнем случае каждое из заданных расстояний d(ci, с/) может быть заменено длиной кратчайшего пути от Ci к с/. Нетрудно видеть, что и при указанных ограничениях задача остается NP-трудной. Более того, для всех алгоритмов, которые мы рассмотрим в дальнейшем, будет выполнено соотношение Ra = /?”, так что мы ограничимся рассмотрением величины Ra-
Рассмотрим естественный эвристический алгоритм, называемый “ближайший сосед’’. Этот алгоритм обозначается NN ) и описан,например,в работе [162].Пусть С = {сьСг, .... с«} — заданное множество городов. В качестве первого города cX(d в искомом маршруте возьмем город Сь Если частичный маршрут <Сл(п, Сл(2), • • •. CaW>, h<m, уже построен, то в качестве города сЛ(*+1) алгоритм выбирает город с, ближайший к городу cnW (т. е. город с наименьшим расстоянием d^c^, с)), из городов, еще не принадлежащих маршруту (если имеется несколько таких городов, можно выбрать город с наименьшим номером). Следующая теорема Розенкрантца, Стирнза и Льюи
са [457] показывает, что этот приближенный алгоритм может вести себя гораздо хуже, чем любой из обсуждавшихся нами алгоритмов для решения задачи об упаковке.
Теорема, 6.3. Для индивидуальных задач о коммивояжере 1 с т городами и неравенством треугольника выполнено неравенство
NN(/)<4(riog2mn+ 1)ОРТ(/).
Более того, для произвольно больших значений m существуют такие индивидуальные задачи 1cm городами, что
NN(/)>l(log2(m + l) + |)oPT(/).
Наиболее важное утверждение этой теоремы можно сформулировать очень кратко: Rnn = °°; оно показывает не слиш-
Рис. 6.4. Схематическое изображение индивидуальной задачи о коммивояжере, для которой алгоритм «ближайший сосед» работает плохо. В этом примере имеется 15 городов, расстояние d (ct, Cf) определяется как длина кратчайшего пути от ct к Ср получаемого с использованием ребер, изображенных на рисунке. Нетрудно проверить, что эти расстояния подчиняются неравенству треугольника. Периметр дает оптимальный маршрут длины 15, а алгоритм «ближайший сосед» выдает зачерненный маршрут длины 27.
Таким образом. RNN (Z) = 27/25 > 16/9 = 1/3 (logs (и + 1) + 4/3).
ком большую перспективность алгоритма “ближайший сосед’*. Пример сложной рекурсивной конструкции, используемой для получения нижней оценки теоремы 6.3, при m = 15 представлен на рис. 6.4.
Погрешность алгоритма “ближайший сосед” оставляет желать много лучшего. Мы упомянули об этом алгоритме лишь для того, чтобы продемонстрировать, что даже весьма разум-
ные эвристики могут приводить к плохим результатам, отличающимся от оптимума в произвольно большое число раз.
К счастью, другие приближенные алгоритмы решения этой задачи работают гораздо лучше. В самом деле, в работе Ро- зенкрантца, Стирнза и Льюиса [457] приведено несколько приближенных алгоритмов с погрешностью RA = 2. Хорошо известен обладающий этим свойством алгоритм, основанный на понятии “минимальное остовное дерево’’. Рассмотрим индивидуальную задачу о коммивояжере, представленную в виде полного графа, вершинами которого являются города, а каждое ребро {с/, с/} имеет “длину" d^ci.c^. В таком графе имеется
(6) Маршрут, полученный6 результате сокращение(6) Маршрут, полученный6 результате сокращение
(6) Маршрут, полученный
6 результате сокращение
(6) Маршрут, полученный
6 результате сокращение
Рис. 6.5. Преобразование остовного дерева в маршрут для коммивояжера с использованием алгоритма «двойной обход дерева».
очевидное взаимно-однозначное соответствие между всевозможными машрутами и гамильтоновыми циклами. Остовным деревом называется связный подграф, содержащий все вершины и не содержащий циклов (т. е. между любыми двумя вершинами имеется в точности один путь без повторяющихся ребер). По индукции легко доказывается, что в связном графе на т вершинах остовное дерево должно иметь т — 1 ребро. Минимальным остовным деревом называется остовное дерево, сумма длин ребер которого минимальна.
В отличие от маршрутов коммивояжера минимальной длины минимальные остовные деревья можно легко построить, затратив при этом время, ограниченное полиномом невысокой степени (см. [308] или [9]). Более того, длина минимального остовного дерева для графа задачи о коммивояжере должна быть меньшедлины минимального маршрута, потому что остовное дерево (более короткое, чем этот маршрут) может быть получено из него путем отбрасывания одного ребра. Это наводит на мысль, что достаточно короткий маршрут можно получить построением минимального остовного дерева с последующим посещением всех городов в результате двойного обхода дерева. На рис. 6.5 (б) такой обход указан для дерева с рис. 6.5 (а). В результате такого обхода некоторые города
приходится посещать более одного раза, однако полученный маршрут всегда можно сократить, если каждый раз идти сразу в следующий еще не посещенный город, как показано на рис. 6.5 (в). Неравенство треугольника обеспечивает, чтобы в результате такого сокращения длина маршрута не увеличивалась.
Таким образом, длина маршрута, получаемого в результате изложенной выше процедуры, не превосходит удвоенной длины минимального остовного дерева, что строго меньше удвоенной длины оптимального маршрута. Обозначим алгоритм “двойного обхода минимального остовного дерева" через MST1). Только что доказанный результат формулируется следующим образом:
Теорема 6.4. Для всех индивидуальных задач о коммивояжере 1, для которых выполняется неравенство треугольника, имеет место неравенство
MST (/) < 2 • ОРТ (7).
Примеры, показывающие, что полученная для алгоритма MST оценка наилучшая из возможных и, следовательно, 7?mst = 2, построить нетрудно, и мы оставляем это в качестве упражнения.
Идея, лежащая в основе алгоритма MST, была развита Кри- стофидисом [71], в результате чего был построен эвристический алгоритм решения этой задачи с еще меньшей погрешностью. Для этого используется комбинация техники “паросо- четаний” и понятий “эйлеров граф" и “эйлеров маршрут". Эйлеровым графом называется граф, у которого все вершины имеют четные степени. Эйлеровым маршрутом в графе называется цикл, проходящий ровно по одному разу через каждое ребро. Нетрудно показать, что для того, чтобы граф G был эйлеровым, необходимо и достаточно существование в графе G эйлерова маршрута (см., например, [357]). Более того, легко построить полиномиальный алгоритм отыскания в таком графе эйлерова маршрута. Кристофидис заметил, что алгоритм MST можно расчленить на четыре стадии: (1) отыскание минимального остовного дерева, (2) преобразование остовного дерева в эйлеров граф посредством дублирования всех ребер графа. (3) отыскание в построенном графе эйлерова маршрута, (4) преобразование с помощью сокращения полученного эйлерова маршрута в маршрут для коммивояжера. Поскольку общая длина добавляемых ребер равна длине минимального остов-
') От английских слов Minimum Spanning Tree (минимальное остовное дерево). — Прим, перев.
ного дерева (и, следовательно, меньше минимальной длины маршрута для коммивояжера) и так как неравенство треугольника гарантирует, что замена двух ребер одним не увеличит длины маршрута, то длина получающегося маршрута может превосходить минимально возможную длину маршрута самое большее в два раза. Однако Кристофидис показал, что остов- ное дерево можно превратить в эйлеров граф с еще меньшими издержками.
Это можно сделать, сосредоточив внимание на множестве V’= (пь а2, ....02»} вершин остовного дерева, имеющих нечетную степень (таких вершин должно присутствовать четное число). Паросочетанием в множестве V' называется его разбиение на к 2-элементных подмножеств. Весом такого паросо- четания называется сумма расстояний d(ci, Cj), где (с,, С/} — подмножество рассматриваемого паросочетания и i < j (для того чтобы избежать дублирования).Любое паросочетание для V' дает нам к ребер, добавление которых к остовному дереву превращает его в эйлеров граф. Общая длина этих ребер равна весу паросочетания. Паросочетанием минимального веса называется паросочетание, вес которого минимален среди весов всех возможных паросочетаний. Паросочетания минимального веса могут быть найдены за полиномиальное время стандартными методами (см., например, [324]). В приближенном алгоритме Кристофидиса стадия 2 алгоритма MST заменяется процедурой отыскания минимального паросочетания для множества V с последующим превращением остовного дерева в эйлеров граф посредством добавления соответствующих ребер.
Основное наблюдение, позволяющее оценить погрешность этого алгоритма, состоит в том, что вес паросочетания минимального веса не может превосходить половины длины минимального маршрута для коммивояжера. В этом можно убедиться следующим образом. Превратим вначале маршрут минимальной длины в маршрут только на вершинах из V'. Этого можно добиться, исключив из заданного маршрута вершины, не принадлежащие V'. В результате, в силу неравенства треугольника, получится маршрут, длина которого не превосходит длины исходного. Построенный маршрут задает на множестве V' два паросочетания, которые получаются, если брать ребра в маршруте через одно. Наименьший из весов этих двух паросочетаний не превосходит половины длины маршрута. Обозначив построенный алгоритм через ММ’) получаем следующую теорему.
•) ММ — от английских слов Minimum Matching (минимальное паросоче- танне). — Прим, перев
Теорема 6.5. Для всех индивидуальных задач о коммивояжере, для которых выполняется неравенство треугольника, имеет место неравенство
ММ (7) <4 ОРТ (7).
Как й раньше, нетрудно построить примеры, показывающие, что эта оценка, по существу, наилучшая возможная (см., например, [97]) и поэтому R№№ = 3/2. В настоящее время не Известен приближенный полиномиальный алгоритм решения задачи о коммивояжере с неравенством треугольника, погрешность которого была бы меньше.
Полученные выше результаты для задачи о коммивояжере, подобно результатам для задачи об упаковке, представляют собой характерный пример того, на что можно надеяться при решении трудных задач полиномиальными алгоритмами. В обеих задачах имеется гарантия отыскания приближенных решений, Довольно близких к оптимальному, хотя ни для одной из них наилучшая оценка погрешности решения не так близка к 1,как хотелось бы.
К сожалению, имеется большое число NP-трудных задач другого типа, для которых не известны полиномиальные алгоритмы, даже с такой оценкой погрешности. Один из примеров подобных задач — задача о раскраске графа: “Задан граф G = = (У,Е), требуется найти такую функцию f:V->{l,2fe), что f («)=/=/(и), если (и, и} е Е и h — наименьшее возможное". В данном случае множество допустимых решений состоит из всех таких функций f: V^-{1, 2, ..., | V|}, что f(«)=/= f(u), если {и, и^еЕ. Величина допустимого решения f равна max {/(о): ue е V}. В работе Джонсона [264] для большого числа полиномиальных приближенных алгоритмов А решения задачи о раскраске графа доказано существование такой константы с и такого бесконечного множества графов G = (V, Е), что
4(G) > с • | И | • OPT(G).
Более того, наилучшая из известных в настоящее время оценок погрешности для полиномиальных алгоритмов А решения задачи о раскраске графа имеет вид
л(С)=^горт(О)
(см. [264]). Иными словами, для задачи о раскраске графа не известен полиномиальный приближенный алгоритм с оценкой погрешности, хотя бы близкой к оценке RA < оо.
Задача о раскраске графа, таким образом, представляется более трудной, чем Задача об упаковке и задача о коммивоя-
жере с неравенством треугольника. Для этой задачи за полиномиальное время мы не только не можем получить гарантированного оптимального решения (если Р N= NP), но даже разумных оценок приближения к оптимальному решению. Две другие задачи, которые представляются в такой же степени не поддающимися решению, — это задача отыскания максимального по мощности множества независимых вершин в графе и задача отыскания минимального маршрута для коммивояжера, если не требовать выполнения неравенства треугольника. (В следующем разделе мы еще вернемся к этим задачам.)
Следует отметить, что возникающее очевидным образом подразделение задач на хорошо и плохо решаемые приближенными методами, по-видимому, не имеет отношения к тому факту, что эти задачи тесно связаны посредством полиномиальных сводимостей. Можно было бы думать, что такая сводимость позволяет преобразовать хороший приближенный алгоритм решения одной задачи в хороший приближенный алгоритм решения другой. Однако, вообще говоря, это не так, что можно увидеть из приведенного ниже примера.
. Напомним, что в разд. 3.1.3 было установлено, что задачи ВЕРШИННОЕ ПОКРЫТИЕ и НЕЗАВИСИМОЕ МНОЖЕСТВО очень тесно связаны. Для графа О = (У, Е) подмножество V' £ V является независимым множеством тогда и только тогда, когда дополнительное подмножество V\ V" является вершинным покрытием в G. Более того, эта взаимосвязь переносится и на соответствующие оптимизационные задачи. Множество V' — максимальное независимое множество в G тогда и только тогда, когда КХУ'—минимальное вершинное покрытие в G (в рассматриваемых случаях в качестве величины решения берется число вершин в независимом множестве и вершинном покрытии соответственно). Однако, хотя нам не известен приближенный полиномиальный алгоритм с погрешностью Ra < оо для решения задачи о максимальном независимом множестве (см. [263]), имеется очевидный алгоритм отыскания минимального вершинного покрытия с погрешностью Ra 2 (см. [167]).
Последний алгоритм основан на идее “максимального паро- сочетания” в графе. Паросочетанием в графе G = (V, Е) называется такое множество Е' cz Е, что никакие два ребра из Е' не имеют общей вершины (взаимоотношение между этим понятием и понятием, использовавшимся в алгоритме Кристо- фидиса для задачи о коммивояжере, совершенно очевидно). Паросочетание Е' называется максимальным, если каждое из ребер, оставшихся в множестве Е\Е', имеет общую вершину с некоторым элементом множества Е'. Максимальное паросочетание строится очень просто за полиномиальное время: к не-
которому уже построенному паросочетанию последовательно добавляются ребра, пока это возможно. Более того, заметим, что если Е'— максимальное паросочетание для G, то множество всех концов ребер из Е’ должно быть вершинным покрытием G (в противном случае Е' не максимально). Такое вершинное покрытие имеет мощность, равную 2 If' |. Важное обстоятельство состоит в том, что любое паросочетание для G должно иметь по крайней мере |Е'| вершин, поскольку оно должно включать по крайней мере один конец каждого ребра рассмотренного паросочетания Е'. Таким образом, мощность вершинного покрытия, которое строится по паросочетанию Е', не превосходит удвоенной мощности минимально возможного паросочетания.
Причина весьма различного поведения задач о максимальном независимом множестве и минимальном вершинном покрытии по отношению к решению полиномиальными приближенными алгоритмами становится ясна, если мы попытаемся с помощью полиномиального сведения одной задачи к другой преобразовать приведенный выше алгоритм решения одной из них в алгоритм решения другой. Предположим, что имеется граф с 1000 вершинами и минимальное вершинное покрытие мощности 490. Указанный выше приближенный алгоритм гарантирует, что найденное с его помощью вершинное покрытие имеет мощность не более 980, поскольку отношение не превосходит 2, однако отношение мощностей соответствующих независимых множеств может достигать величины
1000 - 490 510 ос. _
1000 - 980 — 20 —
Хотя сводимость сохраняет оптимальные решения, она не сохраняет отношения величины оптимального решения к величине приближенного. Нет оснований полагать, что близкое к оптимуму допустимое решение одной задачи отображается в близкое к оптимуму допустимое решение другой задачи. Таким образом, для того чтобы сводимости, используемые для доказательства NP-полноты можно было использовать для преобразования хороших приближенных алгоритмов решения одной задачи в аналогичные алгоритмы решения другой, необходимо, чтобы сводимости сохраняли величину решений более равномерно.
Рассмотренные нами типы поведения приближенных алгоритмов не исчерпывают всех возможностей. Мы видели, что некоторые задачи решаются приближенно гораздо хуже, чем задача об упаковке. С другой стороны, имеется ряд задач, которые представляются значительно более простыми.
Вернемся, например, к определенной в разд. 3.2.1 задаче РЮКЗАК. Ее оптимизационный вариант формулируется следующим образом: “Задано конечное множество U “предметов", для каждого изиеУ+ “размер" s(u)eZ+ и “стоимость" u(u)e eZ+, а также положительное число B^max(s(u): и Е U}— “емкость рюкзака". Требуется найти такое подмножество U's U, что ^ s(u)^B, и величина £ и(“) принимает ueWueU'
наибольшее возможное значение". Иными словами, необходимо максимизировать ценность того, что помещается в “рюкзак", при условии, что сумма размеров предметов, помещенных в рюкзак, не превосходит его емкости.
Один простой приближенный алгоритм решения этой задачи работает следующим образом. Упорядчиваем множество U = = {«1, «2, .... ил} по убыванию "удельной ценности", т. е. так, что v(ui)/s(ui)^ u(u2)/s(u2)^ ... ^ v(un)/s(un). Затем, начиная с пустого множества U', последовательно добавляем к нему предметы из списка, причем при добавлении предмета ut проверяем, не превосходит ли сумма размеров, уже содержащихся в О' предметов, величины В — s(u,). Затем сравниваем стоимость решения, полученного этим “жадным алгоритмом" с максимумом стоимости предметов из множества U и выбираем из этих двух величин наибольшую. Не представляет труда доказать, что построенный таким образом составной жадный алгоритм GA ) имеет погрешность Rga = 2.
Однако, включая этот алгоритм в более совершенную процедуру, можно достичь гораздо большего. Сахни [464] показал, что для всех А ^ 1 существует такой приближенный полиномиальный алгоритм Л6, что RAk ^ 1 + (1/6). Основная идея построения такого алгоритма заключается в испытании в качестве исходного множества U' всех возможных множеств, состоящих не более чем из к предметов, и последующего добавления к нему (с использованием алгоритма GA) как можно большего числа предметов. Затем наилучшее из полученных множеств берется в качестве приближенного решения.
К сожалению, хотя для каждого фиксированного значения к время работы соответствующего алгоритма фактически полиномиально зависит от п, log V и logS (где V = max(o(u): и е е (/} и S = max(s(u): и е U}), эти полиномы всегда содержат к в показателе. Чтобы гарантировать решения, очень близкие к оптимальному, пришлось бы обратиться к алгоритму, временная сложность которого была бы полиномом очень высокой степени и который мог бы оказаться весьма дорогим для
применения на практике. Тем не менее указанные алгоритмы ведут себя, по крайней мере теоретически, лучше, чем алгоритмы для задачи об упаковке, поскольку, как мы видели, для последней задачи не известно приближенного полиномиального алгоритма с относительной погрешностью Ra, существенно лучшей, чем 11/9. Для задачи о рюкзаке имеются полиномиальные алгоритмы, для которых Ra как угодно близка к 1.
Более того, недавно Ибарра и Ким [248] ) доказали, что для задачи о рюкзаке может быть построено приближенное решение с аналогичной оценкой погрешности без использования алгоритма, содержащего к в показателе. Этот результат базируется на том, что задача о рюкзаке может быть решена псевдополиномиальным оптимизационным алгоритмом. Ибарра и Ким показали, как за счет потери точности посредством округления и масштабирования подобный оптимизационный алгоритм может быть превращен в полиномиальный.
Для иллюстрации этого метода предположим, что Л — псев- дополиномиальный оптимизационный алгоритм решения задачи о рюкзаке, временная сложность которого имеет порядок, скажем,
О (п2И log (nKS)).
Каждую индивидуальную задачу о рюкзаке можно модифицировать, заменяя стоимости и (и) всех предметов и е U новой величиной v'(u) = [w(u)/KJ, для некоторого фиксированного К > 0. Для применения алгоритма А к возникшей в результате индивидуальной задаче требуется время порядка
О (n2(V//0 log (/iKS)).
Более того, поскольку оптимальное решение не может содержать больше чем п предметов, то имеется следующая взаимосвязь между ОРТ(/), стоимостью оптимального решения исходной задачи, и ОРТ(/'), стоимостью оптимального решения модифицированной задачи:
ОРТ (/) - К • ОРТ (Г) < Кп.
Заметим, что К-ОРТ(/)' не превосходит стоимости оптимального решения задачи Г, выраженной в исходных стоимостях предметов. Таким образом, если взять оптимальное решение L1' задачи Г в качестве приближенного решения задачи /, то его стоимость будет отличаться от стоимости оптимального решения задачи / не более чем на Кп.
Желаемый результат получается теперь, если выбирать К зависящим от исходной индивидуальной задачи /. В частности,
можно положить Л = V/(^ + 1)п, где к — фиксированное положительное целое число. В результате получается приближенный алгоритм Ак, имеющий временную сложность порядка О(кп3 log(nVS)) и, следовательно, ограниченную полиномом от п, log V, logS и к (время, затрачиваемое на построение по индивидуальной задаче / задачи Г, не превосходит времени работы алгоритма А на входе /'). Более того, поскольку
Ак Щ > ОРТ (/) -Кп = ОРТ (/) - VKk + 1)
и так как ОРТ (/) ^ V, получаем
р m — ОРТ^) / дк (Л + У^ + В /Ак(1) л НО
1 + у - VKk + 1) — 1 + ^^’
что и утверждалось. (Алгоритм Ибарры и Кима несколько сложнее, однако приведенных рассуждений достаточно для иллюстрации основной идеи.)
Аппроксимационные возможности, выявленные на примере этих алгоритмов, не ограничиваются исключительно задачей о рюкзаке, а проявляются также в некоторых других ситуациях. Поэтому для обсуждения результатов подобного типа полезно иметь общую терминологию. Назовем аппроксимационной схемой для оптимизационной задачи П алгоритм А, который, начиная работать на входе, состоящем из двух объектов — индивидуальной задачи leDn и “желаемой точности" е > О, выдает такое допустимое решение ее Sn(Z), что
^леЮ^1+в.
Здесь термин “схема" используется по той причине, что в действительности А представляет собой набор приближенных алгоритмов решения задачи П, по одному для каждого значения е > 0.
Приближенная схема А называется приближенной схемой с полиномиальным временем работы (или просто приближенной полиномиальной схемой), если для каждого е > 0 соответствующий алгоритм Ае имеет полиномиальную временную сложность. Приближенная схема А называется вполне полиномиальной приближенной схемой, если ее временная сложность ограничена полиномом от Length [/] и 1/е. Таким образом, последовательность алгоритмов, предложенная Сахни [464], представляет собой полиномиальную приближенную схему для задачи о рюкзаке, однако она не является вполне полиномиальной приближенной схемой. Последовательность алгоритмов Ибарры и Кима [248] представляет собой вполне полиномиальную приближенную схему для этой задачи.
Некоторые улучшения приближенной схемы Ибарры и Кима обсуждаются в работе [329]. Аналогичные приближенные схемы для задач, похожих на задачу о рюкзаке, а также для некоторых задач из теории расписаний можно найти в работах [465] и [221]. Основная идея всех этих приближенных схем аналогична описанной выше: в качестве основы схемы берется псевдополиномиальный алгоритм, затем применяются методы округления и масштабирования для того, чтобы за счет ограниченного уменьшения точности значительно уменьшить время работы алгоритма.
Вполне полиномиальные приближенные схемы во многих отношениях — это лучшее, на что можно рассчитывать при решении NP-трудных задач оптимизации. Если Р #= NP, то для решения такой задачи, как нам известно, не удается построить приближенного полиномиального алгоритма А, для которого Ra = 1. Однако поскольку R” — величина, определяемая асимптотически, то вполне возможно существование полиномиального алгоритма с ^л = 1. Например, Липтон и Тарьян [354] указали приближенный полиномиальный алгоритм А для отыскания максимальных независимых множеств в планарных графах (эта подзадача на плоских графах остается NP-трудной) с оценкой отклонения от оптимума
| Л (7) - ОРТ (/) | < О (1/Vloglog ОРТ (7)) • ОРТ (7).
Другая возможность достичь отношения Ra = 1 состоит в том, чтобы ограничить величину |Л (7) — ОРТ (7) | константой, не зависящей от 7. Например, для задачи упаковки можно было бы попытаться получить такой приближенный полиномиальный алгоритм, что А (7) ^ ОРТ (7) 4- 1 для всех индивидуальных задач 7. Хотя для задачи об упаковке такой алгоритм не известен, Горовитц и Сахни [222] показали, что его можно построить для NP-трудной задачи об упаковке максимально возможного числа предметов в два контейнера. Подобных результатов о разности |Л(7) — ОРТ(7) ] для NP-трудных задач известно немного, однако несколько задач, для решения которых не известно полиномиального алгоритма, удается приблизить подобным образом; см. [504, 286, 285].
ПРИМЕНЕНИЕ ТЕОРИИ NP-ПОЛНОТЫК ОТЫСКАНИЮ ПРИБЛИЖЕННЫХ РЕШЕНИЙ
До настоящего времени мы не привели никаких аргументов в пользу того, что выявленные различия в возможности приближенного решения NP-трудных задач имеют объективные причины, а не являются просто результатом нашего неуме-
ния находить хорошие приближенные алгоритмы. В настоящем разделе будет показано, что некоторые из этих различий в действительности — неотъемлемая черта самих задач и что теорией NP-полноты можно воспользоваться для того, чтобы очертить границы возможностей приближенного решения конкретной задачи.
Для оптимизационной задачи П назовем асимптотически наилучшей достижимой относительной погрешностью величину
г для решения задачи П существует такой /?min (П) = inf < г ^ 1: приближенный полиномиальный алго-
I ритм А, что Ra = г.
На основе результатов, изложенных в предыдущем разделе, можно предположить, что существуют NP-трудные задачи, для которых /?min(II) = oo, существуют NP-трудные задачи, для которых 1 < /?м!м(П) < оо, а также NP-трудные задачи, для которых /?min(H)= 1. Если реализуется последняя возможность, то можно выделить следующие важные подслучаи: П может быть решена (1) полиномиальной приближенной схемой, (2) вполне полиномиальной приближенной схемой, (3) приближенным полиномиальным алгоритмом А, для которого Ra = 1, и (4) приближенным полиномиальным алгоритмом, А, для которого при некотором фиксированном К выполнено неравенство |Д(/)— ОРТ(/)|^/С Конечно, возможны и другие типы оценок отклонения от оптимума, но перечисленные четыре типа оценок в настоящее время наиболее изучены, и в дальнейшем мы ограничимся только ими.
При поиске доказательства того, что для конкретной задачи некоторые из перечисленных возможностей не могут быть реализованы, мы, как обычно, наталкиваемся на то обстоятельство, что пока не известно, совпадают ли классы Р и NP. Поэтому по-прежнему остается возможным, что все NP-эквнва- лентные задачи поддаются решению точно за полиномиальное время (все обсуждавшиеся до сих пор оптимизационные задачи являются как NP-легкими, так и NP-трудными). По этой причине мы опять ограничимся условными результатами, доказывая, что если Р =# NP, то задача П не может быть решена приближенным полиномиальным алгоритмом определенного типа.
Вначале рассмотрим одну из наиболее естественных оценок отклонения от оптимума, а именно результат вида “для всех индивидуальных задач/ имеет место оценка | А (/) — ОРТ(7) |
К, где К — константа”. Пример задачи, для которой такая оценка исключается, дает нам задача о рюкзаке; ее оптимизационный вариант был определен в предыдущем разделе.
Теорема 6.6. Если Р =# NP, то не существует полиномиального приближенного алгоритма А для решения задачи о рюкзаке с оценкой
|Д(/)- ОРТ (Z)|<K,
где К — некоторая фиксированная константа.
Доказательство. Предположим противное, т. е. что А — алгоритм, обладающий этим свойством (не ограничивая общности, можно предполагать, что К — положительное целое число). Покажем, что алгоритм А можно применить для точного решения задачи о рюкзаке за полиномиальное время, что противоречит предположению Р =# NP. Соответствующая процедура очень проста. Если задана любая индивидуальная задача о рюкзаке /, построим по / новую индивидуальную задачу Г, заменяя стоимость и(ц) каждого предмета величиной (К + 1)о(ы), и применим к задаче / алгоритм А. Очевидно, что все это можно осуществить за полиномиальное время. Более того, допустимые решения задачи / оказываются точно такими же, как и у задачи I, а величина решения задачи Г ровно в К + 1 раз больше величины соответствующего решения задачи /. Поскольку величина любого решения задачи I— целое кратное величины К+1, то из соотношения ]Л(/')— ОРТ(/)]^К немедленно следует, что |Л(7')— ОРТ(г)| = 0 и, следовательно,
| А' {1} - ОРТ (Z) | = | Л (Г) - ОРТ (/') WK + 1) = О,
где А* обозначает описанный выше алгоритм. Таким образом, допустимое решение, конструируемое алгоритмом А', обязательно будет оптимальным, так что А' — полиномиальный оптимизационный алгоритм решения задачи о рюкзаке, что противоречит предположению Р += NP. ■
Единственное свойство, использовавшееся в этом доказательстве, заключается в том, что величины всех решений можно умножить на произвольную константу и; при этом множество допустимых решений не изменится. Поскольку это свойство выполняется и для многих других задач, например задачи о коммивояжере (с неравенством треугольника), то легко видеть, что доказательства этого типа широко применимы. Менее очевидно, что эта же идея применима к решению задач совершенно иной природы. Рассмотрим, например, задачу о максимальном независимом множестве. В этой задаче нет чисел, которые можно было бы умножить, поэтому “умножим” весь граф целиком!
Теорема 6.7. Если Р += NP, то не существует приближенного полиномиального алгоритма для решения задачи о максималь-
ном независимом множестве с оценкой
I А(6) — ОРТ(G)КК
для некоторой фиксированной константы К.
Доказательство. Предположим, что А— приближенный алгоритм, обладающий этим свойством, и опять предположим, что К — положительное целое число. Как и в предыдущем доказательстве, покажем, что А можно применить для построения полиномиального оптимизационного алгоритма, что противоречит предположению Р ^ NP. Пусть граф G определяет индивидуальную задачу о вершинном покрытии. Процедура заключается в построении нового графа О', состоящего из К + 1 экземпляров графа G. Нетрудно видеть, что OPT(G') = (К + l)OPT(G). Более того, для графа G можно построить независимое множество, состоящее по крайней мере из Г А (О')/(К + 1) 1 вершин. Для этого достаточно посмотреть, сколько вершин алгоритм А выбирает из каждого экземпляра графа О, и среди этих подмножеств взять подмножество максимальной мощности. Поскольку
i А (61 - ОРТ (О') | -1 А (О') - (К + 1) ОРТ (О) | < К,
то независимое множество для О будет содержать в точности ОРТ(6) вершин. Следовательно, приведенная выше процедура— оптимизационный алгоритм для решения задачи о максимальном независимом множестве. Этот алгоритм полиномиальный по времени, так как К — константа, не зависящая от О. ■
В качестве упражнения читатель может попытаться воспользоваться этим подходом, чтобы доказать аналогичный результат для задачи отыскания минимального покрывающего множества — оптимизационного аналога задачи МИНИМАЛЬНОЕ ПОКРЫТИЕ, определенной в разд. 3.2.1.
Прежде чем от результатов о разности вернуться к результатам об относительной погрешности, отметим, что возможны результаты промежуточного типа. Несколько видоизменив технику, примененную в доказательстве теоремы 6.7, для задачи о максимальном независимом множестве можно показать, чго каковы бы ни были К и е > 0, не существует полиномиального приближенного алгоритма с оценкой
| A (О) - ОРТ (G) |< К • ОРТ (О)' ~е
(если P^NP). Аналогичные результаты для этой и других задач получены в работах [402] и [309]. Заметим, однако, что, как видно из результатов Липтона и Тарьяна [354], упомянутых в конце предыдущего раздела,, результаты этого типа не
исключают возможности существования полиномиального приближенного алгоритма с погрешностью /?" = 1. Единственный известный способ доказательства того, что не существует полиномиального приближенного алгоритма А с асимптотической погрешностью R” = 1 (если Р =# NP), состоит в доказательстве того, что из Р =/= NP следует /?min(II)> 1, т. е. принципиально более сильное утверждение. Поскольку такие доказательства удобнее считать доказательством нижней оценки для величины /?м1м(П) (в случае когда 1 </?мгм(П) < сю), то мы временно отложим их обсуждение; вместо этого изучим вопрос о возможности решения задачи П вполне полиномиальной приближенной схемой.
Напомним, что в предыдущей главе было сказано, что все известные вполне полиномиальные приближенные схемы для решения NP-трудных задач имеют источником псевдополино- миальные оптимизационные алгоритмы. В связи с этим не удивительно, что сильная NP-полнота оказывается связанной с существованием таких схем. В действительности взаимосвязь псевдополиномиальных алгоритмов с вполне полиномиальными приближенными схемами носит двусторонний характер. Пусть П — оптимизационная задача, a Length[/] и Мах[/]— две, связанные с ней меры индивидуальных задач (см. разд. 4.2), и предположим, что величины всех решений — положительные целые числа. Следующий результат доказан в работах Гэри и Джонсона [151, 152].
Теорема 6.8. Если существует такой полином q, зависящий от двух переменных, что для любой индивидуальной задачи I е Dn выполнено соотношение
ОРТ (/) < q (Length [/], Max [/]),то из существования вполне полиномиальной приближеннойсхемы для решения задачи П следует существование псевдопо-линомиального оптимизационного алгоритма решения задачи И.Доказательство. Предположим, что А — подобная схема длярешения задачи П. Соответствующий оптимизационный алго-ритм А' работает следующим образом. Пусть / — некотораяиндивидуальная задача, положим
е = ^(Length [/], Мах [/])”'
и применим к задаче / схему А при заданной точности е. За время, ограниченное полиномом от Length[/], и
q (Length [/[, Мах[/])
и следовательно, за псевдополиномиальное время, алгоритм А находит допустимое решение задачи / с погрешностью
/?лЕ(/)С1+е.
Предположим, что П — задача максимизации (аналогичные рассуждения применимы и в том случае, когда П — задача минимизации). Тогда, в силу определения е и предположения о q, имеем
ОРТ(/)<(1+е)ЛЕ(/) или
ОРТ(7) - Ле(/)<е • ОРТ(Z) < 1.
Однако, поскольку значения всех решений — целые числа, отсюда вытекает, что Ле(/) = ОРТ(7) и, следовательно, А* за псевдополиномиальное время находит оптимальное решение, что и требовалось доказать. ■
В качестве следствия получаем метод доказательства невозможности существования вполне полиномиальной оптимизационной схемы для решения задачи П.
Следствие. Пусть П — оптимизационная задача с целочисленными величинами решений, удовлетворяющая предположениям теоремы 6.8. Если П является ^P-трудной в сильном смысле задачей, то (при Р #= NP) П не может быть решена вполне полиномиальной приближенной схемой.
Два основных условия следствия заключаются в том, что величины решений задачи П — не слишком большие целые числа и что П NP-трудна в сильном смысле. Эти условия выполняются для многих представляющих интерес задач, включая, например, задачи об упаковке, раскраске графа, о максимальном независимом множестве и минимальном вершинном покрытии. Таким образом, мы владеем общим весьма сильным методом доказательства того, что не существует вполне полиномиальных приближенных схем.
Несколько труднее доказывать невозможность существования приближенных полиномиальных, но не вполне полиномиальных схем. Простейший способ заключается, по-видимому, просто в доказательстве того, что если Р ^ NP, то для некоторого г>\ не существует полиномиального приближенного алгоритма А решения задачи П с погрешностью RA < г. Задача о раскраске графа представляет собой пример задачи, для которой существование такого г очевидно. В самом деле.
полиномиальный алгоритм А для решения задачи о раскраске графа с погрешностью Ra < 4/3 должен был бы раскрашивать 3-раскрашиваемый граф не более чем в 3 цвета и, следовательно, решал бы NP-полную задачу РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА за полиномиальное время. Таким образом, если P=/=NP, то приближенного алгоритма с такой погрешностью не существует и, следовательно, не существует полиномиальной приближенной схемы для задачи о раскраске графа. Изложенную выше идею можно сформулировать в виде несложной теоремы.
Теорема 6.9. Пусть П — задача минимизации, величины всех решений которой — неотрицательные целые числа. Предположим, что для некоторого фиксированного КеТл задача распознавания: “Задана индивидуальная задача /е Dn, верно ли, что ОРТ (/) < КТ является NP-трудной. Тогда если Р =/= NP, то не существует полиномиального приближенного алгоритма А решения задачи П с погрешностью RA < 1 + \/К и П не может быть решена полиномиальной приближенной схемой.
Конечно, для задач максимизации имеет место аналогичный результат. Теорема 6.9 применима также к задаче об упаковке (при К = 2), задаче минимизации срока выполнения заданий, возникающей из задачи РАСПИСАНИЕ С ОТНОШЕНИЕМ ПРЕДШЕСТВОВАНИЯ из разд. 4.1 (при К=3), см. [336], и множеству других задач. Однако имеется целый ряд задач, не содержащих NP-трудных подзадач нужного вида, и для них вопрос о существовании полиномиальной приближенной схемы остается открытым.
Вернемся теперь к вопросу об отыскании нижней оценки величины /?мш(П). Заметим, что теорема 6.9 не дает возможности получить такую оценку, поскольку в ее формулировке участвует только Ra, а наилучшая достижимая нижняя оценка величины Ra не обязательно справедлива для асимптотической погрешности /?”. Это можно пояснить на примере задачи об упаковке. Теорема 6.9 утверждает, что если Р =# NP, то для решения задачи об упаковке не может существовать полиномиального приближенного алгоритма А с погрешностью RA < <3/2. С другой стороны, как мы уже видели, /?”рп=11/9< < 3/2. На самом деле, даже предполагая, что Р ^ NP, можно лишь утверждать, что в задаче об упаковке имеет место неравенство 1 ^/?мш(П)< 11/9.
Тем не менее для некоторых задач оценки, получаемые с помощью теоремы 6.9, могут быть так усилены, что они окажутся справедливыми и для асимптотической погрешности. Поясним это на задаче о раскраске графов.
Теорема 6.10. Если Р #= NP, то для решения задачи о раскраске графов не существует полиномиального приближенного алгоритма А с асимптотической погрешностью R” < 4/3.
Доказательство. Покажем, что с помощью любого такого алгоритма А можно было бы получить полиномиальный алгоритм для задачи РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА, что противоречит предположению Р 5<t NP. В конструкции используется понятие “композиция” двух графов. Пусть 61 = = (Vi,Ei) и 6г = (У2, £2)— два графа. Композицией G = = 61(62] этих графов называется граф с множеством вершин V = Vi X Уг и множеством ребер
р ( г/ X , XX ЛИб° (“» Vl) S £Ь
Е = < {(ub u2), (уь г2)}:,г 1 с.
(либо и. = У] И {«2» У2} G ^2.
Пример композиции двух графов представлен на рис. 6.6. Композицию 6] [62] удобно представлять себе как результат замены каждой вершины графа 61 экземпляром графа 62 с последующей заменой каждого ребра графа 61 полным двудольным подграфом, соединяющим каждую вершину экземпляра, соответствующего одной вершине ребра, с каждой вершиной экземпляра, соответствующего второй вершине этого ребра.
Рассмотрим следующий алгоритм для задачи РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА. Поскольку R” < 4/3, то существует такое неотрицательное целое число К е Z+, что для всех графов 6 с ОРТ(6)^К выполняется соотношение А (6)(4/3)
0РТ(6). Пусть 6 = (V, Е)— произвольная индивидуальная задача РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА. Пусть G' — полный граф на К вершинах. Положим 6* = = 6'[6]. Заметим, что G* — это в точности К изоморфных экземпляров графа 6, причем любые две вершины из различных экземпляров соединены ребром, поэтому
ОРТ (6е) = А - ОРТ (6) Ж.
Более того, размер графа G* и время, необходимое для его построения (поскольку К не зависит от G), ограничены полиномами от размера графа G. Поэтому время работы алгоритма А на графе G* также будет ограничено полиномом от размера графа G. Однако если G 3-раскрашиваем, то справедливы неравенства
A (G*) < (4/3) ■ ОРТ (G*) < (4/3) • ЗК = 4К.
С другой стороны, если G нераскрашиваем в 3 цвета, то
A(G*)>OPT(G*)>4/<.
Следовательно, G можно раскрасить в три цвета тогда и только тогда, когда A(G*)<4K. Поэтому процедура, состоящая в построении графа G* и применении к нему алгоритма А, даег полиномиальный алгоритм для решения задачи РАСКРАШИ- ВАЕМОСТЬ ГРАФА В 3 ЦВЕТА. Это приводит к противоречию и завершает доказательство теоремы. В
Аналогичное доказательство оценки /?м1м(П)^4/3 можно получить для упоминавшейся выше задачи о построении расписания с отношением предшествования. Действительно, в то время как для задачи о раскраске графов не известен полиномиальный приближенный алгоритм с оценкой R” < ос, для задачи о построении расписания дело обстоит гораздо лучше. Для ее решения полиномиальный приближенный алгоритм А с оценкой погрешности R” = 2 был предложен Грэхемом [185], и поэтому для этой задачи величина /?мш(П) удовлетворяет неравенствам 4/3 ^/?min (П) ^ 2 (в предположении P=#NP).
Для задачи о раскраске графов нижняя оценка для величины Рмж(П), равная 4/3, может быть существенно улучшена методом “увеличения” погрешности. Имеет место следующий результат, доказанный в [146].
Теорема 6.11. Если Р #= NP, то для задачи о раскраске графов не существует полиномиального приближенного алгоритма А с погрешностью Ra < 2.
Доказательство. Предположим, что такой полиномиальный приближенный алгоритм А существует. Как и при доказательстве теоремы 6.10, покажем, что с помощью алгоритма А можно решить NP-полную задачу РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА за полиномиальное время. Для этого опять воспользуемся операцией композиции графов. Однако нам понадобится дополнительное понятие “мультираскраски’’ графа: (k, m^-мультираскраской графа G=(V,E) называется функция f, сопоставляющая каждой вершине veV множество
f(y)s{l,2, .... ^}, такая, что |/(у) | = m для всех вершин о, и если {и, у}е£, то /(и) и f(y) не содержат общих элементов. На рис. 6.7 представлен пример (5,2)-мультираскраски, tn-хроматическим числом графа G, XmkGV называется наименьшее целое число А^1, такое, что существует (А, т)-мультираскраска графа G. Заметим, что (А, 1)-мультираскраска соответствует обычной раскраске графа, а величина %i(G) совпадает с OPT(G).
(1,2}(1,2}(1,4}(2,5)(1,4}(2,5)При доказательстве данной теоремы графы Нп, п^б, определяемые ниже, играют ту же роль, что и полные графы при доказательстве теоремы 6.10. Граф НП=ЦУп> Еп) имеет п(п—
(1,2}
(1,2}
(1,4}(2,5)
(1,4}(2,5)
Рис. 6.7. (5.2)-мультираскрашивание пятиугольника Сь; каждая вершина о помечена соответствующим множеством «цветов» / (и). Можно показать, что Х=(С6)=5.
— 1)(п — 2)/6 вершин, соответствующих различным 3-х элементным подмножествам множества {1,2, .... п}. Причем две вершины соединены ребром из Еп тогда и только тогда, когда соответствующие подмножества не пересекаются. Важнейшее свойство этих графов, как доказано в работе [146], заключается в том, что при п ^ 6 выполнены соотношения
XaW — n и гл(Нп) = 2п — 4.
Это свойство позволяет использовать графы в качестве “увеличителя погрешности’’.
Поскольку R” < 2, то существуют такие в > 0 и К е Z+, что для всех графов G с OPT(G)^ К выполнено свойство
Л (G)^ (2-е) ОРТ (G).
Пусть ^^max{6, /<}—такое целое число, что 2N— 4> > (2 — e)N. Рассмотрим следующий алгоритм проверки рас- крашиваемости графа в 3 цвета..
Пусть G = (V, Е)—произвольный граф и нужно выяснить, можно ли его раскрасить в 3 цвета. Вначале построим граф- композицию G* = Hh[G] (это можно сделать за полиномиальное время, поскольку N не зависит от G). Затем применим к графу G* алгоритм А, что опять-таки потребует времени, ограниченного полиномом от размера графа G. Мы утверждаем, что граф G раскрашиваем в 3 цвета тогда и только тогда, когда A(G*)< 2N — 4.
Предположим, что граф G раскрашиваем в 3 цвета. Тогда граф G* можно раскрасить, используя только N цветов. Это
делается следующим образом. Фиксируем некоторое (^, 3)- мультираскрашивание графа HN (оно существует потому, что Хз(#и) = Л0 и раскрасим каждый экземпляр графа G, содержащийся в G*, в три цвета, соответствующих вершине Иц при выбранном мультираскрашивании. Никакие две вершины различных экземпляров графа G, соединенные в G* ребром, не будут окрашены в один цвет, поскольку соответствующие вершины графа HN соединены ребром, и, следовательно, соответствующие им при мультираскрашивании множества не пересекаются. Таким образом, мы получаем раскраску графа G* в N цветов. Из определений N и е следует, что если G раскрашивается в 3 цвета, то
Л (G*)< (2 - е) ОРТ (G*)< (2 - е) yV < 2У - 4.
С другой стороны, предположим, что G нельзя раскрасить в 3 цвета. Тогда при любой раскраске графа G* каждый экземпляр графа G должен содержать вершины не менее четырех разных цветов. По определению графа G*, любые два экземпляра графа G, соответствующие соседним вершинам графа HN, не должны содержать вершин одинакового цвета. Поэтому любое раскрашивание графа G* в k цветов индуцирует (А, 4)-мультираскрашивание графа Иц, получаемое посредством сопоставления каждой вершине и е Vn любой четверки цветов, используемых в соответствующем экземпляре графа G. Однако поскольку х<(//^)=2^— 4, то отсюда следует, что А ^ 2^ — 4, т. е. G* не может быть раскрашен менее чем в 2^ — 4 цвета. Отсюда вытекает, что если G нельзя раскрасить в 3 цвета, то
A(G*) > ОРТ (G*) >2^-4.
Таким образом, граф G раскрашиваем в 3 цвета тогда и только тогда,когда A(G*)<2W— 4, и построенный выше алгоритм является полиномиальным. Это противоречит предположению, что Р ^ NP, и теорема доказана. ■
В качестве следствия из теоремы 6.11 получаем, что если Р #= NP, то для задачи о раскраске графов 2 ^ /?мш(П) ^ оо. Более сильных нижних оценок в настоящее время не известно, хотя и существует предположение, что /?min (П) = оо.
Отметим, что все приведенные ранее нижние оценки величины /?мш(П) решающим образом зависели от того факта, что у задачи П имелась NP-трудная подзадача вида: “Задано I е Оп, верно ли, что ОРТ(/)^/(?” (или “Задано /еОп, верно ли, что ОРТ(/) ^ К?”) — при некотором фиксированном числе К. Если П не обладает этим свойством, то применявшаяся выше схема доказательства не сработает. Тем не менее
даже в этом случае некоторые результаты удается сохранить. Вернемся еще раз к задаче о максимальном независимом множестве. Для этой задачи не известен полиномиальный приближенный алгоритм А с асимптотической погрешностью R” < со» но при любом фиксированном значении К подзадача: “Задан граф G, верно ли, что G содержит независимое множество мощности не менее Л?”— разрешима за полиномиальное время. Докажем следующий результат.
Теорема 6.12. Имеет место одна из двух следующих возможностей. Либо задачу о максимальном независимом множестве можно решить полиномиальной приближенной схемой, либо для этой задачи не существует полиномиального приближенного алгоритма Л с Ra < оо.
Доказательство. Предположим, что Л—такой полиномиальный приближенный алгоритм решения этой задачи, что/?” < ею. Поскольку можно считать, что А всегда находит независимое множество мощности не менее 1, то Ra < оо. Пусть Ra = г. Построим приближенную схему следующим образом. Для любого в > О обозначим через Ne наименьшее целое число N, для которого выполнено неравенство rVN < 1 -}- в. (Поскольку в дальнейших рассуждениях е фиксировано, то для краткости индекс у Ме будем опускать.) Для произвольного графа G — = (V,E) укажем способ отыскания независимого множества мощности М OPT(G)/(1 + в) за время, ограниченное полиномом от размера графа G.
Вначале определим по индукции граф GN = (VN. Ен) следующим образом: G\ = G, а для 1 •< i ^ N положим Gt = = G,_i[G]. Поскольку N зависит только от в, то при фиксированном в граф Gn можно построить за полиномиальное время. Более того, нетрудно видеть, что OPT(G<) = (OPT(G))', 1< < i ^ N, и по любому независимому подмножеству Sw в GN за полиномиальное время можно построить такое независимое множество S в G, что
1$1>Г|$„ |W“|.
Рассмотрим результат применения алгоритма А к графу С». Поскольку Ra = г, то получаемое для графа ON независимое множество Sn имеет мощность
I 5„ | > ОРТ дат = (ОРТ №/r.
Используя это множество, для графа G можно построить независимое множество S, такое, что
(s о г ((орт да/гу^ч > opt wvN > opt (С)/( i + в)
(где последнее неравенство получено согласно определению числа N). При фиксированном е описанная выше процедура построения множества G может быть выполнена за полиномиальное время. Таким образом, на основе алгоритма А мы построили полиномиальную приближенную схему решения задачи о максимальном независимом множестве. ■
В качестве следствия теоремы 6.12 получается следующий результат: для задачи о максимальном независимом множестве имеются только две возможности: либо /?MiN(n) = 1, либо /?min (П) = <х>; т. е. промежуточное значение величины /?м1м(П) невозможно. Таким образом, если бы удалось получить хоть какой-нибудь полиномиальный алгоритм с асимптотической погрешностью, меньшей оо, то можно было бы построить полиномиальный алгоритм с любой, как угодно близкой к I асимптотической погрешностью. С другой стороны, если бы для некоторого е > 0 нам удалось доказать, что не существует полиномиального приближенного алгоритма с погрешностью Ra < 1 + + е, то отсюда вытекало бы, что у всех полиномиальных приближенных алгоритмов Ra = Ra = о°. Хотя мы и предполагаем, что /?м!м(П) = оо, нам не известны никакие перспективные подходы к доказательству этого утверждения.
Таким образом, мы приходим к последнему типу отрицательных результатов. Для некоторых задач П все-таки удается доказать, что Ям1м(П)=оо (в предположении P=/=NP). Эти доказательства очень похожи на уже рассмотренные доказательства нижних оценок, отличие лишь в том, что теперь удается “увеличить погрешность" в гораздо большей степени. В качестве примера рассмотрим опять задачу о коммивояжере, не предполагая на сей раз, что для расстояний между городами выполнено неравенство треугольника. Следующая теорема доказана в работе [469].
Теорема 6.13. Если Р #= NP, то для задачи о коммивояжере не существует приближенного полиномиального алгоритма с асимптотической погрешностью R” < оо.
Доказательство. Предположим, что приближенный алгоритм, удовлетворяющий перечисленным в условии теоремы свойствам, существует. Тогда для некоторого положительного целого числа К существовал бы полиномиальный алгоритм А с погрешностью RA ^ К. Покажем, используя вариант сведения ГЦ <х КМ из гл. 2, как с помощью алгоритма А может быть решена NP-трудная задача ГАМИЛЬТОНОВ ЦИКЛ. Пусть G = (V, Е)— произвольный граф. Построим соответствующую индивидуальную .задачу о коммивояжере /. Пусть
V— множество городов, и пусть расстояние между городами и и и равно
d (и, о)=d (и, о)=1, /С-I И |1, /С-I И |если {м, v} е Е; в противном случае.
d (и, о)=
d (и, о)=
1, /С-I И |
1, /С-I И |
Ясно, что построить индивидуальную задачу / и применить к ней алгоритм А можно за полиномиальное время (поскольку К не зависит от G). Однако если в G есть гамильтонов цикл, го ОРТ(/) = |У|, а если в G нет гамильтонова цикла, то ОРТ(/)>/(• | У|. Таким образом, воспользовавшись оценкой погрешности алгоритма А, получим, что 4(/)^/(-|У| тогда и только тогда, когда в G имеется гамильтонов цикл. Следовательно, из существования полиномиального приближенного алгоритма А с погрешностью Ra <. оо следует, что КОММИВОЯЖЕР лежит в классе Р, что противоречит предположению Р + NP. ■
Эта теорема указывает на то, что неравенство треугольника существенно для справедливости полученных в предыдущем разделе положительных результатов, относящихся к задаче о коммивояжере. Если неравенство треугольника выполнено, то имеем оценку /?min (П) =^ 3/2, а без неравенства треугольника /?min(II) = oo (при условии P#=NP). Некоторые результаты относительно других задач, аналогичные теореме 6.13, можно найти в работах [469] и [459].
Таким образом, относительно любого из возможных типов поведения приближенных алгоритмов, перечисленных в разд. 6.1, можно доказать негативные результаты, состоящие в том, что если Р Ф NP, то для конкретной задачи П не существует приближенного алгоритма с тем или иным поведением. Это наводит на мысль о том, что в предположении различия классов Р и NP оптимизационные задачи можно классифицировать согласно значению величины /?min(II) (а если #м!м(П) = 1, со возможна еще более тонкая классификация). На рис. 6.8 представлены известные факты о такой классификации для некоторых задач, обсуждавшихся выше.
В заключение напомним читателю, что, несмотря на то что мы выбрали для изучения особенно характерные виды погрешностей, возможны также и другие виды погрешностей, рассмотренные в некоторых работах. Кроме того, эта область исследований продолжает развиваться, и в ней постоянно получают новые, как положительные, так и отрицательные результаты. Дальнейшую информацию можно найти в работе Гэри и Джонсона [147], где приведена аннотированная библиография работ в этой области, опубликованных к середине 1976 г.
7
£ 11
- h
G | 8
5 IB
s I §
rl 4, «11
8 V
c ^z.
S OS V
8 ii g
z
S
Рюкзак
^пакобка б контейнеры
Минимальное вершинное покрытие
Максимальное независимое множество
Коммивояжер с неравенством треугольника
Раскраска графов
Коммивояжер
Расписание с отношением предшествования
Рис. 6.8. Классификация нескольких оптимизационных задач относительно значений величины ^min (П). При /?MIN (П) = 1 имеются различные возможности. Светлые прямоугольники указывают на открытые в настоящее время вопросы. Затененные прямоугольники указывают на то, что соответствующая возможность не имеет места либо потому, что это можно доказать при условии Р ф NP, либо потому, что уже известен лучший алгоритм.
ОЦЕНКИ ПОГРЕШНОСТИ И ПОВЕДЕНИЕ ■ АЛГОРИТМОВ «НА ПРАКТИКЕ»
Нетрудно понять причину, в силу которой очень желательно иметь такие оценки погрешностей, какие обсуждались выше для эвристических алгоритмов. Даже если конкретная оценка погрешности и не столь сильна, как хотелось бы (решение, отличающееся от оптимального на 50%,часто не может считаться удовлетворительным), тем не менее весьма разумно начать решение задачи с простого алгоритма, имеющего такую оценку погрешности, а затем улучшить ее, пользуясь более совершенными эвристиками и методами локальной оптимизации. Кроме того, некоторые доказанные оценки погрешности достаточно хороши и могут быть достигнуты без чрезмерных затрат машинного времени. В частности, весьма удовлетворительными могут оказаться вполне полиномиальные приближенные схемы при значениях е, меняющихся в разумных пределах. Более того, поскольку погрешности оцениваются в расчете на худший случай, то на практике приближенные алгоритмы ведут себя гораздо лучше, чем можно было бы предположить на основе оценки их погрешности.
Подчеркнем еще раз, что это имеет место “на практике”. Наибольший интерес для нас представляет то, в какой степени наш алгоритм “на практике" будет приближать оптимальное решение. В качестве альтернативы к анализу погрешности “в худшем случае" можно было бы попытаться оценить погрешность “в среднем". Такой анализ в действительности имеет богатую историю и до .недавнего времени осуществлялся преимущественно при помощи эмпирических методов.
Часто изучение поведения алгоритмов “в среднем" сводилось просто к формированию множества предположительно “типичных” индивидуальных задач, прогонке соперничающих алгоритмов на этом множестве и сравнению полученных результатов. Конечно, полезность экспериментов такого рода зависела от того, насколько “типична" рассматриваемая выборка индивидуальных задач, кроме того, не всегда достаточно просто образовать подходящий набор индивидуальных задач.
Если можно считать, что индивидуальные задачи, предположительно встречающиеся на практике, подчиняются некоторому конкретному распределению вероятностей, то можно воспользоваться более совершенными методами. В этом случае может оказаться доступным метод построения “случайных” индивидуальных задач, подчиняющихся заданному распределению вероятностей. На построенной таким образом выборке затем можно исследовать поведение алгоритмов.
Некоторые эксперименты, выполненные в этом направлении, подтверждают сделанное выше замечание, что поведение алгоритма в среднем гораздо лучше, чем поведение в худшем случае. В работе Джонсона [262] алгоритмы “в первый подходящий"’ и в “первый подходящий в порядке убывания” для решения задачи об упаковке анализировались методом Монте-Карло при самых разных предположениях о распределении размеров предметов, причем в качестве оценки оптимума ОРТ(/) использовалась сумма размеров предметов. В результате исследований было выяснено, что погрешность /?ff(/) в среднем равна 1.07, в то время как в худшем случае она равна 1.70, а погрешность /?ffd(/) в среднем равна 1.02, в то время как в худшем случае она равна 1.22. (Интересно отметить, что взаимное ранжирование этих алгоритмов “в среднем случае” почти такое же, как “в худшем случае’’.) В работе Сахни [466] было установлено, что одна конкретная вполне полиномиальная приближенная схема для решения задачи об упорядочении с директивными сроками работает с погрешностью всего 1,005 даже в том случае, когда е выбрано так, чтобы гарантировать погрешность 1.10, а алгоритм в действительности почти всегда находит оптимальное решение. Однако подобный сравнительный анализ проведен лишь для очень небольшого числа алгоритмов, и в настоящее время, вероятно, неразумно делать решительные и поспешные выводы.
В некоторых недавних работах предложены более совершенные подходы, позволяющие доказывать теоремы об ожидаемом поведении приближенных алгоритмов при различных конкретных распределениях вероятностей. В работе [191], например, в предположении “равновероятности” в некотором смысле всех графов на п вершинах доказано, что некоторый простой алгоритм раскраски А имеет среднюю погрешность /?л(С), равную 2, хотя в худшем случае погрешность Ra(G) может быть произвольно велика. Аналогичные результаты были получены для задачи об упаковке, см. [484,541], для задачи о максимальном независимом множестве, задачи о гамильтоновом цикле и геометрических версий задач о коммивояжере и дереве Штейнера, см. [282, 283, 284, 18]. Несмотря на то что даже для простейших алгоритмов и распределений вероятностей такой анализ может оказаться весьма затруднительным, это направление представляется многообещающим и в ближайшем будущем можно ожидать появления новых результатов этого типа.
Конечно, анализ поведения алгоритмов в среднем, рассматриваемый как основа для оценки их поведения “на практике”, имеет свои недостатки. Для того чтобы вычислить среднее, необходимо в первую очередь предположить, что индивидуальные
задачи подчиняются некоторому распределению вероятностей, и довольно часто оказывается не ясно, какое распределение следует выбрать. (Интересный способ избежать этого путем применения алгоритмов, обладающих внутренней рандомизацией, обсуждается в работе [441].) Распределения вероятностей, для которых, пользуясь методами., имеющимися на сегодняшний день, можно анализировать алгоритмы, могут довольно сильно отличаться от истинных распределений, встречающихся на практике, где преобладают задачи со сложной структурой (что ведет к отклонениям, с большим трудом поддающимся формализации). На практике также распределения вероятностей могут непредсказуемым образом меняться со временем. Кроме того, результаты о погрешности в среднем ничего не говорят о работе алгоритмов на конкретных задачах, в то время как оценка погрешности в худшем случае дает по крайней мере оценку поведения алгоритмов. Поэтому, если нужно получить как можно больше информации о поведении приближенных алгоритмов на практике, вероятно, лучше всего подвергнуть их анализу всеми возможными способами как с точки зрения поведения в худшем случае, так и с точки зрения поведения в среднем.
За пределами классаNP-полных задач
В настоящей главе рассматривается несколько теоретических вопросов, связанных с теорией NP-полных задач (и возникших благодаря ей). У читателя не предполагается никаких дополнительных знаний, даже начинающий вполне может освоить основные положения этой главы и их связь с остальной теорией. Читатели, заинтересовавшиеся результатами, приведенными в настоящей главе, смогут найти более подробные сведения, включая доказательства этих результатов в статьях и книгах, указанных в списке литературы. Следуя принятому ранее стилю изложения, мы будем определять новые понятия в терминах языков и машин Тьюринга и обсуждать их неформально в терминах массовых задач и алгоритмов.
В разд. 7.1 с точки зрения, изложенной в гл. 2, рассматриваются известные результаты и гипотезы о структуре класса NP и обсуждается существование в классе NP труднорешаемых задач, не являющихся NP-полными. В разд. 7.2—7.4 обсуждаются вопросы “полноты” для классов задач, которые представляются более трудными, чем NP-полные задачи, однако труднорешаемость этих задач также еще предстоит доказать. В разд. 7.2, в частности, рассматривается “полиномиальная иерархия", а в разд. 7.3 вводится понятие КР-полноты для задач перечисления. В разд. 7.4 на основе понятия полноты с полиномиальной памятью начинается обсуждение взаимосвязи ограничений по времени и по памяти. В разд. 7.5 это обсуждение продолжается, при этом вводится понятие “сводимость с логарифмической памятью" и показывается, как оно может быть использовано для исследования ограничений по памяти в задачах класса Р. Наконец, в разд. 7.6 мы вновь возвращаемся к фундаментальной проблеме “верно ли, что Р = NP?”. Хотя мы считаем, что эти классы различны, но, по-видимому, имеются серьезные препятствия для доказательства этого утверждения современными методами, и мы обсуждаем возможные объяснения этого факта.
СТРУКТУРА КЛАССА NP
В гл. 2 уже приводилась простая диаграмма класса NP, изображенная на рис. 7.1. Напомним, что класс NP в качестве подклассов содержит класс Р и класс NP-полных задач (сокра-
щенно NPC). В предположении Р =/= NP эти два класса не пересекаются.
результат, напом-результат, напом-Рис. 7.1. Уточненная диаграмма класса NP (в предположении, что P#=NP).Рис. 7.1. Уточненная диаграмма класса NP (в предположении, что P#=NP).Если Р =# NP, то NP не может совпадать также и с классом PUNPC. Обозначим через NPI класс NP\(P(JNPC) задач, имеющих “промежуточную" сложность (между Р и NP). То, что класс NPI не пуст (в предположении, что P=#NP), есть следствие более общего результата, доказанного Ладнером [312]. Для того чтобы сформулировать ним, что рекурсивным языком называется любой язык, который можно распознать некоторой (не обязательно полиномиальной) ДМТ-программой, останавливающейся на всех входах.
результат, напом-
результат, напом-
Рис. 7.1. Уточненная диаграмма класса NP (в предположении, что P#=NP).
Рис. 7.1. Уточненная диаграмма класса NP (в предположении, что P#=NP).
Теорема 7.1. Пусть В — такой рекурсивный язык, что В^Р. Тогда существует распознаваемый за полиномиальное время язык DeP, такой, что язык А = = 5ЛВ не принадлежит Р, А ос В, но не имеет места В ос А.
Эта теорема будет применяться следующим образом. Пусть В — произвольный NP-полный язык. Если P=#NP, то В^Р,
поэтому условие теоремы выполняется. Более того, поскольку Ое Р и Be NP, то получающийся язык А принадлежит NP. Из теоремы, следовательно, вытекает, что не имеет места В ос А, так что А не может быть NP-полным, и поскольку А е еР, то Л е NPI. Рассмотрим конкретный пример. Пусть В — это NP-полная задача ГАМИЛЬТОНОВ ЦИКЛ. Тогда теорема утверждает, что существует такой класс графов, распознаваемых за полиномиальное время, что задача ГАМИЛЬТОНОВ ЦИКЛ, будучи рассмотрена на классе этих графов, не является NP-полной и не принадлежит классу Р (в предположении, что Р #= NP).
Если Р NP, то теорема 7.1 утверждает не только не- пустоту класса NPI, но также дает некоторую информацию о структуре этого класса промежуточных задач. В предположении Р #= NP класс NPI должен состоять из бесконечного семейства различных классов эквивалентности языков. Например, если В — любая задача из класса NPI, то теорема 7.1 позволяет построить задачу, которая “проще", чем В, но все еще нс принадлежит классу Р. Ладнер [312] доказал также, что если Р #= NP, то класс NPI должен содержать такие пары языков С и D, что ни С ос D ни D ос С. Таким образом, если Р ^ NP, то в классе NP относительно частичного порядка, который определяется отношением ос, должны быть несравнимые элементы.
После этих теоретических рассуждений можно задаться вопросом: существуют ли “естественные” задачи, являющиеся кандидатами на принадлежность классу NPI? В предположении Р #= NP для указания представителей этого класса может быть использована теорема 7.1, но языки, которые при этом получаются, оказываются весьма неестественными из-за сложной техники “диагонализации", применяемой для их построения. Конечно, любая “открытая" задача из класса NP, т. е. задача, для которой не доказана ни принадлежность классу Р, ни NP-полнота, может считаться кандидатом на принадлежность классу NPI. Однако некоторые открытые задачи принято считать более вероятными кандидатами, поскольку они выдержали проверку временем и им присущи некоторые свойства, видимо отличающие их от задач, NP-полнота которых уже доказана. В частности, три открытые задачи, приведенные в работе Карпа [280], остаются открытыми, и в настоящее время и их часто с различной степенью уверенности относят к задачам из класса NPI.
ИЗОМОРФИЗМ ГРАФОВ
УСЛОВИЕ. Заданы графы G = (V, Е) и G' = (V, Е').
ВОПРОС. Верно ли, что графы G и G' изоморфны, т. е. существует ли взаимно-однозначная функция f: V -V, такая, что {и, и} еЕ тогда и только тогда, когда {/(и), /(у)} еЕ'?
СОСТАВНЫЕ ЧИСЛА
УСЛОВИЕ. Задано положительное целое число К.
ВОПРОС. Существуют ли целые числа m и п; m, п > 1, такие, что К = тп?
ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ1)
УСЛОВИЕ. Заданы целочисленные векторы Г( = (и,[1], ... .... у<[п]), l^i^ т, D = (dxdm), С = (ciст), целое число В.
ВОПРОС. Существует ли такой вектор Х = (хь ..., х„) с рациональными координатами, что ViX ^ di, 1 ^ t ^ т, и ОХ ^ ^В?
Исследователи, предпринимавшие попытки доказать, что задача ИЗОМОРФИЗМ ГРАФОВ является NP-полной, отмечают, что ее структура гораздо более ограничительна, чем структура типичной NP-полной задачи, такой, например, как ИЗОМОРФИЗМ ПОДГРАФУ. Доказательства NP-полноты требуют определенной свободы действий в том смысле, что если искомая
структура X (подмножество, перестановка, расписание и т. д.) существует, то она должна существовать и тогда, когда некоторые детали рассматриваемой индивидуальной задачи локально изменяются. Например, функция / будет изоморфизмом графа Н и подграфа графа G, даже если в G добавить или исключить некоторые ребра, не принадлежащие образу отображения /.Однако если f есть изоморфизм Н и G, то любое изменение в G должно сопровождаться соответствующим изменением в Н, в противном случае / уже не будет изоморфизмом. Другими словами, доказательства NP-полноты, видимо, требуют определенной избыточности задачи, отсутствующей в задаче ИЗОМОРФИЗМ ГРАФОВ. К сожалению, отсутствие избыточности мало помогает как при построении полиномиального алгоритма для решения задачи ИЗОМОРФИЗМ ГРАФОВ, так и при доказательстве того, что эта задача лежит в классе NPI.
Аргументы в пользу того, что задачи СОСТАВНЫЕ ЧИСЛА и ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ, видимо, не являются NP-полными, имеют другой источник. Напомним, что в гл. 2 было отмечено, что из принадлежности задачи П классу NP, по-видимому, не следует, что в классе NP лежит дополнение Пс этой задачи (т. е. задача с противоположным ответом; Упс = Оп \ Уп). Определим
co-NP = {ПС: neNP}
или в терминах языков
со-NP = {2* \ U L — язык в алфавите 2 и Le NP}.
Основываясь на том, что многие задачи из класса co-NP, видимо, не принадлежат NP, вполне разумно предположить, что NP Ф co-NP. Отметим, что, хотя аргументы в пользу этого предположения близки к аргументам, приводившимся в пользу того, что Р ф NP, предположение NP Ф co-NP “сильнее", чем р ф NP. Класс Р замкнут относительно операции взятия дополнения (т. е. Р = со-Р), поэтому из того, что NP Ф co-NP, следует, что Р ф NP, хотя неравенство Р ф NP может иметь место и в том случае, когда NP = co-NP. Тем не менее следующая несложная теорема показывает, что имеется тесная связь между NP-полнотой задач СОСТАВНЫЕ ЧИСЛА и ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ и предположением, что NP Ф Ф co-NP.
Теорема, 7.2. Если существует такая NP-полная задача П, что IF е NP, то NP = co-NP.
Доказательство этой теоремы аналогично доказательству леммы 2.1 и получается непосредственно с помощью операции композиции машин Тьюринга. В предположении, что Р Ф NP
и NP =/= co-NP, теорема 7.2 дает нам новую картину класса NP и его окружения, изображенную на рис. 7.2.
В качестве следствия из теоремы 7.2 получаем, что задача П е NP, для которой IF принадлежит классу NP, не может быть NP-полной, если, конечно, NP #= co-NP. Поэтому было бы естественно ожидать, что такая задача П не является NP-полной. Однако и задача СОСТАВНЫЕ ЧИСЛА, и задача ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ обладают этим свойством.
Рис. 7.2. Картина класса NP и его непосредственных соседей в предположении, что P^6=NP и NP^=co-NP. Класс Р может совпадать, а может и не совпадать с классом NP f) co-NP.
Очевидно, что задача СОСТАВНЫЕ ЧИСЛА лежит в классе NP. Дополнительной к ней задачей будет задача ПРОСТЫЕ ЧИСЛА: “Дано положительное целое число К. Верно ли, что К — простое?” Было [434] показано, что ПРОСТЫЕ ЧИСЛА принадлежит классу NP, а именно было доказано, что для любого простого числа К имеется доказательство простоты этого числа, достаточно короткое для того, чтобы его можно было указать и проверить за время, ограниченное полиномом от log А. Аналогичным образом с помощью фундаментальной теоремы двойственности из теории линейного программирования можно доказать, что задача, дополнительная к задаче ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ, представляет собой вариант задачи линейного программирования и, значит, принадлежит классу NP.
Таким образом, если NP #= co-NP, то ни задача СОСТАВНЫЕ ЧИСЛА, ни задача ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ не могут быть NP-полными. Этот факт можно считать довольно сильным аргументом в пользу того, что указанные задачи не являются NP-полными. Если ни одна из них не может быть решена за полиномиальное время, то они принадлежат классу NPI. Следующий аргумент, видимо, несколько слабее. Как уже отмечалось, симплекс-метод для решения задачи линейного программирования, хотя и имеет экспоненциальную временную сложность, очень часто работает настолько быстро,
что возникает ощущение, что можно построить другой алгоритм решения задачи линейного программирования, который уже является полиномиальным. В случае задачи СОСТАВНЫЕ ЧИСЛА мы в некотором смысле даже ближе к построению полиномиального алгоритма.
Алгоритм для выяснения вопроса, является заданное число простым или составным, предложен в работе Миллера [385]. В этой работе также доказано, что если верна “расширенная гипотеза Римана" из теории чисел, то алгоритм Миллера имеет полиномиальную временную сложность. Таким образом, хотя ни для одной из указанных задач не известно полиномиального алгоритма1), мы почти уверены, что никто не будет утверждать, что эти задачи NP-полны. (На самом деле доказательство того, что П е NP и Пс е NP, может рассматриваться как указание на то, что задача П может быть решена полиномиальным алгоритмом, хотя мы пока и не знаем, верно ли, что Р = = NP П co-NP.)
Наличие таких (более или менее вероятных) кандидатов на принадлежность классу NPI позволяет построить новые классы “трудных" задач в классе NP. В частности, отношение полиномиальной сводимости ос позволяет построить классы эквивалентности для каждой из задач ИЗОМОРФИЗМ ГРАФОВ, ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ (LP) и СОСТАВНЫЕ ЧИСЛА с очевидными следствиями. Например, если задача П е NP обладает тем свойством, что П ос LP и LP ос П, то П разрешима за полиномиальное время (или NP-полна, или лежит в классе NPI) тогда и только тогда, когда LP разрешима за полиномиальное время (соотвётственно NP-полна или лежит в классе NPI).
Обычно нетрудно видеть, что формулировки задачи линейного программирования, которые встречаются в самых разных работах по линейному программированию, эквивалентны относительно отношения ос задаче LP. Рисе и Добкин [448] резюмировали основные результаты относительно этого класса задач и несколько расширили его, Итаи [251] показал, что некоторые задачи о рациональных потоках в сетях также эквивалентны задаче LP. Задачи, полиномиально эквивалентные задаче ИЗОМОРФИЗМ ГРАФОВ, были найдены Бусом [52], Ба- баи [23], Миллером [386], Козеном [300, 304] и другими авторами. Однако большинство найденных задач этого класса либо являются ограниченными версиями задачи ИЗОМОРФИЗМ ГРАФОВ, либо задачами об изоморфизме объектов и структур другого типа, так что все эти задачи одного и того же “типа". Во многих работах по теории чисел формулируются утверждения
•) См. сноску на стр. 19.4. —Прим, ред,
справедливые тогда и только тогда, когда некоторые числа являются простыми, что позволяет построить класс задач, эквивалентных задаче СОСТАВНЫЕ ЧИСЛА. Некоторые из этих эквивалентностей приведены среди открытых задач в приложении.
Если имеется задача из класса NP, которую мы считаем трудной, но NP-полноту которой мы доказать не можем, то существуют, конечно, более сильные способы подтверждения ее труднорешаемости, чем доказательство эквивалентности этой задачи одной из открытых задач. Один из методов, упомянутый в гл. 5, заключается в использовании сводимости по Тьюрингу. Если удастся доказать, что некоторая известная задача П' сводима по Тьюрингу за полиномиальное время к рассматриваемой задаче П, то, очевидно, П, подобно П', разрешима за полиномиальное время тогда и только тогда, когда Р = NP, хотя мы и не можем доказать NP-полноту задачи П, поскольку не известно, следует ли из сводимости IF осгП сводимость П' <х П. (В общем случае из полиномиальной сводимости по Тьюрингу не следует полиномиальная сводимость [316], хотя такие примеры в классе NP не известны.)
Потенциально более полезная идея предложена в работе [3]. Она состоит в использовании понятия “у-сводимость". Это понятие позволяет доказывать труднорешаемость задачи не в предположении, что Р =/= NP, а в предположении, что NP =/= со- NP. Таким образом, понятие у-сводимости слабее понятий сводимости по Тьюрингу и полиномиальной сводимости, но оно позволяет дать существенное подтверждение предположению о том, что рассматриваемая задача трудна.
В отличие от других рассмотренных нами понятий сводимости понятие у-сводимости имеет недетерминированный характер. Определим вначале понятие отношения Rm, вычисляемого НДМТ-проГраммой:
n _ f /„ и\. существует слово z, такое, что на входе х и
Км | \ догадке z программа М выдает у
(здесь “выдает” означает то же самое, что при вычислении функций ДМТ-программами).
Будем говорить, что язык L] в алфавите Si ^-сводится к языку Li в алфавите Е2 (обозначение: Li ocYL2), если существует такая полиномиальная НДМТ-программа М, что для каждого хеЕ* существует некоторое слово уе^, такое, что <х, у>е RM, и для всех <х, у>е RM выполняется соотношение хе L\ тогда и только тогда, когда yeL-i. Другими словами, на каждом входе х программы М имеется по крайней мере одно останавливающееся вычисление, и все останавливающиеся ня
х вычисления выдают элементы из La тогда и только тогда, когда х е L\.
Нетрудно видеть, что отношение у-сводимости <xY, подобно отношению полиномиальной сводимости ос, транзитивно, а также, что из L\ ос La следует L\ ocY La (хотя не известно, верно ли обратное). Язык LeNP называется у-полным, если для всех L' eNP, U oc^L. Таким образом, все NP-полные языки являются также и у-полными, но в принципе язык может быть у-полным, но не NP-полным. Примеры у-полных задач, NP- полнота которых не известна, можно найти в работах [431,3]. Ниже приводится только один пример, взятый из последней работы.'
ЛИНЕЙНАЯ ДЕЛИМОСТЬ
УСЛОВИЕ. Заданы положительные целые числа а и с.
ВОПРОС. Существует ли такое целое число х, что с делится на ах + 1?
(Интересно отметить, что эта задача очень легко решается за полиномиальное время, если ах +1 заменить на ах, поскольку в последнем случае задача может быть переформулирована так: “Делится ли с на а?” Заметим также, что рассматриваемую задачу можно решить за псевдополиномиальное время, и, следовательно, ее предполагаемая труднорешаемость существенно зависит от соглашения, что числа представляются словами, длина которых ограничена полиномом от логарифмов величин этих чисел.)
Доказательство у-полноты 'задачи ЛИНЕЙНАЯ ДЕЛИМОСТЬ основано на у-сведении к ней задачи 3-ВЫП. При этом используется недетерминированное угадывание большого числа простых чисел, доказательств простоты и разложений на простые множители. На самом деле все доказанные на сегодняшний день результаты о у-полноте касаются теоретико-числовых задач и используют недетерминированность для угадывания теоретико-числовых структур. Поэтому возможность широкого применения понятия у-сводимости еще требует своего подтверждения. Применение понятия у-полноты к вопросам трудноре- шаемости основано на следующей теореме [3].
Теорема 7.3. Если язык L является у-полным и Le NPПсо- NP, то NP = co-NP..
В частности, поскольку Р s NP f] co-NP, то из этой теоремы следует, что если задача ЛИНЕЙНАЯ ДЕЛИМОСТЬ разрешима за полиномиальное время, то NP = co-NP. (Заметим также, что в силу теоремы 7.3 у-полнота задач СОСТАВНЫЕ ЧИСЛА и ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ мало
вероятна, так как они обе принадлежат классу NP(]co-NP.) На рис. 7.3 в общую картину класса NP включены также у-полные задачи.
До сих пор довольно подробно обсуждалась структура класса NP и особенно класса промежуточных задач NPI. В заключение настоящего раздела рассмотрим структуру класса NPC (класса NP-полных задач). Несмотря на то что все эти задачи “эквивалентны” относительно полиномиальной сводимости, некоторые задачи из этого класса связаны между собой гораздо теснее, чем другие. Вспомним, например, указанную в гл. 3 прямую сводимость друг к другу задач ВЕРШИННОЕ ПОКРЫТИЕ, КЛИКА и НЕЗАВИСИМОЕ МНОЖЕ-
Рис. 7.3. Еще раз уточненная картина класса NP (в предположении, что P#=NP и NP#=co-NP).
СТВО. Эту тесную связь между задачами можно сформулировать с помощью понятия “изоморфизм с полиномиальным временем”. Будем говорить, что два языка Li е 2* и La^ 2а изоморфны с полиномиальным временем (или полиномиально изоморфны), если существует взаимно-однозначное отображение “на” f: 2*->2г, такое, что f полиномиально сводит Lx к La, а [-* полиномиально сводит La к Li.
Легко проверить, что задачи ВЕРШИННОЕ ПОКРЫТИЕ, КЛИКА и НЕЗАВИСИМОЕ МНОЖЕСТВО полиномиально изоморфны; можно также предположить, что с помощью отношения полиномиального изоморфизма можно построить и другие классы эквивалентности. Исследования в этом направлении были проведены в работах [39,200]. При этом был установлен удивительный факт — все известные NP-полные задачи оказываются полиномиально изоморфными! В этих работах даны весьма общие методы преобразования обычной полиномиальной сводимости в полиномиальный изоморфизм, и в настоящее время не известно ни одной пары NP-полных задач, сводимость между которыми нельзя было бы преобразовать в изоморфизм, хотя, конечно, получаемые при этом “изоморфизмы” оказываются совсем не такими простыми, как изоморфизм между задачами ВЕРШИННОЕ ПОКРЫТИЕ, КЛИКА и НЕЗА-
ВИСИМОЕ МНОЖЕСТВО. На основе этого Берман и Хартманне предположили, что все NP-полные задачи полиномиально изоморфны. Подобно многим другим, упоминавшимся выше предположениям, из этого предположения следует, что Р #= NP. Действительно, если бы Р совпадало с NP, то все языки из Р были бы NP-полными и, в силу предположения, полиномиально изоморфными. Однако Р содержит как конечные, так и бесконечные языки, поэтому все языки в Р не могут быть изоморфными.
ПОЛИНОМИАЛЬНАЯ ИЕРАРХИЯ
В предыдущем разделе были рассмотрены NP-полные задачи и задачи, которые, возможно, “проще” их. В настоящем и следующих двух разделах будут обсуждаться NP-трудные задачи, которые по крайней мере не “проще” NP-полных задач. Стандартный пример NP-трудной задачи, которая, видимо, не является NP-легкой, дает следующая задача из работ [384, 500].
МИНИМАЛЬНОЕ ЭКВИВАЛЕНТНОЕ ВЫРАЖЕНИЕ
УСЛОВИЕ. Задано правильно построенное булевское выражение Е, содержащее литералы из множества переменных Й, постоянные Т (истина) и F (ложь), логические связки 'А (и), V, (или), 1 (не) и -> (следует), а также неотрицательное целое число К.
ВОПРОС. Существует ли правильно построенное булевское выражение Е', содержащее не более К вхождений литералов и эквивалентное Е, т. е. такое, чтд для всех наборов значений истинности на множестве V выражения Е и Е' принимают одинаковые истинностные значения?
Эта задача NP-трудная, поскольку к ней сводится по Тьюрингу задача ВЫПОЛНИМОСТЬ (выполнимое выражение Е, имеющее вид конъюнктивной нормальной формы, либо ложно при любом наборе значений истинности и, значит, эквивалентно выражению F, либо не эквивалентно никакому выражению, не содержащему литералов).
Однако, по-видимому, задача МИНИМАЛЬНОЕ ЭКВИВАЛЕНТНОЕ ВЫРАЖЕНИЕ не является NP-легкой. До сих пор никому не удалось показать, что эту задачу можно решить за полиномиальное время с использованием в качестве оракула задачу ВЫПОЛНИМОСТЬ (или любую другую задачу класса NP). Такой оракул может оказаться полезным для проверки эквивалентности выражений Е' и Е, но не для отыскания подходящего кандидата для Е'.
Задачу МИНИМАЛЬНОЕ ЭКВИВАЛЕНТНОЕ ВЫРАЖЕНИЕ, однако, можно решить за полиномиальное время, если
вместо детерминированной ОМТ из гл. 5 использовать недетерминированную оракульную машину Тьюринга (НОМТ). НОМТ представляет собой НДМТ, дополненную оракульной лентой, аналогично тому, как ОМТ есть ДМТ, дополненная оракульной лентой. Иначе говоря, НОМТ может с самого начала сделать догадку, а также в процессе вычисления консультироваться с оракулом. Неформально говоря, НОМТ с оракулом П соответствует недетерминированному алгоритму с подпрограммой для решения задачи П. Время работы НОМТ определяется так же, как для ОМТ и НДМТ.
Задачу МИНИМАЛЬНОЕ ЭКВИВАЛЕНТНОЕ ВЫРАЖЕНИЕ можно решить за полиномиальное время на НОМТ, если в качестве оракула для класса NP взять задачу ВЫПОЛНИМОСТЬ БУЛЕВСКОГО ВЫРАЖЕНИЯ (т. е. при заданном правильно построенном булевском выражении Е спрашивается, существует ли такой набор значений истинности, при котором Е принимает значение “истина”). Последняя задача, хотя и представляет собой несколько более общую версию стандартной задачи ВЫПОЛНИМОСТЬ, все равно принадлежит классу NP. Для того чтобы узнать ответ для фиксированной индивидуальной задачи из задачи МИНИМАЛЬНОЕ ЭКВИВАЛЕНТНОЕ ВЫРАЖЕНИЕ, условие которой состоит из Е и К, достаточно угадать выражение Е*, содержащее не более К вхождений литералов, и с помощью оракула определить выполнимость выражения 1 ((£'->-Е)'А (£->£')). Если это выражение невыполнимо, то Е' — искомое выражение.
Только что приведенную недетерминированную программу с оракулом можно назвать “(полиномиальной) недетерминированной сводимостью по Тьюрингу" задачи МИНИМАЛЬНОЕ ЭКВИВАЛЕНТНОЕ ВЫРАЖЕНИЕ к задаче ВЫПОЛНИМОСТЬ БУЛЕВСКОГО ВЫРАЖЕНИЯ. Эта сводимость наводит на мысль определить новый, более широкий класс задач, которые за полиномиальное время недетерминированно сводимы по Тьюрингу к задачам класса NP. Для этой цели введем соответствующие обозначения. Пусть У — некоторый класс языков. Классы языков Ру и NPy определяются следующим образом:
Ру = {L: существует такой язык L' е У, что L ос TL'^, г существует такой язык L' е У, что существует "1 NPy = < Е: полиномиальная недетерминированная своди- I.
( мость по Тьюрингу языка L к L'J
Заметим, что PNP есть просто класс всех NP-простых языков. Класс NPNP содержит язык МИНИМАЛЬНОЕ ЭКВИВАЛЕНТНОЕ ВЫРАЖЕНИЕ. Не известно, отличаются или совпадают
классы PNP и NPN₽. Отношения включения между двумя построенными классами и классами Р, NP, co-NP изображены на рис. 7.4.
На основе этой картины взаимоотношения классов языков Мейер и Стокмейер [384] заметили, что процесс определения новых классов языков исходя из старых может быть продолжен до бесконечности, при этом будут получаться классы, по- видимому, все более сложных языков. В результате возникает
Рис. 7.4. Отношения включения между классами языков, в том числе новыми классами PNP и NPnp (в предположении, что P=^NP).
так называемая полиномиальная иерархия. Классы языков этой иерархии обозначаются через 5$, П^ и А* (где верхний индекс р используется только для того, чтобы отличать эти классы от аналогичных классов в арифметической иерархии Клини (см. Роджерс [453]) и определяются следующим образом:
S? = ng = Ag = P,
для всех к ^ 0
Д€+1 = рЧ
ХЙ+1 = npx2,
1Кн = со-Ян,
(т. е. класс П£+1 состоит из всех задач, дополнительных задачам класса 2g+1). На самом деле П[* = co-NP, 2f = NP и Af = Р. Аналогично, &г = PNP, Й = NPnp. На рис. 7.5 показаны взаимоотношения между классами языков этой иерархии.
Полиномиальная иерархия позволяет более детально классифицировать NP-трудные задачи распознавания свойств. Во- первых, можно спросить, содержится ли вообще рассматриваемая задача в иерархии (в разд. 7.4 будут указаны некоторые задачи, по-видимому не содержащиеся в этой иерархии, хотя
до сих пор не известно даже, являются ли они труднорешаемыми). Для того чтобы выяснить, содержится ли рассматриваемая задача в иерархии, полезно иметь прямой способ доказательства того, что эта задача принадлежит некоторому классу иерархии, без последовательного применения индуктивного определения. Для этого можно использовать понятие отношения таким же образом, как Карп [280] воспользовался понятием отношения для определения класса NP. Пусть Г—некоторый
Рис. 7.5. Взаимоотношения между классами полиномиальной иерархии.
алфавит; отношением размерности А над Г* называется множество R, состоящее из наборов <Zi, z2, ..., zA> из А слов zt, 1 ^ ^ i ^ k, в алфавите Г. Будем говорить, что отношение распознаваемо за полиномиальное время, если найдется детерминированная программа с полиномиальным временем работы, распознающая язык, который состоит в точности из всех наборов по к слов, принадлежащих R. Следующая теорема доказана в работе [536].
Теорема 7.4. Пусть L — язык в алфавите Р, |Г|^2. Для любого к ^ 1 язык Le^ тогда и только тогда, когда существуют такие полиномы р\, р2рк и отношение R над Р размерности fe+L распознаваемое за полиномиальное время, что для всех хе Г* имеет место
хеЕ^^Эу^еГ*, | ух |<Р1 (|х|))
(Vy2«=r, |у2|^р2(|х|))
(0УйеГ,|уАКр6(|х|))
[<*> Ух, УгУ к) е /?],
где квантор Q перед переменной ук есть 3, если к нечетно, и V, если к четно, а промежуточные кванторы чередуются.
Отметим, что задача МИНИМАЛЬНОЕ ЭКВИВАЛЕНТНОЕ ВЫРАЖЕНИЕ представляется в таком виде при к = 2, если отношение R определить так: < (х, К), Ух, yi> е R тогда и толь-
ко тогда, когда х и у\ — правильно построенные булевские выражения, причем у\ содержит не более К вхождений литералов, а уг — набор значений истинности, выполняющий выражение (x->-yi)'A (i/i -► х). Можно получить аналогичное описание класса П£, если в теореме 7.4 все кванторы 3 и V поменять местами (см. [536]).
Сформулированная теорема дает способ определения верхней границы для наименьшего из таких А, что L е S*. Определение нижней границы (хотя бы даже условное) представляется более трудной задачей. Один результат в этом направлении был получен Легетом [333], он состоит в том, что если NP =/= ^co-NP, то некоторые задачи распознавания, связанные с оптимизационными задачами, не могут лежать ни в NP, ни в co-NP. Эти задачи распознавания отличаются от стандартных тем, что в них формулируются некоторые утверждения относительно оптимальности. Простым примером является следующая задача.
КЛИКА МАКСИМАЛЬНОГО РАЗМЕРА
УСЛОВИЕ. Заданы граф G и положительное целое число К. ВОПРОС. Верно ли, что наибольший полный подграф графа О содержит ровно К вершин?
В отличие от вопроса: “Существует ли клика размера не менее К?”,— который формулируется в задаче КЛИКА, в рассматриваемой задаче спрашивается: “Будет ли К размером максимальной клики?” Задача распознавания оптимальности, соответствующая задаче МИНИМАЛЬНОЕ ЭКВИВАЛЕНТНОЕ ВЫРАЖЕНИЕ, формулируется следующим образом.
РАЗМЕР МИНИМАЛЬНОГО ЭКВИВАЛЕНТНОГО ВЫРАЖЕНИЯ
УСЛОВИЕ. Заданы правильно построенное булевское выражение Е и неотрицательное целое число К.
ВОПРОС. Верно ли, что не существует правильно построенного булевского выражения, эквивалентного Е и содержащего не более К — 1 литералов, но существует выражение, эквивалентное Е и содержащее ровно К литералов?
В результатах Легета ключевым понятием является понятие “недетерминированная полиномиальная табличная сводимость”, которая обозначается через ос^р и определена в работе [316]. Смысл этого понятия заключается в том, что Loc^L', если некоторая недетерминированная оракульная программа, останавливающаяся в состоянии “нет”, когда ее оракул говорит “нет", может проверить принадлежность языкуL с использова-
нием оракула для U. Основная теорема Легета [333] в применении к классу NP формулируется следующим образом.
Теорема 7.5. Если Lo, Li и L^ — такие языки, что Ц и L2 NP- полны, L\ o^PLa и Ц occPLo (где Lc обозначает язык дополнительный к L), то
Lo е NP U co-NP => NP = co-NP.
Эта теорема применима к задачам КЛИКА МАКСИМАЛЬНОГО РАЗМЕРА и РАЗМЕР МИНИМАЛЬНОГО ЭКВИВАЛЕНТНОГО ВЫРАЖЕНИЯ, а также ко многим другим подобным задачам распознавания. Если эту теорему применять к задаче КЛИКА МАКСИМАЛЬНОГО РАЗМЕРА, то в качестве языков Li и L2 можно взять язык, соответствующий задаче КЛИКА. Нетрудно показать, что задача выяснения того, чго граф не содержит полного подграфа на К вершинах, сводится как к задаче КЛИКА МАКСИМАЛЬНОГО РАЗМЕРА, так и к ее дополнению.
Комбинируя теоремы 7.4 и 7.5, можно довольно точно указать место рассматриваемой задачи в полиномиальной иерархии, на нижних уровнях которой расположено большинство естественно возникающих задач. Например, на основе этих теорем можно заключить, что если Р ф co-NP, то задача КЛИКА МАКСИМАЛЬНОГО РАЗМЕРА лежит в классе Д2 \ (Sf U П?)> т. е. NP-проста, но не принадлежит ни NP, ни co-NP.
В основу попыток классификации задач, расположенных на более высоких уровнях иерархии, положено обобщение понятия NP-полноты задачи на соответствующем уровне иерархии. Если удастся выявить “самую трудную" задачу класса 2?, то эта задача не будет принадлежать классу S*_i, если, конечно, эти классы не совпадают. Понятие “самой трудной" задачи нам уже знакомо. Язык L будем называть полным в классе 2£ (относительно полиномиальной сводимости), еслиЛеЕ* и для всех L' е 2?, L' ос L. Аналогичные определения полноты можно дать для классов П£ и А?. Легко показать, что если язык L полон в классе 2* и Le2^_i, то 2* = 2?-i (аналогичные утверждения имеют место и для классов 11£ и А*). Таким образом, доказательство полноты задачи в некотором классе иерархии — это достаточно эффективный способ выяснения места этой задачи в иерархии.
Как и в случае NP-полноты, было бы гораздо проще доказывать полноту в классе иерархии, если известна некоторая “первая" задача, полная в этом классе, т. е. задача, которая играла бы такую же роль, какую ВЫПОЛНИМОСТЬ играет
в классе NP. Задачи Вк, полные в классах 2* для всех А ^ 1, были впервые указаны в работе [384]. Индивидуальная задача из Вк представляет собой правильно построенное булевское выражение Е с множеством переменных X = {х [«,/]: 1 ^ I ^ к, 1 ^ / ^ mJ, где mi, m2т.к^ 0 — некоторые целые числа. Вопрос заключается в истинности следующего выражения:
(Вх[1, 1]) ... (Зх[1, mJ)
(Vx[2, 1] ... (Vx[2, m2])
(Qx[^, 1]) ... (<№,m6])E,
где квантор Q есть квантор 3 при к нечетном и V при к четном, а остальные кванторы чередуются согласно значению первого параметра переменной х.
Отметим, что по теореме 7.4 B6e2fc. Следующий результат доказан в работах [384] и [536].
Теорема, 7.6. Для всех к ^ 1 язык Вк полон относительно полиномиальной сводимости в классе 2», а его дополнение — язык Bk полон относительно полиномиальной сводимости в классе П*.
Таким образом, учитывая транзитивность отношения ос для доказательства полноты задачи П в классе 2*, достаточно показать, что Не 2^ и Вк ос П. Несмотря на это, до сих пор получено мало результатов подобного типа. Козен [301] показал существование аналогичной иерархии полных задач, формулируемых не в терминах булевских выражений, а в терминах конечно представленных алгебр, но результатов об индивидуальных задачах, представляющих самостоятельный интерес, мало. Один из них, относящийся к задаче НЕЭКВИВАЛЕНТНОСТЬ ЦЕЛОЧИСЛЕННЫХ ВЫРАЖЕНИЙ, получен в работе [500]. Если п е Z+, то двоичная запись числа п называется целочисленным выражением, представляющим множество (п). Если е и f— целочисленные выражения, представляющие множества Е и F, то (е U /) называется целочисленным выражением, представляющим Е J F, а (е + /) называется целочисленным выражением, представляющим множество ^m + n:meE, neFV Индивидуальная задача из задачи НЕЭКВИВАЛЕНТНОСТЬ ЦЕЛОЧИСЛЕННЫХ ВЫРАЖЕНИЙ — это пара <е,/> целочисленных выражений, а вопрос формулируется следующим образом: “Верно ли, что е и f представляют различные подмножества Z+?”. Стокмейер [500] доказал, что эта задача полна в классе 22. Кроме этого результата, даже о классе 2?
известно немного. Не известно, например, верно ли, что задача МИНИМАЛЬНОЕ ЭКВИВАЛЕНТНОЕ ВЫРАЖЕНИЕ полна в классе 2г-
Не следует, однако, слишком переживать из-за отсутствия результатов в этом направлении, так как различия задач, вытекающие из структуры полиномиальной иерархии, видимо, имеют больше теоретическое, нежели практическое значение. Это объясняется следующей теоремой Стокмейера [500].
Теорема 7.7. Если для некоторого k ^ 1 имеет место равенство 2£ = П*, то 2/ = П/ = 2* для всех / ^ к.
В частности, если Р = NP, то NP = 2? = И? и поэтому ^ = = Р для всех j ^ 0. Пусть РН = (J 2/ — множество всех язы- /=1
ков полиномиальной иерархии. Тогда Р = NP тогда и только тогда, когда РН = Р, т. е. тогда и только тогда, когда все языки иерархии можно распознать за полиномиальное время и вся иерархия сжимается в один класс Р.
Таким образом, утверждение, что NP-трудная задача П лежит в классе РН, хотя и не эквивалентно NP-легкости задачи П, но имеет те же следствия: П можно решить за полиномиальное время тогда и только тогда, когда Р = NP. Тонкие свойства задачи П, зависящие от ее положения в иерархии, с вычислительной точки зрения, видимо, не имеют большого значения еще и потому, что можно доказать, что любая задача класса РН может быть решена перебором за детерминированное время О(2‘?(п>), где q— некоторый полином, п— длина записи входа (этот же результат для класса NP был доказан в теореме 2.1).
Тем не менее в предположении Р 5^ NP полиномиальная иерархия представляет теоретический интерес, а теорема 7.7 прибавляет к списку фундаментальных открытых вопросов еще один: “Верно ли, что РН — бесконечная иерархия, т. е. верно ли, что 2^+1 \ 2^ не пусто для любого к ^ 1?” Заметим, вполне может оказаться, что Р ^ NP, NP У= co-NP и в то же время вся иерархия сжимается в один класс 2г, хотя такой результат и был бы весьма удивителен.
СЛОЖНОСТЬ ЗАДАЧ ПЕРЕЧИСЛЕНИЯ
Задачи перечисления относятся к числу естественных кандидатов на роль труднорешаемых задач даже в том случае, если Р = NP. Для того чтобы определить такое понятие, как задача перечисления, напомним понятие переборной задачи из гл. 5. В переборной задаче П каждая индивидуальная задача I е Dn
имеет ассоциированное с ней множество решений Sn (/) и при заданном I требуется найти один элемент из множества Sn (/) (в соответствующей задаче распознавания спрашивается, пусто Sn(/) или нет). Задача перечисления, соответствующая пере борной задаче П, формулируется так: “Задано /, какова мощность множества Sn(/), т. е. сколько имеется решений?”
Со многими задачами распознавания," которые мы обсуждали, можно естественным образом связать задачи перечисления. Например, с задачей ГАМИЛЬТОНОВ ЦИКЛ можно связать следующую задачу перечисления: “Задан граф G, сколько различных гамильтоновых циклов имеется в G?” Задаче ВЫПОЛНИМОСТЬ соответствует задача: “Задано множество дизъюнкций С на множестве переменных V, сколько существует наборов значений истинности, выполняющих одновременно все дизъюнкции в С?”
Отметим, что в задаче перечисления не требуется предъявить все элементы множества Sn(/), необходимо только определить их количество. Таким образом, хотя число гамильтоновых циклов в графе G может быть экспоненциально велико (в зависимости от числа вершин) и для составления их списка потребуется экспоненциальное время, ответ задачи перечисления может быть записан полиномиальным числом двоичных знаков. Следовательно, “размер” ответа сам по себе не препятствует решению задачи за полиномиальное время.
В действительности некоторые нетривиальные задачи перечисления можно решить за полиномиальное время. В работе [198], например, показано, что задача перечисления: “Дан граф G, сколько в нем имеется различных остовных деревьев?" — может быть решена за полиномиальное время с помощью “матричной теоремы о деревьях” Кирхгофа и вычисления некоторых определителей. Подобным же образом задача: “Задан граф G, сколько в нем имеется эйлеровых путей?” — может быть решена за полиномиальное время.
Тем не менее многие задачи перечисления, по-видимому, очень сложны. Задачи перечисления, соответствующие NP-полным задачам, очевидным образом являются NP-трудными, поскольку если известна мощность множества Sn(/), то можно легко определить, пусто это множество или нет. Некоторые задачи перечисления, видимо, сложнее соответствующих задач существования. Даже в том случае, если Р = NP и за полиномиальное время можно определить, содержит ли произвольный граф гамильтонов цикл, совершенно не ясно, поможет ли это подсчитать за полиномиальное время число гамильтоновых циклов в графе G. .
Исходя из этого наблюдения, Вэльянт [522] предложил рассмотреть новый класс полиномиально эквивалентных задач —
класс “КР-полных задач’’1), включающий многие задачи перечисления и имеющий целью подчеркнуть дополнительную сложность задач перечисления. (Аналогичное предложение было сделано в работе [491].) Задача перечисления принадлежит классу КР, если найдется недетерминированный алгоритм, такой, что для каждой индивидуальной задачи / е Оп число различных “догадок”, ведущих к принятию I, равно в точности S п (/) |, а длина самого продолжительного принимающего вычисления ограничена полиномом от Length [/]. (Вэльянт [522] определил этот класс задач в терминах так называемых "считающих машин Тьюринга", которые аналогичны “пороговым машинам” из работ [490, 491] и вероятностным машинам Тьюринга из работы [171].)
Легко видеть, что рассмотренные выше задачи перечисления лежат в классе КР. В самом деле, если П — произвольная переборная задача, для которой существует полином р, такой, что для всех 1едц и всех oeSn(7) “длина" не превосходит р (Length [/]), а также для всех / и о за полиномиальное время можно определить, верно ли утверждение aeSn(/), то нетрудно видеть, что задача перечисления, соответствующая П, лежит в классе КР. Таким образом, можно заключить, что класс КР содержит по крайней мере большую часть тех задач перечисления, которые было бы желательно рассмотреть, а также что среди них имеется много трудных задач. Понятие “полноты” в классе КР опять-таки используется для выявления ‘‘самых трудных" задач этого класса. Задача перечисления П называется КР-полной, если П е КР и для всех IT е КР, IT осгП.
Заметим, что в этом определении используется полиномиальная сводимость по Тьюрингу, а не просто полиномиальная сводимость. Это объясняется тем, что рассматриваемые в данном случае задачи являются не просто задачами распознавания, а имеют в качестве ответов числа. Можно, однако, рассмотреть следующий вариант понятия полиномиальной сводимости. Пусть имеются две переборные задачи П и П'. Будем говорить, что задача П (полиномиально) консервативно сводится к задаче П', если существует вычислимая за полиномиальное время функция f: Dn-^-Dns такая, что для всех 1еОп, I Sn (7) | = 15П'(/(/)) |. Заметим, что консервативная сводимость задачи П к задаче П' в то же время является полиномиальной сводимостью одной задачи к другой. Более важно, однако, заметить, что консервативная сводимость задачи П к задаче П' автоматически дает
*) Обозначение КР введено вместо используемого в оригинале символа #Р; К — первая буква от слова «количество». Здесь речь идет о количестве элементов в перечисляемом множестве. — Прим. ред.
сводимость по Тьюрингу соответствующих задач перечисления. Таким образом, консервативная сводимость может служить ценным инструментом при доказательстве КР-полноты.
Этим инструментом впервые воспользовался Саймон [490]. Он заметил, что общая сводимость в доказательстве теоремы Кука может быть сделана консервативной, и таким образом получил следующий результат.
Теорема, 7.8. Задача подсчета числа выполняющих наборов значений истинности для индивидуальной задачи ВЫПОЛНИМОСТЬ является КР-полной.
Саймон [491] заметил также, что многие известные из литературы сводимости, использующиеся в доказательствах результатов об NP-полноте, являются консервативными, а в тех случаях, когда они не консервативны, можно найти консервативные сводимости (см. [521] и [135]). Отсюда можно заключить, что, например, задачи перечисления, соответствующие шести основным NP-полным задачам из гл. 3, являются КР- полными (хотя мы и не утверждаем, что сводимости, использовавшиеся в гл. 3, консервативны).
Может показаться удивительным тот факт, что некоторые задачи перечисления являются КР-полными, в то время как соответствующие переборные задачи могут быть разрешимы за полиномиальное время. Рассмотрим следующую задачу: “Задан двудольный граф G, спрашивается, сколько различных совершенных паросочетаний в нем содержится?" (Напомним, что двудольным графом G = (V, Е) называется граф, множество вершин которого разбито на двД подмножества У[ и Уз, так что любое ребро соединяет вершины только из разных подмножеств. Совершенным паросочетанием называется такое подмножество ребер Е', Е'гЕ, что любая вершина в V инцидентна ровно одному ребру из Е'.^ Эта задача перечисления особенно интересна потому, что она эквивалентна вычислению “перманента ” матрицы 0-1 (перманент — аналог определителя, однако в соответствующую сумму все произведения элементов матрицы входят со знаком +). Указанная выше переборная задача хорошо известна еще и потому, что это просто “задача о бракосочетании", упоминавшаяся в разд. 3.1.2, и, как там указано, разрешима за полиномиальное время. Тем не менее в работе [522] доказан следующий результат.
Теорема, 7.9. Задача о подсчете числа различных совершенных паросочетаний в двудольном графе является КР-полной.
Таким образом, в то время как для одних переборных задач, разрешимых за полиномиальное время, соответствующая задача перечисления не может быть решена за полиномиальное
время при условии Р #= NP (и даже в случае Р = NP это мало вероятно), для других задач, например задач об остовном дереве или об эйлеровом пути, упомянутых в начале настоящего раздела, соответствующие задачи перечисления могут быть решены за полиномиальное время. Было бы интересно продолжить эту классификацию. Частичные результаты в этом направлении содержатся в работе [260]. В ней, в частности, доказано, что некоторые задачи перечисления, основанные на переборных задачах, разрешимых за полиномиальное время (например, задаче К-е ПО ПОРЯДКУ ПОДМНОЖЕСТВО, обсуждавшейся в гл. 5), NP-трудны. Хотя в этой работе и не рассматриваются вопросы о КР-полноте, нетрудно показать, что обсуждаемые там задачи в действительности КР-полны. Другие КР-полные задачи можно найти также в работе [523].
ПОЛНОТА С ПОЛИНОМИАЛЬНООГРАНИЧЕННОЙ ПАМЯТЬЮ
До сих пор нам встречался только один “ресурс”, используемый для вычисления, — время, необходимое для его выполнения. На практике в равной степени важен и другой ресурс — объем памяти ЭВМ, или число ячеек, необходимых для вычисления, который будет называться “емкостной" потребностью алгоритма. Время, требующееся при вычислении на машине Тьюринга, есть число шагов, выполняемых до момента перехода в заключительное состояние. Память, требующаяся при вычислении, есть число различных ячеек, которое при этом просматривает читающая/пишущая головка. Поскольку число просматриваемых ячеек не может превосходить числа шагов вычисления, то любая задача, разрешимая за полиномиальное время, разрешима также и с полиномиальной памятью. Более того, понятие полиномиальной памяти, как и понятие полиномиального времени, обладает свойством независимости от модели вычислительного устройства. Для всех реалистичных моделей ЭВМ класс задач, разрешимых на них с полиномиальной памятью, один и тот же. (В действительности в отношении памяти независимость от модели ЭВМ еще более ярко выражена, а именно классы задач, разрешимых с памятью О(п*) для любого целого к > 0, одинаковы для всех стандартных моделей ЭВМ [215].) В настоящем разделе мы подробно рассмотрим взаимосвязь полиномиального времени и полиномиальной памяти.
Хотя все задачи, разрешимые за полиномиальное время, разрешимы также и с полиномиальной памятью, до сих пор не известно, существуют ли задачи, разрешимые с полиномиальной памятью, но неразрешимые за полиномиальное время. Гипотеза
о существовании таких задач выглядит весьма правдоподобно, поскольку все задачи класса NP, все задачи полиномиальной иерархии и все задачи класса КР могут быть решены с полиномиальной памятью. Таким образом, если Р =/= NP или Р #= ф КР, то вычисления с полиномиальной памятью не эквивалентны вычислениям с полиномиальным временем. Кроме того, имеется много задач, разрешимых с полиномиальной памятью, но, по-видимому, более сложных, чем задачи из перечисленных выше классов. Для того чтобы выделить “наиболее сложные** из этих задач, введем понятие “полноты” с полиномиальной памятью.
Давая формальные определения, мы вновь ограничимся языками (задачами распознавания). Обозначим через P-SPACE класс всех языков, распознаваемых ДМТ-программой, использующей память, ограниченную полиномом и останавливающуюся на всех входах. Теперь понятие полноты определяется стандартно: язык L называется P-SPKCE-полным (относительно полиномиальной сводимости), если L е P-SPACE и любой язык L' из класса P-SPACE сводится к L, U ос L. Из этого определения вытекает, что если язык L является P-SPACE-полным, то L е Р тогда и только тогда, когда Р = P-SPACE. Аналогичное утверждение будет верно, если заменить класс Р на NP. Поскольку может оказаться, что Р = NP, даже если Р ^ Р- SPACE, то P-SPACE-полнота задачи дает более сильное свидетельство ее труднорешаемости, чем NP-полнота. Факт Р- SPACE-полноты задачи можно рассматривать так же, как указание о том, что задача не принадлежит ни классу NP, ни полиномиальной иерархии. В работе [536] показано, что если какая-нибудь P-SPACE-полная задача лежит в классе S* для некоторого к, то вся иерархия сжимается до класса P-SPACE, т. е. 2/ = St = P-SPACE для всех / ^ к.
Фундаментальная P-SPACE-полная задача и ее интересная связь с задачами Вк, полными в классе 2», обсуждавшимися в разд. 7.2, были указаны в работе [503]. А именно, рассматривая задачи Вк как языки относительно одной общей схемы кодирования, можно получить P-SPACE-полный язык, полагая В„ = U Вк. Для большей ясности, однако, рассмотрим язык к-1
Вш как задачу распознавания, для чего дадим ему подходящее название и определение.
БУЛЕВСКИЕ ФОРМУЛЫ С КВАНТОРАМИ (БФК)
УСЛОВИЕ. Задана правильно построенная булевская формула
Г = (Qi^i) (Qa» *2) • • • ^Rnxn) Е»
где Е— булевское выражение с переменными Хь х2хп, a Qi — один из кванторов “3” или “V".
ВОПРОС. Верно ли, что F истинна?
Отметим, что существенное отличие задач БФК от Вь состоит в том, что в Вк допускаются индивидуальные задачи с заранее ограниченным числом чередования кванторов (либо за “V” следует “В”, либо за “3” следует “V"). В БФК, напротив, число изменений кванторов не ограничено. Принадлежность БФК классу P-SPACE следует из того, что истинность формулы F можно проверить, перебирая все возможные наборы значений истинности переменных хь хг, ..., хп и вычисляя значения выражения Е на этих наборах значений истинности. Запись проверяемого набора значений истинности, проверку истинности Е и слежение за номером проверяемого набора значений истинности можно осуществить с использованием полиномиальной памяти, хотя для проверки всех О(2р<п>) наборов значений истинности потребуется экспоненциальное время. То,что любой язык L'eP-SPACE может быть сведен к языку БФК, следует из аналога теоремы Кука, в котором вместо полиномиальных по времени вычислений моделируются вычисления, полиномиальные по памяти. В действительности число шагов вычисления может иметь порядок О(2р(п)), где р— полином, п— длина входа (и в силу аналога теоремы 2.1, не может быть больше), эта неприятность преодолевается нетривиальным приемом, предложенным в работах [503, 500]. Таким образом, можно получить следующий результат.
Теорема, 7.10. Задача БФК, является P-SPACE-полной.
На основе задачи БФК класс P-SPACE-полных задач был в значительной степени изучен. Хотя мы уже убедились в NP- трудности большинства элементов этого класса задач, следует принять во внимание дополнительное “подтверждение” трудно- решаемости, которое дает P-SPACE-полнота. Для P-SPACE- полной задачи мало вероятна принадлежность не только классу Р, но и классу NP. Следовательно, свойства, проверка которых P-SPACE-полна, вероятно, не могут быть проверены за полиномиальное время даже с использованием “догадки” полиномиальной длины. Более того, с теоретической точки зрения даже приятно, что результаты о “полноте" в отличие от результатов о “трудности” позволяют довольно точно определить сложность задачи.
По мере расширения числа P-SPACE-полных задач класс P-SPACE-полных задач приобретает новые характеристики. Задачи, в нем содержащиеся, весьма отличаются от известных NP-полных задач. В заключение настоящего раздела приведем
несколько P-SPACE-полных задач, которые, как мы надеемся, позволят читателю получить некоторое представление о том, как они выглядят.
В первую очередь заметим, что аналогично тому, как задача ВЫПОЛНИМОСТЬ сводится к задаче 3-ВЫП, задача БУЛЕВСКИЕ ФОРМУЛЫ С КВАНТОРАМИ может быть сведена к своему ограниченному варианту 3-ВЫП С КВАНТОРАМИ, в которой булевское выражение является индивидуальной задачей из 3-ВЫП (т. е. конъюнкцией 3 литеральных дизъюнкций). Так что и эта ограниченная задача P-SPACE-полна, см. [503]. В доказательстве используется прием из работы [31], который позволяет преобразовать произвольное булевское выражение, содержащее связки “-»-” и “]”, в выражение нужного вида. Роль ‘‘основной’’ P-SPACE-полной задачи, аналогичную роли рассмотренных выше шести основных NP-полных задач, играет задача 3-ВЫП С КВАНТОРАМИ.
Особенно богатый источник P-SPACE-полных задач представляют собой комбинаторные игры. Игры, интересные с этой точки зрения, — это игры двух лиц. Их можно кратко описать, задав общую “позицию" в множестве всех возможных “позиций", критерий выявления игрока, имеющего “ход" в данной позиции, способ изменения позиции в результате “хода", указания заключительной позиции (и победителя), а также ис- ходной позиции. Назовем игроков БЕЛЫЕ и ЧЕРНЫЕ, обозначим через Ро исходную позицию, а также примем соглашение, что после достижения заключительной позиции все последующие ходы ее не меняют. Утверждение, что БЕЛЫЕ, начиная игру, имеют форсированный выигрыш за п ходов (п четно), формализуется следующим образом:
Существует такой ход БЕЛЫХ из позиции Ро в позицию Pi, что для всех ходов ЧЕРНЫХ из позиции Pi в позицию Р2, существует такой ход БЕЛЫХ из позиции Р2 в позицию Р3, что для любого хода ЧЕРНЫХ из позиции Р3 в позицию Р4,
существует такой ход БЕЛЫХ из позиции Рл_2 в позицию Рп-ь что для любого хода ЧЕРНЫХ из позиции Рл_] в позицию Рл, позиция Рл выигрышна для БЕЛЫХ.
Заметим, что в этом утверждении имеется последовательность “перемен кванторов”, которая приводит к P-SPACE-пол- ноте задачи БФК- Таким образом, не удивительно, что задача распознавания вида: “Задана начальная позиция некоторой игры, верно ли, что БЕЛЫЕ имеют форсированный выигрыш?" — оказывается P-SPACE-полной.
Первый результат такого типа был получен в работе [119]. Задача, которую обсуждали авторы, формулируется следующим образом.
ОБОБЩЕННЫЙ ГЕКС
УСЛОВИЕ. Задан неориентированный граф G = (7, Д) с выделенными вершинами s, t е V.
ВОПРОС. Верно ли, что БЕЛЫЕ имеют форсированный выигрыш в следующей игре на G? Позицией является разбиение множества V на три таких подмножества <7ь 7г, 7з>, что (s, /} G 73. Исходная позиция имеет вид <0, 0, 7>, а все позиции вида <Vi, 7г, {s, /}> заключительные. В позиции <7ь 7г, Уз>, где 73У={$, Д, если |7i| + |72| четно, то ходят БЕЛЫЕ, в противном случае ходят ЧЕРНЫЕ. Ход БЕЛЫХ состоит в выборе вершины и е 7з\ {s, /} и замены текущей позиции на позицию <7i J (ц), 7г, 73\{п}>. ЧЕРНЫЕ ходят аналогично, удаляя вершину из 73 и добавляя ее к 7г- В заключительной позиции <7Ь 7г, {s, /}> БЕЛЫЕ выигрывают тогда и только тогда, когда индуцированный множеством 7iU{s, О подграф графа G содержит путь из s в /.
Основная идея этой игры состоит в том, что БЕЛЫЕ и ЧЕРНЫЕ по очереди выбирают вершины из множества 7\{$,/}. Цель БЕЛЫХ — построить путь из s в t, цель ЧЕРНЫХ — воспрепятствовать этому. В дейетвительности игра ГЕКС имеет гораздо более специальную форму, чем игра ОБОБЩЕННЫЙ ГЕКС, и играется на графе регулярной структуры, похожей на шахматную доску. Рассматриваемая задача лежит в классе P-SPACE потому, что в ней возможно только полиномиальное число шагов (если быть точным, то |7| — 2). Доказательство P-SPACE-полноты задачи получается с помощью сведения к ней задачи 3-ВЫП С КВАНТОРАМИ.
Известна также P-SPACE-полнота некоторых других игр. К их числу относятся: обобщение игры "география" — игра, в которой игроки по очереди приводят название стран, причем название новой страны начинается с той буквы, которой заканчивается название предыдущей [473], игра, получающаяся обобщением головоломки Братьев Паркер “Instant Insanity” [452], и обобщение игр в шахматы и Го на доски размера п X п (о двух последних играх, если не пользоваться специальными правилами, обеспечивающими полиномиальность общего числа ходов, установлена лишь P-SPACE-трудность) [127,345]. Другие примеры игр можно найти в списке приложения.
Кроме задач, связанных с играми, P-SPACE-полные задачи возникают в теории языков и автоматов, в программировании; при этом они часто оказываются ограниченными вариантами
задач, труднорешаемость или даже неразрешимость которых известна. Одна из таких задач указана в работах [384, 9]. В этой задаче речь идет о “регулярных выражениях". Она представляет интерес еще и потому, что в ней нет такой явной перемены кванторов, как в рассматривавшихся до сих пор задачах. Определим вначале понятия “регулярное выражение" и “язык, им представляемый". Пусть S — конечный алфавит. Регулярное выражение над S и язык, представляемый им, определяются индуктивно:
0 есть регулярное выражение, представляющее пустое множество слов;
е есть регулярное выражение, представляющее язык, состоящий из пустого слова е;
для всех а е 2 а есть регулярное выражение, представляющее язык {а};
если а и 0— регулярные выражения, представляющие множества А и В, то
а + 0 есть регулярное выражение, представляющее язык A U В,
а0 есть регулярное выражение, представляющее язык АВ =^ху ;хеА, у^В},
(Ш) а* есть регулярное выражение, представляющее язык
Л* = И А1, где А° = {е} и Aw = AlA при i^O. i-0
P-SPACE-полная задача относительно регулярных выражений формулируется следующим образом:
НЕУНИВЕРСАЛЬНОСТЬ РЕГУЛЯРНОГО ВЫРАЖЕНИЯ
УСЛОВИЕ. Задано регулярное выражение а над конечным алфавитом S.
ВОПРОС. Верно ли, что множество, представляемое регулярным выражением а, отлично от S*?
Эта задача остается P-SPACE-полной даже в том случае, если применять только фиксированный алфавит {0,1}. Однако если расширить определение регулярного выражения, допуская использование вместо а-а сокращения (а)2 (и в частности, вместо (((а)2)2)2 сокращение (а)8), то возникающая в результате задача превратится в труднорешаемую, и для ее решения, как доказано в [384], требуется экспоненциальная память. Доказательство P-SPACE-полноты этой задачи, приведенное в книге [9], представляет интерес потому, что в нем построена общая сводимость произвольного языка из класса P-SPACE, в которой регулярные выражения используются для кодирования
отвергающих вычислений, а не принимающих. Таким образом, оно в некотором смысле двойственно к доказательству P-SPACE-полноты задачи БФК, а именно если некоторое слово не принадлежит множеству, представляемому построенным регулярным выражением, то это слово должно соответствовать принимающему вычислению.
В заключение рассмотрим задачу, из P-SPACE-полноты которой следует интересное утверждение о самом классе P-SPACE. Если задана ДМТ-программа, то ее можно стандартным образом модифицировать так, что ни одно вычисление на входе длины п не потребует более п 4-1 ячеек ленты, а все вычисления, уже обладавшие этим свойством, останутся неизменными. Программа, возникающая в результате такой модификации, вообще говоря, может и не распознавать прежний язык, но для нее наверняка будет выполняться указанное ограничение по памяти. Если же программа уже удовлетворяла этому ограничению по памяти, то она будет распознавать тот же язык, что и раньше. Такие ДМТ-программы будут называться линейно ограниченными. Используя хорошо известное рассуждение об избыточном кодировании (см., например, [280]), можно доказать P-SPACE-полноту следующей задачи.
ПРИНЯТИЕ С ЛИНЕЙНОЙ ПАМЯТЬЮ
УСЛОВИЕ. Задана линейно ограниченная ДМТ-программа М и конечное слово х во входном алфавите соответствующей машины.
ВОПРОС. Верно ли, что М принимает х?
На первый взгляд этот результат может показаться удивительным. Он утверждает, что в некотором смысле задачи, разрешимые с полиномиальной памятью, не труднее задач, разрешимых с линейной памятью. Можно подумать, что он противоречит существованию языков, распознаваемых с полиномиальной памятью, но не распознаваемых никакой ДМТ-программой с линейно ограниченной памятью (в существовании последних мы убедимся в разд. 7.6). В действительности здесь нет противоречия, ибо из P-SPACE-полноты задачи ПРИНЯТИЕ С ЛИНЕЙНОЙ ПАМЯТЬЮ следует лишь, что линейная память содержится в Р тогда и только тогда, когда P-SPACE s Р, а не то, что все задачи класса P-SPACE-разрешимы с линейной памятью. На самом деле имеется более общий результат.
Теорема, 7.11. Если для некоторого й ^ 1 класс языков, распознаваемых JXMT-программами, использующими память не более O(nk), содержится в Р (соответственно в NP), то Р = = P-SPACE (соответственно NP).
(Аналогичный результат можно получить для вычислений с ограниченным временем: если для некоторого Л^ 1 класс языков, недетерминированно распознаваемых со временем О (га*), содержится в Р, то Р = NP.)
Определив понятие P-SPACE-полноты, естественно пойти и дальше, определив класс NP-SPACE, состоящий из языков, распознаваемых программами для недетерминированных машин Тьюринга, с полиномиальной оценкой по памяти. Однако, прежде чем мы сможем говорить об ограниченности недетерминированного вычисления по памяти, необходимо уточнить понятие памяти, требующейся для “угадывающего модуля НДМТ». Для многих вычислений в действительности нет необходимости помнить все символы слова-догадки после того, как они один раз уже просмотрены. В отличие от нашей модели НДМТ, у которой в память, необходимую для вычисления, включается память, необходимая для выписывания в начале вычисления всего слова-догадки, стандартные модели НДМТ, используемые для измерения памяти, обычно снабжаются дополнительным устройством, вообще не требующим памяти, из которого программа может в любой момент времени запрашивать “следующий” символ слова-догадки. Программа записывает символ на ленте и тем самым расходует “память” для этого символа только в том случае, если его нужно запомнить для некоторой операции, выполняемой в будущем.
Нетрудно показать, что, хотя память, требуемая измененной моделью НДМТ, измеряется иначе, эта измененная модель эквивалентна относительно полиномиальной временной сложности НДМТ из гл. 2, и поэтому при ее использовании для определения класса NP-SPACE сохранятся наши прежние результаты о недетерминированных вычислениях за полиномиальное время. Определив теперь класс NP-SPACE как класс языков, распознаваемых программами для этой модифицированной модели НДМТ, требующими в своих принимающих вычислениях полиномиальной памяти, можно задаться вопросом о взаимосвязи классов P-SPACE и NP-SPACE. Утверждение, что P-SPACE = NP-SPACE, может показаться неожиданным. Оно вытекает из следующего результата Сэвича [470].
Теорема, 7.12. Если язык L может быть распознан НДМТ- программой с памятью "Цп), где 7(n)^ logo для всех п^1, го L можно распознать также ДМТ-программой с памятью T4nY
Из теоремы 7.12 следует, что P-SPACE-полнота — самый сильный из известных в настоящее время результатов о полноте и близок к результатам, из которых следует труднорешаемость. Конечно, еще остается возможность доказывать, что задача
P-SPACE-трудна (т. е. доказывать, что некоторая P-SPACE- полная задача сводима к ней по Тьюрингу, оставляя открытым вопрос о принадлежности этой задачи классу P-SPACE), но исключив эту возможность, мы попадаем в область труднорешаемых задач, которые будут обсуждаться в разд. 7.6.
Настоящий раздел мы закончим упоминанием об одной открытой проблеме, связанной с теоремой 7.12, которая до возникновения проблемы о взаимоотношении классов Р и NP была, видимо, наиболее известной в теории сложности. Эта проблема известна как “LBA-проблема”. Назовем ДМТ-программу, которая требует памяти, не превосходящей величины п +1, детерминированным линейно ограниченным автоматом (DLB-автоматом), а НДМТ-программу с тем же ограничением по памяти — недетерминированным линейно ограниченным автоматом (NLB- автоматом).
Множество языков, распознаваемых NLB-автоматами, совпадает с множеством “контекстно-зависимых языков’’ (класс языков, имеющих специальное грамматическое определение, см., например, [215]). По теореме 7.12 любой такой язык можно распознать ДМТ-программой с оценкой по памяти (п+1)2. Вопрос заключается в следующем: “Можно ли все такие языки распознать DLB-автоматами?” (Или еще более сильное утверждение: “Можно ли в теореме 7.12 отбросить показатель 2?’’) Этот вопрос относится к тому же предмету, что и вопрос о взаимоотношении классов Р и NP, т. е. к соотношению между детерминированностью и недетерминированностью, правда, в более специальной форме. Он остается открытым и до настоящего времени, хотя был поставлен в середине 60-х годов. Непосредственное обсуждение этого вопроса, следствий и некоторых связанных с ним предположений (включая аналог вопроса о взаимоотношении классов NP и co-NP) можно найти в работе [202].
7.5. ЛОГАРИФМИЧЕСКАЯ ПАМЯТЬ
В предыдущем разделе были рассмотрены взаимоотношения между классами временной сложности Р и NP, с одной стороны, и классом P-SPACE-функций, вычислимых с полиномиально ограниченной памятью, — с другой. В настоящем разделе будет продолжено обсуждение связей между сложностью по времени и сложностью по памяти, но на этот раз мы обратимся к классу DLOG-SPACE, лежащему в Р и NP и состоящему из языков, распознаваемых ДМТ-программами, которые требуют памяти, ограниченной логарифмом от длины входа.
На первый взгляд понятие логарифмической памяти может показаться бессмысленным, поскольку входное слово длины п
само занимает п ячеек, так что любая ДМТ-программа, просматривающая слово от начала до конца, должна потребовать, самое меньшее, линейной памяти. Однако на практике часто оказывается полезно проводить различие между памятью, занимаемой входным словом, и дополнительной памятью, используемой для выполнения вычисления. Например, если при слиянии двух отсортированных списков, записанных на магнитных лентах, результат также пишется на магнитной ленте, то необходимая для слияния оперативная память в каждый момент
-3-2-10 1 2 3 Рабочая мяла
Рис. 7.6. Схематическое изображение модели ДМТ, которая требует памяти меньшей, чем линейная.
времени включает только две ячейки, в которых запоминается по одному элементу из каждого списка. В действительности здесь чрезвычайно важно то обстоятельство, что нет необходимости в оперативной памяти, сравнимой по величине с длинами входных слов.
Чтобы изучить вопрос о том, как можно уменьшить потребность в памяти, так чтобы требовалась меньшая, чем линейная, память, изменим нашу стандартную модель ДМТ, как показано на рис. 7.6. Здесь добавлены входная лента с читающей головкой, которая может передвигаться в двух направлениях, и выходная лента с пишущей головкой. Входное слово, записанное на входной ленте, начинается в ячейке с номером 1, причем ячейка с номером 0 пуста, что позволяет распознавать левый конец слова. Само вычисление, как обычно, выполняется на бесконечной в обе стороны рабочей ленте, с использованием читающей/пишущей головки. Память, которая требуется при вычислении на этой модели, есть просто число ячеек, просмотренных читающей/пишущей головкой. Следует отметить, что классы Р, NP и P-SPACE при таком изменении модели вычислительного
устройства не изменяются, зато появляется возможность затрачивать меньшее, чем линейное, количество памяти.
Исследования по использованию памяти, меньшей, чем линейная, сосредоточились на классе DLOG-SPACE языков, распознаваемых ДМТ-программами, требующими памяти не более чем riog2(n+ 1)1, где п— длина входного слова. С помощью стандартной теоремы об “ускорении" (см., например, [215]) легко показать, что этот класс совпадает с классом языков, распознаваемых с памятью С[log2(n + 1) 1, для любой константы С > О и не так уж беден, как может показаться на первый взгляд. Более того, нетрудно видеть что DLOG-SPACE = Р. Первый возникающий вопрос, конечно, состоит в следующем: “Верно ли, что DLOG-SPACE = Р?”
Хотя имеется много нетривиальных задач, которые могут быть решены с логарифмической памятью (см., например, [355, 368]), по-видимому, DLOG-SPACE 5^ Р. Многие задачи из класса Р, кажется, требуют для своего решения значительно большей памяти, чем логарифмическая. Рассмотрим, например, задачу РАЗБИЕНИЕ. В гл. 4 было показано, что эта задача может быть решена за полиномиальное время, если размеры всех предметов не превосходят, скажем, квадрата их количества. Однако в этом случае приведенный там алгоритм потребует памяти, пропорциональной кубу числа предметов, что превосходит квадрат длины входа, и не видно способа существенно уменьшить количество необходимой памяти.
В работах [94, 95] приведены примеры задач класса Р, для которых память, требуемая любым алгоритмом из весьма широкого класса, пропорциональна по меньшей мере п,/2 или п1/4. Более того, известно, что не может быть одновременно Р = = DLOG-SPACE и Р = P-SPACE (это следует из теоремы 7.15, приведенной в следующем разделе). Таким образом, весьма вероятно, что некоторые задачи класса Р требуют памяти, большей, чем логарифмическая, и мы вновь воспользуемся результатами о полноте, чтобы указать наиболее вероятных кандидатов.
Для нового понятия полноты нам нужен новый вид сводимости. Это объясняется тем, что полиномиальная сводимость не может различать задачи класса Р. Пусть Lx и L2 — языки в алфавитах Si и 2г соответственно. Будем говорить, что функция f: S*->S2 осуществляет log-space-сводимость языка Lx к языку La, если
f может быть вычислена ДТМ-программой, использующей на входах длины п память, не превосходящую величины [10g2(rt + 1) 1, и
(И) хе Lx тогда и только тогда, когда f(х)е La.
- Если имеется log-space-сводимость языка L] к языку La, то будем писать LiocLOgL2 и говорить, что при этом язык L^ logspace сводится к языку Ь2. Отметим, что так как все функции, вычислимые с логарифмически ограниченной памятью, вычислимы также и за полиномиальное время, то сводимость L\ <х ос log влечет сводимость Ц ос L2. По аналогии со сводимостью ос можно доказать следующие свойства сводимости ос log (доказательства, однако, не тривиальны, см. [503]).
Теорема 7.13. Предположим, что L\<x.LOgLi и L2<xLogL3. Тогда
L ос log L3;
U е DLOG-SPACE =» М е DLOG-SPACE.
Будем говорить, что язык L е Р log-space-полон в классе Р, если U oclogL для всех L' еР. Таким образом, мы имеем желаемое свойство: если язык L log-space-полон в классе Р, то L s DLOG-SPACE тогда и только тогда, когда DLOG-SPACE = = Р. Более общий результат, доказанный в работе [270], состоит в следующей теореме. (Здесь класс DLOGft-SPACE (А > > 1) определяется аналогично классу DLOG-SPACE, с заменой границы ri°g2(n+l)l границей flog2(n + 1) ] *.)
Теорема 7.14. Если язык L log-space-полон в классе Р и если L е DLOG-SPACE, то Р = DLOGfc-SPACE.
Первая log-space-полная задача была явно сформулирована Куком [94].
достижимость СИСТЕМОЙ ПУТЕЙ
УСЛОВИЕ. Заданы конечное множество “узлов" X, отношение R £ X X X X X и два подмножества S, Т Е X, S — множество “источников", Т — множество “конечных узлов".
ВОПРОС. Существует ли “достижимый" конечный узел? (Узел х е X называется достижимым, если х е S или существуют достижимые узлы у, z, такие, что <х, у, z> е R.^
Эта задача лежит в классе Р, поскольку множество всех достижимых узлов тривиальным образом можно построить за полиномиальное время. Доказательство log-space-полноты этой задачи в классе Р состоит, как обычно, в общем сведении с логарифмической памятью произвольной задачи класса Р к рассматриваемой задаче. В работе [271] было указано аналогичное доказательство log-space-полноты в классе Р следующей задачи.
ЕДИНИЧНАЯ РЕЗОЛЮЦИЯ
УСЛОВИЕ. Задано множество С дизъюнкций на множестве переменных X=^xi,xa, ..., х„} (т. е. условие такое же, как в задаче ВЫПОЛНИМОСТЬ).
ВОПРОС. Можно ли с помощью “единичной резолюции" вывести пустую дизъюнкцию (указывающую на противоречие) из множества С? Иными словами, существует ли последовательность дизъюнкций Сг, С2, ..., Ст, такая, что ст — пустая дизъюнкция, а с, — либо дизъюнкция из множества С, либо существуют ранее выведенные дизъюнкции ск и с, (6,/<i), такие, что ск = {х/}, с/ = {х/} U с, (или с к = {xj, Ci = (х /} U с.) для некоторой переменной X/ е X?
Другие log-space-полные задачи в классе Р можно найти в работах [271, 313, 136, 527, 177, 300].
Использование сводимости с логарифмической памятью не ограничивается доказательством результатов о полноте в классе Р. Например, задача ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ, как доказано в работе [103], является “log-space-труд- ной для класса Р”. Иными словами, хотя и не известно, что наличие полиномиального алгоритма решения этой задачи привело бы к равенству Р = NP, однако существование log-space- алгоритма решения этой задачи привело бы к равенству DLOG- SPACE =Р). Более того, как было замечено в работах [269] и [384], большинство (если не все) сводимостей, используемых для доказательства результатов об NP-полноте, могут быть выполнены с логарифмической памятью (основная память, необходимая в таких сводимостях, затрачивается на вычисления значения р(п) некоторого полинома р от длины записи п исходной информации, что может быть сделано с логарифмической памятью, если алфавит букв, которые пишутся на ленте, имеет достаточное количество символов). Таким образом, класс языков, “log-space-полных в классе NP”, составляет по крайней мере большой подкласс класса NP-полных задач, и если хоть одна задача этого класса принадлежит классу DLOG*- SPACE для некоторого ^ ^ 1, то все задачи класса NP принадлежат классу DLOG-SPACE.
Подобным же образом было замечено, что сводимости, используемые для доказательства результатов о P-SPACE-пол- ноте, также являются log-space-сводимостями (в действительности в некоторых работах P-SPACE-полнота определяется непосредственно в терминах log-space-сводимости, а не в терминах полиномиальной сводимости). Однако это замечание для класса P-SPACE не имеет таких следствий, как для класса NP, ибо нам уже известно, что для всех A P-SPACE =/= DLOG*- SPACE, и даже более того, „
P-SPACE ф POLYLOG-SPACE = П DLOG-SPACE. к 1
Тем не менее, если язык L log-space-полон в классе P-SPACE, то можно заключить, что существует константа г > О, такая, что для ДТМ-программы, распознающей L, необходима память, пропорциональная пг для бесконечного числа входов (см., например, [500]). Этот вывод сделать нельзя, если известна лишь P-SPACE-полнота языка L в смысле определения из разд. 7.4.
Наконец, понятием сводимости с логарифмической памятью можно воспользоваться для того, чтобы сформулировать еще один вопрос о соотношении между детерминизмом и недетерми- низмом, на этот раз уже на логарифмическом уровне. Пусть NLOG-SPACE— это класс всех языков, распознаваемых недетерминированными машинами Тьюринга с памятью, ограниченной [log2(n+l)] (определенными таким образом, что память, необходимая для записи входа и догадки, не учитывается). Вопрос состоит в следующем: “Верно ли, что DLOG- SPACE = NLOG-SPACE?" Гипотеза заключается в том, что эти классы не совпадают, а языки, log-space-полные в классе NLOG-SPACE, можно считать кандидатами на языки класса NLOG-SPACE, не принадлежащие классу DLOG-SPACE. Примеры и другие детали можно найти в работах [471, 270, 507, 2731.
Мы закончим настоящий раздел кратким рассмотрением отношений включения между обсуждавшимися выше классами языков. Уже отмечалось, что DLOG-SPACE = Р. Менее очевидный результат [92] состоит в том, что NLOG-SPACE = Р. Однако совсем не ясно, верно ли включение POLYLOGSPACE s Р или даже включение. DLOG2-SPACE s NP. Хотя пока не доказано, что эти включения не имеют места, в работе [48] показано, что Р #= POLYLOG-SPACE и NP^ POLYLOGSPACE. Результаты, полученные в этой работе, особенно интересны потому, что из них не следует, что один класс содержится в другом или что два класса несравнимы относительно включения, хотя в них утверждается, что классы не могут совпадать. Другие результаты относительно взаимосвязей между различными классами сложности по времени и памяти обсуждаются в работах [46, 47, 384].
7.6 ДОКАЗАТЕЛЬСТВА ТРУДНОРЕШАЕМОСТИИ ВЗАИМООТНОШЕНИЯ МЕЖДУ Р И NP
В качестве подтверждения гипотезы Р ^= NP мы упоминали тот факт, что было бесплодно потрачено много усилий на отыскание полиномиальных по времени алгоритмов решения NP- полных задач. Видимо, точнее было бы сказать, что это является аргументом в пользу трудности доказательства того, что Р = NP. В настоящем разделе будут приведены аргументы в
пользу того, что доказательство различия классов Р и NP также не просто.
Начнем с рассмотрения некоторых частичных, но доказанных результатов. Вместо того чтобы браться за решение вопроса в полной общности, доказывая, что все алгоритмы решения некоторой NP-полной задачи работают в течение экспоненциального времени, некоторые исследователи с целью доказать отсутствие полиномиальных алгоритмов решения этой задачи ограничились рассмотрением определенных ограниченных классов алгоритмов. Например, Галил [137] (продолжая работу Цейтина [515]) показал, что алгоритмы решения задачи ВЫПОЛНИМОСТЬ, основанные на технике резолюций, должны иметь экспоненциальную временную сложность. Для задачи НЕЗАВИСИМОЕ МНОЖЕСТВО Хватал [76] рассмотрел весьма широкий класс алгоритмов, включающий алгоритм Тарьяна и Трояновского [513], упомянутый в гл. 6, и доказал, что любой такой алгоритм работает экспоненциальное время (точнее, для каждого такого алгоритма существует константа с > 1, такая, что для “почти всех’’ графов на п вершинах время работы алгоритма больше с”). Мак-Диармид [378] получил аналогичные результаты об алгоритмах для задачи РАСКРАШИВАЕ- МОСТЬ ГРАФА В к ЦВЕТОВ.
Результаты этого типа имеют практическое значение потому, что они позволяют исключить некоторые соблазнительные на первый взгляд подходы к построению 'Полиномиальных алгоритмов. Однако, если даже дальнейшие исследования позволят расширить класс непригодных подходов, кажется маловероятным, что, действуя таким “кусочным” методом, удастся исключить все возможные подходы к построению алгоритмов. Если мы хотим доказать, что Р =# NP, то нам необходимо получить нижнюю оценку временной сложности, которая выполнялась бы для всех алгоритмов решения задачи. К сожалению, даже самые сильные нижние оценки такого типа, доказанные к настоящему времени, оставляют желать много лучшего.
Один из опробованных подходов к получению нижних оценок заключается в том, чтобы оценить число элементов в логических схемах, вычисляющих конечные функции. Такая функция получается, если ограничиться индивидуальными задачами некоторой NP-полной задачи, имеющими фиксированный размер гг. Если удастся показать, что число необходимых элементов зависит от п экспоненциально, то отсюда будет следовать труднорешаемость задачи. Самая сильная нижняя оценка, полученная в рамках этой модели, потребовавшая большой изобретательности и находчивости, составляет всего лишь 2,5/г (см. [422]). В действительности доказательство нижних оценок для общей модели процесса вычислений, даже чуть-чуть более
сильных, чем линейные (таких, например, как в работе [428]), в настоящее время оказывается очень трудным. Доказательство такими методами экспоненциальных нижних оценок представляется делом далекого будущего.
Тем не менее, как упомянуто в гл. 1, труднорешаемость некоторых задач, хотя и не принадлежащих классу NP, доказана. Можно ли применить эти методы для доказательства того, что Р =# NP? После того как мы ознакомимся с этими методами, будет видно, что это также представляется маловероятным.
Все доказательства труднорешаемости, полученные до настоящего времени, базируются, по существу, на двух основных результатах теории сложности. Будем называть функцию F(n) конструируемой по памяти, если существует ДМТ-программа, которая, начав работать на слове, состоящем из п единиц, останавливается после того, как читаюшая/пишущая головка просмотрит ровно F(n') ячеек ленты (предполагается, что уДМТ есть отдельная входная лента). Функция F(n) называется конструируемой по времени, если существует ДТМ-программа, которая, начав работать на слове, состоящем из п единиц, останавливается, выполнив ровно F(n^ шагов1). Наиболее часто встречающиеся функции, такие, как nk, 2е", ксп, п! и т. д., при фиксированных целых положительных константах с и к конструируемы как по памяти, так и по времени. Функции riog2nle при всех положительных целых к конструируемы по памяти, но по очевидным причинам неконструируемы по времени. Два важных результата формулируются следующим образом:
Теорема 7.15. Пусть Fi(n) и F^n^ — функции, конструируемые по памяти, F^n^"^ log2(n) для всех n^ 1. Если
lim inf У = О,
П-»ОО
то существует язык L, распознаваемый некоторой ДМТ-про- граммой со сложностью по памяти, ограниченной Fs{n), но не распознаваемый никакой ДМТ-программой, имеющей сложность по памяти, ограниченную Fi(n).
Теорема 7.16. Если Fi(n) и Fa(n)—функции, конструируемые по времени, и
lim inf = О,n->OO W
то существует язык L, распознаваемый ДМТ-программой, временная сложность которой ограничена функцией F2(n)-log2
*) В машине Тьюринга с несколькими головками на каждом шаге работы обычно допускается одновременный сдвиг всех головок. — Прим, перев.
Ft(n), но не распознаваемый никакой ДМТ-программой с вре- менндй сложностью, ограниченной функцией F\ (п).
Эти результаты были впервые получены в работах [203] и [204] (см. также работу [215]). Основные выводы, которые можно сделать на основе этих результатов, состоят в том, что некоторые классы языков должны содержать языки, распознавание которых — труднорешаемая задача. Например, класс EXP-TIME (состоящий из всех языков, распознаваемых с вре- меннбй сложностью, ограниченной IpW, где р— полином, п— длина записи входа) для всех k ^ 1 должен содержать языки, сложность которых по крайней мере 2"ft Следует, однако, подчеркнуть, что такие языки строятся с помощью “диагонального" метода. Поэтому нельзя считать, что они соответствуют “естественным" задачам, и с ними нельзя работать непосредственно. По этой причине такие языки используются для доказательства труднорешаемости естественных задач косвенным путем на основе понятий “полноты" и “трудности” в классе задач. Напомним, что язык L называется полным в классе языков С (относительно полиномиальной сводимости), если LeC и U ос L для всех L'eC (L называется С-трудным, если выполняется второе свойство, но L не обязательно лежит в С). Теперь можно сформулировать общий аналог леммы 2.1.
Лемма 7.1. Если язык L полон в классе С {или С-труден^ и С содержит труднорешаемую задачу, то L соответствует труднорешаемой задаче.
Доказательства труднорешаемости естественных задач базируются на этой лемме при выборе в качестве С различных конкретных классов языков. В работе [384] доказано, что задача неэквивалентности регулярных выражений с операцией “возведения в квадрат" полна в классе EXP-SPACE, в котором содержится класс EXP-TIME и, следовательно, содержатся труднорешаемые задачи. В работе [122] доказано, что задача распознавания истинных утверждений в арифметике Прессбургера С-трудна, где С = NEXP-TIME (недетерминированный аналог класса EXP-TIME). В работах [68, 502] доказана полнота в классе EXP-TIME различных комбинаторных игр. В работе [257] также доказана полнота в классе EXP-TIME “задачи циркулярности в атрибутивных грамматиках”.
В действительности многие из этих доказательств дают более сильные нижние границы сложности, чем “простая” труд- норешаемость, а в некоторых доказательствах получены нижние оценки сложности по памяти. Более того, если класс С содержит достаточно сложные задачи, можно доказать астрономические нижние оценки. Такие оценки получены в работе
[381] для “слабой монадной теории следования второго порядка”, а именно здесь доказано, что любая ДМТ-программа, распознающая истинные утверждения этой теории, должна иметь временную сложность, большую, чем
22‘*
длч любого числа “этажей” в формуле. Мы не будем вдаваться в детали методов доказательства, так как будет видно, что этим подходом, по-видимому, нельзя воспользоваться для доказательства того, что класс NP содержит труднорешаемые за- Д.'.ЧИ.
Для того чтобы с помощью леммы 7.1 доказать утверждение Р =# NP, необходимо уметь доказывать, что некоторый язык L s NP полон в некотором классе С, содержащем труднорешаемые задачи. Однако легко понять, что подобный результат имел бы и другие, кроме доказательства того, что Р #= NP, следствия, которые можно получить на основе следующей простой леммы.
Лемма 7.2. Если язык L принадлежит классу NP и L полон {относительно полиномиальной сводимости) в классе С, то С содержится в NP.
Поэтому, если L е NP, то не представляется возможным доказать, что L полон в классах EXP-SPACE или NEXP-SPACE. В самом деле, по теореме 7.15 невозможно включение EXPSPACE £ NP, ибо класс EXP-SPACE строго содержит класс P-SPACE, который в свою очередь включает класс NP. Из недетерминированного варианта теоремы 7.16, вытекающего из результатов Кука [93] (см. также [475]), следует, что невозможно включение NEXP-TIME = NP. Не следует также надеяться, что удастся доказать неравенство Р =#ь NP с использованием понятия полноты в классе EXP-TIME, потому что если бы некоторая задача класса NP была бы полна в классе EXP-TIME, то имело бы место маловероятное (хотя пока и не опровергнутое) включение EXP-TIME г NP. Отметим также, что лемма 7.2 остается верной и в случае, если в ее условии заменить класс NP классом P-SPACE, и аналогичные замечания можно сделать относительно попыток доказательства этим методом неравенства Р ^ P-SPACE.
Таким образом, лемма 7.1 оказывается слишком неконкретной, чтобы ее можно было использовать для доказательства труднорешаемости на “нижнем” уровне иерархии, соответствующем классу NP. Следовательно, вместо того чтобы пытаться доказать неравенство P^NP посредством (хотя бы
даже косвенного) сведения труднорешаемой задачи к задаче класса NP, можно было бы с помощью метода диагонализации, используемого в доказательствах теорем 7.15 и 7.16, попытаться построить труднорешаемую задачу в классе NP непосредственно. К сожалению, такого построения не известно, и стандартные методы построения подобных задач, видимо, неприменимы к доказательству утверждения Р =/= NP. Причины этого можно пояснить с помощью понятия ‘‘релятивизация’’.
В работе [25] замечено, что обычные методы диагонализации (а также метод “моделирования", подобный методу доказательства теоремы 2.1) применимы и в случае “релятивизации" относительно любого языка Lo, т. е. и в том случае, если все программы для машин Тьюринга превращаются в программы для машин с оракулом Lo. Например, релятивизованная версия теоремы 7.16 формулируется так:
Теорема, 7.16. (релятивизованная). Если функции Fi(n) и Fi(n) конструируемы по времени и
то существует язык L, распознаваемый некоторой ОМТ-программой с оракулом Lo и временной сложностью, ограниченной Fi(n) -log2 Fs(n), но не распознаваемый никакой ОМТ-программой с оракулом Lo и временной сложностью, ограниченной F^n).
Эта релятивизованная теорема верна для любого языка Lo. То же самое верно и для релятивизованной версии теоремы 7.15. Таким образом, если мы умеем доказывать, что P^NP с помощью метода диагонализации, то следует ожидать, что то же самое доказательство верно и для утверждения PL =/= NPL (где pz. и Mpt — варианты классов Р и NP, определяемые с помощью оракульных машин Тьюринга с оракулом L). С другой стороны, если бы методами моделирования удалось доказать, что Р = NP, то из этого следовало бы, что для любого языка L верно утверждение PL = NPL, ибо методы моделирования легко релятивизовать. Поскольку все основные методы доказательства результатов подобного сорта относятся к двум упомянутым выше типам, то следующие теоремы [25] выглядят несколько обескураживающими.
Теорем а 7.18. Существуют рекурсивные языки А и В, такие.
ЧТО
(1) рх = NP14, (2) PB^ NPB.
Эта теорема дает яркое подтверждение тому, что современные методы доказательства не достаточны ни для доказательства того, что Р #= NP, ни того, что Р = NP. Результаты, взятые из той же работы, приводимые ниже, указывают также на то, что эти методы бесполезны и для решения других открытых вопросов.
Теорема 7.19. Существуют рекурсивные языки D, Е, F и G, такие, что:
NP° ^ co-NPD,
NP£ = co-NP£, но Р£ #= NP£,
P£=# NP£, но Р£= NP£pco-NPF,
Р° Ф NP° fl co-NP°, но NP° Ф co-NP°.
Более того, пользуясь этими результатами (а также результатами работы [26]), можно сформулировать аналогичные утверждения относительно возможности доказательства современными средствами родственных утверждений, касающихся полиномиальной иерархии и вопроса о взаимоотношении классов Р и P-SPACE. (В вопросе о памяти имеется, однако, неясность, связанная с выбором соответствующей модели для получения результатов о релятивизации, см. [315] и [369].)
Для решения вопросов о взаимоотношениях между классами Р и NP, а также других, упомянутых выше классов языков, вероятно, требуются совершенно иные методы доказательства. В том случае, конечно, если вообще подобные вопросы можно решить. Хартманне и Хопкрофт [201] применили методы релятивизации, близкие к рассмотренным выше, чтобы пояснить возможность того, что, по крайней мере в принципе, вопросы такого типа могут быть независимыми от теории множеств и, следовательно, неразрешимыми при использовании стандартных логических средств. Хотя авторы этой книги, как и многие другие специалисты в данной области, не так пессимистически смотрят на разрешимость вопроса о взаимоотношении классов Р и NP, никто не надеется, что этот вопрос будет решен в скором времени.
А. Приложение
Список NP-полных задач
В настоящее время при изучении задачи с вычислительной точки зрения стало более или менее общепринятым формулировать вопрос об ее NP-полноте (или NP-трудности). Вследствие этого в научной литературе появилось много результатов об NP-полноте, а еще большее число полученных результатов не опубликовано. В настоящем приложении собрано много подобных результатов. Они представлены в виде списка задач, NP- полнота или NP-трудность которых установлена.
В списке содержится более 300 основных элементов, а комментарии к ним в несколько раз увеличивают общее число формулируемых результатов. Каждый элемент списка состоит из четырех частей: (1) названия задачи, (2) ее описания, (3) указания источника, из которого взят соответствующий результат, 4) дополнительных комментариев.
Название задачи служит удобным сокращением, которое используется для ссылок в тексте книги. Из соображений согласованности сокращений в некоторых случаях названия задач несколько отличаются от традиционных. Звездочка в скобках (*), которая следует за названием некоторых задач, указывает на тот факт, что принадлежность задачи классу NP не установлена, поэтому формулируемый результат следует понимать как NP-трудность задачи, а не как ее NP-полноту.
Описание задач дано в стандартной форме, которой мы придерживались на протяжении всей книги, при этом формулируются условие и вопрос задачи. (В качестве основных элементов списка мы взяли лишь задачи распознавания свойств, хотя в комментариях иногда упоминаются и другие типы задач.) В большинстве случаев нам удалось сформулировать задачу на языке теории множеств и тем самым дать полное ее описание. Однако стремление сделать описание сжатым часто приводит к тому, что задачи становятся интуитивно менее ясными, и в этих случаях читатель может обратиться к литературным источникам. Некоторые общеизвестные термины не определяются, а громоздкие определения, общие для целой группы задач, приводятся только один раз, в первой задаче, для формулировки которой они потребовались. Иногда полная формулировка задачи весьма сложна или требует обширного подготовительного материала. Поэтому мы даем только набросок формулировки, пользуясь отдельными “ключевыми" словами. При этом явно
указаны литературные источники, в которых можно найти более точную формулировку.
В части, относящейся к источнику задачи, указывается как библиографический источник, откуда взят основной результат, так и соответствующая “известная NP-полная (или NP-труд- ная) задача”, которой можно воспользоваться для доказательства результата. При этом мы выбирали задачи так, чтобы доказательство сводимости было, с нашей точки зрения, наиболее естественным, и часто исходили не из доказательства, приводимого в литературном источнике, а из доказательств, упомянутых в комментариях, или из наших собственных, неопубликованных доказательств. Некоторые результаты представляются настолько простыми, что некому за них воздать почести и некого упрекнуть.
В разделе комментарий приводятся различные варианты основного результата. В комментариях обычно цитируются различные результаты, касающиеся разрешимости за полиномиальное время и NP-трудности некоторых частных случаев и вариантов основной задачи. Таким образом, список может служить полезным источником информации о том, какие задачи можно, а какие нельзя (при условии Р #= NP) решить за полиномиальное время. Однако мы не пытались цитировать “наилучший" из известных полиномиальных алгоритмов решения задачи, а лишь принципиально обосновывали утверждение о разрешимости задачи за полиномиальное время. В тех случаях когда это необходимо, упоминаются также результаты о труднорешаемости и неразрешимости различных обращений и вариантов основной задачи. Для задач, принадлежность которых классу NP не известна, приводится дополнительная информация о сложности задачи, в частности сведения о P-SPACE-полноте задачи или КР-полноте соответствующей задачи перечисления.
Задачи в списке разбиты на тематические группы. Они подразделяются на двенадцать категорий:
А1 Теория графов
А2 Построение сетей
АЗ Множества и разбиения
А4 Хранение и поиск данных
А5 Теория расписаний
Аб Математическое программирование
А7 Алгебра и теория чисел
А8 Игры и головоломки
А9 Логика
АЮ Автоматы и языки
АП Оптимизация программ
А12 Разное
Задачи каждой категории нумеруются индивидуально, причем перед номером задачи пишутся первые буквы из названия соответствующего раздела (например, ТГ 7 соответствует седьмой задаче из раздела теории графов). В тринадцатой “категории” перечислено небольшое число открытых задач, выбранных на основе нашего представления об их важности и сложности. Другие открытые задачи рассеяны в комментариях к задачам основного списка, а очевидные пробелы в списке могут подсказать еще большее число таких задач.
Многие задачи из списка вполне можно было бы отнести к нескольким различным категориям, так что мы советуем читателю внимательно просмотреть список, чтобы получить лучшее представление о том, в каком разделе следует искать ту или иную задачу. Следует также помнить, что комментарии к задачам следует просматривать особенно тщательно, потому что многие результаты упоминаются только в них. В указателе мы попытались привести полезную “навигационную" информацию.
Наконец, несколько слов о стандартах и методике, которой мы придерживались при составлении списка. Как и все списки подобного рода, список, приводимый ниже, в какой-то степени отражает вкусы авторов, но мы пытались в разумных пределах сделать его полным. При составлении списка мы не ограничились изучением публикаций, а пытались расширить нашу коллекцию сведений об NP-полноте из личных бесед, давали объявления в соответствующей периодике и на тематических конференциях с просьбой присылать нам неопубликованные результаты. При этом, однако, в список не вошел ни один результат, для которого не было бы приведено соответствующего подтверждения. Неопубликованные результаты включены в список или на основе рукописных заметок автора, или на основе наброска доказательства, который проверили либо мы сами, либо наши “доверенные эксперты”. В отдельных случаях мы проверяли результат, пытаясь получить для него новое, собственное доказательство (зачастую это оказывается проще, чем проверять чужое доказательство).
Некоторые результаты мы не включили в список (хотя нас все-таки можно упрекнуть в том, что мы включили в список некоторые весьма специфические задачи). В большинстве случаев мы избегали задач со слишком сложной формулировкой, ограничиваясь в таких случаях лишь ссылкой на литературу, это не относится, однако, к задачам, которые, как нам казалось, окажутся интересными для специалистов. Мы также не включали в список задачи, NP-полнота которых непосредственно вытекает из NP-полноты других задач списка, опять-таки делая исключения для задач, представляющих значительный незави-
симый интерес, и для задач, подзадачи которых нам хотелось бы прокомментировать. Таким образом, список не следует считать энциклопедически полным, содержащим все известные результаты об NP-полноте. Правильнее его считать, с одной стороны, аннотированной библиографией, служащей отправной точкой для изучения литературы по теории NP-полноты, а с другой стороны, базой данных, включающей обширный набор NP-полных задач, которыми можно воспользоваться для доказательства NP-полноты других задач.
А1. ТЕОРИЯ ГРАФОВ
ALL Покрытие и разбиение
[ТГ 11 ВЕРШИННОЕ ПОКРЫТИЕ
УСЛОВИЕ. Заданы граф G(V, Е) и положительное целое число
ВОПРОС. Существует ли в графе G вершинное покрытие мощности, не превосходящей К, т. е. существует ли подмножество V'sV, такое что |У'|^К и для любого ребра (и, и)еЕ по крайней мере одна из вершин и или и принадлежит 0?
Источник [280]. К рассматриваемой задаче сводится задача 3-ВЫП (см. гл. 3).
Комментарий. При некоторых ограничениях на граф G эта задача эквивалентна по сложности задаче НЕЗАВИСИМОЕ МНОЖЕСТВО. Если потребовать, чтобы подграф, индуцированный множеством вершин V', был связен, то задача остается NP-полной даже для планарных графов, у которых степени всех вершин не превосходят 4, см. [149]. Задача легко решается за полиномиальное время, если потребовать, чтобы множество V' было одновременно и вершинным покрытием и независимым множеством в графе G. Близкая по постановке задача РЕБЕРНОЕ ПОКРЫТИЕ, в которой ищется наименьшее подмножество Е' = Е, такое, что каждая вершина ve V принадлежит по крайней мере одному ребру егЕ', может быть решена за полиномиальное время, если искать паросочетания в графе (см., например, [324]).
[ТГ 2] ДОМИНИРУЮЩЕЕ МНОЖЕСТВО
УСЛОВИЕ. Заданы граф О=(У, Е) и положительное целое число К ^| У|.
ВОПРОС. Существует ли в графе G доминирующее множество, состоящее не более чем из К элементов, т. е. подмножество V' г. V, такое, что |V'|^ К и для всех вершин и не У\И' существует такая вершина и е V', что (u, y}s Е?
Источник. К этой задаче сводится задача ВЕРШИННОЕ ПОКРЫТИЕ.
Комментарий. Задача остается NP-полной, если ограничиться графами со степенью вершин не более 3 или планарными регулярными графами степени 4 [152]. Модификация этой задачи, в которой требуется, чтобы индуцированный на множестве V' граф был связен, также является NP-полной, если ограничиться планарными регулярными графами степени 4 [152]. Эта задача будет NP-полной и в том случае, если потребовать, чтобы множество V' было одновременно доминирующим и независимым. На деревьях задача разрешима за полиномиальное время [81]. Близкая задача ДОМИНИРУЮЩЕЕ МНОЖЕСТВО РЕБЕР, в которой ищется подмножество Е' Е Е, состоящее не более чем из К ребер, таких, что любое ребро из Е имеет общую вершину по крайней мере с одним ребром из множества Е', является NP-полной даже для планарных и двудольных графов с максимальной степенью вершин, равной 3, однако на деревьях может быть решена за полиномиальное время [540], [390].
[ТГ 3] ЧИСЛО ДОМИНИРУЮЩИХ ПОДМНОЖЕСТВ
УСЛОВИЕ. Заданы граф G=(V,Е^ и положительное целое число К | У|.
ВОПРОС. Верно ли, что в графе G имеется не менее К различных доминирующих множеств, т. е. можно ли V разбить на к^К непересекающихся подмножеств Vi, Vi, .... Vk, таких, что Vi есть доминирующее множество в графе G?
Источник [159]. К этой задаче сводится задача 3-ВЫП. Рассматриваемая задача обсуждается в работе [82].
Комментарий. Задача остается NP-полной для любого фиксированного К ^ 3. (Если граф G не содержит изолированной вершины, то число доминирующих подмножеств равно по крайней мере 2).
[ТГ 4] РАСКРАШИВАЕМОСТЬ ГРАФА (ХРОМАТИЧЕСКОЕ ЧИСЛО)
УСЛОВИЕ. Заданы граф G=(V, Е) и положительное целое число К^|У|.
ВОПРОС. Верно ли, что граф G /(-раскрашиваем? (Граф называется /(-раскрашиваемым, если существует такая функция /: У->{1,2, .... К}, что если (и, и}е£, то f(u)^= f(и).)
Источник [280]. К этой задаче сводится задача 3-ВЫП.
Комментарий. При К = 2 задача разрешима за полиномиальное время, но при всех фиксированных К ^ 3, а также для
К = 3 и плоских графов, степени всех вершин которых не превосходят 4, задача NP-полна. Она остается также NP-полной при К = 3, когда G— это граф пересечений отрезков прямых линий на плоскости [112]. Задача NP-полна также для произвольного К и графов пересечения окружностей и дуг окружностей (даже если графы представлены в виде семейства дуг). Для графов пересечения дуг окружностей, представленных в виде семейства дуг, при любом фиксированном К задача разрешима за полиномиальное время [153]. В общем случае задача может быть решена за полиномиальное время для графов сравнимости [117], для триангулированных графов [163], для (3,1)- графов Го32], а также для графов, не имеющих вершин степени выше 3 [56].
[ТГ 5] АХРОМАТИЧЕСКОЕ ЧИСЛО
УСЛОВИЕ. Заданы граф G = (V,E) и положительное целое число К ^ | У|.
ВОПРОС. Верно ли, что ахроматическое число графа G больше К? Иными словами, существует ли разбиение множества V на непересекающиеся подмножества Vj, У2, .... Vk, k^ К, такие, что все V; являются независимыми множествами графа G (т. е. никакие две вершины из V, не соединены ребром из Е) и для любой пары (V/, Vj) различных подмножеств множество Vi U Vj не есть независимое подмножество в G?
Источник [540]. К этой задаче сводится задача МИНИМАЛЬНОЕ ПО МОЩНОСТИ МАКСИМАЛЬНОЕ ПАРОСОЧЕТА- НИЕ.
Комментарий. Задача остается NP-полной и в том случае, если G есть дополнение к двудольному графу, и, следовательно, любое независимое подмножество содержит не более двух вершин.
[ТГ 6] МОНОХРОМАТИЧЕСКИЙ ТРЕУГОЛЬНИК УСЛОВИЕ. Задан граф G = (V, Е).
ВОПРОС. Существует ли разбиение множества Е на два не- пересекающихся подмножества Ei и £2, такие, что ни один из графов Gi =(V, Ei) или О2=(У, Е2) не содержит треугольника?
Источник [63]. К этой задаче сводится задача 3-ВЫП.
Комментарий. Варианты этой задачи, в которых "треугольник” заменяется любым фиксированным полным графом с большим числом вершин, также NP-полны [63]. Варианты задачи, в которых “треугольник" заменяется на “^-звезду” (т. е. на граф, у которого центральная вершина степени £ соединена с к
другими вершинами степени 1), разрешимы за полиномиальное время [64].
(ТГ 7] МНОЖЕСТВО ВЕРШИН, РАЗРЕЗАЮЩИХ КОНТУРЫ УСЛОВИЕ. Заданы ориентированный граф G=(V, А) и положительное целое число К ^ | V| .
ВОПРОС. Существует ли подмножество V* s V, такое, что | V" | ^ Л и V' содержит по крайней мере одну вершину любого ориентированного цикла в G?
Источник [280]. К этой задаче сводится задача ВЕРШИННОЕ ПОКРЫТИЕ.
Комментарий. Задача остается NP-полной, если ограничиться графами, у которых все вершины имеют степень захода (или выхода) не больше 2, или плоскими графами со степенью захода (или выхода) не более 3 [152], а также если ограничиться реберными ориентированными графами [168]. Для редуцируемых графов задача может быть решена за полиномиальное время [481]. Соответствующая задача для неориентированных графов также NP-полна.
[ТГ 8] МНОЖЕСТВО ДУГ, РАЗРЕЗАЮЩИХ КОНТУРЫ
УСЛОВИЕ. Заданы ориентированный граф G(V, Л) и положительное целое число К | А |.
ВОПРОС. Существует ли подмножество А'г А, такое, что ]Л'|^/( и А* содержит по крайней мере одну дугу из каждого ориентированного цикла в G?
Источник [280]. К этой задаче сводится задача ВЕРШИННОЕ ПОКРЫТИЕ.
Комментарий. Задача остается NP-полной, если ограничиться ориентированными графами, у которых все вершины имеют степень захода и выхода не более 3, или реберными ориентированными графами [168]. Для планарных ориентированных графов задача разрешима за полиномиальное время [361]. Соответствующая задача для неориентированных графов тривиальным образом решается за полиномиальное время.
[ТГ 9] МНОЖЕСТВО ДУГ, ЧАСТИЧНО РАЗРЕЗАЮЩИХ ЦИКЛЫ
УСЛОВИЯ. Заданы граф G = (V, £) и положительные целые числа К и L, К^|Е|,£^|Р|.
ВОПРОС. Существует ли подмножество Е's Е, такое, что (E'l^K и Е' содержит по крайней мере одну дугу из каждого ориентированного цикла в G, имеющего длину не более L?
Источник [538]. К этой задаче сводится ВЕРШИННОЕ ПОКРЫТИЕ.
Комментарий. Задача остается NP-полной для любого фиксированного L 3, а также для двудольных графов (с фиксированным Е^4). Однако если Е=|У|, т. е. если отыскивается множество Е', содержащее ребро из каждого цикла в G, то задача легко решается за полиномиальное время.
[ТГ 10] МИНИМАЛЬНОЕ ПО МОЩНОСТИ МАКСИМАЛЬНОЕ ПАРОСОЧЕТАНИЕ
УСЛОВИЕ. Заданы граф G = (V, Е) и положительное целое число К^|Е|.
ВОПРОС. Существует ли подмножество Е' £ Е, такое, что |£'|^К и Е' — максимальное паросочетание, т. е. никакие два ребра из Е' не имеют общего конца, а любое ребро из множества Е\Е' имеет общий конец с одним из ребер множества Е'1
Источник [540]. К этой задаче сводится задача ВЕРШИННОЕ ПОКРЫТИЕ для кубических графов.
Комментарий. Задача остается NP-полной, если ограничиться планарными графами или двудольными графами, не имеющими вершин, степени выше 3. Задача отыскания максимального из “максимальных паросочетаний” аналогична обычной задаче о паросочетании и разрешима за полиномиальное время (см., например, [324]).
[ТГ 11] РАЗБИЕНИЕ НА ТРЕУГОЛЬНИКИ
УСЛОВИЕ. Задан граф G =(V, Е), такой, что для некоторого целого числа q*. | У| = 3?.
ВОПРОС. Можно ли разбить вершины графа G на q непересе- кающихся множеств Уь У2, ■ ■ ■, Vq, таких, что каждое из них содержит ровно 3 вершины и для всех У, = {и,, о,, zy,}, 1 ^ i ^ ^9, ребра {и,, у,}, {и,, ну,} и {о,, гу,} принадлежат множеству Е?
Источник [472]. К этой задаче сводится задача 3-С (см. гл. 3).
Комментарий. Эта задача — частный случай задачи [ТГ 12].
[ТГ 12] РАЗБИЕНИЕ НА ИЗОМОРФНЫЕ ПОДГРАФЫ
УСЛОВИЕ. Заданы графы О(У, Е) и H = (V', Е'), такие, что для некоторого целого числа q е Z+: | У| = <71 У'|.
ВОПРОС. Можно ли разбить вершины графа G на q непересе- кающихся множеств Уь Уг, ..., У,, таких, что при 1 ^ i ^ q подграфы графа G, индуцированные множествами У/, изоморфны графуHt
Источник [288]. К этой задаче сводится задача 3-С.
Комментарий. Задача остается NP-полнойдля любого фиксированного графа Н, содержащего по крайней мере 3 вершины. Если Н — любой фиксированный граф, содержащий связную компоненту, имеющую не менее 3 вершин, то аналогичная задача, в которой требуется, чтобы число вершин в подграфах, индуцированных множествами У/, было равно числу вершин графа Н, а подграфы, индуцированные множествами Vi, содержали подграф, изоморфный И, также NP-полна. Для любого графа Н, не удовлетворяющего сформулированному выше требованию, обе последние задачи могут быть решены за полиномиальное время (с помощью паросочетаний).
[ТГ 13] РАЗБИЕНИЕ НА ГАМИЛЬТОНОВЫ ПОДГРАФЫ УСЛОВИЕ. Задан ориентированный граф G = (V, А).
ВОПРОС. Можно ли разбить вершины графа G на непересе- кающиеся подмножества Уь Vi, • • •, Ул, такие, что каждое Vi содержит по крайней мере 3 вершины, а все индуцируемые ими подграфы графа G содержали бы гамильтоновы циклы?
Источник [622]. К этой задаче сводится 3-ВЫП. (См. также [208].)
Комментарий. С помощью метода паросочетаний задача разрешается за полиномиальное время, если потребовать, чтобы Vi содержало не менее двух вершин [108]. Аналогичная задача для неориентированных графов также может быть решена за полиномиальное время, даже если требовать, чтобы |У,|^3. Однако задача остается NP-полной, если требуется, чтобы |У,|>6 [414] или в условии задачи имеется верхняя граница К для величины к.
[ТГ 14] РАЗБИЕНИЕ НА ЛЕСА
УСЛОВИЕ. Заданы граф G = ^V, Е) и положительное целое число К ^ | У|.
ВОПРОС. Можно ли разбить вершины графа G на к ^ К непе- ресекающихся подмножеств У1, Уг, .... Ул, таких, что для всех i, 1 ^ i ^ к, подграф, индуцированный множеством Уь не содержит циклов?
Источник [152]. К этой задаче сводится задача 3-РАСКРАШИ- ВАЕМОСТЬ ГРАФА.
[ТГ 15] РАЗБИЕНИЕ НА КЛИКИ
УСЛОВИЕ. Заданы граф G =(У,£) и положительное целое число К ^| У].
ВОПРОС. Можно ли разбить вершины графа G на к ^ К не- пересекающихся множеств Уь Уг, .... V*, таких что для всех i(l ^ i ^ к) подграф, индуцированный множеством Vi, был бы полным?
Источник [280]. (В этой работе задача названа ПОКРЫТИЕ КЛИКАМИ.) К данной задаче сводится задача К-РАСКРА- ШИВАЕМОСТЬ ГРАФА.
Комментарий. Задача остается NP-полной для реберных графов [22], для графов, не содержащих полных подграфов на 4 вершинах (см. конструкцию в задаче РАЗБИЕНИЕ НА ТРЕУГОЛЬНИКИ в гл. 3),а также для всех фиксированных К ^ 3. Для К ^ 2 задача решается с помощью паросочетания за полиномиальное время, если граф не содержит полных подграфов на 3 вершинах. Она разрешима за полиномиальное время для графов пересечения дуг окружностей (если задано их представление в виде семейства дуг) [165], для триангулированных графов [163] и для графов сравнимости [178].
[ТГ 16] РАЗБИЕНИЕ НА СОВЕРШЕННЫЕ ПАРОСОЧЕТАНИЯ
УСЛОВИЕ. Заданы граф G = (V, Е) и положительное целое число К | У|.
ВОПРОС. Можно ли вершины графа G разбить на к (А К) непересекающихся множеств Уь Уг, • ■ •, У», таких, что для всех I (l^i^A) подграф, индуцированный множеством Vi, является совершенным паросочетанием (или состоит только из вершин степени 1)?
Источник [474]. К этой задаче сводится задача 3-ВЫП С РАЗНОЗНАЧНЫМИ ЛИТЕРАЛАМИ.
Комментарий. Для К = 2 и для планарных кубических графов задача остается NP-полной.
[ТГ 17] ПОКРЫТИЕ КЛИКАМИ
УСЛОВИЕ. Заданы граф б=(У, £) и положительное целое число К^|£|.
ВОПРОС. Существуют ли в множестве V к (к ^К) подмножеств Уь Уг, .. •, У*, таких, что каждое подмножество индуцирует полный подграф графа G и для каждого ребра {и, о)е£ существует подмножество Vi, содержащее как и, так и и?
Источник [298], [405]. К этой задаче сводится задача РАЗБИЕНИЕ НА КЛИКИ.
[ТГ 18] ПОКРЫТИЕ ПОЛНЫМИ
ДВУДОЛЬНЫМИ ПОДГРАФАМИ
УСЛОВИЕ. Заданы двудольный граф G =ЦУ, Е) и положительное целое число К | Е |.
ВОПРОС. Существуют ли k(k ^ К) подмножеств Уь ..., Ук множества V, таких, что каждое подмножество У, индуцирует полный двудольный подграф графа G и для каждого ребра {u, v}e£ существует некоторое У;, содержащее как и, так и и?
Источник [405]. К этой задаче сводится задача РАЗБИЕНИЕ НА клики.
А1.2. Подграфы и надграфы
[ТГ 19] КЛИКА
УСЛОВИЕ. Заданы граф С=(У, Е) и положительное целое число К ^ | V | -
ВОПРОС. Верно ли, что G содержит клику размера не менее К? Иными словами, существует ли подмножество У Е У, такое, что |У'|^Л и любые две вершины в У соединены ребром из Е?
Источник [280]. К этой задаче сводится задача ВЕРШИННОЕ ПОКРЫТИЕ (см. гл. 3).
Комментарий. Задача разрешима за полиномиальное время для следующих графов: ограниченной степени d, планарных, реберных, триангулированных [163], графов сравнимостей [117],графов пересечения окружностей [163], графов пересечения дуг окружностей (если задано их представление в виде семейства дуг) [165]. Вариант этой задачи, в котором при заданном г (0 <_ г < 1) спрашивается, верно ли, что G содержит клику не менее чем на r[ У| вершинах, также NP-полон.
[ТГ 20] НЕЗАВИСИМОЕ МНОЖЕСТВО
УСЛОВИЕ. Заданы граф G = (V, Е) и положительное целое число К ^ | V].■
ВОПРОС. Верно ли, что G содержит независимое множество мощности не менее К? Иными словами, верно ли, что существует подмножество V's У, такое, что | V'[^ К и никакие две вершины из У не соединены ребром из Е?
Источник. К этой задаче сводится задача ВЕРШИННОЕ ПОКРЫТИЕ (см. гл. 3).
Комментарий. Задача остается NP-полной для кубических планарных графов [157, 149, 372], реберных графов, ориентированных графов [168], тотальных графов, двудольных графов [540]
и для графов, не содержащих треугольников [433]. Задача решается за полиномиальное время для двудольных графов (с помощью паросочетаний, см., например, [196]), реберных графов (с помощью паросочетаний), графов, не имеющих вершин степени выше 2, триангулированных графов [163], графов пересечения окружностей [164], графов пересечения дуг окружностей (если задано представление в виде семейства дуг) [165], графов сравнимости [178] и для графов без “3-звезд” [389].
[ТГ 21] ИНДУЦИРОВАННЫЙ ПОДГРАФ СО СВОЙСТВОМ п*
УСЛОВИЕ. Заданы граф G=(V, £) и положительное целое число К ^| У|.
ВОПРОС. Существует ли подмножество V' ^ V, такое, что |У'|^К и подграф графа G, индуцированный множеством V', обладает свойством П (см. комментарий, где указаны возможные варианты выбора П)?
Источник [537,538,341].К этой задаче сводится задача 3-ВЫП.
Комментарий. Задача NP-трудна для любого свойства П, выполняющегося для произвольно больших, но не всех графов и обладающего “наследственностью” (т. е. свойство выполняется для всех подграфов графа, если оно выполняется для самого графа). Если в дополнение к этому для заданного графа за полиномиальное время можно проверить выполнение свойства П, то задача является NP-полной. Ниже приведены примеры таких свойств П: “G есть клика",' “G есть независимое множество”, “G — планарный граф”, “G — двудольный граф", “G — внешнепланарный граф”, “G — реберный граф”, “G — триангулированный граф”, “G — граф сравнимости” и “G — лес”. Те же результаты остаются верными, если G ограничено лишь семейством планарных (соответственно ациклических ориентированных) графов, а ограничения, наложенные на свойство П, выполняются для планарных (соответственно ациклических ориентированных) графов. Более слабые результаты имеют место для двудольных графов [538].
[ТГ 22] ИНДУЦИРОВАННЫЙ СВЯЗНЫЙ ПОДГРАФ СО СВОЙСТВОМ Щ*)
УСЛОВИЕ. Заданы граф G = (V, £) и положительное целое число К С | У|-
ВОПРОС. Существует ли подмножество V' G V, такое, что [ V' | ^ К и подграф графа G, индуцированный подмножеством У', связен и обладает свойством П (возможные варианты выбора свойства П указаны в комментарии) ?
Источник [538]. К этой задаче сводится задача 3-ВЫП.
Комментарий. Задача NP-трудна для любого свойства с условием наследственности и выполняющегося для произвольно больших связных, но не для всех связных графов. Если в дополнение к этому для заданного графа за полиномиальное время можно проверить выполнение свойства П, то задача является NP-полной. В качестве П можно взять любое из свойств, перечисленных в предыдущей задаче, кроме “G есть независимое множество”. Близкий по формулировке вопрос: “Верно ли, что максимальный индуцированный подграф графа G, обладающий свойством П, также является связным?" — не лежит ни в NP, ни в co-NP, если NP ф co-NP [538].
[ТГ 23] ИНДУЦИРОВАННЫЙ ПУТЬ
УСЛОВИЕ. Заданы граф G = (V, Е) и положительное целое число К ^| У|.
ВОПРОС. Существует ли подмножество V's V, такое, что |У'|^К и подграф, индуцированный множеством V', является простым путем на |Й'| вершинах?
Источник [539]. К этой задаче сводится задача 3-ВЫП.
Комментарий. Заметим, что в данном случае свойство не обладает наследственностью, поэтому настоящий результат не следует из двух предыдущих. Задача остается NP-полной, если G — двудольный граф. Этот же результат имеет место для варианта задачи, в котором вместо “простого пути’’ отыскивается “простой цикл”. Задачи об отыскании самого длинного простого пути или самого длинного простого цикла (не обязательно индуцированных) также являются NP-полными.
[ТГ 24] СБАЛАНСИРОВАННЫЙ ПОЛНЫЙ ДВУДОЛЬНЫЙ ПОДГРАФ
УСЛОВИЕ. Заданы двудольный граф G =ЦУ, Е) и положительное целое число К ^ | У |.
ВОПРОС. Существуют ли два непересекающихся подмножества Vi, Уг^У. такие, что | У:| = | Уг| = К, и из того, что ие е Уь и е У2, следует, что {u, и}е Е"?
Источник [152]. К этой задаче сводится задача КЛИКА.
Комментарий. Близкая задача, в которой требование “|Vi| = = |У2| = К" заменено требованием “| У1Ц-|У2| = К” для двудольных графов, разрешима за полиномиальное время (в силу имеющейся в таких графах связи между паросочетаниями и независимыми множествами, см., например, [196]), а для произвольных графов NP-полна [538].
[ТГ 25] ДВУДОЛЬНЫЙ ПОДГРАФ
УСЛОВИЕ. Заданы граф G=(V, Е) и положительное целое число К ^ |Е|.
ВОПРОС. Существует ли подмножество Е* еЕ, такое, что | Е* | ^ К и G' = (V, Е') — двудольный подграф?'
Источник [157]. К данной задаче сводится задача МАКСИМАЛЬНАЯ 2-ВЫПОЛНИМОСТЬ.
Комментарий. Задача остается NP-полной для графов, не имеющих вершин степени более 3 и не содержащих треугольников, и (или) если потребовать совязности искомого подграфа [538]. Задача разрешима за полиномиальное время, если G — планарный граф [195, 406] или если К = |Е|.
[ТГ 26] СВЯЗНЫЙ ПОДГРАФ ОГРАНИЧЕННОЙ СТЕПЕНИ УСЛОВИЕ. Заданы граф G = (V, Е), неотрицательное целое число d^ |У| и положительное целое число К^|Е|.
ВОПРОС. Существует ли подмножество Е'гЕ, такое, что |Е'|^К и подграф G' = (V,Е') связен и не имеет вершин степени более d?
Источник [538]. К этой задаче сводится задача ГАМИЛЬТОНОВ ПУТЬ.
Комментарий. Задача остается NP-полной для любого фиксированного d 2. Разрешима (с помощью техники паросочета- ний, см. [108]) за полиномиальное время, если не требовать связности G'. Соответствующая задача об индуцированном подграфе, в которой отыскивается подмножество V' = V, такое, что |У'[^К и подграф, индуцированный подмножеством V', не имеет вершин степени выше d, является NP-полной для любого фиксированного d^O [342а], а если потребовать связности графа О', то NP-полна для любого фиксированного d ^ 2 [538].
[ТГ 27] ПЛАНАРНЫЙ ПОДГРАФ
УСЛОВИЕ. Заданы граф G = (V, Е) и положительное целое число К ^ | Е | •
ВОПРОС. Существует ли подмножество Е' = Е, такое, что |Е'|>К и граф G' = (У, Е') планарен?
Источник [358]. К данной задаче сводится ограниченная на двудольные графы задача ГАМИЛЬТОНОВ ПУТЬ.
Комментарий. Соответствующая задача, в которой граф G' есть подграф, индуцированный подмножеством V', содержащим не менее К вершин, также NP-полна [306, 538]. Если К = |Е|, то за полиномиальное время может быть решена первая задача,
а если K = |V|— то вторая (это объясняется тем, что проверку планарности графа можно осуществить за полиномиальное время; см., например, [213]). Близкая задача, в которой спрашивается: “Содержит ли G связный “внешнепланарный'' подграф с К или более вершинами", также NP-полна [538].
[ТГ 28] РЕБЕРНЫЙ ПОДГРАФ
УСЛОВИЕ. Заданы граф G = (V, Е) и положительное целое число К ^ |£|.
ВОПРОС. Существует ли подмножество Е's Е, такое, что |£'|^7< и подграф G' = (V, Е') есть реберный граф? (Граф G' = (V, Е') называется реберным, если существует граф Н = = {U,F), такой, что G' изоморфен графу с множеством вершин F и множеством ребер, состоящим из всех пар ребер {е, /}, та- ких, что е и f имеют общий конец из множества и.)
Источник [538]. К этой задаче сводится задача 3-ВЫП.
Комментарий. Задача остается NP-полной даже в том случае, если в G нет вершины, степень которой больше 4. Если потребовать связности подграфа, то NP-полнота задачи сохранится и при снижении ограничения на степень до 3. Реберные графы можно распознать за полиномиальное время (см., например, [196], где используется термин “реберные графы”).
[ТГ 29] ТРАНЗИТИВНЫЙ ПОДГРАФ
УСЛОВИЕ. Заданы ориентированный граф G = (V, Л) и положительное целое число К ^ [ Л |.
ВОПРОС. Существует ли подмножество A’s А, такое, что |Л'|^/( и граф G' = (У, А') транзитивен? (Граф G' = (У, А') называется транзитивным, если для любой пары вершин и и о существует третья вершина meV, такая, что (и, ю), (ту, и)еА', то (и, и)еЛ'.)
Источник [538]. К этой задаче сводится задача ДВУДОЛЬНЫЙ ПОДГРАФ (в которой рассматриваются только подграфы, не содержащие треугольников).
Комментарий. NP-полным является также вариант этой задачи, в котором G — неориентированный граф, и спрашивается, существует ли “подграф сравнимости”, т. е. такой подграф, который с помощью выбора подходящей ориентации ребер можно сделать транзитивным ориентированным графом. Этот вариант остается NP-полным даже тогда, когда в G нет вершин степени больше 3. В обоих случаях задачи остаются NP-полными, если потребовать связности искомого подграфа.
[ТГ 30] ОДНОСТОРОННЕ СВЯЗНЫЙ ПОДГРАФ
УСЛОВИЕ. Заданы ориентированный граф G = (V, А) и положительное целое число К ^ | Л|.
ВОПРОС. Существует ли подмножество А' г А, такое, что |А'|^Я и граф G' = (У, А') имеет по крайней мере один ориентированный путь между любой парой вершин?
Источник [370]. К этой задаче сводится задача ВЕРШИННОЕ ПОКРЫТИЕ.
Комментарий. Задача остается NP-полной и для ациклических ориентированных графов.
[ТГ 31] МИНИМАЛЬНЫЙ К-СВЯЗНЫЙ ПОДГРАФ
УСЛОВИЕ. Заданы граф G = (V, Е) и положительные целые числа К и В (КС|К|, В^|Е|).
ВОПРОС. Существует ли подмножество Е' = Е, такое, что |Е'|^5 и граф G' = (V, Е') является /(-связным (граф называется /(-связным, если он остается связным после удаления любых К—1 вершин (и инцидентных им ребер)).
Источник [72]. К этой задаче сводится задача ГАМИЛЬТОНОВ ЦИКЛ.
Комментарий. Соответствующая задача о реберно-связном графе также NP-полна. Обе задачи (о вершинной и реберной связности) NP-полны для любого фиксированного К ^ 2, а для К = 1 тривиально решаются за 'полиномиальное время.
[ТГ 32] КУБИЧЕСКИЙ ПОДГРАФ
УСЛОВИЕ. Задан граф G = (У, Е).
ВОПРОС. Существует ли непустое подмножество Е's Е, такое, что в графе G' = (У, Е'^ любая вершина имеет степень, равную 3 или 0?
Источник [75]. К этой задаче сводится задача 3-РАСКРАШИ- ВАЕМОСТЬ ГРАФА.
[ТГ 33] МИНИМАЛЬНЫЙ ЭКВИВАЛЕНТНЫЙ ОРИЕНТИРОВАННЫЙ ГРАФ
УСЛОВИЕ. Заданы ориентированный граф G = (V, Л) и положительное целое число К ^|Л|.
ВОПРОС. Существует ли подмножество А* е А, такое, что [A'l^K и для любой упорядоченной пары вершин и, уеУ в графе G' — (V,A') тогда и только тогда имеется ориентированный путь из и к и, если такой путь имеется в G.
[ТГ 34] ГАМИЛЬТОНОВО ПОПОЛНЕНИЕ
УСЛОВИЕ. Заданы граф G=(V,E) и неотрицательное целое число К ^ | У|.
ВОПРОС. Существует ли множество Е', содержащее множество Е и такое, что [E'XEI^K, а граф G' = (V, Е') имеет гамильтонов цикл?
Источник. К этой задаче сводится ГАМИЛЬТОНОВ ЦИКЛ.
Комментарий. Задача остается NP-полной для любого фиксированного К ^ 0. Аналогичным образом построенные задачи о пополнении для задач ГАМИЛЬТОНОВ ПУТЬ, ОРИЕНТИРОВАННЫЙ ГАМИЛЬТОНОВ ПУТЬ и ОРИЕНТИРОВАННЫЙ ГАМИЛЬТОНОВ ЦИКЛ также NP-полны. Задачи ГАМИЛЬТОНОВО ПОПОЛНЕНИЕ и ГАМИЛЬТОНОВ ПУТЬ В ПОПОЛНЕНИИ могут быть решены за полиномиальное время, если G — дерево (см. [45]).
[ТГ 35] ПОПОЛНЕНИЕ ДО ГРАФА ИНТЕРВАЛОВ
УСЛОВИЕ. Заданы граф G = (V, Е) и неотрицательное целое число К.
ВОПРОС. Существует ли множество Е', содержащее Е, такое, что |Е'\Е|^К и граф GZ = (V, Е') является графом интервалов?
Источник [140]. К данной задаче сводится задача ОПТИМАЛЬНОЕ ЛИНЕЙНОЕ УПОРЯДОЧЕНИЕ
Комментарий. Задача остается NP-полной, если ограничиться только реберными графами. Для К = 0 задача разрешима за полиномиальное время, см. [132, 54].
[ТГ 36] ПОПОЛНЕНИЕ ДО ГРАФА ПУТЕЙ
УСЛОВИЕ. Заданы граф G = (V, Е) и неотрицательное целое число К-
ВОПРОС. Существует ли множество Е', содержащее множество Е, такое, что [Е'ХЕ^К и граф G' — (V, Е') есть граф пересечения семейства путей в неориентированном дереве?
Источник [169]. К этой задаче сводится ПОПОЛНЕНИЕ ДО ГРАФА ИНТЕРВАЛОВ.
Комментарий. Соответствующая задача, в которой требуется, чтобы G был графом пересечения ориентированных путей в ориентированном дереве (т. е. корневом дереве с направлением дуг от корня), также является NP-полной.
А1.3. Упорядочение вершин
[ТГ 37] ГАМИЛЬТОНОВ ЦИКЛ
УСЛОВИЕ. Задан граф G = (V, Е).
ВОПРОС. Имеется ли в G гамильтонов цикл?
Источник [280]. К этой задаче сводится задача ВЕРШИННОЕ ПОКРЫТИЕ (см. гл. 3).
Комментарий. Задача остается NP-полной в следующих случаях: (1) G — планарный, кубический, 3-связный и не имеет граней, ограниченных меньше чем пятью ребрами [158], (2) G — двудольный [305], (3) G — квадрат некоторого графа [75], (4) в условии задачи задан некоторый гамильтонов путь в графе G [417], (5) G— реберный граф. Задача разрешима за полиномиальное время, если в G нет вершин степени больше 2 или если G — реберный граф (см., например, [357]). Куб нетривиального связного графа всегда содержит гамильтонов цикл, см. [277].
[ТГ 38] ОРИЕНТИРОВАННЫЙ ГАМИЛЬТОНОВ ЦИКЛ УСЛОВИЕ. Задан ориентированный граф G = (У, А).
ВОПРОС. Имеется ли в G ориентированный гамильтонов цикл?
Источник [280]. К этой задаче сводится задача ВЕРШИННОЕ ПОКРЫТИЕ (см. гл. 3).
Комментарий. Задача остается NP-полной, если G — планарный граф, не имеющий вершин, инцидентных более чем трем дугам [432]. Задача разрешима за полиномиальное время, если степени захода (или выхода) всех вершин не превосходят 1, а также если G — граф турнира, см. [393], или реберный граф (см., например, [357]).
[ТГ 39] ГАМИЛЬТОНОВ ПУТЬ
УСЛОВИЕ. Задан граф G = (V, £).
ВОПРОС. Верно ли, что в G имеется гамильтонов путь?
Источник. К этой задаче сводится задача ВЕРШИННОЕ ПОКРЫТИЕ (см. гл. 3).
Комментарий. Задача остается NP-полной в случаях (1) и (2) из задачи ГАМИЛЬТОНОВ ЦИКЛ и разрешима за полиномиальное время при тех же предположениях, при которых разрешима и задача ГЦ. Соответствующая задача ОРИЕНТИРОВАННЫЙ ГАМИЛЬТОНОВ ПУТЬ является NP-полной, к ней также применимы комментарии из задачи ОРИЕНТИРОВАННЫЙ ГЦ. Задача остается NP-полной, если в условии указана
начальная или конечная или обе точки пути. Задача ОРИЕНТИРОВАННЫЙ ГАМИЛЬТОНОВ ПУТЬ может быть решена за полиномиальное время для ациклических ориентированных графов (см., например, [324]).
[ТГ 40] ШИРИНА
УСЛОВИЕ. Заданы граф G = (K, Е) и положительное целое число К ^ | У|.
ВОПРОС. Существует ли линейное упорядочение множества V, такое, что его ширина не более /С? Иными словами: “Существует ли взаимно-однозначная функция f; У->{1, 2 |У|}>
такая, что для всех {и, о}еЕ выполнено соотношение |f(u) — -f(v)|^K?”
Источник [407]. К этой задаче сводится З-РАЗБИЕНИЕ.
Комментарий. Остается NP-полной для деревьев со степенью вершин, не превышающей 3 [143]. Задача соответствует минимизации “ширины" симметрической матрицы путем одновременных перестановок столбцов и строк.
[ТГ 41] ШИРИНА ОРИЕНТИРОВАННОГО ГРАФА
УСЛОВИЕ. Заданы ориентированный граф О=(У, А) и положительное целое число К ^ | У].
ВОПРОС. Существует ли такая взаимно-однозначная функция f: У->-{1, 2 |У]},что для всех (и, в)еД f(u)<f(u)
и
Источник [143]. К этой задаче сводится задача З-РАЗБИЕНИЕ.
Комментарий. Задача остается NP-полной для корневых ориентированных деревьев с максимальной степенью захода, равной 1, и максимальной степенью выхода 2. Последняя задача соответствует минимизации “ширины” верхнетреугольной матрицы с помощью одновременных перестановок строк и столбцов.
[ТГ 42] ОПТИМАЛЬНОЕ ЛИНЕЙНОЕ УПОРЯДОЧЕНИЕ
УСЛОВИЕ. Заданы граф С = (У, Е) и положительное целое число К.
ВОПРОС. Существует ли взаимно-однозначная функция f: V-*- -*{1,2] У]}, такая, что У, | f (ы) — f(u) К К?
(и, о} е Е
Источник [157]. К задаче сводится задача ПРОСТОЙ МАКСИМАЛЬНЫЙ РАЗРЕЗ.
Комментарий. Задача остается NP-полной для двудольных графов [118] и разрешима за полиномиальное время, если G—; дерево [486, 176].
[ТГ 43] ОПТИМАЛЬНОЕ ЛИНЕЙНОЕ УПОРЯДОЧЕНИЕ ОРИЕНТИРОВАННОГО ГРАФА
УСЛОВИЕ. Заданы ориентированный граф G = (V, А) и целое число К.
ВОПРОС. Существует ли такая взаимно-однозначная функция (; И->{1, 2 |У|}, что [(«)</(») для всех (u, и)еА
и ^д (/(»)-/(«))< К?
Источник [118]. К этой задаче сводится задача ОПТИМАЛЬНОЕ ЛИНЕЙНОЕ УПОРЯДОЧЕНИЕ.
Комментарий. Задача разрешима за полиномиальное время, если G — дерево, даже в том случае, если ребрам графа приписаны целые веса, а целевая функция является взвешенной суммой разностей [5].
[ТГ 44] ЛИНЕЙНОЕ УПОРЯДОЧЕНИЕ С МИНИМАЛЬНЫМ РАЗРЕЗАНИЕМ
УСЛОВИЕ. Заданы граф G=\V,E^ и положительное целое число К.
ВОПРОС. Существует ли такая взаимно-однозначная функция f: V->- (1, 2| У[}, что для всех i, 1 ■<: <1^1.
1{(м}еЕ: f («)<i < f (о)} |<К?
Источник [498, 168]. К этой задаче сводится задача ПРОСТОЙ МАКСИМАЛЬНЫЙ РАЗРЕЗ.
[ТГ 45] ПРЕДСТАВЛЕНИЕ В ВИДЕ КОРНЕВОГО ДЕРЕВА УСЛОВИЕ. Заданы граф G = (V, Е) и положительное целое число К.
ВОПРОС. Существует ли корневое дерево T = (U, F), где |G| = |V| и взаимно-однозначная функция f: V-*U, обладающие следующими свойствами: для любого ребра {u,v)eE существует простой путь, начинающийся в корне и проходящий через Ци) и [(о), такой, что £ d (f (и), f (и)) ^ К (здесь (к, «} е Н
d(x,y)—число ребер на пути от х до у в дереве Г)?
Источник [168]. К этой задаче сводится задача ОПТИМАЛЬНОЕ ЛИНЕЙНОЕ УПОРЯДОЧЕНИЕ.
[ТГ 46] УПОРЯДОЧЕННОЕ ИСКЛЮЧЕНИЕ ДЛЯ ОРИЕНТИРОВАННОГО ГРАФА
УСЛОВИЕ. Заданы ориентированный граф G = (V, А), неотрицательное целое число К.
ВОПРОС. Существует ли для графа упорядочение исключения, заполненность которого не более К? Другими словами:
“Существует ли взаимно-однозначная функция f: У->-{1, 2, ...
| V|}, такая, что имеется самое большее К пар вершин (и, и)е(УХ V)\Л. обладающие свойством: G содержит ориентированный путь из « в у, проходящий только через такие вершины w, что [(. ) < min {f (u), f(о)}?
Источник. [454]. К этой задаче сводится 3-ВЫП.
Комментарий. Эта задача возникает при применении исключения по Гауссу к разреженным матрицам. Для К = 0 задача решается за полиномиальное время. Аналогичная задача для неориентированных графов (соответствующих симметричным матрицам) эквивалентна задаче ПОПОЛНЕНИЕ ДО ТРИАНГУЛИРОВАННОГО ГРАФА, сложность которой пока остается не выясненной.
[ТГ 47] ПОСЛЕДОВАТЕЛЬНОЕ ИСКЛЮЧЕНИЕ СТЕПЕНЕЙ
УСЛОВИЕ. Заданы граф G = (V,E') и последовательность < di, da, ..., d|vi> неотрицательных целых чисел, не превышающих | У| — 1.
ВОПРОС. Существует ли взаимно-однозначная функция f: У-^ ->{1, 2, ..., | У]} со следующим свойством для всех i, 1 i ^|У|: если f(o)=i, то существует в точности di вершин и, таких, что f (u) > i и {и, и} е Е?
Источник [154]. К этой задаче сводится ТОЧНОЕ ПОКРЫТИЕ 3-МНОЖЕСТВАМИ.
Комментарий. Вариант этой задачи, в котором отыскивается такая функция f, что для всех I, 1 ^ i ^ | У|, из равенства f(n) = I следует, что существует ровно di вершин и, таких, что (и, и} е еЕ тривиально решается за полиномиальное время.
А1.4. Морфизмы и изоморфизмы
[ТГ 48] ИЗОМОРФИЗМ ПОДГРАФУ
УСЛОВИЕ. Заданы два графа G = ^V\, Ei) и H = (Va, Е2). ВОПРОС. Содержит ли граф G подграф, изоморфный графу Я? Иначе говоря, существуют ли подмножества V и Е, V g уь Ег Ех, такие, что | V| = | Vzl, |Е| = )Е2|, и такая взаимно-однозначная функция f: = У2-»-У, что {и, о}еЕ тогда и только тогда, когда (f(u).f(v)} еЕ?
Источник [91]. К этой задаче сводится задача КЛИКА.
Комментарий. Частные случаи этой задачи:
КЛИКА, ПОЛНЫЙ ДВУДОЛЬНЫЙ ПОДГРАФ, ГАМИЛЬТОНОВ ЦИКЛ и т. д. Задача может быть решена за полиноми-
альное время, если G— лес, а Н— дерево, см. [111, 449]. Остается NP-полной, если G— дерево, а Н— лес (см. гл. 4) или если G— произвольный граф, а И— дерево (ГАМИЛЬТОНОВ ПУТЬ). Варианты этой задачи для ориентированных графов также NP-полны даже в том случае, если G — ациклический граф, а Н— дерево [13]. Однако если G.— ориентированный лес, а Н— ориентированное дерево, то задачу можно решить за полиномиальное время. Если |Vi| = |V2| и |Ei| = |E2|, то эта задача превращается в задачу ИЗОМОРФИЗМ ГРАФОВ, сложность которой остается неизвестной для ориентированных и неориентированных графов.
[ТГ 49] НАИБОЛЬШИЙ ОБЩИЙ ПОДГРАФ
УСЛОВИЕ. Заданы два графа O = (Vi,Ei), Я=(У2,Е2) и положительное число К.
ВОПРОС. Существуют ли подмножества E'\gE\ и Е>сЕ2, такие, что | Et| = | Ei О К и подграфы G' = (V, Ef) и Я' = = (^2» Еа) изоморфны?
Источник. К этой задаче сводится задача КЛИКА.
Комментарий. Задачу можно решить за полиномиальное время, если G и И— деревья, см. [111].
[ТГ 50] МАКСИМАЛЬНОЕ ПАРОСОЧЕТАНИЕ ПОДГРАФОВ УСЛОВИЕ. Заданы два ориентированных графа G = (Vu Ах), Н = (V2, А2) и положительное целое число К.
ВОПРОС. Существует ли такое подмножество /? = Vi X V», что |7?|^К и для всех <и,и,'>, (v.v^eR дуга (и, и) принадлежит множеству Ai тогда и только тогда, когда (и', о')еЛ2?
Источник [152]. К этой задаче сводится задача КЛИКА. Она обсуждается также в работе [29].
[ТГ 51] СТЯГИВАЕМОСТЬ ГРАФА
УСЛОВИЕ. Заданы два графа G = (Vi, Ex) и Я = (У2, Е2).
ВОПРОС. Можно ли последовательностью стягиваний ребер графа G получить граф, изоморфный Я? (Последовательность стягиваний ребер — это последовательность шагов, на каждом из которых две соседние вершины и и и заменяются одной вершиной w, соединенной ребрами с теми и только теми вершинами, с которыми были соединены и или о.)
Источник [494]. К данной задаче сводится задача 3-ВЫП.
Комментарий. Задача может быть решена за полиномиальное время, если Я — треугольник.
[ТГ 52] ГОМОМОРФИЗМ ГРАФОВ
УСЛОВИЕ. Заданы два графа G=(V\, Ej) и H = (V2, Е2у ВОПРОС. Можно ли из графа G последовательностью отождествления несоседних вершин получить граф //? (Последовательность отождествления несоседних вершин — это последовательность шагов, заменяющих две несоседние вершины и и и одной вершиной w, соединенной в точности с теми вершинами, с которыми были соединены вершины и или и.)
Источник [340]. К этой задаче сводится задача А-РАСКРА- ШИВАЕМОСТЬ ГРАФА.
Комментарий. Задача остается NP-полной, если Н — треугольник, но если Н— одно ребро, то решается за полиномиальное время.
[ТГ 53] D-МОРФИЗМ ОРИЕНТИРОВАННЫХ ГРАФОВ
УСЛОВИЕ. Заданы два ориентированных графа G = (Pi, АЛ и И = (V2, А2).
ВОПРОС. Существует ли D-морфизм графа G в граф Н"? (D-морфизмом называется такая функция f: Vi-*V2, что (1) для каждой пары (и, и)еА либо (f^u), f (v))e А2, либо (f(u), f(u))e A2. (2) для всех ue Vi и v' e V2, если (f(u), y')e еЛ2| to существует такая вершина и, иеЩи'), для которой (ы, v)e Аь)
Источник [129]. К данной задаче сводится задача НУМЕРАЦИЯ ГРАФА ПО ГРУНДИ.
А1.5. Разное
[ТГ 54] ПУТЬ С ЗАПРЕЩЕННЫМИ ПАРАМИ
УСЛОВИЕ. Заданы ориентированный граф G = (V, А), набор С = {(аь 61), ..., (а„, 6„)} пар вершин из V и две выделенные вершины s, t е V.
ВОПРОС. Существует ли в G ориентированный путь из s в t, .одержащий не более одной вершины из каждой пары набора С?
Источник [134]. К этой задаче сводится задача 3-ВЫП.
Комментарий. Задача остается NP-полной, если ограничиться ациклическими графами, не имеющими вершин со степенями захода или выхода более 2. Вариант этой задачи, в котором запрещены не вершины, а дуги, также NP-полон (при аналогичных предположениях). Обе задачи остаются NP-полными, если вершины любой пары из заданного набора не являются соседними.
[ТГ 55] ПАРОСОЧЕТАНИЕ СО МНОГИМИ ВАРИАНТАМИ УСЛОВИЕ. Заданы граф С = (У, Е), разбиение множества Е на непересекающиеся множества Е\, Е2, ..., Ej и положительное целое число К.
ВОПРОС. Существует ли подмножество Е'с Е, такое, что |^'|^^, никакие два ребра из Е' не имеют общей вершины и для всех i (1 i ^ J) Е' П Ei ^= 0.
Источник [524, 253, 255]. К этой задаче сводится задача 3-ВЫП.
Комментарий. Задача остается NP-полной и в том случае, если G— двудольный граф, каждое из множеств Ei содержит, самое большее, 2 ребра и К = |У|/2. Если каждое из множеств Ei состоит из одного ребра, то задача превращается в обычную задачу о паросочетании в графе, разрешимую за полиномиальное время.
[ТГ 56] НУМЕРАЦИЯ ГРАФА ПО ГРУНДИ
УСЛОВИЕ. Задан ориентированный граф G — (V, А).
ВОПРОС. Существует ли такая функция f: V-*Z+, что для всех вершин veV f(u) есть наименьшее неотрицательное целое число, не содержащееся в множестве {/(и): и eV, (v,u)e е А}?
Источник [526]. К этой задаче сводится задача 3-ВЫП.
Комментарий. Задача остается NP-полной, если ограничиться только планарными графами, у которых все вершины имеют степень захода или выхода не болбе 5 (см. [129]).
[ТГ 57] ЯДРО
УСЛОВИЕ. Задан ориентированный граф G = (V, А).
ВОПРОС. Верно ли, что в G есть ядро? (Ядром ориентированного графа G = (V, А) называется такое подмножество вершин V', что никакие две вершины из V' не соединены дугой из А и для каждой вершины ие УХУ' найдется такая вершина и е У', что (м, и) е А.)
Источник [73]. К этой задаче сводится задача 3-ВЫП.
[ТГ 58] К-ЗАМЫКАНИЕ
УСЛОВИЕ. Заданы ориентированный граф О = (У, А) и положительное целое число К ^ | У|.
ВОПРОС. Существует ли такое подмножество V' £ У, что и^У'?
|У'|^К и для любой дуги (и, и^еА либо и eV', либо
Источник [439]. К данной задаче сводится задача КЛИКА.
[ТГ 59] БАЗИС ГРАФА ПЕРЕСЕЧЕНИЙ
УСЛОВИЕ. Заданы граф G=(V,E) и положительное целое число ^ ^ | Е |.
ВОПРОС. Верно ли, что G— граф пересечений семейства множеств, объединение которых имеет мощность не более ^? Иными словами: “Существует ли ^элементное множество S и подмножества S [и] £ S, tie V, такие что {и, и} е Е тогда и только тогда, когда 5[и]П5[о]=й= 0?”
Источник [298]. К этой задаче сводится ПОКРЫТИЕ КЛИКАМИ.
[ТГ 60] МНОЖЕСТВО ДУГ, РАЗЛИЧАЮЩИЕ ПУТИ
УСЛОВИЕ. Задан ориентированный граф G = (_V,A), в котором выделены две вершины s, t и положительное целое число
ВОПРОС. Существует ли такое подмножество А' £ А, что [A'l^K и для каждой пары путей pi и р2 из s в t найдется дуга из А', принадлежащая ровно одному из них?
Источник [370]. К этой задаче сводится задача ВЕРШИННОЕ ПОКРЫТИЕ.
[ТГ 61] МЕТРИЧЕСКАЯ РАЗМЕРНОСТЬ
УСЛОВИЕ. Заданы граф G = (V, Е) и положительное целое число К ^ | У|.
ВОПРОС. Существует ли базис метрик на графе G мощности не более К? (Подмножество V' GV называется базисом метрик графа G, если для каждой пары вершин и, и е V существует такая вершина w е V', что длина кратчайшего пути от и к w отлична от длины кратчайшего пути между о и щ.)
Источник [152]. К данной задаче сводится задача 3-С. Понятие метрической размерности определяется в работе [197].
[ТГ 62] РАЗМЕРНОСТЬ НЕШЕТРИЛ — РЁДЛ
УСЛОВИЕ. Заданы граф G —(V, Е) и положительное целое число К ^ |Е|.‘
ВОПРОС. Существует ли такая взаимно-однозначная функция
f: У^[(а„ а2aKY Каг<|И1 при !</</(},
что пара вершин и, и е V соединена ребром {и, и) е Е тогда и только тогда, когда f(u) и f(u) различны по всем К координатам?
Источник [400]. К этой задаче сводится 3-РАСКРАШИВАЕ- МОСТЬ ГРАФА. Понятие размерности определяется в работе [401].
[ТГ 63] ПОРОГОВОЕ ЧИСЛО
УСЛОВИЕ. Заданы граф G = (V, Е) и положительное целое число К |Е|.
ВОПРОС. Существует ли разбиение множества Е на такие не- пересекающиеся подмножества Ех, Е2, ..., Ек, что каждый из графов Gi = (V,Ei'), l^t^ К, является “пороговым”?
Источник, [78]. К этой задаче сводится задача НЕЗАВИСИМОЕ МНОЖЕСТВО (ограниченная на графы, не имеющие треугольников) .
Комментарий. При К = 1 задача решается за полиномиальное время.
[ТГ 64] ОРИЕНТИРОВАННЫЙ ДИАМЕТР
УСЛОВИЕ. Заданы граф G = (V, Е) и положительное целое число К ^ | У|.
ВОПРОС. Можно ли так ориентировать ребра графа G, чтобы возникший в результате ориентированный граф был сильно связен и имел диаметр не более К"?
Источник [79]. К этой задаче сводится задача РАСЩЕПЛЕНИЕ МНОЖЕСТВА.
Комментарий. Вариант задачи, в котором “диаметр” заменен на “радиус”, также NP-полон. Обе задачи остаются NP-полными при К = 2.
[ТГ 65] ВЗВЕШЕННЫЙ ДИАМЕТР
УСЛОВИЕ. Заданы граф G = (V,Е), и набор С, состоящий из |Е| неотрицательных целых чисел (не обязательно различных), и положительное целое число К.
ВОПРОС. Существует ли такая взаимно-однозначная функция /: Е-*С, что при интерпретации f(e) как длины ребра е диаметр графа G не превосходит К? (Т. е. между любыми двумя вершинами и, и е V имеется путь длины не более К.)
Источник [425]. К этой задаче сводится задача З-РАЗБИЕНИЕ.
Комментарий. Задача NP-полна в сильном смысле даже в том случае, когда G — дерево. Вариант задачи, в котором “диаметр" заменяется “радиусом”, имеет такую же сложность. Если С состоит только из нулей и единиц, то оба варианта (с диаметром и радиусом) для деревьев разрешимы за полиномиальное время, а для общих графов остаются NP-полными, даже если К фиксировать равным 2 (диаметр) или 1 (радиус). Для общих графов вариант задачи, в котором ищется функция, дающая
диаметр не менее К, NP-полон в сильном смысле, для деревьев в случае диаметра задача разрешима за полиномиальное время, а в случае радиуса NP-полна.
А2. ПОСТРОЕНИЕ СЕТЕЙ
А2.1. Остовные деревья 1
[ПС 1] ОСТОВ ОГРАНИЧЕННОЙ СТЕПЕНИ
УСЛОВИЕ. Заданы граф G = (V, Е) и положительное целое число ЖИ.
ВОПРОС. Существует ли в графе G остов, у которого степени всех вершин не превосходят К?
Источник. К этой задаче сводится задача ГАМИЛЬТОНОВ ПУТЬ.
Комментарий. Для любого фиксированного А ^ 2 задача остается NP-полной.
[ПС 2] ОСТОВ С МАКСИМАЛЬНЫМ ЧИСЛОМ висячих ВЕРШИН
УСЛОВИЕ. Заданы граф G = (V, Е) и положительное целое число К ^ | У|.
ВОПРОС. Существует ли в графе G остов, у которого не менее К вершин степени 1?
Источник [152]. К указанной задаче сводится задача ДОМИНИРУЮЩЕЕ МНОЖЕСТВО.
Комментарий. Задача остается NP-полной, если G— регулярный граф степени 4 или если G — планарный граф, степени вершин которого не превосходят 4.
[ПС 3] ОСТОВ С КРАТЧАЙШИМ ПОЛНЫМ ПУТЕМ УСЛОВИЕ. Заданы граф G = (V, Е), целое число BeZ+. ВОПРОС. Существует ли такой остов Т графа G, что сумма (по всем парам вершин и, уе G) длин путей от и до и в Т не превосходит К?-
Источник [266]. К этой задаче сводится задача ТОЧНОЕ ПОКРЫТИЕ 3-МНОЖЕСТВАМИ.
[ПС 4] ОСТОВ ОГРАНИЧЕННОГО ДИАМЕТРА
УСЛОВИЕ. Заданы граф G = (V, Е), вес av(e)GZ+ каждой вершины е^Е, а также положительные числа В и О^|У|.
*) Как синонимы часто употребляются термины: дерево-остов, остов графа, или просто остов. — Прим. ред.
ВОПРОС. Существует ли в графе G такой остов Т, что сумма весов ребер из Т не превосходит В и в Г нет простого пути, число ребер которого не превосходит О?
Источник [125]. К этой задаче сводится задача ТОЧНОЕ ПОКРЫТИЕ 3-МНОЖЕСТВАМИ.
Комментарий. Задача остается NP-полной при любом фиксированном 0^4 даже в том случае, если веса ребер принимают два значения: 1 или 2. Легко решается за полиномиальное время, если D ^ 3 или если веса всех ребер равны.
[ПС 5] ОСТОВ С ОГРАНИЧЕННОЙ ПРОПУСКНОЙ СПОСОБНОСТЬЮ
УСЛОВИЕ. Заданы граф G=(V, Е) с выделенной вершиной и0 е V, пропускные способности с (е) е Zo" и длина / (е) е Z^ каждого ребра е Е Е, потребность г (и) е Z^ для каждой вершины ve У\(и0} и граница BeZo".
ВОПРОС. Существует ли в графе G такой остов Т, что сумма длин его ребер не превосходит В и для каждого ребра е в 7 выполнено соотношение У, г(и)^с(е) (где U^—множе- и е Ще)
ство вершин, для которых путь в 7, соединяющий эту вершину с вершиной ио, содержит ребро а)?
Источник [409]. К этой задаче сводится задача 3-ВЫП.
Комментарий. Задача NP-полна в сильном смысле даже в том случае, если все потребности равны 1, а все пропускные способности равны 3. Если же все потребности равны 1, а пропускные способности равны 2, то задача решается за полиномиальное время с помощью метода взвешенных паросочетаний. Если все потребности равны 0 или 2, а все пропускные способности равны 1, то задача также может быть решена за полиномиальное время (с помощью алгоритмов построения потоков минимальной стоимости, см., например, [НО]), но если все пропускные способности равны 2, а потребности и длины ребер равны либо 0, либо 1, то задача остается NP-полной [115].
[ПС 6] ГЕОМЕТРИЧЕСКИЙ ОСТОВ С ОГРАНИЧЕННОЙ ПРОПУСКНОЙ СПОСОБНОСТЬЮ
УСЛОВИЕ. Заданы множество Р s Z X Z точек плоскости, выделенная точка роЕР, потребность r(p)EZ^ для каждой ре е Р\ро, пропускная способность ceZ+ и граница В е Z+.
ВОПРОС. Существует ли в полном графе G — (P, Е) такой остов 7 = (Р,Е'), что 2 (Це'Х.В (где d((xh у^Дх^, у2)) = ееЕ'
=Г((*1+-*2)2+(У1—Уг)2)1”-! — дискретное евклидово расстояние), причем Е г(ц)^с для каждого ребра ееЕ' (где Ute)— U Е U (s)
множество таких вершин и, что путь в дереве Т, соединяющий и с ро, содержит ребро е)?
Источник [409]. К этой задаче сводится задача ТП-3.
Комментарий. Задача остается NP-полной и в том случае, если все потребности равны между собой.
[ПС 7] ОПТИМАЛЬНЫЙ КОММУНИКАЦИОННЫЙ ОСТОВ УСЛОВИЕ. Заданы полный граф G = (V,Е), вес t«(e)eZ^ каждого ребра ееЕ, потребность г ({и, о}) е Zo" для каждой пары (и, и} вершин из V, граница Be Zo".
ВОПРОС. Существует ли в G такой остов Т, что
Е «7({и, о)).г({и, «})<В, и, о eV
где W({u, и}) обозначает сумму весов ребер пути в Т, соединяющего и и и?
Источник [266]. К этой задаче сводится задача ТП-3.
Комментарий. Задача остается NP-полной даже тогда, когда все потребности равны между собой. Если все веса равны между собой, то задача разрешима за полиномиальное время [227].
[ПС 8] ИЗОМОРФНЫЙ ОСТОВ
УСЛОВИЕ. Заданы граф G = (V, Е), дерево Т = (VT, Ету ВОПРОС. Верно ли, что G содержит остовное дерево, изоморфное Г?
Источник. К этой задаче сводится задача ГАМИЛЬТОНОВ ПУТЬ.
Комментарий. Задача остается NP-полной в следующих случаях: (а) Т — путь, (б) Т — полное бинарное дерево, см. [418], (в) Т— 3-звезда (т. е. Vt = {ио} U (ui, vi, wi: 1 ^ i ^ n}, ET = = {{vo, «<}, (ui,vi), {u<, W/} : 1 I nJ), cm. [152]. Если G— граф паросочетания или 2-звезда, то задача разрешима за полиномиальное время. Классификацию сложности этой задачи для других типов деревьев см. в [418].
[ПС 9] К НАИЛУЧШИХ ОСТОВОВ (*)
УСЛОВИЕ. Заданы граф G = (V, Е), вес а» (е) е Zo каждого ребра ееЕ, положительные целые числа К и В.
ВОПРОС. Существует ли в G К различных остовов, общий вес которых не превосходит В?
Источник [260]. К этой задаче сводится по Тьюрингу задача ГАМИЛЬТОНОВ ПУТЬ.
Комментарий. Принадлежность этой задачи классу NP не установлена. Задача может быть решена за псевдополиномиальное время (время, ограниченное полиномом от | V|, К, log В, max {log ty(e): ее В}), см. [322], и, следовательно, при любом фиксированном К может быть решена за полиномиальное время. Соответствующая задача перечисления является КР-пол- ной. Однако вариант задачи перечисления, в котором отсутствуют веса, решается за полиномиальное время (см., например, [198]).
[ПС 10] ЛЕС С ОГРАНИЧЕННЫМИ КОМПОНЕНТАМИ
УСЛОВИЕ. Заданы граф б = (У, Е), вес а>(о)е2/ каждой вершины и eV, положительные целые числа К и В(К^|У|). ВОПРОС. Можно ли вершины из V так разбить на непересе- кающиеся множества Уь Уг, .... У* ^k^KV что подграф графа G, индуцированный множеством У<, является деревом, а сумма весов вершин из У/ не превосходит В?
Источник [194]. К этой задаче сводится задача РАЗБИЕНИЕ НА ПУТИ ДЛИНЫ 2.
Комментарий. Задача остается NP-полной и тогда, когда все веса равны 1, а В — произвольное фиксированное целое число, большее 2 [152]. Задача может быть решена за полиномиальное время, если G — дерево или если все веса равны 1 и В = 2 [194].
[ПС 11] ВЕТВЛЕНИЕ СО МНОГИМИ ВАРИАНТАМИ
УСЛОВИЕ. Заданы ориентированный граф С = (У, Л), вес ш(о)е7+ каждой дуги аеА, разбиение множества А на не- пересекающиеся множества Аь А^, .... Ат и положительное целое число К.
ВОПРОС. Существует ли такое подмножество А' с Л, что £ w^^K, никакие две дуги из А' не оканчиваются в одной a s А' вершине, А* не содержит циклов и А' содержит не более одной дуги из каждого множества Ai, 1 ^ t ^ п?
Источник [152]. К этой задаче сводится задача 3-ВЫП.
Комментарий. Задача остается NP-полной даже тогда, когда G сильно связан и если все веса равны между собой. Если ^1 = 1
для всех i, то задача превращается просто в задачу отыскания “ветвления максимального веса", т. е. задачу отыскания пересечения двух матроидов, разрешимую за полиномиальное время (см., например, [512]). (В сильно связном графе ветвление максимального веса можно рассматривать как ориентированный остов максимального веса). Аналогичным образом если граф симметричен, то задача становится эквивалентной задаче об остове со многими вариантами (другой задаче о пересечении двух матроидов) и оказывается разрешимой за полиномиальное время [509].
[ПС 12] ДЕРЕВО ШТЕЙНЕРА НА ГРАФЕ
УСЛОВИЕ. Заданы граф G — (И, Е), весш(е)е2о' каждого ребра ее£, подмножество R G V и положительная целая граница В.
ВОПРОС. Существует ли в графе G такое поддерево, содержащее все вершины из R, что сумма весов ребер этого поддерева не превосходит S?
Источник [280]. К этой задаче сводится задача ТОЧНОЕ ПОКРЫТИЕ 3-МНОЖЕСТВАМИ.
Комментарий. Задача остается NP-полной и в том случае, если G — двудольный граф, не имеющий ребер, соединяющих вершины множества R или У\/? (см. [37]), или если G — планарный граф [149].
[ПС 13] ГЕОМЕТРИЧЕСКОЕ ДЕРЕВО ШТЕЙНЕРА
УСЛОВИЕ. Заданы множество Р Z X Z точек на плоскости и положительное число К.
ВОПРОС. Существует ли такое конечное подмножество Q s S2XZ, что для множества вершин PUQ существует остов с весом не более К (где вес ребра {(xi, yi), (х2, у2)} равен Г((Х1 — ^г)2 + (У1— </2)2)1/21 — дискретному евклидову расстоянию между (xhyi) и (х2, уг))?
Источник [142]. К этой задаче сводится задача ТП-3.
Комментарий. Задача NP-полна в сильном смысле. Остается NP-полной, если дискретное расстояние заменить “метрикой типа Li": |xi—x2| + |yi—у2|. (см. [149]) “или метрикой типа Loo”-. max{|xi — х21, |yi— у21} (последняя метрика при повороте на 45° эквивалентна метрике AJ. Задача остается NP-трудной в сильном смысле, если принять (недискретизированное) евклидово расстояние ((xi— x2)2 + (yi—у2)2)1/2, но в последнем случае принадлежность задачи классу NP не установлена [142]. Некоторые полиномиальные алгоритмы для специальных случаев метрики типа Lt предложены в работе [6].
А2.2 Разрезы и связность
[ПС 14] РАЗБИЕНИЕ ГРАФА
УСЛОВИЕ. Заданы граф 6 = (У, А), вес ty(u)EZ+ каждой вершины и е У, длина /(е)Е Z+ каждого ребра е е £, а также положительные целые числа К и 1.
ВОПРОС. Существует ли такое разбиение множества V на не- пересекающиеся подмножества Уь УгVm, что
У, w^^K (для всех U \^1^К\ »GVt
и если Е'^Е — множество ребер, имеющих концы в разных множествах V и то
У /(*)</?ееЕ'
Источник [243]. К этой задаче сводится задача РАЗБИЕНИЕ НА ТРЕУГОЛЬНИКИ.
Комментарий. Задача остается NP-полной для фиксированного К ^ 3 даже в том случае, если все веса равны 1. При К = 2 задача может быть решена за полиномиальное время методом паросочетаний.
[ПС 15] АЦИКЛИЧЕСКОЕ РАЗБИЕНИЕ
УСЛОВИЕ. Заданы ориентированный граф G = (y, А), вес iy(u)E Z+ каждой вершины oeV, стоимость с(а)Е Z+ каждой дуги аеА, положительные целые числа В и К.
ВОПРОС. Существует ли такое разбиение множества V на не- пересекающиеся множества Уь Уг, ■ • •, Ут, что ориентированный граф G' = (У', Д') (где У' = {Уь Уг, ■ Ут} и (У,, У,)е е Д' тогда и только тогда, когда (uz.uJeA для некоторых vt е Vi и vj е У,) является ациклическим, сумма весов вершин каждого из множеств Vi не превосходит В и сумма стоимостей всех дуг, имеющих концы в разных множествах, не превосходит К?
Источник [152]. К этой задаче сводится задача ТП-3.
Комментарий. Задача остается NP-полной и в том случае, если w(v)= 1 для всех и е У и с(а) = 1 для всех а е А. Задача может быть решена за полиномиальное время, если G содержит некоторый гамильтонов путь. Последнее свойство для ациклических графов может быть проверено за полиномиальное время (см. [287]). Если G— дерево, то общая задача NP-полна в обычном смысле, но может быть решена за псевдополиномиаль- ное время (см. [365]). Все три задачи могут быть решены за полиномиальное время, если веса всех ребер равны между
собой (см. [194]) или если веса всех вершин равны между собой (см. [152]).
[ПС 16] МАКСИМАЛЬНЫЙ РАЗРЕЗ
УСЛОВИЕ. Заданы граф G=(V, Е), вес w(e)GZ+ каждого ребра ее Е, положительное целое число К.
ВОПРОС. Существует ли разбиение множества V на два таких непересекающихся множества Vj и Va, что сумма весов ребер из Е, соединяющих вершины из множеств У] и Уа, не менее К?
Источник [280]. К этой задаче сводится задача МАКСИМАЛЬНАЯ 2-ВЫПОЛНИМОСТЬ.
Комментарий. Задача остается NP-полной, если w (е) = 1 для всех е е Е (она называется ПРОСТОИ МАКСИМАЛЬНЫЙ РАЗРЕЗ), см. [157], и если, кроме того, в графе нет вершин степени более 3 см. [538]. Если G— планарный граф, то задача может быть решена за полиномиальное время [195,406].
[ПС 17] МИНИМАЛЬНЫЙ РАЗРЕЗ С ОГРАНИЧЕНИЯМИ УСЛОВИЕ. Заданы граф G=(V, Е) с двумя выделенными вершинами s, teV, вес m(e)eZ+ каждого ребра ее£, а также положительные целые числа В и К (В ^ | У|).
ВОПРОС. Существует ли разбиение множества V на два таких подмножества Vi и У2, что s е Vi, t е V2, | Vi | В, | У2| С ^ 8 и сумма весов ребер из Е, соединяющих вершины из Vi и У2, не превосходит К?
Источник [157]. К этой задаче сводится задача ПРОСТОИ МАКСИМАЛЬНЫЙ РАЗРЕЗ.
Комментарий. Задача остается NP-полной для В = |У|/2 и если о/(е)=1 для всех ееЕ. Если В = |У|, то она может быть решена за полиномиальное время стандартными методами теории потоков в сетях.
[ПС 18] ДВУСВЯЗНОЕ ПОПОЛНЕНИЕ
УСЛОВИЕ. Заданы граф G=(V, Е), вес ш([и, u})eZ+ каждой неупорядоченной пары {и, и} вершин из У и положительное целое число В.
ВОПРОС. Существует ли такое множество Е’, состоящее из неупорядоченных пар вершин V, что У, ш(е)^Ви граф G'= ее В'
= (V,EUE')— двусвязен (граф называется двусвязным, если после удаления любой отдельной вершины он остается связным)?
Источник [113]. К данной задаче сводится задача ГАМИЛЬТОНОВ ЦИКЛ.
Комментарий. Близкая задача, в которой граф G' реберно связан (т. е. не распадается после удаления одного ребра), также NP-полна. Обе задачи остаются НР-по.лными, если все веса равны либо 1, либо 2 и £ пусто. Обе задачи могут быть решены за полиномиальное время, если все веса равны между собой.
[ПС 19] СИЛЬНО СВЯЗНОЕ ПОПОЛНЕНИЕ
УСЛОВИЕ. Заданы ориентированный граф G = (V, А), вес w (и, о) г Z+ каждой упорядоченной пары вершин (и, о) г V X V и положительное целое число В.
ВОПРОС. Существует ли такое множество А' упорядоченных пар вершин из Г, что У, ty(a)<B и граф G' = (V,AIM') аеЛ' сильно связен?
Источник [113]. К этой задаче сводится ГАМИЛЬТОНОВ ЦИКЛ.
Комментарий; Задача остается NP-полной, если все веса равны 1 или 2, а А пусто. Может быть решена за полиномиальное время, если все веса равны между собой.
[ПС 20] НАДЕЖНОСТЬ СЕТИ (*)
УСЛОВИЕ. Заданы граф G = ^V, Е), подмножество V" = V, для каждого егЕ рациональное число р(е), 0^р(е)^1,— вероятность неисправности, положительное рациональное число 9^1.
ВОПРОС. Верно ли, что с вероятностью, не меньшей q, любые две вершины из V соединены по крайней мере одним путем, не содержащим неисправных ребер. (Предполагается, что неисправности в ребрах возникают независимо.)
Источник [458]. К этой задаче сводится ДЕРЕВО ШТЕЙНЕРА НА ГРАФЕ.
Комментарий. Принадлежность этой задачи классу NP не установлена. Задача остается NP-полной даже в том случае, если |У'|^2 [523]. Аналогичная задача, в которой требуется,чтобы каждую пару вершин из V* соединяли по крайней мере два не- пересекающихся пути, NP-трудна даже тогда, когда V' = V [28]. Если G — ориентированный граф и требуется выяснить, существует ли ориентированный путь, соединяющий любую пару упорядоченных вершин в V', то задача NP-трудна как при |У'| = 2 [523], так и при V'= V [27]. Многие задачи
перечисления подграфов, удовлетворяющих указанным выше свойствам, КР-полны (см. [523]).
[ПС 21] ВЫЖИВАЕМОСТЬ СЕТИ (*)
УСЛОВИЕ. Заданы граф G=(V, Е), для каждого х е V U Е рациональное число р(х), 0 ^ р(х) ^ 1,— “вероятность неисправности”, положительное рациональное число ^^1.
ВОПРОС. Верно ли, что вероятность того, что для всех {и, и}е sE по крайней мере один элемент и, и или {н, и} неисправен, не меньше q? (В предположении, что неисправности ребер и вершин независимы.)
Источник [458]. К этой задаче сводится ВЕРШИННОЕ ПОКРЫТИЕ.
Комментарий. Принадлежность этой задачи классу NP не установлена.
А.2.3. Задачи о маршрутах
[ПС 22] КОММИВОЯЖЕР
УСЛОВИЕ. Заданы множество С, включающее m городов, расстояние d(Ci, c/)eZ+ между каждой парой городов с,, с,еС и положительное целое число В.
ВОПРОС. Существует ли маршрут длины не более В, проходящий через все города из С? Иными словами, существует ли такая перестановка городов <сЯ(п, сл(2), ..., сл(т)>, что
т-1
2j ^ (сл (1)> сп (Z+ll) + d (ся (т), Сп (])) ^ В? Z = 1
Источник. К задаче сводится задача ГАМИЛЬТОНОВ ЦИКЛ.
Комментарий. Задача остается NP-полной и в том случае, когда d(ct, с^е {1, 2} для всех с,, с, г С. Особые, разрешимые за полиномиальное время случаи этой задачи обсуждаются в работах [172, 160, 510]. Вариант этой задачи, в котором ищется маршрут со средним временем прибытия, не превосходящим В, также NP-полон (см. [469]).
[ПС 23] ГЕОМЕТРИЧЕСКАЯ ЗАДАЧА О КОММИВОЯЖЕРЕ УСЛОВИЕ. Заданы множество PsZXZ точек на плоское гм и положительное целое число В.
ВОПРОС. Существует ли маршрут длины, не большей В, для индивидуальной задачи КОММИВОЯЖЕР, в которой С=Р и йЦх\, у\), (х2, у2)) = [ ((xi — х2)2 + (z/i — уг)2)1/2] — евклидово дискретное расстояние?
Источник [410, 141]. К этой задаче сводится задача ТП-3.
Комментарий. Задача NP-полна в сильном смысле. Она остается NP-полной в сильном смысле даже в том случае, если расстояние заменить метрикой типа Li [141] (или метрикой L„, которая после поворота на 45° становится эквивалентной метрике LJ. Задача остается NP-трудной в сильном смысле, если принять обычную (не дискретную) евклидову метрику, но в этом случае принадлежность этой задачи классу NP не установлена [141].
[ПС 24] ЗАДАЧА КОММИВОЯЖЕРА С ОГРАНИЧЕННЫМИ РАССТОЯНИЯМИ
УСЛОВИЕ. Заданы множество С, состоящее из m городов, расстояние d(c,, c,)eZ4 между каждой парой городов Сь с/еС и положительное целое число В.
ВОПРОС. Существует ли маршрут, проходящий через все города и не содержащий ребер длины, большей S? Т. е. существует ли такая перестановка городов <сЛ(и, сл(2)ся(т)>, что
d(cmo. Сло+i))^ В при 1 ^ i < m и d^c^, cnm^ В?
Источник. К данной задаче сводится ГАМИЛЬТОНОВ ЦИКЛ.
Комментарий. Задача остается NP-полной, даже если d(c,, с/)е е{1,2) для всех с,, Cj^C. Важный частный случай задачи, разрешимый за полиномиальное время, описан в работе [172].
[ПС 25] КИТАЙСКИЙ ПОЧТАЛЬОН ДЛЯ СМЕШАННЫХ ГРАФОВ
УСЛОВИЕ. Заданы смешанный граф G=^V,A,EV где А — множество ориентированных ребер, Е — множество неориентированных ребер в V; длина /(e)eZ+0 каждого ребра eeAU^, граница В е Z+.
ВОПРОС. Существует ли в графе G цикл длины не более В, включающий по крайней мере один раз каждое ориентированное и каждое неориентированное ребро, причем ориентированные ребра должны входить в цикл только с правильной ориентацией?
Источник [480]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной даже в том случае, если длины всех ребер равны между собой, граф G планарен и максимум степеней вершин в нем равен 3. Если либо А, либо Е пусто (т. е. G — либо ориентированный, либо неориентированный граф), то задача может быть решена за полиномиальное время [109].
[ПС 26] ЗАДАЧА О ПОДЪЕМНОМ КРАНЕ
УСЛОВИЕ. Заданы смешанный граф G = ^V, А, Е), длина / (а) е Z? каждого элемента е е A U Е, граница В е Z+.
ВОПРОС. Существует ли в графе G цикл длины не более В, включающий каждое ориентированное ребро из А по крайней мере один раз и проходящий их только в правильном направлении?
Источник [130]. К этой задаче сводится ГАМИЛЬТОНОВ ЦИКЛ.
Комментарий. Задача остается NP-полной даже в том случае, если длины всех ребер равны 1. Аналогичная задача о пути (с заранее выбранными концами или без них) также NP-полна.
[ПС 27] СЕЛЬСКИЙ ПОЧТАЛЬОН
УСЛОВИЕ. Заданы граф G = (V,Е), длина Z^eZif каждого ребра е е Е, подмножество Е'^Е и граница В е Zo".
ВОПРОС. Существует ли в G цикл, включающий каждое ребро из Е' и имеющий длину не более В?
Источник [335]. К данной задаче сводится ГАМИЛЬТОНОВ ЦИКЛ.
Комментарий. Задача остается NP-полной даже тогда, когда Z(e)=l для всех е е Е. То же самое верно для ориентированных графов.
[ПС 28] САМЫЙ ДЛИННЫЙ ЦИКЛ
УСЛОВИЕ. Заданы граф G = (V, Е), длина Z(e)EZ+ каждого ребра е е Е, положительное целое число К.
ВОПРОС. Существует ли в G цикл длины не менее К (т. е. такой цикл, сумма длин ребер которого не менее К) ?
Источник. К этой задаче сводится ГАМИЛЬТОНОВ ЦИКЛ.
Комментарий. Задача остается NP-полной и в том случае, если Z(e)=l для всех ееЕ. То же самое верно и для ориентированных циклов в ориентированных графах. Если G — ориентированный граф турнира и Z (е) = 1 для всех ееЕ, то задача может быть решена за полиномиальное время [393]. Аналогичные задачи для ориентированных и неориентированных графов, в которых ищется цикл длины, не превосходящей К, могут быть решены за полиномиальное время (см., например, [254]), но если допускаются ребра отрицательной длины, то задача NP- полна.
[ПС 29] САМЫЙ ДЛИННЫЙ ПУТЬ
УСЛОВИЕ. Заданы граф G = (V, Е), длина Z(e)sZ+ каждого ребра сеЕ, положительное целое число К, выделенные вершины s, Z е У.
ВОПРОС. Существует ли в графе G простой путь длины, не меньшей К (т. е. путь, у которого сумма длин ребер не меньше К)?
Источник. К этой задаче сводится ГАМИЛЬТОНОВ ПУТЬ МЕЖДУ ДВУМЯ ВЕРШИНАМИ.
Комментарий. Задача остается NP-полной и тогда, когда /(е) = = 1 для всех е е Е. То же самое верно для аналогичной задачи отыскания ориентированного пути в ориентированных графах. Для ациклических графов задача в общем виде может быть решена за полиномиальное время [324]. Аналогичные задачи об ориентированном и неориентированном “кратчайшем пути" для произвольных графов могут быть решены за полиномиальное время (см., например, [324]), но становятся NP-полными, если допускаются ребра отрицательной длины.
[ПС 30] КРАТЧАЙШИЙ ПУТЬ С ОГРАНИЧЕНИЕМ ПО ВЕСУ
УСЛОВИЕ. Заданы граф G=^V, Е) с двумя выделенными вершинами s, / е V, длина /(e)eZ+, вес ty(e)sZ+ каждого ребра йе£ и положительные целые числа К и W.
ВОПРОС. Существует ли в G простой путь из s в t, веса не более W и длины не более К?
Источник [380]. К этой задаче сводится РАЗБИЕНИЕ.
Комментарий. Для ориентированных графов задача также NP- полна. Обе задачи разрешимы за полиномиальное время, если все веса или все длины равны между собой.
[ПС 31] К КРАТЧАЙШИХ ПУТЕЙ (*)
УСЛОВИЕ. Заданы граф 6 = (У, Е) с двумя выделенными вершинами s, feV, длина Z(e)eZ+ каждого ребра ееЕ и положительные целые числа В и К.
ВОПРОС. Существует ли в G К различных путей от s до t, веса которых не превосходят В?
Источник [260]. К этой задаче сводится по Тьюрингу ГАМИЛЬТОНОВ ПУТЬ.
Комментарий. Принадлежность этой задачи классу NP не установлена. Аналогичная задача о кратчайших циклах также NP- трудна. Обе задачи остаются NP-трудными и тогда, когда /(е) = 1 для всех ееЕ. То же самое верно для аналогичных задач в ориентированных графах. Однако все варианты этой задачи могут быть решены за псевдополиномиальное время (т. е. время, ограниченное полиномом от |У], К и log В) и,
следовательно, за полиномиальное время при любом фиксированном значении числа К. Соответствующие перечислительные задачи КР-полны.
А2.4. Потоковые задачи
[ПС 32] ПОТОК МИНИМАЛЬНОЙ РЕБЕРНОЙ СТОИМОСТИ УСЛОВИЕ. Заданы ориентированный граф б = (У, А) с двумя выделенными вершинами s и t, пропускная способность с(д)е е Z+ и стоимость pf^eZo" каждой дуги де А, потребность R е Z+, граница В е Z+.
ВОПРОС. Существует ли потоковая функция /: A-»Z«, обладающая следующими свойствами:
f (д) ^ с (а) для всех а е А;
У /((и, у)) = У f ((у, «)) для всех и е У \ (s, 0 (т. е. (и, с)е.4(о, и)еЯ
во всех вершинах о Е У \ {s, /} поток сохраняется);
У /((“> 0)— У f№> u^^R (т. е. в вершину / вте- (u, ЦеА(t, и)еА
кает поток величины не меньше R\,
У р^СВ, где А' = {деА: /(д)#=0)? а е А*
Источник [115]. К этой задаче сводится ТП-3.
Комментарий. Задача остается NP-полной и тогда, когда с(д) = 2 и р(д)е{0, 1} для всех де А. Она разрешима за полиномиальное время, если с(д)=1 для всех де А [115] или если условие (4) заменить условием У р (д) • f (д) ^ В (см., на-
а g А
пример, [324]). Однако задача остается NP-полной, если условие (4) заменить условием У (pt (д) f (д)2 4- р2 (д) ) (д)) ^ В [208]- а е А
[ПС 33] ЦЕЛОЧИСЛЕННЫЙ ПОТОК В СЕТИ С УМНОЖИТЕЛЯМИ
УСЛОВИЕ. Заданы ориентированный граф б = (У, А), выделенные две вершины s и t, заданы “умножитель” /i(u)e Z+ для каждой вершины уеУ\{з, /}, пропускная способность с(д)е е Z+ каждой дуги д е А и потребность R е Z+.
ВОПРОС. Существует ли потоковая функция f: A->Zo, такая что выполнены условия:
f (д) с(д) для всех д е А;
для вершин и е У\{$, ^} выполнено соотношение
Уh (v) • f ((м, и)) = У !^и,и)У,
(и, о) е А(и, о) е Л
в вершину / притекает поток, не меньший R?
Источник [463]. К этой задаче сводится РАЗБИЕНИЕ.
Комментарий. Если й(и)=1 для всех ие VX{s,/}, то она может быть решена за полиномиальное время стандартными методами теории потоков в сетях. Аналогичная задача, в которой допускаются нецелочисленные потоки, может быть решена методом линейного программирования.
[ПС 34] ПОТОК В СЕТИ С ОГРАНИЧЕНИЯМИ
УСЛОВИЕ. Заданы ориентированный граф G = (V, А) с двумя выделенными вершинами s и t, пропускная способность c(a)EZ+ каждой дуги аеА, набор Р ориентированных путей в G и потребность R е Z+.
ВОПРОС. Существует ли такая функция 5: P->Z^, что если /: А -> Zo — потоковая функция, задаваемая соотношением Ца) = У, g(p) (где Р (a) = Р — множество всех путей из Р, реР№
содержащих дугу а), то f удовлетворяет условиям:
f(a)^ с(я) для всех йеЛ;
в каждой вершине ие У\{$, /} поток сохраняется;
в вершину t втекает поток, не меньший /??
Источник [436]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной, если все с (я) равны 1. Аналогичная задача для нецелочисленных потоков эквивалентна задаче ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ, но вопрос о не совпадении наилучшего рационального и наилучшего целочисленного потоков является NP-полным.
[ПС 35] ЦЕЛОЧИСЛЕННЫЙ ПОТОК В СЕТИ С ГОМОЛОГИЧНЫМИ ДУГАМИ
УСЛОВИЕ. Заданы ориентированный граф 6 = (У, А) с выделенными двумя вершинами s и /, пропускная способность c(a)eZ+ каждой дуги аеА', потребность R е Z+ и множество И г А X А “гомологичных" пар дуг.
ВОПРОС. Существует ли такая потоковая функция /: A->Zo, что:
$ (я) ^ с(а) для всех а е А;
во всех вершинах ие У\{$Л} поток сохраняется;
f(a)=f(a') для всех пар гомологичных дуг <я,а')еН;
в вершину t втекает поток, не меньший /??
Источник [463]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной и в том случае, если с^а) = 1 для всех яе А. (Это можно доказать с помощью
модификации конструкции из работы [114].) Аналогичная задача с нецелочисленными потоками полиномиально эквивалентна задаче ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ [251].
[ПС 36] ЦЕЛОЧИСЛЕННЫЙ ПОТОК В СЕТИ С РАССЛОЕНИЯМИ
УСЛОВИЕ. Заданы ориентированный граф G = (V, А) с выделенными вершинами s и / и такие “расслоения" К, /2, .... /sS еА, что И Ii = A, пропускные способности расслоений
С], с2, ..., с^е Z+, потребность R е Z+.
ВОПРОС. Существует ли такая потоковая функция f: A->-Zo, что выполнены следующие условия:
X 7(a)^Су для всех /', 1^/"^&;
ае/у
в каждой вершине ue V\{s, 7} поток сохраняется;
в вершину / втекает поток, не меньший /??
Источник [463]. К этой задаче сводится НЕЗАВИСИМОЕ МНОЖЕСТВО.
Комментарий. Если все пропускные способности равны 1 и каждое расслоение включает только две дуги, то задача остается NP-полной. Аналогичная задача для нецелочисленных потоков может быть решена с помощью линейного программирования.
[ПС 37] НЕОРИЕНТИРОВАННЫЙ ПОТОК, ОГРАНИЧЕННЫЙ СНИЗУ
УСЛОВИЕ. Заданы граф G = (V, Е) с выделенными вершинами s, t, пропускная способность с (е)Е Z+ и нижняя граница 7(e) eZo" для каждого ребра веЕ, потребность R е Z+.
ВОПРОС. Существует ли такая потоковая функция f: {{и, v), (о, и) : {ы, о]еЕ}->Zj, что выполняются следующие условия:'
для любого (и, u}eE либо f((u, и)) = 0, либо f((v, u)) = 0; (2) /(е) ^ max{/((u, и)), /((и, м))}^ с(е) для всех е = {м, v}e Е Е;■
во всех вершинах и е У\{$, 7} поток сохраняется;
в вершину 7 втекает поток, не меньший R"?
Источник [251]. К этой задаче сводится ВЫПОЛНИМОСТЬ.
Комментарий. Задача NP-полна в сильном смысле даже в случае нецелочисленных потоков. Аналогичная задача для ориентированных графов может быть решена за полиномиальное вре-
мя даже в том случае, если вместо потока, не меньшего R, искать поток, не больший R [125] (см. также [324]). Аналогичная задача ОРИЕНТИРОВАННЫЙ М-ПРОДУКТОВЫЙ ПОТОК, ОГРАНИЧЕННЫЙ СНИЗУ при всех М > 2 и нецелочисленных потоках, полиномиально эквивалентна задаче ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ [251].
[ПС 38] ОРИЕНТИРОВАННЫЙ ДВУХПРОДУКТОВЫЙ ЦЕЛОЧИСЛЕННЫЙ ПОТОК
УСЛОВИЕ. Заданы ориентированный граф G = (V, А) с выделенными вершинами si, $2, 6 и t», пропускная способность c(a)eZ+ каждой дуги as А, потребности Ri, R$eZ+.
ВОПРОС. Существуют ли такие две потоковые функции fb f2: A-»Zq, что
fi (a) + f2 (a) ^ c (a) для всех a s A;
поток ft (is{l,2}) сохраняется во всех вершинах ve г K\{si, hY,
для iE {1, 2} поток ft, втекающий в вершину tt, не меньше Ri?
Источник [114]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной даже в том случае, если с(а)=1 для всех аеА и Ri = 1. Вариант задачи, в котором $i = $2, й = t2 и по дугам может передаваться только один конкретный продукт (для каждой дуги свой), также является NP-полным (это следует из работы [114]). Аналогичная М-продуктовая задача с нецелочисленными потоками при всех М ^ 2 полиномиально эквивалентна задаче ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ [251].
[ПС 39] НЕОРИЕНТИРОВАННЫЙ ДВУХПРОДУКТОВЫЙ ЦЕЛОЧИСЛЕННЫЙ ПОТОК
УСЛОВИЕ. Заданы граф G = (V,Е) с выделенными вершинами $ь 32, 6 и /2. пропускная способность c(e)sZ+ каждой дуги ее£, потребности Ri, Raе Z+.
ВОПРОС. Существуют ли такие две потоковые функции h, fc {(«» у)» (°i “): (“• o}}-*Z^, что выполняются следующие условия:
для любого {и, v}s£ и is{l,2} либо fi^u, v)) = 0, либо 'М(о,и)) = 0;
для всех {и, о} s Е выполнено соотношение шах{^((и, v)), fi((o, и))} + шах {f2 ((и, у)), /2 ((у. м))}<с({«, у}):
поток h (Zs{l,2}) сохраняется во всех вершинах vs ‘еИ\{31,6};
для ie(l,2} поток [,, втекающий в вершину /„ не меньше /?,.
Источник [114]. К этой задаче сводится ОРИЕНТИРОВАННЫЙ ДВУХПРОДУКТОВЫЙ ЦЕЛОЧИСЛЕННЫЙ ПОТОК.
Комментарий. Задача остается NP-полной даже в том случае, если с(е)=1 для всех ее£. Она разрешима за полиномиальное время, если с(е) четно для всех е е Е. Аналогичная задача для нецелочисленных потоков может быть решена за полиномиальное время.
[ПС 40] НЕПЕРЕСЕКАЮЩИЕСЯ СОЕДИНЯЮЩИЕ ПУТИ
УСЛОВИЕ. Заданы граф G = (V, Е) и набор непересекающих- ся пар вершин (si,6), (S2,/2), ■ ., ($»,/»).
ВОПРОС. Верно ли, что в G содержится А путей, попарно не имеющих общих вершин и соединяющих s, и ^ (для всех I, 1 ^i^ А)?
Источник [269, 281, 366]. К этой задаче сводится 3-ВЫП.
Комментарий. Для планарных графов задача остается NP-полной [366]. Для любого фиксированного А 2 сложность задачи остается открытой, но для планарных или транзитивных графов при А = 2 задача разрешима за полиномиальное время [424]. (Для общей задачи при А = 2 полиномиальный алгоритм был анонсирован в работе [487].) Аналогичная задача для планарных или ациклических ориентированных графов G при А = 2 разрешима за полиномиальное время, а для общих ориентированных графов NP-полна [424].
[ПС 41] МАКСИМАЛЬНОЕ ЧИСЛО ОГРАНИЧЕННЫХ НЕПЕРЕСЕКАЮЩИХСЯ ПУТЕЙ
УСЛОВИЕ. Заданы граф G = ^V, Е) с выделенными вершинами s и /, а также положительные целые числа 7 и КЦ,К^
ВОПРОС. Верно ли, что в графе G содержится не менее J путей из s в t, попарно не имеющих общих вершин и включающих не более К ребер?
Источник [252]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной для любого фиксированного К ^ 5. При К ^ 4 она разрешима за полиномиальное время. Задача, в которой ищутся пути, не пересекающиеся только по ребрам, NP-полна при всех фиксированных К ^ 5, она разрешима за полиномиальное время для К ^ 3 и открыта для К — 4. Те же самые результаты имеют место и в том слу-
чае, если граф и искомые пути ориентированы. Задача отыскания максимального числа непересекающихся путей из s в / без ограничения на их длину стандартными потоковыми методами разрешается за полиномиальное время (как в случае путей, не пересекающихся по вершинам, так и в случае путей, не пересекающихся по ребрам).
[ПС 42] МАКСИМАЛЬНОЕ ЧИСЛО НЕПЕРЕСЕКАЮЩИХСЯ ПУТЕЙ ФИКСИРОВАННОЙ ДЛИНЫ
УСЛОВИЕ. Задан граф G = (V, Е) с выделенными вершинами s и t и заданы положительные целые числа J и КЦ, K^|V|). ВОПРОС. Верно ли, что в G содержится не менее 1 путей из s в t, попарно не пересекающихся по вершинам и включающих ровно К ребер?
Источник [252]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной для всех К ^ 4. При К"^ 3 она разрешима за полиномиальное время. Аналогичная задача для путей, не пересекающихся по ребрам, NP-полна для любого фиксированного К ^ 4, задача разрешима за полиномиальное время при К ^ 2 и открыта при К = 3. Эти же результаты имеют место для ориентированных графов и путей, с той лишь разницей, что вариант задачи, в котором ищутся пути, не пересекающиеся по дугам, разрешается за полиномиальное время при К = 3 и открыт при К = 4.
А2.5. Разное
[ПС 43] КВАДРАТИЧНАЯ ЗАДАЧА О НАЗНАЧЕНИИ
УСЛОВИЕ. Заданы неотрицательные целочисленные стоимости сц, 1 ^ I, j ^ п, расстояния dw, 1 ^ к, / ^ т.н граница В е Zb ВОПРОС. Существует ли такое однозначное отображение f: {1,2, ..., п}-*{1,2, ..., т},что
п пп п52 52 ctjdf «> f (/> С S?52 52 ctjdf «> f (/> С S?
п п
п п
52 52 ctjdf «> f (/> С S?
52 52 ctjdf «> f (/> С S?
Источник [469]. К этой задаче сводится ГАМИЛЬТОНОВ ЦИКЛ.
Комментарий. Частный случай этой задачи, когда dki = к — /, Cij = Cji и Ci/e{0, 1}, называется задачей ОПТИМАЛЬНОЕ ЛИНЕЙНОЕ УПОРЯДОЧЕНИЕ и является NP-полной. Общая задача обсуждается, например, в книге [161].
[ПС 44] МИНИМИЗАЦИЯ ЧИСЛА ФИКТИВНЫХ РАБОТ В СЕТИ ПЕРТ
УСЛОВИЕ. Заданы ациклический граф G = (V, А^ (в котором вершины представляют задания, а дуги — ограничения предшествования) и положительное целое число К ^| У|.
ВОПРОС. Существует ли сеть типа ПЕРТ, соответствующая графу G и имеющая не более К фиктивных дуг? Иными словами, существует ли такой ориентированный ациклический граф 6' = (У', А) (где V' = ^u~, v+ : и( е У] и {(«]", v^;vte Ер^еЛ'}), что | А' |^| У 1 + ^ и в G' существует путь от о+ к vj" тогда и только тогда, когда в G существует путь от и, К О/?
Источник [307]. К этой задаче сводится ВЕРШИННОЕ ПОКРЫТИЕ.
[ПС 45] ТРИАНГУЛЯЦИЯ С ОГРАНИЧЕНИЕМ
УСЛОВИЕ. Заданы граф С = (У, Е), координаты х(и), у(о)е е Z каждой вершины о е У.
ВОПРОС. Существует ли такое подмножество Е's Е, что множество прямолинейных отрезков {[(х(и), у(u)), (х(и), y(v))]}: : (и, u^eE' на плоскости представляет собой триангуляцию множества точек {(х(и), y(u)):vE У}?
Источник [359].
Комментарий. Задача является NP-полной в сильном смысле.
[ПС 46] ГРАФ ПЕРЕСЕЧЕНИЯ ОТРЕЗКОВ РЕШЕТКИ УСЛОВИЕ. Заданы граф О=(У, Е) и положительные целые числа М, N.
ВОПРОС. Верно ли, что G представляет собой граф пересечения множества прямолинейных отрезков решетки AfXA'? Иначе говоря, существует ли такое взаимно-однозначное отображение f множества вершин У в множество прямолинейных отрезков плоскости с концами (х, у) и (z, да) (где l^x^z^Af, 1 ^ У ^ w ^ N и либо х = z, либо у = да), что {и, и} е Е тогда и только тогда, когда отрезки f(u) и f(v) пересекаются?
Источник [168]. К этой задаче сводится З-РАЗБИЕНИЕ.
Комментарий. Аналогичная задача, в которой спрашивается: „Верно ли, что G представляет собой граф пересечения прямоугольников решетки MXN"?’’ также является NP-полной [168],
[ПС 47] ВЛОЖЕНИЕ РЕБЕР В РЕШЕТКУ
УСЛОВИЕ. Заданы граф G = (V, Е) и положительные целые числа М и N.
ВОПРОС. Существует ли такое взаимно-однозначное отображение f: V—>- <1, 2, ..., Al} X {1, 2, ..., IV}, что если (u, г)еЕ, /(и) = (xi, ^i) и f(«) = (x2,^2), то либо х\ = х4, либо yi=y2 (т. е. /(и) и f(u) расположены на общей для них “линии" решетки) ?
Источник [168]. К этой задаче сводится З-РАЗБИЕНИЕ.
[ПС 48] ГЕОМЕТРИЧЕСКИ СВЯЗАННОЕ ДОМИНИРУЮЩЕЕ МНОЖЕСТВО
УСЛОВИЕ. Заданы множество точек на плоскости P = ZXZ, положительные целые числа В и К.
ВОПРОС. Существует ли такое подмножество Р's Р, что |Р'|^К, каждая точка множества Р\Р' находится на евклидовом расстоянии, не превосходящем В, от некоторой точки множества Р* и граф G = (P't Е) связен (в графе G две вершины соединены ребром тогда и только тогда, когда евклидово расстояние между ними не превосходит В)?
Источник [344]. К этой задаче сводится ПЛАНАРНАЯ 3-ВЫП.
Комментарий. Задача остается NP-полной и в том случае, если евклидова метрика заменяется метрикой типа L\ или L«> [152].
[ПС 49] МИНИМАЛЬНОЕ ВРЕМЯ ПЕРЕДАЧИ СООБЩЕНИЯ
УСЛОВИЕ. Заданы граф G = (V, Е), подмножество VoeVh положительное целое число К.
ВОПРОС. Можно ли за время, не превосходящее К, “передать” сообщение от базисного множества Уо ко всем другим вершинам? Иначе говоря, существует ли такая последовательность Vo, Ei, Vi, Е2, .... Ек, Vk, что Vi^V, Ei^E, Vk = V и для всех i, 1 ^ i ^ К, выполнены условия: (I) ровно один конец каждого ребра из множества Ei принадлежит множеству Vz—i; (2) никакие два ребра из множества Ei не имеют общего конца и (3) Vi = Vi-i U {v: {и, и} е Eip
Источник [152]. К этой задаче сводится 3-С, Дальнейшие сведения об этой задаче можно найти в работе [121].
Комментарий. При любом фиксированном К ^ 4 задача АГР-пол- на, а при К = 1 решается за полиномиальное время с помощью метода паросочетаний. В случае когда |Vo| = 1, задача остается
NP-полной, но если G— дерево, то она разрешима за полиномиальное время [83].
[ПС 50] МИНИМАКСНОЕ МНОЖЕСТВО ЦЕНТРОВ
УСЛОВИЕ. Заданы граф G = (V, Е), вес а? (и) е Z» каждой вершины u^V, длина /(e)eZo каждого ребра ееЕ, положительное целое число К ^ | У| и положительное рациональное число В.
ВОПРОС. Существует ли такое множество Р мощности К, “состоящее из точек на G" (точкой на G называется либо вершина графа G, либо точка на ребре сеЕ, где е рассматривается как прямолинейный отрезок длины /(e)), что если d(y)— длина кратчайшего пути от вершины у до ближайшей к ней точке из Р, то max (d(y) -иДу): и е У) ^ В?
Источник. [278]. К этой задаче сводится ДОМИНИРУЮЩЕЕ МНОЖЕСТВО.
Комментарий. Эта задача известна также под названием задачи о “р-центрах”. Задача остается NP-полной и тогда, когда zy(y)= 1 для всех уе У и /(е) = 1 для всех 6е£. Для любого фиксированного К и для произвольного К при условии, что G — дерево, задача разрешима за полиномиальное время [278]. Вариант этой задачи, в котором Р— подмножество вершин, также NP-полон, но если К фиксировано или G— дерево, то разрешим за полиномиальное время [493].
[ПС 51] МНОЖЕСТВО ЦЕНТРОВ С МИНИМАЛЬНОЙ СУММОЙ
УСЛОВИЕ. Заданы граф G — (V, Е), Becw(v)^Zo каждой вершины у е У, длина /(e)EZ^ каждого ребра ееЕ, положительное целое число /С^|У| и положительное рациональное число В.
ВОПРОС. Существует ли такое множество Р, состоящее из К “точек на G”, что если d(y)—длина кратчайшего пути от у до ближайшей к ней точки из Р, то У, d(u)- ш(у)^В?
и eV
Источник [279]. К этой задаче сводится ДОМИНИРУЮЩЕЕ МНОЖЕСТВО.
Комментарий. Эта задача известна также под названием задачи о “р-медиане”. Можно показать, что условие Р е У не ограничивает общности задачи. Задача остается NP-полной, если ф(у) = 1 для всех уе У и 1(e) — 1 для всех е е Е. Если К фиксировано или если К произвольно, a G — дерево, то задача разрешима за полиномиальное время.
АЗ. МНОЖЕСТВА И РАЗБИЕНИЯ
АЗЛ. Покрытие, представители и расщепление
[MP 1] ТРЕХМЕРНОЕ СОЧЕТАНИЕ (3-С)
УСЛОВИЕ. Задано подмножество М ^W>XXXY (где W, X, Y—непересекающиеся множества, содержащие по q элементов). ВОПРОС. Верно ли, что в М содержится 3-сочетание? Иными словами, существует ли такое подмножество М' г М, что | АР | = = q и никакие два элемента не имеют ни одной одинаковой координаты?
Источник [280]. К этой задаче сводится 3-ВЫП (см. разд. 3.1.2).
Комментарий. Задача остается NP-полной и в том случае, если М “совместимо по парам”, т. е. для любых элементов а, b и с имеет место свойство: если существуют такие элементы w, х и у, что (а, Ь, у) е М, (а, х, с) ^ М и (щ, b, с) е М, то (а, b, с) е М (это утверждение следует из доказательства теоремы 3.1.2). Задача остается NP-полной и тогда, когда ни один элемент не входит более чем в три тройки, однако если нет элементов, содержащихся более чем в двух тройках, то задача разрешима за полиномиальное время [152]. Близкая задача ПАРОСОЧЕ- ТАНИЕ (в которой М г WX X) также разрешима за полиномиальное время (см., например, [324]).
[МР 2] ТОЧНОЕ ПОКРЫТИЕ 3-МНОЖЕСТВАМИ (ТП-3)
УСЛОВИЕ. Заданы множество X- (такое, что |X| = 3^), набор С подмножеств множества X, содержащих по 3 элемента.
ВОПРОС. Верно ли, что С содержит точное покрытие множества X, т. е. такой поднабор О' г С, что любой элемент из X принадлежит ровно одному подмножеству семейства С'?
Источник [280]. К этой задаче сводится 3-С.
Комментарий. Задача остается NP-полной и тогда, когда ни один элемент из X не принадлежит более чем трем подмножествам семейства С, но если ни один элемент не принадлежит более чем двум подмножествам семейства С, то задача разрешима за полиномиальное время [152]. Близкая задача ТОЧНОЕ ПОКРЫТИЕ 2-МНОЖЕСТВАМИ также разрешима за полиномиальное время (с помощью метода паросочетаний).
[МР 3]УПАКОВКА МНОЖЕСТВ
УСЛОВИЕ. Заданы набор С конечных множеств, положительное число К ^ | С|.
ВОПРОС. Верно ли, что множество С содержи! по крайней мере К непересекающихся множеств?
Источник [280]. К этой задаче сводится ТП-3.
Комментарий. Задача остается NP-полной, даже если |с|^3 для всех сеС. С помощью метода паросочетаний задача решается за полиномиальное время, когда |с|^2 для всех се С.
[МР 4] РАСЩЕПЛЕНИЕ МНОЖЕСТВА
УСЛОВИЕ. Задан набор С подмножеств множества S.
ВОПРОС. Существует ли такое разбиение множества S на два подмножества, что ни одно подмножество из С не содержится целиком ни в Si, ни в 5г?
Источник [360]. К этой задаче сводится 3-ВЫП ПРИ РАЗЛИЧНЫХ ЛИТЕРАЛАХ. Эта задача известна также под названием РАСКРАШИВАЕМОСТЬ ГИПЕРГРАФА В ДВА ЦВЕТА.
Комментарий. Задача остается NP-полной, даже когда |с|^3 для всех се С. Если |с|^2 для всех се С, (такая задача называется РАСКРАШИВАЕМОСТЬ ГРАФА В ДВА ЦВЕТА), то задача разрешима за полиномиальное время.
[МР 5] МИНИМАЛЬНОЕ ПОКРЫТИЕ
УСЛОВИЕ. Заданы набор С подмножеств конечного множества S, положительное целое число К ^ | С |.
ВОПРОС. Верно ли, что С содержит покрытие мощности не более К? Иными словами, существует ли такое подмножество С'еС, что I^I^K и любой элемент из S принадлежит по крайней мере одному подмножеству из С'?
Источник [280]. К этой задаче сводится ТП-3.
Комментарий. Задача остается NP-полной даже тогда, когда |с|^3 для всех се С. С помощью метода паросочетаний задача решается за полиномиальное время, если |с|^2 для всех се С.
[МР 6] МИНИМАЛЬНОЕ МНОЖЕСТВО ТЕСТОВ
УСЛОВИЕ. Заданы набор С подмножеств конечного множества S и положительное целое число К ^ | С |.
ВОПРОС. Существует ли такой поднабор С'еС, что [C'l^K и для каждой пары различных элементов и, и еС существует тест С е С', содержащий ровно один из них?
Источник [152]. К этой задаче сводится 3-С.
Комментарий. Задача остается NP-полной, если |с|^3 для любого се С1). Вариант этой задачи, когда С' может содер-
*) Дж. К. Ленстра указал нам, что эта задача остается КР-аолной даже в том случае, когда [с] ^ 2 для любого с в С — Дополнение авторов.
жать не только множества из С, но и их объединения, также NP-полон [247].
[МР 7] БАЗИС СЕМЕЙСТВА МНОЖЕСТВ
УСЛОВИЕ. Заданы набор С подмножеств конечного множества S и положительное целое число К^|С|.
ВОПРОС. Существует ли такой набор В подмножеств множества S, что | В | = К и для каждого подмножества с е С в В существует такой поднабор, что объединение множеств этого поднабора совпадает с с?
Источник [499]. К этой задаче сводится ВЕРШИННОЕ ПОКРЫТИЕ.
Комментарий. Задача NP-полна, если |с|^3 для любого се С, и становится тривиальной, если |с|^2 для каждого се С.
[МР 8] МНОЖЕСТВО ПРЕДСТАВИТЕЛЕЙ
УСЛОВИЕ. Заданы набор С подмножеств конечного множества S и положительное целое число К ^ |S|.
ВОПРОС. Существует ли такое подмножество S' = S, что |S'|^ К и S' содержит по крайней мере один элемент каждого подмножества из С?
Источник [280]. К этой задаче сводится ВЕРШИННОЕ ПОКРЫТИЕ.
Комментарий. Задача остается NP-полной даже в том случае, если | с| 2 для всех с е С.
[МР 9] МОДЕЛЬ ПЕРЕСЕЧЕНИЯ МНОЖЕСТВ
УСЛОВИЕ. Задана матрица А = (а;/) порядка пХпс элементами из Z*.
ВОПРОС. Существует ли такой набор множеств С = {Сь С2,... ..., Сп}, что для всех i, / (1 ^/, j^n) имеет место равенство а</ = | С/ П С/| ?
Источник [77]. К этой задаче сводится РАСКРАШИВАЕ- МОСТЬ ГРАФА В ТРИ ЦВЕТА.
Комментарий. Задача остается NP-полной даже тогда, когда ац = 3 для всех i, 1 ^ i ^ m (и следовательно, все множества Ct имеют мощность, равную 3). Если а» = 2, то задача эквивалентна задаче о распознавании реберного графа и, следовательно, разрешима за полиномиальное время (см., например, [196]).
[МР 10] СРАВНИТЕЛЬНОЕ СОДЕРЖАНИЕ
УСЛОВИЕ. Заданы два набора R = {/?i, Ri, ..., Rk} и 5 = = {Si, S2, ..., SJ подмножеств конечного множества X и для всех i и / (1 ^ i ^ k, 1 ^ / ^ /) веса w (Ri), w(Sj)e Z+. ВОПРОС. Существует ли такое подмножество Y е X, что
Е ti)(Ri)> Е w^y?
YGRtYeS,
Источник [429]. К этой задаче сводится ВЕРШИННОЕ ПОКРЫТИЕ.
Комментарий. Задача остается NP-полной даже в том случае, если все подмножества из наборов R и S имеют веса, равные 1 [152].
[МР 11] ПЕРЕСЕЧЕНИЕ ТРЕХ МАТРОИДОВ
УСЛОВИЕ. Заданы три матроида: (Е, Fi), (Е, F2), (Е, F3) и положительное целое число Е^|Е|. (Матроидом (Е, F) называется множество элементов Е и такое непустое семейство F подмножеств множества Е, что выполнено два условия: (1) если SeF, то и любое подмножество множества S принадлежит F, и (2) если для двух множеств S,S'eF выполнено соотношение |S| = 15'14-1, то найдется такой элемент esS\S', что (S'UW)eE)
ВОПРОС. Существует ли такое подмножество Е' е Е, что |Е'| = К и Е'е^П^ЛЕз?
Источник. К этой задаче сводится 3-С.
Комментарий. Аналогичная задача ПЕРЕСЕЧЕНИЕ ДВУХ МАТРОИДОВ может быть решена за полиномиальное время даже в том случае, если матроиды заданы посредством полиномиальных алгоритмов, распознающих его составляющие. При этом можно допустить даже, чтобы элементы ееЕ имели веса w(e)eZ+, а цель заключается в отыскании такого множества E'eEiQF^ что его вес максимально возможный (см., например, [324]).
А3.2. Задачи о множествах с взвешенными элементами
[МР 12] РАЗБИЕНИЕ
УСЛОВИЕ. Заданы конечное множество А и размеры s(a)eZ+ всех элементов а е А
ВОПРОС. Существует ли такое подмножество А' s А, что
Е s(a)= Е s(a\?
не А'ае АХА' ~
Источник [280]. К этой задаче сводится 3-С (см. разд. 3.1.5).
Комментарий. Задача остается NP-полной даже в том случае, если потребовать, чтобы |Л'| = |Л|/2, или если задано упорядочение аь а2, ..., а2л элементов множества Л и требуется, чтобы А' содержало ровно один элемент из каждой пары а2<-ь аг, (1 ^t^n). Все эти задачи, однако, могут быть решены методом динамического программирования за псевдопо- линомиальное время (см. разд. 4.2).
[МР 13] СУММА РАЗМЕРОВ
УСЛОВИЕ. Заданы конечное множество А, размеры s(a) = Z+ всех элементов а е А и положительное целое число В.
ВОПРОС. Существует ли такое подмножество А' = А, что сумма размеров его элементов равна В?
Источник [280]. К этой задаче сводится РАЗБИЕНИЕ.
Комментарий. Задача разрешима за псевдополиномиальное время (см. разд. 4.2).
[МР 14] ПРОИЗВЕДЕНИЕ РАЗМЕРОВ
УСЛОВИЕ. Заданы конечное множество А, размеры s(a)eZ+ всех элементов а е А и положительное целое число В.
ВОПРОС. Существует ли такое подмножество А' = А, что произведение размеров его элементов равно В?
Источник [538]. К этой задаче сводится ТП-3.
Комментарий1). Задача разрешима за псевдополиномиальное время от | А|, max(s(a): ae Л}. ,
[МР 15] З-РАЗБИЕНИЕ
УСЛОВИЕ. Заданы множество А, состоящее из 3m элементов, граница В е Z+ и такие размеры s^eZ" всех элементов а е А, что В/4 < s(a) < В/2 и У s(a)=mB.
ае А
ВОПРОС. Можно ли множество А так разбить на m непересе- кающихся подмножеств Ль Л2, ;.., Лт, что для любого I (1 ^ i ^ т) выполнено соотношение У. s(a) = B (заметим.
аеА(
что каждое множество Л, должно содержать ровно три элемента)?
Источник [145]. К этой задаче сводится 3-С (см. разд. 4.2).
Комментарий. Задача NP-полна в сильном смысле.
[МР 16] ТРЕХМЕРНОЕ СОЧЕТАНИЕ С ОГРАНИЧЕНИЯМИ ПО ВЕСУ
УСЛОВИЕ. Заданы непересекающиеся множества W, X и У, содержащие по т элементов каждое, размер s(c)eZ+ каждого элемента а г W U X U У и граница В е Z+.
ВОПРОС. Можно ли множество №11-^11 У так разбить на т непересекающихся множеств Ль Л2 ..., Ат, что каждое А содержит по одному элементу из каждого множества W, X и У и для всех i (1 ^ i ^ т) выполнены соотношения
£ s(a) = BtaeAt
Источник [152]. К этой задаче сводится 3-С (см. доказательство теоремы 4.4).
Комментарий. Задача NP-полна в сильном смысле.
[МР 17] ПАРОСОЧЕТАНИЕ С ОГРАНИЧЕНИЯМИ ПО ВЕСУ УСЛОВИЕ. Заданы непересекающиеся множества X и У, каждое из которых содержит m элементов, размеры s(a)eZ+ всех элементов аеХИУ и вектор ограничений <Вт, В2, ..., Вт> с положительными целыми координатами.
ВОПРОС. Можно ли множество X U У так разбить на m непересекающихся множеств Л], Л2, ..., Ат, каждое из которых содержит по одному элементу из X и У, что 2 s (о) е В( для aeAt
всех i (1 ^ /< т)?
Источник. К этой задаче сводится ТРЕХМЕРНОЕ СОЧЕТАНИЕ С ОГРАНИЧЕНИЯМИ ПО ВЕСУ.
Комментарий. Задача NP-полна в сильном смысле, но разрешима за полиномиальное время, если Bi = В2 = ... = Вт.
[МР 18] МАТЕМАТИЧЕСКОЕ ОЖИДАНИЕ СУММЫ КОМПОНЕНТ
УСЛОВИЕ. Заданы набор С m-мерных векторов о = (ць р2, ... ..., um) с целыми неотрицательными координатами, положительные целые числа К и В.
ВОПРОС. Можно ли так разбить С на непересекающиеся подмножества Сь С2, ..., С к, что
к
Источник [152]. К этой задаче сводится ТП-3. Эта задача была предложена в работе [534] и соответствует задаче об отыскании
разбиения, максимизирующего математическое ожидание наибольшей из сумм компонент в предположении, что все множества разбиения равновероятны.
Комментарий. Задача NP-полна даже тогда, когда все компоненты векторов есть 0 или 1. Разрешима за полиномиальное время, если К фиксировано. Вариант этой задачи, в котором ищется разбиение на К непустых множеств, дающее сумму не более В, является NP-полным и тогда, когда К = 3 и все компоненты векторов есть 0 или 1.
[МР 19] МИНИМУМ СУММЫ КВАДРАТОВ
УСЛОВИЕ. Заданы конечное множество А, размер s(a)eZ+ каждого элемента ае А, положительные целые числа К и J (Ж|Л|).
ВОПРОС. Можно ли множество А так разбить на К непересе- кающихся множеств Ль Л2, .... Ак, что
к
Z S(«)Y<J?
<-1\аеЛ,)
Источник. К этой задаче сводится РАЗБИЕНИЕ или З-РАЗ- БИЕНИЕ.
Комментарий. Задача NP-полна в сильном смысле. Она NP- полна в обычном смысле и разрешима за псевдополиномиаль- ное время при любом фиксированном К. Варианты этой задачи, в которых ограничение числа множеств К заменяется либо ограничением на максимальную мощность множеств, либо ограничением на максимум общего размера множеств, также NP-полны в сильном смысле [535]. Во всех случаях NP-полнота задачи сохраняется при замене показателя 2 на любое рациональное число а > 1.
[МР 20] К-е ПО ПОРЯДКУ ПОДМНОЖЕСТВО (*)
УСЛОВИЕ. Заданы конечное множество А, размер s(a)eZ+ каждого элемента ае А, положительные целые числа К и В. ВОПРОС. Верно ли, что существует не менее К различных подмножеств А' £ А, сумма размеров элементов которых не превосходит В?
Источник [260]. К этой задаче сводится СУММА РАЗМЕРОВ.
Комментарий. Принадлежность этой задачи классу NP не установлена. Задача разрешима за псевдополиномиальное время (за время, ограниченное полиномом от К, |Л| и InSs(a)) [322]. Соответствующая задача перечисления КР-полна. '
[МР 21] ВЕКТОР к-й ПО ВЕЛИЧИНЕ (*)
УСЛОВИЕ. Заданы подмножества X], Х2, ..., Xm £ Z+, размер 5 (х) е Z+ каждого элемента хе X, ( \ ^ i ^ т) и положительные целые числа К, В.
ВОПРОС. Верно ли, что существует не менее К различных /n-мерных векторов (хь х2, .... xm)eXtXX2X ... XXm, та- т
КИХ, ЧТО У. S (хг) В?
Источник [261]. К этой задаче сводится РАЗБИЕНИЕ.
Комментарий. Принадлежность этой задачи классу NP не известна. Задача разрешима за полиномиальное время при фиксированном К, а в общем случае разрешима за псевдополино- миальное время (время, ограниченное полиномом от К, £|Хг| и ln£s(x)). Соответствующая задача перечисления КР-полна.
А4. ХРАНЕНИЕ И ПОИСК ДАННЫХ
А4.1. Хранение данных
[ХП 1] УПАКОВКА В КОНТЕЙНЕРЫ
УСЛОВИЕ. Заданы конечное множество U предметов, размер s(u)eZ+ каждого предмета ueU, положительное целое число В — вместимость контейнера, положительное целое число К.
ВОПРОС. Существует ли такое разбиение множества U на не- пересекающиеся подмножества Ui, U2, ..., Uk, что сумма размеров предметов из каждого подмножества Ui не превосходит В? Источник К этой задаче сводятся РАЗБИЕНИЕ И З-РАЗБИЕ- НИЕ.
Комментарий. Задача NP-полна в сильном смысле. Для каждого фиксированного К ^ 2 она NP-полна и разрешима за псевдополиномиальное время. Методом полного перебора при любом фиксированном В задача решается за полиномиальное время.
[ХП 2] ДИНАМИЧЕСКОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ
УСЛОВИЕ. Заданы множество элементов данных А, размер s(a)eZ+ каждого элемента данных аеА, время поступления r(a)eZg и время d(a)eZ+ окончания работы с элементом данных а е А, положительное целое число D — размер области памяти.
ВОПРОС. Существует ли для множества элементов данных А допустимое распределение памяти? Иначе говоря, существует
ли такая функция а: А-»- {1, 2D), что для каждого эле
мента а е Л интервал
/ (а) = [ст(а), <т(а) + $(а) — 1]
содержится в [1. D], причем для любых а, а' еА, если множество /(а)П /(а') не пусто, то либо d(a) ^ г(а'), либо d(a') ^ г(а)?
Источник [501]. К этой задаче сводится З-РАЗБИЕНИЕ.
Комментарий. Задача NP-полна в сильном смысле даже в том случае, если s(a)E (1, 2} для всех а г А. Если размеры всех элементов данных одинаковы, то задача решается за полиномиальное время алгоритмами раскраски интервальных графов (см., например, [163]).
[ХП 3] МИНИМИЗАЦИЯ ПАМЯТИ ДЛЯ СТРУКТУРЫ ДАННЫХ «PRUNED TRIE»1)
УСЛОВИЕ. Заданы конечное множество S, семейство F функций вида f: S-*-Z+ и положительное целое число К.
ВОПРОС. Существует ли такая последовательность f: S-»-Z+ различных функций из F, что для каждой пары элементов a, b е S существует такое i (l^t^m), что ft(a) N= fi(b) и m
^Ny^K (где V (t)—число различных t-мерных векторов i — 1
Х = ^х\, Хг, ..., х^, для которых имеются по крайней мере 2 элемента end, такие, что (fi(c), /2(c), ..., h(c)) = (/i(d), h№f,(d)) = X))?
Источник [87]. К этой задаче сводится 3-С.
Комментарий. Задача остается NP-полной и тогда, когда все IeF принимают значения в множестве (0, 1}. Варианты задачи, возникающие при замене структуры данных “pruned trie” структурой данных “full trie”, “collapsed trie” или “pruned О-trie”, также NP-полны. Близкая задача “минимизация времени доступа" также NP-полна для задачи со структурой данных pruned trie, в которой ищется последовательность <fi, /2, ... ..., fn) функций из F, различающих (как и выше) любые два элемента из S, и обладающая тем свойством, что £ L (а) С К,
-aeS
(где время доступа L(a) к элементу oeS определяется как наименьшее из таких i, для которых не существует такого
■) Термин “trie" восходит к работе Е. Fredkin "Trie memory". Comm, of the ACM, 1960, 3, 9, и происходит, по-видимому, от слова reTRIEval. — Прим, ред.
элемента beS, что последовательность (Л(&), /2(6)fi(b)')
совпадает с (fi(a), Ыа), ..., А(а))).
[ХП 4] ОЖИДАЕМАЯ СТОИМОСТЬ ПОИСКА
УСЛОВИЕ. Заданы множество R записей, рациональное число р(г)е[0, 1]— вероятность обращения к записи reR (причем У P(r)—1). число сегментов т и положительное целое число К.
reR
ВОПРОС. Существует ли разбиение множества R на такие не- пересекающиеся подмножества Ri, Ri, ..., Rm, что сумма по всем упорядоченным парам I, / (l^t, / ^ m) величин p(Ri)- • p(Ri)-d(i, j) не превосходит К (где p(Rt) = У, р(г) и стои- reR,
мость перехода d(i, /) равна j — I—1, если 1 i < j т, и равна т— t + /— 1, если 1 ^ / ^ t ^ т)?
Источник [84]. К этой задаче сводятся РАЗБИЕНИЕ и З-РАЗ- БИЕНИЕ.
Комментарий. Задача NP-полна в сильном смысле. Для каждого фиксированного m ^ 2 она NP-полна и разрешима за псевдополиномиальное время.
[ХП 5] ОРГАНИЗАЦИЯ ПАМЯТИ В ВИДЕ КОРНЕВОГО ДЕРЕВА
УСЛОВИЕ. Заданы конечное множество X, набор С = = {Х1,Хг, .... Хи} подмножеств множества X, положительное целое число К.
ВОПРОС. Существует ли такой набор С = {Х[, Х£Хп} подмножеств множества X, что X, ^Х[ при всех i (l^i^n), д
У | Xi — Х||^Х и существует ориентированное корневое дерево Т(х, Л), в котором элементы каждого из подмножеств X'i, 1^/^л, образуют ориентированный путь?
Источник [168]. К этой задаче сводится ПРЕДСТАВЛЕНИЕ В ВИДЕ КОРНЕВОГО ДЕРЕВА.
[ХП 6] РАЗМЕЩЕНИЕ ФАЙЛА С ДУБЛИРОВАНИЕМ
УСЛОВИЕ. Задан граф G = (V, Е),для каждой вершины и eV заданы количество обращений u(v)eZ+ и стоимость запоминания s (у) Е Z+, а также положительное целое число К.
ВОПРОС. Существует ли такое подмножество V* s V, что
У S(D)+ У d(y)-u(y)^K?«■Vв eV
(Здесь d(v) означает число ребер кратчайшего пути в G, от и до множества У'.)
Источник [529]. К данной задаче сводится ВЕРШИННОЕ ПОКРЫТИЕ.
Комментарий. Задача NP-полна в сильном смысле даже в том случае, когда все вершины не У имеют одинаковые величины и (и) и одинаковые величины s(v).
[ХП 7] ВЫБОР ПРОПУСКНЫХ СПОСОБНОСТЕЙ
УСЛОВИЕ. Заданы множество С линий связи, множество пропускных способностей М s Z+, функция стоимости g: СХМ ->-Z+, функция d; CXM^-Z+ штрафа за задержку, такие, что для всех сеС и i < j, I, jeM выполнены неравенства g(c, i)^ ^gtAf) и <Цс. D^ d^c, j), а также заданы положительные целые числа К и J.
ВОПРОС. Существует ли такой выбор пропускных способностей а: С-*М, что общая стоимость У, g (с, о (с)) не превосхо- сеС
дит К, а общий штраф за задержку 2d(c, о(с)) не превосходит /?
Источник [529]. К этой задаче сводится СУММА РАЗМЕРОВ.
Комментарий. Задача разрешима за псевдополиномиальное время.
А4.2. Сжатие и представление информации
[ХП 8] КРАТЧАЙШАЯ ОБЩАЯ НАДПОСЛЕДОВАТЕЛЬНОСТЬ
УСЛОВИЕ. Заданы конечный алфавит 2, конечное множество R слов в алфавите 2 и положительное целое число К.
ВОПРОС. Существует ли такое слово w е 2*, что |w|^K и каждое слово xeR есть подпоследовательность слова w (т. е. w=WQXiW\x2xs)a ... XfeWh, где w.e^*, а х=х\, х2х*?
Источник [371]. К этой задаче сводится ВЕРШИННОЕ ПОКРЫТИЕ.
Комментарий. Задача остается NP-полной даже тогда, когда | S | = 2. Если |/?| = 2, то она решается за полиномиальное время (для чего вначале вычисляется наибольшая общая подпоследовательность). То же самое верно, если |х|^2 для всех xeR.
[ХП 9] КРАТЧАЙШЕЕ ОБЩЕЕ «НАДСЛОВО»
УСЛОВИЕ. Заданы конечный алфавит 2, конечное множество R слов из 2* и положительное целое число К.
ВОПРОС. Существует ли такое слово до е 2, что jw|^K и любое слово xeR есть подслово w, т. е. до = доохдоь где до,- е 2*?
Источник [372]. К этой задаче сводится ВЕРШИННОЕ ПОКРЫТИЕ для кубических графов.
Комментарий. Задача остается NP-полной и в том случае, если 121 = 2 или если | х [ ^ 8 для всех слов х е R и все слова из R не содержат повторяющихся символов. Когда [х|^2 для всех хе R, то задача разрешима за полиномиальное время.
[ХП 10] ОБЩАЯ ПОДПОСЛЕДОВАТЕЛЬНОСТЬ НАИБОЛЬШЕЙ ДЛИНЫ
УСЛОВИЕ. Заданы конечный алфавит 3, конечное множество R слов из 2* и положительное целое число К-
ВОПРОС. Существует ли такое слово ше2‘, что ]до|^К и до — подпоследовательность каждого слова из Rt
Источник [371]. К этой задаче сводится ВЕРШИННОЕ ПОКРЫТИЕ.
Комментарий. Задача остается NP-полной даже тогда, когда |S| = 2. Если К или |^1 фиксировано, то задача решается за полиномиальное время (методом динамического программирования (см., например, [531]). Аналогичная задача ОБЩЕЕ ПОДСЛОВО НАИБОЛЬШЕЙ ДЛИНЫ тривиально решается за полиномиальное время.
[ХП 11] ОГРАНИЧЕННОЕ СООТВЕТСТВИЕ СООБЩЕНИЙ УСЛОВИЕ. Заданы конечный алфавит 2, две последовательности а=(аь аг, •••, On) и 6 = (Ь1(&2, • ••, Ьп) слов из 2* п положительное целое число К ^ п.
ВОПРОС. Существует ли такая последовательность it, i2U, состоящая из k, кг К (не обязательно различных), целых чисел из отрезка [1, п], что слова а/р а,2, ..., о<4 и Ь^, 6/2, ..., btfe совпадают?
Источник [88]. Общая сводимость1).
Комментарий. Если на к не наложено верхнее ограничение, то задача неразрешима (см., например, [215]).
[ХП 12] ПРЕДСТАВЛЯЮЩЕЕ СЛОВО
УСЛОВИЕ. Задано конечное множество Л слов в алфавите (О, 1, *}, имеющих длину, равную п.
ВОПРОС. Существует ли такое слово хе{0, 1}*, что |х| = п и для каждого слова аеА найдется такое i, 1 ^ / ^ п, что в словах х и а i-е символы совпадают?
Источник [120]. К этой задаче сводится 3-ВЫП.
[ХП 13] СЖАТИЕ РАЗРЕЖЕННОЙ МАТРИЦЫ
УСЛОВИЕ. Заданы (m X я)-матрица А с элементами а„ е е{0,1}, 1 t ^ tn, X^j^n, и положительное целое число К ^ тп.
ВОПРОС. Существует ли такая последовательность (&b ba, ... ..., bn+к), состоящая из целых чисел bi, X ^bi^m, и такая функция s: {1,2, ..., т}->-{1,2, ..., /(}, что для всех I и / (1 ^ i ^ т, 1 ^ / ^ n) Oil = 1 тогда и только тогда, когда bs<i)+i = #
Источник [116]. К этой задаче сводится РАСКРАШИВАЕ- МОСТЬ ГРАФА В 3 ЦВЕТА.
Комментарий. Задача остается NP-полной при К = 3.
[ХП 14] ПОДМАТРИЦА СО СВОЙСТВОМ СВЯЗАННОСТИ
УСЛОВИЕ. Заданы (m X «) -матрица А с элементами 0 и 1 и положительное целое число К.
ВОПРОС. Существует ли в матрице А подматрица В порядка m X К, обладающая свойством “связности единиц" (т. е. подматрица В, столбцы которой можно так переставить, что в каждой строке все единицы идут подряд) ?
Источник [51]. К этой задаче сводится ГАМИЛЬТОНОВ ПУТЬ.
Комментарий. Вариант этой задачи, в котором ищется подматрица В, обладающая свойством “циклической связности", т. е. подматрица, столбцы которой можно переставить так, что в каждой строке либо все единицы, либо все нули идут подряд, также NP-полон. Обе задачи могут быть решены за полиномиальное время, если К = п (т. е. если спрашивается: “Верно ли, что нужным свойством обладает сама матрица А?”). См., например, [132, 54].
[ХП 15] РАЗБИЕНИЕ НА ПОДМАТРИЦЫ СО СВОЙСТВОМ связности
УСЛОВИЕ. Задана (0— 1)-матрица А порядка m X п.
ВОПРОС. Можно ли так разбить строки матрицы на две подгруппы, чтобы получившиеся в результате матрицы порядков mi X п и maXn (mi + m2 = m) обладали свойством связности единиц?
Источник. [352]. К этой задаче сводится ГАМИЛЬТОНОВ ПУТЬ в кубическом графе.
[ХП 16] ДОПОЛНЕНИЕ ДО МАТРИЦЫ СО СВОЙСТВОМ связности
УСЛОВИЕ. Заданы (0—1)-матрица А порядка тХ^и положительное целое число К-
ВОПРОС. Существует ли матрица А', получаемая из матрицы А заменой в ней не более К нулевых элементов единицами, такая, что А обладает свойством связности единиц?
Источник [51,407]. К этой задаче сводится ЛИНЕЙНОЕ УПОРЯДОЧЕНИЕ.
Комментарий. Вариант задачи, когда ищется матрица А, обладающая свойством циклических единиц, также NP-полон.
[ХП 17] МИНИМИЗАЦИЯ ЧИСЛА БЛОКОВ
УСЛОВИЕ. Заданы (0—1)-матрица А порядка m X м и положительное целое число К.
ВОПРОС. Существует ли такая перестановка столбцов матрицы А, что получившаяся в результате матрица В имеет не более К блоков из последовательно идущих единиц, т. е. не более К таких пар индексов I, j, что 6// = 1 и либо bi, /+i = 0, либо j = и?
Источник [297]. К этой задаче сводится ГАМИЛЬТОНОВ ПУТЬ.
Комментарий. Если свойство “/ = п" заменить свойством “j = = п и bi\ = 0", то задача остается NP-полной [51]. Если К равно числу строк (матрицы А), содержащих хотя бы одну единицу, то эти задачи эквивалентны задачам о проверке наличия у матрицы А свойства связности единиц или циклической связности соответственно, и они могут быть решены за полиномиальное время.
[ХП 18] ПРЕДСТАВЛЕНИЕ СО СВОЙСТВОМ СВЯЗНОСТИ УСЛОВИЕ.Заданы конечный алфавит 3,набор С = {31,3г, ••• ..., Зп} подмножеств множества 3 и положительное целое число К-
ВОПРОС. Существует ли такое слово w е 5*. что |щ|^Л и для каждого t элементы множества 3; образуют в слове ш подслово длины |SJ?
Источник [297]. К данной задаче сводится ГАМИЛЬТОНОВ ПУТЬ.
Комментарий. Вариант задачи, в котором требуется только, чтобы элементы каждого множества 3/ образовывали подслово
длины |2/| в слове ww (т. е. допускаются подслова слова w), записанном по окружности, также NP-полон [51]. Если К равно числу различных символов из 2/, то эти задачи эквивалентны задачам выяснения того, обладает ли матрица свойством связности или циклической связности единиц соответственно, и разрешимы за полиномиальное время.
[ХП 19] РАЗБИЕНИЕ СО СВОЙСТВОМ СВЯЗНОСТИ
УСЛОВИЕ.Заданы конечный алфавит 2 и набор С = {2ь 22, ... ..., 2Я} подмножеств из 2.
ВОПРОС. Существует ли разбиение 2 на такие непересекаю- щиеся множества Хг, Х2> ..., Хк, что каждое из Х: имеет не более одного общего элемента с каждым из 2/ и для каждого 2/еС существует такой индекс /(/), что множество 2/ содержится в множестве
Xh/)U^z(/)+iU ••• и(Л+1 Sz|-1?
Источник, [350,351]. К этой задаче сводится РАСКРАШИВАЕ- МОСТЬ ГРАФА В ТРИ ЦВЕТА.
Комментарий. Если |2/[^ 5 для всех 2/ е С, то задача остается NP-полной, но если |2/|^2 для всех 2/е С, то она разрешима за полиномиальное время.
[ХП 20] РЕДАКТИРОВАНИЕ СЛОВА
УСЛОВИЕ. Заданы конечный алфавит 2, два слова х, gel* и положительное целое число К»
ВОПРОС. Можно ли получить из слова х слово у, применив не более К операций вычеркивания символа и перестановки соседних символов?
Источник [530]. К этой задаче сводится ПОКРЫТИЕ МНОЖЕСТВА.
Комментарий. Задача разрешима за полиномиальное время, если в множество операций дополнительно включить операции замены и вставления отдельной буквы даже тогда, когда перестановка букв не допускается (см., например, [531]), или тогда, когда единственной операцией является операция перестановки соседних букв [530]. В указанных работах приводятся также и другие аналогичные результаты для задач, в которых различные операции имеют различную стоимость.
[ХП 21] ГРУППИРОВКА С ПОМОЩЬЮ ТРАНСПОЗИЦИЙ УСЛОВИЕ. Заданы конечный алфавит 2, слово хе 2* и положительное целое число К.
ВОПРОС. Существует ли последовательность, состоящая не более чем из К транспозиций соседних символов и превращающая слово х в слово у, у которого все вхождения каждого символа a G 2 образуют один блок (т. е. в слове у нет подпоследовательностей вида aba, где a, b е 2 ио^=6)?
Источник [224]. К этой задаче сводится МНОЖЕСТВО ДУГ, РАЗРЕЗАЮЩИХ КОНТУРЫ.
[ХП 22] СЖАТИЕ ВНЕШНИХ МАКРОДАННЫХ
УСЛОВИЕ. Заданы конечный алфавит 2, слово s е 2*, стоимость указателя /ig Z+ и граница В е Z+.
ВОПРОС. Существуют ли такие слова D (слово-словарь) и С (сжатое слово) в алфавите (2 U(р« • 1 ^ i ^1$|}) (символы р, называются “указателями”), что (1) |D| + |C|4-(/i—1) • (число вхождений указателей в слова D и С) ^ В и (2) существует такое соответствие указателей с подсловами слова D, что слово S может быть получено из слова С последовательной заменой указателей из С соответствующими подсловами из D?
Источник [505,506]. К этой задаче сводится ВЕРШИННОЕ ПОКРЫТИЕ.
Комментарий. Если h — любое фиксированное целое число, не меньшее 2, то задача остается NP-полной. Многие ее варианты, в том числе задачи, в которых D не содержит указателей и/или если указатели соответствуют неперекрывающимся словам, также являются NP-полными. Если алфавит содержит фиксированное число букв (но не менее 3) и стоимость указателя равна rAlog|s, 1, то задача также NP-полна. В упомянутых выше работах приводятся другие варианты задачи, в том числе задачи с “исходными указателями".
[ХП 23] СЖАТИЕВНУТРЕННИХ МАКРОДАННЫХ
УСЛОВИЕ. Заданы алфавит 2, слово s G 2*. стоимость /igZ+ указателя и граница В е Z+.
ВОПРОС. Существует ли такое слово С(2 U{p<: 1 i |s|})*, что (1) |C| + (ft—1)-(число вхождений указателей в слово С) ^В и (2) существует такое соответствие указателей с подсловами слова С, что слово s может быть получено из С при использовании С одновременно в качестве “слова-словаря" и сжатого слова способом, изложенным в предыдущей задаче?
Источник [505, 506]. К этой задаче сводится ВЕРШИННОЕ ПОКРЫТИЕ.
Комментарий. Задача остается NP-полной даже тогда, когда h — любое фиксированное целое число, не меньшее 2. Другие
NP-полные варианты этой задачи (как и для предыдущей) указаны в упомянутых работах.
[ХП 24] ПОДСТАНОВКА РЕГУЛЯРНОГО ВЫРАЖЕНИЯ
УСЛОВИЕ. Заданы два алфавита X = (*i, х2, ..., хп^ и У = = {уь 1/2, .••, Ут}, регулярное выражение R над ХиУ, регулярные выражения Ri, R2, -.., Rn над У и слово ш е У*.
ВОПРОС. Существуют ли в языках, определяемых регулярными выражениями R и /?<(1 ^ i ^ п), такие слова г и Wi соответственно, что если каждое слово wi подставить в слово г вместо каждого вхождения символа хь то получившееся в результате слово будет совпадать с ш?
Источник [15]. К этой задаче сводится ТП-3.
[ХП 25] ПРЯМОУГОЛЬНОЕ СЖАТИЕ КАРТИНКИ
УСЛОВИЕ. Заданы (0—1)-матрица М порядка «Х” и положительное целое число К.
ВОПРОС. Можно ли покрыть все единичные элементы матрицы А не более чем К прямоугольниками? Иначе говоря, существует ли такая последовательность четверок (a,, bi, ci, di), 1 ^ i ^ К, где at ^ bi, ct ^di, 1 ^ i ^ К, что для каждой пары индексов (i, /), 1 ^ i, j ^ п, Mtj равно 1 тогда и только тогда, когда существует такое k, 1I ^ к ^ К, что ак ^ I ^ Ьк и ск < j < d^
Источник [374]. К этой задаче сводится 3-ВЫП.
А4.3. Задачи о базах данных
[ХП 26] НАИМЕНЬШИЙ ПО МОЩНОСТИ КЛЮЧ
УСЛОВИЕ. Заданы множество “имен атрибутов" А, семейство F упорядоченных пар подмножеств из А (называемых “функциональными зависимостями” на А) и положительное целое число М.
ВОПРОС. Существует ли для реляционной системы <Л,В>ключ мощности не более М? Иначе говоря, существует ли такое подмножество Кг А, что |К|^А1 и упорядоченная пара (К, Л) принадлежит “замыканию" Р семейства Ё? (Замыкание Р семейства F определяется следующим образом:
РгР, (2) из того что ВгСгА, следует, что (С,В)^Р, (3) из того что (В, С), (В, D'ieF*. следует, что (В, D)eP, и (4) из того, что (В, С), (В, Ь)еР, следует, что (В, CU2?)e еР.)
Источник [362,350]. К этой задаче сводится ВЕРШИННОЕ ПОКРЫТИЕ. Общие основы баз данных с реляционными системами можно найти в книге [101].
[ХП 27] ДОПОЛНИТЕЛЬНЫЙ КЛЮЧ
УСЛОВИЕ. Заданы множество имен атрибутов Л, семейство F функциональных зависимостей на А, подмножество /?£Л и множество К ключей для реляционной схемы <R, F>.
ВОПРОС. Верно ли, что R имеет ключ, не содержащийся в К? Иначе говоря, верно ли, что существует такое подмножество R'sR, что R'фК, (R', R)e F*, и не существует такого подмножества R" £ R', что ^R", R)e F*?
Источник [34]. К этой задаче сводится МНОЖЕСТВО ПРЕДСТАВИТЕЛЕЙ.
[ХП 28] ПРИМИТИВНОЕ ИМЯ АТРИБУТА
УСЛОВИЕ. Заданы множество имен атрибутов А, семейство F функциональных зависимостей на Л и выделенное имя атрибута хе А.
ВОПРОС. Верно ли, что х является “примитивным именем атрибута’’ для <Л,Е>? Иными словами, существует ли такой ключ К для <A,F'>, что хе Kt
Источник [362]. К этой задаче сводится НАИМЕНЬШИЙ ПО МОЩНОСТИ КЛЮЧ.
[ХП 29] НАРУШЕНИЕ НОРМАЛЬНОЙ ФОРМЫ БОЙСА — КОДДА
УСЛОВИЕ. Заданы множество имен атрибутов А, семейство F функциональных зависимостей на Л и подмножество А' ^ А. ВОПРОС. Верно ли, что множество А нарушает нормальную форму Бойса—Кодда для реляционной системы <А, F>t Иначе говоря, существуют ли подмножество X s А* и два имени атрибутов у, ze А'\Х, такие, что (X, {у})е F* и (X, {z})e F* (где Р — замыкание Е)?
Источник [40,34]. К данной задаче сводится МНОЖЕСТВО ПРЕДСТАВИТЕЛЕЙ.
Комментарий. Задача остается NP-полной и в том случае, если потребовать, чтобы А* имело “третью нормальную форму” (т. е. если X е А' — ключ для реляционной системы <Л', Е> и два имени атрибутов у, zeA'\X таковы, что (.ХДу^е F* и (X.^z^^F*, то z— примитивное имя атрибута для реляционной системы <Л', Е».
[ХП 30] ПРЕОБРАЗУЕМОСТЬ КОНЪЮНКТИВНОГО ЗАПРОСА
УСЛОВИЕ. Заданы конечный домен D, семейство отношений R =XR\,Ri, . ., R^ (где Ri есть подмножество множества dt- мерных кортежей с элементами из D), множество выделенных
переменных X, множество невыделенных переменных У и два запроса Qj и Qz над X, У, D и R; запрос Q имеет вид
(хь х2, ..., х6)(3уь у2, .... yЛkAv^A2^ ... Д АЛ
для некоторых k, I и г, где X' = (хь х2, ...» xt)^X, У'= = (Ух, у2УЛ^У. и каждое А, имеет вид /?/(«1, «2, ...
..., ua^), us е D U X' U У', 1 ^ s ^ df, интерпретация таких выражений в терминах баз данных дана в работе [67].
ВОПРОС. Существует ли такая функция а: У -> X U У U D, что если для каждого у е У вместо любого вхождения у в Qj подставить символ о (у), то в результате получится запрос Qz?
Источник [67]. К данной задаче сводится РАСКРАШИВАЕ- МОСТЬ ГРАФА В 3 ЦВЕТА.
Комментарий. Задача изоморфизма конъюнктивных запросов (два запроса называются изоморфными, если они совпадают с точностью до взаимно-однозначного переименования переменных, переупорядочения конъюнктивных членов и переупорядочения кванторов) полиномиально эквивалентна задаче об изоморфизме графов.
[ХП 31] КОНЪЮНКТИВНЫЙ БУЛЕВСКИЙ ЗАПРОС
УСЛОВИЕ. Заданы домен D, набор отношений R = {/?i, R2, ... .... Rm) (где Ri есть подмножество множества конъюнктивный булевский запрос Q над R и D, т. е. запрос вида
(Зуь у2. ..., yЛUxЛA2^ ... Л АЛ,
где At имеет вид R^x, и2, .... иа^, а переменные и принадлежат множеству ({уь у2yi) U £>).'
ВОПРОС. Верно ли, что Q истинен при интерпретации его как утверждения об R и D?
Источник [67]. К этой задаче сводится КЛИКА.
Комментарий. Если заменить конъюнктивный запрос произвольным предложением первого порядка, включающим предикаты из набора R, то задача становится P-SPASE-полной (даже если Р — {0, 1}).
[ХП 32] ЭКВИВАЛЕНТНОСТЬ ТАБЛИЦ
УСЛОВИЕ. Заданы множество имен атрибутов А, семейство F упорядоченных пар подмножеств множества А, множество выделенных переменных X, множество невыделенных переменных У, для каждого аеА множество констант Са, две “таблицы” Тх и Т2 над X, Y и Со. (Таблица, по существу. — это матоица.
в которой каждому имени атрибута соответствует столбец, а элементами являются пустой символ и элементы множеств X, Y и Со. Детали определения и интерпретацию в терминах реляционных выражений можно найти в работе [12].)
ВОПРОС. Верно ли, что Тх и Г2 “слабо эквивалентны"? Т. е. верно ли, что Тх и Г2 при “универсальной интерпретации” определяют идентичные отношения?
Источник [12]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной в следующих случаях: (1) таблицы получаются из “выражений", не содержащих операций “выбрать"; (2) таблицы получаются из выражений, содержащих операцию “выбрать”, при этом семейство F пусто; (3) семейство F пусто, таблицы не содержат констант, причем таблицы необязательно получаются из каких-то выражений. Для “простых” таблиц задача решается за полиномиальное время. Аналогичные результаты имеют место для “сильной эквивалентности", при которой таблицы должны представлять идентичные отношения при всех интерпретациях. Задача “включения” таблиц, однако, NP-полна даже для простых таблиц и еще более ограниченных видов таблиц [462].
[ХП 33] СОГЛАСУЕМОСТЬ ИСТОРИИ БАЗ ДАННЫХ УСЛОВИЕ. Заданы множество V переменных базы данных, набор Т “транзакций" (R£, IF/), 1 ^ i ^ п (где Rt и IF/ —подмножества множества V, называемые “читаемое множество" и “записываемое множество" соответственно), и "история" Н набора Т (где “история" есть такая перестановка множеств R, и IF/, в которой любое множество Ri идет раньше соответствующего множества IF/).
ВОПРОС. Существует ли согласованная история Н* набора Г (т. е. такая история, в которой каждое Ri идет непосредственно перед соответствующим множеством IF/), эквивалентная истории Н? (История Н называется эквивалентной истории Н', если (1) обе истории имеют одинаковое множество “живых" транзакций (транзакция (R£, IF/) называется живой в истории Н, если существует такая переменная и е V, что либо IF/ — последнее записываемое множество, содержащее и, либо IF/— последнее записываемое множество, содержащее переменную :> перед некоторой живой транзакцией, содержащей и в читаемом множестве) и (2) для любых двух живых транзакций (Ri, Wt) и (Ri, IF/) и любой переменной и е IF/ f| R/ множество IF,- является последним записываемым множеством, содержащим и перед Ri в истории Н, тогда и только тогда, когда Wi— последнее записываемое множество, содержащее у перед R, в истории Н'.\
Источник [415,413]. К этой задаче сводится МОНОТОННАЯ 3-ВЫП.
Комментарий. Другие варианты и подслучаи этой задачи, разрешимые за полиномиальное время, можно найти в работе [413].
[ХП 34] БЕЗОПАСНОСТЬ СИСТЕМЫ ТРАНЗАКЦИЙ БАЗЫ ДАННЫХ (*)
УСЛОВИЕ. Заданы множество V переменных базы данных и набор Т “транзакций" (/?<, WA, 1 < i ^ п, где Ri и Wi — подмножества V.
ВОПРОС. Верно ли, что любая история Н транзакции Т эквивалентна некоторой согласованной истории?
Источник [415]. К этой задаче сводится МНОЖЕСТВО ПРЕДСТАВИТЕЛЕЙ.
Комментарий. Не известно, принадлежит ли задача к классу NP или к классу co-NP. Проверка того, что любая история // набора Т “D-эквивалентна” некоторой согласованной истории, может быть осуществлена за полиномиальное время (две истории называются D-эквивалентными, если одна из них может быть получена из другой такой последовательностью перестанр- вок соседних множеств, что после каждой перестановки новая история остается эквивалентной предыдущей).
[ХП 35] СОВМЕСТИМОСТЬ ТАБЛИЦ ЧАСТОТ БАЗЫ ДАННЫХ
УСЛОВИЕ. Заданы множество А имен атрибутов, для каждого аеА домен Do, множество объектов V, набор F трблиц частот для некоторых пар элементов а, b е А (таблицей частот для имен атрибутов а, ЬеА называется функция fa. ь" DaXDb-* ->-Z+, у которой сумма значений fa, ь(х, у) по всем xeDo и y^Db равна | V|) и множество К троек (и, а, х), где и eV, аеА мхе Da, представляющее множество известных значений атрибутов.
ВОПРОС. Совместимы ли таблицы из набора F с известными значениями атрибутов из К? Иначе говоря, существует ли такой набор функций ga: V-^Da (для каждого аеА), что (1) ga (и) = х, если (о, а, х)еК, и (2) для всех fa,b^F, xeDa и у еЬь число таких и eV, для которых ga(.v) = x и gb(,v) = y, совпадает с f0, ь (х, У) ?
Источник [447]. К этой задаче сводится 3-ВЫП.
Комментарий. Из результата, сформулированного выше, следует, что если Р ^ NP, то не существует полиномиального
алгоритма для “согласования” базы данных на основе ее таблиц часто посредством вывода заранее указанных имен (детали см. в [447]).
[ХП 36] НАДЕЖНОСТЬ СИСТЕМ ЗАЩИТЫ ФАЙЛОВ (*) УСЛОВИЕ. Заданы множество R “полномочий", множество объектов О, множество Sc О субъектов, множество Р (s, о) G S R полномочий для каждой упорядоченной пары s е S и о е е О, конечное множество С команд (каждая из которых имеет вид, если пеР(Хь У1), г2еР(Х2, У2) и ... rm^ Р(Хт, Ym), то 01, 02, ..., 0т для всех т, п ^ 0 и каждое 0, имеет вид “ввести п в Р^Х], Yk)" или “вывести п из Р(,Кь Yk)") и выделенное “полномочие" г' е R.
ВОПРОС. Существует ли такая последовательность команд из С и метод идентификации всех n, Xj и Yk конкретными элементами из множеств R, S и О соответственно, что в некоторый момент исполнения последовательности полномочие г' заносится в множество P(s, о), не содержавшее г' до этого момента? (Детали о работе таких последовательностей см. в указанной ниже работе.)
Источник [199]. К этой задаче сводится ДОПУСКАЕМОСТЬ ЛИНЕЙНО ОГРАНИЧЕННЫМ АВТОМАТОМ.
Комментарий. Задача P-SPACE-полна. Если допускаются операции, позволяющие создать или убрать “объекты” и “субъек' ты”, то задача неразрешима даже тогда, когда для некоторых “фиксированных” систем допускается изменение начальных значений P(s, о). Если ни одна из команд не может содержать более одной операции, то в общем случае задача является NP- полной и разрешима за полиномиальное время для фиксированных систем.
А5. ЗАДАЧИ ТЕОРИИ РАСПИСАНИЙ
А5.1. Задачи составления расписания в случае одногопроцессора
[TP 1] УПОРЯДОЧЕНИЕ С НЕОДНОВРЕМЕННЫМ ПОСТУПЛЕНИЕМ И ДИРЕКТИВНЫМИ СРОКАМИ
УСЛОВИЕ. Заданы множество Т заданий, а также для каждого задания te.T длительность ИГ^ТЛ, момент его поступления r(/)e Z+o и директивный срок d^e Z+.
ВОПРОС. Существует ли однопроцессорное расписание выполнения заданий из Т, согласованное с моментами поступления и директивными сроками, т. е. существует ли однозначная функция а: T-^Zo", такая, что, во-первых, из условия o^^o^f)
следует, что о(/)^ o(f) + l(t'), и, во-вторых, для всех t^T и o(0+/(0>d(0?
Источник [150]. К этой задаче сводится З-РАЗБИЕНИЕ (см. разд. 4.2).
Комментарий. Рассматриваемая задача NP-полна в сильном смысле. Она разрешима за псевдополиномиальное время, если число значений, принимаемых величинами г(0 и d(f), ограничено константой, и остается NP-полной (в обычном смысле), даже когда эта константа равна 2. В тех случаях когда все длительности равны 1, либо разрешены прерывания, либо все моменты поступления заданий равны 0, задача может быть решена за полиномиальное время, при этом в условии задачи могут присутствовать ограничения предшествования [323], [319]. Задача решается за полиномиальное время также и тогда, когда моменты поступления и директивные сроки являются произвольными рациональными числами и, кроме того, имеются ограничения предшествования; для этого требуется, чтобы все задания имели одинаковые длительности [65, 492, 156], либо чтобы разрешались прерывания [41].
[ТР 2] МИНИМИЗАЦИЯ ЧИСЛА НЕВЫПОЛНЕННЫХ ЗАДАНИЙ
УСЛОВИЕ. Заданы множество Т заданий, частичный порядок <■ на Г, для каждого задания teT длительность /(0^Z+, директивный срок d(/)eZ+ и . положительное целое число /С^ |Т].
ВОПРОС. Существует ли однопроцессорное расписание о для заданий из Т, удовлетворяющее ограничениям частичного порядка (т. е. такое, что из t<-f следует о(0+ НО <• ^Ю) и такое, что существует не более К заданий из Т, для которых о(П+/(0>с?(0?
Источник [148]. К этой задаче сводится КЛИКА (см. разд. 3.2.3).
Комментарий. Задача остается NP-полной, даже если все длительности равны 1 и если условия частичного порядка имеют вид “цепочки” (каждое задание имеет не более чем одно непосредственно предшествующее и не более чем одно непосредственно за ним следующее) [334]. Она разрешима за полиномиальное время, если К = 0 [323] или если отношение < пусто [392, 488]. В случае когда отношение < пусто, задача остается полиномиально разрешимой, если в нее добавить “согласованные” моменты поступления заданий (это значит, что из условий г(/)<г(И следует d^^a^t'^ [289]. Если же эти моменты
поступления произвольны, то задача NP-полна (см. предыдущую задачу).
[ТР 3] МИНИМИЗАЦИЯ ВЕСА НЕВЫПОЛНЕННЫХ ЗАДАНИЙ
УСЛОВИЕ. Заданы множество Т заданий, а также для каждого задания t^T длительность Z(Z)eZ+, вес tw(Z)eZ+ директивный срок d(/)eZ+ и положительное число К.
ВОПРОС. Существует ли однопроцессорное расписание а для заданий из Т, такое, что сумма весов 2бу(/) (взятая по тем /е7, для которых ст(0+ ДО > d(t)) не превосходит К?
Источник [280]. К этой задаче сводится РАЗБИЕНИЕ.
Комментарий. Задача может быть решена за псевдополиноми- альное время (время, полиномиальное относительно |Т], 2 ДО и log^tv(f) [332]). Она разрешима за полиномиальное время, если веса'“согласованы”, т. е. если из ^ДОС^ДО следует Z(0 Ц^) [326].
[ТР 4] МИНИМИЗАЦИЯ ВЗВЕШЕННОГО МОМЕНТА ОКОНЧАНИЯ
УСЛОВИЕ. Заданы множество Т заданий, частичный порядок <• на Т, для каждого значения t^T длительность Z(0eZ+, вес iy(Z)e Z+ и положительное число К.
ВОПРОС. Существует ли однопроцессорное расписание а для заданий из Т, удовлетворяющее условиям частичного порядка и такое, что
Е (а(0 + /(0®(0)<*?
tel
Источник [330]. К этой задаче сводится ОПТИМАЛЬНОЕ ЛИНЕЙНОЕ УПОРЯДОЧЕНИЕ.
Комментарий. Задача NP-полна в сильном смысле и остается таковой, даже если все длительности равны 1 или если все веса равны 1. Она разрешима за полиномиальное время, если порядок < является “лесом" [217, 5, 139, 489] или последовательнопараллельным графом [293, 330, 4, 391].
Если вместо условий < в задачу ввести индивидуальные директивные сроки, задача будет NP-полной в сильном смысле [334], если же все веса заданий равны, то она станет полиномиально разрешимой [334]. Если директивные сроки заменить индивидуальными моментами поступления, полученная задача будет NP-полна в сильном смысле, даже если все веса заданий равны 1 [338]. Версия последней задачи, в которой допустимы прерывания, NP-полна в сильном смысле [311], однако может
быть решена за полиномиальное время, если все веса равны [186].
[ТР 5] МИНИМИЗАЦИЯ ШТРАФА ЗА НЕВЫПОЛНЕНИЕ ЗАДАНИИ
УСЛОВИЕ. Заданы множество Т заданий, а также для каждого задания teT длительность /(/)eZ+, вес т^еХ+, директивный срок d(0eZ+ и положительное целое число К.
ВОПРОС. Существует ли однопроцессорное расписание о для заданий из Т, такое, что сумма 2 (° (0 + ^ (0 — (0) ® (0, взятая по тем teT, для которых о(0+/(0>^(0, не превосходит К?
Источник [328]. К этой задаче сводится З-РАЗБИЕНИЕ.
Комментарий. Задача NP-полна в сильном смысле. Если все веса равны, она разрешима за псевдополиномиальное время [328], ее NP-полнота (в обычном смысле) не установлена. Если все длительности равны (а веса произвольны), задача разрешима за полиномиальное время с помощью двудольных паросо- четаний. Если добавить условия предшествования, то она будет NP-полной, даже в случае равных длительностей и равных весов [336]. Если же вместо этого добавить моменты поступления заданий, то задача будет NP-полной в сильном смысле при равных весах (см. задачу УПОРЯДОЧЕНИЕ С НЕОДНОВРЕМЕННЫМ ПОСТУПЛЕНИЕМ И ДИРЕКТИВНЫМИ СРОКАМИ), причем при равных длительностях и произвольных весах эта задача полиномиально разрешима с помощью двудольных паросочетаний [186].
[ТР 6] УПОРЯДОЧЕНИЕ С ДИРЕКТИВНЫМИ СРОКАМИ И ВРЕМЕНАМИ ПЕРЕНАЛАДОК
УСЛОВИЕ. Заданы: множество С “компиляторов”, множество Т заданий, для каждого задания teT длительность /(/)еZ+, директивный срок й^еТЛ, свой компилятор к^еС, а также для каждого се С “время переналадки” I (с) е Z^.
ВОПРОС. Существует ли однопроцессорное расписание а для заданий из Г, удовлетворяющее всем директивным срокам и следующему дополнительному ограничению: если задание t начинается раньше /' (т. е. o(Z)<o(f)), причем задания t и t' “сопряженные", то 0(0^ а(О+Ц0+ЦА(Г))? (Задания / и t', где о(0< <$W называются “сопряженными”, если между ними нет промежуточного задания (т. е. такого Г, что о^-С o^t"')< < о(/')) и у них различные компиляторы, к^^А ^(О )
Источник [60]. К этой задаче сводится РАЗБИЕНИЕ,
Комментарий. Задача остается NP-полной, если все времена переналадки равны. Имеется близкая задача, в которой времена переналадок заменены стоимостями переналадок, и требуется выяснить, существует ли расписание, удовлетворяющее всем директивным срокам и имеющее суммарную стоимость переналадок не больше К; эта задача NP-полна, даже если все стоимости переналадок равны. Обе задачи могут быть решены за псевдополиномиальное время, когда число различных значений, принимаемых директивными сроками, ограничено константой. Если это число не ограничено, не известно, являются ли эти задачи NP-полными в сильном смысле.
[ТР 7] МИНИМИЗАЦИЯ МАКСИМАЛЬНЫХ ЗАТРАТ
УСЛОВИЕ. Заданы множество заданий Т, частичный порядок < на Т, “затраты” c(/)eZ для каждого teT (если с(0<0, их можно рассматривать как “доход”) и константа К е Z.
ВОПРОС. Существует ли однопроцессорное расписание а для заданий из Т, которое удовлетворяет условиям частичного порядка и имеет следующее свойство: для каждого t^T
£с(0<К?
Г: о (Щ С о (Я)
Источник [1]. К этой задаче сводится ДОСТАТОЧНОСТЬ ЧИСЛА РЕГИСТРОВ.
Комментарий. Задача остается NP-полной, даже если с^е е {—1, 0, 1} для всех t^T. Она разрешима за полиномиальное время, если условия частичного порядка с представимы в виде параллельно-последовательного графа [2, 391].
А5.2. Многопроцессорные расписания для параллельныхпроцессоров
[ТР 8] МНОГОПРОЦЕССОРНОЕ РАСПИСАНИЕ
УСЛОВИЕ. Заданы множество заданий Т, число процессоров m Е Z+, длительность /(/)eZ+ для каждого teT и общий директивный срок D е Z+.
ВОПРОС. Существует ли m-процессорное расписание для заданий из Г, которое удовлетворяет общему директивному сроку D? Другими словами, существует ли функция о: 7->Zo", такая, что для всех и^О число заданий /еГ, для которых а^^. ^ и < о(^)+/(/), не превышает m и, кроме того, для всех /е Т имеет место ст(/) + /(0^ О?
Источник — настоящая книга. К этой задаче сводится задача РАЗБИЕНИЕ (см. разд. 3.2.1).
Комментарий. Задача остается NP-полной при m = 2; она разрешима за псевдополиномиальное время при любом фиксированном пг. Задача NP-полна в сильном смысле при произвольном пг (задача З-РАЗБИЕНИЕ — ее частный случай). Если все задания имеют одинаковую длительность, задача тривиально решается за полиномиальное время, даже если процессоры имеют различные производительности.
[ТР 9] РАСПИСАНИЕ С УСЛОВИЯМИ ПРЕДШЕСТВОВАНИЯ
УСЛОВИЕ. Заданы множество заданий Т, каждое из которых имеет длительность /(/)=1, число процессоров msZ+, частичный порядок <■ на Г и директивный срок D е Z+.
ВОПРОС. Существует ли m-процессорное расписание о для заданий из Т, которое удовлетворяет общему директивному сроку D и условиям предшествования (т. е. из соотношения /<•/' следует a(f)> а(0+ Ц0 = о(0+ 1)?
Источник [518]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной при D = 3 [336]. Она разрешима за полиномиальное время, если m = 2 (см. например [85]), а также если m произвольно, а условия <• представимы в виде “леса" [225] или имеют дополнением триангулированный граф [419]. Для случая, когда условия <• общего вида, а пг фиксировано (т^З), сложность задачи не установлена. При m = 2 задача становится NP-полной, если длительности заданий принимают значения 1 и 2 [518]. Если для каждого задания / назначен процессор p(t), задача является NP-полной при m = 2 и произвольных условиях <•, а также когда пг произвольно, а условия <• — “лес"; она разрешима за полиномиальное время, если пг произвольно, а условия <• — “циклический лес” [184].
[ТР 10] РАСПИСАНИЕ С ОГРАНИЧЕННЫМИ РЕСУРСАМИ УСЛОВИЕ. Задано множество заданий Т, каждое из которых имеет длительность /(/)=!, число процессоров meZ+, число видов ресурсов г е Z+, границы ресурсов Bi, I ^i ^ г, потребности в ресурсах Ri(.t), 0 ^ Ri(t) ^ Bi (для всех заданий / и ресурсов i), и общий директивный срок D е Z+.
ВОПРОС. Существует ли m-процессорное расписание а для заданий из Т, которое удовлетворяет общему директивному сроку D и ограничениям на ресурсы (последнее условие означает, что если через S(u) обозначить множество всех тех заданий t из Т, для которых о^^ и < о(/)+ /(0, то Для всех м>0 и всех видов ресурсов i сумма £ Rt (/) не превышает В,?
*eS(«)
Источник [145]. К этой задаче сводится З-РАЗБИЕНИЕ.
Комментарий. Задача является NP-полной в сильном смысле, даже если г = 1 и m = 3. Она решается за полиномиальное время с помощью техники паросочетаний при m = 2 и произвольном г. Если добавить к условию задачи отношения частичного порядка <•, она становится NP-полной в сильном смысле при r= 1, m = 2 и условиях <•, представимых в виде “леса”. Если потребности в ресурсах принимают дискретные значения О или Bi, задача является NP-полной при m = 2, г = 1 и условиях <• общего вида [519].
[ТР 11] РАСПИСАНИЕ С ИНДИВИДУАЛЬНЫМИ ДИРЕКТИВНЫМИ СРОКАМИ
УСЛОВИЕ. Заданы множество заданий Т, каждое из которых имеет длительность /(/)= 1, число процессоров те2+, частичный порядок <• на Т и для каждого teT директивный срок d(0eZ+.
ВОПРОС. Существует ли m-процессорное расписание о для заданий из Т, которое удовлетворяет условиям предшествования и всем директивным срокам (т. е. □ (/) + 1(f) ^ d(t) для всех tETp
Источник [58]. К этой задаче сводится ВЕРШИННОЕ ПОКРЫТИЕ.
Комментарий. Задача остается NP-полной, даже если условия <• представимы в виде “прямого дерева” (т. е. у каждого задания имеется не более одного непосредственно за ним следующего). Она разрешима за полиномиальное время, если m — 2, а условия <• общего вида [148], причем этот факт справедлив, даже если включить в условие задачи индвидуальные моменты поступления [150]. Если условия предшествования <• отсутствуют, задача решается за полиномиальное время с помощью техники паросочетаний для произвольного значения т, даже если в условии есть моменты поступления и имеется один вид ресурса, потребность в котором 0 или 1 [43, 44].
[ТР 12] РАСПИСАНИЕ С ПРЕРЫВАНИЯМИ
УСЛОВИЕ. Заданы множество заданий Т, число процессоров mEZ+, частичный порядок <• на Т, длительности /(0^Z+ для всех /е Г и общий директивный срок D е Z+.
ВОПРОС. Существует ли m-процессорное расписание для заданий из Т, которое допускает прерывания заданий и удовлетворяет как условиям предшествования, так и общему директивному сроку? (Такое расписание а идентично обычному т-про- цессорному расписанию, за исключением того, что разрешается
разбивать каждое задание teT на любое число “частичных заданий” t\, tz, .... tA, таких, что
Z/(/,) = /(/) и a(/i+1)>a(Z,) + /M i —1
для всех I, 1 ^ i ^ А. Условия частичного предшествования распространяются на частичные задания следующим образом: каждое частичное задание, полученное из t, предшествует всем частичным заданиям t', если t<-t'.’)
Источник [518]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача разрешима за полиномиальное время в следующих случаях: если m = 2 [394], если ограничения <• — “лес” [395], если ограничений предшествования нет и добавлены индивидуальные директивные сроки [219]. Когда “однородные” процессоры имеют “различные производительности”, задача разрешима за полиномиальное время при m = 2 или при отсутствии ограничений предшествования [223, 183]; если выполнено последнее условие, задача остается полиномиально разрешимой при наличии индивидуальных директивных сроков [467]; если же одновременно т = 2и отсутствуют ограничения предшествования, то задача полиномиально разрешима, даже если добавлены целочисленные моменты поступления работ и директивные сроки [311]. В случае «независимых» процессоров задача решается за полиномиальное время при фиксированном m и отсутствии ограничений предшествования [180]; при произвольном m и отсутствии ограничений предшествования она может быть решена методом линейного программирования [331].
[ТР 13] МИНИМИЗАЦИЯ ВЗВЕШЕННОГО МОМЕНТА ОКОНЧАНИЯ (щ ПРОЦЕССОРОВ)
УСЛОВИЕ. Заданы множество заданий Т, число процессоров meZ+, для каждого задания teT длительность l(f)eZ+ и вес ш(/)е2+, а также положительное целое число К.
ВОПРОС. Существует ли m-процессорное расписание а для заданий из Т, такое, что
teT
Источник [338]. К этой задаче сводится РАЗБИЕНИЕ.
Комментарий. Задача остается NP-полной при m = 2, она является NP-полной в сильном смысле при произвольном m [318]. Задача разрешима за псевдополиномиальное время при фиксированных значениях tn. Эти результаты сохраняются, если
допустимы “прерывания” заданий [379]. Задача решается (с помощью техники паросочетаний) за полиномиальное время, если все длительности равны. Если же длительности не равны, а все веса равны между собой, то она разрешима за полиномиальное время даже для процессоров разной производительности [90] и для “независимых» процессоров [218, 59]. В случае процессоров разной производительности она разрешима за полиномиальное время и тогда, когда разрешены прерывания [179]. Если добавлены ограничения предшествования, исходная задача NP-полна в сильном смысле, даже если все веса равны, т = 2 и частичный порядок есть либо “внутреннее дерево”, либо “внешнее дерево" [478]. Если в условия добавить ограничения на ресурсы, то частные случаи, приведенные в задаче РАСПИСАНИЕ С ОГРАНИЧЕННЫМИ РЕСУРСАМИ, будут все NP-полными, даже если все веса равны [42].
А5.3. Многопроцессорные расписания конвейерного типа
[ТР 14] ОТКРЫТОЕ КОНВЕЙЕРНОЕ РАСПИСАНИЕ
УСЛОВИЕ. Заданы число процессоров т е Z+, множество заданий /, каждое из которых состоит из т операций (т. е. задание jeJ состоит из операций М/1, M/L ..., ^т[/], причем операция ^[/] выполняется процессором i), длительность 1(/)eZ для каждой операции t и общий директивный срок D е Z+. ВОПРОС. Существует ли открытое расписание для заданий из /, удовлетворяющее директивному сроку? Другими словами, существует ли набор из т однопроцессорных расписаний ст,: J->Zq, 1 ^ I ^ т, таких, что: (1) из условия Qi(j)> ot(k) следует crz(/)^ <у<(А) + Z(^z[А]); (2) для каждого jeJ все интервалы [oz(/), а»(П4- ЦМЛ) не пересекаются и (3) щ(/) + + Ц^1Л)^ О Для всех i, /: 1 i т> 1 ^ /"^ 1^1?
Источник [181]. К этой задаче сводится РАЗБИЕНИЕ.
Комментарий. Задача остается NP-полной при m = 3, но разрешима за полиномиальное время, если m = 2. Она является NP-полной в сильном смысле, если m произвольно [334]. В общем случае задача разрешима за полиномиальное время, если разрешены прерывания заданий [181], этот факт остается в силе и тогда, когда заданы два различных момента поступления заданий [69]. При m = 2 и разрешенных прерываниях она разрешима за полиномиальное время, даже если заданы произвольные моменты поступления заданий; в общем случае задача с разрешенными прерываниями, произвольными моментами поступления и директивными сроками сводится к задаче линейного программирования [69].
[ТР 15] ПОСЛЕДОВАТЕЛЬНОЕ КОНВЕЙЕРНОЕ РАСПИСАНИЕ
УСЛОВИЕ. Заданы: число процессоров meZ+, множество заданий J, причем каждое задание /е/ состоит из m операций М/1, МЛ, •••, ^mI/], длительность операции /(OeZ? для каждой операции t, общий директивный срок D е Z+.
ВОПРОС. Существует ли последовательное расписание для заданий из /, удовлетворяющее общему директивному сроку? (Последовательным расписанием называется открытое расписание, удовлетворяющее следующему дополнительному ограничению: для всех jeJ и l^i^m o/+i(/) > М/)+ЦМЛ •)
Источник [155]. К этой задаче сводится З-РАЗБИЕНИЕ.
Комментарий. Задача NP-полна в сильном смысле при m = 3. Она разрешима за полиномиальное время при т = 2 [268]. Эти два результата справедливы, если допустимы прерывания [182], однако, если добавить моменты поступления заданий, задача будет NP-полной в сильном смысле даже при m = 2 [69]. Если добавить условие
то полученная задача (без прерываний) будет NP-полна в сильном смысле, даже если m = 2 [155].
[ТР 16] ПОСЛЕДОВАТЕЛЬНОЕ'РАСПИСАНИЕ БЕЗ ОЖИДАНИЯ
УСЛОВИЕ. То же самое, как и в предыдущей задаче, ПОСЛЕДОВАТЕЛЬНОЕ РАСПИСАНИЕ.
ВОПРОС. Существует ли последовательное расписание для заданий из /, удовлетворяющее директивному сроку и дополнительному условию, для всех je J и 1 ^ i ^ m, <Ji+i(j) = МЛ + + WI/D?
Источник [338]. К этой задаче сводится ОРИЕНТИРОВАННЫЙ ГАМИЛЬТОНОВ ПУТЬ.
Комментарий. Задача NP-полна в сильном смысле для любого фиксированного m ^ 4 [416]. Она разрешима за полиномиальное время при m = 2 [172], однако NP-полна в сильном смысле при m = 2, если допускаются задания не имеющие операций, выполняемых на первом процессоре [468]. Сложность не установлена для случая m = 3. Если добавить условие
Е ^(/H/l'ml/J)^,
1®1
а т — произвольно, то задача будет NP-полной в сильном смысле [338], причем если т фиксировано (т^2), то сложность такой задачи не установлена. Аналогично версии задач ОТКРЫТОЕ РАСПИСАНИЕ и ОБЩЕЕ КОНВЕЙЕРНОЕ РАСПИСАНИЕ (см. ниже), когда добавлено условие, запрещающее ожидание, являются NP-полными в сильном смысле при т = 2 [468].
[ТР 17] ДВУХПРОЦЕССОРНОЕ ПОСЛЕДОВАТЕЛЬНОЕ РАСПИСАНИЕ С БУФЕРОМ
УСЛОВИЕ. То же самое, как в задаче ПОСЛЕДОВАТЕЛЬНОЕ РАСПИСАНИЕ, при условии, что т = 2 и дополнительно задана “емкость буфера” В г Zo".
ВОПРОС. Существует ли последовательное расписание для заданий из J, удовлетворяющее общему директивному сроку и следующему условию: для любого и ^ 0 число заданий jeJ, для которых одновременно oi(/)+ l{t\ [/]) ^ и и О2(/)> и, не превосходит В?
Источник [416]. К этой задаче сводится ТРЕХМЕРНОЕ СОЧЕТАНИЕ С ОГРАНИЧЕНИЯМИ ПО ВЕСУ.
Комментарий. Задача NP-полна в сильном смысле для любого фиксированного В, 1 ^ В < сю. Она разрешима за полиномиальное время, если В = 0 [172] или если В^|/|—1 [268].
[ТР 18] ОБЩЕЕ КОНВЕЙЕРНОЕ РАСПИСАНИЕ
УСЛОВИЕ. Заданы: число процессоров tn е Z+, множество заданий / (причем каждое задание j ej состоит из упорядоченного набора операций М/], 1 ^А^п/), для каждой операции t длительность ЦГ) е Zo", определенный процессор
р(/)е{1, 2, .... т}, где p^U'D^P^+it/l)
для всех j gJ и 1 ^ к ^ П/, и директивный срок D е Z+. ВОПРОС. Существует ли общее конвейерное расписание для заданий из J, удовлетворяющее общему директивному сроку? Другими словами, существует ли набор однопроцессорных расписаний Oi, отображающих множество {/: р(0 = <} в Zo", 1 ^/^ m и удовлетворяющих следующим условиям:
из oz(<)>o<(^) следует, что ai^^ сД^)+ /(f);
о(/мчЫ);>а(М/1)+/(М/])
(где индексы соответствуют расписанию а) для всех j gJ и 1 к п/;
для всех/е7
аС/п/Г/п+^^ш)^/)
(где опять индексы соответствуют расписанию о) ?
Источник [155]. К этой задаче сводится З-РАЗБИЕНИЕ.
Комментарий. Задача NP-полна в сильном смысле при m = 2. Она может быть решена за полиномиальное время, если m = 2 и п/^ 2 для всех /е/ [256]. Она NP-полна (в обычном смысле), если т = 2 и п/ ^ 3 для всех jeJ или если т = 3 и га,-^ 2 для всех jeJ [182]. Все эти результаты имеют место и в случае, когда разрешаются прерывания заданий [182]. Если прерывания не разрешаются и все операции имеют одинаковую длительность, задача NP-полна для m = 3; при пг = 2 ее сложность не установлена [337]').
А5.4. Разные задачи
[ТР 19] СОСТАВЛЕНИЕ УЧЕБНОГО РАСПИСАНИЯ
УСЛОВИЕ. Заданы множество И “рабочих часов”, множество С “преподавателей", множество Т “учебных дисциплин”, для каждого се С дано подмножество A^sH, называемое “допустимыми часами для преподавателя с”, для каждой дисциплины 1еТ — подмножество А^еН, называемое “допустимыми часами для дисциплины Г', и для каждой пары (с,/)е еСХТ— число R(c, /)е2о» называемое “требуемой нагрузкой».
ВОПРОС. Существует ли учебное расписание, обслуживающее все дисциплины? Другими словами, существует ли функция f; СХТХ Н -{0,1} (где ^с, t, й)=1 означает, что преподаватель с занимается дисциплиной t в момент й), удовлетворяющая следующим условиям: (1) f(c, t, h) = 1 только тогда, когда he А(с)П А^, (2) для каждого he Н и сеС существует не более одного teT, такого, что f(c, t, й)= 1, (3) для каждого НеН и teT существует не более одного се С, такого, что }(с,/,й)=1, (4) для каждой пары (с,/)еСХГ существует ровно R^c, 0 значений Н, для которых /(с, t, h) = 1?
Источник [114]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной, даже если |Я| = 3, А^ = Н для teT и все R(c, t)e {0, 1}. Общая задача разрешима за полиномиальное время, если |Д(с) | ^ 2 для всех се С или если Л (с) = A(t) = Н для всех с еС и teT.
[ТР 20] КОМПЛЕКТОВАНИЕ ШТАТА ИСПОЛНИТЕЛЕЙ
УСЛОВИЕ. Заданы положительные целые числа m и й, набор С m-мерных векторов, каждый из которых состоит из к единиц и пг — к нулей (и представляет собой возможное распределение
исполнителей), m-мерный вектор R неотрицательных чисел (называемый некотором «потребностей») и число исполнителей п.
ВОПРОС. Существует ли расписание f: C->Zq, такое, что Z f (ё) < п и £ f (с) • с > /??
се СсеС
Источник [152]. К этой задаче сводится ТП-3.
Комментарий. Задача разрешима за полиномиальное время, если все се С обладают свойством цикличности (т. е. все единицы расположены в одном и том же порядке, если считать, что первая позиция следует за позицией т) [30]. Этот случай соответствует ситуации, когда исполнители доступны в определенные часы рабочего дня или дни недели.
[ТР 21] ПЛАНИРОВАНИЕ ПРОИЗВОДСТВА
УСЛОВИЕ. Заданы число п е Z+ плановых периодов, для каждого периода i, l^z^n, „потребность" п е Zo, „пропускная способность производства" ct е Zo", стоимость переналадок производства 6Z е Zo", коэффициент приращения стоимости продукции pt е Zo", коэффициент стоимости запасов hi г е Zo, общая граница В е Z+.
ВОПРОС. Существуют ли объемы производства xt е Zo и соответствующие уровни запасов 1{ = ХС^-О), lCi<«, такие, что все х(^С(, все /^0 и
2ра + А//<+ X Ь^В? i-lxt>o
Источник [339]. К этой задаче сводится РАЗБИЕНИЕ.
Комментарий. Задача разрешима за псевдополиномиальное время; она остается NP-полной, даже если все “потребности" равны, все стоимости переналадок равны и все стоимости запасов равны 0. Если все пропускные способности равны, то задача разрешима за полиномиальное время [124]. Упомянутые алгоритмы можно обобщить на случай произвольных монотонных неубывающих выпуклых функций стоимости (если они вычислимы за полиномиальное время).
[ТР 22] ИЗБЕЖАНИЕ ТУПИКА
УСЛОВИЕ. Заданы множество диаграмм переходов для m процессов (Pi, РйРтА (где каждая диаграмма представляет ориентированный ациклический граф), множество Q “ресурсов”, состояние S системы, задающее текущий “активный” узел для
каждого процесса, и “распределение ресурсов” (подробности можно найти в указанных ниже работах).
ВОПРОС. Является ли состояние S “опасным"? Другими словами, существуют ли управляющие потоки для различных процессов, такие, что никакое распределение и перераспределение ресурсов не переведет систему из состояния S в некоторое “конечное” состояние?
Источник [21, 508]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной, даже если требования к размещению “правильные" и каждое из них относится не более чем к двум ресурсам. В указанной литературе приводятся дополнительные результаты по сложности этой задачи. В работе [175] даны результаты и алгоритмы, относящиеся к близкой задаче о тупиковых ситуациях.
Аб. МАТЕМАТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
[МП 1] ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ
УСЛОВИЕ. Заданы конечное множество X, состоящее из пар (5с, 6) (где * есть /n-мерный целочисленный вектор, Ь — целое число), m-мерный целочисленный вектор с и целое число В. ВОПРОС. Существует_ ли такой m-мерный вектор у с целыми координатами, что 5с-у^Ь для всех (5с, Ь^еХ и с-у^В (где произведение m-мерных векторов й = («ь и2, ..., um) и и = = («ь иг, ..., ит) задается формулой й • и = £ и^ 1?
1-0/
Источник [280, 55]. К этой задаче сводится 3-ВЫП. Во второй работе доказана принадлежность задачи классу NP.
Комментарий. Задача NP-полна в сильном смысле. Ее вариант, когда ищется вектор у, координаты которого принадлежат множеству {0, 1} (так называемая задача 0-1 ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ), остается NP-полным даже в том случае, когда каждое Ь, все координаты векторов 5с и все координаты вектора с принадлежат множеству {0, 1). NP-полной является задача с тем же условием, но в которой спрашивается о существовании такого вектора у с неотрицательными целыми компонентами, что х-у = Ь для всех (5с, Ь)еХ, или такого целочисленного вектора у, что 5с-у^0 для всех (5с, Ь)^Х (см. [463])').
Из результата, полученного X. У. Ленстрой-младшим [1981], следует, что эта задача при каждом фиксированном |1/| разрешима за полиномиальное время. — Прим. ped.
[МП 2] КВАДРАТИЧНОЕ ПРОГРАММИРОВАНИЕ (*)
УСЛОВИЕ. Заданы конечное множество X, состоящее из пар (х, 6) (где х есть m-мерный вектор с рациональными координатами, b — рациональное число), два m-мерных вектора с и d с рациональными координатами и рациональное число В.
ВОПРОС. Существует ли такой m-мерный вектор у с рациональными координатами, что х-y^b для всех пар (х, &)еХ т
и+ d^j) ^ В, где Ci, yt и di — это z-e компоненты век
торов с, у и d соответственно?
Источник [463]. К этой задаче сводится РАЗБИЕНИЕ.
Комментарий. Если не все компоненты вектора с неотрицательны, то принадлежность задачи классу NP не установлена [290]. Если ограничения квадратичны, а целевая функция линейна (в противоположность сформулированной выше задаче), то задача NP-трудна [463]. Если к последней задаче добавить условие, что все компоненты вектора у целочисленны, то задача станет неразрешимой [258].
[МП 3] ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ С ПАРАМЕТРИЧЕСКОЙ ЦЕЛЕВОЙ ФУНКЦИЕЙ
УСЛОВИЕ. Заданы конечное множество X, состоящее из пар (х, 6) (где х есть m-мерный целочисленный вектор, b — целое число), множество /е{1, 2т) и положительное рациональное число q.
ВОПРОС. Существует ли такой m-мерный вектор с с рациональными координатами, что (с • с)1/2 q и минимум по всем уЕ У сумм вида 2 С$1 больше, чем
•Ашах [| с, |: /е/}+ £ min(0, сЛ,
где У— множество всех m-мерных векторов с неотрицательными рациональными координатами, удовлетворяющих условию х-y^b для всех пар (х, 6) е X?
Источник [259]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной для любого фиксированного q > 0. Она возникает при анализе влияния ошибок первого порядка в задаче линейного программирования.
[МП 4] ПРОДОЛЖЕНИЕ ДО ДОПУСТИМОГО БАЗИСА
УСЛОВИЕ. Заданы целочисленная матрица А порядка m X п, m < п, вектор-столбец а размерности m и подмножество S(]S|^m) множества столбцов матрицы А.
ВОПРОС. Существует ли для системы уравнений Ах = а, х^ О, такой допустимый базис В, что В содержит все столбцы из множества S? (Допустимым базисом называется неособая, имеющая порядок mXm подматрица В матрицы А, такая, что В-’а > 0.)
Источник [396]. К этой задаче сводится ГАМИЛЬТОНОВ ЦИКЛ.
[МП 5] МИНИМАЛЬНОЕ ПО ВЕСУ РЕШЕНИЕ СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИИ
УСЛОВИЕ. Заданы конечное множество X, состоящее из пар (х, 6) (где х есть m-мерный целочисленный вектор, b — целое число) и положительное целое число К ^ т.
ВОПРОС. Существует ли такой m-мерный вектор у с рациональными координатами, что у имеет не более К отличных от нуля координат и для всех (х,6)еХ выполнено равенство х-у = 6?
Источник [152]. К этой задаче сводятся ТП-3.
Комментарий. Задача NP-полна в сильном смысле. Разрешима за полиномиальное время, если К = т.
[МП 6] ОТКРЫТАЯ ПОЛУСФЕРА
УСЛОВИЕ. Заданы конечное множество X m-мерных векторов и положительное целое число К^|Х|.
ВОПРОС. Существует ли такой /n-мерный вектор у с рациональными координатами, что х-у">0 по крайней мере для К векторов хеХ?
Источник [267]. К этой задаче сводится МАКСИМАЛЬНАЯ 2-ВЫПОЛНИМОСТЬ
Комментарий. Задача NP-полна в сильном смысле, но для любого фиксированного пг разрешима за полиномиальное время, даже во «взвешенном» варианте. Аналогичные результаты имеют место для задачи ЗАМКНУТАЯ ПОЛУСФЕРА, в которой ищется вектор у, удовлетворяющий условиям х-y^b не менее чем для К векторов хеХ [267]. Если К = 0 или К = = ]Х|, обе задачи полиномиально эквивалентны задаче линейного программирования [448].
[МП 7] К-ОПРЕДЕЛЯЕМОСТЬ
УСЛОВИЕ. Заданы конечное множество X, состоящее из пар (х, 6) (где х есть m-мерный целочисленный вектор, b — целое число) и положительное целое число К^|Х[.
ВОПРОС. Существует ли подмножество X's X, такое, что |Х'|^К и для всех m-мерных векторов у с рациональными координатами из условия х-y^b для всех (х, Ь)^Х' следует, что х-у ^Ь для всех (х, 6) е X?
Источник [448]. К этой задаче сводится ТП-3.
Комментарий. Задача NP-полна в сильном смысле. При К = = |Х|—1 эквивалентна задаче линейного программирования [448]. В этой же работе можно найти другие NP-полные задачи этого вида, в которых стандартная задача линейного программирования дополнена вопросом о выполнении нужного свойства для некоторого подмножества, состоящего из К ограничений.
[МП 8] НЕСМЕЖНОСТЬ ВЕРШИН МНОГОГРАННИКА ЗАДАЧИ О КОММИВОЯЖЕРЕ
УСЛОВИЕ. Заданы граф G = (V, Е) и два гамильтоновых цикла С и С' в графе G.
ВОПРОС. Верно ли, что С и С' соответствуют несмежным вершинам “многогранника задачи о коммивояжере" для графа G?
Источник [411]. К этой задаче сводится 3-ВЫП.
Комментарий. Результат остается справедливым и в “несимметричном” случае, когда G — ориентированный граф, а С и С'— ориентированные гамильтоновы циклы. Аналогичные задачи о несмежности вершин многогранников, соответствующих паросочетанию и КЛИКЕ, могут быть решены за полиномиальное время [74].
[МП 9] РЮКЗАК
УСЛОВИЕ. Заданы конечное множество U, размер s(«)eZ+ и стоимость u(u)eZ+ каждого u^U, положительные целые числа В и К.
ВОПРОС. Существует ли такое подмножество U' = U, что ^ s(u)<B и X о (и) Ж?
i^U'u@U'
Источник [280]. К этой задаче сводится РАЗБИЕНИЕ.
Комментарий. Задача остается NP-полной, если s(u)=u(u) для всех u^U (СУММА РАЗМЕРОВ). С помощью метода динамического программирования задача может быть решена за псевдополиномиальное время (см., например, [98, 324]).
[МП 10] ЦЕЛОЧИСЛЕННЫЙ РЮКЗАК
УСЛОВИЕ. Заданы конечное множество U, размер s(u)eZ+
и стоимость u(u)eZ+ каждого элемента и eU, а также положительные целые числа В и К.
ВОПРОС. Можно ли так сопоставить каждому элементу ие U целое число с(и), чтобы выполнялись неравенства
2 с (ы) • s («X В и 2 с (ы) • v (ы) ^ К?
иеиueU
Источник [364]. К этой задаче сводится СУММА РАЗМЕРОВ.
Комментарий. Задача остается NP-полной, если s(u)=u(u) для всех ие U. Методом динамического программирования разрешима за псевдополиномиальное время. Если |t/| = 2, то задача разрешима за полиномиальное время [210].
[МП 11] НЕПРЕРЫВНЫЙ РЮКЗАК С КРАТНЫМ ВЫБОРОМ ЭЛЕМЕНТОВ
УСЛОВИЕ. Заданы конечное множество U, размеры s(u)eZ+ и стоимость o(u)eZ+ каждого элемента из множества U, разбиение множества U на непересекающиеся подмножества U\, UiUm, положительные целые числа В и К.
ВОПРОС. Можно ли так выбрать по одному элементу щ из каждого подмножества Ui, 1 ^ i^m, и так сопоставить им рациональные числа п, 0 ^ и ^ 1, что будут выполнены неравенства■
mm
Hrt • s^Ui^B и £ rt ■ и (ut) > К? i—1i — l
Источник [245]. К этой задаче сводится РАЗБИЕНИЕ.
Комментарий. Задача разрешима за псевдополиномиальное время, но остается NP-полной даже в том случае, если | Ul\ ^ ^2, 1 ^i^m. Если | Ui\ = 1 при 1 ^ i ^ m или если потребовать только, чтобы п ^ 0, но не устанавливать для п верхней границы, то она разрешима за полиномиальное время “жадными” алгоритмами [246].
[МП 12] ЧАСТИЧНО УПОРЯДОЧЕННЫЙ РЮКЗАК
УСЛОВИЕ. Заданы конечное множество U, отношение частичного порядка <• на U, размер s(u)eZ+ и стоимость v(u)eZ+ каждого элемента и е U, положительные целые числа В и К. ВОПРОС. Существует ли такое подмножество U's U, что если и е U' и и' <-и, то и' е U' и выполнены неравенства
У, s(u)^B и У и(и»К?
ueU’*'е1Г
Источник [152]. К этой задаче сводится КЛИКА. Рассматриваемая задача обсуждается также в работе [249].
Комментарий. Задача NP-полна в сильном смысле, даже если $(и)=и(и) для всех u^U. Общая задача разрешима за псев- дополиномиальное время, если <■ есть частичное “древовидное" упорядочение [152].
[МП 13] ПОКООРДИНАТНЫЕ НЕРАВЕНСТВА МЕЖДУ ВЕКТОРАМИ
УСЛОВИЕ. Заданы два множества X = {хь хг, .... х^ и Y = = {уь угyi}, состоящие из m-мерных целочисленных векторов.
ВОПРОС. Существует ли такой m-мерный целочисленный вектор z, что число векторов Xi, для которых выполнено неравенство Xi ^ 2, не меньше числа таких векторов у,, для которых выполнено неравенство у^^г (здесь соотношение й и выполняется тогда и только тогда, когда у вектора й нет ни одной координаты, которая была бы меньше соответствующей координаты вектора и)?
Источник [429]. К этой задаче сводится ПОКОМПОНЕНТНОЕ ВКЛЮЧЕНИЕ (с равными весами).
Комментарий. Задача остается NP-полной, даже если все компоненты векторов Xi или у, принадлежат множеству {0, 1).
А7. АЛГЕБРА И ТЕОРИЯ ЧИСЕЛ
А7.1. Задачи о делимости
[АТЧ 1] КВАДРАТИЧНЫЕ СРАВНЕНИЯ
УСЛОВИЕ. Заданы положительные целые числа а, 6 и с.
ВОПРОС. Существует ли положительное целое число х < с, такое, что х2 = a (mod 6) ?
Источник [373]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной, даже если в условии даны разложение числа b на простые множители и решение данного сравнения по всем простым модулям, входящим в разложение числа Ь. Задача решается за полиномиальное время, если с = оо (т. е. отсутствует ограничение на х сверху) и задано разложение b на простые множители. В предположении истинности расширенной гипотезы Римана при простом b задача решается за полиномиальное время. В общем виде она тривиально разрешима за псевдополиномиальное время.
[АТЧ 2] СИСТЕМА НЕСРАВНИМОСТЕЙ
УСЛОВИЕ. Задан набор {(di, b^, (ап, Ьп)} упорядоченных пар положительных целых чисел, таких, что at ^ bi при 1 ^ i ^ п.
ВОПРОС. Существует ли такое целое число х, что х = = a,(mod bi), 1 ^ i^ n?
Источник [503]. К этой задаче сводится 3-ВЫП.
[АТЧ 3] СОВМЕСТНАЯ ДЕЛИМОСТЬ ЛИНЕЙНЫХ МНОГОЧЛЕНОВ (*)
УСЛОВИЕ. Заданы векторы а, = (а,[0] аД/л]) и bt = = (6, [0]6Д/и]), l<t<n, с положительными целыми
координатами.
ВОПРОС. Существуют ли такие положительные целые числа хх, х2, ..., Хт, что at [0] 4- £ Oi [/] X] делит bt [0] + Е bt [/] х^
Источник [348, 349]. К этой задаче сводится задача КВАДРАТНЫЕ ДИОФАНТОВЫ УРАВНЕНИЯ.
Комментарий. Не известно, принадлежит ли задача классу NP, но при любом фиксированном п она принадлежит NP. При любом фиксированном п ^ 5 задача NP-полна. В общем виде она неразрешима при условии, что компоненты векторов Xj могут принимать значения в кольце “целых" вещественного квадратичного расширения поля рациональных чисел. В указанных выше работах приведены другие, близкие результаты о разрешимости и неразрешимости.
[АТЧ 4] СРАВНИТЕЛЬНАЯ ДЕЛИМОСТЬ
УСЛОВИЕ. Заданы две последовательности ах, аг, .... ап и 6ь Ьг, .... bm положительных целых чисел.
ВОПРОС. Существует ли положительное целое число с, для которого число таких I, что с делит аь больше числа таких /, что с делит 6/?
Источник [429]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной, если все 6/ различны и все at различны [152].
[АТЧ 5] ДЕЛИМОСТЬ ПОКАЗАТЕЛЬНОГО ВЫРАЖЕНИЯ (*)
УСЛОВИЕ. Заданы две последовательности ах, аг, ..., ап и 61, Ьг, ..., 6т положительных целых чисел и целое число q.
ВОПРОС. Делится ли число П (^ — 1) на П(^а< — 1)?
1 — 1
Источник [429]. К этой задаче сводится 3-ВЫП.
Комментарий. Не известно, принадежит ли задача классу NP или классу co-NP, но она решается за псевдополиномиальное время обычным алгоритмом отыскания наибольшего общего делителя. Остается NP-трудной для любого фиксированного значения q, |^| > 1 даже тогда, когда а, и bi являются произведениями различных простых чисел.
[АТЧ 6] НЕДЕЛИМОСТЬ ПРОИЗВЕДЕНИЯ МНОГОЧЛЕНОВ
УСЛОВИЕ. Заданы последовательности A=<(az[l], 6/[ 1 ]), ... ..., (aJK], М^])>, 1 ^ i ^ т, таких пар целых чисел, что bi [/'] = 0, а также целое число N.
m /к\
ВОПРОС. Верно ли, что многочлен ПI S О/ [Я 1 zbt1/1) не де- <=i \/=i/
лится на многочлен zN—1?
Источник [430, 431]. К этой задаче сводится 3-ВЫП. Доказательство принадлежности классу NP нетривиально и получено во второй из указанных работ.
Комментарий. Близкая задача: “Заданы две последовательности <аь агат> и <6i, ba6Л> положительных целых
пm
чисел, требуется выяснить, делится ли IK2^ — 1) на ПСг0' — l—Y/—1
— 1)?“ —также NP-полна [429].
[АТЧ 7] НЕТРИВИАЛЬНЫЙ НАИБОЛЬШИЙ ОБЩИЙ ДЕЛИТЕЛЬ (*)
УСЛОВИЕ. Заданы последовательности А=<(а/[1], 6<[1]), ... .... (аД^], МЯ])>, 1 ^ i ^ пг, пар целых чисел, таких, что МЛ^о.
ВОПРОС. Верно ли, что наибольший общий делитель много- к
членов X at [/] • zbt^\ l^i^m, имеет положительную степень?
Источник [430]. К этой задаче сводится 3-ВЫП.
Комментарий. Не известно, принадлежит ли задача NP или co-NP. Задача остается NP-трудной, если все а<[/] равны —1 или +1 [429] или если т = 2 [431]. Аналогичная задача, в условии которой дано также положительное целое число К и спрашивается верно ли, что наименьшее общее кратное заданных многочленов имеет степень меньше К при тех же огра-
ничениях, является NP-трудной. С помощью стандартных алгоритмов обе задачи могут быть решены за псевдополиномиаль- ное время.
А7.2. Разрешимость уравнений
[АТЧ 8] КВАДРАТНЫЕ ДИОФАНТОВЫ УРАВНЕНИЯ УСЛОВИЕ. Заданы положительные целые числа а, b и с. ВОПРОС. Существуют ли положительные целые числа х и у, такие, что ах2 + by = с?
Источник [373]. К этой задаче сводится 3-ВЫП.
Комментарий. Диофантовы уравнения вида ахк = с и Hatxt = = с разрешимы в целых числах за полиномиальное время для произвольных к. Общая диофантова задача: "Задан полином от к переменных с целыми коэффициентами, имеется ли у него целый корень?" — неразрешима уже при к = 13 [377]. Однако данная задача может быть значительно обобщена (на системы уравнений с несколькими переменными), оставаясь при этом в классе NP, для этого достаточно, чтобы только одна переменная входила нелинейным образом в уравнение системы [192].
[АТЧ 9] АЛГЕБРАИЧЕСКИЕ УРАВНЕНИЯ В ПОЛЕ GF[2]
УСЛОВИЕ. Заданы полиномы Pi{Xb х2хп), 1 ^ z ^ щ, над GF [2] (любой моном любого полинома есть либо 1, либо произведение различных х,).
ВОПРОС. Существуют ли такие Ui, u2, ..., ипе{0, 1}, что Р,(иь «2, ■.., и„) = 0, 1 ^ z ^ m, причем арифметические операции выполняются в поле GF [2], т. е. 1 + 1 = 0, 1-1 = 1 и т. д.?
Источник [129]. К этой задаче сводится ТП-3.
Комментарий. Задача остается NP-полной даже в том случае, когда ни в одном из многочленов нет мономов, содержащих более двух переменных [524]. Легко решается за полиномиальное время, если в многочленах нет мономов, содержащих более одной переменной или если i = 1. Вариант этой задачи, в котором Uj принимают значения в алгебраическом замыкании GF [2], является NP-трудным, даже если в многочленах нет мономов, содержащих более двух переменных [129].
[АТЧ 10] КОРНИ ПО МОДУЛЮ РАВНЫЕ 1 (*)
УСЛОВИЕ. Задан набор упорядоченных пар (a[i], 6[ij), 1 ^ ^ i ^ п, целых чисел, причем b [i] ^ 0.
п
ВОПРОС. Верно ли, что многочлен Е а [г] • zbW имеет корень 1 = 1
на единичной окружности комплексной плоскости? Иными словами, существует ли комплексное число q, |q|=1, такое, что
Еа[1]-<7ь1'1 = 0?
Источник [431]. К этой задаче сводится 3-ВЫП.
Комментарий. Не известно, принадлежит ли задача NP или co-NP.
[АТЧ 11] ЧИСЛО КОРНЕЙ ПРОИЗВЕДЕНИЯ ПОЛИНОМОВ (*)
УСЛОВИЕ. Заданы последовательности А=< (а, [ 1 ], &»[!]), ... ..., (а, [А], £,[£])> пар целых чисел, причем все М/]?>0, а также положительное целое число К.
m /кх
ВОПРОС. Верно ли, что полином Ц( Е Л/Ш -г6^ ) имеет ме-
<-1 X/ —1/
нее К различных комплексных корней?
Источник [430]. К этой задаче сводится 3-ВЫП.
Комментарий. Не известна принадлежность задачи ни NP, ни co-NP. Задача остается NP-трудной, если каждое а, [/] равно —1 или +1 или если в условии имеется число М и спрашивается, существует ли у произведения многочленов не более К корней кратности М [430].
[АТЧ 12] ПЕРИОДИЧЕСКОЕ РЕШЕНИЕ РЕКУРРЕНТНОГО УРАВНЕНИЯ (*)
УСЛОВИЕ. Задана последовательность (Ci, bi), 1 ^ i ^ tn, упорядоченных пар целых чисел с положительными bi.
ВОПРОС. Существует ли такая последовательность целых чисел ао, ai, .... an-i, п^ max {bi}, что бесконечная последовательность ао, ai, .... определяемая рекуррентным уравнением m at = ^ с/ -а^-ь^,
для всех i^n удовлетворяет соотношению at = ai (modn)?
Источник [431]. К этой задаче сводится 3-ВЫП.
Комментарий. Не известна принадлежность задачи ни классу NP, ни co-NP. В указанной работе приведены близкие результаты.
А7.3. Разное
[АТЧ 131 ВЫЧИСЛЕНИЕ ПЕРМАНЕНТА(*)
УСЛОВИЕ. Заданы (0—1)-матрица М порядка лХ» и положительное целое К ^ п\
ВОПРОС. Верно ли, что значение перманента матрицы М равно К?
Источник [522]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача является NP-трудной, но не известно, принадлежит ли она классу NP. То же самое справедливо для варианта, в котором спрашивается, верно ли, что значение перманента не больше К или не меньше К. Задача вычисления значения перманента матрицы М КР-полна.
[АТЧ 14] ИНТЕГРАЛ ОТ ПРОИЗВЕДЕНИЯ КОСИНУСОВ
УСЛОВИЕ. Задана последовательность (аь аг, .... ап) целых
2Л z ПVО Xz—1/2Л z ПVО Xz—1/d0 = O?d0 = O?чисел.
2Л z ПV
О Xz—1/
2Л z ПV
О Xz—1/
d0 = O?
d0 = O?
ВОПРОС. Верно ли, что
Источник [429]. К этой задаче сводится РАЗБИЕНИЕ.
Комментарий. Задача разрешима за псевдополиномиальное время. В указанной работе приведены близкие результаты о сложности задач интегрирования.
[АТЧ 15] ТОЧКА РАВНОВЕСИЯ
УСЛОВИЕ. Заданы набор {Л: 1 t п} многочленов с целыми коэффициентами от переменных хх, хгхп и конечные области определения переменных Mi = Z, 1 ^ I ^ п.
ВОПРОС. Существует ли такая последовательность уь уг, ... ..., уп, yi г Mi, 1 ^ i ^ п, что для всех у е Mi выполнены неравенства
Р^Уь У1> У(-ь Уь У1+ь У^>
>РЛух, у2yt-i, У, yt+i, -.., У„)?
Источник [463]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной, даже если Mi = = {0, 1}, 1 ^i^n.
[АТЧ 16] УНИФИКАЦИЯ С КОММУТАТИВНЫМИ ОПЕРАТОРАМИ
УСЛОВИЕ. Заданы множество переменных V, множество констант С, упорядоченные пары (ei,fi) “выражений”. (Выражением
называется либо переменная из V, либо константа из С, либо (e + f), где е и f—выражения.)
ВОПРОС. Можно ли так сопоставить каждой переменной и е V выражение /(и), не содержащее переменных, что Це^ = Щ^ при l^i^n (где /(е)—выражение, получающееся заменой каждой переменной и, входящей в е, выражением /(и), а отношение тождества определяется так: е = f, если е = f или если е = (а + 6), j = (c-\-d') и либо а = с, b = d, либо а = d, b = cp
Источник. [479]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной, даже если каждое выражение а, и ^ содержит не более 7 вхождений постоянных и переменных. Вариант задачи, в котором оператор + не коммутативен, т. е. е = f и тогда и только тогда, когда е = /, разрешим за полиномиальное время [421].
[АТЧ 17] УНИФИКАЦИЯ ДЛЯ КОНЕЧНО- ОПРЕДЕЛЕННЫХ АЛГЕБР
УСЛОВИЕ. Задана алгебра А, конечно-определенная с множеством образующих G, набором операторов О различных конечных арностей и набором Г определяющих соотношений на правильно построенных выражениях над G и О. Заданы также два правильно построенных выражения е и / над G и О и множество переменных V (детали см. в указанных ниже работах). ВОПРОС. Можно ли каждой переменной ое V сопоставить единственный “терм" /(и) над G и О так, что если /(а) и /(f) обозначают выражения, получающиеся заменой каждой переменной в е и f соответствующим термом, то /(а) и /(f) представляют один и тот же элемент Л?
Источник [300, 299]. К этой задаче сводится 3-ВЫП. Доказательство того, что задача принадлежит классу NP, нетривиально и содержится во второй работе.
Комментарий. Задача остается NP-полной, если только е или только f содержит символы переменных. В работе [301] изложены кванторные версии рассматриваемой задачи, которые являются полными в классе P-SPACE и в различных уровнях полиномиальной иерархии.
[АТЧ 18] ПРЕДСТАВИМОСТЬ ЦЕЛОЧИСЛЕННЫМ ВЫРАЖЕНИЕМ
УСЛОВИЕ. Заданы целочисленное выражение е над операторами U и + (целочисленное выражение определяется рекурсивно: двоичное представление числа n е Z+ есть целочисленное
выражение, представляющее множество {п}, если / и g есть целочисленные выражения, представляющие множества F и G, то fUg есть целочисленное выражение, представляющее множество FUG, a f + g есть целочисленное выражение, представляющее множества {m + п : т е F и neG), а также положительное целое число К.
ВОПРОС. Принадлежит ли К множеству, представляемому выражением е?
Источник [503]. К этой задаче сводится СУММАРНЫЙ ВЕС ПОДМНОЖЕСТВА.
Комментарий. Близкая задача НЕЭКВИВАЛЕНТНОСТЬ ЦЕЛОЧИСЛЕННЫХ ВЫРАЖЕНИЙ: “По двум заданным целочисленным выражениям ей/ определить, представляют ли они различные множества?" — является NP-трудной и на самом деле полна в классе S? полиномиальной иерархии ([503, 500], см. также разд. 7.2). Если допустить применение оператора “П”, где Не представляет множество всех целых чисел, не представляемых е, то обе задачи о представимости и неэквивалентности становятся P-SPACE-полными, см. [503].
А8. ИГРЫ И ГОЛОВОЛОМКИ
[ИГ 1] ОБОБЩЕННЫЙ ГЕКС (*)
УСЛОВИЕ. Задан граф G = (У.Е), в нем выделены две вершины s, teV.
ВОПРОС. Имеет ли игрок 1 форсированный выигрыш в описанной ниже игре на графе G?
Описание игры. Игроки поочередно выбирают вершину из K\(s, /}; вершины, выбранные игроком 1, “окрашиваются” в синий цвет, а выбранные игроком 2— в красный. Игра продолжается до тех пор, пока не будут окрашены все выбранные вершины, причем игрок 1 выигрывает тогда и только тогда, когда найдется путь из s в t в графе G, проходящий только через синие вершины.
Источник [119]. К этой задаче сводятся БУЛЕВСКИЕ ФОРМУЛЫ С КВАНТОРАМИ (БФК) (см. разд. А9.2).
Комментарий. Задача является P-SPACE-полной. Версия задачи, в которой игроки поочередно выбирают ребра, а не вершины (известная под названием “переключательная игра Шеннона на ребрах"), разрешима за полиномиальное время [62]. Если граф G ориентирован и игрок 1 стремится получить синий ориентированный путь из s в /, то обе задачи (т. е. выбор вершин и выбор ребер) являются P-SPACE-полными [119].
[ИГ 2] ОБОБЩЕННАЯ ГЕОГРАФИЯ (*)
УСЛОВИЕ. Задан ориентированный граф G=(V, А) и выделенная в нем вершина о0 е V.
ВОПРОС. Имеет ли игрок 1 форсированный выигрыш в описанной ниже игре на G?
Описание игры. Игроки поочередно выбирают новую дугу из А. Первая дуга должна иметь своим началом вершину Уо, а каждая последующая выбранная дуга должна иметь своим началом конец последней выбранной до этого дуги. Игрок, который первым окажется не в состоянии выбрать новую дугу, проигрывает.
Источник [473]. К этой задаче сводится БУЛЕВСКИЕ ФОРМУЛЫ С КВАНТОРАМИ (БФК) (см. разд. А9.2).
Комментарий. Задача P-SPACE-полна, даже если граф двудольный, планарный и имеющий степени захода и выхода, не превосходящие 2, и степени вершин не превосходят 3 (ПЛАНАРНАЯ ГЕОГРАФИЯ) [345]. Игра является обобщением известной игры “география", или “города”, в которой игроки поочередно называют города, причем название каждого города должно начинаться с той буквы, на которую оканчивается название предыдущего города.
[ИГ 3] ОБОБЩЕННЫЕ «КЕЙЛИ» (*)
УСЛОВИЕ. Задан граф G = (V, Е).
ВОПРОС. Имеет ли игрок 1 форсированный выигрыш в описанной ниже игре на G?
L Описание игры. Игроки поочередно выбирают вершину в графе, причем эта вершина и все ей смежные выбрасываются из графа. Игрок 1 выигрывает тогда и только тогда, когда игрок 2 оказывается первым игроком, который не может выбрать вершину, так как они уже все выброшены.
Источник [473]. К этой задаче сводится БФК (см. разд. А9.2).
Комментарий. Задача P-SPACE-полная. Рассмотрим версию задачи, в которой G = (710^2, Е)— двудольный граф, каждое ребро которого имеет одну вершину в Vi, а другую — в У2, и, кроме того, игрок i может выбирать вершины из множества Vi (причем все смежные вершины, как и раньше, выбрасываются), эта задача также' является P-SPACE-полной. Описание игры в “кейли”, на которой основано приведенное выше обобщение, можно найти в [89].
[ИГ 4] ПОСЛЕДОВАТЕЛЬНОЕ ПРИСВОЕНИЕ ЗНАЧЕНИЙ ИСТИННОСТИ (*)
УСЛОВИЕ. Заданы последовательность переменных U =<иь
«2 и„> и семейство С дизъюнкций над U (так же как
в задаче ВЫПОЛНИМОСТЬ).
ВОПРОС. Имеет ли игрок 1 форсированный выигрыш в описанной ниже игре на U и С?
Описание игры. Игроки поочередно присваивают значение истинности переменным из U, причем на i-м ходу игрок 1 присваивает значение переменной u2i-i, а игрок 2— переменной иц. Игрок I выигрывает тогда и только тогда, когда в результате присвоения переменным значений истинности все дизъюнкции из С оказываются выполненными.
Источник [503]. К этой задаче сводится БФК (см. разд. А9.2).
Комментарий. Задача P-SPACE-полная, даже если все дизъюнкции в С содержат только три литерала. Она разрешима за полиномиальное время, если каждая дизъюнкция содержит не более двух литералов [474].
[ИГ 5] ПРИСВОЕНИЕ ИСТИННОСТИ С РАЗБИЕНИЕМ МНОЖЕСТВА ПЕРЕМЕННЫХ (*)
УСЛОВИЕ. Задано множество переменных U и семейство С дизъюнкций над U.
ВОПРОС. Имеет ли игрок 1 форсированный выигрыш в описанной ниже игре на U и С?
Описание игры. Игроки поочередно выбирают переменные из U до тех пор, пока не будут выбраны все переменные. Игрок 1 выигрывает тогда и только тогда, когда набор значений “истина” у переменных игрока I и значений “ложь” у переменных игрока 2 приводит к выполнению-всех дизъюнкций из С.
Источник [473]. К этой задаче сводится БФК (см. разд. А9.2). Комментарий. Задача P-SPACE-полная, даже если все дизъюнкции содержат литералы без отрицаний (т. е. не содержат литералов вида «, если и е U). Аналогичные результаты для нескольких других игр на логических выражениях можно найти в [473].
[ИГ 6] ФИЛЬТР (*)
УСЛОВИЕ. Заданы два семейства Л и В подмножеств конечного множества X, причем Л и В не имеют общих подмножеств. ВОПРОС. Имеет ли игрок 1 форсированный выигрыш в описанной ниже игре на Л, В и X?
Описание игры. Игроки поочередно выбирают элементы из X до тех пор, пока множество X' всех выбранных элементов не будет пересекаться либо с каждым подмножеством из Л, либо с каждым подмножеством из В. Игрок 1 выигрывает тогда и только тогда, когда множество X' всех выбранных элементов пересекается с каждым подмножеством из В, причем если
последний ход сделан игроком 1, то X* не должно пересекаться с каждым подмножеством из А.
Источник [473]. К этой задаче сводится БФК (см. А9.2).
Комментарий. Задача P-SPACE-полная.
[ИГ 7] НАКРЫВАЮЩЕЕ МНОЖЕСТВО (*)
УСЛОВИЕ. Задано семейство С подмножеств базисного множества В.
ВОПРОС. Имеет ли игрок 1 форсированный выигрыш в описанной ниже игре на С и S?
Описание игры. Игроки поочередно выбирают новые элементы из В до тех пор, пока для каждого се С не окажется выбранным какой-то элемент из с. Игрок, ход которого приводит к этой ситуации, проигрывает.
Источник [473]. К этой задаче сводится БФК (см. разд. А9.2).
Комментарий. Задача P-SPACE-полная, даже если все множества в С содержат не более двух элементов (исходная задача НАКРЫВАЮЩЕЕ МНОЖЕСТВО в этом случае полиномиально разрешима). Если поменять местами выигрывающего и проигрывающего, задача будет P-SPACE-полной, даже когда все множества в С содержат не более трех элементов.
[ИГ 8] МАКСИМАЛЬНОЕ ВЗВЕШЕННОЕ ПАРОСОЧЕТАНИЕ (*)
УСЛОВИЕ. Заданы граф G = (V, Е), веса w(e)eZ+ для всех ее Е и граница В е Z+.
ВОПРОС. Имеет ли игрок 1 форсированный выигрыш в описанной ниже игре на 6?
Описание игры. Игроки поочередно выбирают новое ребро из Е, при этом выбранное ребро не должно иметь общих концов с выбранными ранее ребрами. Как только сумма весов всех выбранных ребер превосходит В, игрок 1 выигрывает.
Источник [102]. К этой задаче сводится БФК (см. разд. А9.2).
Комментарий. Задача P-SPACE-полная, хотя соответствующая задача о максимальном взвешенном паросочетании разрешима за полиномиальное время [324].
[ИГ 9] УНИЧТОЖЕНИЕ (*)
УСЛОВИЕ. Заданы ориентированный ациклический граф G = = (К, А), семейство {A/ll^t^r} (возможно, пересекающихся) подмножеств множества А, функция f0, отображающая V в (0, 1,2г},где /о (и) = i > О означает, что пометка типа I
присвоена вершине v, a fo(v) = O означает, что и не помечена. ВОПРОС. Имеет ли игрок 1 форсированный выигрыш в описанной ниже игре на G?
Описание игры. Позицией называется /: К-^{0, 1, ..., г}, причем /о — это начальная позиция. Игроки делают ходы по очереди. Ход каждого игрока состоит в .том, что он выбирает некоторую вершину уеУс пометкой f (и) > 0 и дугу (и, ш)е е Лц0) и затем переносит пометку с вершины и на вершину w. Точнее, новая позиция /' имеет тот же вид, что и f, за исключением того, что f4y) = 0 и
Г (w) =Г (w) =0, если /(ш)>0; f(v), если f(tw) = O.
Г (w) =
Г (w) =
(Это значит, что если f(zy)>0, то пометка, перенесенная на w, и пометка, присвоенная ранее вершине w, “взаимно уничтожаются*'.) Игрок 1 выигрывает тогда и только тогда, когда игрок 2 оказывается неспособным сделать очередной ход.
Источник [129]. К этой задаче сводится ВЕРШИННОЕ ПОКРЫТИЕ.
Комментарий. Задача NP-трудна и принадлежит P-SPACE, но не известно, является ли она P-SPACE-полной. Она остается NP-трудной, даже если г = 2 и Л1 П Л2 = 0. Задача разрешима за полиномиальное время, если г=\ [128]. Аналогичные результаты, устанавливающие NP-трудность для других игр с пометками на ориентированных гр'афах, можно найти в [129].
[ИГ 10] ШАШКИ НА ДОСКЕ N X N (*)
УСЛОВИЕ. Заданы: положительное число N; разбиение черных полей на шахматной доске размером NXN на три группы: (а) пустые поля, (б) поля, занятые черными дамками, и (в) поля, занятые красными дамками; информация, чей ход первый (красных или черных).
ВОПРОС. Имеют ли черные форсированный выигрыш в заданной позиции в игре, играемой по стандартным правилам шашек на расширенной доске размером NXN (при соответственно увеличенном числе шашек)?
Источник [127]. К этой задаче сводится ПЛАНАРНАЯ ГЕОГРАФИЯ-
Комментарий. Задача P-SPACE-трудна. При некоторых правилах она P-SPACE-полна. Близкая задача, в которой спрашивается, могут ли черные взять все шашки красных за один ход, разрешима за полиномиальное время.
[ИГ 11] ГО НА ДОСКЕ N X N (*)
УСЛОВИЕ. Заданы: положительное число N; разбиение “точек" на доске для игры в “го" размером NXN на три группы: (а) пустые, (б) занятые черными фишками, (в) занятые белыми фишками; информация, кто ходит первым, белые или черные. ВОПРОС. Имеют ли белые форсированный выигрыш в заданной позиции в игре, играемой по стандартным правилам “го” на расширенной доске?
Источник [345]. К этой задаче сводится ПЛАНАРНАЯ ГЕОГРАФИЯ-
Комментарий. Задача P-SPACE-трудна.
[ИГ 12] ЛЕВЫЙ —ПРАВЫЙ ХАКЕНБУШ
УСЛОВИЕ. Заданы: отдельный предмет из “гарнитура красного дерева", представимый в виде связного графа G =(V, Е) с выделенной вершиной ое V, называемой “основанием"; разбиение ребер графа на множества L и R, где L — множество ребер, содержащих вершину и и называемых “ножками”, a R = E\L, причем каждая “ножка” имеет общую вершину не более чем с одним ребром из R, называемым ее “стойкой” (не все ребра в R, однако, являются “стойками"); положительное целое число К.
ВОПРОС. Найдется ли “цена” игры ЛЕВЫЙ-ПРАВЫЙ ХАКЕНБУШ на графе G, меньшая и равная 2-к?. Описание игры и определение “цены игры” см. в [89].
Источник [37]. К этой задаче сводится ПОКРЫТИЕ МНОЖЕСТВ.
Комментарий. Задача остается NP-полной даже для двудольного графа G. Она разрешима за полиномиальное время, если граф G— дерево. Следствием этого результата является то, что задача выяснения, имеется ли в этой игре выигрыш для игрока 1, является NP-трудной.
[ИГ 13] ОБЛИЦОВКА КВАДРАТА
УСЛОВИЕ. Заданы: множество красок С; семейство Т s С4 “керамических плиток”, где <а, b, с, d?> обозначает плитку, у которой верх, правая сторона, низ, левая сторона окрашены соответственно в цвета а, b, с, d; положительное целое число А^|С|.
ВОПРОС. Существует ли покрытие квадрата размером NX К плитками из Т, т. е. можно ли поставить в соответствие каждой паре (1,П, l^i^N, 1 ^ / ^ N, некоторую плитку А = = АЦ,))еТ так, что, во-первых, если [ (I, j) = <а, b, с, d>
и f (t + 1, /) = <а', b', с', d'}, то а = с', и, во-вторых, если f U, /) = (а> Ь, с, d") и f (i, j+ 1) = <а', b', с', d'), то b = d'-?
Источник [154]. К этой задаче сводится ОРИЕНТИРОВАННЫЙ ГАМИЛЬТОНОВ ПУТЬ.
Комментарий. Вариант задачи, когда спрашивается, можно ли с помощью множества Т покрыть плитками всю плоскость (ZXZ) “периодически” с периодом меньшим, чем N, также является NP-полной задачей. В общем случае задача “выяснить, можно ли с помощью некоторого множества плиток покрыть всю плоскость", неразрешима [36], точно так же как и задача “выяснить, можно ли с помощью некоторого множества плиток покрыть плоскость периодически”.
[ИГ 14] СОСТАВЛЕНИЕ КРОССВОРДА
УСЛОВИЕ. Заданы конечное множество слов IF = S* и матрица А из нулей и единиц размером пУл
ВОПРОС. Можно ли составить кроссворд размером п X п из слов множества IF так, чтобы слова записывались в клетки, соответствующие нулям в А? Другими словами, если Е— это множество пар VJ)> таких, что Ац = 0, то существует ли отображение V- Е-*Т>, такое, что буквы, приписываемые любой горизонтальной или вертикальной последовательности (максимальной длины) элементов из Е, образуют слово из IF?
Источник [342]. К этой задаче сводится ТП-3.
Комментарий. Задача остается NP-полной, даже если все элементы матрицы А есть нули.
[ИГ 15] ОБОБЩЕННАЯ ИГРА «ИНСТАНТ ИНСАНИТИ» УСЛОВИЕ. Заданы конечное множество С “красок" и множество Q кубиков, |Q| = |C| и все грани кубиков из Q окрашены в заданные цвета из С.
ВОПРОС. Можно ли кубики Q выстроить в один вертикальный столбик так, чтобы каждый цвет из С появлялся ровно один раз на каждой из четырех сторон столбика?
Источник [452]. К этой задаче сводится ТОЧНОЕ ПОКРЫТИЕ.
Комментарий. Имеется соответствующая игра двух лиц, в которой игроки по очереди помещают очередной кубик на верх столбика, причем игрок 1 пытается построить столбик, удовлетворяющий сформулированному выше условию, а игрок 2 препятствует этому. Задача “выяснить, имеет ли игрок 1 форсированный выигрыш в этой игре", является P-SPACE-полной. Название ИНСТАНТ ИНСАНИТИ (INSTANT INSANITY) —торговый знак, принадлежащий фирме Parker Brothers, Inc.
А9. ЛОГИКА
А9.1. Пропозициональная логика
[ЛОГ 1] выполнимость
УСЛОВИЕ. Заданы множество переменных U и набор С дизъюнкций над U (определение см. в разд. 2.6).
ВОПРОС. Существует ли для набора дизъюнкций С выполняющий набор истинностных значений?
Источник [91]. NP-полнота задачи доказана в теореме Кука.
Комментарий. Задача остается NP-полной даже в том случае, если |с| = 3 для всех се С (3-ВЫП) или если |с|^3 для всех се С, а также если для каждой переменной ueU имеется не более трех дизъюнкций, содержащих и или й. Задача NP-полна и тогда, когда |с|^3 для всех се С и двудольный граф G = (V, Е) планарен (ПЛАНАРНАЯ 3-ВЫП) (здесь У= L/IJC, а Е состоит из таких пар {и, с}, что и или й принадлежит дизъюнкции eV Общая задача разрешима за полиномиальное время, если [с|^2 для всех се С (см., например, [114]).
[ЛОГ 2] 3-ВЫПОЛНИМОСТЬ (3-ВЫП)
УСЛОВИЕ. Заданы множество переменных U и такой набор С дизъюнкций над U, что |с| = 3 для каждой дизъюнкции се С. ВОПРОС. Существует ли для набора дизъюнкций С выполняющий набор истинностных значений?
Источник [91]. К этой задаче сводится ВЫПОЛНИМОСТЬ.
Комментарий. Задача остается NP-полной даже в том случае, если каждая дизъюнкция содержит только сами переменные или только их отрицания (МОНОТОННАЯ 3-ВЫП) [174] или если для каждой переменной не более 5 дизъюнкций из С содержат или литерал и или й.
[ЛОГ 3] 3 ВЫП ПРИ РАЗЛИЧНЫХ ЛИТЕРАЛАХ
УСЛОВИЕ. Заданы множество переменных U и такой набор С дизъюнкций над U, что |с| = 3 для каждой дизъюнкции се С. ВОПРОС. Существует ли для набора С такой выполняющий набор истинностных значений, что в каждой дизъюнкции из С найдется по крайней мере один истинный и один ложный литерал?
Источник [474]. К этой задаче сводится 3-ВЫП.
[ЛОГ 4] 3-ВЫП ПРИ ОДНОМ ИСТИННОМ ЛИТЕРАЛЕ УСЛОВИЕ. Заданы множество переменных U и такой набор С дизъюнкций над U, что |с| — 3 для каждой се С.
ВОПРОС. Существует ли для U такой выполняющий набор истинностных значений, что для каждой дизъюнкции в С имеется в точности один истинный литерал?
Источник [474]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной даже в том случае, если ни одна с е С не содержит отрицаний переменных.
[ЛОГ 5] МАКСИМАЛЬНАЯ 2-ВЫПОЛНИМОСТЬ
УСЛОВИЕ. Заданы множество переменных U; такой набор С дизъюнкций над U, что |с| = 2 для всех се С; положительное целое число К ^ | С].
ВОПРОС. Существует ли для U набор истинностных значений, выполняющий не менее К дизъюнкций из набора С?
Источник [157]. К этой задаче сводится 3-ВЫП.
Комментарий. Разрешима за полиномиальное время при К = = |С| (см., например, [114]).
[ЛОГ 6] ОБОБЩЕННАЯ ВЫПОЛНИМОСТЬ
УСЛОВИЕ. Заданы положительные целые числа Ai, Аг, ..., km, последовательность S = <R\, R2, ..., Rm1) подмножеств Ri s £ (T, fY*1’ множество переменных U и для всех i, 11/п,
множества Ci, состоящие из наборов по kt переменных из множества U.
ВОПРОС. Существует ли такой набор истинностных значений t: U-^{T,F}, что для всех i, 1 ^ i ^ гп, и для всех наборов (u [ 1 ], и [2], ..., и [А,]) е С, имеет место
(/(«[!]), /(«[2])/(«Ms^?
Источник [474]. К этой задаче сводится 3-ВЫП.
Комментарий. Если для заданной последовательности S не выполняется одна из шести перечисленных ниже возможностей, то задача NP-полна, в противном случае она разрешима за полиномиальное время. Упомянутые возможности таковы:
каждое Ri содержит {Г}*';
каждое Ri содержит V^1’.
каждое Ri логически “эквивалентно” некоторому выражению, имеющему конъюнктивную нормальную форму и содержащему в каждой дизъюнкции по крайней мере одно отрицание;
каждое Ri логически “эквивалентно” некоторому выражению, имеющему конъюнктивную нормальную форму и содержащему в каждой дизъюнкции по крайней мере один литерал без отрицания;
каждое Ri логически “эквивалентно" некоторому выражению, имеющему конъюнктивную нормальную форму и содержащему в каждой дизъюнкции не более двух литералов;
каждое Ri есть “множество решений” некоторой системы уравнений над GF [2].
NP-полнота задач 3-ВЫП, 3-ВЫП ПРИ РАЗЛИЧНЫХ ЛИТЕРАЛАХ и 3-ВЫП ПРИ ОДНОМ ИСТИННОМ ЛИТЕРАЛЕ вытекает из приведенной классификации. Если допустить принадлежность ^/-мерных наборов из множества Ci множеству (и П {Т, F^ki^ (“формулы с константами"),то задача NP-полна даже в том случае, если выполнены условия (1) или (2), но по-прежнему разрешима за полиномиальное время, если выполняется одно из условий (3) — (6). Квантифицированная версия задачи “с константами", в которой дополнительно задана последовательность Qi, Q2, ..., Qn кванторов V и 3 и вопрос заключается в истинности формулы
(Q1U|) (Q2«2) • • • (Qn“n) Iе ^ Ri для всех с е Cb 1 < i < /и],
является P-SPACE-полной, даже если зафиксировать последовательность S, не удовлетворяющую свойствам (3) — (6). Если последовательность S удовлетворяет одному из свойств (3)— (6), то последняя задача разрешима за полиномиальное время.
[ЛОГ 7] ВЫПОЛНИМОСТЬ БУЛЕВСКИХ ВЫРАЖЕНИИ УСЛОВИЕ. Заданы множество переменных U и подмножество В множества всех 16 возможных двуместных булевских связок, а также правильно построенное булевское выражение Е над U и В.
ВОПРОС. Существует ли набор истинностных значений переменных множества U, при котором выражение Е выполнено?
Источник [91]. Общая сводимость1).
Комментарий. Задача остается NP-полной, если В состоит только из четырех булевских связок {A, V, ->, П} или любого другого полного набора булевских связок. Задача NP-полна также для любого неполного множества булевских связок, содержащего в качестве подмножества одно из следующих множеств: {т4}, I?4}, {^, V} или {^ А}, см. [341]. Задача раз-
‘) Имеется в виду сводимость, описанная при доказательстве теоремы Кука, см. стр. 57. — Прим. ред.
решима за полиномиальное время для любого неполного набора булевских связок, не включающего ни одного из четырех перечисленных выше множеств.
[ЛОГ 8] ОТСУТСТВИЕ ТАВТОЛОГИИ
УСЛОВИЕ. Задано булевское выражение Е на множестве переменных U, в котором используются булевские связки ““I” (не), “V” (или), “А" (и) и “->” (следует).
ВОПРОС. Верно ли, что Е не тавтология, т. е. существует ли такой набор истинностных значений переменных множества U, что Е принимает значение “ложь”?
Источник [91]. К этой задаче сводится ВЫПОЛНИМОСТЬ.
Комментарий. Задача остается NP-полной даже тогда, когда Е имеет “дизъюнктивную нормальную форму”, каждый дизъюнктивный член которой содержит не более трех литералов.
[ЛОГ 9] МИНИМАЛЬНАЯ ДИЗЪЮНКТИВНАЯ НОРМАЛЬНАЯ ФОРМА
УСЛОВИЕ. Заданы множество переменных U = {щ, Ui, ..., un}, множество А = {Г, В}” “наборов истинностных значений” и положительное целое число К.
ВОПРОС. Существует ли над множеством переменных U такая дизъюнктивная нормальная форма Е, содержащая не более К дизъюнктивных членов, что Е истинна только для наборов истинностных значений из множества А?
Источник [173]. К этой задаче сводится МИНИМАЛЬНОЕ ПОКРЫТИЕ. -
Комментарий. Вариант задачи, в котором условие содержит полную таблицу истинностных значений, т. е. два непересекаю- щихся подмножества Л и В, А, В ^ {Т, В}”, AUB={T, В}", и спрашивается, будет ли Е истинно для наборов истинностных значений из множества А и ложно для наборов истинностных значений из множества В, также NP-полон, хотя в последнем случае длина записи условия может быть гораздо больше [374].
[ЛОГ 10] ПОЛНОТА НАБОРА СВЯЗОК
УСЛОВИЕ. Заданы множество переменных U и набор С правильно построенных булевских выражений над U.
ВОПРОС. Верно ли, что набор С полон? Набор С называется полным, если существует такое полное множество логических связок (т. е. унарных и бинарных операторов) D = (01, 02, ... .... 0*}, что для каждого оператора 0,еО найдется выражение Е^С и отображение s: U^>-{a,b^, для которых s(B) = a0<6 или s(B) = 9ia (в зависимости от унарности или бинарности 0<).
А9.2. Разное
[ЛОГ 11] БУЛЕВСКИЕ ФОРМУЛЫ С КВАНТОРАМИ БФК (*)
УСЛОВИЕ. Заданы множество переменных U = {«i, ui, ..., ып} и правильно построенная булевская формула с кванторами F = (QiUi) (Q2U2) ... VQnUn^E, где Е— булевское выражение, a Q есть либо V, либо В.
ВОПРОС. Верно ли, что F истинна?
Источник. [503]. Общая сводимость.
Комментарий. Задача P-SPACE-полна даже в том случае, когда Е— дизъюнктивная нормальная форма и каждая дизъюнкция содержит не более трех литералов (3-ВЫП С КВАНТОРАМИ). Но если в каждой дизъюнкции имеется не более двух литералов, то задача разрешима за полиномиальное время [474]. Если ограничиться только формулами, содержащими не более А перемен кванторов (т. е. такими формулами F, что имеется не более А таких индексов I, что Q/^Qhi), то задача полна в некотором зависящем от k и Qi классе полиномиальной иерархии (см. разд. 7.2).
[ЛОГ 12] ТЕОРИЯ ПЕРВОГО ПОРЯДКА С РАВЕНСТВОМ (*)
УСЛОВИЕ. Заданы конечное множество переменных U = = (иь «2Un], предложение S над U в теории первого порядка с равенством. (Предложения этой теории определяются индуктивно следующим образом: “выражением’’называется формула вида “и = и”, где и, veU, либо формула вида “"ЛЕ", “(EV F)", “(ЕЛЕ)" или “(Е =>/)”, где Е и F— выражения. Предложением называется формула вида (Q1U1HQ2U2) ... ... (.QnUn^E, где Е— выражение, a Qi — один из кванторов V или 3.)
ВОПРОС. Верно ли, что предложение 8 истинно во всех моделях теории?
Источник [503]. Общая сводимость.
Комментарий. Задача P-SPACE-полна. Аналогичная задача P-SPACE-трудна для любой теории первого порядка, имеющей модель, в которой какой-нибудь предикатный символ интерпретирован в виде не тождественно истинного отношения [233].
[ЛОГ 13] 85-ВЫПОЛНИМОСТЬ МОДАЛЬНОЙ ЛОГИКИ УСЛОВИЕ. Задана правильно построенная модальная формула А над конечным множеством переменных U. Модальная формула— это либо переменная ueU, либо формула вида
“(А Л В)", “ПЛ” или “□Л”, где А и В — модальные формулы. ВОПРОС. Верно ли, что формула А является “55-выполнимой"? Иначе говоря, существует ли модель (1У, R, V), где W— множество, R— рефлексивное, транзитивное и симметричное бинарное отношение на W, а V— такое отображение множества UXW в множество (7, F}, что для некоторого we W выполняется равенство V(A, w)=T? Отображение V продолжается на формулы согласно следующим правилам: У (А AB, w^ = Т тогда и только тогда, когда У (А, щ) = У (В, щ) = 7; У( [A, w)=T тогда и только тогда, когда У(А, w)=F; У(ОА, w)=T тогда и только тогда, когда V(A,w') = Т для всех w* е 1У, таких, что (w, w'^eR.
Источник [314]. К этой задаче сводится 3-ВЫП. Доказательство принадлежности задачи к классу NP-нетривиально.
[ЛОГ 14] ДОКАЗУЕМОСТЬ В МОДАЛЬНОЙ ЛОГИКЕ (*) УСЛОВИЕ. Заданы правильно построенная модальная формула А, модальная система Se {К, 7, S4}. (Детали см. в [314] или [229].)
ВОПРОС. Доказуема ли формула А в системе S?
Источник [314]. К этой задаче сводится БФК.
Комментарий. Задача P-SPACE-полна для фиксированной системы 8 е (К, 7,84} или для любой другой фиксированной модальной системы, в которой можно доказать все доказуемое в К и нельзя доказать ничего недоказуемого в 84.
[ЛОГ 15] ЛОГИКА ПРЕДИКАТОВ БЕЗ ОТРИЦАНИЯ УСЛОВИЕ. Заданы множество переменных U = {ut, «2>••• «„}, множество символов функций F = |f”', f™1f”*j, множество
символов отношений /? = {/?7, R^1, .... R^ (m^O и г,коразмерности соответствующих функций и отношений), правильно построенное логическое предложение А без отрицаний над U, F и R. (Такие предложения определяются индуктивно: терместь переменная и eU или выражение вида /7'Сг^г<т), где tj — терм. Формула есть выражение вида tx = /2, гДе tx и /2 — термы, или выражение вида R^ (/р /2, ..., tr^, где /, —терм, или выражение вида (А Д В), (А V В), Vut (А), Зи, (А), где А и В — формулы, ut е U. Предложением называется формула, на каждую переменную которой навешен квантор, предшествующий ее вхождению в формулу.)
ВОПРОС. Верно ли, что предложение А истинно при всех интерпретациях F и R?
Источник [302]. К этой задаче сводится 3-ВЫП. Доказательство того, что задача принадлежит классу NP, нетривиально.
Комментарий. Задача остается NP-полной даже тогда, когда отсутствуют кванторы общности, символы отношений и имеются только две функции размерности 0 (т. е. константы).
[ЛОГ 16] ВЫПОЛНИМОСТЬ КОНЪЮНКЦИЙ ВЫРАЖЕНИЙ, ВКЛЮЧАЮЩИХ ФУНКЦИИ И НЕРАВЕНСТВА
УСЛОВИЕ. Заданы множество переменных U, множество F одноместных символов функций и набор С выражений вида U * V, где * — один из символов “^”, “ > ”, “=” или “^’‘, а U и V представляют собой один из символов “0”, “1”, “и", “КРУ*. “/(1)” или “fW для некоторых {гР и игр.
ВОПРОС. Можно ли так присвоить всем переменным из и е U и всем f(u) (где игИ и feF) целочисленные значения, что все выражения из С будут истинны при стандартной интерпретации отношений ^, >, = и =#?
Источник [435]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной даже тогда, когда отношения = и =/= не используются. Задача разрешима за полиномиальное время, если не используются отношения ^ и > [398] или если не используются отношения = и =/= и отсутствуют символы функций [356]. Вариант задачи, в котором W и V имеют вид “и" или “u + с” (где иг U, cgZ), является NP-полным, если разрешается использовать все четыре отношения, но разрешим за полиномиальное время, если можно пользоваться одной из пар отношений ^ и > или = и =/= [66].
[ЛОГ 17] МИНИМАЛЬНОЕ МНОЖЕСТВО АКСИОМ
УСЛОВИЕ. Заданы конечное множество “предложений” S, подмножество Г е S “истинных предложений”, “отношение следования” R, состоящее из пар (Л, s), где AsSnseS, а также положительное целое число К ^ |S|.
ВОПРОС. Существуют ли подмножество So s Т, |S0|^ К и положительное целое число п, такие, что Sn = Г? (Здесь Sz, 1 ^ ^ 1^ п,— множество, состоящее в точности из таких предложений seS, что либо s е 5,-1, либо существует U г St_Xl для которого (U, $)гК.)
Источник [437]. К этой задаче сводится ТП-3.
Комментарий. Задача NP-полна даже тогда, когда Т = S.
[ЛОГ 18] ПОСЫЛКА ПЕРВОГО ПОРЯДКА
УСЛОВИЕ. Заданы конечное множество “символов переменных” U, конечное множество “символов функции" С, набор Е = (Ei, Еа, .... Ет} выражений над <7U С, набор Е = {Еь Fa, ..., Ёт} выражений над С.
ВОПРОС. Существует ли подстановка S,. отображающая каждую переменную ueU в такое выражение s(u) над С, что (s(Ei), s(E2)s(Em)} есть подмножество множества {Fi, Fa, ..., Fn}? (Здесь stE^ обозначает результат подстановки вместо каждого вхождения в Ei переменной ueU соответствующего выражения s(u).)
Источник [32, 33]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной для любого фиксированного п 3, но при любом фиксированном m разрешима за полиномиальное время.
[ЛОГ 19] ПОДТВЕРЖДЕНИЕ ВТОРОГО ПОРЯДКА
УСЛОВИЕ. Заданы два “выражения логики второго порядка" Ех и Еа, причем второе выражение не содержит переменных (в выражении второго порядка функции могут быть переменными, детали см. в [32]).
ВОПРОС. Существует ли такой набор значений переменных *) из Ех, что в результате подстановки получается выражение, идентичное Еа"?
Источник [32]. К этой задаче сводится 3-ВЫП. Доказательство принадлежности задачи классу NP нетривиально.
Комментарий. Разрешимость более общей задачи — УНИФИКАЦИЯ ВТОРОГО ПОРЯДКА, в которой и Е2, и Ех могут содержать переменные и спрашивается, существует ли такой набор значений переменных, что в результате соответствующих подстановок Ех и Е2 становятся идентичными, не известна. Задача УНИФИКАЦИЯ ТРЕТЬЕГО ПОРЯДКА неразрешима [228], а задача УНИФИКАЦИЯ ПЕРВОГО ПОРЯДКА разрешима за полиномиальное время [32, 421].
АЮ. ТЕОРИЯ АВТОМАТОВ И ЯЗЫКОВ
A10.L Теория автоматов
[ТАЯ 1] НЕЭКВИВАЛЕНТНОСТЬ КОНЕЧНЫХ АВТОМАТОВ (*)
УСЛОВИЕ. Заданы два недетерминированных конечных автомата Ах и Аа с общим входным алфавитом S.’(Недетерминиро-
В данном случае значением переменной может быть любой терм. — Прим. ред.
ванный конечный автомат А = (Q, 2, б, q0, F) состоит из конечного множества состояний Q, входного алфавита 2, функции перехода б, отображающей QXS в подмножества множества Q, начального состояния q0 и множества допускающих состояний F,F^K (см., например, [215]).)
ВОПРОС. Верно ли, что Л и А2 распознают различные языки?
Источник [292]. К этой задаче сводится НЕУНИВЕРСАЛЬ- НОСТЬ РЕГУЛЯРНОГО ВЫРАЖЕНИЯ.
Комментарий. Задача P-SPACE-полна даже в том случае, когда |2| = 2 и Аг — тривиальный автомат, распознающий 5*. Общая задача NP-полна, если |2|= 1 или если оба автомата А) и А2 распознают конечные языки (последнее свойство может быть проверено за полиномиальное время [215]). Задача разрешима за полиномиальное время, если Л и А2— детерминированные конечные автоматы (см., например, [215]).
[ТАЯ 2] НЕТРИВИАЛЬНОСТЬ ДВУСТОРОННЕГО КОНЕЧНОГО АВТОМАТА (*)
УСЛОВИЕ. Задан двусторонний недетерминированный конечный автомат А = (Q, 2, 6, qo, F), где Q, 2, б, qo и F обозначают то же самое, что и для одностороннего недетерминированного конечного автомата, а функция перехода б отображает Q X 2 в подмножества множества QX{—1, 0, 1} (см., например, [215]).
ВОПРОС. Существует ли слово хе 2*, допускаемое автоматом А?
Источник [231]. К этой задаче сводится ДОПУСКАЕМОСТЬ ЛИНЕЙНО ОГРАНИЧЕННЫМ АВТОМАТОМ.
Комментарий. Задача P-SPACE-полна даже тогда, когда [2| = 2 и А — детерминированный автомат. Если |2|=1, то общая задача NP-полна [136]. Если [21 — односторонний недетерминированный конечный автомат, то общая задача может быть решена за полиномиальное время (см., например, [215]). Аналогичные результаты о конечности языка, распознаваемого автоматом А, можно найти в указанных выше работах.
[ТАЯ 3] ДОПУСКАЕМОСТЬ КОНЕЧНЫМ АВТОМАТОМ (*) УСЛОВИЕ. Заданы “линейно ограниченный автомат” А с входным алфавитом 2 (определение см. в книге [215]) и слово хе 2*.
ВОПРОС. Верно ли, что автомат А допускает слово х?
Источник [280]. Общая сводимость.
Комментарий. Задача P-SPACE-полна даже в том случае, если А— детерминированный автомат (см. задачу ДОПУСКАЕМОСТЬ В ЛИНЕЙНОЕ ВРЕМЯ из разд. 7.4). Кроме того, существуют конкретные детерминированные линейно ограниченные автоматы, для которых задача P-SPACE-полна.
[ТАЯ 4] ДОПУСКАЕМОСТЬ АВТОМАТОМ КВАЗИРЕАЛЬНОГО ВРЕМЕНИ
УСЛОВИЕ. Заданы многоленточная машина Тьюринга М (в нашей терминологии — программа для машины Тьюринга), у которой читающая головка входной ленты на каждом такте работы сдвигается вправо, причем если читающая головка видит пустой символ, то машина обязана остановиться, а также слово х, принадлежащее входному алфавиту 2 машины Af. (Более полное описание машин этого типа и их эквивалентное задание можно найти в работе [50].) ВОПРОС. Верно ли, что М допускает х?
Источник [46]. Общая сводимость.
Комментарий. Задача остается NP-полной даже в том случае, если кроме входной ленты М имеет только одну рабочую ленту. См. также задачу ПРИНАДЛЕЖНОСТЬ ЯЗЫКУ КВАЗИРЕАЛЬНОГО ВРЕМЕНИ (языки, допускаемые автоматами квази- реального времени, совпадают с квазиреальными по времени языками, определенными в [ТАЯ 18]).
[ТАЯ 5] ДОПУСКАЕМОСТЬ НЕСТИРАЮЩИМ СТЕКОВЫМ АВТОМАТОМ (*)
УСЛОВИЕ. Заданы “односторонний нестирающий стековый автомат А (1НСС-автомат) с входным алфавитом 5 (определение см. в книге [215]) и слово хе 2*.
ВОПРОС. Верно ли, что автомат А допускает слово х?
Источник [136, 214]. К этой задаче сводится ДОПУСКАЕМОСТЬ ЛИНЕЙНО ОГРАНИЧЕННЫМ АВТОМАТОМ. Во второй работе доказано, что задача принадлежит классу Р- SPACE.
Комментарий. Задача P-SPACE-полна даже в том случае, если слово хе 2* фиксировано и А — “допускающий стековый автомат” (определение см. в работе [188]). Если х —пустое слово и на А наложить дополнительное ограничение, состоящее в том, что А — допускающий стековый автомат с одним стековым символом, то задача становится NP-полной .[136]. Если же х меняется, а А фиксирован, то задача принадлежит классу NP для любого 1НСС-автомата, то же самое верно, если А — про-
извольный “вложенный стековый автомат” [460]. Существуют конкретные ШСС-автоматы, для которых упомянутая задачз NP-полна [460], эти ШСС-автоматы можно взять из класса допускающих стековых автоматов [482], которые одновременно являются “читающими магазинными автоматами” [232]. Однако если А— “односторонний недетерминированный магазинный автомат”, то задача разрешима за полиномиальное время (даже если А может меняться); последнее утверждение верно и для “двусторонних недетерминированных магазинных автоматов” [8].
[ТАЯ 6] ПЕРЕСЕЧЕНИЕ ДЛЯ КОНЕЦНЫХ АВТОМАТОВ (*) УСЛОВИЕ. Задана последовательность Аь АгА„ детерминированных конечных автоматов, имеющих общий входной алфавит 2.
ВОПРОС. Существует ли слово хе 5*, допускаемое всеми автоматами Ai, 1 i п?
Источник [300, 301]. К этой задаче сводится ДОПУСКАЕМОСТЬ С ЛИНЕЙНОЙ ПАМЯТЬЮ.
Комментарий. Задача P-SPACE-полна. Для любого фиксированного п она разрешима за полиномиальное время [215].
[ТАЯ 7] РЕДУКЦИЯ НЕ ПОЛНОСТЬЮ ОПРЕДЕЛЕННОГО АВТОМАТА
УСЛОВИЕ. Заданы не полностью определенный детерминированный конечный автомат А = (Q, S, 6, qo, F) (где Q — множество состояний, S — входной алфавит, б — “частичная” функция перехода, отображающая некоторое подмножество множества QXS в Q, начальное состояние q0 е Q, FeQ— множество “допускающих состояний”) и положительное целое число К. ВОПРОС. Можно ли функцию перехода б так продолжить до всюду определенной функции, отображающей Q X 5 в Q, что у получающегося в результате полностью определенного автомата имеется эквивалентный “редуцированный автомат”, число состояний которого не превосходит К?
Источник [426]. К этой задаче сводится РАСКРАШИВАВ- МОСТЬ ГРАФА В 3 ЦВЕТА.
Комментарий. Задача остается NP-полной при любом фиксированном К ^ 6. Близкая задача, в которой допускается “расщепление состояний” (как, например, в работе [423]), также NP-полна для. любого фиксированного К ^ 6 (см. [426]). Если наряду с “расщеплением состояний” допускается также “расщепление символов", как, например, в работе [187], то анало-
гичная задача, когда у приведенного автомата сумма числа состояний и числа символов не должна превосходить К, также NP-полна [427]. Задача отыскания детерминированного конечного автомата с минимальным числом состояний, эквивалентного заданному полностью определенному автомату, разрешима за полиномиальное время (см., например,, [211] или [14]). Аналогичная задача для полностью определенного недетерминированного конечного автомата P-SPACE-полна (см. задачу НЕЭКВИВАЛЕНТНОСТЬ КОНЕЧНЫХ АВТОМАТОВ).
[ТАЯ 8] МИНИМАЛЬНЫЙ РАЗДЕЛЯЮЩИЙ КОНЕЧНЫЙ АВТОМАТ
УСЛОВИЕ. Заданы конечный алфавит 2, два конечных подмножества 5, 7 s 2е и положительное целое число К.
ВОПРОС. Существует ли такой детерминированный конечный автомат А, имеющий К состояний, что распознаваемый им язык L s 2* обладает свойством, согласно которому Set, Те = 2*\£?
Источник [174]. К этой задаче сводится МОНОТОННАЯ 3-ВЫП.
Комментарий. Если для некоторого п справедливо S U Т = 2(л) (где 2(л) — множество всех слов над 2, длины, не превосходящей п), то задача разрешима за полиномиальное время [514]. Однако для любого фиксированного е > О задача NP-полна даже в том случае, если ограничиться индивидуальными задачами, в которых (SUT)sS("> и |2W — (SU 7)|^|2(")| = [17].
А10.2. Формальные языки
[ТАЯ 9] НЕЭКВИВАЛЕНТНОСТЬ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ (*)
УСЛОВИЕ. Заданы два регулярных выражения Ех и Е2 с операторами {U, •. ♦} и алфавит 2 (определение см. в разд. 7.4). ВОПРОС. Верно ли, что Ех и Е2 представляют различные языки?
Источник [503,497]. Общая сводимость. Во второй работе доказано, что задача лежит в классе P-SPACE.
Комментарий. Задача P-SPACE-полна, даже если 121 = 2 и Е2 = ^* (НЕУНИВЕРСАЛЬНОСТЬ РЕГУЛЯРНОГО ВЫРАЖЕНИЯ, см. разд. 7.4). В действительности задача P-SPACE- полна, если Е2— любое фиксированное выражение, представляющее “неограниченный” язык [237]. Для фиксированного Е2, представляющего некоторый бесконечный “ограниченный” язык, задача NP-полна, но разрешима за полиномиальное время
для любого фиксированного выражения Е2, представляющего любой конечный язык. Общая задача остается P-SPACE- полной, если Е\ и Е2 имеют фиксированную “высоту относительно ”, равную k, к ^ 1 [503,230]. Задача остается NP-пол- ной, если fi или fi и f2 представляют ограниченные языки (последнее свойство проверяемо за полиномиальное время) [237] или если |2|=1 [503]. В цитированных работах указаны другие близкие результаты и труднорешаемые обобщения (см. также [231] и [236]).
[ТАЯ 10] МИНИМАЛЬНОЕ РАЗДЕЛЯЮЩЕЕ РЕГУЛЯРНОЕ ВЫРАЖЕНИЕ
УСЛОВИЕ. Заданы конечный алфавит 2, два конечных подмножества S, Т s 2* и положительное целое число К-
ВОПРОС. Существует ли такое регулярное выражение Е над 2, содержащее не более К символов из 2, что язык L, определяемый выражением Е, обладает свойством: Set и Те 2*\L?
Источник [17]. К данной задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной, даже если ограничиться только выражениями Е, не содержащими оператора “(J” или оператора “*” [16].
[ТАЯ И] ПОКРЫТИЕ РЕЙНОЛЬДСА
ДЛЯ БЕСКОНТЕКСТНЫХ ГРАММАТИК
УСЛОВИЕ. Заданы две бесконтекстные грамматики Gi = = (^I, 2, П1, Si) и G2 = (N2, 2, П2, S2), где 2— конечное множество терминальных символов, Ni— конечное множество нетерминальных символов, S, е Ni — начальный символ и П, — множество “продукций" вида “А -> го”, где А s Ni и го г e^NiU^*.
ВОПРОС. Верно ли, что G2 — “покрытие Рейнольдса”для грамматики Gi? Иными словами, существует ли такая функция [, отображающая Ni (J 2 в ^2^JS> что Цх) = х для всех xeZ, f(A)eN2 для всех AeNx, [(Si) = S2 и для каждой продукции вида А-*-ххх2 ... хп из П1 ее образ f(А)->f(xi)f(x2) ... /(х„) есть продукция из П2?
Источник [235]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной, если Gi и G2 — “регулярные"1) грамматики. Аналогичные результаты верны для близких вопросов: “Верно ли, что G2— “слабое покрытие Рей-
нольдса для Gi?” и “Верно ли, что G2— “гомоморфный образ” грамматики GXV’ Задача: “Задана грамматика G, существует ли такая LL(k) -бесконтекстная грамматика Н, что Н— покрытие Рейнольдса для грамматики G?”— разрешима за полиномиальное время. То же самое верно для задач, получающихся заменой класса LL(A>) на LR(k') или на один из нескольких других классов грамматик (см. [235]).
[ТАЯ 12] ПОКРЫТИЕ ЛИНЕЙНЫХ ГРАММАТИК (*) УСЛОВИЕ. Заданы две линейные бесконтекстные грамматики Gi — (Nx, 5, ПьSj) и G2 = (N2, 2, П2, S2) (в таких грамматиках не допускаются продукции, содержащие в правой части более одного нетерминального символа).
ВОПРОС. Существует ли такая функция h: Pi-^-PzUM (гДе X обозначает пустую продукцию), что при отображении h грамматика Gi покрывает G2? (Говорят, что при отображении h грамматика Gi покрывает грамматику G2, если для всех слов w е 2* выполнены два свойства: (1) если w выводимо из S| посредством некоторой последовательности продукций рх, р2, ... ..., рп, то w выводимо из S2 последовательностью продукций ft (pi), й(рз)> - .-, А(Рп); (2) если w выводимо из S2 посредством продукций qx, q2) ..., qn из П2, то существует такая последовательность продукций Рь р2, . . . , pm, выводящая w в грамматике 0ь что A(pi), й(р2), .••. Л(рт) совпадаете^!, ^2, ... ..., Рп.)
Источник [237,238]. К этой задаче сводится НЕУНИВЕРСАЛЬ- НОСТЬ РЕГУЛЯРНОГО ВЫРАЖЕНИЯ. Во второй работе доказана принадлежность задачи классу P-SPACE.
Комментарий. Задача P-SPACE-полна даже для “регулярных” грамматик. Для произвольных бесконтекстных грамматик задача неразрешима. В работе [235] приведены близкие результаты.
[ТАЯ 13] СТРУКТУРНАЯ НЕЭКВИВАЛЕНТНОСТЬ ЛИНЕЙНЫХ ГРАММАТИК (*)
УСЛОВИЕ. Заданы две бесконтекстные грамматики Gx = = (М, 2, Пь Si) и G2 = (N2, 2, П2, S2).
ВОПРОС. Верно ли, что Gx и G2 — “структурно неэквивалентны"? (Грамматики Gx и G2 называются структурно неэквивалентными, если грамматики со скобками, получаемые из Gx и G2 заменой каждой продукции вида A^-w продукцией вида Д->(ф) (где “(” и “)” — новые терминальные символы), порождают различные языки.)
Источник [237]. К этой задаче сводится НЕУНИВЕРСАЛЬ- НОСТЬ РЕГУЛЯРНОГО ВЫРАЖЕНИЯ.
Комментарий. Задача P-SPACE-полна, если Gi и Gi регулярны и |S| = 2. Она NP-полна, если |2|= 1. Для произвольных бесконтекстных языков задача разрешима, но принадлежность ее классу P-SPACE не установлена.
[ТАЯ 14] НЕЭКВИВАЛЕНТНОСТЬ РЕГУЛЯРНЫХ ГРАММАТИК (*)
УСЛОВИЕ. Заданы две регулярные грамматики GI=(A1,S, Пь Si) и Ог = (Л^2, S, Пг, S2). Регулярной грамматикой называется бесконтекстная грамматика, в которой каждая продукция имеет вид А->-аВ или А-*а, где А, ВеМ, aeS.
ВОПРОС. Верно ли, что Gi и Gz порождают различные языки?
Источник [70]. К этой задаче сводится НЕЭКВИВАЛЕНТНОСТЬ КОНЕЧНЫХ АВТОМАТОВ.
Комментарий. Задача P-SPACE-полна даже в том случае, если |Х| = 2 и Gt— фиксированная грамматика, порождающая 2* (задача НЕУНИВЕРСАЛЬНОСТЬ РЕГУЛЯРНОЙ ГРАММАТИКИ). Общая задача NP-полна, когда [21 = 1 или когда обе грамматики порождают конечные языки (последнее свойство проверяется за полиномиальное время; см., например, [215]). Если Gi — произвольная линейная грамматика, a Gi— фиксированная грамматика, порождающая 2* (задача НЕУНИВЕРСАЛЬНОСТЬ ЛИНЕЙНОЙ ГРАММАТИКИ), то задача становится неразрешимой [237].
[ТАЯ 15] НЕ ЬК(К)-БЕСКОНТЕКСТНАЯ ГРАММАТИКА УСЛОВИЕ. Заданы бесконтекстная грамматика G и положительное целое число К, представленное в унарной записи.
ВОПРОС. Верно ли, что G не является LR(K) -грамматикой (определение см. в [242])?
Источник [242]. Общая сводимость.
Комментарий. При любом фиксированном К задача разрешима за полиномиальное время. Если К представлено в двоичной записи (что и требуется при нашем стандартном кодировании), то задача полна в классе NEXP-TIME и, следовательно, труднорешаема. Вопрос о существовании такого К, что G есть LR(К)-грамматика, неразрешим [239]. Аналогичные результаты имеют место и тогда, когда свойство “LR(K)" заменяется свойством “LL^KY “LC^KY*, “SLR (К)” или любым другим из большего числа свойств (см. указанные выше работы). Однако в случае свойства “LL^KY’, если известно, что для некоторого К' грамматика G обладает свойством LR^K'Y то за полиномиальное время можно выяснить вопрос о существовании такого К, что грамматика G обладает свойством “LL^KY* [241].
[ТАЯ 16] НЕПУСТОТА ETOL-ГРАММАТИКИ (*)
УСЛОВИЕ. Задана ETOL-грамматика G = (N, 2, {61,62,... ..., 6n},S), где N— конечное множество “нетерминальных" символов, 5 — конечное множество “терминальных" символов, SeN — начальный символ, каждое б, представляет собой “таблицу” продукций, переводящих символы множества N J 2 в слова языка (^UE)* (на каждом шаге вывода каждый символ имеющегося в наличии слова заменяется посредством некоторой продукции из заранее выбранной таблицы (см., например, [207])).
ВОПРОС. Верно ли, что язык, порожденный грамматикой G, не пуст?
Источник [275]. К этой задаче сводится НЕУНИВЕРСАЛЬ- НОСТЬ РЕГУЛЯРНОГО ВЫРАЖЕНИЯ.
Комментарий. Задача P-SPACE-полна, даже если G является “EDTOL-грамматикой без в”. Задача NP-полна и в том случае, если G содержит ровно одну таблицу и для каждого символа ровно одну продукцию (т. е. если G есть “EDOL-грамматика"). Для вопроса о том, порождает ли G бесконечный язык, верны аналогичные результаты. Для бесконтекстных грамматик эти задачи разрешимы за полиномиальное время, а для контекстных грамматик — неразрешимы (см., например, [215]).
[ТАЯ 17] ПРИНАДЛЕЖНОСТЬ БЕСКОНТЕКСТНОМУ ЯЗЫКУ с УПРАВЛЯЕМЫМ выводом
УСЛОВИЕ. Заданы бесконтекстная грамматика с управляемым выводом G = (N, 2,П, S) без е to слово хе 2*. (В таких грамматиках все продукции из П имеют вид А -> w(T) (F), где AsN, ще(Уи2*)\е, Т и F— подмножества множества П, указывающие, в зависимости от применимости или неприменимости предыдущей продукции, подмножество в П, из которого должна быть выбрана следующая продукция [456].)
ВОПРОС. Верно ли, что х принадлежит языку, порожденному грамматикой G?
Источник [482]. К этой задаче сводится 3-ВЫП. Отсутствие в обеспечивает принадлежность классу NP.
Комментарий. Задача остается NP-полной даже в том случае, если потребовать, чтобы все продукции А -► w (Г) (Е) из П имели Т = F [525]. Если для всех продукций из П Т = F = П и если допускается применение продукций к пустому слову е, то получается задача принадлежности контекстно свободным языкам, которая разрешима за полиномиальное время (см., например, [215]).
[ТАЯ 18] ПРИНАДЛЕЖНОСТЬ ЯЗЫКУ КВАЗИРЕАЛЬНОГО ВРЕМЕНИ
УСЛОВИЕ. Заданы бесконтекстные грамматики Gi, G2 и G3, имеющие общий терминальный алфавит 2, второй конечный алфавит Г, функция А: 2 -> Г и слово w е Г*.
ВОПРОС. Верно ли, что ш принадлежит “языку квазиреаль- ного времени”, определяемому грамматиками Gi, G2, G3 и функцией А, т. е. языку L = А (£] П L2 П А3), состоящему из всех слов из Г* вида A(xi)A(x2) ... h\XkY таких, что xi, х2 ... х* е Ai Q ПА2ПА3, где Au L2 и А3— языки, порождаемые грамматиками Gi, G2 и G3 соответственно?
Источник [230, 188]. К этой задаче сводится 3-ВЫП.
Комментарий. Если А— взаимно-однозначная функция, то задача решается за полиномиальное время (стандартным методом разбора бесконтекстных грамматик; см., например, [215]). Задача остается NP-полной и тогда, когда А3 совпадает с 2*, т. е. А = А(АХП А2) [188], но разрешима за полиномиальное время, если А2 и А3 совпадают с 2*, т. е. А = A(At).
[ТАЯ 19] ПРИНАДЛЕЖНОСТЬ ETOL-ЯЗЫКУ (*)
УСЛОВИЕ. Заданы ETOL-грамматика G = (А, 2, {бь 62, .., ..., бд}, S) и слово w е 2*.
ВОПРОС. Принадлежит ли слово w языку, порождаемому грамматикой G?
Источник [525]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача P-SPACE-полна, даже если G есть “ETOL-грамматика без в” [275]. Если G фиксирована, то задача принадлежит классу NP, в этом случае существуют конкретные грамматики, для которых она NP-полна. Последний факт имеет место даже тогда, когда G есть “TOL-грамматика” (т. е. не имеет нетерминальных символов) и не содержит в [525]. Задача разрешима за полиномиальное время для фиксированной G, если G есть “EDTOL-грамматика” [276] либо если G есть “EOL-грамматика” (т. е. имеет только одну таблицу) [404].
[ТАЯ 20] ПРИНАДЛЕЖНОСТЬ КОНТЕКСТНОМУ
языку (*)
УСЛОВИЯ- Заданы контекстная грамматика G = (N, 2, П, 5") и слово »е2* (в контекстной грамматике каждая продукция имеет вид х-*у, где х и у— непустые слова над алфавитом WUS и |у|>|х|).
ВОПРОС. Принадлежит ли w языку, порожденному грамматикой G?
Источник [310]. К этой задаче сводится ДОПУСКАЕМОСТЬ ЛИНЕЙНО ОГРАНИЧЕННЫМ АВТОМАТОМ.
Комментарий. Задача P-SPACE-полна даже для детерминированных контекстных грамматик. Более того, существуют конкретные контекстные грамматики, для которых задача NP-полна. Существует также конкретная “линейная по времени" контекстная грамматика, для которой задача NP-полна [49]. (Для любой конкретной контекстной грамматики задача принадлежит классу NP.)
[ТАЯ 21] ПРИНАДЛЕЖНОСТЬ ЯЗЫКУ, ОПРЕДЕЛЯЕМОМУ ДРЕВОВИДНЫМ ПРЕОБРАЗОВАТЕЛЕМ (*)
УСЛОВИЕ. Заданы “преобразователь сверху-вниз с древовидной структурой” М и его выходной алфавит Г, бесконтекстная грамматика G и слово ше Г (детали см. в указанных ниже работах).
ВОПРОС. Принадлежит ли w “результату” “поверхностного множества", определяемого преобразователем М и грамматикой G?
Источник [446]. Общая сводимость.
Комментарий. Задача P-SPACE-полна. Для фиксированных М и G она принадлежит классу NP. Существуют конкретные М и G, для которых задача NP-полна [460]. Если потребовать линейности преобразователя М, то общая задача разрешима за полиномиальное время. Если М — “детерминированный” преобразователь, то для фиксированного М задача разрешима за полиномиальное время [447].
АП. ОПТИМИЗАЦИЯ ПРОГРАММ
АПЛ. Генерация кода программы
[ОП 1] ДОСТАТОЧНОСТЬ ЧИСЛА РЕГИСТРОВ
УСЛОВИЕ. Заданы ориентированный ациклический граф G = = (У, Л), положительное целое число К.
ВОПРОС. Существует ли вычисление для G, использующее не более К регистров? Иными словами, существуют ли упорядочение Di, Ua, ..., ип вершин множества V, где п=|У|, и последовательность So, SiSn подмножеств множества V, такие, что: (1) |S,|^K для всех I; (2) So— пусто, S„ содержит все вершины из графа G со степенью захода 0; (3) для всех i, 1 ^ 1^ п. ut е S,-, S,\ {uj s Si-! и Si-i содержит все вершины и, такие, что (о,, и)е Л?
Источник [477]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной даже в том случае, если степени выхода всех вершин графа G не превосходят 2. Вариант этой задачи, в котором допускается “перевычисление" (т. е. ищутся последовательности щ, Уг, ..., ит и So, Si, ..., Sm без априорной оценки числа /п и вершины в первой последовательности могут повторяться, но все остальные сформулированные выше условия выполняются), является NP-трудным, и его принадлежность классу NP не установлена.
[ОП 2] ДОПУСТИМОСТЬ НАЗНАЧЕНИЯ РЕГИСТРОВ
УСЛОВИЕ. Заданы ориентированный ациклический граф G = = (У, Л), положительное целое число К и назначение регистров f: V->{/?,. R,. .... ReR.
ВОПРОС. Существует ли вычисление для G, использующее указанное назначение регистров? Иными словами, существуют ли упорядочение щ, и2ип вершин из множества V и последовательность Sb S2, ..., 8п подмножеств множества V, удовлетворяющие всем условиям, сформулированным в задаче ДОСТАТОЧНОСТЬ ЧИСЛА РЕГИСТРОВ, и дополнительному условию, заключающемуся в том, что для всех / и / (1 ^ j ^ К, 1 ^ / ^ п) существует не более одной вершины и е Sb такой, что f(u) — RR
Источник [477]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной даже в том случае, если степени выхода всех вершин графа G не превосходят 2.
[ОП 3] ДОСТАТОЧНОСТЬ ЧИСЛА РЕГИСТРОВ ДЛЯ РЕАЛИЗАЦИИ ЦИКЛОВ
УСЛОВИЕ. Заданы множество V параметров циклов, длина цикла N е Z+, для каждого параметра и начальное время s(o)eZo" и продолжительность /(o)eZ+, целое положительное число К.
ВОПРОС. Достаточно ли К регистров для запоминания параметров циклов? Иными словами, существует ли такое назначение регистров f; У-*{1,2К}, что если f(u) = f(o) для не
которых и, у е У, и ^ у, то из неравенства s(u)^s(u) следует, что s(m)+ /(u) ^ s(u) и s(u)+/(и) (mod^V) ^ $(«)?
Источник [153]. К этой задаче сводятся ОБРАЗУЮЩИЕ ПЕРЕСТАНОВКИ.
Комментарий. Для любого фиксированного К задача разрешима за полиномиальное время.
ГОП 4] ГЕНЕРАЦИЯ КОДА НА МАШИНЕ С ОДНИМ РЕГИСТРОМ
УСЛОВИЕ. Заданы ациклический ориентированный граф G = = (У, Л), у которого степени выхода всех вершин не превосходят 2, и положительное целое число К.
ВОПРОС. Существует ли программа в кодах ЭВМ, содержащая не более К команд, вычисляющая на- машине с одним регистром все корневые (т. е. со степенью захода равной 0) вершины графа G, причем в начальный моменте памяти находятся все “листья" графа G (т. е. вершины со степенью выхода равной 0) и в программе используются только команды “загрузить”, “запомнить" и “выполнить"? (Команда “загрузить” передает в регистр определенную вершину. Команда “запомнить" передает вершину из регистра в память. Новая вершина и может быть вычислена с помощью команды “выполнить” при условии, что в регистре находится такая вершина и, что (и, и)е еА, а любая другая вершина и', для которой (и, и')еА, находится в памяти. В результате исполнения команды “выполнить” вершина и, находящаяся в регистре, заменяется вершиной о. Вычисление новой вершины не закончено, пока она не помещена в память с помощью операции “запомнить”.)
Источник [61]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной даже в том случае, если все вершины, имеющие степень захода больше 1, соединены ребрами только с листьями графа G [10]. Задача разрешима за полиномиальное время, если G — ориентированный лес [480].
[ОП 5] ГЕНЕРАЦИЯ КОДА С НЕОГРАНИЧЕННЫМ ЧИСЛОМ РЕГИСТРОВ
УСЛОВИЕ. Заданы ориентированный ациклический граф G = = (У, Л), не имеющий вершин со степенью выхода большей 2, разбиение множества А на такие два непересекающихся множества L и R, что любые две дуги, исходящие из одной вершины, принадлежат различным множествам, положительное целое число К.
ВОПРОС. Существует ли программа вычисления всех корневых вершин графа G, отвечающая следующим требованиям: (1) программа состоит не более чем из К команд, (2) программа начинает вычисление с листьев графа G, занесенных в память, (3) в программе используются только команды вида “г,->-г/" или “ri*~ri op г/", i, jgZ+ (где вершина у со степенью выхода, равной 2, и исходящими дугами (у, и)е L и (и, w)^ R может быть вычислена только с помощью команды ц^-ц op гь в которой п содержит и, а г/ содержит о}?
Источник [10]. К этой задаче сводится МНОЖЕСТВО ВЕРШИН, РАЗРЕЗАЮЩИХ КОНТУРЫ.
Комментарий. Задача остается NP-полной даже в том случае, если только листья графа G имеют степень захода, превосходящую 1. “Коммутативный” вариант задачи, в котором допускаются также команды вида “rt-^r, op п", является NP-полным [11]. Если G — лес или если допускаются трехадресные команды вида “ri-*-fj op rk, то обе задачи могут быть решены за полиномиальное время [10].
[ОН 6] ГЕНЕРАЦИЯ КОДА ДЛЯ ПАРАЛЛЕЛЬНЫХ ПРИСВАИВАНИЙ
УСЛОВИЕ.Заданы множество переменных V ={иь и2, •.., ип], множество операторов присваивания А = {Аь А2, ..., Ап}, где каждое Ai имеет вид “vl^op(Bi)" (Bi — некоторое подмножество множества V), и положительное целое число К- ВОПРОС. Существует ли такое упорядочение Vjkd, иЛ(2), • • ■ ..., и^п-) множества V, для которого имеется не более К значений 1, 1 ^ I ^ п, таких, что для некоторого / > i имеет место принадлежность е Вя^?
Источник [476]. К этой задаче сводится МНОЖЕСТВО ВЕРШИН, РАЗРЕЗАЮЩИХ КОНТУРЫ.
Комментарий. Задача остается NP-полной и в том случае, если | Bi | ^ 2 для всех В,.
[ОП 7] ГЕНЕРАЦИЯ КОДА С АДРЕСНЫМИ ВЫРАЖЕНИЯМИ
УСЛОВИЕ. Заданы последовательность команд / = (/ь/2, ... ..., 7П), для каждой команды i;Gl выражение g(IA вида “I”, “Ij + k", “Ij — к” или “к", где /,е I и ke Z+, а также положительные целые числа В, С и М.
ВОПРОС. Можно ли команды из последовательности / запомнить в виде одно- и двухбайтовых команд, так чтобы общая память, используемая при этом, не превзошла М? Иными словами: определим функцию h(I/), полагая ее равной f(//), f(h)±k или к, в зависимости от того, равняется ли g(If) соответственно Ij, Ij ± к или к; существует ли такое взаимно-однозначное отображение f; /—*-{!, 2, .... М}, что f(h)<f(Ij) при z < j и либо — Genii')—h.(I^<B, либо f(IA+l не принадлежит области значений [?
Источник [511]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной для некоторых конкретных значений В и С, например равных соответственно 128 и
127 (можно взять также и гораздо меньшие значения). Задача разрешима за полиномиальное время, если в условии нет “па- талогических” выражений (детали см. в указанной выше работе) .
[ОП 8] ГЕНЕРАЦИЯ КОДА ПРОГРАММЫ С НЕФИКСИРОВАННЫМИ АДРЕСАМИ ПЕРЕМЕННЫХ
УСЛОВИЕ. Заданы последовательность команд / = (/1,/г, ... ..., Л), конечное множество переменных V, назначение g-. !-*■ -► / (J V и положительные целые числа В и М.
ВОПРОС. Можно ли команды из /, рассматриваемые как одно- и двухбайтовые слова, с переменными между ними так расположить в памяти, что используемый при этом объем памяти не превзойдет М? Иными словами, существует ли такое взаимнооднозначное отображение f: /(JV-^{1,2, ..., М}, что (1) при t< / f(h)<f(fi) и (2) для всех i, 1 ^ i ^ п, либо |f(//) — — f(S(A))|<B, либо f(A) + 1 не принадлежит области значений функции f?
Источник [450]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной даже для некоторых фиксированных В, например для В = 31. Если V пусто, то задача разрешима за полиномиальное время.
[ОП 9] ВЫЧИСЛЕНИЕ СЕМЕЙСТВА
УСЛОВИЕ. Заданы набор С подмножеств конечного множества А и положительное целое число I.
ВОПРОС. Существует ли последовательность
S = {z1*-x1 U Уь z2«-x2 U У22t<-Xf (J у^, j^J,
операторов “объединения”, где каждое из Xi и у, есть либо (а) для некоторого а е А, либо г^ для некоторого h < i, причем для всех i, 1 ^ i ^ /, Xi и yi не пересекаются и для каждого подмножества сеС найдется такое z,, X^i^j, что соответствующее множество совпадает с с?
Источник [152]. К этой задаче сводится ВЕРШИННОЕ ПОКРЫТИЕ (см. разд. 3.2.2).
Комментарий. Задача остается NP-полной даже в том случае, если |с|^3 для всех се С. Аналогичная задача, в которой не требуется, чтобы Xi и yt не пересекались, также NP-полна при тех же ограничениях.
[ОП 10] ОПТИМИЗАЦИЯ ЧИСЛА БИТ МИКРОКОДА
УСЛОВИЕ. Заданы конечное множество “микрокоманд” А, набор С = {ci, с2ст} подмножеств множества А (подмножество множества микрокоманд называется микроинструкцией) и положительное целое число К.
ВОПРОС. Существует ли для данного набора микроинструкций /(-битовый формат? Иными словами, существует ли такое разбиение множества А на непересекающиеся подмножества А(, Аг, ..., Ап, что ни одна пара подмножеств А, и С/ не содержит более одного общего элемента и
Е Г logzdAJH- 1)П^К? <-i
Источник [451]. К этой задаче сводится 3-С.
А11.2. Программы и схемы
[ОП 11] НЕЭКВИВАЛЕНТНОСТЬ ПРОГРАММ С МАССИВАМИ
УСЛОВИЕ. Заданы конечные множества X, 0 и R переменных, операторов и переменных массивов соответственно, две программы Pt и Р2, составленные из команд следующего вида: Хд-*"6x1X2 ... х, (“выполнить”), а[х/]-«-Х/ (“изменить”), х,*- *-а[х/] (“выбрать”), где Xi s X, 6 е 0, г —число аргументов оператора 6, а е R, а также конечное множество значений V и интерпретация каждого оператора 9 е 0 как функции из V' в V.
ВОПРОС. Можно ли придать переменным из X такие начальные значения из V, что для некоторой переменной из X программы дадут различные конечные значения? (Детали о работе таких программ см. в [104].)
Источник [104]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной даже в том случае, если в программах отсутствуют команды “выполнить" и имеется только одна переменная массива. Если отсутствуют команды "изменить” или команды “выбрать” или отсутствуют переменные массивов, то задача разрешима за полиномиальное время.
[ОП 12] НЕЭКВИВАЛЕНТНОСТЬ ПРОГРАММ С ПРИСВАИВАНИЯМИ
УСЛОВИЕ. Заданы конечное множество переменных X, две программы Р\ и Р2, представляющие собой последовательности команд присваивания, имеющих вид “х0-<- если Xi = х2то х3 иначе
х4’’, где Х( — переменные из X, и конечное множество значений V.
ВОПРОС. Можно ли всем переменным из X придать такие начальные значения из V, что для некоторой переменной из X программы дадут различные конечные значения? (Детали о работе таких программ см. в [104].)
Источник [104]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной даже в том случае, если V = {0, 1). Она содержится в качестве частного случая во многих задачах о неэквивалентности простых программ и, следовательно, доказывает, что они NP-трудные [104, 528].
[ОП 13] НЕЭКВИВАЛЕНТНОСТЬ ПРОГРАММ С КОНЕЧНОЙ ПАМЯТЬЮ (*)
УСЛОВИЕ. Заданы конечное множество переменных X, конечный алфавит S, две программы Pi и Р^ каждая из которых представляет собой последовательность команд 1Х, /2, ..., 1,п (Рх и Р2 не обязательно имеют одинаковую длину т). Команды имеют вид “прочитать х", “записать и", “Xi*-u", “если Ui = uk, перейти к I”, “принять”, “стоп”, где х, е X, и/, «к е eXUSU{$} и Im — команда вида “стоп” или “принять”.
ВОПРОС. Существует ли такое слово w е 5*, что, начав работать на этом слове, программы Pi и Р2 дадут различные результаты? (Детали о работе программ такого типа см. в [274].)
Источник [274]. К этой задаче сводится ДОПУСКАЕМОСТЬ ЛИНЕЙНО ОГРАНИЧЕННЫМ АВТОМАТОМ.
Комментарий. Задача P-SPASE-полна даже тогда, когда Р2 — фиксированная программа, не содержащая команд типа записать и, следовательно, не дающая результата. В указанной выше работе приведено много специальных случаев этой задачи и различных ее вариантов, которые или P-SPACE-полны или еще труднее.
[ОП 14] НЕЭКВИВАЛЕНТНОСТЬ ПРОГРАММ БЕЗ ВЛОЖЕННЫХ ЦИКЛОВ
УСЛОВИЕ. Заданы конечное множество переменных X, подмножество входных переменных Y г X, выделенная выходная переменная х0, две программы с циклами, но без вложенных циклов Pi и Р2 (т. е. последовательности команд вида “х*-у”, “x-t-x+1”, “x-t-О”, “цикл х” и “конец", где х, уеХ, причем вслед за командой цикл, команда конец должна предшествовать следующей команде цикл).
ВОПРОС. Существует ли такое отображение f: У Z+, сопоставляющее входным переменным начальные значения, что в результате работы обеих программ выходная переменная х0 получает разные значения? (Подробности о программах этого типа см. в указанных ниже работах.)
Источник [88, 516]. К этой задаче сводится 3-ВЫП. Во второй работе доказана принадлежность задачи классу NP.
Комментарий. Если допустить вложенные циклы (даже глубины 2), то задача становится неразрешимой [382]. Если не допускаются циклические команды, то задача разрешима за полиномиальное время [516]. Основной результат обобщен в работе [233].
[ОП 15] НЕЭКВИВАЛЕНТНОСТЬ ПРОСТЫХ ФУНКЦИЙ УСЛОВИЕ. Заданы множество X переменных, два выражения f и g над X. Каждое выражение есть композиция функций из следующего набора: “s(x) = x + 1”, “р^ = max [х — 1, 0}”, “pluslx, у)=х-Уу”, “div(x, /)=Гх/Г}", mod(x, f)=x — t • Гх//Ц”, uw (х, у) = если у = 0 то х иначе 0" и “выбрать р (хр х2хп) = = х” где х, у, х^Х; i, п, teZ* и i^n.
ВОПРОС. Существуют ли такие неотрицательные целые значения переменных из X, для которых выражения fug различны? Источник [516]. К этой задаче сводится НЕЭКВИВАЛЕНТНОСТЬ ПРОГРАММ БЕЗ ВЛОЖЕННЫХ ЦИКЛОВ.
Комментарий. Задача остается NP-полной, если { и g определяются только в терминах функции w^x, у), или в терминах функций plus и mod, или в терминах функций plus и р [346]. NP-полны также варианты этой задачи, в которых { и g определяются только в терминах функций plus и “sub 1 (х) — — тах$, 1—х}” или только в терминах функций “ minus (х, у) = = тах{0, х — у\' (где х, у е X [J Z+) [88].
[ОП 16] СИЛЬНАЯ НЕЭКВИВАЛЕНТНОСТЬ СХЕМ ЯНОВА УСЛОВИЕ. Заданы конечные множества F и Р, состоящие соответственно из символов функций и символов предикатов, одна переменная х и две схемы Янова над F, Р и х. Схемой Янова называется последовательность 1Х, К1т команд вида “х-<—Цх)”, “если р(х) то перейти к 1/ иначе перейти к U” и “стоп", где / е F и реР.
ВОПРОС. Верно ли, что две заданные схемы Янова не являются строго эквивалентными? Иными словами, существуют ли область определения D, для каждой функции f^F интерпретация в виде отображения f: D-*D, для каждого предиката
реР интерпретация в виде отображения р; D-+{T,F}, начальное значение хое S переменной х, такие что либо обе заданные схемы останавливаются с различными конечными значениями переменной х, либо одна останавливается, а другая — нет?-
Источник [88,461]. К этой задаче сводйтся 3-ВЫП. Принадлежность классу NP доказана во второй работе.
Комментарий. Задача остается NP-полной даже в том случае, если ни одна из программ не содержит циклов, a Pi— тривиальная программа, оставляющая значение х неизменным. Задача о сильной эквивалентности схем Янова с двумя переменными неразрешима, даже если предположить, что |Е| = |Р|=1 [363]. Аналогичные результаты о других свойствах, таких, как “слабая эквивалентность”, “дивергенция”, “остановка" и т. д., см. в работах [234] й [240]. За полиномиальное время может быть проверена сильная эквивалентность “сильно свободных” схем Янова, т. е. таких схем, в которых между двумя последовательными проверками предикатов применяется хотя бы одна функция (см. [88]). Задача о сильной эквивалентности “свободных" схем Янова в настоящее время открыта.
[ОП 17] СИЛЬНАЯ НЕЭКВИВАЛЕНТНОСТЬ МОНАДНЫХ РЕКУРСИВНЫХ СХЕМ
УСЛОВИЕ. Заданы конечные множества F и Р, состоящие из символов функций и символов предикатов соответственно, множество G “определенных” символов функций (не пересекающееся с F^, выделенный символ f0 е G и две линейные монад- ные рекурсивные схемы Si и S2 (такая схема для каждой f е G представляет собой набор утверждений вида “fx = если рх то ах иначе рх, где реР, a, pe(FU G)*, причем аир содержат по крайней мере одно вхождение символа из множества G). ВОПРОС. Существуют ли множество определения D, интерпретация каждого feF в виде отображения f: D->D, интерпретация каждого реР в виде отображения р-. D^-{T,F} и начальное значение х0еО, такие, что два значения fo(xo), определяемые согласно рекурсивным схемам Si и S2, либо различны, либо одно из них определено, а другое нет..
Источник [88]. К этой задаче сводится СИЛЬНАЯ НЕЭКВИВАЛЕНТНОСТЬ СХЕМ ЯНОВА. Доказательство принадлежности задачи классу NP нетривиально.
Комментарий. Задача остается NP-полной и в том случае, если одна из схем тривиально полагает fo(*) = *> а другая “линейна справа”, т. е. а и р содержат определенный символ (из
множества G) в виде крайней справа буквы. В указанной выше работе приведены другие результаты об NP-полноте и NP-трудности задач о линейных монадных рекурсивных схемах.
[ОП 18] ОТНОШЕНИЕ НЕВКЛЮЧЕНИЯ СВОБОДНЫХ В-СХЕМ
УСЛОВИЕ. Заданы две свободные В-схемы Si и S2. (Свободной В-схемой называется корневой ориентированный ациклический граф G = (V, А), часть вершин которого имеют степень выхода, равную 0 (листья), а остальные (тестовые) — степень выхода 2, причем дуги, исходящие из тестовой вершины, помечены метками L и В.) Кроме того, зафиксировано: (1) множество В символов булевских переменных и каждой тестовой вершине и сопоставлена такая метка /(и)еВ, что никакие две тестовые вершины графа, расположенные на общем ориентированном пути, не имеют одинаковых меток; (2) множество F-символов функций, причем каждому листу о е V сопоставлена метка Z(o)eBU{52}.
ВОПРОС. Верно ли, что схема S[ не “содержится” в схеме S2? Иными словами, существует ли такое отображение /: Bi(JB2-> -4L.RL что если два пути из корневых вершин графов Gi и G2 в листья этих графов, образованные согласно правилу “из тестовой вершины выход по дуге с меткой /(/(у))”,— заканчиваются в листьях, помеченных символами ft и f2 соответственно, то ft ф f2 и ft ф й?
Источник [126]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача о “сильной неэквивалентности свободных В-схем (т. е. неэквивалентности в том же смысле, что и выше, но с одним условием — ft Ф fi) остается открытой. Если же одна из схем Sj или S2 есть упорядоченная В-схема, то последняя задача разрешима за полиномиальное время. Открытый вариант задачи эквивалентен по Тьюрингу задаче о сильной неэквивалентности свободных схем Янова (см. задачу СИЛЬНАЯ НЕЭКВИВАЛЕНТНОСТЬ СХЕМ ЯНОВА).
[ОП 19] НЕСВОБОДНОСТЬ СХЕМ ПРОГРАММ БЕЗ ЦИКЛОВ
УСЛОВИЕ. Заданы конечные множества F и Р, состоящие из символов функций и символов предикатов соответственно, множество переменных X, монадная без циклов схема программ S над F, Р и X. Такая схема состоит из последовательности команд h, /2Im вида “х-*-f(y)", если р(х) то перейти к // иначе перейти к Ik и “стоп", где хеХ, fe F и реР, ив соответствующем “графе переходов" не должно быть ориентированных циклов.
ВОПРОС. Верно ли, что схема S несвободна? Иными словами, существует ли в графе переходов, соответствующем схеме S, ориентированный путь, вдоль которого не может пройти ни одно вычисление по программе S, вне зависимости от того, какая интерпретация придается функциям из F, предикатам из Р и какие начальные значения придаются переменным из X?
Источник [88]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной для |Х| = 2. Если |Х| = 1, то она разрешима за полиномиальное время. Если допускаются циклы, а [XI произвольно, то задача неразрешима [420].
[ОП 20] ПРОГРАММЫ С ФОРМАЛЬНО РЕКУРСИВНЫМИ ПРОЦЕДУРАМИ
УСЛОВИЕ. Заданы конечное множество А идентификаторов процедур, алголоподобная программа Р, содержащая описание процедур из А, и обращение к ним (подробности см. в работе, указанной ниже).
ВОПРОС. Верно ли, что некоторая процедура из А формально рекурсивна в программе Р (в смысле работы [320])?
Источник [533]. К этой задаче сводится 3-ВЫП.
Комментарий. В указанной работе приведены близкие результаты о задачах, в которых спрашивается: “Обладает ли программа Р свойствами “формально самый последний", “корректность формальных параметров", “формальное макросвойство и др?"
А12. РАЗНОЕ
[РАЗ 1] СООТНОШЕНИЕ «МЕЖДУ*
УСЛОВИЕ. Заданы конечное множество А и набор упорядоченных троек (а, Ь, с) различных элементов из множества А.
ВОПРОС. Существует ли такая взаимно-однозначная функция f; А ->-{1,2, .... |А|), что для каждой тройки (а, Ь, с) выполнено одно из свойств: либо f(a) < f(b) < f(c) ,ибо f(c) < f(6) < <fW
Источник [403]. К этой задаче сводится РАСЩЕПЛЕНИЕ МНОЖЕСТВА.
[РАЗ 2] ЦИКЛИЧЕСКОЕ УПОРЯДОЧЕНИЕ
УСЛОВИЕ. Заданы конечное множество А, набор С упорядоченных троек (а, Ь, с) различных элементов из А.
ВОПРОС. Существует ли такая взаимно-однозначная функция /; Л—»- {1, 2, .,,, |А|}, что для каждой тройки (а, Ь, с)еС
выполнено одно из свойств: либо f (а) < f(6) < [(c), либо f (6) < < f (с) < f (а), либо f (с) < f(а)< /(6) ?
Источник [138]. К этой задаче сводится 3-ВЫП.
[РАЗ 3] НЕВЫЖИВАЕМОСТЬ СЕТЕЙ ПЕТРИ СО СВОБОДОЙ ВЫБОРА
УСЛОВИЕ. Задана сеть Петри Р = (п, Мо, Т), где n е Z+, Л!о есть n-мерный вектор с целыми неотрицательными координатами, Т— множество переходов вида <а,Ь), где а и b— это п-мерные (0—1)-векторы, причем предполагается выполненным свойство “свободы выбора", состоящее в том, что для каждой пары <а, b)^ Т либо у а имеется ровно одна отличная от нуля координата, либо во всех остальных переходах <с, d>e е Т вектор с имеет 0 во всех тех позициях, в которых а имеет 1. ВОПРОС. Верно ли, что Р не “выживает"? Иными словами, существует ли такой переход (G 7 и такая последовательность о переходов из Т, что для любой последовательности т переходов из Т последовательность от! не “уничтожающая" в Afo? (Последовательность <ai,&i>, <02,6з><Om, 6т> называется уничтожающей в Мо тогда и только тогда, когда последовательность Mq, Мь . . . , M2m, в которой M2i+1 = M2i— Ui и M2i+2 = M2,+i -j- bi, 0 ^ t < пг, не содержит векторов с отрицательными координатами.)
Источник [272]. К этой задаче сводится 3-ВЫП. Доказательство принадлежности классу NP нетривиально и основано на результатах [193].
[РАЗ 4] ДОСТИЖИМОСТЬ ДЛЯ 1-КОНСЕРВАТИВНЫХ СЕТЕЙ ПЕТРИ (*)
УСЛОВИЕ. Заданы 1-консервативная сеть Петри Р = (п, Мо, Г), т. е. такая сеть, что для каждого перехода <а, 6>е Т векторы а и b имеют одинаковое число единиц, и n-мерный вектор М с неотрицательными координатами. .
ВОПРОС. Верно ли, что в сети Р вектор М достижим из Мо? Иными словами, существует ли такая последовательность <Oi, 6i>, <а2, Ь2), ..., <am,bm) переходов из Т, что последовательность Mo, Mi, ..., M2m, получаемая так же, как в предыдущей задаче, не содержит векторов с отрицательными координатами и M2m = М"?
Источник [272]. К этой задаче сводится ДОПУСКАЕМОСТЬ ЛИНЕЙНО ОГРАНИЧЕННЫМ АВТОМАТОМ.
Комментарий. Даже в том случае, когда рассмотренная сеть Р является сетью Петри со свободой выбора, задача P-SPACE-
полна. Для произвольных сетей Петри разрешимость задачи не установлена, но известно, что для ее решения необходима по крайней мере экспоненциальная память [353]. Аналогичный результат имеет место для задачи о “доминировании": “Существует ли достижимый из Мо вектор М', у которого каждая координата не меньше соответствующей координаты вектора М”? Близкая задача о “/(-ограниченности” (заданы сеть Р и целое число К, верно ли, что не существует вектора, достижимого из /Ио, У которого все координаты превосходят /(?) P-SPACE-полна как для произвольных сетей Петри, так и для 1-консервативных сетей со свободой выбора. Дополнительные детали и близкие результаты см. [272, 233].
[РАЗ 5] ПРЕДСТАВИМОСТЬ КОНЕЧНОЙ ФУНКЦИИ (*) УСЛОВИЕ. Заданы конечное множество А; набор F функций f: А->-А и выделенная функция h\ АА.
ВОПРОС. Может ли функция h быть представлена в виде композиции функций из семейства F?
Источник [303]. К этой задаче сводится ПЕРЕСЕЧЕНИЕ КОНЕЧНЫХ АВТОМАТОВ.
Комментарий. Задача P-SPACE-полна.
[РАЗ 6] РАЗЛОЖЕНИЕ ПОДСТАНОВКИ
УСЛОВИЕ. Заданы подстановка о множества (1, 2, ..., ^} и последовательность Sh S2, ..., Sm подмножеств множества {1,2, .... NV
ВОПРОС. Можно ли представить подстановку о в виде композиции подстановок: о = аь о2 ... ат (где для каждого I, 1 ^ ^ / ^ т, подстановка аг оставляет неподвижными элементы множества {1,2, ..., AQ\S/)?
Источник [153]. К этой задаче сводится ТП-3.
Комментарий. При любом фиксированном N задача разрешима за полиномиальное время.
[РАЗ 7] ДЕКОДИРОВАНИЕ ЛИНЕЙНЫХ КОДОВ
УСЛОВИЕ. Заданы (0 — 1)-матрица А = (а^) порядка тХ«. (О—1)-вектор у = (уь у2, •. •, Ут) и положительное целое число К
ВОПРОС. Существует ли такой (0—1)-вектор x = (xi,х2, ... ..., хп), имеющий не более К отличных от нуля координат, что
п
^xtatj = у /(mod 2) для всех j, 1^/^m?
Источник [38]. К этой задаче сводится 3-С.
Комментарий. Если вектор у нулевой и, следовательно, ищется “кодирующее слово”, у которого вес по Хеммингу не превосходит К, то задача открыта. Вариант задачи, в котором ищется вектор х, содержащий ровно К единиц, является NP-полным даже тогда, когда у фиксирован и равен 0.
[РАЗ 8] КОЭФФИЦИЕНТ ИЗБИРАТЕЛЯ ПО ШЕПЛИ - ШУБИКУ
УСЛОВИЕ. Заданы упорядоченное множество избирателей V={ui,v2Ул}, число голосов wi е Z+ для каждого избирателя Ui е V и квота q е Z+.
ВОПРОС. Верно ли, что избиратель Vi имеет коэффициент по Шепли—Шубину, не равный 0? (Коэффициентом р^ избирателя ueV называется величина (1/п!), умноженная на число таких подстановок л множества {1,2, ..., п}, что
/-1/
Е^щС?, Е (1)><? и v = v„(/).) 1-1<-1
Источник [152]. К этой задаче сводится РАЗБИЕНИЕ. Определение коэффициента избирателя взято из работы Шепли и Шубина [485].
Комментарий. Задача вычисления коэффициента заданного избирателя по [485] является КР-полной, однако методом динамического программирования она может быть решена за псев- дополиномиальное время.
[РАЗ 9] СКОПЛЕНИЯ
УСЛОВИЕ. Заданы конечное множество X, расстояния d (х, y)eZo для каждой пары х, у элементов из X и два положительных целых числа К и В.
ВОПРОС. Существует ли такое разбиение множества X на не- пересекающиеся множества Хь X», ..., X*, что для всех х, у е Xt d(x, у^ ^ В при 1 i А?
Источник [57]. К этой задаче сводится РАСКРАШИВАЕ- МОСТЬ ГРАФА В 3 ЦВЕТА.
Комментарий. Задача NP-полна, даже если К = 3, а все расстояния лежат в интервале [0,1]. При /( = 2 она разрешима за полиномиальное время. Варианты этой задачи, в которых ищутся такие разбиения, что сумма по всем Xi величин max{d(x, у): х, уеХ^ не превосходит В или X d^x, у) ^В х, реХ
для всех Xi, также являются NP-полными (причем последняя задача NP-полна даже при К =2).
[РАЗ 10] ТЕСТ СЛУЧАЙНОСТИ ДЛЯ ПАР (*)
УСЛОВИЕ. Заданы последовательность (xi.yi), (х2,уг), ... .. •, (хп, у^ упорядоченных пар целых чисел, неотрицательное целое число К.
ВОПРОС. Существуют ли не менее К подмножеств S = {1, 2, ... ..., п), для каждого из которых
У I Xt — yt |< £ (Xi — у^IeSxi>»i
Источник [483]. К этой задаче сводится РАЗБИЕНИЕ.
Комментарий. Принадлежность классу NP не установлена. Соответствующая задача перечисления КР-полна, но методом динамического программирования решается за псевдополиномн- альное время.
[РАЗ 11] РАНЖИРОВАНИЕ ПО МАКСИМУМУ ПРАВДОПОДОБИЯ
УСЛОВИЕ. Заданы матрица А = (а</) размером n X л с целыми элементами, которые удовлетворяют соотношению ац^ + a/i=0 для всех t, /е{1,2п}, и положительное целое
число С.
ВОПРОС. Существует ли матрица S = (6//), получаемая из А одновременной перестановкой строк и столбцов, такая, что
У, min (6//, 0} ^ — С? !<«/<»
Источник [442]. К этой задаче сводится МНОЖЕСТВО ДУГ, РАЗРЕЗАЮЩИХ КОНТУРЫ.
Комментарий. Задача NP-полна в сильном смысле.
[РАЗ 12]ДОМИНИРУЮЩЕЕ МНОЖЕСТВО МАТРИЦЫ
УСЛОВИЕ. Заданы (0—1)-матрица М размером «Хм и положительное целое число К.
ВОПРОС. Существует ли в М доминирующее множество, состоящее не более чем из К ненулевых элементов? Иными словами, существует ли такое подмножество С = {1,2 п}Х Х{1,2, ..., п} мощности не более К, что Mi; = 1 для всех (цПеС и если Мц = 1, то существует элемент (/',/')еС. для которого или i = Г, или j = f?
Источник [540]. К этой задаче сводится МИНИМАЛЬНОЕ ПО МОЩНОСТИ МАКСИМАЛЬНОЕ ПАРОСОЧЕТАНИЕ.
Комментарий. Задача остается NP-полной даже в том случае, когда М-верхнетреугольная матрица.
[РАЗ 13] ПОКРЫТИЕ МАТРИЦЫ
УСЛОВИЕ. Заданы матрица А = (а,/) размером п X п с неотрицательными целыми элементами и целое число К.
ВОПРОС. Существует ли такое отображение [: {1,2п^->
-»-{—1, +1}, что
1<М<П
Источник [152]. К этой задаче сводится МАКСИМАЛЬНЫЙ РАЗРЕЗ.
Комментарий. Задача NP-полна в сильном смысле и остается таковой даже в том случае, если требовать положительной определенности матрицы А.
[РАЗ 14] ПРОСТО ОТКЛОНЯЕМЫЕ ДИЗЪЮНКЦИИ
УСЛОВИЕ. Задан набор М m-мерных векторов (М/[1], М, [2], ..., ЛЬ [m]), 1 ^ i ^ п, координаты которых принимают значения 0, 1 или х.
ВОПРОС. Существует ли такое разбиение множества {1,2, ... ..., т} на непересекающиеся подмножества 7, / и такое отображение [: {1,2m}->-{0, 1}, что если Ф обозначает фор
мулу V (М [j] = f (j)), а У - формулу V (М [j] = / (/)), то Ф и W
просто отклоняемы в М"? (Дизъюнкции Ф и У называются просто отклоняемыми в М, если произведение числа таких Mi е М, что Ф и V истинны для Mi, с числом таких Mi е М, что Ф и У ложны для Mi, больше произведения числа таких Мг е М, что Ф истинна, a W ложна для Mi, с числом таких Mi е М, что Ф ложна, а Т истинна для Мь^ Определение понятия “простой отклоняемости" взято из работы [205].
Источник [438]. К этой задаче сводится МАКСИМАЛЬНЫЙ РАЗРЕЗ.
Комментарий. Задача остается NP-полной даже тогда, когда /(/)=! при 1 ^ j ^ tn. Если все МД/] принимают значения 0 или 1, то задача разрешима за полиномиальное время. Другие близкие результаты можно найти во второй из указанных выше работ.
[РАЗ 15] ДЕРЕВО РЕШЕНИЙ
УСЛОВИЕ. Заданы конечное множество объектов X, набор Г^Г^Гг, ..., Гт} бинарных тестов Г,: Х->-{0, 1}, положительное целое число К.
ВОПРОС. Существует ли для X дерево решений с использованием тестов Ti, обладающее внешним путем длины, не превосходящей К? (Деревом решений называется бинарное дерево, в котором каждая “невисячая вершина’’ (не лист) помечена каким-либо тестом из Т, а каждая “висячая вершина” помечена каким-либо объектом из X. При этом предполагается также, что ребро, ведущее от “невисячей вершины’’ к ее левому потомку, помечено 0, а к правому—1, а также если Тц, Otl, Т£1, О£аTtk, О£к—последовательность меток вершин и ребер на некотором пути, ведущем из корня к некоторой “висячей вершине", помеченной объектом х е X, то х — единственный объект, для которого при всех /, 1 ^ / ^ А, выполнено соотношение Т£}(х') = О£[. Общей длиной внешнего пути такого дерева называется сумма по всем листьям числа ребер в пути от корня до этого листа.)
Источник [243]. К этой задаче сводится ТП-3.
Комментарий. Задача остается NP-полной даже в том случае, когда для каждого теста Т, е Т существует не более трех объектов хеX, таких, что ТДх) = 1.
[РАЗ 16] ЛОГИЧЕСКИЙ ПОДГРАФ
УСЛОВИЕ. Задан ориентированный ациклический граф G = = (У, А), имеющий ровно одну вершину s е V со степенью захода, равной нулю; для каждой вершины и е V, степень выхода которой больше нуля, задано значение /(у)е{и, или}, заданы также вес tw(a)E Z+ каждой дуги и целое положительное число К.
ВОПРОС. Существует ли в графе G такой подграф G'= (V', А'), что (1) s е V'\ (2) если и Е V' и f(w) = и, то все дуги (из множества А), исходящие из и, содержатся в А'; (3) если и е V' и /(у) = или,то по крайней мере одна из дуг (множества А), исходящих из у, принадлежит А'; (4) сумма весов дуг из множества А' не превосходит К"?
Источник [463]. К этой задаче сводится ТП-3.
Комментарий. Задача остается NP-полной и тогда, когда гу(а)=1 для всех йеА [152]. Для корневых деревьев задача решается за полиномиальное время методом динамического программирования.
[РАЗ 17] ВЫЯВЛЕНИЕ НЕИСПРАВНОСТИ В ЛОГИЧЕСКОЙ СЕТИ
УСЛОВИЕ. Заданы ориентированный ациклический граф G = = (И, А) с единственной вершиной у* е V, имеющей степень
выхода 0; отображение /: (V\{и*})-►{/, и, или, не}, такое, что из f(v) = I следует, что степень захода вершины и равна 0, из /(у) = не следует, что степень захода вершины и равна 1, из /(и) = и (или /(о) = или) следует, что степень захода вершины и равна 2; задано также подмножество р" s V.
ВОПРОС. Можно ли любую одиночную неисправность средн вершин из множества V выявить путем экспериментов со входами и выходами? Иными словами, рассмотрим G как логическую сеть со входными вершинами I, выходом и* и логическими элементами для реализации функций и, или, не, помещенными в соответствующие вершины. Можно ли для каждой вершины и е V' и каждого хе{Т, F} сопоставить каждой вершине из / такое значение из множества {Т, £}, что выход сети на этом входе отличается от выхода той же сети, в которой логический элемент в вершине и “застопорился” в состоянии х?
Источник [250]. К этой задаче сводится 3-ВЫП.
Комментарий. Задача остается NP-полной даже тогда, когда V' = V или если V' содержит ровно одну вершину, для которой / (и)= /.
[РАЗ 18] ВЫЯВЛЕНИЕ НЕИСПРАВНОСТИ В ОРИЕНТИРОВАННОМ ГРАФЕ
УСЛОВИЕ. Заданы ориентированный ациклический граф G = = (V, А) (где выделены множество вершин I s V со степенью захода 0 и О £ V — множество вершин со степенью выхода 0), а также положительное целое число К.
ВОПРОС. Существует ли “множество тестов” мощности, не превосходящей К, позволяющее определить любую “одиночную неисправность” в G? Иными словами, существует ли такое подмножество ТеТХО, что |7[^К и для каждой вершины ve V существует пара (щ, иг^е Т, для которой вершина и находится на одном из ориентированных путей из Hi в н2?
Источник [247]. К этой задаче сводится ТП-3.
Комментарий. Задача остается NP-полной, даже если |О|= 1. Вариант этой задачи, в котором ищется множество Т, позволяющее “локализовать” одиночную неисправность (т. е. такое множество тестов Т, что для каждой пары вершин и, и' е V существует тест (ui,H2)e Т, при котором и находится на одном из ориентированных путей из щ в н2, а и' не находится), также является NP-полным для |О|=1. Если К^|/|-|О], то обе задачи решаются за полиномиальное время.
[РАЗ 19] ВЫЯВЛЕНИЕ НЕИСПРАВНОСТИ С ПОМОЩЬЮ ТЕСТОВЫХ ТОЧЕК
УСЛОВИЕ. Заданы ориентированный ациклический граф G = = (У, А) (имеющий ровно одну вершину s е V со степенью захода, равной 0, и ровно одну вершину f е V со степенью выхода, равной 0), а также положительное целое число К.
ВОПРОС. Можно ли любую “одиночную неисправность” в G локализовать с помощью “подсоединения” к дугам из А не более К “тестовых точек" (т. е. существует ли такое подмножество А' = А, что |А'|^ К и множество тестов
Т = ({s) U {«,: («и «г) е А'))Х((0 U {«г: («ь «г) е А'))
обладает тем свойством, что для каждой пары вершин о, о' е е V\{s,/} существует такой тест (щ, иа)еТ, что и находится на одном из ориентированных путей, ведущих от ц1 к иг, а и' не находится)?
Источник [247]. К этой задаче сводится ТП-3.
Комментарий. Варианты этой задачи, в которых требуется ло- каллзовать все одиночные неисправности с использованием не более К “тестовых соединений" или “блокирующих элементов", также являются NP-полными. То же самое верно для задачи отыскания при наличии “тестовых точек", “тестовых соединений" или “блокирующих элементов" такого множества тестов Т, что |Т|^К. (Дальнейшие уточнения см. в указанной выше работе.)
А13. ОТКРЫТЫЕ ЗАДАЧИ
[ОЗ 1] ИЗОМОРФИЗМ ГРАФОВ
УСЛОВИЕ. Заданы два графа Gi = (Vb Ех) и С2 = (У2. £г). ВОПРОС. Верно ли, что графы Gx и Ga изоморфны? Иначе говоря, существует ли такая взаимно-однозначная функция f; У1-И2, что {u, o}e£i тогда и только тогда, когда {/(и), f(u)}e £2?
Комментарий1). Задача остается открытой и в том случае, если Gi и Ga принадлежат к следующим типам графов: регулярные, двудольные, графы линий, графы сравнимостей, графы хорд, графы неориентированных путей (т. е. графы пересечений для множества путей в неориентированном дереве), см. [209, 23, 52, 386]. Задача разрешима за полиномиальное время для планарных графов (см., например, [216]) и для графов интервалов.
Для “транзитивных по дугам’’ кубических графов задача лежит в классе NPQco-NP [386]. Задаче ИЗОМОРФИЗМ ГРАФОВ полиномиально эквивалентны следующие задачи: изоморфизм ориентированных графов, изоморфизм бесконтекстных грамматик [235], изоморфизм конечно-определенных алгебр [300], изоморфизм полугрупп [52], изоморфизм конъюнктивных запросов [67], изоморфизм графа своему дополнению [86], изоморфизм и задача о вычислении числа различных изоморфизмов между Gi и Ga [24,375]. Частный вариант задачи КЛИКА, полиномиально эквивалентный задаче ИЗОМОРФИЗМ ГРАФОВ, указан в работе [304]. Задачи об изоморфизме групп и латинских квадратов могут быть решены за время O(nlogn) [387] и, видимо, проще задачи ИЗОМОРФИЗМ ГРАФОВ.
[ОЗ 2] ПОДГРАФ, ГОМЕОМОРФНЫЙ ФИКСИРОВАННОМУ ГРАФУН
УСЛОВИЕ. Задан граф С=(У, Е).
ВОПРОС. Содержит ли G подграф, гомеоморфный графу Н (т. е. такой подграф G' = (У', Е'), который может быть преобразован в граф, изоморфный графу Н последовательностью замен вершин степени 2 на ребро, соединяющее ее соседей)?
Комментарий ’). Если включить Н в качестве дополнительной переменной в условие задачи, то задача станет NP-полной, поскольку в качестве частного случая она будет содержать задачу ГАМИЛЬТОНОВ ЦИКЛ. Для некоторых фиксированных графов Н (например, если Н — треугольник) задача разрешима за полиномиальное время. Существует ли некоторый фиксированный граф Н, для которого задача NP-полна? Если такого графа не существует, то можно ли указать конкретный граф H~{U, F), для которого NP-полна следующая, близкая по смыслу задача: “Заданы граф G = (У, Е) и взаимно-однозначное отображение /: U -► У. Существует ли подграф G' = (У', Е'^, который указанным выше способом можно преобразовать в граф, изоморфный Н, причем так, чтобы отображение f осуществляло искомый изоморфизм?" Известно, что эта последняя задача также является NP-полной, если граф Н не фиксировать, а включить в условие задачи (поскольку эта задача содержит в качестве частного случая задачу НЕПЕРЕСЕКАЮ- ЩИЕСЯ СОЕДИНЯЮЩИЕ ПУТИ). Для некоторых конкретных графов Н, например “треугольник” и “два различных ребра”, найдено несколько сложных полиномиальных алгоритмов [321, 487]. Не известно, существует ли конкретное целое число
К, такое, что для графа Н, состоящего из К непересекающихся ребер, задача NP-полна.
[ОЗ 3] РОД ГРАФА
УСЛОВИЕ. Заданы граф G=(V, Е), положительное целое число К.
ВОПРОС. Можно ли граф G так вложить в поверхность рода К, что никакие два ребра не пересекутся?
Комментарий. При К = 0 (в этом случае вопрос заключается в планарности графа G) задача разрешима за полиномиальное время (см., например, [213]). Полиномиальный алгоритм для кубических графов и К = 1 анонсирован в работе [123], а в работе [443] предложен полиномиальный алгоритм для произвольных графов и любого фиксированного значения К. Кроме того, для некоторых специальных классов графов, в том числе для клик, кубов и полных двудольных графов, получены простые замкнутые формулы для рода (см., например, [196]).Хотя для произвольных G и К рассматриваемая задача в настоящее время является открытой, тесно связанная с ней задача ПРОДОЛЖЕНИЕ ВЛОЖЕНИЯ (в которой по заданным G, К и вложению подграфа графа G в поверхности рода К требуется выяснить, можно ли продолжить заданное вложение на весь граф)—NP-полна [443]. К числу открытых задач, обобщающих задачу о планарности графа, относятся следующие задачи: “Верно ли, что граф G имеет не более К пересечений, т. е. можно ли G так вложить в плоскость, что будут пересекаться не более К пар ребер?”, “Верно ли, что толщина графа G не превосходит К, т. е. можно ли множество Е так разбить на не- пересекающиеся множества Еь Е2, ..., Ek, к ^ К, чтобы каждый из подграфов G = (V,Ei) был планарен?” К числу близких NP-полных задач относятся задачи ПЛАНАРНЫЙ ПОДГРАФ и ИНДУЦИРОВАННЫЙ ПЛАНАРНЫЙ ПОДГРАФ (см. задачу ИНДУЦИРОВАННЫЙ ПОДГРАФ СО СВОЙСТВОМ П).
[ОЗ 4]ПОПОЛНЕНИЕ ДО ТРИАНГУЛИРОВАННОГО ГРАФА
УСЛОВИЕ. Заданы граф G =(V, Е) и положительное целое число К.
ВОПРОС. Существует ли множество Е' неупорядоченных пар вершин из V, содержащее множество Е и удовлетворяющее условию |Е— Е'\^К, такое, что граф G' = (У, Е')—триангулированный, т. е. такой, что для любого простого цикла, содержащего более трех вершин, существует ребро, не принадлежащее циклу, но соединяющее некоторые две его вершины?
Комментарий. Эта задача эквивалентна неориентированному варианту задачи [ТГ 46] и соответствует минимизации
“заполненности” матрицы при применении исключения по Гауссу к симметрической матрице (см., например, [455]). Другая характеризация транзитивных графов дана в работе [166].
[ОЗ 5] ХРОМАТИЧЕСКИЙ ИНДЕКС
УСЛОВИЕ. Заданы граф G=(.V,E) и положительное целое число К.
ВОПРОС. Верно ли, что хроматический индекс графа G не превосходит К? Иначе говоря, существует ли такое разбиение множества Е на непересекающиеся подмножества Е\, Е^ .... Ец, где к ^ К, что для всех I, \ ^ I ^ к, никакие два ребра из Ei не имеют в G общего конца?
Комментарий. В силу теоремы Визинга [35], хроматический индекс графа G равен либо к, либо А+Е где А —максимум степеней вершин в графе G. Поэтому задача может быть переформулирована так: “Задан граф G. Верно ли, что хроматический индекс графа G равен максимуму степеней вершин?" Для двудольных графов ответ всегда положителен [35], причем существуют полиномиальные алгоритмы для того, чтобы в этом случае построить искомое разбиение (см., например, [133]). Частный класс графов, для которого задача открыта, — кубические графы (т. е. регулярные графы степени 3). В последнем случае задачу можно переформулировать следующим образом: “Задан граф G. Можно ли вершины графа G покрыть простыми непересекающимися циклами, имеющими четное число вершин?” Последняя задача — одна из многих открытых задач, связанных с паритетом. Другая задача этого типа формулируется так: “Задана система С подмножеств конечного множества X. Существует ли такая непустая подсистема С' г С, что каждый элемент хеХ принадлежит четному числу (может быть и не одному) подмножеств из С'?’’ Последняя задача эквивалентна открытой задаче, упомянутой в комментарии к задаче ДЕКОДИРОВАНИЕ ЛИНЕЙНЫХ КОДОВ.
[ОЗ 6] ОСТОВНОЕ ДЕРЕВО С ПАРИТЕТОМ
УСЛОВИЕ. Заданы граф G =(V, Е) и разбиение множества Е на непересекающиеся двухэлементные множества E\,Ei, .... Е^. ВОПРОС. Существует ли в G такое остовное дерево Г — = (У, Е'), что для всех i, 1 ^ i ^ т, выполнено условие: или Ei с Е' или Е, f| Е' = 0?
Комментарий. Эта задача представляет собой типичный частный случай задачи “матроид с паритетом" (см., например, [324]). Последняя задача сама есть обобщение задач о паро- сочетании в графе и о пересечении двух матроидов, которые разрешимы за полиномиальное время (в случае матроида необходимо предположение о существовании полиномиального алгоритма, распознающего в матроиде независимые множества). Близкая задача об “остовном дереве со многими выборами”, в которой ищется такое остовное дерево T = (V, Е'), что в Е' содержится, самое большее, один элемент из каждого множества Ei, представляет собой частный случай задачи о пересечении двух матроидов и, следовательно, может быть решена за полиномиальное время (см. задачу ВЕТВЛЕНИЕ С МНОГИМИ ВЫБОРАМИ).
[ОЗ 7] РАЗМЕРНОСТЬ ЧАСТИЧНОГО УПОРЯДОЧЕНИЯ УСЛОВИЕ. Заданы ориентированный ациклический транзитивный граф G = (V,A) (граф G называется транзитивным, если из того, что (и, у)еЛ и (v,w)^A, следует, что (и, ш)еЛ), а также положительное целое число А ^ | У|2.
ВОПРОС. Существует ли набор, включающий не более К линейных упорядочений множества V, такой, что (и, v)eA тогда и только тогда, когда и меньше и в смысле каждого из заданных упорядочений?
Комментарий. При К = 2 задача решается за полиномиальное время [327]. Для произвольного К и для фиксированного К ^ 3 в настоящее время она является открытой.
[ОЗ 8] РАСПИСАНИЕ С ОТНОШЕНИЕМ ПРЕДШЕСТВОВАНИЯ ДЛЯ ТРЕХ ПРОЦЕССОРОВ
УСЛОВИЕ. Заданы множество Т заданий единичной длительности, частичный порядок <• на множестве Т и директивный срок D е Z+.
ВОПРОС. Можно ли составить такое расписание выполнения заданий из множества Г на 3 процессора, что выполняются все условия предшествования и директивный срок D не будет нарушен? Иными словами, существует ли такое расписание а: Т{О, 1, ..., D—1], что соотношение t<-t' влечет неравенство а(0 < о(/') и для любого I, 0 ^ i ^ D— 1, имеется не более трех заданий /е7, таких, что <т(0 = i?
Комментарий. Аналогичная задача для двух процессоров решается за полиномиальное время [131,85], даже когда каждое задание имеет индивидуальный директивный срок и момент поступления [147]. Если число процессоров входит в условие как параметр,то задача является NP-полной [518]. Дополнительные
подробности указаны в комментарии к задаче РАСПИСАНИЕ С ОТНОШЕНИЕМ ПРЕДШЕСТВОВАНИЯ. Не известно, существует ли конкретное значение К, для которого вариант этой задачи с К процессорами NP-полон.
[ОЗ 9] ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
УСЛОВИЕ. Заданы целочисленные векторы К = (ц<[1], Ui [2]и, [n]), 1 ^ z ^ tn, D =(di, dz, ..., dm), C = = (ch Ci cn) и целое число В.
ВОПРОС. Существует ли такой вектор X = (xi, Xiх„) с рациональными координатами, что для всех i, 1 ^ z ^ т, выполнены неравенства Vi-X ^ di и С-Х ^ S?
Комментарий. Задача лежит в пересечении NP f) co-NP (принадлежность классу co-NP следует из фундаментальной теоремы двойственности линейного программирования). Для любого фиксированного пг она разрешима за полиномиальное время. Имеется много вариантов задачи линейного программирования, полиномиально эквивалентных ей (см., например, [448]). Один из них получается, если из условия изъять вектор С, а из вопроса — неравенство СХ^В (см. также [412]). Примеры задач о потоках в сетях, полиномиально эквивалентных задаче ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ, упомянуты в комментариях к задачам НЕОРИЕНТИРОВАННЫЙ ПОТОК С НИЖНЕЙ ОЦЕНКОЙ, ПОТОК В СЕТИ С ОГРАНИЧЕНИЯМИ НА ПУТИ и ДВУХПРОДУКТОВЫЙ ЦЕЛОЧИСЛЕННЫЙ ПОТОК. Обобщение задачи ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ— задача “линейная дополнительность" хотя и лежит в классе NP, но в настоящее время остается открытой) [397].
[03 10] АБСОЛЮТНАЯ УНИМОДУЛЯРНОСТЬ
УСЛОВИЕ. Задана матрица М размером тХл с элементами из множества {—1,0, 1}.
ВОПРОС. Верно ли, что М — не вполне унимодулярная матрица? Иными словами, существует ли в М квадратная подматрица, определитель которой не принадлежит множеству {-1,0,1}?
Комментарий. Задача открыта и в том случае, когда все элементы матрицы М принадлежат множеству {0, 1). Значение вполне унимодулярных матриц для целочисленного программирования обсуждается, например, в работе [324] и книге [161]).
[03 11] СОСТАВНОЕ ЧИСЛО
УСЛОВИЕ. Задано положительное целое ^исло N.
ВОПРОС. Существуют ли такие целые числа шип (пг, п > 1), что N = т-п^
Комментарий. Задача лежит в пересечении NP(]co-NP [434]. Несмотря на то что для ее решения не известно полиномиального алгоритма, известен алгоритм, работающий полиномиальное время в предположении истинности “расширенной гипотезы Римана" [385]. Такой алгоритм, однако, не известен для отыскания простых делителей числа N. Последняя задача может оказаться труднее соответствующей задачи распознавания. Конечно, все эти задачи легко решаются за псевдополиномиаль- ное время.
[03 12] ТРИАНГУЛЯЦИЯ МИНИМАЛЬНОЙ ДЛИНЫ
УСЛОВИЕ. Заданы набор С — {(а;, Ы): 1 ^ I ^ п} пар целых чисел (определяющих координаты п точек плоскости) и положительное целое число В.
ВОПРОС. Существует ли триангуляция множества точек, определяемого набором С, общая “дискретно-евклидова" длина которой не превосходит В? (Триангуляцией называется набор не- пересекающихся прямолинейных .отрезков, соединяющих по две точки из С каждый, который разбивает внутренность выпуклой оболочки множества С на треугольники. Дискретно-евклидова длина отрезка, соединяющего точки (а<, 6,) и (а/, 6/), определяется формулой Г ((я, —а/)2+(^— М2)|/2Ъ а общая длина триангуляции есть сумма длин, образующих ее отрезков.)
Комментарий. Аналогичная задача для метрики типа L\ также открыта. В работе [359] приведены контрпримеры, опровергающие несколько предположений о полиномиальности ряда алгоритмов решения этой задачи, и показано, что близкая задача ОГРАНИЧЕННАЯ ТРИАНГУЛЯЦИЯ является NP-полной.
ЛИТЕРАТУРА
Abdel-Wahab, Н. М. [1976], Scheduling with Applications tg Register Allocation and Deadlock Problems, Doctoral Thesis, Dept, of Electrical Engineering, University of Waterloo, Waterloo, Ontario. (A5.1)
Abdel-Wahab, H. M., and T. Kameda [1978], “Scheduling to minimize maximum cumulative cost subject to series-parallel precedence constraints," Operations Res. 26, 141-158. (A5.1)
Adleman, L., and K. Manders [1977], “Reducibility, randomness, and intractability (Abstract)," Proc. 9th Ann. ACM Symp. on Theory ofComputing, Association for Computing Machinery, New York, 151-163; (7.1)
Adleman, L. See also Manders, K.
4,-Adolphson, D. [1977], “Single machine job sequencing with precedence constraints," SIAM J. Сотри!. 6, 40-54. (A5.1)
5-Adolphson, D., and T. C. Hu [1973], “Optimal linear ordering," SIAM J. Appl. Math. 25, 403-423. (A1.3; A5.1)
Ано,' A. V., M. R. Garey, and F. K. Hwang [1977], “Rectilinear Steiner trees: efficient special case algorithms,” Networks 1, 37-58. (A2.1)
Ано, A. V., M. R, Garey, and J. D. Ullman [1972], “The transitive reduction of a directed graph,” SIAM J. Comput. 1, 131-137. (Al.2)
Ано, A. V., J. E. Hopcroft, and J. D. Ullman [1968], “Time and tape complexity of pushdown automaton languages," Information and Control 13, 186-206,- (A10.1)
Ано, A. V., J. E. Hopcroft, and J. D. Ullman [1974], The Design and Analysis of Computer Algorithms, Addison-Wesley, Reading, MA. (1.3; 2.3; 4.0; 6.1; 7.4)
Ано, A. V., S. C. Johnson, and J. D. Ullman [1977a], “Code generation for expressions with common subexpressions," Z Assoc. Comput. Mach. 24, 146-160. (All.l)
И. Ано, A. V., S. C. Johnson, and J. D. Ullman [1977b], private communication, (All.l)
Ано, A. V., Y. Sagiv, and J. D. Ullman [1978], “Equivalences among relational expressions," unpublished manuscript. (A4.3)
Ано, А. V., and R. Sethi 11977), private communication. (.41.4)
Ано, A. V., AND J. D. ULLMAN-11972], The Theory of Parsing, Translation, and Compiling — Volume 1; Parsing, Prentice-Hall, Inc., Englewood Cliffs, NJ. (A 10.1)
Ano, A.-V., and J. D. Ullman [1977], private communication. (A4.2)
ANGLUIN, D. [1976], An Application of the Theory of Computational Complexity to the Slutty of Inductive Inference, Doctoral Thesis, Dept, of Electrical Engineering and Computer Science, University of California, Berkeley, CA. (A10.2)
Angluin, D. [1977], “On the complexity of minimum inference of regular sets," unpublished manuscript. (A 10.2; A10.2)
Angluin, D., and L. G. Valiant [1977], Fast probabilistic algorithms for Hamiltonian circuits and matchings," Proc. 9th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 30-41. (6.3)
Appel, K., and W. Haken [1977a], “Every planar map is 4-colorable — 1: Discharging," ///. J. Math. 21, 429-490. (4.1)
ZD. Appel, K„ and W. Haken [1977b], “Every planar map is 4-colorable — 2: Reduci- bility," III. J. Math. 21, 491-567/. (4.1)
Araki, T., Y. Sugiyama, T. Kasami, and J. Okui [1977], “Complexity of the deadlock avoidance problem," Proc. 2nd IBM Symp. on Mathematical Foundations of Computer Science, IBM Japan, Tokyo, 229-252. (A5.3)
Araki, T. See also Sugiyama, Y.
Arjomandi, E. [1977], private communication. (AI.JJ
Babai, L. [1976], private communication. (7.1; AI3)
Babai, L. [1977], private communication. (A13)
Baker, T., J. Gill, and R. Solovay [1975], “Relativizations of the P = ?NP question," SIAM J. Comput. 4, 431-442. (7.6)
Baker, T. P., and A. L. Selman [1976], “A second step toward the polynomial hierarchy," Proc. 17th Ann. Symp. on Foundations of Computer Science, IEEE Computer Society, Long Beach, CA, 71-75. (7.6)
Ball, M. O. [1977a], Network Reliability and Analysis: Algorithms and Complexity, Doctoral Thesis, Operations Research Dept., Cornell "University, Ithaca, NY. (A 2.2)
Ball, M. O. (1977b), private communication. (A2.2)
Barrow, H. G., and R. M. Burstall [1976], “Subgraph isomorphism, matching relational structures and maximal cliques," Information Processing Lett. 4, 83-84. (A 1.4)
Bartholdi, J. J., Ill, J. B. Orlin, and H. D. Ratliff [1977], "Circular ones and cyclic staffing," Report No. 21, Dept, of Operations Research, Stanford University, Stanford, CA. (AS.4)
Barzdin, Y. M. See Trakhtenbrot, B. A.
Bauer,M., D. Brand, M. Fischer, A. Meyer, and M. Paterson [1973], “A note on disjunctive form tautologies," SIGACTNews 5:2, 17-20. (7.4) .
Baxter, L. D. 11976], The Complexity of Unification, Doctoral Thesis, Dept, of Computer Science, University of Waterloo, Waterloo, Ontario. (A9.2)
53-Baxter, L. D. [1977], “The NP-completeness of subsumption,’’ unpublished manuscript. (A9.2)
34.Beeri, C., and P. A. Bernstein [1978],- “Computational problems related to the design of normal form relational schemes,” unpublished manuscript. (A4.3)
Beeri, C. See also Bernstein, P. A.; Shamir, E.
35.Berge, C. [1973], Graphs and Hypergraphs, North-Holland, Amsterdam. (A 13)
36.BERGER, R. [1966], The Undecidability of the Domino Problem (Mem. Amer. Math.
Soc., No. 66), American Mathematical Society, Providence, RI. (1.4; A8)
37-BerlekaMP, E. R. [1976], private communication. (A2.1; A8)
S&Berlekamp, E. R„ R. J. McEliece, and H. C. A. van Tilborg [1978], “On the inherent intractability of certain coding problems,” IEEE Trans. Information Theory (to appear). (A 12)
3S.BERMAN, L„ and J. Hartmanis [1977], “On isomorphisms and density of NP and other complete sets,” SIAM J. Comput. 6, 305-322. (7.1)
Berman, L. See also Hartmanis, J.
4O.BernsteiN, P. A., and C. Beeri [1976], “An algorithmic approach to normalization of relational database schemas,” Report CSRG-73, Computer Systems Research Group, University of Toronto, Canada. (A4.3)
Bernstein, P..A. See also Beeri, C.; Papadimitriou, С. H.
Blattner, W. 0. See Dantzig, G. В.
ALBlazewicz, J. [1976], “Scheduling dependent tasks with different arrival times to meet deadlines,” in H. Beilner and E. Gelenbe (eds.), Modelling and Performance Evaluation of Computer Systems, North Holland, Amsterdam, 57-65. (A5.I)
42.Blazewicz, J. [1977a], “Mean flow time scheduling under resource constraints," Report No. PR-19/77, Institute of Control Engineering, Technical University of Poznan, Poland. (A5.2)
43.Blazewicz, J. [1977b], “Scheduling with deadlines, and resource constraints,” Report PR-25/77, Institute of Control Engineering, Technical University of Poznan, Poland. (AS.2)
44.Blazewics, J. [1978], “Deadline scheduling of tasks with ready times and resource constraints," unpublished manuscript. (A5.2)
45.Boesch, F. T., S. Chen, and J. A. M. McHugh [1974], “On covering the points of a graph with point disjoint paths,” in Graphs and Combinatorics (Proc. Capitol Conf, on Graph Theory and Combinatorics), Lecture Notes in Math., Vol. 46, Springer, Berlin, 201-212. (Al.2)
46.BOOK, R. V. [1972], “On languages accepted in polynomial time,” SIAM J. Comput. 1,281-287. (7.5;A10.1)
47.BOOK, R. V. [1974], “Comparing complexity classes," J. Comput. System Sci. 9, 213-229.. (7.5)
48.BOOK, R. V. [1976], “Translational lemmas, polynomial time, and (logл)7-space,” Theor. Comput. Sci. 1, 215-226. (7.5)
49. Book, К- V. [1978), “On the complexity of formal grammars,” Acta Informat. 9, 171-182. (A10.2)
50, BOOK, R. V., and S. Greibach [19701, “Quast-realtime languages," Math. Systems Theory 4,97-111. (A10.1)
51. Booth, K. S. [19751, PQ Tree Algorithms, Doctoral Thesis, Dept, of Electrical Engineering and Computer Science, University of California, Berkeley, CA. (A4.2)
52.Booth, K. S. [1978], “Isomorphism testing for graphs, semigroups, and finite automata are polynomially equivalent problems,” SIAM J. Comput. 7, 273-279. (7.1; A13)
53. Booth, K. S., and.G. S. Lueker [1975], “Linear algorithms to recognize interval graphs and test for the consecutive ones property,” Proc. 7th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 255-265. (AB)
54. Booth, K. S., and G. S. Lueker [1976], “Testing for the consecutive ones property, interval graphs, and graph planarity using PQ-tree algorithms,” J. Comput. System Sei. 13, 335-379. (Al.2)
55.B0R0SH, I., and L. B. Treybig [1976], “Bounds on positive integral solutions of linear Diophantine equations," Proc. Amer. Math. Soc. 55,299-304. (A6)
Brand, D. See Bauer, M.
56.Brooks, R. L. [1941], “On coloring the nodes of a network,” Proc. Cambridge Phi* los. Soc. 37,194-197. (4.1; Al.l)
57. Brucker, P. [1978], “On the complexity of clustering problems," in R. Henn, B. Korte, and W. Oletti (eds), Optimierung und Operations Research, Lecture Notes in Economics and Mathematical Systems, Springer, Berlin (to appear). (A12)
58.Brucker, P„ M. R. Garey, and D. S. Johnson [1977], “Scheduling equal-length tasks under treelike precedence constraints to minimize maximum lateness," Math. Oper. Res. 2, 275-284. (A5.2)
Brucker, P. See also Lenstra, J. K.
59. Bruno, J., E. G. Coffman, Jr, and R. Sethi [1974]’, “Scheduling independent tasks to reduce mean finishing time," Comm. ACM 17, 382-387. (A5.2)
60. Bruno, J., and P. Downey [1978], “Complexity of task scheduling with deadlines, set-up times and changeover costs," SIAM J. Comput. (to appear). (A5.1)
61.BRUNO, J„ and R. Sethi [1976], “Code generation for a one-register machine," J. Assoc. Comput. Mach. 23, 502-510. (All.l)
62.Bruno, J., and L. Weinberg [1970], “A constructive graph-theoretic solution of the Shannon switching game," IEEE Trans. Circuit Theory CT-17, 74-81,- (A8)
Burkhard, W. A. See Walsh, a. M.
. Burr, S. [1976], private communication. (Al.l)
64-Burr, S., P.-Erdos, and L. Lovasz [1976]; “On graphs of Ramsey type," Ars Combinatorical, 167-190. (Al.l)
Burstall, R. M. See Barrow, H. G.
.Carlier, J. [1978], “Probleme a une machine," Report No. 78.05, Institut de Pro- grammation, Universi'te de Pierre et Marie Curie, Paris, France. (A.5.1)
66-Chan, Т. [19771. "An algorithm for checking PL/CV arithmetic inferences,” Report No. 77-326, Dept, of Computer Science, Cornell University, Ithaca, NY. (A9.2)
BZCHandra, A. K., and P. M. Merlin [19771, “Optimal implementation of conjunctive queries in relational-data bases.” Proc. 9th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York. 77-90. (A4.3: A13)
68-Chandra, A. K., and L. J. Stockmeyer [19761, “Alternation/1 Proc. 17th Ann. Symp. on Foundations of Computer Science, IEEE Computer Society, Long Beach, CA, 98-108. (7.6)
Chandra, A. K. See also Stockmeyer, L. G.
Chandy, К. M. See van Sickle, L.
Chen, S. See Boesch, F. T.
Й.СнО, Y„ and S. Sahni [19781, “Preemptive scheduling of independent jobs with release and due times on open, flow, and job shops," unpublished manuscript. (A5.3)
Cho", Y. See also Sahni, S.
70.Chomsky, N., and G. A. Miller 11958], “Finite state languages,” Information and Control 1,91-112. (A10.2)
ZLChristofides, N. [1976], “Worst-case analysis of a new heuristic for the travelling salesman problem,” Technical Report, Graduate School of Industrial Administration, Carnegie-Mellon University, Pittsburgh, PA. (6.1)
72.Chung, F. R. K., and R, L. Graham [19771, private communication. (A 1.2) 73.Chvatal, V. [1973], “On the computational complexity of finding a kernel," Report No. CRM-300, Centre de Recherches Malhemaliques, Universile de Montreal. (Al.5)
74.Chvatal, V. [1975], “On certain polytopes associated with graphs," J. Combinatorial Theory Ser. В 18, 138-154. 646,1
75.Chvatal, V. [1976], private comritunication. (Al.2; Al.3)
76.ChvataL, V. [19771, “Determining the stability number of a graph," SIAM J. Comput. 6, 643-662. (7.6)
7ZChvatal, V. [1978], private communication. (A3.1)
76.CHVATAL, V., and-P. L. Hammer. [19751, “Aggregation of inequalities in integer programming," Report No. STAN-CS-75-518, Computer Science Dept., Stanford University, Stanford, CA. (A 1.5)
79,Chvatal, V., and G. Thomassen [1978], “Distances in orientations of graphs," J. Combinatorial Theory Ser. В 24, 61-75. (A1.5)
80-Cobham, A. [1964], “The intrinsic computational difficulty of functions," in Y. Bar-Hillel (ed.). Proc. 1964 International Congress.for Logic Methodology and Philosophy of Science, North Holland, Amsterdam, 24-30. (1.3; 5.2)
BICockayne, E., S. Goodman, and S. Hedetniemi [19751, “A linear algorithm for the domination number of a tree," Information Processing Lett. 4, 41-44. (Al J)
SZCockayne, E. J., and S. T. Hedetniemi [19751, “Optimal domination in graphs," IEEE Trans. Circuits and Systems CAS-22, 855-857. (A 1.1)
SICockayne, Е. J,, S. T. Hedetniemi, and P. J. Slater [1978], private communication. (A2.5)
84,Cody, R. A., and E. G. Coffman, Jr [1976], “Record allocation for minimizing expected retrieval costs on drum-like storage devices,” J. Assoc. Comput. Mach. 23, 103-115. (A4.1)
8S.Coffman, E. G., Jr, and R. L. Graham [1972], “Optimal scheduling for two- processor systems,” Acta Informal. 1, 200-213. (A5.2;A13)
Coffman, E. G., Jr. See also Bruno, J.; Cody, R. A.; Muntz, R. R.
86.Colbourn, M. J., and С. J. Colbourn [1978]; “Graph isomorphism and self- complementary graphs," S1GACT News 10:1, 25-29. (A 13)
Colbourne, С. J. See Colbourne, M. J.
SZComer, D„ and R. Sethi [1976], “Complexity of Trie index construction (Extended abstract),” Proc. 17th Ann. Symp. on Foundations of Computer Science, IEEE Computer Society, Long Beach, CA, 197-207. (A4.1)
88-ConstaRLE, R. L., H. B. Hunt, Ш, and S. Sahni [1974], “On the computational- complexity of scheme equivalence," Report No. 74-201/Dept, of Computer Science, Cornell University, Ithaca, NY. (Extended abstract appeared in Proc. 8th 4m. Princeton Corf. on information Sciences and Systems, Dept, of Electrical Engineering, Princeton University, Princeton, NJ, 15-20). (A4.2; Al 1.2)
89.Conway, J. H.- [1976], On Numbers and Games, Academic Press, New York. (A8)
.CONWAY, R. W., W. L. Maxwell, and L. W. Miller [1967], Theory of Scheduling; Addison-Wesley, Reading, MA. (AS.2)
SLCook, S. A. [1971a], "The complexity of theorem-proving procedures,” Proc. 3rd Ann. ACM Symp, on Theory of Computing, Association for Computing Machinery, New York, 151-158. (1.5; 2.6; 3.1.1; 5.2; A1.4; A9..1)
.COOK, S, A. [1971b], “Characterizations of pushdown machines in terms of time- bounded computers,” Z Assoc. Comput.-Mach. 18, 4-18. (7.5)
91COOK, S. A. [1973], “A hierarchy for nondeterministic time complexity,” Z Comput. System Scl. 7, 343-353. (7.6)
.COOK, S. A. [1974], “An observation on time-storage trade off,” Z Comput. System, Scl. 9, 308-316. (7.5)
95-CobK, S., and R. Sethi [1976], “Storage requirements for deterministic polynomial time recognizable languages,” Z Comput. System Scl. 13, 25-37 (7.5).
.Cornuejols, G., M. L. Fisher, and G. L. Nemhauser [1977], “Location of bank accounts to optimize float: an analytic study of exact and approximate algorithms," Management Scl. 23, 789-810. (6.1)
.Cornuejols, G., and G. L. Nemhauser [1978], "Tight bounds for Christofldes’ traveling salesman heuristic," Math. Programming 14,116-121. (6.1)
Cresswell, M. J. See Hughes, G. E..
Culik, К., II See Opatrny, J.
.Dantzig, G. B. [1957], “Discrete-variable extremum problems,” Operations Res, 5, 266-277. (4.2.2; A6)
.Dantzig, G.. B. [1960], “On the significance of solving linear programming problems with some integer variables," Econometr'ica 28, 30-44, (1.5)
IDD-Dantzig, G. В., W. О. Blattner, and M. R. Rao [1967], “All shoriest routes from a fixed origin in a graph," in Theory of Graphs: International Symposium, Gordon and Breach, NY, 85-90. (1.5)
.Date, C. J. [1975], An Introduction to Database Systems, Addison-Wesley, Reading, MA. (A4.3)
Demers, A. See Johnson, D. S.
Deo, N. See Krisiinamoorthy, M. S.; Reingold, E. M.
.Dobkin, D., and R. E. Ladner [1978], private communication. (A8)
. Dobkin, D., R. Lipton, and S. Reiss [1976], “Linear programming is P-complete,” in (same authors), “Excursions into geometry,” Report No. 71, Dept, of Computer Science, Yale University, New Haven, CT. (7.5)
Dobkin, D. See also Reiss, S. P.
Dorfman, Y. G. See Orlova, G. I.
№. Downey, P. J., and R. Sethi [1976], .“Assignment commands and array structures,” Proc. 17th Ann. Symp. on Foundations of Computer Science, IEEE Computer Society, Long Beach, CA, 57-66. (A11.2)
Downey, P. J. See also Bruno, J.
Edelberg, M. See Hirschberg, D.
.Edmonds, J. [1962], “Covers and packings in a family of sets," Bull. Amer. Math. Soc. 68, 494-499. (1.5)
106-Edmonds, J. [1965a], “Paths, trees, and flowers,” Canad. J. Math. 17, 449-467. (1.3; 5.2)
. Edmonds, J. [1965b], “Minimum partition of amatroid into independent subsets." J. Res. Nat. Bur. Standards Sect. В 69, 67-72. (5.2)
IOD.Edmonds, J., and E. L. Johnson [1970], “Matchingia well-solved class of integer linear programs," in Combinatorial Structures and their Applications, Gordon and Breach, New York, 89-92. (Al.I; Al.2)
,109.Edmonds, J., and E. L. Johnson [1973], “Matching, Euler lours, and the Chinese postman," Math. Programming 5, 88-124. (A2.3)
.Edmonds, J., and R. M. Karp [1972], “Theoretical improvements in algorithmic efficiency for network flow problems," J. Assoc. Comput. Mach. 19, 248-264. (A2.1)
.Edmonds, J., AND D. W. Matula [1975], private communication. (4.2.2; A1.4)
.Ehrlich, G., S. Even, and R. E. Tarjan [1976], “Intersection graphs of curves in the plane," J. Combinatorial Theory Ser. В 21, 8-20. (Al. 1)
Erdos, P. See Burr, S.
.Eswaren, К. P-, and R. E. Tarjan [1976], “Augmentation problems," SIAM J. Comput. 5, 653-665. (A2.2)
.Even, S., A. Itai, and A. Shamir [1976], “On the complexity of timetable and. multiCommodity flow problems," SIAM J: Comput. 5, 691-703. (3.1.1; 3.2.3; A2.4; A5.3; A9.1)
IK.Even, S., and D, S. Johnson [1977], unpublished results. (A2.1; A2.4)
.Even, S., D. I. Lichtenstein, and Y Shiloach [1977], “Remarks on Zeigler’s method for matrix compression," unpublished manuscript. (A4.2)
.Even, S„ A. Pnueli, and A. Lempel [1972], “Permutation graphs and transitive graphs," J. Assoc. Comput, Mach. 19, 400-410. (Al.1; Al.2)
11&Even, S., and Y. Shiloach [1975], “NP-completeness of several arrangement problems," Report No. 43, Dept, of Computer Science, Technion, Haifa, Israel. (A1.3)
.Even, S., and R. E. Tarjan [1976], “A combinatorial problem which is complete in polynomial space," Z Assoc. Comput. Mach. 23, 710-719. (7.4; A8)
Even, S. See also Ehrlich, G.
.Fagin, R. [1974], “Generalized first-order spectra and polynomial time recognizable sets," in R. M. Karp (ed.), Complexity of Computation, American Mathematical Society, Providence, RI, 43-73. (A4.2)
IZI.Farley, A., S. Hedetniemi, S. Mitchell, and A. Proskurowski [1977], “Minimum broadcast graphs," Report No. CS-TR-77-2, Dept, of Computer Science, University of Oregon, Eugene, OR. (A2.5)
12Z.Fischer, M. J., and M. O. Rabin [1974], “Super-exponential complexity of Pres- burger arithmetic," in R. M. Karp (ed.), Complexity of Computation, American Mathematical Society, Providence, RI, 27-41-. (1.4; 7.6)
Fischer, M. J. See also Bauer, M.; Seiferas, J. 1/, Wagner, R. A.
Fisher, M. L. See Cornuejols, G.; Nemhauser, G. L.
.Filotti, 1. S. [1978], “An efficient algorithm for determining whether a cubic graph is toroidal,-’ Proc. 10th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 133-142. (A13)
.Florian, M., and M. Klein [1971], “Deterministic production planning with concave costs and capacity constraints," Management Sci. 18, 12-20. (A5.4)
Florian, M. See also Lenstra, J. K.
.Ford, L. R., and D. R. Fulkerson [19621, Flows in Networks, Princeton University Press, Princeton, NJ. (A2.4)
.Fortune, S., J. E. Hopcroft, and E. M. Schmidt [1977], “The complexity of equivalence and containment for free single variable program schemes," Report No. TR77-310, Dept, of Computer Science, Cornell University, Ithaca, NY. (Al 1.2)
. Fraenkel, A. S., M. R. Garey, D. S. Johnson, T. Schaefer, and Y. Yesha [19.78], “The complexity of Checkers on an NxN board — Preliminary report," Proc. 19th Ann. Symp. on Foundations of Computer Science, IEEE Computer Society, Long Beach, CA, 55-64. (7.4; A8)
.Fraenkel, A. S., and Y. Yesha [1976], “Theory of annihilation games," Bull. Amer. Math. Soc. 82,.775-777. (A8)
.Fraenkel, A. S., and Y. Yesha [1977], “Complexity of problems in games, graphs, and algebraic equations,” unpublished manuscript. (Al.4; Al.5; A7.2; A8)
13(IFrederickson, G. N., M. S. Hecht, and С. E. Kim [1978], “Approximation algorithms for some routing problems," SIAM J. Comput. 7, 178-193. (A2.3)
ISl.Futii, М., Т. Kasami, and К. Ninomiya 11969), “Optimal sequencing of two equivalent processors,” SIAM J. Appl. Math. 17, 784-789. Erratum [1971], SIAM J. Appl. Math. 20, 141. (A 13)
132.Fulkerson, D. R., and D. A. Gross [1965], “Incidence matrices and interval graphs,” Pacific J. Math. 15, 835-855. (Al.2)
Fulkerson, D. R. See also Ford, L. R.
Fuller, S. H. See Stone, H. S.
133Gabow, H. N. [1976], “Using Euler partitions to edge color bipartite mulligraphs," Internal. Z. Comput. Information Sci. 5, 345-355. (A 13)
IYi.Gabow, H. N., S. N. Maheshwari, and L. Osterweil [1976], “On two problems in the generation of program test paths," IEEE Trans. Software Engrg. SE-2, 227-231. (A1.5)
.GALIL, Z. [1974], “On some direct encodings of nondeterministic Turing machines operating in polynomial time into P-complete problems,” SIGACT News 6:1, 19-24. (7.3)
!36.Galil, Z. [1976], “Hierarchies of complete problems,” Acta Informal. 6, 77-88 (7.5; AID. 1)
.Galil, Z. [1977], “On resolution with clauses of bounded size,” SIAM J. Comput. 6, 444-459. (7.6)
.Galil, Z., and N. Megiddo [1977], “Cyclic ordering is NP-complete,” Theor. Comput. Sci. 5, 179-182. (A 12)
.Garey, M. R. [1973], “Optimal task sequencing with precedence constraints," Discrete Math. 4, 37-56. (A5.1)
MOGarey, M. R., F. Gavril, and D. S. Johnson [1977], unpublished results. (Al.2)
W.Garey, M. R., R. L Graham, and D. S. Johnson [1976], “Some NP-complete geometric problems," Proc. Sth Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 10-22. (A2.3)
I'iZ.Garey, M. R., R. L. Graham, and D. S. Johnson 11977], “The complexity of computing Steiner minimal trees,” SIAM J. Appl. Math. 32, 835-859. (A2.1)
.Garey, M. R., R. L. Graham, D. S. Johnson, and D. Ё. Knuth [19781, “Complexity results for bandwidth minimization," SIAM J. Appl. Math. 34, 477-495. (3.2.2; A1..3)
IW.Garey, M. R., R. L. Graham, D. S. Johnson, and A. C. Yao [19761, “Resource constrained scheduling as generalized bin packing," J. Combinatorial Theory Ser. A 21, 257-298. (6.1)
W.Garey, M. R., and D. S. Johnson [1975], “Complexity results for multiprocessor scheduling under resource constraints,” SIAM J. Comput. 4, 397-411. (A3.2; A 5.2)
W.Garey; M. R., and D. S. Johnson [1976a], “The complexity of near-optimal graph coloring,” Z Assoc. Comput. Mach. 23, 43-49. (6.2)
W.Garey, M. R., and D. S. Johnson [1976b], “Approximation algorithms for combinatorial problems: an annotated bibliography,” in J. F. Traub (ed.), Algorithms and Complexity: New Directions and Recent Results, Academic Press, New York, 41-52. (6.2)
H&Garey, М. R., and D. S. Johnson [1976c], “Scheduling tasks with nonuniform deadlines on two processors," J. Assoc. Comput. Mach. 23, 461-467. (A5.1; A5.2)
1W,Garey, M. R., and D. S. Johnson [1977a], “The rectilinear Steiner tree problem is NP-complete," SIAM J. Appt Math. 32, 826-834. (Al.I; A1.2;A2.1)
IM.Garey, M. R., and D. S. Johnson [1977b], “Two-processor scheduling with starttimes and deadlines,” SIAM J. Comput. 6, 416-426., (A5.1; A5.2; A13)
.Garey, M. R., and D. S. Johnson [1978], “Strong NP-completeness results: motivation, examples, and implications," J. Assoc. Comput. Mach. 25, 499-508. (5.2; 6.2)
.Garey, M. R., and D. S. Johnson [], unpublished results. (Al.l; A 1.2; Al.4;
A1.5; A2.1; A2.2; A2.5; A3.1; A3.2; A5.4; A6.A7.1; All.l; A12)
.Garey, M. R., D. S. Johnson, G. L. Miller, and С. H. Papadimitriou [1978], unpublished results. (Al.l; All.l; A12)
№.Garey, M. R., D. S. Johnson, and С. H. Papadimitriou [1977], unpublished results. (A1.3;A8)
.OAREY, M. R., D. S. Johnson, and R. Sethi [1976], “The complexity of flowshop and jobshop scheduling," Math. Oper. Res. 1, 117-129. (3.2.2; A5.3)
BBGarey, M. R., D. S. Johnson, В. B. Simons, and R. E. Tarjan [19781, “Scheduling unit time tasks with arbitrary release times and deadlines,” .unpublished manuscript. (A5.1)
.Garey, M. R„ D. S. Johnson, and L. Stockmeyer [1976], “Some simplified NP- complete graph problems," Theor.>Comput. Sci. 1, 237-267. (3.2.2; 4.1; Al.l; A1.2; A1.3; A2.2; A9.1)
.Garey, M. R., D. S. Johnson, and R. E. Tarjan [1976a], “The planar Hamiltonian circuit problem is NP-complete," SIAM J. Comput. 5, 704-714. (3.2.3; A1.3)
.Garey, M. R., D. S. Johnson, and R. E. Tarjan [1976b], unpublished results. (Al .1)
Garey, M. R. See also Ано, A. V.; Brucker, P.; Fraenkel, A. S.; Johnson, D. S.
IM.Garfinkel, R. S. [1977], “Minimizing wallpaper waste. Part 1: a'class of traveling salesman problems," Operations Res. 25, 741-751. (A2.3)
.Garfinkel, R. S., and G. L. Nemhauser [1972], Integer Programming, John Wiley & Sons, New York. (6.0; A2.3; A13)
.Gavett, J. [1965], “Three heuristic rules for sequencing jobs to a single production facility," Management Sci. 11, B166-B176. (6.1)
.Gavril, F. [1972], “Algorithms for minimum coloring, maximum clique, minimum covering by cliques, and maximum independent set of a chordal graph,” SIAM). Comput. 1, 180-187. (Al.l; A1.2; A4.1)
.Gavril, F. [1973], “Algorithms for a maximum clique and a maximum independent set of a circle graph,” Networks 3, 261-273. (A1.2)
.Gavril, F. [1974a], “Algorithms on circular-arc graphs," Networks 4, 357-369. (A1.1:A1.2)
.Gavril, F. [1974b], “The intersection graphs of subtrees in trees are exactly the chordal graphs,” J. Combinatorial Theory Ser. В 16, 47-56. (A 13)
.Gavril, F. (1974c], private communication. (6.1)
HUGavril, F. [1977a], “Some NP-complete problems on graphs," Proc. 11th Conf, on Information Sciences and Systems, Johns Hopkins University, Baltimore, MD, 91-95. (Al.1; Al.2; АкЗ; A2.5; A4.1)
161.Gavril, F. [1977b], private communication. (Al.2)
GAvril, F. See also Garey, M. R.; Yannakakis, M.
Geldmacher, R. C. See Liu, P. C.
.GEOFFR1ON, A. M. [1974], “Lagrangian relaxation and its uses in integer programming," Math. Prog. Study 2, 82-114. (6.0)
.Gill, J. T„ HI [1977], “Computational complexity of probabilistic Turing machines," SIAM J. Comput. 6, 675-695. (7.3)
Gill, J. T, 111. See also Baker, T.
17Z.Gilmore, P. C., and R. E. Gomory [1964], “Sequencing a one state-variable machine: a solvable case of the traveling salesman problem,” Operations Res. 12, 655-679. (A2.3; AS.3)
ITJ.Gimpel, 5. F. [1965], “A method of producing a Boolean function having an arbitrarily prescribed prime implicant table," IEEE Trans. Computers 14, 485-488. (1.5;A9.1)
.GOLD, E. M.- [1974], “Complexity of automaton identification from given data," unpublished manuscript. (A9.1; A10.1)
.GOLD, E. M. [1978], “Deadlock protection: easy and difficult cases,” SIAM J. Comput. 7, 320-336. (A5.3)
. Gol'Dberg, M. K., and I. A. Klipker [1976], “Minimal placing of trees on a line," Technical Report, Physico-Technical Institute of Low Temeperatures, Academy of Sciences of Ukranian SSR, USSR (in Russian). (A 1.3)
17ZGOLDSCHLAGER, L. M. [1977], “The monotone and planar circuit value problems are log space complete for P,” SIGACT News 9:2, 25-29. (7.5)
.Golumbic, M. C. [1977], “The complexity of comparability graph recognition and coloring," Computing 18, 199-208. (Al.l; A1.2)
Gomory, R. E. See Gilmore, P. C.
ITS.Gonzalez, T. [1977], “Optimal mean finish time preemptive schedules,” Report No. 220, Computer Science Dept., Pennsylvania State University, University Park, PA. (AS.2)
DO.Gonzalez, T., E. L. Lawler, and S. Sahni [1978], “Optimal preemptive scheduling of a fixed number of unrelated processors in polynomial time,” unpublished manuscript. (AS.2)
MLGonzalez, T., and S. Sahni [1976], “Open shop scheduling to minimize finish time,” J. Assoc. Comput. Mach; 23, 665-679. (A5.3)
182,Gon2alez, T., and S. Sahni [1978a], “Flowshop and jobshop schedules: complexity and approximation," Operations Res. 26, 36-52. (AS.3)
W5,Gonzalez, T., and S. Sahni [1978b], “Preemptive scheduling of uniform processor systems," Z Assoc. Comput. Mach. 25,;92-101. (AS.2)
Gonzalez, T. See also Sahni, S.
Goodman, S. See Cockayne, E.; Morrow, C.
Goyal, D. K. [1976], “Scheduling processor bound systems,” Report No. CS-76- 036, Computer Science Department, Washington State University, Pullman, WA. (AS.2)
Graham, R. L. [1966], “Bounds for certain multiprocessing anomalies,” BellSyst: Tech. J. 45, 1563-1581. (6.2)
Graham, R. L, E. L. Lawler, J. K. Lenstra, and A. H. G. Rinnooy Kan [1978], “Optimization and approximation in deterministic sequencing and scheduling: a survey,” Ann. Discrete Math, (to appear). (A5.1)
Graham, R. L. See also Chung, F. R. K.; Coffman, E. G., Jr; Garey, M. R.; Johnson, D. S.
Grasselli, A., and F. Luccio [1966], “A method for the combined row-column reduction of flow tables," Proc. 7th Ann. Symp.- on Switching and Automata Theory, IEEE Computer Society, Long Beach, CA, 136-147. (A10.1)
Greibach, S. [1969], “Checking automata and one-way stack languages," J. Com- put. System Sci. 3, 196-217. (A10.1)
Greibach, S. A. [1973a], “Jump PDA’s, deterministic context-free languages, principal AFDL’s and polynomial time recognition-Extended abstract," Proc. Sth Ann. ACM Symp. on Theory of Computing, Association fpr Computing Machinery, New York, 20-28. (A10.2)
,Greibach, S. A. [1973b], “The hardest context-free language," SIAM J. Com- put. 2, 304-310. (A10.2)
Greibach, S. See also Book, R. V.
GiOmmet, G. R., and C. J. H. McDiarmid [1975], “On colouring random graphs," Math. Proc. Cambridge Philos. Soc. 77., 313-324. (6.3)
Gross, D. A. See Fulkerson, D. R.
Gurari, E. M., and О. H. Ibarra [1978], “An NP-complete number theoretic problem," Proc. 10th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 205-215. (A7.2)
Hack, M. [1972], “Analysis of production schemata by Petri nets,” Report No. TR-94, Project MAC, Massachusetts Institute of Technology, Cambridge, MA. (A12)
191 Hadlock, F. O. [1974], “Minimum spanning forests of bounded trees," Proc. Sth Southeastern Conference on Combinatorics, Graph Theory, and Computing, Utilitas Malhematica Publishing, Winnipeg, 449-460. (A2.1; A2.2)
Hadlock, F. O. [1975], “Finding a maximum cut of a planar graph in polynomial time," SIAM J. Comput. 4, 221-225. (4.1; A1.2; A2.2)
Haken, W. See Appel, К.
Hakimi, S. L. See Kariv, O.
Hammer, P. L. See Chvatal, V.
Harary, F. [1969], Graph Theory, Addison-Wesley, Reading, MA. (A1.2; A3.1; A13)
Harary, F., and R. A. Melter [1976], “On the metric dimension of a graph," Ars Combinatorlca 2,191-195. (A1.5)
Harary, F., and E. M. PalMer [1973], Graphical Enumeration,. Academic Press, New York. (7.3; A2.1)
Harrison, M. A., W. L. Russo, and J. D. Ullman [19761, “Protection in operating systems," Comm. ACM 19, 461-471. (A4.3)
Hartmanis, J., and L. Berman [1978], “On polynomial time isomorphisms of some new complete sets," J. Comput. System Sci. 16, 418-422. (7.1)
Ж Hartmanis, J., and J. E. Hopcroft [1976], “Independence results in computer science," SIGACT News 8:4, 13-24. (7.6)
Hartmanis, J., and H. B. Hunt, Ill [1974], “The LBA problem and its importance in the theory of computing," in R. M. Karp (ed.), Complexity of Computation, American Mathematical Society, Providence, RI, 1-26. (7.4)
Hartmanis, J., P. M. Lewis, and R. E. Stearns [1965], “Classification of computations by time and memory requirements," Proc. 1F1P Congress 1965, Spartan, New York, 31-35. (7.6)
Hartmanis, J., and R. E. Stearns [1965], “On the computational complexity of algorithms," Trans. Amer. Math. Soc. 117, 285-306. (1.4; 7.6)
Hartmanis, J. See also Berman, L.
Hasegawa, T. See Ibaraki, T.
20$. Havranek, T. [1975], “Statistical quantifiers in observational.calculi: an application in GUHA methods," Theory and Decision 6, 213-230. (All)
Hecht, M. S. See Frederickson, O. N.
Hedetniemi, S. T. See Cockayne, E.; Farley, A.; Mitchell, S.
Held, M., and R. M. Karp [1971], “The traveling salesman problem and minimum spanning trees: part II," Math. Programming 6, 62-88. (6.0)
Hell, P. See Kirkpatrick, D. G.
Herman, G. T„ and G. Rozenberg [1975], Developmental Systems and Languages, North-Holland, Amsterdam. (A10.2)
201 Herrmann, P. P. [1973], “Ori reducibiiity among combinatorial problems,” Report No. TR-113, Project MAC, Massachusetts Institute of Technology, Cambridge, MA. (A1.1;A2.4)
Hirschberg, D., and M. Edelberg [1973], “On the complexity of computing graph isomorphism," Report No. TR-130, Computer Science Lab., Dept, of Electrical Engineering, Princeton University, Princeton, NJ. (A 13)
Hirschberg, D. S., and С. K. Wong [1976], “A polynomial-time algorithm for the Knapsack problem with two variables," Z Assoc. Comput. Mach. 23, 147-154. (A6)
2П, Hopcroft, J. E. [1971], “An nlogn algorithm for minimizing states in a finite automaton," in Z. Kohavi and A. Paz (eds.), Theory of Machines and Computations, Academic Press, New York, 189-196. (A10.1)
211 Hopcroft, J. E., and R. M. Karp [1973.1, “An л5/2 algorithm for maximum matchings in bipartite graphs," SIAM J. Comput. 2, 225-231. (3.1:2)
Hopcroft, J. E., and R. E. Tarjan [1974], “Efficient planarity testing," J. Assoc. Comput. Mach. 21, 549-568. (4.1; A1.2; A13)
Hopcroft, J. E., and J. D. Ullman [1967], “Nonerasing slack automata," J. Com- pul.-System Set 1, 166-186. (A 10.1)
. Hopcroft, J. E., and J. D. Ullman [1969], Formal Languages and their Relation to Automata, Addison-Wesley, Reading. MA. (1.3; 2.2; 2.3; 7.4; 7.5; 7.6; A4.2; A10.I; A10.2)
Hopcroft, J. E„ and J. K. Wong [1974], “Linear time algorithm for isomorphism of planar graphs (Preliminary report)," Proc. 6th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 172-184. (AI3)
Hopcroft, J. E. See also Ано. A. V.: Fortune, S.; Hartmanis, J.
Horn, W. A. [1972], “Single-machine job sequencing with treelike precedence ordering and linear delay penalties," SIAM J. Appl. Math. 23, 189-202. (A5.1)
Z1B. Horn, W. A. [1973], “Minimizing average flow time with parallel machines," Operations Res. 21, 846-847. (A5.2)
Horn, W. A. [1974], “Some simple scheduling algorithms," Naval Res. Legist. Quart. 21, 177-185. (A5.2)
226 Horowitz, E., and S. Sahni [1974], “Computing partitions with applications to the knapsack problem,” J. Assoc. Comput. Mach. 21, 277-292. (6.0)
Horowitz, E., and S. Sahni [1976], “Exact and approximate algorithms for scheduling nonidenlical processors,” J. Assoc. Comput. Mach. 23, 317-327. (4.2.2; 6.1)
Horowitz. E., and S. Sahni [19781, Algorithms: Design and Analysis, Computer Science Press, Potomac, MD. (6.1)
221 Horvath, E. C., S. Lam, and R. Sethi [1977], “A level algorithm for preemptive scheduling,” J. Assoc..Comput. Mach. 24, 32-43. (AS.2)
224 Howell, T. D. [1977], “Grouping by swapping is NP-complete," unpublished manuscript. (A4.2)
Hu,T. C. [1961], “Parallel sequencing and assembly line problems," Operations Res. 9, 841-848. (A5.2)
Hu, T. C. [1969], Integer Programming and Network Flows, Addison-Wesley. Reading, MA. (6.0)
Hu, T. C. [1974], “Optimum communication spanning trees," SIAM J. Comput. 3, 188-195. (A2.1)
Hu, T. C. See also Adolphson, D.
HUET, G. P. [1973], “The undecidability of unification in third order logic," Information and Control 22, 257-267. (A9.2)
Hughes, G. E., and M. J. Cresswell [1968], An Introduction to Modal Logic, Methuen, London. (A9.2)
Hunt, H. B., Ill [1973a], On the Time and Tape Complexity of Languages, Doctoral Thesis, Dept, of Computer Science, Cornell University, Ithaca, NY. (A 10.2)
HUNT, Н. B., HI [1973b], “On the time and tape complexity of languages 1," Proc. Sth Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 10-19. (AI0.1; A10.2)
Hunt, H. B., Ill [1976], “On the complexity of finite, pushdown, and stack automata," Math, Systems Theory 10, 33-52. (A10.1)
Hunt, Н. В., Ill (19771, “A complexity theory of computation structures: prelim-- inary report,’’ unpublished manuscript. (A9.2; All.2; A12)
HUNT, H. B., HI [1978], “Uniform lower bounds on scheme equivalence,’’ unpublished manuscript. (All.2)
Hunt, H. B., Ill, and D. J. Rosenkrantz [1977], “Complexity of grammatical similarity relations: preliminary report,’’ Proc. Conf, on Theoretical Computer Science, Dept, of Computer Science, University of Waterloo, Waterloo, Ontario, 139-148. (А Ю.2; AB)
236 Hunt, H. B., Ill, and D. J. Rosenkrantz [19781, “Computational parallels between regular and context-free languages," SIAM J. Comput. 1, 99-114. (A 10.2)
237-Hunt, H. B„ 111, D. J. Rosenkrantz, and T. G. Szymanski [1976a], “On the equivalence, containment, and covering problems for the regular and context- free languages,’’ J. Comput. System Sci. 12, 222-268. (A10.2)
23J.,Hunt, H. B., Ill, D. J. Rosenkrantz, andT. G. Szymanski 11976b], “The cover ing problem for linear context-free grammars," Theor. Comput. Sci. 2, 361-382 (A 10.2)
Hunt, H. B., Ill, and T. G. Szymanski [1976a], “Complexity metatheorems for context-free grammar problems,” J. Comput. System Sci. 13, 318-334. (A 10.2)
Hunt, H. В., Ill, and T. G. Szymanski [1976b],.“Dichotimization, reachability, and the forbidden subgraph problem (Extended abstract),” Proc. 8th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 126-134: (Al 1.2)
Hunt, H. B., Ill, and T. G. Szymanski [1978], “Lower bounds and reductions between grammar problems," J. Assoc. Comput. Mach. 25, 32-51. (A10.2)
Hunt, H. B., Ill, T. G. Szymanski, and J. D. Ullman [1975], “On the complexity of LR(k) testing," Comm. ACM 18, 707-716. (A10.2)
Hunt, H. B., Ill. See also Constable, R. L; Hartmanis, J.
Hwang, F. K. See Ано, A. V.
Hyafil, L., and R. L. Rivest [1973], “Graph partitioning and constructing optimal decision trees are polynomial complete problems," Report No. 33, IRIA- Laboria, Rocquencourt, France. (A2.2)
Hyafil, L., and R. L. Rivest [1976], “Constructing optimal binary decision trees is NP-complete," Information Processing Lett. 5, 15-17. (A 12)
Ibaraki, T. [1978], “Approximate algorithms for the multiple-choice continuous knapsack problem," unpublished manuscript. (A6)
Ibaraki, T., T. Hasegawa, K. Teranaka, and J. Iwase [1978], “The multiplechoice knapsack problem,” J. Oper. Res. Soc. Japan 21, 59-94. (A 6)
Ibaraki, T., T. Kameda, and S. Toida [1977], “NP-complete diagnosis problems on systems graphs," unpublished manuscript. (A3.1; A12)
Ibaraki, T. See also Kise, Н.
Ibarra, О. Н., and С. E. Kim 11975a], “Fast approximation algorithms for the knapsack and sum of subset problems," J. Assoc. Comput. Mach. 22, 463-468 (6.1)
ZM.Ibarra, О. Н., and С. Е. Kim [1975b], “Scheduling for maximum profit," Report No. 75-2, Computer Science Dept., University of Minnesota, Minneapolis, MN. (A6)
Z50.Ibarra, O. H„ and S. K. Sahni [1975], “Polynomially complete fault detection problems,” IEEE Trans. Computers C-24, 242-249. (Al2)
Ibarra, О. H. See also Gurari, E. M.
51,Itai, A. [1977], “Two commodity flow,” Report No. 93, Dept, of Compqter Science, Technion, Hpifa, Israel. (7.1; A2.4)
Z5Z.Itai, A., Y. Perl, and Y. Shiloach [1977], “The complexity of finding maximum disjoint paths with length constraints," Report No. 94, Dept, of Computer Science, Technion, Haifa, Israel. (A2.4)
Z53.Itai, A., and M. Rodeh [1977a], “Some matching problems,” in Automata, Languages, and Programming, Lecture Notes in Computer Science, Vol. 52, Springer, Berlin; 258-268. (A 1.5)
ZSS.Itai, A„ and M. Rodeh [1977b], “Finding a minimum circuit in a graph," Proc. 9th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 1-10. (A2.3)
255.ITAI, A., M. Rodeh, and S. L. Tanimota [19781, “Some matching problems for bipartite graphs," J. Assoc. Comput. Mach, (to appear). (Al.5)
Itai, A. See also Even, S.
Iwase, J. See Ibaraki, T.
. Jackson, J. R. [19561, “An extension of Johnson’s results on job lot scheduling," Naval Res. Legist. Quart, 3, 201-203. (A5.3)
.1 кгхчвм, M„ W. F. Ogden, and W. C. Rounds [1975], “The intrinsically exponential complexity of the circularity problem for attribute grammars," Comm. ACM 18, 697-706. (7.6)
Z58.JER0SL0W, R. G. [1973], “There cannot be any algorithm for integer programming with quadratic constraints," Operations Res. 21, 221-224. (A6)
.Jeroslow, R. G [1976], “Bracketing discrete problems by two problems of linear optimization,” Proc. First Symp. on Operations Research (at Heidelberg), Verlag Anton Hain, Meisenheim, 205-216. (A6)
260Johnson, D. B., and S. D. Kashdan [19761, “Lower bounds for selection in XA-Y and other multisets," Report No. 183, Computer Science Department, Pennsylvania State University, University Park, PA (to appear J. Assoc. Comput. Mach). (5.1; 7.3; A2.1; A2.3; A3.2)
.Johnson. D. B., and T. Mizoguchi [19781, “Selecting the Kth element in XA-Y and Xi+X2+ • •/ +Xm," SIAM J. Comput. 7, 147-153. (A3.2)
.Johnson, D. S. [19731, Near-Optimal Bin Packing Algorithms, Doctoral Thesis, Dept, of Mathematics, Massachusetts Institute of Technology, Cambridge, MA. (6.1; 6.3)
.Johnson, D. S. [1974a], “Approximation algorithms for combinatorial problems," J. Comput, System Sci. 9, 256-278. (6.1)
Johnson, D. S. [1974b], "Worst case behavior of graph coloring algorithms," Pro. Sth Southeastern Conference on Combinatorics. Graph Theory, and Computing, Util- itas Mathematica Publishing, Winnipeg,-513-527. (6.1)
-265., Johnson, D. S„ A. Demers, J. D. Ullman, M. R. Garey, and R. L. Graham [1974], "Worst-case performance bounds for simple one-dimensional packing algorithms," SLAM J. Comput. 3, 299-325 (6.1)
Johnson, D. S., J. K. Lenstra, and A. H. G. Rinnooy Kan [1978], “The complexity of the network design problem," Networks (to appear). (A2.1)
Johnson, D. S., and F. P. Pre?arata [1978], "The densest hemisphere problem, Theor. Comput. Sci. 6, 93-107, (A6)
Johnson, D. S. See also Brucker, P.; Even, S.; Fraenkel, A. S.; Garey, M. R.
Johnson, E. L. See Edmonds, J.
Johnson, S. C. See Ано, A. V.
Johnson, S. M. [1954], "Optimal two- and three-stage production schedules with setup times included," Naval Res. Logist. Quart. 1, 61-68. (A5.3)
26? Jones, N. D. [1973], “Reducibility among combinatorial problems in log» space,” Proc. 7th Ann. Princeton Corf. on Information Sciences and Systems, Dept, of Electrical Engineering, Princeton University, Princeton, NJ, 547-551. (7.5)
Jones, N. D. [1975], “Space-bounded reducibility among combinatorial problems,” J. Comput. System Sci. 11, 68-85. (7.5)
Jones, N. D., and W. T. Laaser [1976], “Complete problems for deterministic polynomial, time,” Theor. Comput. Sci. 3, 105-117. (7.5)
Jones, N. D„ L. H. Landweber, and Y. E. Lien [1977], “Complexity of some problems in Petri nets," Theor. Comput. Sci. 4, 277-299. (A 12)
Jones, N. D., Y. E. Lien, and W. T. Laaser [1976], "New problems complete for nondeterministic log space,” Math. Svstems Theory 10, 1-17. (7.5)
Jones; N. D., and S. S. Muchnik [1977], "Even simple programs are hard to analyze,” J. Assoc. Comput. Mach. 24, 338-350. (Al 1:2)
Jones, N. D., and S. Skyum [1976], '‘Complexity of some problems concerning L systems (preliminary report),” Report No. DA1MI PB-67, University of Aarhus, Aarhus, Denmark. (A10.2)
Jones, N. D., and S. Skyum [1977], ‘‘Recognition of deterministic ETOL languages in logarithmic space," Information and Control 35, 177-181. (A10.2)
Kameda, T. See Abdel-Wahab, H. M.; Ibaraki; T.
Kanellakis, P. C. See Papadimitriou, С. H.
Karaganis, J. J. [1968], “On the cube of a graph," Canadi Math. Bull. 11, 295- 296. (A 1.3)
Kariv, O., and S. L. Hakimi [1976a], “An algorithmic approach to network location problems — Part 1: the p-centers," unpublished manuscript. (.42.5)
Kariv, 0., and S. L. Hakimi [1976b], “An algorithmic approach to network loca: 'ion problems — Part 2: the p-medians,” unpublished manuscript. 612.5J
28O.Karp, R. М. [1972], “Reducibility among combinatorial problems,” in R. E. Miller and J. W. Thatcher (eds.), Complexity of Computer Computations, Plenum Press, New York, 85-103. (1.5; 3.1; 5.2; 7.1; 7.4; Al.l; A1.2; A1.3; A2.1; A2.2; A3.1; A3.2; A5.1; Аб; A10.1)
Karp, R. M. [1975a], “On the complexity of combinatorial problems,” Networks 5, 45-68. (A2.4)
282.Karp, R. M. [1975b], “The fast approximate solution of hard combinatorial problems," Proc. 6th Southeastern Conference on Combinatorics, Graph Theory, and Computing, Utilitas Mathematica Publishing, Winnipeg, 15-31. (6.3)
Z83.Karp, R. M. [1976], “The probabilistic analysis of some combinatorial search algorithms," in J. F. Traub (ed.), Algorithms and Complexity: New Directions and Recent Results, Academic Press, New York, 1-19. (6.3)
ЖКакр, R. M. [1977], “Probabilistic analysis of partitioning algorithms for the traveling-salesman problem in the plane," Math. Oper. Res. 2, 209-224. (6.3)
285Karp, R. M„ A. C. McKellar, and С. K. Wong [1975], “.Near-optimal solutions to a 2-dimensional placement problem," SIAM J. Comput. 4, 271-286, (6.1)
Karp, R. M. See also Edmonds, J.; Held, M.; Hopcroft, J. E.
Kasami, T. See Araki, T; Fujii, M.; Sugiyama, Y.
Kashdan, S. D. See Johnson, D. B;
286.Kaufman, M. T. [1974], “An almost-optimal algorithm for the assembly line scheduling problem," IEEE Trans. Computers C-23, 1169-1174. (6.1)
Z87.Kernighan, B." W. [1971], “Optimal sequential partitions of graphs," J. Assoc. Comput. Mach. 18, 34-40. (A2.2)
KlM, С. E. See Frederickson, G. N.; Ibarra, О. H.
28&K1RKPATRICK, D. G., and P. Hell [1978], “On the complexity of a generalized matching problem,” Proc. 10th Ann,. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 240-245. (Al.l)
Z89.Kise, H., T." Ibaraki, and H. Mine [1978], “A solvable case of the one-machine scheduling problem with ready and due times,” Operations Res. 26, 121-126. (A5.1)
ZDOXlee, V. [1978], private communication. (A6)
291.Klee, V., and G. J. Minty [1972], “How good is the simplex algorithm?," in 0, Shisha (ed.), Inequalities III, Academic Press, New York, 159-175". (1.3)
292KLEENB, S. C. [1956] , “Representation of events in nerve nets .and finite automa-- ta,” in С. E. Shannon and M. McCarthy (eds.). Automata Studies, Annals of Math. Studies, No. 34, Princeton University Press, Princeton, NJ, 3-41. (A10.1)
Klein, M. See Florian, M.
Klipker, I. A. See Gol-dberg, M. K.
29XKnuth, D. E. [1973], private communication. (45.1)
2MKnuth, D. E. [1974a], "A terminological proposal," SIGACT News 6:1, 12-18. (5.2)
285.Knuth, D. E. [1974b], "Postscript about NP-hard problems," SIGACT News 6:1, 1H6. (5.2)
Knuth, D. E. [1974c], private communication. (A2.4)
Knuth, D. E. See also Garey, M. R.
Kou, L. T. [1977], “Polynomial complete consecutive information retrieval problems," SIAM J. Comput. 6, 67-75. (A4.2)
Kou, L. T., L. J. Stockmeyer, and С. K. Wong [1978], “Covering edges by cliques with regard to keyword conflicts and intersection graphs," Comm. ACM21, 135-138. (Al.1; Al.5)
291 Kozen, D. [1976], “Complexity of finitely presented algebras,” Report No. 76-294, Dept, of Computer Science, Cornell University, Ithaca, NY. (A 7.3)
361 Kozen, D. [1977a], “Complexity of finitely presented algebras," Proc. 9th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 164-177. (7.1; 7.5; A7.3; A13)
30L Kozen, D. [1977b], “Finitely presented algebras and the polynomial time hierarchy,” Report No. 77-303, Dept, of Computer Science, Cornell University, Ithaca, NY. (7.1;A7.3)
302 Kozen, D. [1977c], “First order predicate logic without negation is NP-complete,” Report No. 77-307, Dept, of Computer Science, Cornell University, Ithaca, NY. (A9.2)
Kozen, D. [1977dl, “Lower bounds for natural proof systems." Proc. I8th Ann. Symp. on Foundations of Computer Science, IEEE Computer Society, Long Beach, CA, 254-266. (A10.1;A12)
30t. Kozen, D. [1978], “A clique problem equivalent to graph isomorphism," unpublished manuscript. (7.1; A13)
Krishnamoorthy, M. S. [1975], “An NP-hard problem in bipartite graphs," SIGACTNews 7:1, 26. (A1.3)
301 Krishnamoorthy, M. S., and N. Deo [1977al, “Node deletion NP-complete problems," Technical Report, Computer Centre, Indian Institute of Technology, Kanpur, India. (A 1.2)
Krishnamoorthy, M. S., and N. Deo [1977b], “Complexity of the minimum dummy activities problem in a Pert network,” Technical Report, Computer Centre, Indian Institute of Technology, Kanpur, India. (A2.5)
Kruskal, J. B. [19561, “On the shortest spanning subtree of a graph and the traveling salesman problem," Proc. Amer. Math. Soc. 7, 48-50. (6.1)
Kucera, L. [1976], “The complexity of clique finding algorithms,” unpublished manuscript. (6.2)
Kuroda, S. Y. [1964], “Classes of languages and linear-bounded automata," Information and Control 7, 207-223. (A 10.2)
Laaser, W. T. See Jones, N. D.
Labetoulle, J., E. L. Lawler, J. K. Lenstra, and A. H. G. Rinnooy Kan [1978], “Preemptive scheduling of uniform machines,” unpublished manuscript. (A5.1; A5.2)
Labetoulle, J. See also Lawler, E. L.
312Ladner, R. E. [1975a], “On the structure of polynomial time reducibility,” J. Assoc. Comput. Mach. 22, 155-171. (7.1)
Ladner, R. E. [1975b], “The circuit value problem is log space complete for P,” SIGACTNews 7:1,18-20. (7.5).
Ladner, R. E [1977], “The computational complexity of provability in systems of modal propositional logic,” SIAM J. Comput. 6, 467-480; (A9.2)
31$. Ladner, R. E., And N. Lynch [1976], “Relativization of questions about log space computability," Math. Systems Theory 10, 19-32. (7.6)
. Ladner, R. E., N. A. Lynch, and A. L. Selman [1975], “A comparison of polynomial time reducibilities," Theor. Comput. Set. 1,103-123: (7.1; 7.2)
Ladner, R. E See also Dobkin, D.
Lageweg, B. J., E. L. Lawler, J. K. Lenstra, anp A. H. O. Rinnooy Kan [1978], “Computer aided complexity classification of deterministic scheduling problems,” unpublished manuscript, Mathematisch Centrum, Amsterdam. (5.2)
Lageweg, B. J., and I. K. Lenstra [19771, private communication. (A5.2)
31$. Lageweg, B. J.‘, J. K. Lenstra, and A. H. G. Rinnooy Kan [1976], “Minimizing maximum lateness on one machine: computational experience and some applications," Statlstlca Neerlandica 30, 25-41. (A5.1)
Lam, S. See Horvath, E. C.
Landweber, L. H. See Jones, N. D.
324Langmaack, H. [1973], “On correct procedure parameter transmission In higher programming languages," Acta Informal. 2,110-142. (A11.2)
LaPaugh, A. S., and R. L. Rivest [1978], “The subgraph homeomorphism problem," Proc. 10th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 40-50. (A 13)
Lawler, E. L. [1972], “A procedure for computing the К best solutions to discrete optimization problems and its application to the shortest path problem." Management Sci. 18, 401-405. (5.1; A2.1; A3.2)
Lawler, E. L. [1973], “Optimal sequencing of a single machine subject to precedence constraints," Management Sci. 19, 544-546. (A5.1)
324,Lawler, E. L. [1976a], Combinatorial Optimization: Networks and Matroids, Holt, Rinehart and Winston, New York. (6.1; Al.l; A1.3; A2.3; A2.4; A3.1; A6; AS; A13)
Lawler, E. L. [1976b], "A note on the complexity of the chromatic number problem," Information Processing Lett. 5, 66-67. (6.0)
Lawler, E. L. [1976c], “Sequencing to minimize the weighted number of tardy jobs.y Rev. Francaise Automat. Informal. Recherche Operationneile Ser. Bleue 10.5 (suppl.), 27-33. (AS. I)
Lawler, E. L. [1976d], private communication. (A13)
324 Lawler, E. L. [1977a], “A pseudopolypomial algorithm for sequencing jobs.to minimize total tardiness," Ann. Discrete Math. 1, 331-342. (4.2.2; A5.1)
Lawler, E L. [1977b], “Fast approximation algorithms for knapsack problems," Proc. 18th Ann. Symp. on Foundations of Computer Science, IEEE Computer Sc ciety, Long Beach, CA, 206-213. (6.1)
331Lawler, Е. L. [1978], “Sequencing jobs to minimize total weighted completion time subject to precedence constraints,” Ann. Discrete Math. Z, 75-90. (A5.1)
33LLawler, E. L, and J. Labetoulle [1978], “Preemptive scheduling of unrelated parallel processors," J. Assoc. Comput. Mach, (to appear). (AS.2)
332LAWLER, E. L., AND J. M. Moore [1969], “A functional equation and its applications to resource allocation and sequencing problems,” Management Sci. 16, 77- 84. (4.2.2; AS. 1)
Lawler, E. L. See also Gonzalez, T.; Graham, R. L; Labetoulle, J.; Lageweg, B. J.
333.Leggett, E. W., Jr [1977], Tools and Techniques for Classifying NP-Hard Problems, Doctoral Thesis, Dept, of Computer and Information Sciences, Ohio State University, Columbus, OH. (7.2)
Lempel, A. See Even, S.
334.Lenstra, J. K. [1977], private communication. (A5.1; A5.3)
335,Lenstra, J. K., and A. H. G. Rinnooy Kan [1976], “On general routing problems," Networks 6, 273-280. (A2.3)
336.Lenstra, J. K., and A. H. G. Rinnooy Kan [1978a], “Complexity of scheduling under precedence constraints," Operations Res. 26, 22-35. (6.2; A5.1; A5.2)
337.Lenstra, J. K., and A. H. G. Rinnooy Kan [1978b], “Computational complexity of discrete optimization problems,." Ann. Discrete Math, (to appear). (A5.3)
838lLenstra, J. К., A. H. G. Rinnooy Kan, and P. Brucker [1977] “Complexity of machine scheduling problems,” Ann. Discrete Math. 1, 343-362. (A5.1; AS.2: A5.3)
ЯЗ-Lenstra, J. K„ A. H. G. Rinnooy Kan, and M. Florian [19*78], “Deterministic production planning: algorithms and complexity,” unpublished manuscript. (A5.4)
Lenstra, J. K. See also Graham, R. L.; Johnson, D. S.; Labetoulle, J.; Lageweg, B. J.
3S0.Levin, L. A. [1973], “Universal sorting problems," Problemy Peredaci Informacii 9, 115-116 (in Russian). English translation in Problems of Information Transmission 9, 265-266. (5.2; A1.4)
3M. Lewis, H. R. [1978], “Satisfiability problems for propositional calculi," unpublished manuscript. (A9.1)
34Z.Lewis, h. R., and С. H. Papadimitriou [1978], private communication. (AS)
332iLewis, J. M. [1976], private communication. (Al.2)
1%3.Lewis, J. M. [1978], “On the complexity of the maximum subgraph problem," .Proc. 10th A'nn. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 265-274. (Al.2)
Lewis, P. M. See Hartmanis, J.; Rosenkrantz, D. J.
344.Lichtenstejn, D. [1977], “Planar .satisfiability and its uses," StAM J. Comput. (to appear). (A2.5;A9.1)
345.Lichtenstein, D-, AND M. Sipser [1978], “GO is Pspace hard," Proc. 19th Ann. Symp. on Foundations of Computer Science, IEEE Computer Society, Long Beach, CA, 48-54. (7.4; AS)
Lichtenstein, D. Г. See also Even, S.
3‘iS.Lieberherr, K. [1977], private communication. (All.2)
Lien, Y. E. See Jones, N. D.
MZLin, S. [1975], “Heuristic programming as an aid to network design,” Networks 5, 33-43. (6.0)
348.LipshitZ, L. [1977], “A remark on the Diophantine problem for addition and divisibility," unpublished manuscript. (A7.1)
349.Lipshitz, L. [1978], “The Diophantine problem for addition and divisibility," Trans. Amer. Math. Soc. 235, 271-283. (А7Л)
350.LIPSKY, W., Jr [1977a], “Two NP-complete problems related to information retrieval,” in Fundamentals of Computation Theory, Lecture Notes in Computer Science, Springer, Berlin, (to appear). (A4.3)
351Lipsky, J., Jr [1977b], “One more polynomial complete consecutive retrieval problem," Information Processing Lett. 6, 91-93. (A4.2)
352.Lipsky, W., Jr [1978], private communication. (A4.2.1
353.Lipton, R. J. [1975], “The reachability problem requires exponential space,” Report No. 62, Dept, of Computer Science, Yale University, New Haven. CT. (A12)
354.Lipton, R. J., AND R. E. TARJAN [1977], “Applications of a planar separator theorem,"- Proc. 18th Ann. Symp. on Foundations of Computer Science, IEEE Computer Society, Long Beach, CA, 162-170. (6.1; 6.2)
355.L1PTON, R. J., and Y. Zalcstein [1977], “Word problems solvable In logspace," J. Assoc. Comput. Mach. 24, 522-526. (7.5)
Lipton, R. J. See also Dobkin, D.
356.Litvintchouk, S. D., and V. R. Pratt [1977], “A proof checker for dynamic logic," Proc. Sth Internal. Joint Conf. on Artificial Intelligence, International Joint Conferences on Artificial Intelligence, Dept, of Computer Science, Carnegie- Mellon University, Pittsburgh, PA, 552-558. (A9.2)
357.L1U, C. L. [1968], Introduction to Combinatorial Mathematics, McGraw-Hill, New York. (6.1. A1.3)
35&Lic, P. C.. and R. C. Geldmacher [1978], “On the deletion of nonplanar edges of a graph,” SIAM J. Comput. (to appear). (3.1.4;3.2.2; A1.2)
9.1.LOYD, E. L. [1977], “On triangulations of a set of points in the plane,” Proc. 18th Ann. Symp. on Foundations of Computer Science, IEEE Computer Society, Long Beach, CA, 228-240. (A2.5; A13)
36U.I.OVASZ, L. [1973], “Coverings and colorings of hypergraphs,” Proc. 4th Southeastern Conference on Combinatorics, Graph Theory, and Computing, Utilitas Mathematica Publishing, Winnipeg, 3-12. (A3.1)
Lovasz, L. See also Burr, S.
361.Lucx.HESl, G. L. [1976], A Minimax Equality for Directed Graphs, Doctoral Thesis, University Of Waterloo. Waterloo, Ontario. (Al.l)
3621.UCCHES1, ( .. L., and S. I.. Osborn 11977], "Candidate keys for relations," J. Comput. System Sci. (to appear/. tA4.3r
Luccio, F. See Grasselli, A.
881 Luckham, D. C„ D. M. Park, and M. S. Paterson [1970], “On formalised computer programs,” J. Comput. System Set 4, 220-249. (A 11.2)
36% Lueker, G. S. [1975], “Two NP-complete problems in nonnegative integer programming,” Report No. 178, Computer .Science Laboratory, Princeton University, Princeton, NJ. 646J
Lueker, G. S. See also Booth, k. S.; Rose, D. J.
Lukes, J. A. [1974], “Efficient algorithm for the partitioning of trees," IBM J. Res. Develop. 18, 217-224. (A2.2)
Lynch, J. F. [1975], “The equivalence of theorem proving and the interconnection problem,” ACM S1GDA Newsletter5:3. (A2.4)
Lynch, J. F. [1976], private communication. (A2.4)
Lynch, N. [1977], “Log space recognition and translation of parenthesis languages,” J. Assoc. Comput. Mach. 24, 583-590. (7.5)
Lynch, N. [1978], “Log space machines with multiple oracle tapes," Theor. Comput. Set. 6, 25-39. (7.6)
Lynch, N. See also Ladner, R. E.
Maheshwari, S. [1976], “Traversal marker placement problems are NP-complete,” Report No. CU-CS-092-76, Dept, of Computer Science, University of Colorado, Boulder, CO. (Al.2; Al.5) "
Maheshwari, S. N. See also Gabow, H. N.
Maier, D. [1977], “The complexity of some’ problems on subsequences and supersequences,” J. Assoc. Comput. Mach. 25, 322-336. (A4.2)
Maier, D., and J. A. Storer [1977], “A note on the complexity of the superstring . problem," Report No. 233, Computer Science Laboratory, Princeton University, Princeton, NJ. (A1.2; A4.2)
Manders, K., and L. Adleman [1978], “NP-complete decision problems for binary quadratics,” J. Comput. System Sci. 16, 168-184. (A7.1; A7.2)
Manders, K: See also Adleman, L.
Masek, W. J. [1978], “Some NP-complete set covering problems,” unpublished manuscript. (a4.2;A9.I)-
Mathon, R. [1978], “A note on the graph isomorphism counting problem,'* Information Processing Lett. (to appear). (A 13)
Matuasevic, Y. V. [1970], “Enumerable sets are Diophantine,” Dokl. Akad. Nauk SSSR 191, 279-282 (in Russian). English translation in Soviet Math. Dokl. 11, 354-357. (1.4)
Matuasevic, Y., and J. Robinson [1775], “Reduction of an arbitrary Diophantine equation to one in 13 unknowns,” Acta Arith. 27, 521-553. (A7.2)
Matula, D. W. See Edmonds, J.
Maxwell, W. L. See Conway, R. W.
McDiarmid, C. [1976], “Determining the chromatic number of a graph," Report No. STAN-CS-76-576, Computer Science Dept., Stanford University, Stanford.
. CA. (7.6)
McDiarmid, С. See also Grimmet, G. R.
McEliece, R. J. See Berlekamp, E. R.
McHugh, J. A. M. See Boesch, F. T.
McKellar, A. C. See Karp, R. M.
McNaughton, R. [1959], “Scheduling with deadlines and loss functions,” Management Sci. 6, 1-12. ( 5.2)
381Megiddo, N. [1977], private communication. (A2.3)
Megiddo, N. See also Galil, Z.
Melter, R. A. See Harary, F.
Merlin, P. M. See Chandra, A. K.
381.Meyer, A. R. [1975], “Weak monadic second order theory of successor is not ele- mentary recursive," in R. Parikh (ed.), Logic Colloquium, (Proc. Symposium on Logic, Boston, 1972), Lecture Notes In Mathematics, Vol. 453, Springer, Berlin, 132-154. (7.6)
MLMeyer, A. R., and D. M. Ritchie [1967], “The complexity of loop programs," Proc. 22ndNatl. Conf, of the ACM, Thompson Book Co., Washington, DC, 465- 469. (A 11.2)
38J.MeVer, A. R., and M. 1. Shamos [1977], “Time and Space," in A. K. Jones (ed.). Perspectives on Computer Science, Academic Press, New York, 125-146. (7.5)
JDAMeyer, A. R., and L. J. Stockmeyer [1972], “The equivalence problem for regular expressions with squaring requires exponential time," Proc. 13th Ann. Symp. on Switching and Automata Theory, IEEE Computer Society, Long Beach, CA, 125-129. (1.4; 7.2; 7.4; 7.6)
Meyer, A. R. See also Bauer, M.; Seiferas, J. 1.; Stockmeyer, L. J.
Miller, G. A. See Chomsky, N.
385.Miller, G. L. [1976], “Riemann’s Hypothesis and tests for primality," J. CompUt. System Sci. 13, 300-317. (7.1; A13)
.Miller, G. L. [1977], “Graph isomorphism, general remarks," Proc. 9th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 143-150. (7.1; A13)
. Miller, G. L. [1978], “On the л10*" isomorphism technique: A preliminary report," Proc. 10th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 51-58. (A 13)
Miller, G. L. See also Garey, M. R.
Miller, L. W. See Conway, R. W.
Mine, H. See Kise, H.
388-Minsky, M. [1967], Computation: Finite and Infinite Machines, Prentice Hall, Engle' wood Cliffs, NJ. (2.2)
.Minty, G. J. [1977],“On maximal independent sets of vertices in claw-fre graphs,” unpublished manuscript. (Al.2)
Minty, G. J. See also Klee, V.
Mitchell, S., and S. Hedetniemi [19771, “Edge domination in trees," Proc. 8th Southeastern Conference on Combinatorics, Graph Theory, and Computing, Ulilitas Mathematica Publishing, Winnipeg, 489-509,1 (Al.I)
Mitchell, S. See also Farley, A.
Mizoguchi, T. See Johnson, D. B.
Monma, C. L., and J. B. Sidney [1977],, “A general algorithm for optimal job sequencing with series-parallel, precedence constraints," Report No. 34,7. School of Operations Research, Cornell University, Ithaca, NY. (AS.'l)
Moore, J, M. [1968], “An n job, one machine sequencing algorithm for minimizing the number of late jobs," Management Sei. 15, 102-109. (AS. I)
Moore, J. M. See also Lawler, E. L.
Morrow, C.', and S. Goodman [1976], “An efficient algorithm for finding a longest cycle in a tournament," Proc. 7th Southeastern Conference on Combinatorics, Graph Theory, and Computing, Ulilitas Mathematica Publishing, Winnipeg; 453- 462. (AI.3; A2.3)
Muchnik, S. S. See Jones, N. D.
Munro, 1, See Robertson, E.
Muntz, R. R., and E. G. Coffman, Jr [1969], “Optimal preemptive scheduling on two-processor systems," IEEE Trans. Computers С-18, 1014-1020. (AS,2)
Muntz, R. R., and E. G. Coffman, Jr [1970], “Preemptive scheduling of realtime tasks on multiprocessor systems," J. Assoc. Comput. Mach. 17, 324-338. (A5.2)
. MURTY, K. G. [1972], “A fundamental problem in linear inequalities with applications to the traveling salesman problem," Math. Programming.!, 296-308. (A6)
Murty, K. G. [1976], Linear and Combinatorial Programming, John Wiley and. Sons, Inc., .New York. (A 13)
Nelson, G., and D. С. Oppen [1977], “Fast decision algorithms based on union and find," Proc. 18th Ann. Symp. on Foundations, of Computer Science, IEEE Computer Society, Long Beach, CA, 114-119. (A9.2)
, Hemhauser, G. L., L. A. Wolsey, and M. L. Fisher [1978J, “An analysis of approximations for maximizing submodular set functions — I,” Math. Programming 14, 265-294. (6.1)
Nemhauser, G. L. See also Cornuejols, G., Garfinkel, R. S.
Nesetril, J., and A. Pultr [1977], “The complexity of a dimension of a graph,’ Proc. Wroclaw Copf. on Foundations of Computer Science (to appear). (A 1.5)
^Ul. Nesetril, J., and V. Rode [19771, “A simple proof of Galvin-Ramsey properties of finite graphs and a dimension of a graph," unpublished manuscript. (Al.5)
NieVergelt, J, See Reingold, E. М.
Nigmatullin, R. G. [1975], “Complexity of the approximate solution of combinatorial problems," Dokl. Akad. Nauk. SSSR 224, 289-292 (in Russian). English translation in Soviet Math. Dokl. 16. 1199-1203,. (6.2)
Ninomiya, K. See Fujii, М.
Ogden. W. F. See Jazayer'i. M,
Okui. J. See Araki, T.; Sugiyama, Y.
Opatrny, J. [1978], “Total ordering problem,” unpublished manuscript. (A12)
Opatrny, J., and K. Culik, II [1975], “Time complexity of L languages,” Abstracts of Papers: Conference on Formal Languages, Automata, and Development, University of Utrecht, Netherlands. (A 10.2)
Oppen, D. C. See Nelson, G.
405 Orlin, J. [1976], “Contentment in graph theory: covering graphs with cliques,,” unpublished manuscript. (A 1.1)
Orlin, J. B. See also Bartholdi, J. J., III.
Orlova, G. I., and Y. G. Dorfman [1972], “Finding the maximum cut in a graph," Engrg. Cybernetics 10, 502-506. (4.1; A 1.2; A2.2)
Osborn, S. L. See Lucchesi, C. L.
Osterweil, L. See Gabow, H. N.
Palmer, E. M. See Harary. F.
Papadimitriou, С. H. [1976a], ‘The NP-completeness of the bandwidth minimization problem,” Computing 16, 263-270. (A1.3; A4.2)
Papadimitriou, С. H. [1976b], “On the complexity of edge traversing,” J. Assoc. Comput. Mach. 23,.544-554. (A2.3)
Papadimitriou, С. H. [1976c], “The complexity of the capacitated tree problem,” Report No. TR-21-76, Center for Research in Computing Technology, Harvard University, Cambridge, MA. (A2.1)
Papadimitriou, С. H. [19771, “The Euclidean traveling salesman problem is NP- complete,” Theor. Comput Scl. 4, 237-244. (A2.3)
41L Papadimitriou, С. H. [1978a], “The adjacency relation on the traveling salesman polytope is NP-compiete," Math. Programming 14, 312-324. (A6)
Papadimitriou, С. H. [1978b], “Efficient search for rationals," Report No. TR-01- 78, Center for Research in Computing Technology, Harvard University, Cambridge, MA. (A13)
Papadimitriou, С. H. [1978c], “Serializability of concurrent updates," Report No. TR-14-78, Center for Research in Computing Technology, Harvard University, Cambridge, MA. (A4.3)
Papadimitriou, С. H. [1978dl, private communication. (Al.l)
Papadimitriou, C. H„ P. A. Bernstein, and J. B. Rothnie [1977], “Some computational problems related to database concurrency control," Proc. Conf. on Theoretical Computer Science, University of Waterloo, Waterloo, Ontario, 275- 282. (A4.3)
416 Papadimitriou, С. H., and P. C. Kanellakis [1978], “Flowshop scheduling with limited temporary storage," unpublished manuscript. (A5.3)
417,- Papadimitriou, С. H., and K. Steiglitz [1976], “Some complexity results for the traveling salesman problem,” Proc. Sth Ann. ACM Symp. on Theory of Comput- Ing, Association for Computing Machinery, New York, 1-9. (A 1.3)
418. Papadimitriou, С. H., and M. Yannakakis [1978a], “On the complexity of minimum spanning tree problems," unpublished manuscript. (A2.1)
4И;РлРАШМ1ткюи, С. И., AND М. Yannakakis [1978b], “Scheduling interval-ordered tasks," Report No. TR-11-78, Center for Research in Computing Technology, Harvard Universty, Cambridge, MA. (A 5.2)
Papadimitriou, С. H. See also Garey, M. R.; Lewis, H. R.
Park, D. M. See Luckham, D, C.
Paterson, M. S. 11967], Equivalence Problems in a Model of Computation, Doctoral Thesis, Cambridge University, Cambridge, England. (Al 1.2)
, Paterson, M. S., and M. N. Wegman [1978], “Linear unification,” J. Comput. System Sci. 16, 158-167. (A7.3.A9.2)
Paterson, M. S..See also Bauer, M.; Luckham, D. C.
Paul, W. J. [1977], “А 2.5л lower bound on the combinational complexity of Boolean functions," SIAM J. Comput. 6, 427-443. fZ.61
Paull, M., and S. Unger [1959], “Minimizing the number of states in incompletely specified sequential switching functions,” IRE Trans. Electron. Comput. EC-8, 356-367. (A10.1)
Perl, Y., and Y. Shiloach [1978], “Finding two disjoint paths between two pairs of vertices in a graph," J. Assoc. Comput. Mach. 25,1-9. (A2.4)
425.Perl, Y., and S. Zaks [1978], private communication. (Al.5)
Perl, Y. See also Itai, A.
426 Pfleeger, C. F. [1973], “State reduction in incompletely specified finite-Stale machines," IEEE Trans. Computers C-22, 1099-1102. (A10.1)
427. Pfleeger, C. F. [1974], Complete Sets and Time and Space Bounded Computation, Doctoral Thesis, Computer Science Dept., Pennsylvania State University, University Park, PA. (A 10.1)
421:Pjppenger, N„ and L. G. Valiant [1976], “Shifting graphs and their applications,” J. Assoc. Comput. Mach. 23, 423-432. (7.6)
Plaisted, D. [1976], “Some polynomial and integer divisibility problems are NP- hard,” Proc. 17th Ann. Symp. on Foundations of Computer Science, IEEE Computer Society, Long Beach, CA, 264-267. (A3.1; Аб; A7.1; A7.2; A7.3)
Plaisted, D. [1977a], “Sparse complex polynomials and polynomial reducibility," J. Comput. System Sci. 14, 210-221. (A7.1; A7.2)
431/Plaisted, D. [1977b], “New NP-hard and NP-complete polynomial and integer divisibility problems," Proc. 18th Ann. Symp. on Foundations of Computer Science, IEEE Computer Society, Long Beach, CA, 241-253. (7.1; A 7.1; A 7.2)
Plesni'k, J. [1978], “The NP-completeness of the Hamiltonian cycle problem in planar digraphs with degree bound two," unpublished manuscript. (Al.3)
Pnueli, A. See Even, S.
POLJAK, S. [1974], “A note on stable sets and colorings of graphs," Comment. Math. Univ. Carolinae 15, 307-309. (A1.2)
Pratt, V. [1975], “Every prime has a succinct certificate,” SIAM J. Comput. 4, 214-220. (7.1; Al.3)‘
Pratt, V. [1977], “Two easy theories whose combination is hard," unpublished manuscript, (A9.2)
Pratt, V. See also Litvintchouk, S. D.
Preparata, F. P. See Johnson, D. S.
PrOmel, H. J. [1978], private communication. (A2.4)
Proskurowski, A. See Farley, A.
Pudlak, P. [1975], “Polynomially complete problems in the logic of automated discovery,” in Mathematical Foundations of Computer .Science, Lecture Notes in Computer Science, Vol. 32, Springer, Berlin, 358-361. (A9.2)
43b Pudlak, P., and F. N. Springsteel [1975], “Complexity in mechanized hypothesis formation,” unpublished manuscript. (A12)
Pultr, A. See Nesetril, J.
439,Qjueyranne, M. [1976], private communication. (Al.5)
44(LRabin, M. O. [1958], “Recursive unsolvability of group theoretic problems,” Ann. of Math. 67, 172-194. (1.4)
441.Rabin, M. O. [1976], “Probabilistic algorithms,” in J. F. Traub (ed.), Algorithms and Complexity: New Directions and Recent Results, Academic Press, New York, 21-39. (6.3)
Rabin, M. O. See also Fischer, M. J.
Rafsky, L. [1977], private communication. (A 12)
Лао, M. R. See Dantzig. О. B.
Ratliff, H. D. See Bartholdi, J. J„ III.
441 Reif, J. H. [1978a], “А/note on the complexity of imbedding extension problems," unpublished manuscript. (A 13)
444.Reif, H. J. [1978b], “Polynomial time recognition of graphs of fixed genus," unpublished manuscript. (A 13)
Reingold, E. M., J. Nievergeld, and N. Deo [1977], Combinatorial Algorithms Theory and Practice, Prentice-Hall, Inf., Englewood Cliffs, NJ. (4.0)
Reiss, S. P. [1977a], Inverse Translation: the Theory of Practical Automatic Programming, Doctoral Thesis, Dept, of Computer Science, Yale University, New Haven, СТ. (A10.2)
Reiss, S. P. [1977b], “Statistical database confidentiality," Report No. 25, Dept, of Statistics, University of Stockholm, Stockholm, Sweden. (A4.3)
Reiss, S. P., and D. P. Dobkin [1976], “The complexity of linear programming,” Report No. 69, Dept, of Computer Science, Yale University, New Haven, CT. (7.1; A6; A13)
<eiss, S. P. See also Dobkin, D.
449,'Reyner, S. W. [1977], “An analysis of a good algorithm for the subtree problem," SIAM J. Comput. 6, 730-732. (4.2.2; A1.4)
Rinnooy Kan, A. H. G. See Graham, R. L.; Johnson, D. S.; Labetoulle, J.; Lageweg, B. J.; Lenstra, J. K.
Ritchie, D. M. See Meyer, A. R.
Rivest, R. L. See Hyafil, L.; LaPaugh, A. S,
Robertson, Е. L. [1977], “Code generation for short/iong address machines,” Report No. 1779, Mathematics Research Center, University of Wisconsin, Madison, WI. (AIM)
Robertson, E. L. [1978], “Microcode bit optimization is NP-complete,” IEEE Trans. Computers (to appear). (AIM)
Robertson, E., and I. Munro [1978], “NP-completeness, puzzles, and games," Utilitas Math. 13, 99-116. (7.4; A8)
Robinson, J. See Matuasevic, Y.
Rodeh, M. See Itai, A.
Root, V. See Nesetril, J.
, Rogers, H., Jr [19671, Theory of Recursive Functions and Effective Computability, McGraw-Hill, New York. (7.2)
Rose, D. J., and R. E. Tarjan [1978], “Algorithmic aspects of vertex elimination on directed graphs," SIAM J. Appl. Math. 34, 176-197. (A 1.3)
Rose. D., R. Tarjan, and G. Lueker [1976], “Algorithmic aspects of vertex elimination on graphs," SIAM J. Comput. 5, 266-283. (A 13)
Rosenkrantz, D. J. [1969], “Programmed grammars and classes of formal languages," J. Assoc. Comput. Mach. 16, 107т131. (A10.2)
457 Rosenkrantz, D. J., R. E. Stearns, and P. M. Lewis [1977], “An analysis of several heuristics for the traveling salesman problem," SIAM J. Comput. 6, 563-581. (6.1)
Rosenkrantz, D. J. See also Hunt, H. B., III.
458 Rosenthal, A. [1974], Computing Reliability of Complex Systems, Doctoral Thesis, Dept, of Electrical Engineering and Computer Science, University of California, Berkeley, CA. (A2.2)
459 Rosenthal, A. [1977], “Computing the reliability of a complex network,” SIAM J. Appl. Math. 32, 384-393. (6.2)
Rothnie, J. B. See Papadimitriou, С. H.
Rounds, W. C. [1973], “Complexity of recognition in intermediate level languages," Proc. 14th Ann. Symp. on Switching and Automata Theory, IEEE Computer Society, Long Beach, CA/145-158. (A10.1; A10.2)
Rounds, W. C. See also Jazayeri, M.
Rozenberg, G. See Herman, G. T.
Russo, W. L. See Harrison, M. A.
Rutledge, J. [1964], “On lanov’s program schemata," J. Assoc. Comput. Mach. 11,1-9. (A11.2)
46Z.Sagiv, Y., and M. Yannakakis [1978], “Equivalencce among relational expressions with the union and difference operations," Report No. 241, Dept, of Electrical Engineering and Computer Science, Princeton University, Princeton, NJ. (A4.3)
Sagiv, Y. See also AHO, A. V.
463.SAHNI, S. [1974], “Computationally related problems,” SIAM J. Comput. 3, 262- 279. (5.2; Al.2; A2,4; A6; A 7.3; A12)
Sahni, S. [1975], “Approximate algorithms for the u/1 knapsack problem," Z Assoc. Comput. Mach. 22, 115-124. (6.1)
Sahni, S. [1976], “Algorithms for scheduling independent tasks," J. Assoc. Comput. Mach. 23, 116-127. (4.2.2; 6.1)
Sahni, S. [1977], “General techniques for combinatorial approximation," Operations Res. 25, 920-936. (6.3)
Sahni, S., and Y. Cho [1977a], “Scheduling independent tasks with due times on a uniform processor system," Report No. 77-7, Computer Science Dept., University of Minnesota, Minneapolis, MN. (A5.2)
Sahni, S., and Y. Cho [1977b], “Complexity of scheduling shops with no wait in process," Report No. 77-20, Computer Science Dept., University of Minnesota, Minneapolis, MN. (A5.3)
Sahni, S., and T. Gonzalez [1976], “P-complete approximation problems,” Z Assoc. Comput. Mach. 23, 555-565. (6.2; A2.3)
Sahni, S. See also Cho, Y.; Constable, R. L; Gonzalez, T.; Horowitz, E.; Ibarra, O. H.
Savitch, W. J. [1970], “Relationship between nondeterministic and deterministic tape complexities," Z Comput. System Sci. 4, 177-192. (7.4)
Savitch, W. J. [1974], “Nondeterministic log n space," Proc. Sth Ann. Princeton Conf, on Information Sciences and Systems, Dept, of Electrical Engineering, Princeton University, Princeton, NJ, 21-23. (7.5)
472.Schaefer, T. J. [1974], private communication. (Al.l)
Schaefer, T. J. [1978a], “Complexity of some two-person perfect-information games," J. Comput. SystenrSci. 16, 185-225. (7.4; AS)
Schaefer, T. J. [1978b], “The complexity of satisfiability problems," Proc. 10th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 216-226. (Al.l; A9.1; A9.2)
Schaefer, T. See also Fraenkel, R. S.
Schmidt, E. M. See Fortune, S.
475.;Seiferas, J. I., M. J. Fischer, and A. R. Meyer [1978], “Separating nondeterministic time complexity classes,” Z Assoc. Comput. Mach. 25; 146-167. (7.6)
Selman, A. L. See Baker, T. P.; Ladner, R. E.
Sethi, R. [1973], “A note on implementing parallel assignment-instructions," Information Processing Lett. 2, 91-95. (All.l)
Sethi, R. [1975], “Complete register allocation-problems," SIAM J. Comput. A, 226-248. (3.2.3; All.l)
Sethi, R. [1977a], “On the complexity of mean flow time scheduling," Math. Open Res. 2, 320-330. (A5.2)
479.Sethi, R. [1977b], private communication. (A7.3)
SETHI, R., and J. D. Ullman [1970], “The generation of optimal code for arithmetic expressions," Z Assoc. Comput. Mach. 17, 715-728. (All.l)
Sethi, R. See also Ано, A. V.; Bruno, J.; Comer, D.; Cook, S.; Downey, P. J.; Garey, M. R,; Horvath, E. c
Shamir, А. [1977], “Finding minimum cutsets in reducible graphs,” Report No. MIT/LCS/TM-85, Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA. (ALI)
Shamir, A. See also Even, S.
48Z. Shamir, E., and C. Beeri [1974], “Checking stacks and context-free programmed grammars accept P-complete languages," in J. Loeckx (ed.), Proc. 2ndColloq. on Automata, Languages, and Programming, Lecture Notes in Computer Science, Vol. 14, Springer, Berlin, 27-33. (A10.1; A10.2)
Shamos, M. 1. [1976], “Geometry and statistics: problems at the interface," in J. F. Traub (ed.). Algorithms and Complexity: New Directions and Recent Results, Academic Press, New York, 251-280. (A 12)
Shamos, M. I. See also Meyer, A. R.
Shapiro, S. D. [1977], “Performance of heuristic bin packing algorithms with segments of random length," Information and Control 35, 146-158. (6.3)
Shapley, L. S., and M. Shubik [1954], “A method of evaluating the distribution of power in a committee system," Amer. Pol. Sci. Rev. 48, 787-792. (A 12)
Shiloach, Y. [1976], “A minimum linear arrangement algorithm for undirected trees,” Report, Dept, of Applied Mathematics, Weizmann Institute, Rehovot, Israel. (ALL)
Shiloach, Y. [1978], “The two paths problem is polynomial," Report No. STAN- CS-78-654, Computer Science Department, Stanford University, Stanford, CA. (A2.4; A13)
Shiloach, Y. See also Even, S.; Itai, A.; Perl, Y.
Shubik, M. See Shapley, L. S.
Sidney, J. B. 11973], “An extension of Moore’s due date algorithm," in S. E. El- maghraby (ed.). Symposium on the Theory of Scheduling and its Applications, Lecture Noles in Economics and Mathematical Systems, Vol. 86, Springer, Berlin, 393-398. (A5.1)
Sidney, J. B. [1975], “Decomposition algorithms for single-machine sequencing with precedence relations and deferral costs," Operations Res. 23, 283-298. (A5.1)
Sidney, J. B. See also Monma, C. L.
S1MON, J. [1975], On Some Central Problems in Computational Complexity, Doctoral Thesis, Dept, of Computer Science, Cornell University, Ithaca, NY. (7.3)
Simon, J. [1977], “On the difference between the one and the many (preliminary version)," in Automata, Languages, and Programming, Lecture Notes in Computer Science, Vol. 52, Springer, Berlin, 480-491. (7.3)
Simons, B. [1978], “A fast algorithm for single processor scheduling,” Proc. 19th Ann. Symp. on Foundations of Computer Science, IEEE Computer Society, Long Beach, CA, 246-252. (A5.1)
Simons, B. See also Garey, M. R.
Sipser, M. See
Skyum, S. See Jones, N. D.
491SLATER, Р. J, [1976], “/{-domination in graphs,’’ Z Assoc. Comput. Mach. 23, 446450. (A2.5)
Slater, P. J. See also Cockayne, E.
4M.SMITH, W. E. [1956], “Various optimizers for single-state production,’’ Naval Res. Legist. Quart. 3, 59-66. (A5.1)
Solovay, R. See Baker, T.
Springsteel, F. N. See Pudlak, P.
495.Statman, R. [1976], private communication. (A1.4;A9.I)
Stearns, R. E. See Hartmanis, J.; Rosenkrantz, D. J.
Steiolitz, K. See Papadimitriou, С. H.
496. Stockmeyer, L. J. [1973], “Planar 3-colorability is NP-complete,” S1GACT News 5:3,19-25. (3.2.3; 4.1)
49ZStockmeyer, L. J. [1974a], The Complexity of Decision Problems in Automata Theory and Logic, Doctoral Thesis, Dept, of Electrical Engineering, Massachusetts lnsti« tute of Technology, Cambridge, MA. (A 10.2)
49&Stockmeyer, L. J. [1974b], private communication. (A 1.3)
499.Stockmeyer, L. J. [1975], “The set basis problem is NP-complete,” Report No RC-5431, IBM Research Center, Yorktown Heights, NY. 643J)
500.Stockmeyer, L. J. [1976a], “The polynomial-time hierarchy," Theor. Comput. Sci. 3, 1-22. (7.2; 7.4; 7.5; A7.3)
SOI.Stockmeyer, L. J. [1976b], private communication. (A4.1)
SOIStockmeyer, L. J., and A. K. Chandra [1978], “Provably difficult combinatorial games," Report No. RC-6957, IBM Thomas J. Watson Research Center, Yorktown Heights, NY. (7.6)
503.Stockmeyer, L. J., and A. R. Meyer [1973], “Word problems requiring exponential time," Proc. Sth Ann. ACM Symp. yn Theory of Computing, Association for Computing Machinery, New York, 1-9. (7.4; 7.5; A 7.1; A 7.3; A8;A9.2; A10.2)
Stockmeyer, L. J. See also Chandra, A. K.; Garey, M. R.; Kou, L. T.; Meyer, A. R.
504.STONE, H. S., and S. H. Fuller [1973], “On the near-optimality. of the shortest- latency-time-first drum scheduling discipline,” Comm. ACM 16, 352-353. (6.1)
505.Storer, J. A. [1977], “NP-completeness results concerning data compression," Report No. 234, Dept, of Electrical Engineering and Computer Science, Princeton University, Princeton, NJ. (A4.2)
506.STORER, J. A., and T. G. Szymanski [1978], “The macro model for data compression (Extended abstract),’’ Proc. 10th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 30-39. 644.2)
Storer, J. A. See also Maier, D.
607.SUDBOROUGH, 1. H. [1975], “A note on tape-bounded complexity classes and linear context-free languages,” J. Assoc. Comput. Mach. 22, 499-500. (7.5)
508-Sugiyama, Y., T. Araki, J. Okui, and T. Kasami [1977], “Complexity of the deadlock avoidance problem," Trans. IECE Japan 60-D, 251-258 (in Japanese) 05.3)
Sugiyama, Y. See also Araki, T.
503.SUURBALLE, J. W. [1975], “Minimal spanning trees subject to disjoint arc set con* straints,” unpublished manuscript. (A2.1)
SIO.Syslo, M. M. [1973], “A new solvable case of the traveling salesman problem,” Math. Programming 4, 347-348. (A2.3)
511. Szymanski, T. G. [1978], “Assembling code for machines with span-dependent instructions,” Comm. ACM 21, 300-308. (3.2.2; АП.1)
Szymanski, T. G. See also Hunt, H. B,, III; Storer, J. A.
Tanimota, S. L. See Itai, A.
SIZ.Tarjan, R. E, [1977], “Finding optimum branchings,” Networks 7, 25-35. (A2.1)
513.Tarjan, R. E., and. A. E. Trojanowski [1977], “Finding a maximum independent, set," SIAM J. Comput. 6, 537-546. (6.0; 7.6)
Tarjan, R. E. See also Ehrlich, G.; Eswaren, К. P.; Even, S.; Garey, M. R.; Hopcroft, J. E.; Lipton, R. J.; Rose, D. J,
Teranaka, K. See Ibaraki, T.
Thomassen, G. See Chvatal, V.
Toida, S. See Ibaraki, T.
SIS-Trakutenbrot, B. A., and Y. M. Barzdin [1973], Finite Automata, North- Holland, Amsterdam. (A 10J)
Treybio, L. B. See Borosh, I.
Trojanowski, A. E. See Tarjan, R. E.
515.Tseitin, G. S. [1970], “On the complexity of derivation in propositional calculus," in A. O. Slisenko (ed.), Studies In Constructive Mathematics and Mathematical Logic — Part II, Consultants Bureau,- New York, 115-125. (7.6)
SIG.Tsichritzis, D. [1970], “The equivalence problem of simple programs," J. Assoc. Comput. Mach..17, 729-738. (АЦ.2)
517,Turing, A. [1936], “On computable numbers, with an application to the Entscheidungsproblem," Proc. London Math. Soc. Ser. 2 42, 230-265 and 43, 544-546. (1.4)
518.Ullman, J. D. [1975], “NP-complete scheduling problems,” J. Comput. System Sci. 10, 384-393. (4.1; A5.2; A13)
519.Ullman, J. D. [1976], “Complexity of sequencing problems," in E. G. Coffman, Jr., (ed.). Computer and JoNShop Scheduling Theory, John Wiley & Sons, New York, 139-164. (A5.2)
Ullman, J. D. See also.Ано, A. V.; Harrison, M. A.; Hopcroft, J. E.; Hunt, H B., Ill; Johnson, D. S.; Sethi, R.
Unger, S. See Paull, M.
52O.Valiant, L. G. [1976a], “Relative complexity of checking and evaluating," Infor* motion Processing Lett. 5, 20-23. (5.1)
SZI.Valiant, L. G. [1976b], “A polynomial reduction of satisfiability to Hamiltonian circuits that preserves the number of solutions,” unpublished manuscript. (7.3)
52Z.Valiant, L. G. [1977al, “The complexity of computing the permanent," Report No. CSR-14-77, Computer Science Department, University of Edinburgh, Edinburgh, Scotland, (to appear Theor. Comput. Sci.Y (7.3; Al.l; A7.3)
523.Valiant, L. G. [1977b], “The complexity of enumeration and reliability problems," Report No. CSR-15-77, Computer Science Dept., University of Edinburgh, Edinburgh, Scotland. (7.3; A2.2)
8Z4.Valiant, L. G. [1977c], private communication. (AI.5; A7.2)
Valiant, L. G. See also Angluin, D.; Pippenger, N.
5Z5.vaN Leeuwen, J. [1975], “The membership question for ETOL-ianguages is polynomially complete," Information Processing Lett. 3, 138-143. (АЮ.2)
5Z6.vaN Leeuwen, 3. [1976a], “Having a Grundy-numbering is NP-complete," Report No. 207, Computer Science Dept., Pennsylvania State University, University Park, PA. (Al.5)
van Leeuwen, J. [1976b], “Variations on a new machine model," Proc. 17th Ann. Symp. on Foundations of Computer Science, IEEE Computer Society, Long Beach, CA. 228-235. (7.5)
SZD.van Leeuwen, J. [1977], “Inequivalence of program-segments and NP-com- pleteness," Report No. 216, Computer Science Dept., Pennsylvania State University, University Park, PA. (All.2)
6ZS.VAN Sickle, L, and К. M. Chandy [1977], “The complexity of computer network design problems,” unpublished manuscript. (A4.1)
van Tilborg, H. C. A. See Berlekamp, E. R.
53O.Wagner, R. A. [1975], “On the complexity of the extended string-to-string correction problem,” Proc. 7th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 218-223. (A4.2)
531.Wagner, R. A., and M. J. Fischer [1974], “The string-to-string correction problem," J. Assoc. Comput Mach. 21,168»173. (A4.2)
53Z.Walsh, A. M„ and W. A. Burkhard [1977], “Efficient algorithms for (3,1) graphs,” Information Sci. 13,1-10. (Al.l)
Wegman, M. N. See Paterson, M. S.
Weinberg, L. See Bruno, J.
83$.WiNKLMANN, K. A. [1977], A Theoretical Study of Some Aspects of Parameter Passing in ALGOL-60 and in Simitar Programming Languages, Doctoral Thesis, Purdue University, Lafayette, IN. (All.2)
634Witsenhausen, H. S. [19781, “Information aspects of stochastic control," unpublished manuscript. (A3.2)
Wolsey, L. A. See Nemhauser, G. L.
535.W0NG, С. K„ AND A. C. Yao [1976], “A combinatorial optimization problem related to data set allocation," Rev. Francaise Automat. Informal. Recherche Operation- nelleSer. Bleue 10.5 (suppl.), 83-95. (A3.2)
Wong, С. K. See also Hirschberg, D. S.; Karp, R. M.; Kou, L. T, Wong, J. K. See Hopcroft, J. E.
536.Wrathall, С. [1976), “Complete sets and the polynomial-time hierarchy,’’ Theor. Comput. Sci. 3, 23-33. (7.2; 7.4)
537.Yannakakis, M. [1978a], “The node deletion problem for hereditary properties,’’ Report No. TR-240, Computer Science Laboratory, Princeton University, Princeton, NJ. (A1.2)
538.Yannakakis, M. [1978b], “Node- and edge-deletion NP-complete problems," Proc. 10th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York, 253-264. (Al. I; A1.2; A2.2)
539.Yannakakis, M. [1978c], private communication. (Al.2)
540-Yann AKAKis, M., AND F. Gavril [1978], "Edge dominating sets in graphs,” unpublished manuscript. (Al. 1; Al.2; A12)
Yannakakis, M. See also Papadimitriou, С. H.; Sagiv, Y.
Yao, A. C. [1976], private communication. (6.3)
542.YAO, A. C. [1978a], “New algorithms for bin packing," Report.No. STAN-CS-78- 662, Computer Science Department, Stanford University, Stanford, CA. (6.1)
543.Yao, A. C. [1978b], private communication. (A3.2)
Yao, A. C. See also Garey, M. R.; Wong, С. K.
Yesha, Y. See Fraenkel, A. S.
544.Zadeh, N. [1973), “A bad network problem for the simplex method and other minimum cost flow algorithms," Math. Programming 5, 255-266. (1.3)
Zaks, S. See Perl, Y.
Zalcstein, Y. See Lipton., R. J.
Работы, переведенные на русский языкили первоначально изданные в СССР
Ахо А., Хопкрофт Дж., Ульман Дж. Временная и ленточная сложность языков магазинных автоматов. В сб. «Языки и автоматы». — М.: Мир, 1975, 185—197.
Ахо А. Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов.—М.: Мир, 1979.
Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Т. 1. Синтаксический анализ. — М.: Мир, 1978.
Конвей Р., Максвелл В., Миллер Л. Теория расписаний. — М.: Наука, 1975.
Кук С. А. Сложность процедур вывода теорем. — Киб. сб., нов. сер., вып. 12. — М.: Мир, 1975, 5—15.
Дейт К. Введение в системы баз данных. — М.: Наука, 1980.
Харари Ф. Теория графов. — М.: Мир, 1973.
Хартманне Дж., Стирнз Р. О вычислительной сложности алгоритмов.—Киб. сб„ нов. сер., вып. 4.— М.: Мир, 1967, 57—85.
Хопкрофт Дж. Е. — Киб. сб.. Нов. сер., вып. 11. — М.: Мир, 1974, 177—184.
Ху Т. Целочисленное программирование и потоки в сетях. — М.: Мир, 1974.
Карп Р. М. Сводимость комбинаторных задач. — Киб. сб. — М.: Мир, 1975, 16—38.
Левин А. А. Универсальные задачи перебора. — Проблемы передачи информации, 9, № 3, 1973, 115—116.
Мандерс К., Эдлимэн Л. NP-полные проблемы разрешения для квадратных уравнений с двумя неизвестными. — Киб. сб., нов. сер., вып. 17. — М.: Мир, 1980.
Матиясевич Ю. В. Диофантовость перечислимых множеств. — ДАН СССР, 191, 2, 1970, 279—282.
[
388]Минский М. Вычисления и автоматы. — М.: Мир, 1971.
Нигматулин Р. Г. О приближенных алгоритмах с ограниченной абсолютной погрешностью для дискретных экстремальных задач. — Кибернетика, № 1, 1978, 95—101.
Роджерс X. Теория рекурсивных функций и эффективная вычислимость. — М.: Мир, 1972.
Трахтенброт Б. А., Бардзинь Я. М. Конечные автоматы: поведение и синтез.—М.: Наука, 1976.
Литература, дополненная авторами при переиздании
1*. Ftuarn, I. S., and J. N. Mayer [1980], “A polynomial-time algorithm for determining the isomorphism of graphs of fixed genus," Proc. 12th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York.
2*. Fortune, S., J. Hofcroft, and J. Wylue [1980], “Tbedirected subgraph homeomorphism prtiblem,” Theor. Comput. Sci. 10,111-121.
3*. Gags, P., and L. Lovasz [1979], “Khachian’s algorithm for linear programming,” Moth. Prog. Studies (to appear).
4*. Hoffmann, C. [1980], ‘Testing isomorphisms of cone graphs,” Proc. 12th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York.
8*. Holyer, L private communication.
6*.Khachian, L. G. [1979], “A polynomial algorithm in linear programming," DoU. Ahad. Not*. SSSR 2M, 1093-1096 (in Russian). English translation in Soviet Math. Dohi. 20,191-194.
7*. Lkhiensiein, D. [1980], “Isomorphism tor graphs embeddable on the projective plane,” Proc. 12th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York.
8*. LOVASZ, L. [1978], “The matroid parity problem," Proc. Conf. Algebraic Methods in Graph Theory (Szeged, 1978) (to appear).
9*. Luks, В. M. [1980], "A polynomial time algorithm for isomorphism of bivalent graphs ” (to appear).
10^ MILLER, G. L. [1980], “Isomorphism testing for graphs of bounded genus," Proc. 12th Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, New York.
11*.SEYMOUR, P. D. [1979], “Decomposition of regular matroids,” Report No. CORR 79- 8, Department of Combinatorics and Optimization, University of Waterloo, Waterloo, Ontario.
Литература, дополненная при переводе на русский язык
[12*] Адельсон-Вельский Г. М., Диниц Е. А., Карзанов А. В. Потоковые алгоритмы. — М.: Наука, 1975.
[13*] Бабат Л. Г. Приближенное вычисление линейной функции на вершинах единичного «-мерного куба. В сб. «Исследования по дискретной оптимизации». — М.: Наука, 1975.
[14*] Бабат Л. Г. Линейные функции на «-мерном единичном кубе. ДАН СССР, т, 221, № 4, 1975.
[15*] Генс Г. В., Левнер Е. В. Эффективные приближенные алгоритмы для комбинаторных задач. Препринт. — М.: ЦЭМИ АН СССР, 1981.
[16*] Генс Г. В., Левнер Е. В., Фрумкин М. А. О вычислительной сложности экстремальных комбинаторных задач. —• Советско-польский научный семинар по математическим методам в планировании и управлении экономикой. Сборник тезисов. — М.: ЦЭМИ АН СССР, 1979.
[17*] Динин Е. А., Карзанов А. В. Об экспоненциальной сложности алгоритмов решения общей и транспортной задач линейного программирования. В сб. «Управление сложными системами». — М.: ИАТ, 1974, 32—41.
[
18*] Исследования по дискретной математике. — М.: Наука, 1973.
19* Исследования по дискретной оптимизации. — М.: Наука, 1976.
20*] Кнут Д. Искусство программирования для ЭВМ. — Т. 1. Основные алгоритмы. — М.: Мир, 1976; Т. 2. Получисленные алгоритмы, М., Мир, 1977; Т. 3. Сортировка и поиск. — М.: Мир, 1978.
[21*] Комбинаторные методы в потоковых задачах. ВНИИСИ, сб. трудов, вып. 3. — М.: 1979.
[22*] Кристофидес Н. Теория графов. Алгоритмический подход. — М.: Мир, 1978.
[23*] Кузнецов О. П., Адельсон-Вельский Г. М. Дискретная математика для инженера. — М.: Энергия, 1980.
[24*] Леонтьев В. К. Дискретные экстремальные задачи 25. — Итоги науки и техники, сер. Теория вероятностей, матем. статистики, теория кибернетики, т. 16—Мл 1979, ВНИИТИ, 39—102.
[25*] Лившиц Э. М., Рублинецкий В. И. О сравнительной сложности некоторых задач дискретной оптимизации. В сб. «Вычислительная математика и вычислительная техника». Вып. 3. — Харьков, 1972, 78—85.
[26*] Мальцев А. И. Алгоритмы и рекурсивные функции. — М.: Физматгиз, 1965.
[27*] Матиясевич Ю. В. Диофантовы множества. — Успехи матем. наук, т. XXVI, вып. 5 (167), 1972 (185—222).
[28*] Пахомов С. В. Машинно-независимое описание некоторых машинных классов сложности. — Записки науч, семинаров ЛОМИ, т. 88, 176—185.
[29*] Прим Р. К. Кратчайшие связывающие сети и некоторые обобщения. — Киб. сб., вып. 2, 1961. 95—107.
[30*] Тарьян Р. Э. Сложность комбинаторных алгоритмов. — Киб. сб., нов. сер., вып. 17.
[31*] Фридман А. А., Фрумкин М. А., Хмелевский Ю. И., Левнер Е. В. Исследование эффективных алгоритмов для дискретных и комбинаторных задач. Теории сводимости, универсальные задачи. — М.: ЦЭМИ АН СССР, 1976.
[32*] Фрумкин М. А. Сложность дискретных задач. — М.: ЦЭМИ АН СССР, 1981.
[33*] Хачиян Л. Т. Полиномиальный алгоритм в линейном программировании. ДАН СССР, т. 244, вып. 5, 1979.
[34*] Шоломов Л. А. Основы теории дискретных логических и вычислительных устройств. — М.: Наука, 1980.
[35*] Grotschel М., Lovasz L., Schrijver A. The ellipsoid method and its consequences in combinatoriai optimisation. Institut fur Okonometric and Operation Res, Rheinische Friedrich — Wilchelms — UniversitaL Behn, 1980. Report N80151 — OR.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
Алгоритм 17
— «в наилучший из подходящих» (best fit) 159
— «в первый подходящий» (first fit) 157
в порядке убывания 160
— «жадный» (greedy) 171
— недетерминированный 44
— полиномиальный 19
— приближенный 156
— псевдополиномиальный (pseudo polynomial time algorithm) 121
— эвристический 155
— экспоненциальный 19
Алфавит 18, 33
Асимптотическая погрешность алгоритма (asymptotic performance ratio) 162
Бандерснечи 13._,
БУЛЕВСКИЕ ФОРМУПЫ С КВАНТОРАМИ (БФК) 213
Быстродействие ЭВМ 19
Величина решения (solution value) 156
ВЕРШИННОЕ ПОКРЫТИЕ (ВП) (vertex cover) 65, 74
Вполне полиномиальная приближенная схема 173
Временная сложность алгоритма (time complexity function) 18, 137
НДМТ-программы 48
Входная длина задачи (input length) 18
Выигрыш форсированный (forced win) 215
ВЫПОЛНИМОСТЬ (ВЫП) 56—57 3-ВЫПОЛНИМОСТЬ (3-ВЫП) 65, 67 ВЫЧИСЛЕНИЕ СЕМЕЙСТВА (ensemble computation) 88
ГАМИЛЬТОНОВ ПУТЬ (Path) 81 — ЦИКЛ (ГЦ) (circuit) 53, 66, 77 Граф ориентированный (directed) 81 — планарный 113
ДЕЛИМОСТЬ НА ЧЕТЫРЕ 41
Дерево 135.
ДЕРЕВО ШТЕЙНЕРА 100
Детерминированная одноленточная машина Тьюринга, или ДМТ 38
Дизъюнкция (clause) 56
Длина решения задачи (solution
ДОМИНИРУЮЩЕЕ МНОЖЕСТВО 100
ДМТ [см. Детерминированная одноленточная машина Тьюринга]
— программа 38—40
линейно ограниченная (linear bounded) 218
полиномиальная 42
ДОСТРОЙКА МАРШРУТА КОММИВОЯЖЕРА (ДМК) (extension) 147
ЕДИНИЧНАЯ РЕЗОЛЮЦИЯ (unit resolution) 223
Задача (problem) 16
— выполнимости (satisfiability) 27
— индивидуальная (instance) 16
— комбинаторная оптимизационная 156
— массовая 16
— перечисления (enumeration) 209
— распознавания свойств (decision problem) 27, 31—32
— с числовыми параметрами (number problem) 122
— труднорешаемая (intractable) 21
Игры комбинаторные .(combinatorial games) 215
Иерархия полиномиальная 203
ИЗОМОРФИЗМ ГРАФОВ 194
— ПОДГРАФУ 32, 43, 86
— ПОДЛЕСУ (subforest) 135
Изоморфность языков полиномиальная 200
Индивидуальная задача (instance) 16, 139
Класс
DLOG-SPACE 220
EXP-SPACE 228
EXP-TIME 228
КР 210
КР-полных задач (P-complete) 210
NEXP-SPACE 229
NEXP-TIME 228
NLOG-SPACE 225
NP 27, 28, 45, 48
NP-полных задач (NPC) 45
NPI 193
NP-SPACE 219
Р 42
P-SPACE 213
P-SPACE — полных задач 23
КЛИКА 65, 242
— МАКСИМАЛЬНОГО РАЗМЕРА (maximum size clique) 205
КОММИВОЯЖЕР (КМ) 32, 43-44
Композиция графов 181
КРАТЧАЙШИЙ ПУТЬ МЕЖДУ ДВУМЯ ВЕРШИНАМИ 112
Кука теорема 57
Лес (forest) 134
ЛИНЕЙНАЯ ДЕЛИМОСТЬ 200
ЛИНЕЙНОЕ ПРОГРАММИРОВА
НИЕ 194
Логарифмическая память 220
Локальная замена (local replacement) 88
Максимальная полиномиально разрешимая подзадача 108
МАКСИМАЛЬНЫЙ РАЗРЕЗ (maximum cut) 113
Машина недетерминированная 26, 46 — Тьюринга 24, 46
Минимальная NP-полная подзадача 108
Минимальное остовное дерево (spanning tree) 165
МИНИМАЛЬНОЕ ПОКРЫТИЕ 86
— ЭКВИВАЛЕНТНОЕ ВЫРАЖЕНИЕ 201
МИНИМАЛЬНЫЙ НАБОР ТЕСТОВ 95
— ЭКВИВАЛЕНТНЫЙ ОРИЕНТИРОВАННЫЙ ГРАФ 87, 112
МИНИМУМ СУММЫ КВАДРАТОВ 99
МНОЖЕСТВО ВЕРШИН, РАЗРЕЗАЮЩИХ КОНТУРЫ (feedback vertex set) 100
— ПРЕДСТАВИТЕЛЕЙ (hitting set) 86
Мультираскраска графа 182
Набор значений истинности (truth assignment) 56
НАИБОЛЬШИЙ ОБЩИЙ ПОДГРАФ 99
НДМТ-программа 46
Недетерминированная машина 26
— одноленточная машина Тьюринга, или НДМТ 46
— оракульная машина Тьюринга, или НОМТ 202
НЕЗАВИСИМОЕ МНОЖЕСТВО 74
Неразрешимая задача (undecidable) 25
НЕУНИВЕРСАЛЬНОСТЬ РЕГУЛЯР
НОГО ВЫРАЖЕНИЯ 217
НЕЭКВИВАЛЕНТНОСТЬ РЕГУЛЯРНОГО ВЫРАЖЕНИЯ, НЕ СОДЕРЖАЩЕГО ЗВЕЗДОЧЕК 100 — ЦЕЛОЧИСЛЕННЫХ ВЫРАЖЕНИЙ 207
НУМЕРАЦИЯ ГРАФА ПО ГРУНДИ 101
ОБОБЩЕННЫЙ ГЕКС (generalized Нех) 216
ОМТ-программа 144
Оптимальное решение задачи 156
Оракульная машина Тьюринга, или
ОМТ (oracle) 141
Остовное дерево (spanning tree) 86, 165, 258
ОСТОВНОЕ ДЕРЕВО ОГРАНИЧЕННОЙ СТЕПЕНИ 86
Отношение R« (relation) 198
Параметр 16
— числовой 122
Паросочетание (matching) 167, 169
— максимальное 169
Переборная задача (search problem) 139
Погрешность алгоритма (performance ratio) 162
Подзадача (subproblem) 105
Покрытие множества (cover) 86
Полиномиальная ДМТ-программа 42
— ОМТ-программа 144
— память (space) 212
— схема 173
— сводимость (polynomial transformation) 51—52
Полиномиально эквивалентны (poly- nomialy related) 35
Построение компоненты (component design) 84, 96
Правильно построенное слово (structured string) 36
Принимаемое программой слово (accepted) 39
ПРИНЯТИЕ С ЛИНЕЙНОЙ ПАМЯТЬЮ 218
Программа ДМТ (DTM) 38
НДМТ (NDTM) 46
Псевдополиномиальная сводимость (pseudo-polynomial transformation) 130
Псевдополиномиальный алгоритм 121
РАЗБИЕНИЕ (partition) 66, 81
НА ГАМИЛЬТОНОВЫ ПОДГРАФЫ 99
ПУТИ ДЛИНЫ 2 100
ТРЕУГОЛЬНИКИ 90-91
З-РАЗБИЕНИЕ 124
4-РАЗБИЕНИЕ 125
Размер задачи (size) 17—18
РАЗМЕР МИНИМАЛЬНОГО ЭКВИВАЛЕНТНОГО ВЫРАЖЕНИЯ 205
РАСКРАШИВАЕМОСТЬ ГРАФА В 3 ЦВЕТА (3-colorability) 101, ПО, 182
РАСПИСАНИЕ ДЛЯ МУЛЬТИПРОЦЕССОРНОЙ СИСТЕМЫ 87 ОБРАТНОГО ДЕРЕВА ЗАДА
НИИ 112
ПРЯМОГО ДЕРЕВА ЗАДАНИИ 112
- С ОТНОШЕНИЕМ ПРЕДШЕСТВОВАНИЯ (precedence constrained scheduling) 107
Распознавание языка (recognition) 47
РАСЩЕПЛЕНИЕ МНОЖЕСТВА (splitting) 100
РЕБЕРНОЕ ПОКРЫТИЕ (edge cover) 112
Регулярное выражение 217
Релятивизация 230
Решение задачи алгоритмом (solution) 17
РЮКЗАК (knapsack) 87, 171
САМЫЙ ДЛИННЫЙ ПУТЬ 99, 112
Сводимость консервативная (parsimonious transformation) 210
— по Куку 150
— полиномиальная 51—52
— по Тьюрингу 141
— псевдополиномиальная 130
— log-space 222
— y(Y-reducibility) 198
Словарное отношение (string relation) 140
Слово алфавита (string) 33
правильно построенное (structured) 36
Сложность алгоритмавременная
(time complexity function) 18, 137 СОСТАВНЫЕ ЧИСЛА(composite
numbers) 194
Степень вершины графа (degree) ПО
Сужение задачи (restriction) 85
Схема кодирования (encoding scheme) 18
— приближенная 173
«разумная» 24, 34, 36
Теория графов ПО
ТОЧНОЕ ПОКРЫТИЕ 3-МНОЖЕ-
СТВАМИ (ТП-3) 73 4-МНОЖЕСТВАМИ 100
ТРАНЗИТИВНАЯ РЕДУКЦИЯ 112
ТРЕХМЕРНОЕ СОЧЕТАНИЕ (3-С) 65, 70
Угадывающее устройство (guessing device) 47
Упаковка в контейнеры 157
УПАКОВКА МНОЖЕСТВ 99
УПОРЯДОЧЕНИЕ ВНУТРИ ИНТЕРВАЛОВ (sequencing within intervals) 93
— С МИНИМАЛЬНЫМ ЗАПАЗДЫВАНИЕМ (tardiness) 97
Управляющее устройство ДМТ (finite state control) 38
Функция, конструируемая по времени (time constructible) 227
по памяти (space constructible) 227
Цепочка символов (string) 18 [см также Слово алфавита]
Цикл простой в графе (simple cir- cuit) 53
Числовой параметр (number) 122
Читающая/пишущая головка ДМТ 38
Эвристический алгоритм 155
Эйлеров граф 166
— маршрут (tour) 166
Эквивалентность полиномиальная 35
Язык в алфавите 33—34
— контекстно-зависимый (context-sensitive) 220
— распознаваемый программой 39, 47 — рекурсивный 193
— log-space-полный 223
— NP-полный 55
— у-полный 199
DLB-автомат детерминированный линейно ограниченный 220
GA-алгоритм 171_
К-е ПО ПОРЯДКУ ПОДМНОЖЕ-
СТВО (К-th largest set subset) 145
КР-полная задача (#P-complete) 210
Length [Л 35, 119
Max [/] 119—120
ММ-алгоритм 167—168 MST-алгоритм 166 NLB-автомат (недетерминированный линейно ограниченный) 220
NN-алгоритм 163—164
NP-легкая задача (easy) *49
NP-полная задача 27, 45, 48, 51 в сильном смысже 123
NP-трудная задача (hard! Д45 NP-эквивалентная задача ин Р-зрасе-полная задача 214
ОГЛАВЛЕНИЕ
От редактора перевода5
Предисловие.10
Вычислительные машины, сложность и труднорешаемые задачи . ... 13
Введение3
Задачи, алгоритмы и сложность16
Полиномиальные алгоритмы и труднорешаемые задачи19
Задачи, труднорешаемость которыхдоказуема25
NP-полные задачи26
О содержании книги28
Теория NP-полных задач .. . 31
Задачи распознавания, языки и кодирование . 31
Детерминированные машины Тьюринга и класс Р38
Недетерминированное вычисление и класс NP43
Взаимоотношения между классами Р и NP49
Полиномиальная сводимость и NP-полные задачи51
Теорема Кука56
Доказательство результатов об NP-полноте64
Шесть основных NP-полных задач64
3-выполнимость67
Трехмерное сочетание69
Вершинное покрытие и Клика73
Гамильтонов цикл77
Разбиение81
Некоторые методы доказательства NP-полноты84
Сужение задачи85
Локальная замена88
Построение компонент96
Упражнения 99
Применение теории NP-полноты для анализа задач102
Анализ подзадач . . . ■105
Задачи с числовыми параметрами и сильная NP-полнота . . . .117
Некоторые дополнительные определения119
Доказательство результатов о сильной NP-полноте . . . . 123
Временная сложность как функция натуральных параметров . . 136
NP-трудные задачи139
Сводимость по Тьюрингуи NP-трудные задачи139
Историческая справка150
Подходы к решению NP-полных задач154
Оценки погрешности приближенных алгоритмов 156
Применение теории NP-полноты к отысканию приближенных реше-
Оценки погрешности и поведение алгоритмов «на практике* . . 189
За пределами класса NP-полных задач . . . /192
Структура класса NP*92
Полиномиальная иерархия201
Сложность задач перечисления208
Полнота с полиномиальноограниченной памятью212
Логарифмическая память220
Доказательства труднорешаемости и взаимоотношения между Р и
NP225
. Приложение. Список NP-полных задач232
А1.Теория графов235
А1.1. Покрытие и разбиение235
А1.2. Подграфы и надграфы242
А1.3. Упорядочение вершин249
А1.4 Морфизмы и изоморфизмы252
А1.5. Разное254
А2.Построение сетей258
А2.1. Остовные деревья258
А2.2. Разрезы и связность263
А2.3. Задачи о маршрутах266
А2.4. Потоковые задачи270
А2.5. Разное275
АЗ.Множества и разбиения279
А3.1. Покрытие, представители л расщепление279
А3.2. Задачи о множествах с взвешенными элементами . . . . 282
А4.Хранение и поиск данных286
А4.1. Хранениеданных286
А4.2. Сжатие ипредставление информации289
А4.3. Задачи обазах данных295
А5. Задачи теориирасписаний300
А5.1. Задачи составления расписания в случае одного процессора 300
А5.2. Многопроцессорные расписания для параллельных процессоров . 304
А5.3. Многопроцессорныерасписания конвейерного типа . . . . 308
А5.4. Разные задачи311
Аб.Математическое программирование313
А7.Алгебра и теория чисел318
А7.1. Задачи о делимости318
А7.2. Разрешимость уравнений321
А7.3. Разное323
А8.Игры и головоломки325
А9.Логика332
А9.1. Пропозициональнаялогика332
А9.2. Разное336
АЮ. Теория автоматов и языков339
А10.1. Теория автоматов339
А10.2. Формальные языки343
АП. Оптимизация программ349
АПЛ. Генерация кода программы349
АП.2. Программы и схемы354
А12. Разное359
А13. Открытые задачи367
Литература374
Предметный указатель 411
Майкл Гэри, Дэвид Джонсон
ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ И ТРУДНОРЕШАЕМЫЕ ЗАДАЧИ
Научный редактор К. Г. Батаев. Мл. научный редактор Н. С. Полякова. ХудожникВ. А. Чернецов-Художественный редактор В. И. Шаповалов. Технический редактор3. И. Резник. Корректор Н. Н. Яковлева
ИВ № 2947
Сдано в набор 04.12.81. Подписано к печати 20.07.82. Формат 60x 90/16. Бумага типографская № I. Гарнитура латинская. Печать высокая. Объем: 13,00 бум. л. Усл. печ. л. 26,00. Усл.-кр. отт. 26,00. Уч.-изд. л. 25,97. Изд. № 1/1764. Тираж 8000 экз. Зак. 49. Цена 2 р. 90 к.
ИЗДАТЕЛЬСТВО «МИР»
129820, Москва, И-110, ГСП, 1-й Рижский пер., 2.
Ленинградская типография № 2 головное предприятие ордена Трудового Красного Знамени Ленинградского объединения «Техническая книга» им. Евгении Соколовой Союзполиграфпрома при Государственном комитете СССР по делам издательств, полиграфии и книжной торговли. 198052, г. Ленинград, Л-52, Измайловский проспект, 29.
•) Аналогичный результат установлен в работе Диница и Карзанова [17*]. — Прим, перев.
*) Для ориентированных графов аналогичная задача решена в работе [2*]. Была получена полная характеризация графов Н, для которых эта задача NP-полна пли разрешима за полиномиальное время. — Дополнение авторов.
М.Гэри, Д.Джонсон