20130302 np algorithms_kulikov_lecture04-05_sat

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

Upload: computer-science-club

Post on 28-Nov-2014

433 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 20130302 np algorithms_kulikov_lecture04-05_sat

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

выполнимости

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

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

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

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

Page 2: 20130302 np algorithms_kulikov_lecture04-05_sat

1 Введение

2 Простые подклассы

3 Примеры сведений

4 Расщепление

5 Локальный поиск

6 Точные алгоритмы для MAX-2-SAT

7 Приближённый алгоритм для MAX-2-SAT

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 2 / 38

Page 3: 20130302 np algorithms_kulikov_lecture04-05_sat

Содержание

1 Введение

2 Простые подклассы

3 Примеры сведений

4 Расщепление

5 Локальный поиск

6 Точные алгоритмы для MAX-2-SAT

7 Приближённый алгоритм для MAX-2-SAT

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 3 / 38

Page 4: 20130302 np algorithms_kulikov_lecture04-05_sat

Формулировка задачи

Проверить, выполнима ли формула вида

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

Задача максимальной выполнимости: выполнить как можнобольше клозов.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 4 / 38

Page 5: 20130302 np algorithms_kulikov_lecture04-05_sat

Формулировка задачи

Проверить, выполнима ли формула вида

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

Задача максимальной выполнимости: выполнить как можнобольше клозов.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 4 / 38

Page 6: 20130302 np algorithms_kulikov_lecture04-05_sat

Важность

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

Page 7: 20130302 np algorithms_kulikov_lecture04-05_sat

Содержание

1 Введение

2 Простые подклассы

3 Примеры сведений

4 Расщепление

5 Локальный поиск

6 Точные алгоритмы для MAX-2-SAT

7 Приближённый алгоритм для MAX-2-SAT

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 6 / 38

Page 8: 20130302 np algorithms_kulikov_lecture04-05_sat

Простые подклассы

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

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

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 7 / 38

Page 9: 20130302 np algorithms_kulikov_lecture04-05_sat

Простые подклассы

Задача выполнимости NP-полна.В частности, многие NP-трудные задачи очень просто иестественно формулируются в терминах выполнимости.

Это, однако, не исключает того, что бывают простыеформулы.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 7 / 38

Page 10: 20130302 np algorithms_kulikov_lecture04-05_sat

Простые подклассы

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

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 7 / 38

Page 11: 20130302 np algorithms_kulikov_lecture04-05_sat

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

Page 12: 20130302 np algorithms_kulikov_lecture04-05_sat

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

Page 13: 20130302 np algorithms_kulikov_lecture04-05_sat

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

Page 14: 20130302 np algorithms_kulikov_lecture04-05_sat

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

Page 15: 20130302 np algorithms_kulikov_lecture04-05_sat

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

Page 16: 20130302 np algorithms_kulikov_lecture04-05_sat

Horn SAT

Формулы Хорна: в каждом клозе не более одногоположительного литерала.

Идея: присвоим всем переменным значение 0; если формулапри этом не выполнилась, значит, есть клоз вида (xi).Присвоим тогда xi = 1 и опять, посмотрим не выполниласьли формула.Это работает по простой причине: если уж мы присвоилизначение 1 какой-то переменной, значит, мы обязаны былиэто сделать.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 9 / 38

Page 17: 20130302 np algorithms_kulikov_lecture04-05_sat

Horn SAT

Формулы Хорна: в каждом клозе не более одногоположительного литерала.Идея: присвоим всем переменным значение 0; если формулапри этом не выполнилась, значит, есть клоз вида (xi).

Присвоим тогда xi = 1 и опять, посмотрим не выполниласьли формула.Это работает по простой причине: если уж мы присвоилизначение 1 какой-то переменной, значит, мы обязаны былиэто сделать.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 9 / 38

Page 18: 20130302 np algorithms_kulikov_lecture04-05_sat

Horn SAT

Формулы Хорна: в каждом клозе не более одногоположительного литерала.Идея: присвоим всем переменным значение 0; если формулапри этом не выполнилась, значит, есть клоз вида (xi).Присвоим тогда xi = 1 и опять, посмотрим не выполниласьли формула.

Это работает по простой причине: если уж мы присвоилизначение 1 какой-то переменной, значит, мы обязаны былиэто сделать.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 9 / 38

Page 19: 20130302 np algorithms_kulikov_lecture04-05_sat

Horn SAT

Формулы Хорна: в каждом клозе не более одногоположительного литерала.Идея: присвоим всем переменным значение 0; если формулапри этом не выполнилась, значит, есть клоз вида (xi).Присвоим тогда xi = 1 и опять, посмотрим не выполниласьли формула.Это работает по простой причине: если уж мы присвоилизначение 1 какой-то переменной, значит, мы обязаны былиэто сделать.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 9 / 38

Page 20: 20130302 np algorithms_kulikov_lecture04-05_sat

Содержание

1 Введение

2 Простые подклассы

3 Примеры сведений

4 Расщепление

5 Локальный поиск

6 Точные алгоритмы для MAX-2-SAT

7 Приближённый алгоритм для MAX-2-SAT

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 10 / 38

Page 21: 20130302 np algorithms_kulikov_lecture04-05_sat

Гамильтонов цикл

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

Заведём 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

Page 22: 20130302 np algorithms_kulikov_lecture04-05_sat

Гамильтонов цикл

В задаче о гамильтоновом цикле нужно проверить, есть ли вданном графе цикл, проходящий по каждой вершине ровноодин раз.Заведём 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

Page 23: 20130302 np algorithms_kulikov_lecture04-05_sat

Гамильтонов цикл

В задаче о гамильтоновом цикле нужно проверить, есть ли вданном графе цикл, проходящий по каждой вершине ровноодин раз.Заведём 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

Page 24: 20130302 np algorithms_kulikov_lecture04-05_sat

Гамильтонов цикл

В задаче о гамильтоновом цикле нужно проверить, есть ли вданном графе цикл, проходящий по каждой вершине ровноодин раз.Заведём 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

Page 25: 20130302 np algorithms_kulikov_lecture04-05_sat

Гамильтонов цикл

В задаче о гамильтоновом цикле нужно проверить, есть ли вданном графе цикл, проходящий по каждой вершине ровноодин раз.Заведём 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

Page 26: 20130302 np algorithms_kulikov_lecture04-05_sat

Гамильтонов цикл

В задаче о гамильтоновом цикле нужно проверить, есть ли вданном графе цикл, проходящий по каждой вершине ровноодин раз.Заведём 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

Page 27: 20130302 np algorithms_kulikov_lecture04-05_sat

Максимальный разрез

В задаче о максимальном разрезе нужно разделить вершинына две части так, чтобы как можно больше рёбер соединялиэти две части. Сводить будем к задаче максимальнойвыполнимости.

Для каждого ребра (i , j) ∈ E запишем пару клозов:

(xi ∨ xj)(xi ∨ xj)

В полученной формуле будет 2|E | клозов.Набору переменных естественным образом соответствуетразрез в графе: в одну часть попадают вершины, которымприсвоено значение true, в другую — все остальные.Если переменные в разных частях, то из двух клозоввыполнены оба. Если в одной — то ровно один.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38

Page 28: 20130302 np algorithms_kulikov_lecture04-05_sat

Максимальный разрез

В задаче о максимальном разрезе нужно разделить вершинына две части так, чтобы как можно больше рёбер соединялиэти две части. Сводить будем к задаче максимальнойвыполнимости.Для каждого ребра (i , j) ∈ E запишем пару клозов:

(xi ∨ xj)(xi ∨ xj)

В полученной формуле будет 2|E | клозов.Набору переменных естественным образом соответствуетразрез в графе: в одну часть попадают вершины, которымприсвоено значение true, в другую — все остальные.Если переменные в разных частях, то из двух клозоввыполнены оба. Если в одной — то ровно один.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38

Page 29: 20130302 np algorithms_kulikov_lecture04-05_sat

Максимальный разрез

В задаче о максимальном разрезе нужно разделить вершинына две части так, чтобы как можно больше рёбер соединялиэти две части. Сводить будем к задаче максимальнойвыполнимости.Для каждого ребра (i , j) ∈ E запишем пару клозов:

(xi ∨ xj)(xi ∨ xj)

В полученной формуле будет 2|E | клозов.

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

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38

Page 30: 20130302 np algorithms_kulikov_lecture04-05_sat

Максимальный разрез

В задаче о максимальном разрезе нужно разделить вершинына две части так, чтобы как можно больше рёбер соединялиэти две части. Сводить будем к задаче максимальнойвыполнимости.Для каждого ребра (i , j) ∈ E запишем пару клозов:

(xi ∨ xj)(xi ∨ xj)

В полученной формуле будет 2|E | клозов.Набору переменных естественным образом соответствуетразрез в графе: в одну часть попадают вершины, которымприсвоено значение true, в другую — все остальные.

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

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38

Page 31: 20130302 np algorithms_kulikov_lecture04-05_sat

Максимальный разрез

В задаче о максимальном разрезе нужно разделить вершинына две части так, чтобы как можно больше рёбер соединялиэти две части. Сводить будем к задаче максимальнойвыполнимости.Для каждого ребра (i , j) ∈ E запишем пару клозов:

(xi ∨ xj)(xi ∨ xj)

В полученной формуле будет 2|E | клозов.Набору переменных естественным образом соответствуетразрез в графе: в одну часть попадают вершины, которымприсвоено значение true, в другую — все остальные.Если переменные в разных частях, то из двух клозоввыполнены оба. Если в одной — то ровно один.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38

Page 32: 20130302 np algorithms_kulikov_lecture04-05_sat

Вершинное покрытие

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

Сведение чуть более хитрое, потому что теперь нужно,чтобы множество вершин было покрытием. Сводить будемопять к задаче максимальной выполнимости.Для каждой вершины i запишем клоз (xi).Для каждого ребра (i , j) ∈ E запишем клоз (xi ∨ xj).Ключевая идея: есть оптимальный набор значений, вкотором все 2-клозы выполнены: если какой-то 2-клоз(xi ∨ xj) не выполнен, изменим значение переменной xi ; приэтом количество выполненных клозов не уменьшится.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38

Page 33: 20130302 np algorithms_kulikov_lecture04-05_sat

Вершинное покрытие

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

Для каждой вершины i запишем клоз (xi).Для каждого ребра (i , j) ∈ E запишем клоз (xi ∨ xj).Ключевая идея: есть оптимальный набор значений, вкотором все 2-клозы выполнены: если какой-то 2-клоз(xi ∨ xj) не выполнен, изменим значение переменной xi ; приэтом количество выполненных клозов не уменьшится.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38

Page 34: 20130302 np algorithms_kulikov_lecture04-05_sat

Вершинное покрытие

В задаче о вершинном покрытии нужно отметить в графепоменьше вершин так, чтобы у каждого ребра хотя бы одиниз концов был помечен.Сведение чуть более хитрое, потому что теперь нужно,чтобы множество вершин было покрытием. Сводить будемопять к задаче максимальной выполнимости.Для каждой вершины i запишем клоз (xi).

Для каждого ребра (i , j) ∈ E запишем клоз (xi ∨ xj).Ключевая идея: есть оптимальный набор значений, вкотором все 2-клозы выполнены: если какой-то 2-клоз(xi ∨ xj) не выполнен, изменим значение переменной xi ; приэтом количество выполненных клозов не уменьшится.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38

Page 35: 20130302 np algorithms_kulikov_lecture04-05_sat

Вершинное покрытие

В задаче о вершинном покрытии нужно отметить в графепоменьше вершин так, чтобы у каждого ребра хотя бы одиниз концов был помечен.Сведение чуть более хитрое, потому что теперь нужно,чтобы множество вершин было покрытием. Сводить будемопять к задаче максимальной выполнимости.Для каждой вершины i запишем клоз (xi).Для каждого ребра (i , j) ∈ E запишем клоз (xi ∨ xj).

Ключевая идея: есть оптимальный набор значений, вкотором все 2-клозы выполнены: если какой-то 2-клоз(xi ∨ xj) не выполнен, изменим значение переменной xi ; приэтом количество выполненных клозов не уменьшится.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38

Page 36: 20130302 np algorithms_kulikov_lecture04-05_sat

Вершинное покрытие

В задаче о вершинном покрытии нужно отметить в графепоменьше вершин так, чтобы у каждого ребра хотя бы одиниз концов был помечен.Сведение чуть более хитрое, потому что теперь нужно,чтобы множество вершин было покрытием. Сводить будемопять к задаче максимальной выполнимости.Для каждой вершины i запишем клоз (xi).Для каждого ребра (i , j) ∈ E запишем клоз (xi ∨ xj).Ключевая идея: есть оптимальный набор значений, вкотором все 2-клозы выполнены: если какой-то 2-клоз(xi ∨ xj) не выполнен, изменим значение переменной xi ; приэтом количество выполненных клозов не уменьшится.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38

Page 37: 20130302 np algorithms_kulikov_lecture04-05_sat

Содержание

1 Введение

2 Простые подклассы

3 Примеры сведений

4 Расщепление

5 Локальный поиск

6 Точные алгоритмы для MAX-2-SAT

7 Приближённый алгоритм для MAX-2-SAT

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 14 / 38

Page 38: 20130302 np algorithms_kulikov_lecture04-05_sat

(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

Page 39: 20130302 np algorithms_kulikov_lecture04-05_sat

Правила упрощения

Единичный клозЕсли формула содержит единичный клоз (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

Page 40: 20130302 np algorithms_kulikov_lecture04-05_sat

Правила упрощения

Единичный клозЕсли формула содержит единичный клоз (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

Page 41: 20130302 np algorithms_kulikov_lecture04-05_sat

Правила упрощения (продолжение)

РезолюцияЕсли 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

Page 42: 20130302 np algorithms_kulikov_lecture04-05_sat

Правила упрощения (продолжение)

РезолюцияЕсли 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

Page 43: 20130302 np algorithms_kulikov_lecture04-05_sat

Алгоритм

АлгоритмDPLL-SAT(F )

применять правила упрощения единичный клоз, чистыйлитерал и резолюция до тех пор, пока хотя бы одно из нихприменимоесли F не содержит ни одного клоза, выдать “выполнима”если F содержит пустой клоз, выдать “невыполнима”если F содержит литерал, входящий в нее хотя бы два разаположительно и хотя бы два раза отрицательно, положить xравным этому литералу; в противном случае взять вкачестве x любой литералвернуть (DPLL-SAT(F [x = 1]) or DPLL-SAT(F [x = 0]))

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 18 / 38

Page 44: 20130302 np algorithms_kulikov_lecture04-05_sat

Анализ

ЛеммаВремя работы алгоритма 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

Page 45: 20130302 np algorithms_kulikov_lecture04-05_sat

Анализ

ЛеммаВремя работы алгоритма 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

Page 46: 20130302 np algorithms_kulikov_lecture04-05_sat

Анализ

ЛеммаВремя работы алгоритма 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

Page 47: 20130302 np algorithms_kulikov_lecture04-05_sat

Доказательство (продолжение)

ясно, что упрощённая формула не содержит (0, k)- и(k , 0)-литералов (это как раз чистые литералы), а также(1, 1)-литералов (они удаляются резольвированием)

значит, осталось рассмотреть случай, когда формуласостоит только из (1, 2)- и (2, 1)-литералов

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 20 / 38

Page 48: 20130302 np algorithms_kulikov_lecture04-05_sat

Доказательство (продолжение)

ясно, что упрощённая формула не содержит (0, k)- и(k , 0)-литералов (это как раз чистые литералы), а также(1, 1)-литералов (они удаляются резольвированием)значит, осталось рассмотреть случай, когда формуласостоит только из (1, 2)- и (2, 1)-литералов

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 20 / 38

Page 49: 20130302 np algorithms_kulikov_lecture04-05_sat

Доказательство (продолжение)

рассмотрим произвольный литерал 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

Page 50: 20130302 np algorithms_kulikov_lecture04-05_sat

Доказательство (продолжение)

рассмотрим произвольный литерал 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

Page 51: 20130302 np algorithms_kulikov_lecture04-05_sat

Доказательство (продолжение)

рассмотрим произвольный литерал 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

Page 52: 20130302 np algorithms_kulikov_lecture04-05_sat

Доказательство (продолжение)

рассмотрим произвольный литерал 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

Page 53: 20130302 np algorithms_kulikov_lecture04-05_sat

Доказательство (продолжение)

рассмотрим произвольный литерал 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

Page 54: 20130302 np algorithms_kulikov_lecture04-05_sat

Содержание

1 Введение

2 Простые подклассы

3 Примеры сведений

4 Расщепление

5 Локальный поиск

6 Точные алгоритмы для MAX-2-SAT

7 Приближённый алгоритм для MAX-2-SAT

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 22 / 38

Page 55: 20130302 np algorithms_kulikov_lecture04-05_sat

Расстояние Хэмминга для наборов

Набор истинностных значений переменным формулы — этопоследовательность битов длины n, где n — количествопеременных формулы. Всего, таким образом, есть 2n

различных наборов.

Хэммингово расстояние двух наборов — количествопеременных, которым эти наборы присваивают разныезначения.Для набора t ∈ {0, 1}n и числа d под Хэмминговым шаромℋ(t, d) (с центром в t и радиуса d) будем пониматьмножество всех наборов, находящихся на расстоянии неболее чем d от t.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 23 / 38

Page 56: 20130302 np algorithms_kulikov_lecture04-05_sat

Расстояние Хэмминга для наборов

Набор истинностных значений переменным формулы — этопоследовательность битов длины n, где n — количествопеременных формулы. Всего, таким образом, есть 2n

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

Для набора t ∈ {0, 1}n и числа d под Хэмминговым шаромℋ(t, d) (с центром в t и радиуса d) будем пониматьмножество всех наборов, находящихся на расстоянии неболее чем d от t.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 23 / 38

Page 57: 20130302 np algorithms_kulikov_lecture04-05_sat

Расстояние Хэмминга для наборов

Набор истинностных значений переменным формулы — этопоследовательность битов длины n, где n — количествопеременных формулы. Всего, таким образом, есть 2n

различных наборов.Хэммингово расстояние двух наборов — количествопеременных, которым эти наборы присваивают разныезначения.Для набора t ∈ {0, 1}n и числа d под Хэмминговым шаромℋ(t, d) (с центром в t и радиуса d) будем пониматьмножество всех наборов, находящихся на расстоянии неболее чем d от t.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 23 / 38

Page 58: 20130302 np algorithms_kulikov_lecture04-05_sat

Поиск в шаре

Для формулы 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

Page 59: 20130302 np algorithms_kulikov_lecture04-05_sat

Поиск в шаре

Для формулы 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

Page 60: 20130302 np algorithms_kulikov_lecture04-05_sat

Поиск в шаре

Для формулы 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

Page 61: 20130302 np algorithms_kulikov_lecture04-05_sat

Поиск в шаре

Для формулы 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

Page 62: 20130302 np algorithms_kulikov_lecture04-05_sat

Поиск в шаре

Для формулы 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

Page 63: 20130302 np algorithms_kulikov_lecture04-05_sat

Содержание

1 Введение

2 Простые подклассы

3 Примеры сведений

4 Расщепление

5 Локальный поиск

6 Точные алгоритмы для MAX-2-SAT

7 Приближённый алгоритм для MAX-2-SAT

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 25 / 38

Page 64: 20130302 np algorithms_kulikov_lecture04-05_sat

Задача о максимальном разрезе

Мы рассмотрим точный алгоритм в применении к частномуслучаю задачи MAX-2-SAT — задаче о максимальном разрезе (вкоторой требуется разбить множество вершин графа на двечасти так, чтобы между ними было как можно больше рёбер).

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 26 / 38

Page 65: 20130302 np algorithms_kulikov_lecture04-05_sat

Поиск треугольников в графе

Алгоритм будет основан на быстрой проверке наличиятреугольника (3-клики) в графе:

возведём матрицу смежности вкуб и посмотрим, есть ли на диагонали ненулевое число. Времяработы: O(nw ), где w ≈ 2.37 — экспонента умножения матриц.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 27 / 38

Page 66: 20130302 np algorithms_kulikov_lecture04-05_sat

Поиск треугольников в графе

Алгоритм будет основан на быстрой проверке наличиятреугольника (3-клики) в графе: возведём матрицу смежности вкуб и посмотрим, есть ли на диагонали ненулевое число. Времяработы: O(nw ), где w ≈ 2.37 — экспонента умножения матриц.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 27 / 38

Page 67: 20130302 np algorithms_kulikov_lecture04-05_sat

Основные идеи алгоритма

Дан граф G на n вершинах.Построим трёхдольный граф H на 3 · 2n/3 вершинах соследующим свойством: исходный граф G имеет разрез весаw тогда и только тогда, когда H содержит 3-клику веса w .Используем быстрое умножение матриц для поиска 3-клики.Время работы: 2𝜔n/3 ≈ 1.732n.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 28 / 38

Page 68: 20130302 np algorithms_kulikov_lecture04-05_sat

Вспомогательный граф

H G

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38

Page 69: 20130302 np algorithms_kulikov_lecture04-05_sat

Вспомогательный граф

H G

это три части вершин исходного графа G

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38

Page 70: 20130302 np algorithms_kulikov_lecture04-05_sat

Вспомогательный граф

H G

это три доли вершин вспомогательного огромного графа H

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38

Page 71: 20130302 np algorithms_kulikov_lecture04-05_sat

Вспомогательный граф

H GV3 ∖ X3

X3

V1 ∖ X1

X1

V2 ∖ X2

X2

X1

X2 X3

для каждого Xi ⊆ Vi создаём вершину в соответствующей доле H

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38

Page 72: 20130302 np algorithms_kulikov_lecture04-05_sat

Вспомогательный граф

H GV3 ∖ X3

X3

V1 ∖ X1

X1

V2 ∖ X2

X2

X1

X2 X3

чему равен вес разреза X1 ∪ X2 ∪ X3 в G?

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38

Page 73: 20130302 np algorithms_kulikov_lecture04-05_sat

Вспомогательный граф

H GV3 ∖ X3

X3

V1 ∖ X1

X1

V2 ∖ X2

X2

X1

X2 X3

чему равен вес разреза X1 ∪ X2 ∪ X3 в G?

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38

Page 74: 20130302 np algorithms_kulikov_lecture04-05_sat

Вспомогательный граф

H GV3 ∖ X3

X3

V1 ∖ X1

X1

V2 ∖ X2

X2

X1

X2 X3

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38

Page 75: 20130302 np algorithms_kulikov_lecture04-05_sat

Вспомогательный граф

H GV3 ∖ X3

X3

V1 ∖ X1

X1

V2 ∖ X2

X2

X1

X2 X3

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38

Page 76: 20130302 np algorithms_kulikov_lecture04-05_sat

Вспомогательный граф

H GV3 ∖ X3

X3

V1 ∖ X1

X1

V2 ∖ X2

X2

X1

X2 X3

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38

Page 77: 20130302 np algorithms_kulikov_lecture04-05_sat

Вспомогательный граф

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

Page 78: 20130302 np algorithms_kulikov_lecture04-05_sat

Содержание

1 Введение

2 Простые подклассы

3 Примеры сведений

4 Расщепление

5 Локальный поиск

6 Точные алгоритмы для MAX-2-SAT

7 Приближённый алгоритм для MAX-2-SAT

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 30 / 38

Page 79: 20130302 np algorithms_kulikov_lecture04-05_sat

Положительно полуопределённые матрицы

ОпределениеСимметрическая матрица называется положительнополуопределённой, если все её собственные числанеотрицательны. Обозначение: A ⪰ 0.

ЛеммаСимметрическая матрица A ∈ Rn×n является положительнополуопределённой тогда и только тогда, когда A представима ввиде UTU для некоторой матрицы U ∈ Rn×n. Другими словами,найдутся вектора u1, . . . , un ∈ Rn (столбцы U), такие чтоAij = uT

i uj .

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

Page 80: 20130302 np algorithms_kulikov_lecture04-05_sat

Положительно полуопределённые матрицы

ОпределениеСимметрическая матрица называется положительнополуопределённой, если все её собственные числанеотрицательны. Обозначение: A ⪰ 0.

ЛеммаСимметрическая матрица A ∈ Rn×n является положительнополуопределённой тогда и только тогда, когда A представима ввиде UTU для некоторой матрицы U ∈ Rn×n. Другими словами,найдутся вектора u1, . . . , un ∈ Rn (столбцы U), такие чтоAij = uT

i uj .

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

Page 81: 20130302 np algorithms_kulikov_lecture04-05_sat

Задача полуопределённого программированияЗадача полуопределённого программирования (ПП) похожа назадачу линейного программирования (ЛП). Для задачи ЛПсуществует полиномиальный алгоритм. Для задачи ППсуществует алгоритм, находящий решение с аддитивной ошибкой𝜀 за время, полиномиальное от размера входных данных и от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

Page 82: 20130302 np algorithms_kulikov_lecture04-05_sat

Формулировка задачи о максимальном разрезев виде целочисленной ПП

Сопоставим каждой вершине vi ∈ V число yi , где

yi =

{−1, vi — белая вершина,1, vi — чёрная вершина.

Тогда ребро (vi , vj) принадлежит разрезу тогда и только тогда,когда yiyj = −1. Величина же разреза вычисляется как

f (M) =∑i<j

1 − yiyj2

wij .

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 33 / 38

Page 83: 20130302 np algorithms_kulikov_lecture04-05_sat

Релаксация

Будем искать оптимум на сфере большей размерности:

maxv1,...,vn∈Sn−1

g((v1, . . . , vn)),

где

g((v1, . . . , vn)) =∑i<j

1 − vTi vj

2wij ,

Sn−1 — n-мерная единичная сфера. Ясно, что максимальноезначение является верхней оценкой на величину максимальногоразреза.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 34 / 38

Page 84: 20130302 np algorithms_kulikov_lecture04-05_sat

Возврат к 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

Page 85: 20130302 np algorithms_kulikov_lecture04-05_sat

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

𝜃

Вероятность того, что случайно про-ведённая через начало координат ги-перплоскость разделит вектора, равнаотношению угла между ними и 𝜋.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 36 / 38

Page 86: 20130302 np algorithms_kulikov_lecture04-05_sat

∑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

Page 87: 20130302 np algorithms_kulikov_lecture04-05_sat

Спасибо!

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

А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 38 / 38