Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Гэри, Джонсон - NP-Complectness

.pdf
Скачиваний:
264
Добавлен:
01.03.2016
Размер:
21.69 Mб
Скачать

М.Гэри, Д.Джонсон

ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ И ТРУДНОРЕШАЕМЫЕ ЗАДАЧИ

М.: Мир, 1982

Монография американских ученых, посвященная вопросам сложности решения комбинаторных задач, возникающих в дискретной оптимизации, математическом программировании, алгебре, теории чисел, теории автоматов, математической логике, теории множеств, теории графов и т.п. Книга отличается строгим и систематическим изложением теории, в приложении содержится более 300 труднорешаемых задач из различных разделов математики.

Для математиков-прикладников, аспирантов и студентов университетов. Содержание

От редактора перевода

5

Предисловие

10

1. Вычислительные машины, сложность и труднорешаемые задачи

13

1.1. Введение

13

1.2. Задачи, алгоритмы и сложность

16

1.3. Полиномиальные алгоритмы и труднорешаемые задачи

19

1.4. Задачи, труднорешаемость которых доказуема

25

1.5. NP-полные задачи

26

1.6. О содержании книги

28

2. Теория NP-полных задач

31

2.1. Задачи распознавания, языки и кодирование

31

2.2. Детерминированные машины Тьюринга и класс Р

38

2.3. Недетерминированное вычисление и класс NP

43

2.4. Взаимоотношения между классами Р и NP

49

2.5. Полиномиальная сводимость и NP-полные задачи

51

2.6. Теорема Кука

56

3. Доказательство результатов об NP-полноте

64

3.1. Шесть основных NP-полных задач

64

3.1.1. 3-выполнимость

67

3.1.2. Трехмерное сочетание

69

3.1.3. Вершинное покрытие и Клика

73

3.1.4. Гамильтонов цикл

77

3.1.5. Разбиение

81

3.2. Некоторые методы доказательства NP-полноты

84

3.2.1. Сужение задачи

85

3.2.2. Локальная замена

88

3.2.3. Построение компонент

96

3.3. Упражнения

99

4. Применение теории NP-полноты для анализа задач

102

4.1. Анализ подзадач

105

4.2. Задачи с числовыми параметрами и сильная NP-полнота

117

4.2.1. Некоторые дополнительные определения

119

4.2.2. Доказательство результатов о сильной 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

- - НДМТ-программы 48

- «жадный» (greedy) 171

Входная длина задачи (input length)

- недетерминированный 44

18

- полиномиальный 19

Выигрыш форсированный (forced

- приближенный 156

win) 215

- псевдополиномиальный (pseudo

ВЫПОЛНИМОСТЬ (ВЫП) 56—57

polynomial time algorithm) 121

выполнимость, вып, 3, 3, 65, 67

- эвристический 155

ВЫЧИСЛЕНИЕ СЕМЕЙСТВА

- экспоненциальный 19

(ensemble computation) 88

Алфавит 18, 33

ГАМИЛЬТОНОВ ПУТЬ (Path) 81

Асимптотическая погрешность

- ЦИКЛ (ГЦ) (circuit) 53, 66, 77

алгоритма (asymptotic

Граф ориентированный (directed) 81

performance ratio) 162

- планарный 113

Бандерснечи 13

ДЕЛИМОСТЬ НА ЧЕТЫРЕ 41

БУЛЕВСКИЕ ФОРМУЛЫ С

Дерево 135

КВАНТОРАМИ (БФК) 213

ДЕРЕВО ШТЕЙНЕРА 100

Быстродействие ЭВМ 19

Детерминированная одноленточная

Величина решения (solution value)

машина Тьюринга, или ДМТ 38

156

Дизъюнкция (clause) 56

ВЕРШИННОЕ ПОКРЫТИЕ

Длина решения задачи (solution

(ВП)(vertex cover) 65, 74

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 - ЭКВИВАЛЕНТНЫЙ

ОРИЕНТИРОВАННЫЙ ГРАФ

87, 112

МИНИМУМ СУММЫ КВАДРАТОВ

99

МНОЖЕСТВО ВЕРШИН,

Паросочетание (matching) 167, 169

РАЗРЕЗАЮЩИХ КОНТУРЫ

- максимальное 169

(feedback vertex set) 100

Переборная задача (search problem)

- ПРЕДСТАВИТЕЛЕЙ (hitting set) 86

139

Мультираскраска графа 182

Погрешность алгоритма (performance

Набор значений истинности (truth

ratio) 162

assignment) 56

Подзадача (subproblem) 105

НАИБОЛЬШИЙ ОБЩИЙ ПОДГРАФ

Покрытие множества (cover) 86

99

Полиномиальная ДМТ-программа 42

НДМТ-программа 46

- ОМТ-программа 144

Недетерминированная машина 26

- память (space) 212

- одноленточная машина Тьюринга,

- схема 173

или НДМТ 46

- сводимость (polynomial

- оракульная машина Тьюринга, или

transformation) 51—52

НОМТ 202

Полиномиально эквивалентны

НЕЗАВИСИМОЕ МНОЖЕСТВО 74

(polynomialy related) 35

Неразрешимая задача (undecidable)

Построение компоненты (component

25

design) 84, 96

НЕУНИВЕРСАЛЬНОСТЬ

Правильно построенное слово

РЕГУЛЯРНОГО ВЫРАЖЕНИЯ

(structured string) 36

217

Принимаемое программой слово

НЕЭКВИВАЛЕНТНОСТЬ

(accepted) 39

РЕГУЛЯРНОГО

ПРИНЯТИЕ С ЛИНЕЙНОЙ

ВЫРАЖЕНИЯ, НЕ

ПАМЯТЬЮ 218

СОДЕРЖАЩЕГО ЗВЕЗДОЧЕК

Программа ДМТ (DTM) 38

100

- НДМТ (NDTM) 46

- ЦЕЛОЧИСЛЕННЫХ

Псевдополиномиальная сводимость

ВЫРАЖЕНИЙ 207

(pseudo-polynomial

НУМЕРАЦИЯ ГРАФА ПО ГРУНДИ

transformation) 130

101

Псевдополиномиальный алгоритм

ОБОБЩЕННЫЙ ГЕКС (generalized

121

Hex) 216

РАЗБИЕНИЕ (partition) 66, 81

ОМТ-программа 144

- НА ГАМИЛЬТОНОВЫ

Оптимальное решение задачи 156

ПОДГРАФЫ 99

Оракульная машина Тьюринга, или

- - ПУТИ ДЛИНЫ 2, 100

ОМТ (oracle) 141

- - ТРЕУГОЛЬНИКИ 90—91

Остовное дерево (spanning tree) 86,

разбиение, 3, 124

165, 258

разбиение, 4, 125

ОСТОВНОЕ ДЕРЕВО

Размер задачи (size) 17—18

ОГРАНИЧЕННОЙ СТЕПЕНИ

РАЗМЕР МИНИМАЛЬНОГО

86

ЭКВИВАЛЕНТНОГО

Отношение Rм (relation) 198

ВЫРАЖЕНИЯ 205

Параметр 16

 

- числовой 122

 

РАСКРАШИВАЕМОСТЬ ГРАФА В

Степень вершины графа (degree) 110

colorability, цвета, 3, 3, 101, 110,

Сужение задачи (restriction) 85

182

Схема кодирования (encoding

РАСПИСАНИЕ ДЛЯ

scheme) 18

МУЛЬТИПРОЦЕССОРНОЙ

- приближенная 173

СИСТЕМЫ 87

- - «разумная» 24, 34, 36

- - ОБРАТНОГО ДЕРЕВА

Теория графов 110

ЗАДАНИЙ 112

ТОЧНОЕ ПОКРЫТИЕ множествами,

- - ПРЯМОГО ДЕРЕВА ЗАДАНИЙ

тп, 3, 3, 73

112

- - множествами, 4, 100

- С ОТНОШЕНИЕМ

ТРАНЗИТИВНАЯ РЕДУКЦИЯ 112

ПРЕДШЕСТВОВАНИЯ

ТРЕХМЕРНОЕ СОЧЕТАНИЕ ( с, 3,

(precedence constrained

65, 70

scheduling) 107

Угадывающее устройство (guessine

Распознавание языка (recognition)

device) 47

РАСЩЕПЛЕНИЕ МНОЖЕСТВА

Упаковка в контейнеры 157

(splitting) 100

УПАКОВКА МНОЖЕСТВ 99

РЕБЕРНОЕ ПОКРЫТИЕ (edge cover)

УПОРЯДОЧЕНИЕ ВНУТРИ

112

ИНТЕРВАЛОВ (sequencing

Регулярное выражение 217

within intervals) 93

Релятивизация 230

- С МИНИМАЛЬНЫМ

Решение задачи алгоритмом

ЗАПАЗДЫВАНИЕМ (tardiness)

(solution) 17

97

РЮКЗАК (knapsack) 87, 171

Управляющее устройство ДМТ (finite

САМЫЙ ДЛИННЫЙ ПУТЬ 99, 112

state control) 38

Сводимость консервативная

Функция, конструируемая по

(parsimonious transformation)

времени (time constructible) 227

210

- - по памяти (space constructible) 227

- по Куку 150

Цепочка символов (string) 18

- полиномиальная 51—52

Цикл простой в графе (simple circuit)

- по Тьюрингу 141

53

- псевдополиномиальная 130

Числовой параметр (number) 122

- log-space 222

Читающая/пишущая головка ДМТ 38

- Y(v-reducibility) 198

Эвристический алгоритм 155

Словарное отношение (string relation)

Эйлеров граф 166

140

- маршрут (tour) 166

Слово алфавита (string) 33

Эквивалентность полиномиальная 35

- - — правильно построенное

Язык в алфавите 33—34

(structured) 36

- контекстно-зависимый (context-

Сложность алгоритма временная

sensitive) 220

(time complexity function) 18,

- распознаваемый программой 39, 47

137

- рекурсивный 193

СОСТАВНЫЕ ЧИСЛА (composite

- log-space-полный 223

numbers) 194

- 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]