Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теория алгоритмов. Учебное пособие
.pdf
5.3. Введение в теории NP-полноты
yM∈
( )
zx
( )
( )
zx y
( )
( )
( )
( )
( )
( )
( )
RP
( )
, " "Rxy y x
( )
qn n
( )
К NP-задачам относится, например, задача распознавания выполнимости булевой формулы, задача распознавания существования в графе гамильтонова цикла, задаче
о рюкзаке и т.д.
Неизвестно, существуют ли полиномиальные алгоритмы их решения, но сравнительно легко устанавливается
их принадлежность специальному классу NP.
Рассматриваемый класс NP-задач включает все задачи, которые могут быть сформированы в следующим виде:
по заданному слову x из некоторого конечного алфавита M
выяснить, существует ли такое слово
которого y не превосходит значения некоторого полинома
pz при
мое за число операций, не превосходящее значения некоторого полинома
для каждой задачи свои и задаются вместе с задачей).
Вообще теории NP-полноты — это стержень, объеди-
няющий все ветви алгоритмические сложности.
Определение 1. Предикат L принадлежит классу NP,
если он представлен в форме
= , что выполнено свойство
qz при
( )
= + . (Полиномы
( )
, размерность
,R xy , проверяе-
pz и
,L x y y q x Rxy=∃< ∧ ,
qz
где
q ⋅ — полином,
Пример. Пусть
в графе
некоторого графа, а у — код гамильтонова цикла в этом
графе (используем такое кодирование, при котором код
цикла не длиннее кода графа) такие, что...». Возьмём
найдется гамильтонов цикл.
ект (король) A, умственные способности которого полиномиально ограничены, и объект (волшебник) M, который
.
Более точно нужно сказать так: «х есть двоичный код
= . Тогда
Определение класса NP. Имеются два объекта: объ-
Lx будет в точности означать, что в графе
,
⋅⋅ ∈ .
— 181 —
=
есть гамильтонов цикл

Глава 5. ВВЕДЕНИЕ В ТЕОРИЮ СЛОЖНОСТИ АЛГОРИТМОВ
( )
( )
( )
( )
( )
NP P
NP P
P NP≠
NPΓ∈
P NP≠
NP P
интеллектуально всемогущ и знает правильные ответы
на все вопросы. Объектом A интересуется некоторым свойством
цикл»), а волшебник M хочет, чтобы объект A признал
наличие этого свойства. Объект A не доверяет своему волшебнику и хочет иметь возможность самостоятельно проверить предложенный M ответ.
оба смотрят на слова x, после чего M сообщает некоторую
информацию (слово y), которая должна убедить A, что
тельность аргументов M некоторым полиномиальным способом.
сформулировать следующим образом:
линомиальный алгоритм проверять убедительность доводов M, причем:
Lx (например, «есть ли у графа гамильтонов
Поэтому они действуют следующим образом. A и M
1Lx = . Используя эту информацию, A проверяет убеди-
Другими словами, определение класса NP можно
Свойство L принадлежит классу NP, если у A есть по-
1Lx = → у M есть способ убедить A в этом;
0Lx = → как бы M не изощрялся, A не проверит, что
1Lx = .
5.4. Полиномиальная сводимость и полнота
Если P не совпадает с NP, то различие между P
и \
решены полиномиальными алгоритмами, а все задачи из
каждой конкретной задачи
из этих двух возможностей реализуется.
надежды показать, что некоторая конкретная задача
принадлежит классу \
полных задач заключается в доказательстве более слабых
очень существенно. Все задачи из P могут быть
\
трудно решаемые. Поэтому, если
можно знать, какая
Пока нет доказательства, что
. Поэтому цель теории NP-
— 182 —
, нет никакой
, то для

5.4. Полиномиальная сводимость и полнота
P NP≠
\NP PΓ∈
12
LL⇒
gP∈
( ) ( )
( )
′
Γ
Γ
′
Γ
′
Γ
′
Γ
Γ
( )
II
′
Γ=Γ
′
Γ
Γ
12
LL⇒
21
LP LP∈→ ∈
12
LPLP∉→ ∉
21
∈ →∈
( )
fP∈
( )
( )
результатов вида: «если
, то
». Основная
идея для этого подхода основана на понятии полиномиальной сводимости.
Сложность вычисления предикатов можно сравни-
вать, пользуясь следующим определением.
Определение 1 (на языке предикатов). Предикат 1L
полиномиально сводится к 2L (обозначение
существует такая функция
xL x L g x∀= .
12
, что
Определение 2 (на языке задач). Пусть Γ и
), если
— зада-
чи распознавания.
Через
ные задачи соответственно для Γ и
и
I
обозначим произвольные индивидуаль-
I
.
Говорят, что задача Γ полиноминально сводится к задаче
который по произвольной индивидуальной задаче
ит задачу
и только тогда, когда ответ «да» имеет задача
, если существует полиномиальный алгоритм F,
F
Лемма 1. Пусть
такую что
.
имеет ответ «да» тогда
I
.
I
стро-
I
Тогда
а)
б)
в)
L NP L NP
Доказательство.
Пункт а) совершенно очевиден — чтобы вычислить
значение предиката 1L , достаточно применить ко входу x
функцию f , а к результату её работы — программу вычисления 2L .
Пункт б) следует из пункта а).
Пункт в) также прост. Его можно объяснить по-разному. Например, так:
M сообщает A
торым полиномом h от длины x, поскольку
y, которое убеждает A в том, что
fx (длина которого ограничена неко-
) и слово
2
1L fx = . Используя
— 183 —

Глава 5. ВВЕДЕНИЕ В ТЕОРИЮ СЛОЖНОСТИ АЛГОРИТМОВ
( )
( )
( )
( )
(
)
⇔ ⇔∃ < ∧ ⇔
( )
12
Γ ⇒Γ
12
Γ ⇒Γ
( ) ( )
( )
( )
12 23 13
LL LL LL
13
fL L
′′
→
( ) ( )
( )
xL
′
∈
12
LL
12
Γ ⇒Γ
определение NP класса, можно написать цепочку эквивалентностей
L x L fx y y q fx Rfx y
( ) ( )
12
⇔∃ < ∧
y y r x Rfx y
( )
Полином
зиция полиномов q и h.
Учитывая лемму 1, можно интерпретировать сводимость
задачи
Отметим, что отношение полиномиальной сводимости
является транзитивным.
Лемма 2. Имеет место:
Доказательство.
Пусть функция 1f реализует полиномиальную сводимость предиката 1L к 2L , а 2f реализует полиномиальную
сводимость предиката 2L к 3L .
Тогда функция
реализует искомую сводимость предиката 1L к 3L .
1
Ее полиномиальность доказывается аналогично соответствующему доказательству леммы 1.
Предикаты
навания
сводятся друг к другу.
Из леммы 2 следует, что это отношение есть отношение
эквивалентности, а отношение «⇒» определяет частичное
упорядочение возникающих классов эквивалентности предикатов (задач распознавания).
Класс P — это «наименьший» относительно этого частичного порядка класс эквивалентности, и с вычислительной точки зрения его можно рассматривать как класс
«самых легких» предикатов (задач распознавания).
( )
( )
rx в последнем выражении — это компо-
как утверждение, что задача
.
⇒∧⇒ →⇒.
и
и
) полиномиально эквивалентны, если они
( )
( )
:
(соответственно, задачи распоз-
,.
, где
( )
fx f f x= для всех
,
( )
«не проще»
21
— 184 —

5.4. Полиномиальная сводимость и полнота
12
LL⇒
L NP∈
( )
( )
NPΓ∈
( )
xi
{ }
( )
xi
( )
yj
ij≠
xy≠
σ=ι
Лемма 3. Если
дикат и
Определение 3. Предикат
полным, если любой предикат из NP к нему сводится.
Если некоторый NP-полный предикат можно вычислять за время
числять за время
числа c. Такая потеря эффективности считается в этой теории несущественной.
Задача
линомиально сводится любая задача из NP.
Очевидно, любые две NP-полные задачи являются полиномиально эквивалентными, в том смысле, что каждая
из них полиномиально сводимо к другой.
Теорема (Кук). Задача выполнимости КНФ является
NP-полной.
В силу теоремы Кука, для того чтобы показать, что
какая-либо задача из NP является NP-полной, достаточно
полиномиально свести задачу выполнимости КНФ к данной задаче.
Покажем сводимость задачи выполнимости КНФ к задаче о клике с указанным числом вершин.
Рассмотрим произвольную КНФ K. Обозначим через k число входящих в нее элементарных дизъюнкций.
Построим по K граф G следующим образом.
Каждому вхождению переменной в K сопоставим вершину графа и пометим ее символом
рассматриваемое вхождение, а i — номер дизъюнкции,
в которой оно содержится. Вершины
ним ребром тогда и только тогда, когда
ется отрицанием yι (т.е.
Оценим сложность построения по данной КНФ K графа G.
Tn , то любой предикат из NP можно вы-
, L L NP∈, 1L — это NP-полный пре-
12
, то 2L — тоже NP-полный предикат.
называется NP-
c
Tn для некоторого фиксированного
называется NP-полной, если к ней по-
σ
,
или
где
σ
,
и
и xσ не явля-
).
ι
,
0,1σ∈ —
соеди-
— 185 —

Глава 5. ВВЕДЕНИЕ В ТЕОРИЮ СЛОЖНОСТИ АЛГОРИТМОВ
( )
12 1
vv
( )
( ) ( ) ( )
123 13 23
Kxxx xx xx
( ) ( ) ( ) ( ) ( ) ( ) ( )
1 2 3 13 2 3
xxxxxxx
3, ,3, ,2, 2, ,1, ,1, ,1,
3231321
xxxxxxx
,
Граф G изображен на рис. 5.
Пусть число вхождений переменных в K равно n.
Известно, что построение всех вершин графа G требует
не более
On числа элементарных операций.
При построении же ребер графа G необходимо сравнить по порядку каждую из его вершин
, ,...,
vv v− соот-
n
ветственно с вершинами
, ,..., ;
vv v
23
,..., ;
⋅⋅ ⋅
,
т.е. всего выполнить не более
3
v
−
∑
=
n
n
n
1
n i On
−=
( )
1ni
2
сравнений.
( )
Таким образом, сложность построения поданной КНФ
K, содержащей n вхождений переменных, графа G равно
2
On .
В качестве примера рассмотрим КНФ
= ∨∨ ⋅ ∨ ⋅ ∨ .
⋅
Вершинами графа G являются
,1 , ,1 , ,1 , ,2 ,2 , ,3 , ,3
,
Граф G изображен на рис. 5.
Рисунок 5
— 186 —

5.4. Полиномиальная сводимость и полнота
( )
( )
xi
( )
yj
ij=
yx
τσ
ij≠
yx
τσ
x
( )
( )
xj
( )
xj
σ
( )
pk
σ=τ
(
)
xj
Предположим, что в КНФ K выполнима, и σ — набор,
на котором
1K σ= .
B каждой дизъюнкции конъюнкции K найдется
по крайней мере одно вхождение, принимающее значение 1. Произвольно выберем по одному такому вхождению и рассмотрим соответствующее множество вершин
графа G (его мощность равна k — по числу дизъюнкций).
Покажем, что любые две вершины из этого множества соединены ребром.
Действительно, ребро между вершинами
τ
и
,
может отсутствовать лишь в случае
= . Но
скобок, а
, поскольку вхождения берутся из разных
≠ , ибо одно и то же значение переменной
σ
,
либо
(определяемое соответствующей компонентой набор σ)
не может одновременно обратить в 1 вхождения xσ и xσ.
Таким образом, из выполнимости K следует наличие в G
клики мощности k.
В приведенном примере
1,0,0 1K = . Если выбрать
в первой скобке вхождение 1x , а во второй и третьей —
вхождения 3x , получим клику, выделенную на рис. 5 более темным цветом.
Обратно, пусть G содержит клику, состоящую из вер-
шин
,…,
1,...,
σ
k
,
.
k
i
k
p
xσ= 1),
i
p
Положим ipx =
σ
1
,
1
i
1
= (при этом будет
p
значения остальных переменных (если они есть) назначим
произвольно. Противоречия при таком задании не возникает, ибо если xσи xτ соединены ребром, то
.
По построению G вершинам
σ
p
,
соответствует
p
i
p
вхождениям из разных дизъюнкций, и поскольку число
вершин равно k, каждая дизъюнкция имеет вхождение,
— 187 —

Глава 5. ВВЕДЕНИЕ В ТЕОРИЮ СЛОЖНОСТИ АЛГОРИТМОВ
13
xx= =
NP −
P NP≠
P NP≠
обращающее ее в 1. При этом конъюнкция K также окажется равной 1.
Рассмотрим в качестве примера клику, выделенную
на рис. 1. Ей соответствуют значение
1, 0 .
Взяв
значение для 2x произвольно, получим набор, обращающий K в 1.
Таким образом, задача о клике действительно являет-
ся
-полной.
Можно показать, что
– задача выполнимости КНФ полиномиально своди-
ма к задаче 3-выполнимости;
– задача 3-выполнимости полиномиально сводима
к задаче о раскраске графа.
– и т.д.
Из теоремы Кука следует, что для решения проблемы
?
P NP= доста точно рассмотреть какую-нибудь одну из NP-
полных задач, например, ту же задачу КНФ выполнимости,
и ответить на вопрос о ее принадлежности классу Р. Если
она принадлежит классу Р, то Р = NР в силу NP-полноты
рассматриваемой задачи, если не принадлежит, то
так как найдена задача, принадлежащая NР и не принадлежащая Р. Но этот заманчивый план до сих пор реализовать не удалось, усилия многих исследователей не привели
к решению этой проблемы, хотя и устоялось мнение, что,
скорее всего,
.
Насчитывается более 1000 практических важных задач, для которых в настоящее время неизвестен полиномиальный алгоритм для их решения.
Поэтому маловероятно, что существует полиномиальный алгоритм, решающий данную NP-полную задачу.
Если нам необходимо решать NP-полную задачу, скорее
всего, ее нужно решать либо приближенными, либо вероятностными алгоритмами.
,
— 188 —

ЛИТЕРАТУРА
1. Верещагин Н.К. Вычислимые функции / Н.К. Верещагин,
А. Шень. — М.: МЦНМО, 1999. — 176 с
2. Гери М. Вычислительные машины и труднорешаемые за-
дачи / М. Гери, Д. Джонсон. — М.: Мир, 1982. — 416 с.
3. Игошин В.И. Математическая логика и теория алгорит-
мов. — Саратов, 1991.
4. Карп Р.М. Сводимость комбинаторных проблем // Ки-
бернетический сборник. — М.: Мир, 1975. — Вып. 12. — С. 16–38.
5. Катленд Н. Вычислимость. Введение в теорию рекур-
сивных функций. — 2-е изд. — М.,1983. — 195 с.
6. Клини С.К. Введение в математику. — М.: Иностр. лит.,
1957.
7. Колмогоров А.Н. К определению алгоритма /
А.Н. Колмогоров, В.А. Успенский // Успехи математических
наук. — 1958. — №4(13). — С. 3–28.
8. Колмогоров А.Н., Драгалин А.Г. Математическая логика.
Дополнительные главы. — М., 1984. –120 с.
9. Кук С.А. Вычислительная сложность функций высше-
го типа / Международный конгресс математиков в Киото. — М.:
Мир, 1996. — С. 78–100.
10. Лавров И.А., Максимов Л.Л. Задачи по теории множеств,
математической логики и теории алгоритмов. — М., 1984. — 224 с.
11. Мальцев А.И. Алгоритмы и рекурсивные функции. —
2-е изд. — М., 1986. — 211 с.
12. Марков А.А. Теория алгоритмов / А.А. Марков, Н.И. На-
горный. — М.: Наука, 1984.
13. Математическая логика. / Под. ред. А.А. Столяр. —
Минск, 1991. — 269 с.
14. Матросов В.Л. Теория алгоритмов. — М.,1989. — 188 с.
15. Мендельсон Э. Введение в математическую логику. —
М.: 1976.
— 189 —

ЛИТЕРАТУРА
16. Минский М. Вычисления и автоматы. — М.: Мир, 1971.
17. Новиков П.С. Элементы математической логики. —
2-е изд. — М., 1973. — 400 с.
18. Разборов А.А. О сложности вычислений // Математическое
просвещение. — Сер. 3. — Т. 3. — М., 1998. — с. 127–141.
19. Роджерс Х. Теория рекурсивных функций и эффектив-
ная вычислимость. — 2-е изд. — М., 1986. — 211 с.
20. Столяр А.А., Макаренков А.В. Что такое алгоритм. —
Минск, 1991. — 169 с.
21. Трахтенброт Б.А. Алгоритмы и вычислительные авто-
маты. — М.: Советское радио, 1974.
22. Успенский В.А. Лекции о вычислимых функциях. — М.,
1960.
23. Фролов Г.Д. Элементы информатики / Г.Д. Фролов,
Э.И. Кузнецов. — М.: Высшая школа, 1989.
24. Хьюз Дж. Структурный подход к программированию /
Дж. Хьюз, Дж. Мичтом. — М.: Мир, 1980.
25. Bohm C. Flow Diagrams, Turing Machines, and languages
with Only Two Formation Rules. / C. Bohm, G.Jacopini. //
Communications of the ACM. — May 1966. — Vol. 9. — P. 366–371.
26. Friedberg R.M. Three Theorems on Recursive Enumeration /
R.M. Freadberg // Jour Symbolic Logic. — 1958. — № 23. — P. 309–
316.
— 190 —
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
