20130302 np algorithms_kulikov_lecture04-05_sat
DESCRIPTION
TRANSCRIPT
Алгоритмы для NP-трудных задачЛекции 4–5: Алгоритмы для задачи
выполнимости
Александр Куликов
Петербургское отделение Математического института им. В. А. СтекловаРоссийская академия наук
Computer Science клуб в Екатеринбурге2-3 марта 2013
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 1 / 38
1 Введение
2 Простые подклассы
3 Примеры сведений
4 Расщепление
5 Локальный поиск
6 Точные алгоритмы для MAX-2-SAT
7 Приближённый алгоритм для MAX-2-SAT
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 2 / 38
Содержание
1 Введение
2 Простые подклассы
3 Примеры сведений
4 Расщепление
5 Локальный поиск
6 Точные алгоритмы для MAX-2-SAT
7 Приближённый алгоритм для MAX-2-SAT
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 3 / 38
Формулировка задачи
Проверить, выполнима ли формула вида
(x ∨ y ∨ z)(x ∨ ¬y)(y ∨ ¬z)(z ∨ ¬x)(¬x ∨ ¬y ∨ ¬z) .
Задача максимальной выполнимости: выполнить как можнобольше клозов.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 4 / 38
Формулировка задачи
Проверить, выполнима ли формула вида
(x ∨ y ∨ z)(x ∨ ¬y)(y ∨ ¬z)(z ∨ ¬x)(¬x ∨ ¬y ∨ ¬z) .
Задача максимальной выполнимости: выполнить как можнобольше клозов.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 4 / 38
Важность
http://www.satisfiability.org/ — The InternationalConferences on Theory and Applications of Satisfiability Testing.http://www.satcompetition.org/ — The international SATCompetitions web page.http://www.isa.ewi.tudelft.nl/Jsat/ — Journal onSatisfiability, Boolean Modeling and Computation.http://www.satlib.org/ — The Satisfiability Library.http://www.satlive.org/ — Up-to-date links for theSatisfiability Problem.http://www.qbflib.org/ — The Quantified BooleanFormulas Satisfiability Library.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 5 / 38
Содержание
1 Введение
2 Простые подклассы
3 Примеры сведений
4 Расщепление
5 Локальный поиск
6 Точные алгоритмы для MAX-2-SAT
7 Приближённый алгоритм для MAX-2-SAT
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 6 / 38
Простые подклассы
Задача выполнимости NP-полна.
В частности, многие NP-трудные задачи очень просто иестественно формулируются в терминах выполнимости.Это, однако, не исключает того, что бывают простыеформулы.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 7 / 38
Простые подклассы
Задача выполнимости NP-полна.В частности, многие NP-трудные задачи очень просто иестественно формулируются в терминах выполнимости.
Это, однако, не исключает того, что бывают простыеформулы.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 7 / 38
Простые подклассы
Задача выполнимости NP-полна.В частности, многие NP-трудные задачи очень просто иестественно формулируются в терминах выполнимости.Это, однако, не исключает того, что бывают простыеформулы.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 7 / 38
2-SAT
В задаче 2-выполнимости каждый клоз входной формулысодержит не более двух литералов.
Идея: клоз (x ∨ y) говорит нам, что нельзя одновременноприсваивать значение 0 литералам x и y . Ровно о том жесамом нас просят импликации (x ⇒ y) и (y ⇒ x).Заведём граф на вершинах {x1, x2, . . . , x1, x2, . . . }. Если висходной формуле есть клоз (xi ∨ xj), проведём рёбра xi → xjи xj → xi .В полученном графе найдём компоненты сильной связности.Если хотя бы в одной из них содержатся xi и xi , то формуланевыполнима.В противном случае линеаризуем компоненты и выполнимформулу.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 8 / 38
2-SAT
В задаче 2-выполнимости каждый клоз входной формулысодержит не более двух литералов.Идея: клоз (x ∨ y) говорит нам, что нельзя одновременноприсваивать значение 0 литералам x и y . Ровно о том жесамом нас просят импликации (x ⇒ y) и (y ⇒ x).
Заведём граф на вершинах {x1, x2, . . . , x1, x2, . . . }. Если висходной формуле есть клоз (xi ∨ xj), проведём рёбра xi → xjи xj → xi .В полученном графе найдём компоненты сильной связности.Если хотя бы в одной из них содержатся xi и xi , то формуланевыполнима.В противном случае линеаризуем компоненты и выполнимформулу.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 8 / 38
2-SAT
В задаче 2-выполнимости каждый клоз входной формулысодержит не более двух литералов.Идея: клоз (x ∨ y) говорит нам, что нельзя одновременноприсваивать значение 0 литералам x и y . Ровно о том жесамом нас просят импликации (x ⇒ y) и (y ⇒ x).Заведём граф на вершинах {x1, x2, . . . , x1, x2, . . . }. Если висходной формуле есть клоз (xi ∨ xj), проведём рёбра xi → xjи xj → xi .
В полученном графе найдём компоненты сильной связности.Если хотя бы в одной из них содержатся xi и xi , то формуланевыполнима.В противном случае линеаризуем компоненты и выполнимформулу.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 8 / 38
2-SAT
В задаче 2-выполнимости каждый клоз входной формулысодержит не более двух литералов.Идея: клоз (x ∨ y) говорит нам, что нельзя одновременноприсваивать значение 0 литералам x и y . Ровно о том жесамом нас просят импликации (x ⇒ y) и (y ⇒ x).Заведём граф на вершинах {x1, x2, . . . , x1, x2, . . . }. Если висходной формуле есть клоз (xi ∨ xj), проведём рёбра xi → xjи xj → xi .В полученном графе найдём компоненты сильной связности.Если хотя бы в одной из них содержатся xi и xi , то формуланевыполнима.
В противном случае линеаризуем компоненты и выполнимформулу.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 8 / 38
2-SAT
В задаче 2-выполнимости каждый клоз входной формулысодержит не более двух литералов.Идея: клоз (x ∨ y) говорит нам, что нельзя одновременноприсваивать значение 0 литералам x и y . Ровно о том жесамом нас просят импликации (x ⇒ y) и (y ⇒ x).Заведём граф на вершинах {x1, x2, . . . , x1, x2, . . . }. Если висходной формуле есть клоз (xi ∨ xj), проведём рёбра xi → xjи xj → xi .В полученном графе найдём компоненты сильной связности.Если хотя бы в одной из них содержатся xi и xi , то формуланевыполнима.В противном случае линеаризуем компоненты и выполнимформулу.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 8 / 38
Horn SAT
Формулы Хорна: в каждом клозе не более одногоположительного литерала.
Идея: присвоим всем переменным значение 0; если формулапри этом не выполнилась, значит, есть клоз вида (xi).Присвоим тогда xi = 1 и опять, посмотрим не выполниласьли формула.Это работает по простой причине: если уж мы присвоилизначение 1 какой-то переменной, значит, мы обязаны былиэто сделать.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 9 / 38
Horn SAT
Формулы Хорна: в каждом клозе не более одногоположительного литерала.Идея: присвоим всем переменным значение 0; если формулапри этом не выполнилась, значит, есть клоз вида (xi).
Присвоим тогда xi = 1 и опять, посмотрим не выполниласьли формула.Это работает по простой причине: если уж мы присвоилизначение 1 какой-то переменной, значит, мы обязаны былиэто сделать.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 9 / 38
Horn SAT
Формулы Хорна: в каждом клозе не более одногоположительного литерала.Идея: присвоим всем переменным значение 0; если формулапри этом не выполнилась, значит, есть клоз вида (xi).Присвоим тогда xi = 1 и опять, посмотрим не выполниласьли формула.
Это работает по простой причине: если уж мы присвоилизначение 1 какой-то переменной, значит, мы обязаны былиэто сделать.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 9 / 38
Horn SAT
Формулы Хорна: в каждом клозе не более одногоположительного литерала.Идея: присвоим всем переменным значение 0; если формулапри этом не выполнилась, значит, есть клоз вида (xi).Присвоим тогда xi = 1 и опять, посмотрим не выполниласьли формула.Это работает по простой причине: если уж мы присвоилизначение 1 какой-то переменной, значит, мы обязаны былиэто сделать.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 9 / 38
Содержание
1 Введение
2 Простые подклассы
3 Примеры сведений
4 Расщепление
5 Локальный поиск
6 Точные алгоритмы для MAX-2-SAT
7 Приближённый алгоритм для MAX-2-SAT
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 10 / 38
Гамильтонов цикл
В задаче о гамильтоновом цикле нужно проверить, есть ли вданном графе цикл, проходящий по каждой вершине ровноодин раз.
Заведём n2 переменных: xij = true, если вершина i имеетномер j в гамильтоновом цикле.Клозы:
В строке i стоит ровно одна единица:
(xi1 ∨ xi2 ∨ · · · ∨ xin) (хотя бы одна единица)
{(xij ∨ xik)}j ,k (не более одной)
Аналогично про столбцы.Каждые две последовательные вершины цикла соединеныребром: если (i , j) ∈ E , то они не могут бытьпоследовательными:
(xik ∨ xj(k+1))
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 11 / 38
Гамильтонов цикл
В задаче о гамильтоновом цикле нужно проверить, есть ли вданном графе цикл, проходящий по каждой вершине ровноодин раз.Заведём n2 переменных: xij = true, если вершина i имеетномер j в гамильтоновом цикле.
Клозы:
В строке i стоит ровно одна единица:
(xi1 ∨ xi2 ∨ · · · ∨ xin) (хотя бы одна единица)
{(xij ∨ xik)}j ,k (не более одной)
Аналогично про столбцы.Каждые две последовательные вершины цикла соединеныребром: если (i , j) ∈ E , то они не могут бытьпоследовательными:
(xik ∨ xj(k+1))
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 11 / 38
Гамильтонов цикл
В задаче о гамильтоновом цикле нужно проверить, есть ли вданном графе цикл, проходящий по каждой вершине ровноодин раз.Заведём n2 переменных: xij = true, если вершина i имеетномер j в гамильтоновом цикле.Клозы:
В строке i стоит ровно одна единица:
(xi1 ∨ xi2 ∨ · · · ∨ xin) (хотя бы одна единица)
{(xij ∨ xik)}j ,k (не более одной)
Аналогично про столбцы.Каждые две последовательные вершины цикла соединеныребром: если (i , j) ∈ E , то они не могут бытьпоследовательными:
(xik ∨ xj(k+1))
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 11 / 38
Гамильтонов цикл
В задаче о гамильтоновом цикле нужно проверить, есть ли вданном графе цикл, проходящий по каждой вершине ровноодин раз.Заведём n2 переменных: xij = true, если вершина i имеетномер j в гамильтоновом цикле.Клозы:
В строке i стоит ровно одна единица:
(xi1 ∨ xi2 ∨ · · · ∨ xin) (хотя бы одна единица)
{(xij ∨ xik)}j ,k (не более одной)
Аналогично про столбцы.Каждые две последовательные вершины цикла соединеныребром: если (i , j) ∈ E , то они не могут бытьпоследовательными:
(xik ∨ xj(k+1))
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 11 / 38
Гамильтонов цикл
В задаче о гамильтоновом цикле нужно проверить, есть ли вданном графе цикл, проходящий по каждой вершине ровноодин раз.Заведём n2 переменных: xij = true, если вершина i имеетномер j в гамильтоновом цикле.Клозы:
В строке i стоит ровно одна единица:
(xi1 ∨ xi2 ∨ · · · ∨ xin) (хотя бы одна единица)
{(xij ∨ xik)}j ,k (не более одной)
Аналогично про столбцы.
Каждые две последовательные вершины цикла соединеныребром: если (i , j) ∈ E , то они не могут бытьпоследовательными:
(xik ∨ xj(k+1))
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 11 / 38
Гамильтонов цикл
В задаче о гамильтоновом цикле нужно проверить, есть ли вданном графе цикл, проходящий по каждой вершине ровноодин раз.Заведём n2 переменных: xij = true, если вершина i имеетномер j в гамильтоновом цикле.Клозы:
В строке i стоит ровно одна единица:
(xi1 ∨ xi2 ∨ · · · ∨ xin) (хотя бы одна единица)
{(xij ∨ xik)}j ,k (не более одной)
Аналогично про столбцы.Каждые две последовательные вершины цикла соединеныребром: если (i , j) ∈ E , то они не могут бытьпоследовательными:
(xik ∨ xj(k+1))
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 11 / 38
Максимальный разрез
В задаче о максимальном разрезе нужно разделить вершинына две части так, чтобы как можно больше рёбер соединялиэти две части. Сводить будем к задаче максимальнойвыполнимости.
Для каждого ребра (i , j) ∈ E запишем пару клозов:
(xi ∨ xj)(xi ∨ xj)
В полученной формуле будет 2|E | клозов.Набору переменных естественным образом соответствуетразрез в графе: в одну часть попадают вершины, которымприсвоено значение true, в другую — все остальные.Если переменные в разных частях, то из двух клозоввыполнены оба. Если в одной — то ровно один.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38
Максимальный разрез
В задаче о максимальном разрезе нужно разделить вершинына две части так, чтобы как можно больше рёбер соединялиэти две части. Сводить будем к задаче максимальнойвыполнимости.Для каждого ребра (i , j) ∈ E запишем пару клозов:
(xi ∨ xj)(xi ∨ xj)
В полученной формуле будет 2|E | клозов.Набору переменных естественным образом соответствуетразрез в графе: в одну часть попадают вершины, которымприсвоено значение true, в другую — все остальные.Если переменные в разных частях, то из двух клозоввыполнены оба. Если в одной — то ровно один.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38
Максимальный разрез
В задаче о максимальном разрезе нужно разделить вершинына две части так, чтобы как можно больше рёбер соединялиэти две части. Сводить будем к задаче максимальнойвыполнимости.Для каждого ребра (i , j) ∈ E запишем пару клозов:
(xi ∨ xj)(xi ∨ xj)
В полученной формуле будет 2|E | клозов.
Набору переменных естественным образом соответствуетразрез в графе: в одну часть попадают вершины, которымприсвоено значение true, в другую — все остальные.Если переменные в разных частях, то из двух клозоввыполнены оба. Если в одной — то ровно один.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38
Максимальный разрез
В задаче о максимальном разрезе нужно разделить вершинына две части так, чтобы как можно больше рёбер соединялиэти две части. Сводить будем к задаче максимальнойвыполнимости.Для каждого ребра (i , j) ∈ E запишем пару клозов:
(xi ∨ xj)(xi ∨ xj)
В полученной формуле будет 2|E | клозов.Набору переменных естественным образом соответствуетразрез в графе: в одну часть попадают вершины, которымприсвоено значение true, в другую — все остальные.
Если переменные в разных частях, то из двух клозоввыполнены оба. Если в одной — то ровно один.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38
Максимальный разрез
В задаче о максимальном разрезе нужно разделить вершинына две части так, чтобы как можно больше рёбер соединялиэти две части. Сводить будем к задаче максимальнойвыполнимости.Для каждого ребра (i , j) ∈ E запишем пару клозов:
(xi ∨ xj)(xi ∨ xj)
В полученной формуле будет 2|E | клозов.Набору переменных естественным образом соответствуетразрез в графе: в одну часть попадают вершины, которымприсвоено значение true, в другую — все остальные.Если переменные в разных частях, то из двух клозоввыполнены оба. Если в одной — то ровно один.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38
Вершинное покрытие
В задаче о вершинном покрытии нужно отметить в графепоменьше вершин так, чтобы у каждого ребра хотя бы одиниз концов был помечен.
Сведение чуть более хитрое, потому что теперь нужно,чтобы множество вершин было покрытием. Сводить будемопять к задаче максимальной выполнимости.Для каждой вершины i запишем клоз (xi).Для каждого ребра (i , j) ∈ E запишем клоз (xi ∨ xj).Ключевая идея: есть оптимальный набор значений, вкотором все 2-клозы выполнены: если какой-то 2-клоз(xi ∨ xj) не выполнен, изменим значение переменной xi ; приэтом количество выполненных клозов не уменьшится.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38
Вершинное покрытие
В задаче о вершинном покрытии нужно отметить в графепоменьше вершин так, чтобы у каждого ребра хотя бы одиниз концов был помечен.Сведение чуть более хитрое, потому что теперь нужно,чтобы множество вершин было покрытием. Сводить будемопять к задаче максимальной выполнимости.
Для каждой вершины i запишем клоз (xi).Для каждого ребра (i , j) ∈ E запишем клоз (xi ∨ xj).Ключевая идея: есть оптимальный набор значений, вкотором все 2-клозы выполнены: если какой-то 2-клоз(xi ∨ xj) не выполнен, изменим значение переменной xi ; приэтом количество выполненных клозов не уменьшится.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38
Вершинное покрытие
В задаче о вершинном покрытии нужно отметить в графепоменьше вершин так, чтобы у каждого ребра хотя бы одиниз концов был помечен.Сведение чуть более хитрое, потому что теперь нужно,чтобы множество вершин было покрытием. Сводить будемопять к задаче максимальной выполнимости.Для каждой вершины i запишем клоз (xi).
Для каждого ребра (i , j) ∈ E запишем клоз (xi ∨ xj).Ключевая идея: есть оптимальный набор значений, вкотором все 2-клозы выполнены: если какой-то 2-клоз(xi ∨ xj) не выполнен, изменим значение переменной xi ; приэтом количество выполненных клозов не уменьшится.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38
Вершинное покрытие
В задаче о вершинном покрытии нужно отметить в графепоменьше вершин так, чтобы у каждого ребра хотя бы одиниз концов был помечен.Сведение чуть более хитрое, потому что теперь нужно,чтобы множество вершин было покрытием. Сводить будемопять к задаче максимальной выполнимости.Для каждой вершины i запишем клоз (xi).Для каждого ребра (i , j) ∈ E запишем клоз (xi ∨ xj).
Ключевая идея: есть оптимальный набор значений, вкотором все 2-клозы выполнены: если какой-то 2-клоз(xi ∨ xj) не выполнен, изменим значение переменной xi ; приэтом количество выполненных клозов не уменьшится.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38
Вершинное покрытие
В задаче о вершинном покрытии нужно отметить в графепоменьше вершин так, чтобы у каждого ребра хотя бы одиниз концов был помечен.Сведение чуть более хитрое, потому что теперь нужно,чтобы множество вершин было покрытием. Сводить будемопять к задаче максимальной выполнимости.Для каждой вершины i запишем клоз (xi).Для каждого ребра (i , j) ∈ E запишем клоз (xi ∨ xj).Ключевая идея: есть оптимальный набор значений, вкотором все 2-клозы выполнены: если какой-то 2-клоз(xi ∨ xj) не выполнен, изменим значение переменной xi ; приэтом количество выполненных клозов не уменьшится.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38
Содержание
1 Введение
2 Простые подклассы
3 Примеры сведений
4 Расщепление
5 Локальный поиск
6 Точные алгоритмы для MAX-2-SAT
7 Приближённый алгоритм для MAX-2-SAT
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 14 / 38
(w ∨ x ∨ y ∨ z), (w ∨ x), (x ∨ y), (y ∨ z), (z ∨ w), (w ∨ z)
(x ∨ y ∨ z), (x), (x ∨ y), (y ∨ z) (x ∨ y), (y ∨ z), (z), (z)
(y ∨ z), (y), (y ∨ z) (), (y ∨ z)
(z), (z) ()
() ()
(x ∨ y), () (x ∨ y), (y), ()
w = 0 w = 1
x = 0 x = 1 z = 0 z = 1
y = 0 y = 1
z = 0 z = 1
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 15 / 38
Правила упрощения
Единичный клозЕсли формула содержит единичный клоз (unit clause), товходящему в него литералу можно присвоить значение 1:F = (x ∨ y ∨ ¬z) ∧ (¬x) ∧ (z ∨ ¬y) ∧ (¬y ∨ ¬x ∨ ¬z)F [x = 0] = (y ∨ ¬z) ∧ (z ∨ ¬y)
Чистый литералЕсли формула содержит чистый литерал, то есть литерал,отрицание которого не входит в формулу, то ему можноприсвоить значение 1:F = (x ∨ y ∨ z) ∧ (¬x) ∧ (x ∨ ¬y) ∧ (¬y ∨ ¬x ∨ z)F [z = 1] = (¬x) ∧ (x ∨ ¬y)
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 16 / 38
Правила упрощения
Единичный клозЕсли формула содержит единичный клоз (unit clause), товходящему в него литералу можно присвоить значение 1:F = (x ∨ y ∨ ¬z) ∧ (¬x) ∧ (z ∨ ¬y) ∧ (¬y ∨ ¬x ∨ ¬z)F [x = 0] = (y ∨ ¬z) ∧ (z ∨ ¬y)
Чистый литералЕсли формула содержит чистый литерал, то есть литерал,отрицание которого не входит в формулу, то ему можноприсвоить значение 1:F = (x ∨ y ∨ z) ∧ (¬x) ∧ (x ∨ ¬y) ∧ (¬y ∨ ¬x ∨ z)F [z = 1] = (¬x) ∧ (x ∨ ¬y)
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 16 / 38
Правила упрощения (продолжение)
РезолюцияЕсли F = F ′ ∧ (x ∨ C ) ∧ (¬x ∨ D) и F ′ не содержит ни x , ни ¬x ,заменить F на F ′ ∧ (C ∨ D).
(x ∨ ¬y ∨ z) ∧ (¬z) ∧ (z ∨ u) ∧ (¬u ∨ x) ∧ (y ∨ z)↔ (¬y ∨ z ∨ ¬u) ∧ (¬z) ∧ (z ∨ u) ∧ (y ∨ z)
(x ∨ y ∨ ¬z) ∧ (¬x) ∧ (x ∨ ¬y) ∧ (¬y ∨ ¬x ∨ z)↔ (¬x) ∧ (x ∨ ¬y)
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 17 / 38
Правила упрощения (продолжение)
РезолюцияЕсли F = F ′ ∧ (x ∨ C ) ∧ (¬x ∨ D) и F ′ не содержит ни x , ни ¬x ,заменить F на F ′ ∧ (C ∨ D).
(x ∨ ¬y ∨ z) ∧ (¬z) ∧ (z ∨ u) ∧ (¬u ∨ x) ∧ (y ∨ z)↔ (¬y ∨ z ∨ ¬u) ∧ (¬z) ∧ (z ∨ u) ∧ (y ∨ z)
(x ∨ y ∨ ¬z) ∧ (¬x) ∧ (x ∨ ¬y) ∧ (¬y ∨ ¬x ∨ z)↔ (¬x) ∧ (x ∨ ¬y)
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 17 / 38
Алгоритм
АлгоритмDPLL-SAT(F )
применять правила упрощения единичный клоз, чистыйлитерал и резолюция до тех пор, пока хотя бы одно из нихприменимоесли F не содержит ни одного клоза, выдать “выполнима”если F содержит пустой клоз, выдать “невыполнима”если F содержит литерал, входящий в нее хотя бы два разаположительно и хотя бы два раза отрицательно, положить xравным этому литералу; в противном случае взять вкачестве x любой литералвернуть (DPLL-SAT(F [x = 1]) or DPLL-SAT(F [x = 0]))
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 18 / 38
Анализ
ЛеммаВремя работы алгоритма DPLL-SAT есть O*(1.415K ), где K —кол-во клозов входной формулы.
Доказательстводостаточно показать, что в каждой ветке удаляется хотя быдва клоза: T (K ) ≤ T (K − 2) + T (K − 2) + poly(K )
это ясно, если нашёлся литерал, который входит в формулухотя бы дважды и положительно и отрицательноназовём (i , j)-литералом литерал, входящий в формулуровно i раз положительно и ровно j раз отрицательно
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 19 / 38
Анализ
ЛеммаВремя работы алгоритма DPLL-SAT есть O*(1.415K ), где K —кол-во клозов входной формулы.
Доказательстводостаточно показать, что в каждой ветке удаляется хотя быдва клоза: T (K ) ≤ T (K − 2) + T (K − 2) + poly(K )
это ясно, если нашёлся литерал, который входит в формулухотя бы дважды и положительно и отрицательно
назовём (i , j)-литералом литерал, входящий в формулуровно i раз положительно и ровно j раз отрицательно
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 19 / 38
Анализ
ЛеммаВремя работы алгоритма DPLL-SAT есть O*(1.415K ), где K —кол-во клозов входной формулы.
Доказательстводостаточно показать, что в каждой ветке удаляется хотя быдва клоза: T (K ) ≤ T (K − 2) + T (K − 2) + poly(K )
это ясно, если нашёлся литерал, который входит в формулухотя бы дважды и положительно и отрицательноназовём (i , j)-литералом литерал, входящий в формулуровно i раз положительно и ровно j раз отрицательно
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 19 / 38
Доказательство (продолжение)
ясно, что упрощённая формула не содержит (0, k)- и(k , 0)-литералов (это как раз чистые литералы), а также(1, 1)-литералов (они удаляются резольвированием)
значит, осталось рассмотреть случай, когда формуласостоит только из (1, 2)- и (2, 1)-литералов
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 20 / 38
Доказательство (продолжение)
ясно, что упрощённая формула не содержит (0, k)- и(k , 0)-литералов (это как раз чистые литералы), а также(1, 1)-литералов (они удаляются резольвированием)значит, осталось рассмотреть случай, когда формуласостоит только из (1, 2)- и (2, 1)-литералов
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 20 / 38
Доказательство (продолжение)
рассмотрим произвольный литерал x :
F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . .
поскольку F не содержит единичных клозов, в клозе(¬x ∨ . . . ) есть еще хотя бы один литерал; назовем его y
в F [x = 0] y будет (2, 0)-, (0, 2)- или (1, 1)-литераломв любом из этих случаев y будет удален правиламиупрощения, что повлечет за собой удаление хотя бы одногоклозаитак, и F [x = 1], и F [x = 0] (после упрощения) содержатхотя бы на два клоза меньше, чем F
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 21 / 38
Доказательство (продолжение)
рассмотрим произвольный литерал x :
F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . .
поскольку F не содержит единичных клозов, в клозе(¬x ∨ . . . ) есть еще хотя бы один литерал; назовем его y
в F [x = 0] y будет (2, 0)-, (0, 2)- или (1, 1)-литераломв любом из этих случаев y будет удален правиламиупрощения, что повлечет за собой удаление хотя бы одногоклозаитак, и F [x = 1], и F [x = 0] (после упрощения) содержатхотя бы на два клоза меньше, чем F
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 21 / 38
Доказательство (продолжение)
рассмотрим произвольный литерал x :
F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . .
поскольку F не содержит единичных клозов, в клозе(¬x ∨ . . . ) есть еще хотя бы один литерал; назовем его y
в F [x = 0] y будет (2, 0)-, (0, 2)- или (1, 1)-литералом
в любом из этих случаев y будет удален правиламиупрощения, что повлечет за собой удаление хотя бы одногоклозаитак, и F [x = 1], и F [x = 0] (после упрощения) содержатхотя бы на два клоза меньше, чем F
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 21 / 38
Доказательство (продолжение)
рассмотрим произвольный литерал x :
F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . .
поскольку F не содержит единичных клозов, в клозе(¬x ∨ . . . ) есть еще хотя бы один литерал; назовем его y
в F [x = 0] y будет (2, 0)-, (0, 2)- или (1, 1)-литераломв любом из этих случаев y будет удален правиламиупрощения, что повлечет за собой удаление хотя бы одногоклоза
итак, и F [x = 1], и F [x = 0] (после упрощения) содержатхотя бы на два клоза меньше, чем F
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 21 / 38
Доказательство (продолжение)
рассмотрим произвольный литерал x :
F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . .
поскольку F не содержит единичных клозов, в клозе(¬x ∨ . . . ) есть еще хотя бы один литерал; назовем его y
в F [x = 0] y будет (2, 0)-, (0, 2)- или (1, 1)-литераломв любом из этих случаев y будет удален правиламиупрощения, что повлечет за собой удаление хотя бы одногоклозаитак, и F [x = 1], и F [x = 0] (после упрощения) содержатхотя бы на два клоза меньше, чем F
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 21 / 38
Содержание
1 Введение
2 Простые подклассы
3 Примеры сведений
4 Расщепление
5 Локальный поиск
6 Точные алгоритмы для MAX-2-SAT
7 Приближённый алгоритм для MAX-2-SAT
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 22 / 38
Расстояние Хэмминга для наборов
Набор истинностных значений переменным формулы — этопоследовательность битов длины n, где n — количествопеременных формулы. Всего, таким образом, есть 2n
различных наборов.
Хэммингово расстояние двух наборов — количествопеременных, которым эти наборы присваивают разныезначения.Для набора t ∈ {0, 1}n и числа d под Хэмминговым шаромℋ(t, d) (с центром в t и радиуса d) будем пониматьмножество всех наборов, находящихся на расстоянии неболее чем d от t.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 23 / 38
Расстояние Хэмминга для наборов
Набор истинностных значений переменным формулы — этопоследовательность битов длины n, где n — количествопеременных формулы. Всего, таким образом, есть 2n
различных наборов.Хэммингово расстояние двух наборов — количествопеременных, которым эти наборы присваивают разныезначения.
Для набора t ∈ {0, 1}n и числа d под Хэмминговым шаромℋ(t, d) (с центром в t и радиуса d) будем пониматьмножество всех наборов, находящихся на расстоянии неболее чем d от t.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 23 / 38
Расстояние Хэмминга для наборов
Набор истинностных значений переменным формулы — этопоследовательность битов длины n, где n — количествопеременных формулы. Всего, таким образом, есть 2n
различных наборов.Хэммингово расстояние двух наборов — количествопеременных, которым эти наборы присваивают разныезначения.Для набора t ∈ {0, 1}n и числа d под Хэмминговым шаромℋ(t, d) (с центром в t и радиуса d) будем пониматьмножество всех наборов, находящихся на расстоянии неболее чем d от t.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 23 / 38
Поиск в шаре
Для формулы F в 3-КНФ поиск выполняющего набора в шареℋ(t, d) может быть осуществлён за время 3d :
если t не выполняет F , возьмём произвольныйневыполненный клоз C = (x1 ∨ x2 ∨ x3);
рассмотрим три набора, полученных из t изменениемзначений переменных x1, x2 и x3;хотя бы один из них будет ближе к выполняющему набору.
Алгоритм для 3-SAT со временем работы O*(3n/2): проверить,есть ли выполняющий набор в шарах ℋ(0n, n/2), ℋ(1n, n/2).
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 24 / 38
Поиск в шаре
Для формулы F в 3-КНФ поиск выполняющего набора в шареℋ(t, d) может быть осуществлён за время 3d :
если t не выполняет F , возьмём произвольныйневыполненный клоз C = (x1 ∨ x2 ∨ x3);рассмотрим три набора, полученных из t изменениемзначений переменных x1, x2 и x3;
хотя бы один из них будет ближе к выполняющему набору.
Алгоритм для 3-SAT со временем работы O*(3n/2): проверить,есть ли выполняющий набор в шарах ℋ(0n, n/2), ℋ(1n, n/2).
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 24 / 38
Поиск в шаре
Для формулы F в 3-КНФ поиск выполняющего набора в шареℋ(t, d) может быть осуществлён за время 3d :
если t не выполняет F , возьмём произвольныйневыполненный клоз C = (x1 ∨ x2 ∨ x3);рассмотрим три набора, полученных из t изменениемзначений переменных x1, x2 и x3;хотя бы один из них будет ближе к выполняющему набору.
Алгоритм для 3-SAT со временем работы O*(3n/2): проверить,есть ли выполняющий набор в шарах ℋ(0n, n/2), ℋ(1n, n/2).
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 24 / 38
Поиск в шаре
Для формулы F в 3-КНФ поиск выполняющего набора в шареℋ(t, d) может быть осуществлён за время 3d :
если t не выполняет F , возьмём произвольныйневыполненный клоз C = (x1 ∨ x2 ∨ x3);рассмотрим три набора, полученных из t изменениемзначений переменных x1, x2 и x3;хотя бы один из них будет ближе к выполняющему набору.
Алгоритм для 3-SAT со временем работы O*(3n/2): проверить,есть ли выполняющий набор в шарах ℋ(0n, n/2), ℋ(1n, n/2).
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 24 / 38
Поиск в шаре
Для формулы F в 3-КНФ поиск выполняющего набора в шареℋ(t, d) может быть осуществлён за время 3d :
если t не выполняет F , возьмём произвольныйневыполненный клоз C = (x1 ∨ x2 ∨ x3);рассмотрим три набора, полученных из t изменениемзначений переменных x1, x2 и x3;хотя бы один из них будет ближе к выполняющему набору.
Алгоритм для 3-SAT со временем работы O*(3n/2): проверить,есть ли выполняющий набор в шарах ℋ(0n, n/2), ℋ(1n, n/2).
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 24 / 38
Содержание
1 Введение
2 Простые подклассы
3 Примеры сведений
4 Расщепление
5 Локальный поиск
6 Точные алгоритмы для MAX-2-SAT
7 Приближённый алгоритм для MAX-2-SAT
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 25 / 38
Задача о максимальном разрезе
Мы рассмотрим точный алгоритм в применении к частномуслучаю задачи MAX-2-SAT — задаче о максимальном разрезе (вкоторой требуется разбить множество вершин графа на двечасти так, чтобы между ними было как можно больше рёбер).
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 26 / 38
Поиск треугольников в графе
Алгоритм будет основан на быстрой проверке наличиятреугольника (3-клики) в графе:
возведём матрицу смежности вкуб и посмотрим, есть ли на диагонали ненулевое число. Времяработы: O(nw ), где w ≈ 2.37 — экспонента умножения матриц.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 27 / 38
Поиск треугольников в графе
Алгоритм будет основан на быстрой проверке наличиятреугольника (3-клики) в графе: возведём матрицу смежности вкуб и посмотрим, есть ли на диагонали ненулевое число. Времяработы: O(nw ), где w ≈ 2.37 — экспонента умножения матриц.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 27 / 38
Основные идеи алгоритма
Дан граф G на n вершинах.Построим трёхдольный граф H на 3 · 2n/3 вершинах соследующим свойством: исходный граф G имеет разрез весаw тогда и только тогда, когда H содержит 3-клику веса w .Используем быстрое умножение матриц для поиска 3-клики.Время работы: 2𝜔n/3 ≈ 1.732n.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 28 / 38
Вспомогательный граф
H G
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
Вспомогательный граф
H G
это три части вершин исходного графа G
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
Вспомогательный граф
H G
это три доли вершин вспомогательного огромного графа H
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
Вспомогательный граф
H GV3 ∖ X3
X3
V1 ∖ X1
X1
V2 ∖ X2
X2
X1
X2 X3
для каждого Xi ⊆ Vi создаём вершину в соответствующей доле H
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
Вспомогательный граф
H GV3 ∖ X3
X3
V1 ∖ X1
X1
V2 ∖ X2
X2
X1
X2 X3
чему равен вес разреза X1 ∪ X2 ∪ X3 в G?
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
Вспомогательный граф
H GV3 ∖ X3
X3
V1 ∖ X1
X1
V2 ∖ X2
X2
X1
X2 X3
чему равен вес разреза X1 ∪ X2 ∪ X3 в G?
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
Вспомогательный граф
H GV3 ∖ X3
X3
V1 ∖ X1
X1
V2 ∖ X2
X2
X1
X2 X3
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
Вспомогательный граф
H GV3 ∖ X3
X3
V1 ∖ X1
X1
V2 ∖ X2
X2
X1
X2 X3
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
Вспомогательный граф
H GV3 ∖ X3
X3
V1 ∖ X1
X1
V2 ∖ X2
X2
X1
X2 X3
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
Вспомогательный граф
H GV3 ∖ X3
X3
V1 ∖ X1
X1
V2 ∖ X2
X2
X1
X2 X3
итак, вес треугольника (H1,H2,H3) в Hравен весу разреза X1 ∪ X2 ∪ X3 в G
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
Содержание
1 Введение
2 Простые подклассы
3 Примеры сведений
4 Расщепление
5 Локальный поиск
6 Точные алгоритмы для MAX-2-SAT
7 Приближённый алгоритм для MAX-2-SAT
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 30 / 38
Положительно полуопределённые матрицы
ОпределениеСимметрическая матрица называется положительнополуопределённой, если все её собственные числанеотрицательны. Обозначение: A ⪰ 0.
ЛеммаСимметрическая матрица A ∈ Rn×n является положительнополуопределённой тогда и только тогда, когда A представима ввиде UTU для некоторой матрицы U ∈ Rn×n. Другими словами,найдутся вектора u1, . . . , un ∈ Rn (столбцы U), такие чтоAij = uT
i uj .
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 31 / 38
Положительно полуопределённые матрицы
ОпределениеСимметрическая матрица называется положительнополуопределённой, если все её собственные числанеотрицательны. Обозначение: A ⪰ 0.
ЛеммаСимметрическая матрица A ∈ Rn×n является положительнополуопределённой тогда и только тогда, когда A представима ввиде UTU для некоторой матрицы U ∈ Rn×n. Другими словами,найдутся вектора u1, . . . , un ∈ Rn (столбцы U), такие чтоAij = uT
i uj .
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 31 / 38
Задача полуопределённого программированияЗадача полуопределённого программирования (ПП) похожа назадачу линейного программирования (ЛП). Для задачи ЛПсуществует полиномиальный алгоритм. Для задачи ППсуществует алгоритм, находящий решение с аддитивной ошибкой𝜀 за время, полиномиальное от размера входных данных и отlog 1
𝜀.
ЛП ПП
максимизировать cTx ⟨C ,X ⟩при условии aTi x ≤ bi ⟨Ai ,X ⟩ ≤ bi
x ≥ 0 X ⪰ 0где x ∈ Rn, ai ∈ Rn X ∈ Rn×n,Ai ∈ Rn×n
bi ∈ R bi ∈ R
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 32 / 38
Формулировка задачи о максимальном разрезев виде целочисленной ПП
Сопоставим каждой вершине vi ∈ V число yi , где
yi =
{−1, vi — белая вершина,1, vi — чёрная вершина.
Тогда ребро (vi , vj) принадлежит разрезу тогда и только тогда,когда yiyj = −1. Величина же разреза вычисляется как
f (M) =∑i<j
1 − yiyj2
wij .
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 33 / 38
Релаксация
Будем искать оптимум на сфере большей размерности:
maxv1,...,vn∈Sn−1
g((v1, . . . , vn)),
где
g((v1, . . . , vn)) =∑i<j
1 − vTi vj
2wij ,
Sn−1 — n-мерная единичная сфера. Ясно, что максимальноезначение является верхней оценкой на величину максимальногоразреза.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 34 / 38
Возврат к 1 и -1
Рассмотрим решение (vi)i новой задачи. Проведем через началокоординат случайным образом гиперплоскость T размерностиn − 1, которая разделит пространство на два полупространства Aи B . После чего определим yi так:
yi =
{1, vi ∈ A,
−1, vi ∈ B .
Иначе говоря, выберем случайным образом вектор u ∈ Sn ипостроим yi так:
yi =
{1, uTvi ≥ 0,
−1, uTvi < 0.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 35 / 38
Гиперплоскость, проходящая черезначало координат, делит сферу надве части. Мы разбиваем вектора всоответствии с тем, в какую половинуэтносительно этой гиперплоскостиэти вектора попали.
𝜃
Вероятность того, что случайно про-ведённая через начало координат ги-перплоскость разделит вектора, равнаотношению угла между ними и 𝜋.
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 36 / 38
∑i<j
1 − yiyj2
wij =∑i<j
𝜃ij𝜋wij ,
∑i<j
1 − vTi vj
2wij =
∑i<j
1 − cos 𝜃ij2
wij .
−1 −0.5 0 0.5 10
0.5
1
arccos(x)/𝜋
(1 − x)/2
−1 −0.5 0 0.50.5
1
1.5
arccos(x)/𝜋(1−x)/2
0.878
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 37 / 38
Спасибо!
Спасибо за внимание!
А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 38 / 38