20130301 np algorithms_kulikov_lecture01_np

67
Алгоритмы для NP-трудных задач Лекция 1: NP-полные задачи Александр Куликов Петербургское отделение Математического института им. В. А. Стеклова Российская академия наук Computer Science клуб в Екатеринбурге 1 марта 2013 А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 1 / 31

Transcript of 20130301 np algorithms_kulikov_lecture01_np

Page 1: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

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

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

Page 2: 20130301 np algorithms_kulikov_lecture01_np

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

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

3 Сведения

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

Page 3: 20130301 np algorithms_kulikov_lecture01_np

Содержание

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

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

3 Сведения

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

Page 4: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

Page 5: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

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

Page 6: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

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

Page 7: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

Page 8: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

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

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

Page 9: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

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

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

Page 10: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

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

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

Page 11: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

Page 12: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

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

Page 13: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

Page 14: 20130301 np algorithms_kulikov_lecture01_np

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

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

Page 15: 20130301 np algorithms_kulikov_lecture01_np

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

В задаче о коммивояжере (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

Page 16: 20130301 np algorithms_kulikov_lecture01_np

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

В задаче о коммивояжере (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

Page 17: 20130301 np algorithms_kulikov_lecture01_np

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

В задаче о коммивояжере (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

Page 18: 20130301 np algorithms_kulikov_lecture01_np

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

В задаче о коммивояжере (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

Page 19: 20130301 np algorithms_kulikov_lecture01_np

Пример

5

4

6

4

1

3 2

2

33

3

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

Page 20: 20130301 np algorithms_kulikov_lecture01_np

Пример

5

4

6

4

1

3 2

2

33

3

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

Page 21: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

Page 22: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

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

Page 23: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

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

Page 24: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

Page 25: 20130301 np algorithms_kulikov_lecture01_np

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

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

(i ,j)∈T

dij ≤ b .

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

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

Page 26: 20130301 np algorithms_kulikov_lecture01_np

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

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

(i ,j)∈T

dij ≤ b .

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

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

Page 27: 20130301 np algorithms_kulikov_lecture01_np

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

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

(i ,j)∈T

dij ≤ b .

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

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

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

Page 28: 20130301 np algorithms_kulikov_lecture01_np

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

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

(i ,j)∈T

dij ≤ b .

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

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

Page 29: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

Page 30: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

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

Page 31: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

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

Page 32: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

Page 33: 20130301 np algorithms_kulikov_lecture01_np

Содержание

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

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

3 Сведения

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

Page 34: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

в деревьях

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

Page 35: 20130301 np algorithms_kulikov_lecture01_np

Классы P и NP

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

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

Page 36: 20130301 np algorithms_kulikov_lecture01_np

Классы P и NP

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

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

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

Page 37: 20130301 np algorithms_kulikov_lecture01_np

Классы P и NP

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

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

Page 38: 20130301 np algorithms_kulikov_lecture01_np

Сведения

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

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

условие f (I )

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

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

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

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

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

Page 39: 20130301 np algorithms_kulikov_lecture01_np

Сведения

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

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

условие f (I )

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

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

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

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

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

Page 40: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

Page 41: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

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

Page 42: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

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

Page 43: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

Page 44: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

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

Page 45: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

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

Page 46: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

Page 47: 20130301 np algorithms_kulikov_lecture01_np

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

NP-полныеP

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

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

Page 48: 20130301 np algorithms_kulikov_lecture01_np

Содержание

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

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

3 Сведения

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

Page 49: 20130301 np algorithms_kulikov_lecture01_np

Сведения

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

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

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

Page 50: 20130301 np algorithms_kulikov_lecture01_np

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

Page 51: 20130301 np algorithms_kulikov_lecture01_np

SAT → 3-SAT

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

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

Page 52: 20130301 np algorithms_kulikov_lecture01_np

SAT → 3-SAT

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

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

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

Page 53: 20130301 np algorithms_kulikov_lecture01_np

SAT → 3-SAT

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

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

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

Page 54: 20130301 np algorithms_kulikov_lecture01_np

SAT → 3-SAT

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

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

Page 55: 20130301 np algorithms_kulikov_lecture01_np

Конструкция

Каждый клоз (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

Page 56: 20130301 np algorithms_kulikov_lecture01_np

Конструкция

Каждый клоз (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

Page 57: 20130301 np algorithms_kulikov_lecture01_np

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

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

S

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

Page 58: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

Page 59: 20130301 np algorithms_kulikov_lecture01_np

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

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

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

Page 60: 20130301 np algorithms_kulikov_lecture01_np

Пример схемы

true x1 x2 x3

AND OR AND

NOT OR

AND

выход

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

Page 61: 20130301 np algorithms_kulikov_lecture01_np

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

Page 62: 20130301 np algorithms_kulikov_lecture01_np

Сведение

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

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

Page 63: 20130301 np algorithms_kulikov_lecture01_np

Сведение

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

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

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

Page 64: 20130301 np algorithms_kulikov_lecture01_np

Сведение

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

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

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

Page 65: 20130301 np algorithms_kulikov_lecture01_np

Сведение

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

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

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

Page 66: 20130301 np algorithms_kulikov_lecture01_np

Сведение

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

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

Page 67: 20130301 np algorithms_kulikov_lecture01_np

Спасибо!

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

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