Your SlideShare is downloading. ×
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
P Reducibility And Npc
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

P Reducibility And Npc

488

Published on

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

  • Be the first to like this

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Полиномиальные сводимости и N P-полнота Н.Н. Кузюрин С.А. Фомин 10 октября 2008 г. 1 / 29
  • 2. Труднорешаемые задачи Определение Алгоритмическая задача называется труднорешаемой, если для нее не существует полиномиального алгоритма. Существуют ли разрешимые задачи, которые тем не менее не принадлежат классу P. Ответ — «теорема об иерархии». Теорема Существует алгоритмическая задача, разрешимая некоторым алгоритмом сложности nO(log n) , но не принадлежащая классу P. 2 / 29
  • 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. Дискретные задачи оптимизации Задача «Коммивояжер», «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. Переборные задачи разрешения Задача «TSP-разрешимость». Заданы n городов c1 , . . . , cn и попарные расстояния dij ≡ d(ci , cj ) между ними, являющиеся положительными целыми числами, и положительное целое B. Верно ли, что минимально возможное значение суммы (1) меньше B? 5 / 29
  • 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. Недетерминированная машина Тьюринга Определение Недетерминированная машина Тьюринга (НМТ) — это набор 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. Временная сложность для НМТ Классы 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. Классы 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. Определение 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. «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. «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. «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. «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. Сводимость по Куку: незамкнутость N P и coN P Задача разрешения «Comm(m, d) > B» (в которой спрашивается верно ли, что любой маршрут коммивояжера имеет длину по крайней мере (B + 1)), принадлежит классу coN P и не принадлежит классу N P, при общепринятой гипотезе P = N P. В то же время она очевидным образом сводится по Куку к переборной задаче «TSP-разрешимость», принадлежащей классу N P. 15 / 29
  • 16. Сводимость по Карпу Определение Задача разрешения P1 полиномиально сводится к задаче разрешения P2 , если существует полиномиально вычислимая функция f , перерабатывающая массивы входных данных I1 для задачи P1 в массивы входных данных I2 ≡ f (I1 ) для задачи P2 таким образом, что для любого I1 ответ в задаче P1 совпадает с ответом задачи P2 для входных данных f (I1 ). 16 / 29
  • 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. Первая 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. Задача «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. Задача «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. Задача «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. Доказательство через сводимость Если 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. «2SAT» ∈ P Задача «2-Выполнимость»(2SAT). Частный случай задачи «SAT», в котором каждая элементарная дизъюнкция имеет длину k ≤ 2. Соответствующие КНФ называются 2-КНФ. Можно исключить все дизъюнкции, состоящие из одного терма: Если (xi ) ⇒ xi ≡ 1 ⇒ выкидываем все дизъюнкты с xi в положительной степени, а из дизъюнктов содержащих ¬xi , выкидываем ¬xi (т.к. ¬xi ≡ 0). Если есть дизъюнкт (¬xi ) — формула неразрешима. Аналогично для (¬xi ). ⇒ все дизъюнкты в КНФ из двух термов. 23 / 29
  • 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. «Вершинное покрытие» Задача «Вершинное покрытие»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. Задача «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. ? P = NP N P-трудные задачи N PC-задача N PC NP P coN P Сводимость по Карпу N P-задача «Экспертное мнение» считает, что P = N P. 27 / 29
  • 28. Карта памяти лекции 28 / 29
  • 29. Интернет поддержка курса http://discopal.ispras.ru/ Вопросы? 29 / 29

×