SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Полиномиальные сводимости и N P-полнота

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



             10 октября 2008 г.




                                          1 / 29
Труднорешаемые задачи


Определение
Алгоритмическая задача называется труднорешаемой, если для нее
не существует полиномиального алгоритма.

Существуют ли разрешимые задачи, которые тем не менее не
принадлежат классу P. Ответ — «теорема об иерархии».
Теорема
Существует алгоритмическая задача, разрешимая некоторым
алгоритмом сложности nO(log n) , но не принадлежащая классу P.




                                                             2 / 29
Сводимость по Куку
Определение
Алгоритмическая задача P1 полиномиально сводится к задаче P2 ,
если существует полиномиальный алгоритм для решения задачи P1 ,
возможно вызывающий в ходе своей работы процедуру для решения
задачи P2 .
Проблема — переполнение памяти.
               t
Вычисление 22
Вход: Натуральное t
  R←2
  for all i ∈ 1..t do
    R ←R ×R
  end for
P получается незамкнут. Выход: рассматривать только «задачи
разрешения».
                                                          3 / 29
Дискретные задачи оптимизации
Задача
«Коммивояжер», «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
Переборные задачи разрешения




Задача
«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 ← 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
Недетерминированная машина Тьюринга
Определение
Недетерминированная машина Тьюринга (НМТ) — это набор
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
Временная сложность для НМТ

Классы 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
Классы 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
Определение 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
«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
«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
«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
«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
Сводимость по Куку: незамкнутость N P и coN P



Задача разрешения «Comm(m, d) > B» (в которой спрашивается
верно ли, что любой маршрут коммивояжера имеет длину по крайней
мере (B + 1)), принадлежит классу coN P и не принадлежит классу
N P, при общепринятой гипотезе P = N P.


В то же время она очевидным образом сводится по Куку к переборной
задаче «TSP-разрешимость», принадлежащей классу N P.




                                                         15 / 29
Сводимость по Карпу



Определение
Задача разрешения P1 полиномиально сводится к задаче
разрешения P2 , если существует полиномиально вычислимая функция
f , перерабатывающая массивы входных данных I1 для задачи P1
в массивы входных данных I2 ≡ f (I1 ) для задачи P2 таким образом,
что для любого I1 ответ в задаче P1 совпадает с ответом задачи P2
для входных данных f (I1 ).




                                                          16 / 29
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
Первая 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
Задача «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
Задача «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
Задача «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
Доказательство через сводимость

Если 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
«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» лежит в N PC.




                                                           25 / 29
Задача «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
?
P = NP




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

                  N PC
                            NP              P   coN P

                     Сводимость по Карпу
                               N P-задача




«Экспертное мнение» считает, что P = N P.


                                                        27 / 29
Карта памяти лекции




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




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



                           29 / 29

Weitere ähnliche Inhalte

Was ist angesagt?

тест по чO 3 клас
тест по чO 3 кластест по чO 3 клас
тест по чO 3 клас
kyuchukova
 
Automatic Build Of Semantic Translational Dictionary
Automatic Build Of Semantic Translational DictionaryAutomatic Build Of Semantic Translational Dictionary
Automatic Build Of Semantic Translational Dictionary
Dmitry Kan
 
Max Cut Semidefinite
Max Cut SemidefiniteMax Cut Semidefinite
Max Cut Semidefinite
Stas Fomin
 
2009.05.20-21 Креатив в рекламе
2009.05.20-21 Креатив в рекламе2009.05.20-21 Креатив в рекламе
2009.05.20-21 Креатив в рекламе
grand21
 
Mongolian bible old testament - хуучин гэрээ
Mongolian bible   old testament - хуучин гэрээMongolian bible   old testament - хуучин гэрээ
Mongolian bible old testament - хуучин гэрээ
WorldBibles
 
Sef Sivakou Doklad
Sef Sivakou DokladSef Sivakou Doklad
Sef Sivakou Doklad
sef2009
 
Решение задач с помощью таблиц Google
Решение задач с помощью таблиц GoogleРешение задач с помощью таблиц Google
Решение задач с помощью таблиц Google
ksy777
 

Was ist angesagt? (20)

тест по чO 3 клас
тест по чO 3 кластест по чO 3 клас
тест по чO 3 клас
 
торохтій ніна олексіївна
торохтій ніна олексіївнаторохтій ніна олексіївна
торохтій ніна олексіївна
 
Every child needs a family
Every child needs a familyEvery child needs a family
Every child needs a family
 
Automatic Build Of Semantic Translational Dictionary
Automatic Build Of Semantic Translational DictionaryAutomatic Build Of Semantic Translational Dictionary
Automatic Build Of Semantic Translational Dictionary
 
Max Cut Semidefinite
Max Cut SemidefiniteMax Cut Semidefinite
Max Cut Semidefinite
 
2009.05.20-21 Креатив в рекламе
2009.05.20-21 Креатив в рекламе2009.05.20-21 Креатив в рекламе
2009.05.20-21 Креатив в рекламе
 
Zamky ukrainy
Zamky ukrainyZamky ukrainy
Zamky ukrainy
 
corel
corelcorel
corel
 
Огляд судової практики Касаційного цивільного суду у складі Верховного Суду
Огляд судової практики Касаційного цивільного суду у складі Верховного СудуОгляд судової практики Касаційного цивільного суду у складі Верховного Суду
Огляд судової практики Касаційного цивільного суду у складі Верховного Суду
 
Intro Erevan
Intro ErevanIntro Erevan
Intro Erevan
 
Bruky
BrukyBruky
Bruky
 
Інтернет-конференція Арсенія Яценюка від 06.04.2009р.
Інтернет-конференція Арсенія Яценюка від 06.04.2009р.Інтернет-конференція Арсенія Яценюка від 06.04.2009р.
Інтернет-конференція Арсенія Яценюка від 06.04.2009р.
 
Введение в ITSM (ITIL v.3)
Введение в ITSM (ITIL v.3)Введение в ITSM (ITIL v.3)
Введение в ITSM (ITIL v.3)
 
Mongolian bible old testament - хуучин гэрээ
Mongolian bible   old testament - хуучин гэрээMongolian bible   old testament - хуучин гэрээ
Mongolian bible old testament - хуучин гэрээ
 
Булінг
БулінгБулінг
Булінг
 
Критерии противопоказаний для лиц, поступающих на службу в МВД
Критерии  противопоказаний  для  лиц, поступающих на службу в МВДКритерии  противопоказаний  для  лиц, поступающих на службу в МВД
Критерии противопоказаний для лиц, поступающих на службу в МВД
 
Sef Sivakou Doklad
Sef Sivakou DokladSef Sivakou Doklad
Sef Sivakou Doklad
 
Решение задач с помощью таблиц Google
Решение задач с помощью таблиц GoogleРешение задач с помощью таблиц Google
Решение задач с помощью таблиц Google
 
Ошибки при формулировании исковых требований в исках о защите прав 
относител...
Ошибки при формулировании исковых требований в исках о защите прав 
относител...Ошибки при формулировании исковых требований в исках о защите прав 
относител...
Ошибки при формулировании исковых требований в исках о защите прав 
относител...
 
Fanera
FaneraFanera
Fanera
 

Andere mochten auch

Derandomization Maxsat
Derandomization MaxsatDerandomization Maxsat
Derandomization Maxsat
Stas Fomin
 
Greedy Covering Almost Ok
Greedy Covering Almost OkGreedy Covering Almost Ok
Greedy Covering Almost Ok
Stas Fomin
 
Average Knapsack
Average KnapsackAverage Knapsack
Average Knapsack
Stas Fomin
 
Packing Average
Packing AveragePacking Average
Packing Average
Stas Fomin
 
Maximal Independent Set
Maximal Independent SetMaximal Independent Set
Maximal Independent Set
Stas Fomin
 
Введение в Subversion
Введение в SubversionВведение в Subversion
Введение в Subversion
Stas Fomin
 
activity sriram
activity sriramactivity sriram
activity sriram
siranee
 
Levenstein distance.beam
Levenstein distance.beamLevenstein distance.beam
Levenstein distance.beam
Stas Fomin
 
Intro And Samples
Intro And SamplesIntro And Samples
Intro And Samples
Stas Fomin
 

Andere mochten auch (16)

Open-source для диплома
Open-source для дипломаOpen-source для диплома
Open-source для диплома
 
Derandomization Maxsat
Derandomization MaxsatDerandomization Maxsat
Derandomization Maxsat
 
Greedy Covering Almost Ok
Greedy Covering Almost OkGreedy Covering Almost Ok
Greedy Covering Almost Ok
 
Average Knapsack
Average KnapsackAverage Knapsack
Average Knapsack
 
Packing Average
Packing AveragePacking Average
Packing Average
 
Sat Average
Sat AverageSat Average
Sat Average
 
Maximal Independent Set
Maximal Independent SetMaximal Independent Set
Maximal Independent Set
 
Ptas Knapsack
Ptas KnapsackPtas Knapsack
Ptas Knapsack
 
Integrating Open Source Software Environments into Software Development Pro...
Integrating  Open Source Software Environments  into Software Development Pro...Integrating  Open Source Software Environments  into Software Development Pro...
Integrating Open Source Software Environments into Software Development Pro...
 
Введение в Subversion
Введение в SubversionВведение в Subversion
Введение в Subversion
 
activity sriram
activity sriramactivity sriram
activity sriram
 
Теория ограничений и Линейное программирование
Теория ограничений и Линейное программированиеТеория ограничений и Линейное программирование
Теория ограничений и Линейное программирование
 
Fake Flash Drives from TopKeen
Fake Flash Drives from TopKeenFake Flash Drives from TopKeen
Fake Flash Drives from TopKeen
 
Levenstein distance.beam
Levenstein distance.beamLevenstein distance.beam
Levenstein distance.beam
 
Intro And Samples
Intro And SamplesIntro And Samples
Intro And Samples
 
Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?
 

Mehr von Stas Fomin

average-knapsack.beam.pdf
average-knapsack.beam.pdfaverage-knapsack.beam.pdf
average-knapsack.beam.pdf
Stas Fomin
 
testopia-missing-link
testopia-missing-linktestopia-missing-link
testopia-missing-link
Stas Fomin
 
Probabilistically Checkable Proofs
Probabilistically Checkable ProofsProbabilistically Checkable Proofs
Probabilistically Checkable Proofs
Stas Fomin
 
Obfuscation Curstate Review
Obfuscation Curstate ReviewObfuscation Curstate Review
Obfuscation Curstate Review
Stas Fomin
 
Greedy Knapsack
Greedy KnapsackGreedy Knapsack
Greedy Knapsack
Stas Fomin
 
Dynamic Programming Knapsack
Dynamic Programming KnapsackDynamic Programming Knapsack
Dynamic Programming Knapsack
Stas Fomin
 
Randomized Rounding
Randomized RoundingRandomized Rounding
Randomized Rounding
Stas Fomin
 
Derandomization Luby
Derandomization LubyDerandomization Luby
Derandomization Luby
Stas Fomin
 
Amplifying Reduction Non Approx
Amplifying Reduction Non ApproxAmplifying Reduction Non Approx
Amplifying Reduction Non Approx
Stas Fomin
 

Mehr von Stas Fomin (13)

average-knapsack.beam.pdf
average-knapsack.beam.pdfaverage-knapsack.beam.pdf
average-knapsack.beam.pdf
 
testopia-missing-link
testopia-missing-linktestopia-missing-link
testopia-missing-link
 
«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...
 
Mindmaps: история и идеология
Mindmaps: история и идеологияMindmaps: история и идеология
Mindmaps: история и идеология
 
Probabilistically Checkable Proofs
Probabilistically Checkable ProofsProbabilistically Checkable Proofs
Probabilistically Checkable Proofs
 
Obfuscation Curstate Review
Obfuscation Curstate ReviewObfuscation Curstate Review
Obfuscation Curstate Review
 
Greedy Knapsack
Greedy KnapsackGreedy Knapsack
Greedy Knapsack
 
Dynamic Programming Knapsack
Dynamic Programming KnapsackDynamic Programming Knapsack
Dynamic Programming Knapsack
 
Randomized Rounding
Randomized RoundingRandomized Rounding
Randomized Rounding
 
Dnf Counting
Dnf CountingDnf Counting
Dnf Counting
 
Derandomization Luby
Derandomization LubyDerandomization Luby
Derandomization Luby
 
Christofides
ChristofidesChristofides
Christofides
 
Amplifying Reduction Non Approx
Amplifying Reduction Non ApproxAmplifying Reduction Non Approx
Amplifying Reduction Non Approx
 

P Reducibility And Npc

  • 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
  • 29. Интернет поддержка курса http://discopal.ispras.ru/ Вопросы? 29 / 29