Полиномиальные сводимости и N P-полнота

         Н.Н. Кузюрин   С.А. Фомин



             10 октября 2008 г.




       ...
Труднорешаемые задачи


Определение
Алгоритмическая задача называется труднорешаемой, если для нее
не существует полиномиа...
Сводимость по Куку
Определение
Алгоритмическая задача P1 полиномиально сводится к задаче P2 ,
если существует полиномиальн...
Дискретные задачи оптимизации
Задача
«Коммивояжер», «TSPa ». Заданы неориентированный граф из n
вершин-городов, и dij ≡ d(...
Переборные задачи разрешения




Задача
«TSP-разрешимость». Заданы n городов c1 , . . . , cn и попарные
расстояния dij ≡ d...
Сведение бинарным поиском

Вход: m > 0, dij > 0, ∀i, j ∈ (1, . . . , m)
Выход: Перестановка πopt , такая, что сумма (1) ми...
Недетерминированная машина Тьюринга
Определение
Недетерминированная машина Тьюринга (НМТ) — это набор
T = k, Σ, Γ, Φ , где...
Временная сложность для НМТ

Классы N T IME(f (n)), N SPACE(f (n)) определяются аналогично
классам DT IME(f (n)), DSPACE(f...
Классы N P и coN P

Определение


                   N P = ∪c>0 N T IME(nc ),
                 coN P = {L|L ∈ N P}.

Упраж...
Определение N P через ДМТ


Определение
Язык L ⊆ Σ∗ принадлежит классу N P, если существуют
полиномиальная детерминированн...
«N P/НМТ» ⇔ «N P/ДМТ»

Доказательство.
⇒: ∀x ∈ L → подсказка y : закодированный кратчайший протокол
выполнения-подтвержден...
«N P/НМТ» ⇔ «N P/ДМТ»

Доказательство.
⇒: ∀x ∈ L → подсказка y : закодированный кратчайший протокол
выполнения-подтвержден...
«N P/НМТ» ⇔ «N P/ДМТ»

Доказательство.
⇒: ∀x ∈ L → подсказка y : закодированный кратчайший протокол
выполнения-подтвержден...
«N P/НМТ» ⇔ «N P/ДМТ»

Доказательство.
⇒: ∀x ∈ L → подсказка y : закодированный кратчайший протокол
выполнения-подтвержден...
Сводимость по Куку: незамкнутость N P и coN P



Задача разрешения «Comm(m, d) > B» (в которой спрашивается
верно ли, что ...
Сводимость по Карпу



Определение
Задача разрешения P1 полиномиально сводится к задаче
разрешения P2 , если существует по...
N P-полные задачи

Определение
Задача разрешения называется N P-полнойa , если она сама
принадлежит классу N P, а с другой...
Первая N P-полная задача
Задача
«Выполнимость/SAT»a . Дано булевское выражение, являющееся
коньюнктивной нормальной формой...
Задача «SAT» — N P-полна.

Доказательство.
∀x, кодирующего выполнимую входную КНФ, ∃y — значения
переменных, при которых э...
Задача «SAT» — N P-полна.
Доказательство.
          t=0               Γ0,1
          t=1
                                 ...
Задача «SAT» — N P-полна.


Доказательство.
Ячейки ≡ переменные, вся таблица ≡ формула (в форме КНФ).
Чтобы таблица вычисл...
Доказательство через сводимость

Если N P-полная задача P1 полиномиально сводится к переборной
задаче P2 , то P2 также N P...
«2SAT» ∈ P

Задача
«2-Выполнимость»(2SAT). Частный случай задачи «SAT», в котором
каждая элементарная дизъюнкция имеет дли...
«2SAT» ∈ P

                         x ∨ y ≡ (¬x → y ) ∧ (¬y → x)
2SAT-формула, с n переменных xi ⇒ ориентированный граф:
...
«Вершинное покрытие»


Задача
«Вершинное покрытие»a .
Дан граф G = (V , E ) и положительное целое число K , K ≤ |V |.
Имее...
Задача «Vertex Covering» ∈ N PC
3-КНФ от x1 , . . . , xn , k = 3 для всех (m) ЭД.
         ∀j xj ⇒ дуга (xj , ¬xj )
      ...
?
P = NP




       N P-трудные задачи
                       N PC-задача

                  N PC
                        ...
Карта памяти лекции




                      28 / 29
Интернет поддержка курса




 http://discopal.ispras.ru/
Вопросы?



                           29 / 29
Upcoming SlideShare
Loading in...5
×

P Reducibility And Npc

516

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
516
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

P Reducibility And Npc

  1. 1. Полиномиальные сводимости и N P-полнота Н.Н. Кузюрин С.А. Фомин 10 октября 2008 г. 1 / 29
  2. 2. Труднорешаемые задачи Определение Алгоритмическая задача называется труднорешаемой, если для нее не существует полиномиального алгоритма. Существуют ли разрешимые задачи, которые тем не менее не принадлежат классу P. Ответ — «теорема об иерархии». Теорема Существует алгоритмическая задача, разрешимая некоторым алгоритмом сложности nO(log n) , но не принадлежащая классу P. 2 / 29
  3. 3. Сводимость по Куку Определение Алгоритмическая задача P1 полиномиально сводится к задаче P2 , если существует полиномиальный алгоритм для решения задачи P1 , возможно вызывающий в ходе своей работы процедуру для решения задачи P2 . Проблема — переполнение памяти. t Вычисление 22 Вход: Натуральное t R←2 for all i ∈ 1..t do R ←R ×R end for P получается незамкнут. Выход: рассматривать только «задачи разрешения». 3 / 29
  4. 4. Дискретные задачи оптимизации Задача «Коммивояжер», «TSPa ». Заданы неориентированный граф из n вершин-городов, и dij ≡ d(vi , vj ) — положительные целые расстояния между городами. Чему равна наименьшая возможная длина кольцевого маршрута, проходящего по одному разу через все города? Т.е. нужно найти минимально возможное значение суммы n−1  min  dpi ,pi+1 + dpn ,p1 , (1) 1 2 . . . n i=1 p∈ . . . . где минимум берется по всем перестановкам p чисел 1, . . . , n. a В англоязычной литературе — Traveling Salesman Problem. 4 / 29
  5. 5. Переборные задачи разрешения Задача «TSP-разрешимость». Заданы n городов c1 , . . . , cn и попарные расстояния dij ≡ d(ci , cj ) между ними, являющиеся положительными целыми числами, и положительное целое B. Верно ли, что минимально возможное значение суммы (1) меньше B? 5 / 29
  6. 6. Сведение бинарным поиском Вход: m > 0, dij > 0, ∀i, j ∈ (1, . . . , m) Выход: Перестановка πopt , такая, что сумма (1) минимальна. { Используется процедура TSPbool (m, D, B) для задачи «TSP-разрешимость»} Bmin ← 0 Bmax ← m · max1≤i<j≤m d(ci , cj ) {Bmin ≤ (1) ≤ Bmax , где TSPbool (m, d)} while Bmax − Bmin > 1 do B ← (Bmin + Bmax )/2 if TSPbool (m, D, B) then Bmax ← B else Bmin ← B end if end while if TSPbool (m, D, Bmin ) then return Bmin else return Bmax end if 6 / 29
  7. 7. Недетерминированная машина Тьюринга Определение Недетерминированная машина Тьюринга (НМТ) — это набор T = k, Σ, Γ, Φ , где k ≥ 1 — натуральное число (число лент), Σ, Γ — конечные множества, ∈ Σ, START , STOP ∈ Γ, а Φ — произвольное отношение: Φ ⊂ (Γ × Σk ) × (Γ × Σk × {−1, 0, 1}k ). Переход из состояния g , с символами на лентах h1 , . . . , hk будет допустим, если новое состояние g , записанные символы h1 , . . . , hk и смещения головок ε1 , . . . , εk удовлетворяют соотношению (g , h1 , . . . , hk , g , h1 , . . . , hk , ε1 , . . . , εk ) ∈ Φ. Недетерминированный алгоритм по определению выдает окончательный ответ 1, если существует хотя бы один путь развития вычисления, на котором выдается ответ 1, и 0 — в противном случае. 7 / 29
  8. 8. Временная сложность для НМТ Классы N T IME(f (n)), N SPACE(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)) А классы сложность НМТ — нет. ? coN T IME(f (n)) = N T IME(f (n)) ? coN SPACE(f (n)) = N SPACE(f (n)) 8 / 29
  9. 9. Классы N P и coN P Определение N P = ∪c>0 N T IME(nc ), coN P = {L|L ∈ N P}. Упражнение Покажите, что P ⊆ N P ∩ coN P. Упражнение Покажите, что N P ⊆ PSPACE 9 / 29
  10. 10. Определение N P через ДМТ Определение Язык L ⊆ Σ∗ принадлежит классу N P, если существуют полиномиальная детерминированная машина Тьюринга M и полином p(·), такие, что L = {x ∈ Σ∗ : ∃ y , |y | < p(|x|)& M(x, y ) = 1}. Слово y называется обычно «подсказкой», «свидетелем» (witness), «доказательством» (proof ). Теорема Определения «N P/НМТ» и «N P/ДМТ» эквивалентны. 10 / 29
  11. 11. «N P/НМТ» ⇔ «N P/ДМТ» Доказательство. ⇒: ∀x ∈ L → подсказка y : закодированный кратчайший протокол выполнения-подтверждения НМТ T, определяющей L, в смысле определения «N P/НМТ». Длина кратчайшего пути-подтверждения T(x) полиномиально ограничена ⇒ y (x) — полиномиально ограничена. Проверка протокола y (x): полиномиальное время. ⇐: Пусть НМТ T, недетерминированно дописывает разделитель # и некоторое слово y , к входному слову x, а затем работает над словом x#y , как полиномиальная детерминированная машины Тьюринга из определения «N P/ДМТ». 11 / 29
  12. 12. «N P/НМТ» ⇔ «N P/ДМТ» Доказательство. ⇒: ∀x ∈ L → подсказка y : закодированный кратчайший протокол выполнения-подтверждения НМТ T, определяющей L, в смысле определения «N P/НМТ». Длина кратчайшего пути-подтверждения T(x) полиномиально ограничена ⇒ y (x) — полиномиально ограничена. Проверка протокола y (x): полиномиальное время. ⇐: Пусть НМТ T, недетерминированно дописывает разделитель # и некоторое слово y , к входному слову x, а затем работает над словом x#y , как полиномиальная детерминированная машины Тьюринга из определения «N P/ДМТ». 12 / 29
  13. 13. «N P/НМТ» ⇔ «N P/ДМТ» Доказательство. ⇒: ∀x ∈ L → подсказка y : закодированный кратчайший протокол выполнения-подтверждения НМТ T, определяющей L, в смысле определения «N P/НМТ». Длина кратчайшего пути-подтверждения T(x) полиномиально ограничена ⇒ y (x) — полиномиально ограничена. Проверка протокола y (x): полиномиальное время. ⇐: Пусть НМТ T, недетерминированно дописывает разделитель # и некоторое слово y , к входному слову x, а затем работает над словом x#y , как полиномиальная детерминированная машины Тьюринга из определения «N P/ДМТ». 13 / 29
  14. 14. «N P/НМТ» ⇔ «N P/ДМТ» Доказательство. ⇒: ∀x ∈ L → подсказка y : закодированный кратчайший протокол выполнения-подтверждения НМТ T, определяющей L, в смысле определения «N P/НМТ». Длина кратчайшего пути-подтверждения T(x) полиномиально ограничена ⇒ y (x) — полиномиально ограничена. Проверка протокола y (x): полиномиальное время. ⇐: Пусть НМТ T, недетерминированно дописывает разделитель # и некоторое слово y , к входному слову x, а затем работает над словом x#y , как полиномиальная детерминированная машины Тьюринга из определения «N P/ДМТ». 14 / 29
  15. 15. Сводимость по Куку: незамкнутость N P и coN P Задача разрешения «Comm(m, d) > B» (в которой спрашивается верно ли, что любой маршрут коммивояжера имеет длину по крайней мере (B + 1)), принадлежит классу coN P и не принадлежит классу N P, при общепринятой гипотезе P = N P. В то же время она очевидным образом сводится по Куку к переборной задаче «TSP-разрешимость», принадлежащей классу N P. 15 / 29
  16. 16. Сводимость по Карпу Определение Задача разрешения P1 полиномиально сводится к задаче разрешения P2 , если существует полиномиально вычислимая функция f , перерабатывающая массивы входных данных I1 для задачи P1 в массивы входных данных I2 ≡ f (I1 ) для задачи P2 таким образом, что для любого I1 ответ в задаче P1 совпадает с ответом задачи P2 для входных данных f (I1 ). 16 / 29
  17. 17. N P-полные задачи Определение Задача разрешения называется N P-полнойa , если она сама принадлежит классу N P, а с другой стороны, произвольная задача из N P сводится к ней полиномиально (См. определение «Сводимость по Карпу»). Класс N P-полных задач обозначается N PC. a Чтобы не перегружать лекции излишней терминологией, мы будем называть в дальнейшем оптимизационную задачу N P-полной, если N P-полна соответствующая задача разрешения. Обратите внимание, что в определение задачи N PC обязательно входит принадлежность классу N P — если опустить это условие, получится класс N P-трудных (N P-hard ) задач, включающих N PC, но выходящих за границы класса N P (при гипотезе P = N P). 17 / 29
  18. 18. Первая N P-полная задача Задача «Выполнимость/SAT»a . Дано булевское выражение, являющееся коньюнктивной нормальной формой (КНФ): m CNF = Ci , (2) i=1 где Ci — элементарные дизъюнкции вида xjσ1 ∨ . . . ∨ xjσk , 1 k (3) 1 ≤ k ≤ n, σj ∈ {0, 1}, x 1 = x и x 0 = (¬x). Существует ли (булевский) набор переменных xj , обращающий эту форму в 1 (т.е. в «Истину»)? a В англоязычной литературе — Satisfiability или просто SAT. 18 / 29
  19. 19. Задача «SAT» — N P-полна. Доказательство. ∀x, кодирующего выполнимую входную КНФ, ∃y — значения переменных, при которых эта КНФ выполняется, это проверяется за полиномиальное время ⇒ задача «SAT»∈N P. Рассмотрим произвольный язык L ∈ N P: ⇒ ∀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
  20. 20. Задача «SAT» — N P-полна. Доказательство. t=0 Γ0,1 t=1 ... t=j Γleft Γ Γright t =j +1 Γ ... t=T ... S клеток Ячейка (i, j): если головка на i-й позиции, то состояние МТ, иначе ∅. Ячейки, кодирующие часть клеток нулевой строки, определяются x, Результат вычисления в ячейке (t, 0). 20 / 29
  21. 21. Задача «SAT» — N P-полна. Доказательство. Ячейки ≡ переменные, вся таблица ≡ формула (в форме КНФ). Чтобы таблица вычисления соответствовала правильно проведённому успешному (с ответом 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
  22. 22. Доказательство через сводимость Если N P-полная задача P1 полиномиально сводится к переборной задаче P2 , то P2 также N P-полна. Задача «3-Выполнимость/3SAT». Вариант задачи «SAT», где каждая элементарная дизъюнкция (3) имеет длину k ≤ 3. Соответствующие КНФ называются 3-КНФ. Заменим каждую элементарную дизъюнкцию с k > 3 на: σ yi2 ≡ (xjσ1 ∨ xjσ2 ) ∧ yi3 ≡ (yi2 ∨ xjσ3 ) ∧ ... ∧ yik ≡ (yi,k−1 ∨ xj k ) ∧ yik , 1 2 3 k где yi2 , . . . , yik — новые булевы переменные, и трансформируем yiν ≡ (yi,ν−1 ∨ xjσν ) в 3-КНФ. ν Задача «3SAT» — N P-полна. 22 / 29
  23. 23. «2SAT» ∈ P Задача «2-Выполнимость»(2SAT). Частный случай задачи «SAT», в котором каждая элементарная дизъюнкция имеет длину k ≤ 2. Соответствующие КНФ называются 2-КНФ. Можно исключить все дизъюнкции, состоящие из одного терма: Если (xi ) ⇒ xi ≡ 1 ⇒ выкидываем все дизъюнкты с xi в положительной степени, а из дизъюнктов содержащих ¬xi , выкидываем ¬xi (т.к. ¬xi ≡ 0). Если есть дизъюнкт (¬xi ) — формула неразрешима. Аналогично для (¬xi ). ⇒ все дизъюнкты в КНФ из двух термов. 23 / 29
  24. 24. «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
  25. 25. «Вершинное покрытие» Задача «Вершинное покрытие»a . Дан граф G = (V , E ) и положительное целое число K , K ≤ |V |. Имеется ли в графе G вершинное покрытие не более чем из K элементов, т.е. такое подмножество V ⊆ V , что |V | ≤ K и каждое ребро из E содержит хотя бы одну вершину из V ? a В англоязычной литературе — Vertex Covering. Лемма Задача «Vertex Covering» лежит в N PC. 25 / 29
  26. 26. Задача «Vertex Covering» ∈ N PC 3-КНФ от x1 , . . . , xn , k = 3 для всех (m) ЭД. ∀j xj ⇒ дуга (xj , ¬xj ) ∀ ЭД ⇒ треугольник (vi1 , vi2 , vi3 ) соединяем дугами vi1 c xjσ1 , vi2 — c xjσ2 и vi3 — c xjσ3 . 1 2 3 Вершинное покрытие должно иметь (x1 ∨ x2 ∨ x4 ) ∧ (x2 ∨ x3 ∨ x4 ) ∧ (x1 ∨ x2 ∨ x4 ) размер не менее (n + 2m) (n вершин на (xj , ¬xj ) и 2m на (vi1 , vi2 , vi3 )). Если есть выполняющий набор для 3КНФ, то существует вершинное покрытие размера (n + 2m): xj если xj = 1 (иначе ¬xj ), этим «покрываем» по одной вершине в каждом треугольнике. Чтобы покрыть остальные, нужно + две Выполнимо при x1 = 0, x2 = 1 вершины, чтобы покрыть треугольник. (x3 , x4 — любые). 26 / 29
  27. 27. ? P = NP N P-трудные задачи N PC-задача N PC NP P coN P Сводимость по Карпу N P-задача «Экспертное мнение» считает, что P = N P. 27 / 29
  28. 28. Карта памяти лекции 28 / 29
  29. 29. Интернет поддержка курса http://discopal.ispras.ru/ Вопросы? 29 / 29
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×