20130301 np algorithms_kulikov_lecture01_np

Post on 22-May-2015

296 views 0 download

Transcript of 20130301 np algorithms_kulikov_lecture01_np

Алгоритмы для NP-трудных задачЛекция 1: NP-полные задачи

Александр Куликов

Петербургское отделение Математического института им. В. А. СтекловаРоссийская академия наук

Computer Science клуб в Екатеринбурге1 марта 2013

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 1 / 31

1 Задачи поиска

2 NP-полные задачи

3 Сведения

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 2 / 31

Содержание

1 Задачи поиска

2 NP-полные задачи

3 Сведения

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 3 / 31

Эффективные алгоритмы

Алгоритмы нахождения кратчайших путей и минимальныхпокрывающих деревьев в графах, паросочетаний вдвудольных графах, наибольшей возрастающейподпоследовательности, максимального потока в сетиявляются эффективными, поскольку время работы каждогоиз них растет полиномиально (как n, n2, n3) с ростомразмера входа.В каждой из решаемых ими задач мы ищем решение (путь,дерево, паросочетание) среди экспоненциально большогомножества кандидатов: существует n! различныхпаросочетаний в двудольном n × n графе, у полного графана n вершинах есть nn−2 покрывающих деревьев, в графе,как правило, есть экспоненциальное число путей из s в t.Цель эффективного алгоритма: избежать полного перебора.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 4 / 31

Эффективные алгоритмы

Алгоритмы нахождения кратчайших путей и минимальныхпокрывающих деревьев в графах, паросочетаний вдвудольных графах, наибольшей возрастающейподпоследовательности, максимального потока в сетиявляются эффективными, поскольку время работы каждогоиз них растет полиномиально (как n, n2, n3) с ростомразмера входа.

В каждой из решаемых ими задач мы ищем решение (путь,дерево, паросочетание) среди экспоненциально большогомножества кандидатов: существует n! различныхпаросочетаний в двудольном n × n графе, у полного графана n вершинах есть nn−2 покрывающих деревьев, в графе,как правило, есть экспоненциальное число путей из s в t.Цель эффективного алгоритма: избежать полного перебора.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 4 / 31

Эффективные алгоритмы

Алгоритмы нахождения кратчайших путей и минимальныхпокрывающих деревьев в графах, паросочетаний вдвудольных графах, наибольшей возрастающейподпоследовательности, максимального потока в сетиявляются эффективными, поскольку время работы каждогоиз них растет полиномиально (как n, n2, n3) с ростомразмера входа.В каждой из решаемых ими задач мы ищем решение (путь,дерево, паросочетание) среди экспоненциально большогомножества кандидатов: существует n! различныхпаросочетаний в двудольном n × n графе, у полного графана n вершинах есть nn−2 покрывающих деревьев, в графе,как правило, есть экспоненциальное число путей из s в t.

Цель эффективного алгоритма: избежать полного перебора.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 4 / 31

Эффективные алгоритмы

Алгоритмы нахождения кратчайших путей и минимальныхпокрывающих деревьев в графах, паросочетаний вдвудольных графах, наибольшей возрастающейподпоследовательности, максимального потока в сетиявляются эффективными, поскольку время работы каждогоиз них растет полиномиально (как n, n2, n3) с ростомразмера входа.В каждой из решаемых ими задач мы ищем решение (путь,дерево, паросочетание) среди экспоненциально большогомножества кандидатов: существует n! различныхпаросочетаний в двудольном n × n графе, у полного графана n вершинах есть nn−2 покрывающих деревьев, в графе,как правило, есть экспоненциальное число путей из s в t.Цель эффективного алгоритма: избежать полного перебора.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 4 / 31

Задача выполнимости

Вход задачи пропозициональной выполнимости (satisfiabilityproblem, SAT) выглядит следующим образом:

(x ∨ y ∨ z)(x ∨ ¬y)(y ∨ ¬z)(z ∨ ¬x)(¬x ∨ ¬y ∨ ¬z) .

Необходимо проверить, выполнима ли формула.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 5 / 31

Задача выполнимости

Вход задачи пропозициональной выполнимости (satisfiabilityproblem, SAT) выглядит следующим образом:

(x ∨ y ∨ z)(x ∨ ¬y)(y ∨ ¬z)(z ∨ ¬x)(¬x ∨ ¬y ∨ ¬z) .

Необходимо проверить, выполнима ли формула.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 5 / 31

Задача выполнимости

Вход задачи пропозициональной выполнимости (satisfiabilityproblem, SAT) выглядит следующим образом:

(x ∨ y ∨ z)(x ∨ ¬y)(y ∨ ¬z)(z ∨ ¬x)(¬x ∨ ¬y ∨ ¬z) .

Необходимо проверить, выполнима ли формула.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 5 / 31

Задача поиска

Задача выполнимости является типичной задачей поиска:дано условие I и надо найти для него решение S . При этомдолжен существовать способ быстрой проверки того, чторешение правильное.Будем говорить, что задача поиска задаётся алгоритмом 𝒞,который получает на вход условие I и кандидата на решениеS и работает полиномиальное от |I | время. Мы говорим, чтоS является решением для I тогда и только тогда, когда𝒞(I , S) = true.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 6 / 31

Задача поиска

Задача выполнимости является типичной задачей поиска:дано условие I и надо найти для него решение S . При этомдолжен существовать способ быстрой проверки того, чторешение правильное.

Будем говорить, что задача поиска задаётся алгоритмом 𝒞,который получает на вход условие I и кандидата на решениеS и работает полиномиальное от |I | время. Мы говорим, чтоS является решением для I тогда и только тогда, когда𝒞(I , S) = true.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 6 / 31

Задача поиска

Задача выполнимости является типичной задачей поиска:дано условие I и надо найти для него решение S . При этомдолжен существовать способ быстрой проверки того, чторешение правильное.Будем говорить, что задача поиска задаётся алгоритмом 𝒞,который получает на вход условие I и кандидата на решениеS и работает полиномиальное от |I | время. Мы говорим, чтоS является решением для I тогда и только тогда, когда𝒞(I , S) = true.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 6 / 31

Задача поиска

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 7 / 31

Задача коммивояжёра

В задаче о коммивояжере (traveling salesman problem) дано nвершин с номерами 1, . . . , n и все n(n − 1)/2 попарныхрасстояний между ними, а также бюджет b.Найти необходимо цикл, проходящий через все вершиныровно по одному разу (то есть гамильтонов цикл) иимеющий длину не более b, или же сообщить, что такогоцикла нет.Другими словами, необходимо найти перестановку𝜏(1), . . . , 𝜏(n) вершин, такую что

d𝜏(1),𝜏(2) + d𝜏(2),𝜏(3) + · · · + d𝜏(n),𝜏(1) ≤ b .

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 8 / 31

Задача коммивояжёра

В задаче о коммивояжере (traveling salesman problem) дано nвершин с номерами 1, . . . , n и все n(n − 1)/2 попарныхрасстояний между ними, а также бюджет b.

Найти необходимо цикл, проходящий через все вершиныровно по одному разу (то есть гамильтонов цикл) иимеющий длину не более b, или же сообщить, что такогоцикла нет.Другими словами, необходимо найти перестановку𝜏(1), . . . , 𝜏(n) вершин, такую что

d𝜏(1),𝜏(2) + d𝜏(2),𝜏(3) + · · · + d𝜏(n),𝜏(1) ≤ b .

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 8 / 31

Задача коммивояжёра

В задаче о коммивояжере (traveling salesman problem) дано nвершин с номерами 1, . . . , n и все n(n − 1)/2 попарныхрасстояний между ними, а также бюджет b.Найти необходимо цикл, проходящий через все вершиныровно по одному разу (то есть гамильтонов цикл) иимеющий длину не более b, или же сообщить, что такогоцикла нет.

Другими словами, необходимо найти перестановку𝜏(1), . . . , 𝜏(n) вершин, такую что

d𝜏(1),𝜏(2) + d𝜏(2),𝜏(3) + · · · + d𝜏(n),𝜏(1) ≤ b .

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 8 / 31

Задача коммивояжёра

В задаче о коммивояжере (traveling salesman problem) дано nвершин с номерами 1, . . . , n и все n(n − 1)/2 попарныхрасстояний между ними, а также бюджет b.Найти необходимо цикл, проходящий через все вершиныровно по одному разу (то есть гамильтонов цикл) иимеющий длину не более b, или же сообщить, что такогоцикла нет.Другими словами, необходимо найти перестановку𝜏(1), . . . , 𝜏(n) вершин, такую что

d𝜏(1),𝜏(2) + d𝜏(2),𝜏(3) + · · · + d𝜏(n),𝜏(1) ≤ b .

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 8 / 31

Пример

5

4

6

4

1

3 2

2

33

3

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 9 / 31

Пример

5

4

6

4

1

3 2

2

33

3

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 9 / 31

Оптимизационные задачи и задачи поиска

Почему мы сформулировали задачу о коммивояжере какзадачу поиска, когда на самом деле это оптимизационнаязадача?Переформулировка оптимизационной задачи как задачипоиска не меняет ее сложности, поскольку обе версиисводятся друг к другу.Имея потенциальное решение для задачи TSP, легкопроверить свойства “является маршрутом” и “имеет длинуне более b”, но как проверить свойство “являетсяоптимальным”?

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 10 / 31

Оптимизационные задачи и задачи поиска

Почему мы сформулировали задачу о коммивояжере какзадачу поиска, когда на самом деле это оптимизационнаязадача?

Переформулировка оптимизационной задачи как задачипоиска не меняет ее сложности, поскольку обе версиисводятся друг к другу.Имея потенциальное решение для задачи TSP, легкопроверить свойства “является маршрутом” и “имеет длинуне более b”, но как проверить свойство “являетсяоптимальным”?

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 10 / 31

Оптимизационные задачи и задачи поиска

Почему мы сформулировали задачу о коммивояжере какзадачу поиска, когда на самом деле это оптимизационнаязадача?Переформулировка оптимизационной задачи как задачипоиска не меняет ее сложности, поскольку обе версиисводятся друг к другу.

Имея потенциальное решение для задачи TSP, легкопроверить свойства “является маршрутом” и “имеет длинуне более b”, но как проверить свойство “являетсяоптимальным”?

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 10 / 31

Оптимизационные задачи и задачи поиска

Почему мы сформулировали задачу о коммивояжере какзадачу поиска, когда на самом деле это оптимизационнаязадача?Переформулировка оптимизационной задачи как задачипоиска не меняет ее сложности, поскольку обе версиисводятся друг к другу.Имея потенциальное решение для задачи TSP, легкопроверить свойства “является маршрутом” и “имеет длинуне более b”, но как проверить свойство “являетсяоптимальным”?

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 10 / 31

Коммивояжёр и покрывающее дерево

Задача о минимальном покрывающем дереве: дана матрицапопарных расстояний и бюджет b и требуется найтидерево T , такое что ∑

(i ,j)∈T

dij ≤ b .

Задача коммивояжёра может рассматриваться как вариантзадачи о покрывающем дереве, где искомому дереву неразрешается ветвиться и оно, таким образом, должно бытьпросто путем.Это дополнительное условие на структуру дерева делаетзадачу гораздо более сложной.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 11 / 31

Коммивояжёр и покрывающее дерево

Задача о минимальном покрывающем дереве: дана матрицапопарных расстояний и бюджет b и требуется найтидерево T , такое что ∑

(i ,j)∈T

dij ≤ b .

Задача коммивояжёра может рассматриваться как вариантзадачи о покрывающем дереве, где искомому дереву неразрешается ветвиться и оно, таким образом, должно бытьпросто путем.Это дополнительное условие на структуру дерева делаетзадачу гораздо более сложной.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 11 / 31

Коммивояжёр и покрывающее дерево

Задача о минимальном покрывающем дереве: дана матрицапопарных расстояний и бюджет b и требуется найтидерево T , такое что ∑

(i ,j)∈T

dij ≤ b .

Задача коммивояжёра может рассматриваться как вариантзадачи о покрывающем дереве, где искомому дереву неразрешается ветвиться и оно, таким образом, должно бытьпросто путем.

Это дополнительное условие на структуру дерева делаетзадачу гораздо более сложной.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 11 / 31

Коммивояжёр и покрывающее дерево

Задача о минимальном покрывающем дереве: дана матрицапопарных расстояний и бюджет b и требуется найтидерево T , такое что ∑

(i ,j)∈T

dij ≤ b .

Задача коммивояжёра может рассматриваться как вариантзадачи о покрывающем дереве, где искомому дереву неразрешается ветвиться и оно, таким образом, должно бытьпросто путем.Это дополнительное условие на структуру дерева делаетзадачу гораздо более сложной.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 11 / 31

Незавсисмое множество, вершинное покрытие иклика

В задаче о независимом множестве (independent set problem)дан граф и число g и требуется найти g независимыхвершин, то есть таких, что никакие две из них не соединеныребром.В задаче о вершинном покрытии (vertex cover problem) данграф и число b, и требуется найти b вершин, покрывающихвсе ребра (то есть такое множество из b вершин, что длялюбого ребра хотя бы один из его концов содержится в этоммножестве).Задача о клике (clique problem) заключается в нахождениипо графу и числу g таких g вершин, что любые две из нихсоединены ребром.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 12 / 31

Незавсисмое множество, вершинное покрытие иклика

В задаче о независимом множестве (independent set problem)дан граф и число g и требуется найти g независимыхвершин, то есть таких, что никакие две из них не соединеныребром.

В задаче о вершинном покрытии (vertex cover problem) данграф и число b, и требуется найти b вершин, покрывающихвсе ребра (то есть такое множество из b вершин, что длялюбого ребра хотя бы один из его концов содержится в этоммножестве).Задача о клике (clique problem) заключается в нахождениипо графу и числу g таких g вершин, что любые две из нихсоединены ребром.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 12 / 31

Незавсисмое множество, вершинное покрытие иклика

В задаче о независимом множестве (independent set problem)дан граф и число g и требуется найти g независимыхвершин, то есть таких, что никакие две из них не соединеныребром.В задаче о вершинном покрытии (vertex cover problem) данграф и число b, и требуется найти b вершин, покрывающихвсе ребра (то есть такое множество из b вершин, что длялюбого ребра хотя бы один из его концов содержится в этоммножестве).

Задача о клике (clique problem) заключается в нахождениипо графу и числу g таких g вершин, что любые две из нихсоединены ребром.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 12 / 31

Незавсисмое множество, вершинное покрытие иклика

В задаче о независимом множестве (independent set problem)дан граф и число g и требуется найти g независимыхвершин, то есть таких, что никакие две из них не соединеныребром.В задаче о вершинном покрытии (vertex cover problem) данграф и число b, и требуется найти b вершин, покрывающихвсе ребра (то есть такое множество из b вершин, что длялюбого ребра хотя бы один из его концов содержится в этоммножестве).Задача о клике (clique problem) заключается в нахождениипо графу и числу g таких g вершин, что любые две из нихсоединены ребром.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 12 / 31

Содержание

1 Задачи поиска

2 NP-полные задачи

3 Сведения

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 13 / 31

Сложные и простые задачи

трудные задачи (NP-полные) простые задачи (из P)3-SAT 2-SAT, Horn SAT

коммивояжёр покрывающее деревонезависимое множество независимое множество

в деревьях

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 14 / 31

Классы P и NP

NP — класс всех задач поиска.P — класс всех задач поиска, которые могут быть решены заполиномиальное время.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 15 / 31

Классы P и NP

NP — класс всех задач поиска.

P — класс всех задач поиска, которые могут быть решены заполиномиальное время.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 15 / 31

Классы P и NP

NP — класс всех задач поиска.P — класс всех задач поиска, которые могут быть решены заполиномиальное время.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 15 / 31

Сведения

Сведение задачи поиска A к задаче поиска B — это параполиномиальных по времени алгоритмов (f , h):

условие If алгоритм для B

условие f (I )

решение S для f (I )

нет решения для f (I )

h решение h(S) для I

нет решения для I

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 16 / 31

Сведения

Сведение задачи поиска A к задаче поиска B — это параполиномиальных по времени алгоритмов (f , h):

условие If алгоритм для B

условие f (I )

решение S для f (I )

нет решения для f (I )

h решение h(S) для I

нет решения для I

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 16 / 31

NP-полные задачи

Задача поиска называется NP-полной (NP-complete), есливсе другие задачи поиска сводятся к ней.Чтобы задача была NP-полной, с ее помощью должнырешаться все задачи поиска в мире!Удивительно, что такие задачи существуют вообще.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 17 / 31

NP-полные задачи

Задача поиска называется NP-полной (NP-complete), есливсе другие задачи поиска сводятся к ней.

Чтобы задача была NP-полной, с ее помощью должнырешаться все задачи поиска в мире!Удивительно, что такие задачи существуют вообще.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 17 / 31

NP-полные задачи

Задача поиска называется NP-полной (NP-complete), есливсе другие задачи поиска сводятся к ней.Чтобы задача была NP-полной, с ее помощью должнырешаться все задачи поиска в мире!

Удивительно, что такие задачи существуют вообще.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 17 / 31

NP-полные задачи

Задача поиска называется NP-полной (NP-complete), есливсе другие задачи поиска сводятся к ней.Чтобы задача была NP-полной, с ее помощью должнырешаться все задачи поиска в мире!Удивительно, что такие задачи существуют вообще.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 17 / 31

Два способа использования сведений

Задача поиска A сводится к задаче поиска B :

Мы знаем, как эффективно решать B и хотим использоватьэто знание для решения A.Мы знаем, что A трудна, и используем сведение, чтобыпоказать, что и B трудна.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 18 / 31

Два способа использования сведений

Задача поиска A сводится к задаче поиска B :Мы знаем, как эффективно решать B и хотим использоватьэто знание для решения A.

Мы знаем, что A трудна, и используем сведение, чтобыпоказать, что и B трудна.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 18 / 31

Два способа использования сведений

Задача поиска A сводится к задаче поиска B :Мы знаем, как эффективно решать B и хотим использоватьэто знание для решения A.Мы знаем, что A трудна, и используем сведение, чтобыпоказать, что и B трудна.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 18 / 31

Пространство NP всех задач поиска впредположении P = NP

NP-полныеP

увеличение сложности

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 19 / 31

Содержание

1 Задачи поиска

2 NP-полные задачи

3 Сведения

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 20 / 31

Сведения

Мы построим следующие сведения:

любая задача из NP → SAT → 3SAT → независимое множество →вершинное покрытие, клика.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 21 / 31

3-SAT → задача о независимом множестве

¬x

y

¬z x

¬y

z x

y

z ¬x

¬y

(¬x ∨ y ∨ ¬z)(x ∨ ¬y ∨ z)(x ∨ y ∨ z)(¬x ∨ ¬y)

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 22 / 31

SAT → 3-SAT

Это интересное и типичное сведение задачи к своемучастному случаю.Мы хотим показать, что задача остается сложной, даже еслиее входы как-то ограничены — в нашем случае, если всеклозы содержат не более трех литералов.Такие сведения модифицируют входное условие так, чтобыизбавиться от запрещенных конфигураций (клозов длиныхотя бы четыре), не меняя при этом условия в том смысле,что решение для исходного условия можно построить изрешения для полученного условия.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 23 / 31

SAT → 3-SAT

Это интересное и типичное сведение задачи к своемучастному случаю.

Мы хотим показать, что задача остается сложной, даже еслиее входы как-то ограничены — в нашем случае, если всеклозы содержат не более трех литералов.Такие сведения модифицируют входное условие так, чтобыизбавиться от запрещенных конфигураций (клозов длиныхотя бы четыре), не меняя при этом условия в том смысле,что решение для исходного условия можно построить изрешения для полученного условия.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 23 / 31

SAT → 3-SAT

Это интересное и типичное сведение задачи к своемучастному случаю.Мы хотим показать, что задача остается сложной, даже еслиее входы как-то ограничены — в нашем случае, если всеклозы содержат не более трех литералов.

Такие сведения модифицируют входное условие так, чтобыизбавиться от запрещенных конфигураций (клозов длиныхотя бы четыре), не меняя при этом условия в том смысле,что решение для исходного условия можно построить изрешения для полученного условия.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 23 / 31

SAT → 3-SAT

Это интересное и типичное сведение задачи к своемучастному случаю.Мы хотим показать, что задача остается сложной, даже еслиее входы как-то ограничены — в нашем случае, если всеклозы содержат не более трех литералов.Такие сведения модифицируют входное условие так, чтобыизбавиться от запрещенных конфигураций (клозов длиныхотя бы четыре), не меняя при этом условия в том смысле,что решение для исходного условия можно построить изрешения для полученного условия.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 23 / 31

Конструкция

Каждый клоз (a1 ∨ a2 ∨ · · · ∨ ak) длины более 3 заменяется намножество клозов

(a1 ∨ a2 ∨ y1)(¬y1 ∨ a3 ∨ y2)(¬y2 ∨ a4 ∨ y3) . . . (¬yk−3 ∨ ak−1 ∨ ak) ,

где {yi} суть новые переменные.

Для каждого набора переменным {ai} клоз (a1 ∨ a2 ∨ · · · ∨ ak)выполнен тогда и только тогда, когда существует набор значенийпеременным {yi}, выполняющий все соответствующие клозы.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 24 / 31

Конструкция

Каждый клоз (a1 ∨ a2 ∨ · · · ∨ ak) длины более 3 заменяется намножество клозов

(a1 ∨ a2 ∨ y1)(¬y1 ∨ a3 ∨ y2)(¬y2 ∨ a4 ∨ y3) . . . (¬yk−3 ∨ ak−1 ∨ ak) ,

где {yi} суть новые переменные.Для каждого набора переменным {ai} клоз (a1 ∨ a2 ∨ · · · ∨ ak)выполнен тогда и только тогда, когда существует набор значенийпеременным {yi}, выполняющий все соответствующие клозы.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 24 / 31

Задача о независимом множестве →задача о вершинном покрытии

S является вершинным покрытием тогда и только тогда, когдаV − S является независимым множеством:

S

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 25 / 31

Задача о независимом множестве →задача о клике

Подмножество вершин S является независимым в G тогда итолько тогда, когда S является кликой в G . Другими словами,эти вершины попарно не соединены в G тогда и только тогда,когда любые две из них соединены ребром в G .

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 26 / 31

Любая задача класса NP → SAT

Мы уже свели задачу SAT к нескольким задачам. Теперь мызамыкаем круг и показываем, что все эти задачи — вдействительности все задачи класса NP — сводятся к SAT.Именно, мы покажем, что все задачи класса NP сводятся кобобщению задачи SAT, называемому задачей выполнимостибулевой схемы (CIRCUIT-SAT).

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 27 / 31

Пример схемы

true x1 x2 x3

AND OR AND

NOT OR

AND

выход

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 28 / 31

SAT ↔ CIRCUIT-SAT

SAT → CIRCUIT-SAT: понятно.Обратно: запишем схему в виде формулы в КНФ. Длякаждого гейта g мы заводим переменную g и моделируемэтот гейт добавлением клозов следующим образом.

true

g

false

g

OR

g

AND

g

NOT

g

h1 h2 h1 h2 h

(g) (g)

(g ∨ h1)

(g ∨ h2)

(g ∨ h1 ∨ h2)

(g ∨ h1)

(g ∨ h2)

(g ∨ h1 ∨ h2)

(g ∨ h)

(g ∨ h)

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 29 / 31

Сведение

Теперь, когда мы знаем, что CIRCUIT SAT сводится к SAT,мы возвращаемся к нашей основной задаче — показать, чтовсе задачи поиска сводятся к CIRCUIT SAT.Итак, предположим, что задача A принадлежит классу NP.Мы должны построить сведение A к CIRCUIT-SAT. Этокажется довольно сложным, поскольку мы не знаемпрактически ничего про A.Мы знаем, что для A есть алгоритм 𝒞, который по условиюI и кандидату на решение S проверяет (за полиномиальноеот I время!), верно ли, что S действительно являетсярешением.Такой алгоритм можно преобразовать в схему,полиномиального от длины I размера.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 30 / 31

Сведение

Теперь, когда мы знаем, что CIRCUIT SAT сводится к SAT,мы возвращаемся к нашей основной задаче — показать, чтовсе задачи поиска сводятся к CIRCUIT SAT.

Итак, предположим, что задача A принадлежит классу NP.Мы должны построить сведение A к CIRCUIT-SAT. Этокажется довольно сложным, поскольку мы не знаемпрактически ничего про A.Мы знаем, что для A есть алгоритм 𝒞, который по условиюI и кандидату на решение S проверяет (за полиномиальноеот I время!), верно ли, что S действительно являетсярешением.Такой алгоритм можно преобразовать в схему,полиномиального от длины I размера.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 30 / 31

Сведение

Теперь, когда мы знаем, что CIRCUIT SAT сводится к SAT,мы возвращаемся к нашей основной задаче — показать, чтовсе задачи поиска сводятся к CIRCUIT SAT.Итак, предположим, что задача A принадлежит классу NP.Мы должны построить сведение A к CIRCUIT-SAT. Этокажется довольно сложным, поскольку мы не знаемпрактически ничего про A.

Мы знаем, что для A есть алгоритм 𝒞, который по условиюI и кандидату на решение S проверяет (за полиномиальноеот I время!), верно ли, что S действительно являетсярешением.Такой алгоритм можно преобразовать в схему,полиномиального от длины I размера.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 30 / 31

Сведение

Теперь, когда мы знаем, что CIRCUIT SAT сводится к SAT,мы возвращаемся к нашей основной задаче — показать, чтовсе задачи поиска сводятся к CIRCUIT SAT.Итак, предположим, что задача A принадлежит классу NP.Мы должны построить сведение A к CIRCUIT-SAT. Этокажется довольно сложным, поскольку мы не знаемпрактически ничего про A.Мы знаем, что для A есть алгоритм 𝒞, который по условиюI и кандидату на решение S проверяет (за полиномиальноеот I время!), верно ли, что S действительно являетсярешением.

Такой алгоритм можно преобразовать в схему,полиномиального от длины I размера.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 30 / 31

Сведение

Теперь, когда мы знаем, что CIRCUIT SAT сводится к SAT,мы возвращаемся к нашей основной задаче — показать, чтовсе задачи поиска сводятся к CIRCUIT SAT.Итак, предположим, что задача A принадлежит классу NP.Мы должны построить сведение A к CIRCUIT-SAT. Этокажется довольно сложным, поскольку мы не знаемпрактически ничего про A.Мы знаем, что для A есть алгоритм 𝒞, который по условиюI и кандидату на решение S проверяет (за полиномиальноеот I время!), верно ли, что S действительно являетсярешением.Такой алгоритм можно преобразовать в схему,полиномиального от длины I размера.

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 30 / 31

Спасибо!

Спасибо за внимание!

А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 31 / 31