124
Алгоритмы для NP-трудных задач Лекция 3: NP-полные задачи А. Куликов Computer Science клуб при ПОМИ http://logic.pdmi.ras.ru/infclub/ А. Куликов (Computer Science клуб) 3. NP-полные задачи 1 / 42

Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Embed Size (px)

Citation preview

Page 1: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

А. Куликов

Computer Science клуб при ПОМИhttp://logic.pdmi.ras.ru/∼infclub/

А. Куликов (Computer Science клуб) 3. NP-полные задачи 1 / 42

Page 2: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

План лекции

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

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

3 Сведения

А. Куликов (Computer Science клуб) 3. NP-полные задачи 2 / 42

Page 3: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

План лекции

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

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

3 Сведения

А. Куликов (Computer Science клуб) 3. NP-полные задачи 2 / 42

Page 4: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

План лекции

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

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

3 Сведения

А. Куликов (Computer Science клуб) 3. NP-полные задачи 2 / 42

Page 5: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

План лекции

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

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

3 Сведения

А. Куликов (Computer Science клуб) 3. NP-полные задачи 3 / 42

Page 6: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 4 / 42

Page 7: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 4 / 42

Page 8: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 4 / 42

Page 9: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

Все эти задачи могут, в принципе, быть решены заэкспоненциальное время перебором всех кандидатов. Однакоалгоритм, время работы которого есть 2n или хуже, достаточнобесполезен на практике.Задачей эффективного алгоритма, таким образом, являетсянахождение способов избежать полного перебора всех кандидатов.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 5 / 42

Page 10: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

Все эти задачи могут, в принципе, быть решены заэкспоненциальное время перебором всех кандидатов. Однакоалгоритм, время работы которого есть 2n или хуже, достаточнобесполезен на практике.

Задачей эффективного алгоритма, таким образом, являетсянахождение способов избежать полного перебора всех кандидатов.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 5 / 42

Page 11: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

Все эти задачи могут, в принципе, быть решены заэкспоненциальное время перебором всех кандидатов. Однакоалгоритм, время работы которого есть 2n или хуже, достаточнобесполезен на практике.Задачей эффективного алгоритма, таким образом, являетсянахождение способов избежать полного перебора всех кандидатов.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 5 / 42

Page 12: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

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

Задача пропозициональной выполнимости заключается в проверкесуществования выполняющего набора у заданной формулы.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 6 / 42

Page 13: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

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

Задача пропозициональной выполнимости заключается в проверкесуществования выполняющего набора у заданной формулы.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 6 / 42

Page 14: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

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

Задача пропозициональной выполнимости заключается в проверкесуществования выполняющего набора у заданной формулы.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 6 / 42

Page 15: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

Задача выполнимости является типичной задачей поиска (searchproblem).Дано условие (instance) I (то есть некоторые входные данные,специфицирующие рассматриваемую задачу; в нашем случае —булева формула в КНФ) и требуется найти решение (solution) S(объект, удовлетворяющий некоторым условиям; врассматриваемом нами случае — выполняющий набор). Еслирешения не существует, необходимо сообщить об этом.Необходимым свойством задачи поиска является являетсяналичие быстрой проверки корректности данного решения S дляданного условия I .

А. Куликов (Computer Science клуб) 3. NP-полные задачи 7 / 42

Page 16: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

Задача выполнимости является типичной задачей поиска (searchproblem).

Дано условие (instance) I (то есть некоторые входные данные,специфицирующие рассматриваемую задачу; в нашем случае —булева формула в КНФ) и требуется найти решение (solution) S(объект, удовлетворяющий некоторым условиям; врассматриваемом нами случае — выполняющий набор). Еслирешения не существует, необходимо сообщить об этом.Необходимым свойством задачи поиска является являетсяналичие быстрой проверки корректности данного решения S дляданного условия I .

А. Куликов (Computer Science клуб) 3. NP-полные задачи 7 / 42

Page 17: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

Задача выполнимости является типичной задачей поиска (searchproblem).Дано условие (instance) I (то есть некоторые входные данные,специфицирующие рассматриваемую задачу; в нашем случае —булева формула в КНФ) и требуется найти решение (solution) S(объект, удовлетворяющий некоторым условиям; врассматриваемом нами случае — выполняющий набор). Еслирешения не существует, необходимо сообщить об этом.

Необходимым свойством задачи поиска является являетсяналичие быстрой проверки корректности данного решения S дляданного условия I .

А. Куликов (Computer Science клуб) 3. NP-полные задачи 7 / 42

Page 18: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

Задача выполнимости является типичной задачей поиска (searchproblem).Дано условие (instance) I (то есть некоторые входные данные,специфицирующие рассматриваемую задачу; в нашем случае —булева формула в КНФ) и требуется найти решение (solution) S(объект, удовлетворяющий некоторым условиям; врассматриваемом нами случае — выполняющий набор). Еслирешения не существует, необходимо сообщить об этом.Необходимым свойством задачи поиска является являетсяналичие быстрой проверки корректности данного решения S дляданного условия I .

А. Куликов (Computer Science клуб) 3. NP-полные задачи 7 / 42

Page 19: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 8 / 42

Page 20: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 9 / 42

Page 21: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 9 / 42

Page 22: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 9 / 42

Page 23: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 9 / 42

Page 24: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 10 / 42

Page 25: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 10 / 42

Page 26: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 10 / 42

Page 27: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 10 / 42

Page 28: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Задача о коммивояжере и задача о покрывающем дереве

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

(i ,j)∈T

dij ≤ b .

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 11 / 42

Page 29: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Задача о коммивояжере и задача о покрывающем дереве

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

(i ,j)∈T

dij ≤ b .

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 11 / 42

Page 30: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Задача о коммивояжере и задача о покрывающем дереве

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

(i ,j)∈T

dij ≤ b .

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 11 / 42

Page 31: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Задача о коммивояжере и задача о покрывающем дереве

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

(i ,j)∈T

dij ≤ b .

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 11 / 42

Page 32: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 12 / 42

Page 33: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 12 / 42

Page 34: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 12 / 42

Page 35: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 12 / 42

Page 36: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Длиннейший путь

Задача о нахождении кратчайшего пути может быть решенаэффективно, но так ли это для задачи о длиннейшем пути(longest path problem)?В данной задаче нам дан граф с неотрицательными весами наребрах, две его вершины s и t, а также число g .Найти необходимо простой путь из s в t веса хотя бы g .

А. Куликов (Computer Science клуб) 3. NP-полные задачи 13 / 42

Page 37: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Длиннейший путь

Задача о нахождении кратчайшего пути может быть решенаэффективно, но так ли это для задачи о длиннейшем пути(longest path problem)?

В данной задаче нам дан граф с неотрицательными весами наребрах, две его вершины s и t, а также число g .Найти необходимо простой путь из s в t веса хотя бы g .

А. Куликов (Computer Science клуб) 3. NP-полные задачи 13 / 42

Page 38: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Длиннейший путь

Задача о нахождении кратчайшего пути может быть решенаэффективно, но так ли это для задачи о длиннейшем пути(longest path problem)?В данной задаче нам дан граф с неотрицательными весами наребрах, две его вершины s и t, а также число g .

Найти необходимо простой путь из s в t веса хотя бы g .

А. Куликов (Computer Science клуб) 3. NP-полные задачи 13 / 42

Page 39: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Длиннейший путь

Задача о нахождении кратчайшего пути может быть решенаэффективно, но так ли это для задачи о длиннейшем пути(longest path problem)?В данной задаче нам дан граф с неотрицательными весами наребрах, две его вершины s и t, а также число g .Найти необходимо простой путь из s в t веса хотя бы g .

А. Куликов (Computer Science клуб) 3. NP-полные задачи 13 / 42

Page 40: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Задача о рюкзаке

Задача о рюкзаке (knapsack problem): даны объемыw1, . . . , wn ∈ N и стоимости v1, . . . , vn ∈ N набора из n предметов.Также даны общий объем W и число g .Найти необходимо множество предметов из набора, общий объемкоторых не превышает W , а общая стоимость не менее g .Существует простой алгоритм для задачи о рюкзаке, основанныйна методе динамического программирования и имеющий времяработы O(nW ). Данное время работы является экспоненциальнымот размера входа, поскольку оно включает в себя W , а не log W .

А. Куликов (Computer Science клуб) 3. NP-полные задачи 14 / 42

Page 41: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Задача о рюкзаке

Задача о рюкзаке (knapsack problem): даны объемыw1, . . . , wn ∈ N и стоимости v1, . . . , vn ∈ N набора из n предметов.Также даны общий объем W и число g .

Найти необходимо множество предметов из набора, общий объемкоторых не превышает W , а общая стоимость не менее g .Существует простой алгоритм для задачи о рюкзаке, основанныйна методе динамического программирования и имеющий времяработы O(nW ). Данное время работы является экспоненциальнымот размера входа, поскольку оно включает в себя W , а не log W .

А. Куликов (Computer Science клуб) 3. NP-полные задачи 14 / 42

Page 42: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Задача о рюкзаке

Задача о рюкзаке (knapsack problem): даны объемыw1, . . . , wn ∈ N и стоимости v1, . . . , vn ∈ N набора из n предметов.Также даны общий объем W и число g .Найти необходимо множество предметов из набора, общий объемкоторых не превышает W , а общая стоимость не менее g .

Существует простой алгоритм для задачи о рюкзаке, основанныйна методе динамического программирования и имеющий времяработы O(nW ). Данное время работы является экспоненциальнымот размера входа, поскольку оно включает в себя W , а не log W .

А. Куликов (Computer Science клуб) 3. NP-полные задачи 14 / 42

Page 43: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Задача о рюкзаке

Задача о рюкзаке (knapsack problem): даны объемыw1, . . . , wn ∈ N и стоимости v1, . . . , vn ∈ N набора из n предметов.Также даны общий объем W и число g .Найти необходимо множество предметов из набора, общий объемкоторых не превышает W , а общая стоимость не менее g .Существует простой алгоритм для задачи о рюкзаке, основанныйна методе динамического программирования и имеющий времяработы O(nW ). Данное время работы является экспоненциальнымот размера входа, поскольку оно включает в себя W , а не log W .

А. Куликов (Computer Science клуб) 3. NP-полные задачи 14 / 42

Page 44: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Задача об унарном рюкзаке

Допустим, однако, что мы решаем задачу о рюкзаке, в которойвсе числа даются на вход в унарной системе счисления.Например, число 12 записывается как IIIIIIIIIIII .Конечно же, это неэкономный способ представления целых чисел,однако он все же позволяет определить законную задачу поиска,которую мы будем называть задачей об унарном рюкзаке (unaryknapsack).Как видно, данная слегка искусственная задача имеетполиномиальный алгоритм.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 15 / 42

Page 45: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Задача об унарном рюкзаке

Допустим, однако, что мы решаем задачу о рюкзаке, в которойвсе числа даются на вход в унарной системе счисления.

Например, число 12 записывается как IIIIIIIIIIII .Конечно же, это неэкономный способ представления целых чисел,однако он все же позволяет определить законную задачу поиска,которую мы будем называть задачей об унарном рюкзаке (unaryknapsack).Как видно, данная слегка искусственная задача имеетполиномиальный алгоритм.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 15 / 42

Page 46: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Задача об унарном рюкзаке

Допустим, однако, что мы решаем задачу о рюкзаке, в которойвсе числа даются на вход в унарной системе счисления.Например, число 12 записывается как IIIIIIIIIIII .

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 15 / 42

Page 47: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Задача об унарном рюкзаке

Допустим, однако, что мы решаем задачу о рюкзаке, в которойвсе числа даются на вход в унарной системе счисления.Например, число 12 записывается как IIIIIIIIIIII .Конечно же, это неэкономный способ представления целых чисел,однако он все же позволяет определить законную задачу поиска,которую мы будем называть задачей об унарном рюкзаке (unaryknapsack).

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 15 / 42

Page 48: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Задача об унарном рюкзаке

Допустим, однако, что мы решаем задачу о рюкзаке, в которойвсе числа даются на вход в унарной системе счисления.Например, число 12 записывается как IIIIIIIIIIII .Конечно же, это неэкономный способ представления целых чисел,однако он все же позволяет определить законную задачу поиска,которую мы будем называть задачей об унарном рюкзаке (unaryknapsack).Как видно, данная слегка искусственная задача имеетполиномиальный алгоритм.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 15 / 42

Page 49: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Задача о сумме подмножества

Рассмотрим теперь другую вариацию. Пусть стоимость каждогопредмета равняется его объему, а общий вес W равен числу g .Получившаяся задача, известная как задача о суммеподмножества (subset sum problem), эквивалентна выборуподмножества чисел с общей суммой W из заданного множествачисел. Поскольку это частный случай задачи о рюкзаке, даннаязадача не может быть сложнее. Но может ли она решаться заполиномиальное время?

А. Куликов (Computer Science клуб) 3. NP-полные задачи 16 / 42

Page 50: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Задача о сумме подмножества

Рассмотрим теперь другую вариацию. Пусть стоимость каждогопредмета равняется его объему, а общий вес W равен числу g .

Получившаяся задача, известная как задача о суммеподмножества (subset sum problem), эквивалентна выборуподмножества чисел с общей суммой W из заданного множествачисел. Поскольку это частный случай задачи о рюкзаке, даннаязадача не может быть сложнее. Но может ли она решаться заполиномиальное время?

А. Куликов (Computer Science клуб) 3. NP-полные задачи 16 / 42

Page 51: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Задача о сумме подмножества

Рассмотрим теперь другую вариацию. Пусть стоимость каждогопредмета равняется его объему, а общий вес W равен числу g .Получившаяся задача, известная как задача о суммеподмножества (subset sum problem), эквивалентна выборуподмножества чисел с общей суммой W из заданного множествачисел. Поскольку это частный случай задачи о рюкзаке, даннаязадача не может быть сложнее. Но может ли она решаться заполиномиальное время?

А. Куликов (Computer Science клуб) 3. NP-полные задачи 16 / 42

Page 52: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

План лекции

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

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

3 Сведения

А. Куликов (Computer Science клуб) 3. NP-полные задачи 17 / 42

Page 53: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

3-SAT 2-SAT, Horn SAT

задача о коммивояжере задача о покрывающем дереве

длиннейший путь кратчайший путь

задача о рюкзаке задача об унарном рюкзаке

задача о независимом множестве задача о независимоммножестве для деревьев

А. Куликов (Computer Science клуб) 3. NP-полные задачи 18 / 42

Page 54: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 19 / 42

Page 55: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 19 / 42

Page 56: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

Все они эквивалентны: как мы увидим, любая из них может бытьсведена к любой другой из них и обратно.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 19 / 42

Page 57: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 19 / 42

Page 58: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Классы P и NP

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 20 / 42

Page 59: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Классы P и NP

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 20 / 42

Page 60: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Классы P и NP

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 20 / 42

Page 61: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Сведения

Даже если допустить, что P =NP, что можно сказать о задачах излевого столбца таблицы? Основываясь на чем, мы полагаем, чтоэти конкретные задачи не имеют эффективных алгоритмов (несчитая того исторического факта, что многие сильныематематики безуспешно пытались построить такие алгоритмы)?Это объясняется сведениями (reductions), которые переводят однузадачу поиска в другую. Они показывают, что все задачи левогостолбца в действительности являются в некотором смысле однойи той же задачей, за исключением лишь того, что онисформулированы в разных терминах.Более того, используя сведения, мы покажем, что эти задачиявляются самыми трудными задачами поиска класса NP: еслидля хотя бы одной из них существует полиномиальный алгоритм,то полиномиальный алгоритм существует для каждой задачикласса NP. Значит, если мы верим в то, что P =NP, то все этизадачи сложны.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 21 / 42

Page 62: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Сведения

Даже если допустить, что P =NP, что можно сказать о задачах излевого столбца таблицы? Основываясь на чем, мы полагаем, чтоэти конкретные задачи не имеют эффективных алгоритмов (несчитая того исторического факта, что многие сильныематематики безуспешно пытались построить такие алгоритмы)?

Это объясняется сведениями (reductions), которые переводят однузадачу поиска в другую. Они показывают, что все задачи левогостолбца в действительности являются в некотором смысле однойи той же задачей, за исключением лишь того, что онисформулированы в разных терминах.Более того, используя сведения, мы покажем, что эти задачиявляются самыми трудными задачами поиска класса NP: еслидля хотя бы одной из них существует полиномиальный алгоритм,то полиномиальный алгоритм существует для каждой задачикласса NP. Значит, если мы верим в то, что P =NP, то все этизадачи сложны.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 21 / 42

Page 63: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Сведения

Даже если допустить, что P =NP, что можно сказать о задачах излевого столбца таблицы? Основываясь на чем, мы полагаем, чтоэти конкретные задачи не имеют эффективных алгоритмов (несчитая того исторического факта, что многие сильныематематики безуспешно пытались построить такие алгоритмы)?Это объясняется сведениями (reductions), которые переводят однузадачу поиска в другую. Они показывают, что все задачи левогостолбца в действительности являются в некотором смысле однойи той же задачей, за исключением лишь того, что онисформулированы в разных терминах.

Более того, используя сведения, мы покажем, что эти задачиявляются самыми трудными задачами поиска класса NP: еслидля хотя бы одной из них существует полиномиальный алгоритм,то полиномиальный алгоритм существует для каждой задачикласса NP. Значит, если мы верим в то, что P =NP, то все этизадачи сложны.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 21 / 42

Page 64: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Сведения

Даже если допустить, что P =NP, что можно сказать о задачах излевого столбца таблицы? Основываясь на чем, мы полагаем, чтоэти конкретные задачи не имеют эффективных алгоритмов (несчитая того исторического факта, что многие сильныематематики безуспешно пытались построить такие алгоритмы)?Это объясняется сведениями (reductions), которые переводят однузадачу поиска в другую. Они показывают, что все задачи левогостолбца в действительности являются в некотором смысле однойи той же задачей, за исключением лишь того, что онисформулированы в разных терминах.Более того, используя сведения, мы покажем, что эти задачиявляются самыми трудными задачами поиска класса NP: еслидля хотя бы одной из них существует полиномиальный алгоритм,то полиномиальный алгоритм существует для каждой задачикласса NP. Значит, если мы верим в то, что P =NP, то все этизадачи сложны.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 21 / 42

Page 65: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Сведения

Сведением задачи поиска A к задаче поиска B называется параполиномиальных по времени алгоритмов (f , h), где f по любомуусловию I задачи A выдает условие f (I ) задачи B , а h по любомурешению S для f (I ) выдает решение h(S) для I , см. диаграмму ниже.Если у f (I ) нет решения, то его нет и у I . Данные два алгоритма f и hмогут быть использованы для того, чтобы любой алгоритм для задачиB переделать в алгоритм для задачи A.

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

условие f (I )

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

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 22 / 42

Page 66: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

Сведения

Сведением задачи поиска A к задаче поиска B называется параполиномиальных по времени алгоритмов (f , h), где f по любомуусловию I задачи A выдает условие f (I ) задачи B , а h по любомурешению S для f (I ) выдает решение h(S) для I , см. диаграмму ниже.Если у f (I ) нет решения, то его нет и у I . Данные два алгоритма f и hмогут быть использованы для того, чтобы любой алгоритм для задачиB переделать в алгоритм для задачи A.

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

условие f (I )

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

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 22 / 42

Page 67: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 23 / 42

Page 68: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 23 / 42

Page 69: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

Поразительно, что такие задачи существуют вообще. И онидействительно существуют, и правый столбец нашей таблицызаполнен наиболее известными такими примерами.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 23 / 42

Page 70: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 23 / 42

Page 71: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

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

Если обозначить сведение от A к B через A → B , то можно сказать,что трудность движется в направлении стрелки, в то время какэффективные алгоритмы двигаются в обратном направлении. Черезэто распространение мы знаем, что NP-полные задачи трудны: всезадачи поиска сводятся к ним, и, таким образом, каждая NP-полнаязадача содержит трудность всех задач поиска. Если хотя бы однаNP-полная задача принадлежит классу P, то P=NP.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 24 / 42

Page 72: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

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

Если обозначить сведение от A к B через A → B , то можно сказать,что трудность движется в направлении стрелки, в то время какэффективные алгоритмы двигаются в обратном направлении. Черезэто распространение мы знаем, что NP-полные задачи трудны: всезадачи поиска сводятся к ним, и, таким образом, каждая NP-полнаязадача содержит трудность всех задач поиска. Если хотя бы однаNP-полная задача принадлежит классу P, то P=NP.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 24 / 42

Page 73: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

Если обозначить сведение от A к B через A → B , то можно сказать,что трудность движется в направлении стрелки, в то время какэффективные алгоритмы двигаются в обратном направлении. Черезэто распространение мы знаем, что NP-полные задачи трудны: всезадачи поиска сводятся к ним, и, таким образом, каждая NP-полнаязадача содержит трудность всех задач поиска. Если хотя бы однаNP-полная задача принадлежит классу P, то P=NP.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 24 / 42

Page 74: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

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

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

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

Если обозначить сведение от A к B через A → B , то можно сказать,что трудность движется в направлении стрелки, в то время какэффективные алгоритмы двигаются в обратном направлении. Черезэто распространение мы знаем, что NP-полные задачи трудны: всезадачи поиска сводятся к ним, и, таким образом, каждая NP-полнаязадача содержит трудность всех задач поиска. Если хотя бы однаNP-полная задача принадлежит классу P, то P=NP.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 24 / 42

Page 75: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

План лекции

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

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

3 Сведения

А. Куликов (Computer Science клуб) 3. NP-полные задачи 25 / 42

Page 76: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Сведения

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 26 / 42

Page 77: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

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

В задаче 3-SAT входом является множество клозов, каждый изкоторых состоит из не более чем трех литералов, например,

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 27 / 42

Page 78: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Конструкция

По данной формуле I задачи 3-SAT мы строим вход (G , g) задачи онезависимом множестве следующим образом.

В графе G каждому клозу соответствует треугольник (или просторебро, если клоз состоит из всего двух литералов) с вершинами,помеченными литералами из клоза; все пары вершин,соответствующих противоположным литералам, соединены.Число g равно количеству клозов.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 28 / 42

Page 79: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Конструкция

По данной формуле I задачи 3-SAT мы строим вход (G , g) задачи онезависимом множестве следующим образом.

В графе G каждому клозу соответствует треугольник (или просторебро, если клоз состоит из всего двух литералов) с вершинами,помеченными литералами из клоза; все пары вершин,соответствующих противоположным литералам, соединены.

Число g равно количеству клозов.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 28 / 42

Page 80: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Конструкция

По данной формуле I задачи 3-SAT мы строим вход (G , g) задачи онезависимом множестве следующим образом.

В графе G каждому клозу соответствует треугольник (или просторебро, если клоз состоит из всего двух литералов) с вершинами,помеченными литералами из клоза; все пары вершин,соответствующих противоположным литералам, соединены.Число g равно количеству клозов.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 28 / 42

Page 81: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Конструкция

¬x

y

¬z x

¬y

z x

y

z ¬x

¬y

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 29 / 42

Page 82: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Анализ

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 30 / 42

Page 83: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Анализ

Построение занимает полиномиальное время.

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 30 / 42

Page 84: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Анализ

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

Если в G нет независимого множества размера g , то формула Iневыполнима.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 30 / 42

Page 85: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Анализ

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 30 / 42

Page 86: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

SAT → 3-SAT

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 31 / 42

Page 87: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

SAT → 3-SAT

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 31 / 42

Page 88: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

SAT → 3-SAT

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 31 / 42

Page 89: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

SAT → 3-SAT

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 31 / 42

Page 90: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Конструкция

По данной формуле I в КНФ рассмотрим формулу I , в которойкаждый клоз (a1 ∨ a2 ∨ · · · ∨ ak) длины более 3 заменяется намножество клозов

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

где {yi} суть новые переменные.Обозначим полученную формулу в 3-КНФ через I ′.Ясно, что формула I ′ строится по I за полиномиальное время.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 32 / 42

Page 91: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Конструкция

По данной формуле I в КНФ рассмотрим формулу I , в которойкаждый клоз (a1 ∨ a2 ∨ · · · ∨ ak) длины более 3 заменяется намножество клозов

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

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

Обозначим полученную формулу в 3-КНФ через I ′.Ясно, что формула I ′ строится по I за полиномиальное время.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 32 / 42

Page 92: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Конструкция

По данной формуле I в КНФ рассмотрим формулу I , в которойкаждый клоз (a1 ∨ a2 ∨ · · · ∨ ak) длины более 3 заменяется намножество клозов

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

где {yi} суть новые переменные.Обозначим полученную формулу в 3-КНФ через I ′.

Ясно, что формула I ′ строится по I за полиномиальное время.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 32 / 42

Page 93: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Конструкция

По данной формуле I в КНФ рассмотрим формулу I , в которойкаждый клоз (a1 ∨ a2 ∨ · · · ∨ ak) длины более 3 заменяется намножество клозов

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

где {yi} суть новые переменные.Обозначим полученную формулу в 3-КНФ через I ′.Ясно, что формула I ′ строится по I за полиномиальное время.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 32 / 42

Page 94: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Анализ

I ′ эквивалентно I в смысле выполнимости, потому что длякаждого набора переменным {ai} клоз (a1 ∨ a2 ∨ · · · ∨ ak)выполнен тогда и только тогда, когда существует набор значенийпеременным {yi}, выполняющий все соответствующие клозы.Чтобы увидеть это, предположим сперва, что все эти клозывыполнены. Тогда должен быть выполнен и хотя бы один излитералов a1, . . . , ak , ибо в противном случае переменной y1должно было бы присвоено значение true, чтобы выполнитьпервый клоз, аналогично с переменной y2 для выполнениявторого клоза и всеми остальными переменными, и последнийклоз был бы не выполнен.Обратно, если клоз (a1 ∨ a2 ∨ · · · ∨ ak) выполнен, то длянекоторого i выполнен литерал ai . Присвоим тогда значение trueпеременным y1, . . . , yi−2, а оставшимся присвоим значение false.Несложно видеть, что все клозы будут выполнены.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 33 / 42

Page 95: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Анализ

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

Чтобы увидеть это, предположим сперва, что все эти клозывыполнены. Тогда должен быть выполнен и хотя бы один излитералов a1, . . . , ak , ибо в противном случае переменной y1должно было бы присвоено значение true, чтобы выполнитьпервый клоз, аналогично с переменной y2 для выполнениявторого клоза и всеми остальными переменными, и последнийклоз был бы не выполнен.Обратно, если клоз (a1 ∨ a2 ∨ · · · ∨ ak) выполнен, то длянекоторого i выполнен литерал ai . Присвоим тогда значение trueпеременным y1, . . . , yi−2, а оставшимся присвоим значение false.Несложно видеть, что все клозы будут выполнены.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 33 / 42

Page 96: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Анализ

I ′ эквивалентно I в смысле выполнимости, потому что длякаждого набора переменным {ai} клоз (a1 ∨ a2 ∨ · · · ∨ ak)выполнен тогда и только тогда, когда существует набор значенийпеременным {yi}, выполняющий все соответствующие клозы.Чтобы увидеть это, предположим сперва, что все эти клозывыполнены. Тогда должен быть выполнен и хотя бы один излитералов a1, . . . , ak , ибо в противном случае переменной y1должно было бы присвоено значение true, чтобы выполнитьпервый клоз, аналогично с переменной y2 для выполнениявторого клоза и всеми остальными переменными, и последнийклоз был бы не выполнен.

Обратно, если клоз (a1 ∨ a2 ∨ · · · ∨ ak) выполнен, то длянекоторого i выполнен литерал ai . Присвоим тогда значение trueпеременным y1, . . . , yi−2, а оставшимся присвоим значение false.Несложно видеть, что все клозы будут выполнены.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 33 / 42

Page 97: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Анализ

I ′ эквивалентно I в смысле выполнимости, потому что длякаждого набора переменным {ai} клоз (a1 ∨ a2 ∨ · · · ∨ ak)выполнен тогда и только тогда, когда существует набор значенийпеременным {yi}, выполняющий все соответствующие клозы.Чтобы увидеть это, предположим сперва, что все эти клозывыполнены. Тогда должен быть выполнен и хотя бы один излитералов a1, . . . , ak , ибо в противном случае переменной y1должно было бы присвоено значение true, чтобы выполнитьпервый клоз, аналогично с переменной y2 для выполнениявторого клоза и всеми остальными переменными, и последнийклоз был бы не выполнен.Обратно, если клоз (a1 ∨ a2 ∨ · · · ∨ ak) выполнен, то длянекоторого i выполнен литерал ai . Присвоим тогда значение trueпеременным y1, . . . , yi−2, а оставшимся присвоим значение false.Несложно видеть, что все клозы будут выполнены.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 33 / 42

Page 98: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

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

Некоторые сведения основаны на способе связать две непохожиедруг на друга задачи, а некоторые просто отражают тот факт, чтоодна задача является переформулировкой другой.Чтобы свести задачу о независимом множестве к задаче овершинном покрытии, нужно просто заметить, что множество Sявляется вершинным покрытием графа G (V , E ) тогда и толькотогда, когда оставшиеся вершины, то есть множество S ∖ V ,независимы в G .Таким образом, чтобы решить задачу о независимом множестведля входа (G , g), нужно просто решить задачу о вершинномпокрытии для входа (G , |V | − g). Если такое покрытиесуществует, возьмем все вершины, не принадлежащие ему. Еслитакого покрытия не существует, то у G не существует инезависимого множества размера g .

А. Куликов (Computer Science клуб) 3. NP-полные задачи 34 / 42

Page 99: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

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

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

Чтобы свести задачу о независимом множестве к задаче овершинном покрытии, нужно просто заметить, что множество Sявляется вершинным покрытием графа G (V , E ) тогда и толькотогда, когда оставшиеся вершины, то есть множество S ∖ V ,независимы в G .Таким образом, чтобы решить задачу о независимом множестведля входа (G , g), нужно просто решить задачу о вершинномпокрытии для входа (G , |V | − g). Если такое покрытиесуществует, возьмем все вершины, не принадлежащие ему. Еслитакого покрытия не существует, то у G не существует инезависимого множества размера g .

А. Куликов (Computer Science клуб) 3. NP-полные задачи 34 / 42

Page 100: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

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

Некоторые сведения основаны на способе связать две непохожиедруг на друга задачи, а некоторые просто отражают тот факт, чтоодна задача является переформулировкой другой.Чтобы свести задачу о независимом множестве к задаче овершинном покрытии, нужно просто заметить, что множество Sявляется вершинным покрытием графа G (V , E ) тогда и толькотогда, когда оставшиеся вершины, то есть множество S ∖ V ,независимы в G .

Таким образом, чтобы решить задачу о независимом множестведля входа (G , g), нужно просто решить задачу о вершинномпокрытии для входа (G , |V | − g). Если такое покрытиесуществует, возьмем все вершины, не принадлежащие ему. Еслитакого покрытия не существует, то у G не существует инезависимого множества размера g .

А. Куликов (Computer Science клуб) 3. NP-полные задачи 34 / 42

Page 101: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

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

Некоторые сведения основаны на способе связать две непохожиедруг на друга задачи, а некоторые просто отражают тот факт, чтоодна задача является переформулировкой другой.Чтобы свести задачу о независимом множестве к задаче овершинном покрытии, нужно просто заметить, что множество Sявляется вершинным покрытием графа G (V , E ) тогда и толькотогда, когда оставшиеся вершины, то есть множество S ∖ V ,независимы в G .Таким образом, чтобы решить задачу о независимом множестведля входа (G , g), нужно просто решить задачу о вершинномпокрытии для входа (G , |V | − g). Если такое покрытиесуществует, возьмем все вершины, не принадлежащие ему. Еслитакого покрытия не существует, то у G не существует инезависимого множества размера g .

А. Куликов (Computer Science клуб) 3. NP-полные задачи 34 / 42

Page 102: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

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

Определим дополнение (complement) графа G (V , E ) как графG = (V , E ), где E содержит ровно те неупорядоченные парывершин, которые не принадлежат E .Тогда подмножество вершин S является независимым в G тогда итолько тогда, когда S является кликой в G . Другими словами, этивершины попарно не соединены в G тогда и только тогда, когдалюбые две из них соединены ребром в G .Таким образом, можно свести задачу о независимом множестве кзадаче о клике, сопоставив каждому входу (G , g) вход (G , g).

А. Куликов (Computer Science клуб) 3. NP-полные задачи 35 / 42

Page 103: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

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

Определим дополнение (complement) графа G (V , E ) как графG = (V , E ), где E содержит ровно те неупорядоченные парывершин, которые не принадлежат E .

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 35 / 42

Page 104: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

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

Определим дополнение (complement) графа G (V , E ) как графG = (V , E ), где E содержит ровно те неупорядоченные парывершин, которые не принадлежат E .Тогда подмножество вершин S является независимым в G тогда итолько тогда, когда S является кликой в G . Другими словами, этивершины попарно не соединены в G тогда и только тогда, когдалюбые две из них соединены ребром в G .

Таким образом, можно свести задачу о независимом множестве кзадаче о клике, сопоставив каждому входу (G , g) вход (G , g).

А. Куликов (Computer Science клуб) 3. NP-полные задачи 35 / 42

Page 105: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

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

Определим дополнение (complement) графа G (V , E ) как графG = (V , E ), где E содержит ровно те неупорядоченные парывершин, которые не принадлежат E .Тогда подмножество вершин S является независимым в G тогда итолько тогда, когда S является кликой в G . Другими словами, этивершины попарно не соединены в G тогда и только тогда, когдалюбые две из них соединены ребром в G .Таким образом, можно свести задачу о независимом множестве кзадаче о клике, сопоставив каждому входу (G , g) вход (G , g).

А. Куликов (Computer Science клуб) 3. NP-полные задачи 35 / 42

Page 106: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

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

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

гейты AND и OR имеют входящую степень 2;гейты NOT имеют входящую степень 1;константные входные гейты имеют входящую степень 0 ипомечены либо true, либо false;переменные входные гейты имеют входящую степень 0 и помечены“?”.

Один из стоков графа называется выходным гейтом.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 36 / 42

Page 107: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

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

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

В данной задаче на вход дается булева схема (Boolean circuit), тоесть ориентированный ациклический граф, вершинами которогоявляются гейты (gates) пяти следующих типов:

гейты AND и OR имеют входящую степень 2;гейты NOT имеют входящую степень 1;константные входные гейты имеют входящую степень 0 ипомечены либо true, либо false;переменные входные гейты имеют входящую степень 0 и помечены“?”.

Один из стоков графа называется выходным гейтом.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 36 / 42

Page 108: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

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

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

гейты AND и OR имеют входящую степень 2;гейты NOT имеют входящую степень 1;константные входные гейты имеют входящую степень 0 ипомечены либо true, либо false;переменные входные гейты имеют входящую степень 0 и помечены“?”.

Один из стоков графа называется выходным гейтом.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 36 / 42

Page 109: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Пример схемы

true ? ? ?

AND OR AND

NOT OR

AND

выход

А. Куликов (Computer Science клуб) 3. NP-полные задачи 37 / 42

Page 110: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

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

По данному набору значений переменных входных гейтов мыможем вычислять значения в гейтах последовательно втопологическом порядке, используя правила булевой логики(такие, как false∨true=true), пока не получим значение навыходном гейте. Это будет значением схемы на данном наборезначений входным переменным.Задача выполнимости булевой схемы заключается в проверкесуществования значений входных переменных заданной схемы,при которых значение схемы есть true.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 38 / 42

Page 111: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

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

По данному набору значений переменных входных гейтов мыможем вычислять значения в гейтах последовательно втопологическом порядке, используя правила булевой логики(такие, как false∨true=true), пока не получим значение навыходном гейте. Это будет значением схемы на данном наборезначений входным переменным.

Задача выполнимости булевой схемы заключается в проверкесуществования значений входных переменных заданной схемы,при которых значение схемы есть true.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 38 / 42

Page 112: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

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

По данному набору значений переменных входных гейтов мыможем вычислять значения в гейтах последовательно втопологическом порядке, используя правила булевой логики(такие, как false∨true=true), пока не получим значение навыходном гейте. Это будет значением схемы на данном наборезначений входным переменным.Задача выполнимости булевой схемы заключается в проверкесуществования значений входных переменных заданной схемы,при которых значение схемы есть true.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 38 / 42

Page 113: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

SAT ↔ CIRCUIT-SAT

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

гейт g соответствующие клозы

true (g)

false (¬g)

g = h1 OR h2 (g ∨ ¬h1)(g ∨ ¬h2)(¬g ∨ h1 ∨ h2)

g = h1 AND h2 (¬g ∨ h1)(¬g ∨ h2)(g ∨ ¬h1 ∨ ¬h2)

g = NOT h (g ∨ h)(¬g ∨ ¬h)

Наконец, для выходного гейта g мы добавляем клоз (g), чтобыучесть тот факт, что нас интересует набор значений переменных,при которых на выходе схемы получается true.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 39 / 42

Page 114: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

SAT ↔ CIRCUIT-SAT

SAT → CIRCUIT-SAT: понятно.

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

гейт g соответствующие клозы

true (g)

false (¬g)

g = h1 OR h2 (g ∨ ¬h1)(g ∨ ¬h2)(¬g ∨ h1 ∨ h2)

g = h1 AND h2 (¬g ∨ h1)(¬g ∨ h2)(g ∨ ¬h1 ∨ ¬h2)

g = NOT h (g ∨ h)(¬g ∨ ¬h)

Наконец, для выходного гейта g мы добавляем клоз (g), чтобыучесть тот факт, что нас интересует набор значений переменных,при которых на выходе схемы получается true.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 39 / 42

Page 115: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

SAT ↔ CIRCUIT-SAT

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

гейт g соответствующие клозы

true (g)

false (¬g)

g = h1 OR h2 (g ∨ ¬h1)(g ∨ ¬h2)(¬g ∨ h1 ∨ h2)

g = h1 AND h2 (¬g ∨ h1)(¬g ∨ h2)(g ∨ ¬h1 ∨ ¬h2)

g = NOT h (g ∨ h)(¬g ∨ ¬h)

Наконец, для выходного гейта g мы добавляем клоз (g), чтобыучесть тот факт, что нас интересует набор значений переменных,при которых на выходе схемы получается true.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 39 / 42

Page 116: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Сведение

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 40 / 42

Page 117: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Сведение

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

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 40 / 42

Page 118: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Сведение

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

Всё, что мы знаем про A, это то, что A является задачей поиска,поэтому мы должны это как-то использовать. Основное свойствозадачи поиска заключается в том, что любое решение может бытьбыстро проверено: существует алгоритм 𝒞, который по входу I икандидату на решение S проверяет, действительно ли S являетсярешением I . Более того, 𝒞 делает это за полиномиальное времяот длины записи I (можно считать, что S дано как битовая строкадлины, ограниченной полиномом от длины I ).

А. Куликов (Computer Science клуб) 3. NP-полные задачи 40 / 42

Page 119: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Сведение

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 40 / 42

Page 120: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Преобразование алгоритма в схему

Каждый алгоритм может быть преобразован в схему (точнее, всемейство схем), входные переменные гейты которой кодируютвход алгоритма.Размер каждой такой схемы будет полиномиальным отколичества входных переменных гейтов. Если исходный алгоритмрешает задачу, ответ на которую есть один бит информации (таки есть в ситуации с 𝒞: “является ли S решением для I ”), то этотответ будет выдаваться на выходном гейте схемы.Итак, по данному входу I задачи A мы строим за полиномиальноевремя схему, известными входными гейтами которой являютсябиты I , а неизвестными — биты S , такую что выход схемы равенtrue тогда и только тогда, когда переменные входные гейты схемысодержат решение S условия I . Другими словами, выполняющиенаборы схемы находятся во взаимно-однозначном соответствии срешениями условия I задачи A. Сведение завершено.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 41 / 42

Page 121: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Преобразование алгоритма в схему

Каждый алгоритм может быть преобразован в схему (точнее, всемейство схем), входные переменные гейты которой кодируютвход алгоритма.

Размер каждой такой схемы будет полиномиальным отколичества входных переменных гейтов. Если исходный алгоритмрешает задачу, ответ на которую есть один бит информации (таки есть в ситуации с 𝒞: “является ли S решением для I ”), то этотответ будет выдаваться на выходном гейте схемы.Итак, по данному входу I задачи A мы строим за полиномиальноевремя схему, известными входными гейтами которой являютсябиты I , а неизвестными — биты S , такую что выход схемы равенtrue тогда и только тогда, когда переменные входные гейты схемысодержат решение S условия I . Другими словами, выполняющиенаборы схемы находятся во взаимно-однозначном соответствии срешениями условия I задачи A. Сведение завершено.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 41 / 42

Page 122: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Преобразование алгоритма в схему

Каждый алгоритм может быть преобразован в схему (точнее, всемейство схем), входные переменные гейты которой кодируютвход алгоритма.Размер каждой такой схемы будет полиномиальным отколичества входных переменных гейтов. Если исходный алгоритмрешает задачу, ответ на которую есть один бит информации (таки есть в ситуации с 𝒞: “является ли S решением для I ”), то этотответ будет выдаваться на выходном гейте схемы.

Итак, по данному входу I задачи A мы строим за полиномиальноевремя схему, известными входными гейтами которой являютсябиты I , а неизвестными — биты S , такую что выход схемы равенtrue тогда и только тогда, когда переменные входные гейты схемысодержат решение S условия I . Другими словами, выполняющиенаборы схемы находятся во взаимно-однозначном соответствии срешениями условия I задачи A. Сведение завершено.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 41 / 42

Page 123: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

Преобразование алгоритма в схему

Каждый алгоритм может быть преобразован в схему (точнее, всемейство схем), входные переменные гейты которой кодируютвход алгоритма.Размер каждой такой схемы будет полиномиальным отколичества входных переменных гейтов. Если исходный алгоритмрешает задачу, ответ на которую есть один бит информации (таки есть в ситуации с 𝒞: “является ли S решением для I ”), то этотответ будет выдаваться на выходном гейте схемы.Итак, по данному входу I задачи A мы строим за полиномиальноевремя схему, известными входными гейтами которой являютсябиты I , а неизвестными — биты S , такую что выход схемы равенtrue тогда и только тогда, когда переменные входные гейты схемысодержат решение S условия I . Другими словами, выполняющиенаборы схемы находятся во взаимно-однозначном соответствии срешениями условия I задачи A. Сведение завершено.

А. Куликов (Computer Science клуб) 3. NP-полные задачи 41 / 42

Page 124: Алгоритмы для NP-трудных задач, осень 2009: NP-полные задачи

Сведения

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

А. Куликов (Computer Science клуб) 3. NP-полные задачи 42 / 42