p reducibility and npc
TRANSCRIPT
Полиномиальные сводимости и NP-полнота
Н.Н. Кузюрин С.А. Фомин
10 октября 2008 г.
1 / 29
Труднорешаемые задачи
ОпределениеАлгоритмическая задача называется труднорешаемой, если для неене существует полиномиального алгоритма.
Существуют ли разрешимые задачи, которые тем не менее непринадлежат классу P. Ответ — «теорема об иерархии».
ТеоремаСуществует алгоритмическая задача, разрешимая некоторымалгоритмом сложности nO(log n), но не принадлежащая классу P.
2 / 29
Сводимость по КукуОпределение
Алгоритмическая задача P1 полиномиально сводится к задаче P2,если существует полиномиальный алгоритм для решения задачи P1,возможно вызывающий в ходе своей работы процедуру для решениязадачи P2.
Проблема — переполнение памяти.
Вычисление 22t
Вход: Натуральное tR ← 2for all i ∈ 1..t do
R ← R × Rend for
P получается незамкнут. Выход: рассматривать только «задачиразрешения».
3 / 29
Дискретные задачи оптимизации
Задача
«Коммивояжер», «TSPa». Заданы неориентированный граф из nвершин-городов, и dij ≡ d(vi , vj) — положительные целые расстояниямежду городами.Чему равна наименьшая возможная длина кольцевого маршрута,проходящего по одному разу через все города? Т.е. нужно найтиминимально возможное значение суммы
min
p∈
1 2 . . . n. . . .
n−1∑i=1
dpi ,pi+1 + dpn,p1 , (1)
где минимум берется по всем перестановкам p чисел 1, . . . , n.aВ англоязычной литературе — Traveling Salesman Problem.
4 / 29
Переборные задачи разрешения
Задача
«TSP-разрешимость». Заданы n городов c1, . . . , cn и попарныерасстояния dij ≡ d(ci , cj) между ними, являющиеся положительнымицелыми числами, и положительное целое B .Верно ли, что минимально возможное значение суммы (1) меньше B?
5 / 29
Сведение бинарным поиском
Вход: m > 0, dij > 0, ∀i , j ∈ (1, . . . ,m)Выход: Перестановка πopt , такая, что сумма (1) минимальна.
{ Используется процедура TSPbool(m,D,B) для задачи «TSP-разрешимость»}Bmin ← 0Bmax ← m ·max1≤i<j≤m d(ci , cj) {Bmin ≤ (1) ≤ Bmax, где TSPbool(m, d)}while Bmax − Bmin > 1 do
B ← b(Bmin + Bmax)/2cif TSPbool(m,D,B) then
Bmax ← Belse
Bmin ← Bend if
end whileif TSPbool(m,D,Bmin) then
return Bmin
elsereturn Bmax
end if
6 / 29
Недетерминированная машина ТьюрингаОпределение
Недетерминированная машина Тьюринга (НМТ) — это наборT = 〈k ,Σ, Γ,Φ〉, где k ≥ 1 — натуральное число (число лент),Σ, Γ — конечные множества, ? ∈ Σ, START ,STOP ∈ Γ,а Φ — произвольное отношение:
Φ ⊂ (Γ× Σk)× (Γ× Σk × {−1, 0, 1}k).
Переход из состояния g , с символами на лентах h1, . . . , hk будетдопустим, если новое состояние g ′, записанные символы h′1, . . . , h
′k и
смещения головок ε1, . . . , εk удовлетворяют соотношению
(g , h1, . . . , hk , g′, h′1, . . . , h
′k , ε1, . . . , εk) ∈ Φ.
Недетерминированный алгоритм по определению выдаетокончательный ответ 1, если существует хотя бы один путь развитиявычисления, на котором выдается ответ 1,и 0 — в противном случае. 7 / 29
Временная сложность для НМТ
Классы NT IME(f (n)), NSPACE(f (n)) определяются аналогичноклассам DT IME(f (n)), DSPACE(f (n)).Но для МТ классы сложности языков замкнуты относительнодополнения.
coDT IME(f (n)) ≡ {L|L ∈ DT IME(f (n))}coDT IME(f (n)) = DT IME(f (n))
А классы сложность НМТ — нет.
coNT IME(f (n))?= NT IME(f (n))
coNSPACE(f (n))?= NSPACE(f (n))
8 / 29
Классы NP и coNP
Определение
NP = ∪c>0NT IME(nc),
coNP = {L|L ∈ NP}.
УпражнениеПокажите, что P ⊆ NP ∩ coNP.
УпражнениеПокажите, что NP ⊆ PSPACE
9 / 29
Определение NP через ДМТ
Определение
Язык L ⊆ Σ∗ принадлежит классу NP, если существуютполиномиальная детерминированная машина Тьюринга M и полиномp(·), такие, что L = {x ∈ Σ∗ : ∃ y , |y | < p(|x |)& M(x , y) = 1}.
Слово y называется обычно «подсказкой», «свидетелем» (witness),«доказательством» (proof ).
ТеоремаОпределения «NP/НМТ» и «NP/ДМТ» эквивалентны.
10 / 29
«NP/НМТ» ⇔ «NP/ДМТ»
Доказательство.⇒: ∀x ∈ L → подсказка y : закодированный кратчайший протоколвыполнения-подтверждения НМТ T, определяющей L, в смыслеопределения «NP/НМТ».
Длина кратчайшего пути-подтверждения T(x) полиномиальноограничена ⇒ y(x) — полиномиально ограничена.Проверка протокола y(x): полиномиальное время.
⇐: Пусть НМТ T, недетерминированно дописывает разделитель #и некоторое слово y , к входному слову x , а затем работает над словомx#y , как полиномиальная детерминированная машины Тьюринга изопределения «NP/ДМТ».
11 / 29
«NP/НМТ» ⇔ «NP/ДМТ»
Доказательство.⇒: ∀x ∈ L → подсказка y : закодированный кратчайший протоколвыполнения-подтверждения НМТ T, определяющей L, в смыслеопределения «NP/НМТ».
Длина кратчайшего пути-подтверждения T(x) полиномиальноограничена ⇒ y(x) — полиномиально ограничена.Проверка протокола y(x): полиномиальное время.
⇐: Пусть НМТ T, недетерминированно дописывает разделитель #и некоторое слово y , к входному слову x , а затем работает над словомx#y , как полиномиальная детерминированная машины Тьюринга изопределения «NP/ДМТ».
12 / 29
«NP/НМТ» ⇔ «NP/ДМТ»
Доказательство.⇒: ∀x ∈ L → подсказка y : закодированный кратчайший протоколвыполнения-подтверждения НМТ T, определяющей L, в смыслеопределения «NP/НМТ».
Длина кратчайшего пути-подтверждения T(x) полиномиальноограничена ⇒ y(x) — полиномиально ограничена.Проверка протокола y(x): полиномиальное время.
⇐: Пусть НМТ T, недетерминированно дописывает разделитель #и некоторое слово y , к входному слову x , а затем работает над словомx#y , как полиномиальная детерминированная машины Тьюринга изопределения «NP/ДМТ».
13 / 29
«NP/НМТ» ⇔ «NP/ДМТ»
Доказательство.⇒: ∀x ∈ L → подсказка y : закодированный кратчайший протоколвыполнения-подтверждения НМТ T, определяющей L, в смыслеопределения «NP/НМТ».
Длина кратчайшего пути-подтверждения T(x) полиномиальноограничена ⇒ y(x) — полиномиально ограничена.Проверка протокола y(x): полиномиальное время.
⇐: Пусть НМТ T, недетерминированно дописывает разделитель #и некоторое слово y , к входному слову x , а затем работает над словомx#y , как полиномиальная детерминированная машины Тьюринга изопределения «NP/ДМТ».
14 / 29
Сводимость по Куку: незамкнутость NP и coNP
Задача разрешения «Comm(m, d) > B» (в которой спрашиваетсяверно ли, что любой маршрут коммивояжера имеет длину по крайнеймере (B + 1)), принадлежит классу coNP и не принадлежит классуNP, при общепринятой гипотезе P 6= NP.
В то же время она очевидным образом сводится по Куку к переборнойзадаче «TSP-разрешимость», принадлежащей классу NP.
15 / 29
Сводимость по Карпу
Определение
Задача разрешения P1 полиномиально сводится к задачеразрешения P2, если существует полиномиально вычислимая функцияf , перерабатывающая массивы входных данных I1 для задачи P1
в массивы входных данных I2 ≡ f (I1) для задачи P2 таким образом,что для любого I1 ответ в задаче P1 совпадает с ответом задачи P2
для входных данных f (I1).
16 / 29
NP-полные задачи
Определение
Задача разрешения называется NP-полнойa, если она самапринадлежит классу NP, а с другой стороны, произвольная задача изNP сводится к ней полиномиально (См. определение «Сводимостьпо Карпу»). Класс NP-полных задач обозначается NPC.
aЧтобы не перегружать лекции излишней терминологией, мы будем называтьв дальнейшем оптимизационную задачу NP-полной, если NP-полнасоответствующая задача разрешения.
Обратите внимание, что в определение задачи NPC обязательновходит принадлежность классу NP — если опустить это условие,получится класс NP-трудных (NP-hard) задач, включающих NPC,но выходящих за границы класса NP (при гипотезе P 6= NP).
17 / 29
Первая NP-полная задачаЗадача
«Выполнимость/SAT»a. Дано булевское выражение, являющеесяконьюнктивной нормальной формой (КНФ):
CNF =m∧
i=1
Ci , (2)
где Ci — элементарные дизъюнкции вида
xσ1j1∨ . . . ∨ xσk
jk, (3)
1 ≤ k ≤ n, σj ∈ {0, 1}, x1 = x и x0 = (¬x).Существует ли (булевский) набор переменных xj , обращающий этуформу в 1 (т.е. в «Истину»)?
aВ англоязычной литературе — Satisfiability или просто SAT.
18 / 29
Задача «SAT» — NP-полна.
Доказательство.∀x , кодирующего выполнимую входную КНФ, ∃y — значенияпеременных, при которых эта КНФ выполняется, это проверяется заполиномиальное время ⇒ задача «SAT»∈NP.
Рассмотрим произвольный язык L ∈ NP: ⇒∀x ∈ L, ∃y(x) : |y(x)| < poly(|x |), и ∃ МТ M, распознающаяLy = {x#y(x)|x ∈ L} за полиномиальное время (и полиномиальнуюпамять).
Процесс вычисления на x длины n можно представить таблицейвычисления размера T × S , где T = poly(n), S = poly(n).
19 / 29
Задача «SAT» — NP-полна.
Доказательство.
t = 0 Γ0,1
t = 1
. . .
t = j Γ′left Γ′ Γ′right
t = j + 1 Γ
. . .
t = T . . .
︸ ︷︷ ︸S клеток
Ячейка (i , j): если головка на i-й позиции, то состояние МТ, иначе ∅.Ячейки, кодирующие часть клеток нулевой строки, определяются x ,Результат вычисления в ячейке (t, 0).
20 / 29
Задача «SAT» — NP-полна.
Доказательство.Ячейки ≡ переменные, вся таблица ≡ формула (в форме КНФ).
Чтобы таблица вычисления соответствовала правильно проведённомууспешному (с ответом 1) вычислению, должны выполнятьсялокальные правила согласования для каждой четвёрки клеток видаи результат должен быть 1.
ϕx — конъюнкция всех этих формул, первая строка — x#y ,x# – константы, остальные ячейки — переменные (y и z).M распознает x#y ⇒ ∃z(x , y) : ϕx(y , z(x , y)) = 1.M не распознает x#y ⇒ ϕx(y , z) ≡ 0.
21 / 29
Доказательство через сводимость
Если NP-полная задача P1 полиномиально сводится к переборнойзадаче P2, то P2 также NP-полна.
Задача
«3-Выполнимость/3SAT».Вариант задачи «SAT», где каждая элементарная дизъюнкция (3)имеет длину k ≤ 3. Соответствующие КНФ называются 3-КНФ.
Заменим каждую элементарную дизъюнкцию с k > 3 на:(yi2 ≡ (xσ1
j1∨ xσ2
j2))∧(yi3 ≡ (yi2 ∨ xσ3
j3))∧ . . . ∧
(yik ≡ (yi,k−1 ∨ x
σkjk
))∧ yik ,
где yi2, . . . , yik — новые булевы переменные, и трансформируемyiν ≡ (yi ,ν−1 ∨ xσνjν
) в 3-КНФ.
Задача «3SAT» — NP-полна.
22 / 29
«2SAT» ∈ P
Задача
«2-Выполнимость»(2SAT). Частный случай задачи «SAT», в которомкаждая элементарная дизъюнкция имеет длину k ≤ 2.Соответствующие КНФ называются 2-КНФ.
Можно исключить все дизъюнкции, состоящие из одного терма:Если (xi ) ⇒ xi ≡ 1 ⇒ выкидываем все дизъюнкты с xi
в положительной степени, а из дизъюнктов содержащих ¬xi ,выкидываем ¬xi (т.к. ¬xi ≡ 0). Если есть дизъюнкт (¬xi ) — формуланеразрешима.
Аналогично для (¬xi ).
⇒ все дизъюнкты в КНФ из двух термов.
23 / 29
«2SAT» ∈ P
x ∨ y ≡ (¬x → y) ∧ (¬y → x)
2SAT-формула, с n переменных xi ⇒ ориентированный граф:2n узлов: ∀i xi , ¬xi
2m дуг: дизъюнкция (x ∨ y) → дуги (¬x → y) и (¬y → x).
(x ∨ y) ∧ (y ∨ z) ∧ (x ∨ z) (x ∨ y) ∧ (y ∨ z) ∧ (x ∨ z) ∧ (x ∨ z) ∧ (y ∨ z)
24 / 29
«Вершинное покрытие»
Задача
«Вершинное покрытие»a.Дан граф G = (V ,E ) и положительное целое число K , K ≤ |V |.Имеется ли в графе G вершинное покрытие не более чем из Kэлементов, т.е. такое подмножество V ′ ⊆ V , что |V ′| ≤ K и каждоеребро из E содержит хотя бы одну вершину из V ′?
aВ англоязычной литературе — Vertex Covering.
ЛеммаЗадача «Vertex Covering» лежит в NPC.
25 / 29
Задача «Vertex Covering» ∈ NPC3-КНФ от x1, . . . , xn, k = 3 для всех (m) ЭД.
∀j xj ⇒ дуга (xj ,¬xj)
∀ ЭД ⇒ треугольник (vi1, vi2, vi3)
соединяем дугами vi1 c xσ1j1
, vi2 — c xσ2j2
и vi3 — c xσ3j3
.
(x1 ∨ x2 ∨ x4) ∧ (x2 ∨ x3 ∨ x4) ∧ (x1 ∨ x2 ∨ x4)
Выполнимо при x1 = 0, x2 = 1
(x3, x4 — любые).
Вершинное покрытие должно иметьразмер не менее (n + 2m) (n вершин на(xj ,¬xj) и 2m на (vi1, vi2, vi3)).
Если есть выполняющий набор для3КНФ, то существует вершинноепокрытие размера (n + 2m): xj если xj = 1(иначе ¬xj), этим «покрываем» по однойвершине в каждом треугольнике.Чтобы покрыть остальные, нужно + двевершины, чтобы покрыть треугольник.
26 / 29
P ?= NP
P coNPNPNPC
NP-трудные задачи
Сводимость по Карпу
NPC-задача
NP-задача
«Экспертное мнение» считает, что P 6= NP.
27 / 29
�Карта памяти� лекции
28 / 29