SlideShare una empresa de Scribd logo
1 de 87
Descargar para leer sin conexión
Алгоритмы для 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 International
    Conferences on Theory and Applications of Satisfiability Testing.
    http://www.satcompetition.org/ — The international SAT
    Competitions web page.
    http://www.isa.ewi.tudelft.nl/Jsat/ — Journal on
    Satisfiability, Boolean Modeling and Computation.
    http://www.satlib.org/ — The Satisfiability Library.
    http://www.satlive.org/ — Up-to-date links for the
    Satisfiability Problem.
    http://www.qbflib.org/ — The Quantified Boolean
    Formulas 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-полна.




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



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




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



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




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

    В задаче 2-выполнимости каждый клоз входной формулы
    содержит не более двух литералов.




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

    В задаче 2-выполнимости каждый клоз входной формулы
    содержит не более двух литералов.
    Идея: клоз (x ∨ y ) говорит нам, что нельзя одновременно
    присваивать значение 0 литералам x и y . Ровно о том же
    самом нас просят импликации (¯ ⇒ y ) и (¯ ⇒ x).
                                    x         y




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

    В задаче 2-выполнимости каждый клоз входной формулы
    содержит не более двух литералов.
    Идея: клоз (x ∨ y ) говорит нам, что нельзя одновременно
    присваивать значение 0 литералам x и y . Ровно о том же
    самом нас просят импликации (¯ ⇒ y ) и (¯ ⇒ x).
                                    x                 y
    Заведём граф на вершинах {x1 , x2 , . . . , x1 , x2 , . . . }. Если в
                                                ¯ ¯
    исходной формуле есть клоз (xi ∨ xj ), проведём рёбра xi → xj     ¯
    и xj → xi .
      ¯




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

    В задаче 2-выполнимости каждый клоз входной формулы
    содержит не более двух литералов.
    Идея: клоз (x ∨ y ) говорит нам, что нельзя одновременно
    присваивать значение 0 литералам x и y . Ровно о том же
    самом нас просят импликации (¯ ⇒ y ) и (¯ ⇒ x).
                                    x                 y
    Заведём граф на вершинах {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 . Ровно о том же
    самом нас просят импликации (¯ ⇒ y ) и (¯ ⇒ x).
                                    x                 y
    Заведём граф на вершинах {x1 , x2 , . . . , x1 , x2 , . . . }. Если в
                                                ¯ ¯
    исходной формуле есть клоз (xi ∨ xj ), проведём рёбра xi → xj     ¯
    и xj → xi .
      ¯
    В полученном графе найдём компоненты сильной связности.
    Если хотя бы в одной из них содержатся xi и xi , то формула
                                                            ¯
    невыполнима.
    В противном случае линеаризуем компоненты и выполним
    формулу.

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


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




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


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




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


    Формулы Хорна: в каждом клозе не более одного
    положительного литерала.
    Идея: присвоим всем переменным значение 0; если формула
    при этом не выполнилась, значит, есть клоз вида (xi ).
    Присвоим тогда xi = 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
Гамильтонов цикл
    В задаче о гамильтоновом цикле нужно проверить, есть ли в
    данном графе цикл, проходящий по каждой вершине ровно
    один раз.




 А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   2-3 марта 2013   11 / 38
Гамильтонов цикл
    В задаче о гамильтоновом цикле нужно проверить, есть ли в
    данном графе цикл, проходящий по каждой вершине ровно
    один раз.
    Заведём n2 переменных: xij = true, если вершина i имеет
    номер j в гамильтоновом цикле.




 А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   2-3 марта 2013   11 / 38
Гамильтонов цикл
    В задаче о гамильтоновом цикле нужно проверить, есть ли в
    данном графе цикл, проходящий по каждой вершине ровно
    один раз.
    Заведём n2 переменных: xij = true, если вершина i имеет
    номер j в гамильтоновом цикле.
    Клозы:




 А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   2-3 марта 2013   11 / 38
Гамильтонов цикл
    В задаче о гамильтоновом цикле нужно проверить, есть ли в
    данном графе цикл, проходящий по каждой вершине ровно
    один раз.
    Заведём n2 переменных: xij = true, если вершина i имеет
    номер j в гамильтоновом цикле.
    Клозы:
          В строке i стоит ровно одна единица:
                     (xi1 ∨ xi2 ∨ · · · ∨ xin ) (хотя бы одна единица)
                            {(¯ij ∨ xik )}j,k (не более одной)
                              x     ¯




 А. Куликов (ПОМИ РАН)    Алгоритмы для задачи выполнимости   2-3 марта 2013   11 / 38
Гамильтонов цикл
    В задаче о гамильтоновом цикле нужно проверить, есть ли в
    данном графе цикл, проходящий по каждой вершине ровно
    один раз.
    Заведём n2 переменных: xij = true, если вершина i имеет
    номер j в гамильтоновом цикле.
    Клозы:
          В строке i стоит ровно одна единица:
                     (xi1 ∨ xi2 ∨ · · · ∨ xin ) (хотя бы одна единица)
                            {(¯ij ∨ xik )}j,k (не более одной)
                              x     ¯
          Аналогично про столбцы.




 А. Куликов (ПОМИ РАН)    Алгоритмы для задачи выполнимости   2-3 марта 2013   11 / 38
Гамильтонов цикл
    В задаче о гамильтоновом цикле нужно проверить, есть ли в
    данном графе цикл, проходящий по каждой вершине ровно
    один раз.
    Заведём n2 переменных: xij = true, если вершина i имеет
    номер j в гамильтоновом цикле.
    Клозы:
          В строке i стоит ровно одна единица:
                     (xi1 ∨ xi2 ∨ · · · ∨ xin ) (хотя бы одна единица)
                            {(¯ij ∨ xik )}j,k (не более одной)
                              x     ¯
          Аналогично про столбцы.
          Каждые две последовательные вершины цикла соединены
          ребром: если (i, j) ̸∈ E , то они не могут быть
          последовательными:
                                        (¯ik ∨ xj(k+1) )
                                         x     ¯
 А. Куликов (ПОМИ РАН)    Алгоритмы для задачи выполнимости   2-3 марта 2013   11 / 38
Максимальный разрез
    В задаче о максимальном разрезе нужно разделить вершины
    на две части так, чтобы как можно больше рёбер соединяли
    эти две части. Сводить будем к задаче максимальной
    выполнимости.




 А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   2-3 марта 2013   12 / 38
Максимальный разрез
    В задаче о максимальном разрезе нужно разделить вершины
    на две части так, чтобы как можно больше рёбер соединяли
    эти две части. Сводить будем к задаче максимальной
    выполнимости.
    Для каждого ребра (i, j) ∈ E запишем пару клозов:

                                 (xi ∨ xj )(¯i ∨ xj )
                                            x ¯




 А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   2-3 марта 2013   12 / 38
Максимальный разрез
    В задаче о максимальном разрезе нужно разделить вершины
    на две части так, чтобы как можно больше рёбер соединяли
    эти две части. Сводить будем к задаче максимальной
    выполнимости.
    Для каждого ребра (i, j) ∈ E запишем пару клозов:

                                 (xi ∨ xj )(¯i ∨ xj )
                                            x ¯

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




 А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   2-3 марта 2013   12 / 38
Максимальный разрез
    В задаче о максимальном разрезе нужно разделить вершины
    на две части так, чтобы как можно больше рёбер соединяли
    эти две части. Сводить будем к задаче максимальной
    выполнимости.
    Для каждого ребра (i, j) ∈ E запишем пару клозов:

                                 (xi ∨ xj )(¯i ∨ xj )
                                            x ¯

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



 А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   2-3 марта 2013   12 / 38
Максимальный разрез
    В задаче о максимальном разрезе нужно разделить вершины
    на две части так, чтобы как можно больше рёбер соединяли
    эти две части. Сводить будем к задаче максимальной
    выполнимости.
    Для каждого ребра (i, j) ∈ E запишем пару клозов:

                                 (xi ∨ xj )(¯i ∨ xj )
                                            x ¯

    В полученной формуле будет 2|E | клозов.
    Набору переменных естественным образом соответствует
    разрез в графе: в одну часть попадают вершины, которым
    присвоено значение true, в другую — все остальные.
    Если переменные в разных частях, то из двух клозов
    выполнены оба. Если в одной — то ровно один.
 А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   2-3 марта 2013   12 / 38
Вершинное покрытие

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




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

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




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

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




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

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




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

    В задаче о вершинном покрытии нужно отметить в графе
    поменьше вершин так, чтобы у каждого ребра хотя бы один
    из концов был помечен.
    Сведение чуть более хитрое, потому что теперь нужно,
    чтобы множество вершин было покрытием. Сводить будем
    опять к задаче максимальной выполнимости.
    Для каждой вершины i запишем клоз (¯i ).
                                           x
    Для каждого ребра (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)
                        w = 0                                                    w = 1
              (x ∨ y ∨ z), (x), (x ∨ y ), (y ∨ z)                   (x ∨ y ), (y ∨ z), (z), (z)
               x = 0                      x = 1                 z = 0                       z = 1
        (y ∨ z), (y ), (y ∨ z)         (), (y ∨ z)             (x ∨ y ), ()           (x ∨ y ), (y ), ()
        y =0            y =1
        (z), (z)          ()
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 )




 А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   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)




 А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   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 )




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

Лемма
Время работы алгоритма DPLL-SAT есть O * (1.415K ), где K —
кол-во клозов входной формулы.

Доказательство
    достаточно показать, что в каждой ветке удаляется хотя бы
    два клоза: T (K ) ≤ T (K − 2) + T (K − 2) + poly(K )
    это ясно, если нашёлся литерал, который входит в формулу
    хотя бы дважды и положительно и отрицательно




 А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   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)-литералов (они удаляются резольвированием)




 А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   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 ∨ . . . ) ∧ . . .




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

    рассмотрим произвольный литерал x:

                 F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . .

    поскольку F не содержит единичных клозов, в клозе
    (¬x ∨ . . . ) есть еще хотя бы один литерал; назовем его y




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

    рассмотрим произвольный литерал x:

                 F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . .

    поскольку F не содержит единичных клозов, в клозе
    (¬x ∨ . . . ) есть еще хотя бы один литерал; назовем его y
    в F [x = 0] y будет (2, 0)-, (0, 2)- или (1, 1)-литералом




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

    рассмотрим произвольный литерал x:

                 F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . .

    поскольку F не содержит единичных клозов, в клозе
    (¬x ∨ . . . ) есть еще хотя бы один литерал; назовем его y
    в F [x = 0] y будет (2, 0)-, (0, 2)- или (1, 1)-литералом
    в любом из этих случаев y будет удален правилами
    упрощения, что повлечет за собой удаление хотя бы одного
    клоза




 А. Куликов (ПОМИ РАН)    Алгоритмы для задачи выполнимости     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
    различных наборов.




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

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




 А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   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 );




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

Для формулы F в 3-КНФ поиск выполняющего набора в шаре
ℋ(t, d) может быть осуществлён за время 3d :
    если t не выполняет F , возьмём произвольный
    невыполненный клоз C = (x1 ∨ x2 ∨ x3 );
    рассмотрим три набора, полученных из t изменением
    значений переменных x1 , x2 и x3 ;




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

Для формулы F в 3-КНФ поиск выполняющего набора в шаре
ℋ(t, d) может быть осуществлён за время 3d :
    если t не выполняет F , возьмём произвольный
    невыполненный клоз C = (x1 ∨ x2 ∨ x3 );
    рассмотрим три набора, полученных из t изменением
    значений переменных x1 , x2 и x3 ;
    хотя бы один из них будет ближе к выполняющему набору.




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

Для формулы F в 3-КНФ поиск выполняющего набора в шаре
ℋ(t, d) может быть осуществлён за время 3d :
    если t не выполняет F , возьмём произвольный
    невыполненный клоз C = (x1 ∨ x2 ∨ x3 );
    рассмотрим три набора, полученных из t изменением
    значений переменных x1 , x2 и x3 ;
    хотя бы один из них будет ближе к выполняющему набору.




 А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   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-клики) в графе:




 А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   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
Вспомогательный граф

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




            H                                           G




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

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




              H                                           G




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

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

                                        V1 ∖ X1

                                           X1

           X1
           H                                            G
                         V2 ∖ X2                        V3 ∖ X3

    X2             X3       X2                               X3




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

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

                                        V1 ∖ X1

                                           X1

           X1
           H                                            G
                         V2 ∖ X2                        V3 ∖ X3

    X2             X3       X2                               X3




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

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

                                        V1 ∖ X1

                                           X1

           X1
           H                                            G
                         V2 ∖ X2                        V3 ∖ X3

    X2             X3       X2                               X3




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


                                        V1 ∖ X1

                                           X1

           X1
           H                                            G
                         V2 ∖ X2                        V3 ∖ X3

    X2             X3       X2                               X3




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


                                        V1 ∖ X1

                                           X1

           X1
           H                                            G
                         V2 ∖ X2                        V3 ∖ X3

    X2             X3       X2                               X3




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


                                        V1 ∖ X1

                                           X1

           X1
           H                                            G
                         V2 ∖ X2                        V3 ∖ X3

    X2             X3       X2                               X3




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


                                        V1 ∖ X1

                                           X1

           X1
           H                                            G
                         V2 ∖ X2                        V3 ∖ X3

    X2             X3       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.




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

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

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


 А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   2-3 марта 2013   31 / 38
Задача полуопределённого программирования
Задача полуопределённого программирования (ПП) похожа на
задачу линейного программирования (ЛП). Для задачи ЛП
существует полиномиальный алгоритм. Для задачи ПП
существует алгоритм, находящий решение с аддитивной ошибкой
 𝜀 за время, полиномиальное от размера входных данных и от
log 1𝜀 .

                            ЛП                       ПП
    максимизировать c T x                            ⟨C , X ⟩
    при условии             aiT 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 , где
                   {︃
                     −1, vi — белая вершина,
              yi =
                     1,  vi — чёрная вершина.

Тогда ребро (vi , vj ) принадлежит разрезу тогда и только тогда,
когда yi yj = −1. Величина же разреза вычисляется как
                                    ∑︁ 1 − yi yj
                         f (M) =                     wij .
                                     i<j
                                              2



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


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

                              max            g ((v1 , . . . , vn )),
                         v1 ,...,vn ∈S n−1

где
                                                 ∑︁ 1 − v T vj
                                                                 i
                    g ((v1 , . . . , vn )) =                           wij ,
                                                  i<j
                                                             2

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



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

Рассмотрим решение (vi )i новой задачи. Проведем через начало
координат случайным образом гиперплоскость T размерности
n − 1, которая разделит пространство на два полупространства A
и B. После чего определим yi так:
                           {︃
                             1,   vi ∈ A,
                      yi =
                             −1, vi ∈ B.

Иначе говоря, выберем случайным образом вектор u ∈ S n и
построим yi так:         {︃
                           1,  u T vi ≥ 0,
                    yi =
                           −1, u T vi < 0.


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




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

 А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости    2-3 марта 2013   36 / 38
∑︁ 1 − yi yj                ∑︁ 𝜃ij
                                     wij =           wij ,
                   i<j
                           2                  i<j
                                                  𝜋
                 ∑︁ 1 − v T vj                ∑︁ 1 − cos 𝜃ij
                               i
                                     wij =                   wij .
                 i<j
                           2                  i<j
                                                     2

                                                            arccos(x)/𝜋
       arccos(x)/𝜋                                            (1−x)/2

       (1 − x)/2                                            0.878
  1                                                   1.5


 0.5                                                   1


  0                                                   0.5
   −1     −0.5         0       0.5     1                −1      −0.5       0         0.5


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




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




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

Más contenido relacionado

La actualidad más candente

Методы численного интегрирования
Методы численного интегрированияМетоды численного интегрирования
Методы численного интегрированияTheoretical mechanics department
 
20120309 formal semantics shilov_lecture06
20120309 formal semantics shilov_lecture0620120309 formal semantics shilov_lecture06
20120309 formal semantics shilov_lecture06Computer Science Club
 
Основы комбинаторики - II
Основы комбинаторики - IIОсновы комбинаторики - II
Основы комбинаторики - IIDEVTYPE
 
20111202 machine learning_nikolenko_lecture04
20111202 machine learning_nikolenko_lecture0420111202 machine learning_nikolenko_lecture04
20111202 machine learning_nikolenko_lecture04Computer Science Club
 
Численное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод ЭйлераЧисленное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод ЭйлераTheoretical mechanics department
 
Лекция 7. Алгоритмы
Лекция 7. АлгоритмыЛекция 7. Алгоритмы
Лекция 7. АлгоритмыVladimir Tcherniak
 
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Positive Hack Days
 
20110409 quantum algorithms_vyali_lecture08
20110409 quantum algorithms_vyali_lecture0820110409 quantum algorithms_vyali_lecture08
20110409 quantum algorithms_vyali_lecture08Computer Science Club
 
20110409 quantum algorithms_vyali_lecture08
20110409 quantum algorithms_vyali_lecture0820110409 quantum algorithms_vyali_lecture08
20110409 quantum algorithms_vyali_lecture08Computer Science Club
 
20111120 circuit complexity_seminar_lecture09_alexeenko
20111120 circuit complexity_seminar_lecture09_alexeenko20111120 circuit complexity_seminar_lecture09_alexeenko
20111120 circuit complexity_seminar_lecture09_alexeenkoComputer Science Club
 
Линейная алгебра - I
Линейная алгебра - IЛинейная алгебра - I
Линейная алгебра - IDEVTYPE
 
20091108 algorithmsfornphardproblems kulikov_lecture07
20091108 algorithmsfornphardproblems kulikov_lecture0720091108 algorithmsfornphardproblems kulikov_lecture07
20091108 algorithmsfornphardproblems kulikov_lecture07Computer Science Club
 
Решение систем линейных уравнений: трехдиагональные, симметричные и положител...
Решение систем линейных уравнений: трехдиагональные, симметричные и положител...Решение систем линейных уравнений: трехдиагональные, симметричные и положител...
Решение систем линейных уравнений: трехдиагональные, симметричные и положител...Theoretical mechanics department
 
Линейная алгебра - II
Линейная алгебра - IIЛинейная алгебра - II
Линейная алгебра - IIDEVTYPE
 
Итерационные методы решения СЛАУ
Итерационные методы решения СЛАУИтерационные методы решения СЛАУ
Итерационные методы решения СЛАУTheoretical mechanics department
 

La actualidad más candente (20)

Сплайн интерполяция
Сплайн интерполяцияСплайн интерполяция
Сплайн интерполяция
 
Методы численного интегрирования
Методы численного интегрированияМетоды численного интегрирования
Методы численного интегрирования
 
Nf games
Nf gamesNf games
Nf games
 
20120309 formal semantics shilov_lecture06
20120309 formal semantics shilov_lecture0620120309 formal semantics shilov_lecture06
20120309 formal semantics shilov_lecture06
 
Основы комбинаторики - II
Основы комбинаторики - IIОсновы комбинаторики - II
Основы комбинаторики - II
 
20111202 machine learning_nikolenko_lecture04
20111202 machine learning_nikolenko_lecture0420111202 machine learning_nikolenko_lecture04
20111202 machine learning_nikolenko_lecture04
 
Soboland Sat
Soboland SatSoboland Sat
Soboland Sat
 
Get Ft
Get FtGet Ft
Get Ft
 
Численное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод ЭйлераЧисленное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод Эйлера
 
Лекция 7. Алгоритмы
Лекция 7. АлгоритмыЛекция 7. Алгоритмы
Лекция 7. Алгоритмы
 
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
 
20110409 quantum algorithms_vyali_lecture08
20110409 quantum algorithms_vyali_lecture0820110409 quantum algorithms_vyali_lecture08
20110409 quantum algorithms_vyali_lecture08
 
20110409 quantum algorithms_vyali_lecture08
20110409 quantum algorithms_vyali_lecture0820110409 quantum algorithms_vyali_lecture08
20110409 quantum algorithms_vyali_lecture08
 
20111120 circuit complexity_seminar_lecture09_alexeenko
20111120 circuit complexity_seminar_lecture09_alexeenko20111120 circuit complexity_seminar_lecture09_alexeenko
20111120 circuit complexity_seminar_lecture09_alexeenko
 
Линейная алгебра - I
Линейная алгебра - IЛинейная алгебра - I
Линейная алгебра - I
 
20091108 algorithmsfornphardproblems kulikov_lecture07
20091108 algorithmsfornphardproblems kulikov_lecture0720091108 algorithmsfornphardproblems kulikov_lecture07
20091108 algorithmsfornphardproblems kulikov_lecture07
 
Решение систем линейных уравнений: трехдиагональные, симметричные и положител...
Решение систем линейных уравнений: трехдиагональные, симметричные и положител...Решение систем линейных уравнений: трехдиагональные, симметричные и положител...
Решение систем линейных уравнений: трехдиагональные, симметричные и положител...
 
Линейная алгебра - II
Линейная алгебра - IIЛинейная алгебра - II
Линейная алгебра - II
 
Метод конечных разностей
Метод конечных разностейМетод конечных разностей
Метод конечных разностей
 
Итерационные методы решения СЛАУ
Итерационные методы решения СЛАУИтерационные методы решения СЛАУ
Итерационные методы решения СЛАУ
 

Similar a 20130302 np algorithms_kulikov_lecture04-05_sat

20111002 circuit complexity_seminar_lecture03_kulikov
20111002 circuit complexity_seminar_lecture03_kulikov20111002 circuit complexity_seminar_lecture03_kulikov
20111002 circuit complexity_seminar_lecture03_kulikovComputer Science Club
 
20091025 algorithmsfornphardproblems kulikov_lecture04
20091025 algorithmsfornphardproblems kulikov_lecture0420091025 algorithmsfornphardproblems kulikov_lecture04
20091025 algorithmsfornphardproblems kulikov_lecture04Computer Science Club
 
20130301 np algorithms_kulikov_lecture01_np
20130301 np algorithms_kulikov_lecture01_np20130301 np algorithms_kulikov_lecture01_np
20130301 np algorithms_kulikov_lecture01_npComputer Science Club
 
математика на вступительных экзаменах в мгу в 2010г(газета математика)
математика на  вступительных экзаменах в мгу в 2010г(газета математика)математика на  вступительных экзаменах в мгу в 2010г(газета математика)
математика на вступительных экзаменах в мгу в 2010г(газета математика)eekdiary
 
20091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture1020091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture10Computer Science Club
 
20110403 quantum algorithms_vyali_lecture03
20110403 quantum algorithms_vyali_lecture0320110403 quantum algorithms_vyali_lecture03
20110403 quantum algorithms_vyali_lecture03Computer Science Club
 
20071111 efficientalgorithms kulikov_lecture06
20071111 efficientalgorithms kulikov_lecture0620071111 efficientalgorithms kulikov_lecture06
20071111 efficientalgorithms kulikov_lecture06Computer Science Club
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Technosphere1
 
20091025 algorithmsfornphardproblems kulikov_lecture03
20091025 algorithmsfornphardproblems kulikov_lecture0320091025 algorithmsfornphardproblems kulikov_lecture03
20091025 algorithmsfornphardproblems kulikov_lecture03Computer Science Club
 
1555 показательн. и логарифмич. функции в зад. и примерах власова а.п. и др-...
1555  показательн. и логарифмич. функции в зад. и примерах власова а.п. и др-...1555  показательн. и логарифмич. функции в зад. и примерах власова а.п. и др-...
1555 показательн. и логарифмич. функции в зад. и примерах власова а.п. и др-...psvayy
 
методы решения логарифмических уравнений
методы решения логарифмических уравненийметоды решения логарифмических уравнений
методы решения логарифмических уравненийNickEliot
 
20111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture0320111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture03Computer Science Club
 
20080309 efficientalgorithms kulikov_lecture15
20080309 efficientalgorithms kulikov_lecture1520080309 efficientalgorithms kulikov_lecture15
20080309 efficientalgorithms kulikov_lecture15Computer Science Club
 
20080309 efficientalgorithms kulikov_lecture15
20080309 efficientalgorithms kulikov_lecture1520080309 efficientalgorithms kulikov_lecture15
20080309 efficientalgorithms kulikov_lecture15Computer Science Club
 
Metody resheniya logarifmicheskih_uravnenij
Metody resheniya logarifmicheskih_uravnenijMetody resheniya logarifmicheskih_uravnenij
Metody resheniya logarifmicheskih_uravnenijIvanchik5
 
20091101 algorithmsfornphardproblems kulikov_lecture06
20091101 algorithmsfornphardproblems kulikov_lecture0620091101 algorithmsfornphardproblems kulikov_lecture06
20091101 algorithmsfornphardproblems kulikov_lecture06Computer Science Club
 

Similar a 20130302 np algorithms_kulikov_lecture04-05_sat (20)

20111002 circuit complexity_seminar_lecture03_kulikov
20111002 circuit complexity_seminar_lecture03_kulikov20111002 circuit complexity_seminar_lecture03_kulikov
20111002 circuit complexity_seminar_lecture03_kulikov
 
20091025 algorithmsfornphardproblems kulikov_lecture04
20091025 algorithmsfornphardproblems kulikov_lecture0420091025 algorithmsfornphardproblems kulikov_lecture04
20091025 algorithmsfornphardproblems kulikov_lecture04
 
8
88
8
 
20130301 np algorithms_kulikov_lecture01_np
20130301 np algorithms_kulikov_lecture01_np20130301 np algorithms_kulikov_lecture01_np
20130301 np algorithms_kulikov_lecture01_np
 
математика на вступительных экзаменах в мгу в 2010г(газета математика)
математика на  вступительных экзаменах в мгу в 2010г(газета математика)математика на  вступительных экзаменах в мгу в 2010г(газета математика)
математика на вступительных экзаменах в мгу в 2010г(газета математика)
 
20091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture1020091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture10
 
20110403 quantum algorithms_vyali_lecture03
20110403 quantum algorithms_vyali_lecture0320110403 quantum algorithms_vyali_lecture03
20110403 quantum algorithms_vyali_lecture03
 
20071111 efficientalgorithms kulikov_lecture06
20071111 efficientalgorithms kulikov_lecture0620071111 efficientalgorithms kulikov_lecture06
20071111 efficientalgorithms kulikov_lecture06
 
урок4
урок4урок4
урок4
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана"
 
20091025 algorithmsfornphardproblems kulikov_lecture03
20091025 algorithmsfornphardproblems kulikov_lecture0320091025 algorithmsfornphardproblems kulikov_lecture03
20091025 algorithmsfornphardproblems kulikov_lecture03
 
1555 показательн. и логарифмич. функции в зад. и примерах власова а.п. и др-...
1555  показательн. и логарифмич. функции в зад. и примерах власова а.п. и др-...1555  показательн. и логарифмич. функции в зад. и примерах власова а.п. и др-...
1555 показательн. и логарифмич. функции в зад. и примерах власова а.п. и др-...
 
методы решения логарифмических уравнений
методы решения логарифмических уравненийметоды решения логарифмических уравнений
методы решения логарифмических уравнений
 
20111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture0320111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture03
 
20080309 efficientalgorithms kulikov_lecture15
20080309 efficientalgorithms kulikov_lecture1520080309 efficientalgorithms kulikov_lecture15
20080309 efficientalgorithms kulikov_lecture15
 
20080309 efficientalgorithms kulikov_lecture15
20080309 efficientalgorithms kulikov_lecture1520080309 efficientalgorithms kulikov_lecture15
20080309 efficientalgorithms kulikov_lecture15
 
урок 1
урок 1урок 1
урок 1
 
Metody resheniya logarifmicheskih_uravnenij
Metody resheniya logarifmicheskih_uravnenijMetody resheniya logarifmicheskih_uravnenij
Metody resheniya logarifmicheskih_uravnenij
 
20091101 algorithmsfornphardproblems kulikov_lecture06
20091101 algorithmsfornphardproblems kulikov_lecture0620091101 algorithmsfornphardproblems kulikov_lecture06
20091101 algorithmsfornphardproblems kulikov_lecture06
 
Pril2
Pril2Pril2
Pril2
 

Más de Computer Science Club

20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugsComputer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

Más de Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 

20130302 np algorithms_kulikov_lecture04-05_sat

  • 1. Алгоритмы для NP-трудных задач Лекции 4–5: Алгоритмы для задачи выполнимости Александр Куликов Петербургское отделение Математического института им. В. А. Стеклова Российская академия наук Computer Science клуб в Екатеринбурге 2-3 марта 2013 А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 1 / 38
  • 2. 1 Введение 2 Простые подклассы 3 Примеры свед´ний е 4 Расщепление 5 Локальный поиск 6 Точные алгоритмы для MAX-2-SAT 7 Приближённый алгоритм для MAX-2-SAT А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 2 / 38
  • 3. Содержание 1 Введение 2 Простые подклассы 3 Примеры свед´ний е 4 Расщепление 5 Локальный поиск 6 Точные алгоритмы для MAX-2-SAT 7 Приближённый алгоритм для MAX-2-SAT А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 3 / 38
  • 4. Формулировка задачи Проверить, выполнима ли формула вида (x ∨ y ∨ z)(x ∨ ¬y )(y ∨ ¬z)(z ∨ ¬x)(¬x ∨ ¬y ∨ ¬z) . А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 4 / 38
  • 5. Формулировка задачи Проверить, выполнима ли формула вида (x ∨ y ∨ z)(x ∨ ¬y )(y ∨ ¬z)(z ∨ ¬x)(¬x ∨ ¬y ∨ ¬z) . Задача максимальной выполнимости: выполнить как можно больше клозов. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 4 / 38
  • 6. Важность http://www.satisfiability.org/ — The International Conferences on Theory and Applications of Satisfiability Testing. http://www.satcompetition.org/ — The international SAT Competitions web page. http://www.isa.ewi.tudelft.nl/Jsat/ — Journal on Satisfiability, Boolean Modeling and Computation. http://www.satlib.org/ — The Satisfiability Library. http://www.satlive.org/ — Up-to-date links for the Satisfiability Problem. http://www.qbflib.org/ — The Quantified Boolean Formulas Satisfiability Library. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 5 / 38
  • 7. Содержание 1 Введение 2 Простые подклассы 3 Примеры свед´ний е 4 Расщепление 5 Локальный поиск 6 Точные алгоритмы для MAX-2-SAT 7 Приближённый алгоритм для MAX-2-SAT А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 6 / 38
  • 8. Простые подклассы Задача выполнимости NP-полна. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 7 / 38
  • 9. Простые подклассы Задача выполнимости NP-полна. В частности, многие NP-трудные задачи очень просто и естественно формулируются в терминах выполнимости. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 7 / 38
  • 10. Простые подклассы Задача выполнимости NP-полна. В частности, многие NP-трудные задачи очень просто и естественно формулируются в терминах выполнимости. Это, однако, не исключает того, что бывают простые формулы. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 7 / 38
  • 11. 2-SAT В задаче 2-выполнимости каждый клоз входной формулы содержит не более двух литералов. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 8 / 38
  • 12. 2-SAT В задаче 2-выполнимости каждый клоз входной формулы содержит не более двух литералов. Идея: клоз (x ∨ y ) говорит нам, что нельзя одновременно присваивать значение 0 литералам x и y . Ровно о том же самом нас просят импликации (¯ ⇒ y ) и (¯ ⇒ x). x y А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 8 / 38
  • 13. 2-SAT В задаче 2-выполнимости каждый клоз входной формулы содержит не более двух литералов. Идея: клоз (x ∨ y ) говорит нам, что нельзя одновременно присваивать значение 0 литералам x и y . Ровно о том же самом нас просят импликации (¯ ⇒ y ) и (¯ ⇒ x). x y Заведём граф на вершинах {x1 , x2 , . . . , x1 , x2 , . . . }. Если в ¯ ¯ исходной формуле есть клоз (xi ∨ xj ), проведём рёбра xi → xj ¯ и xj → xi . ¯ А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 8 / 38
  • 14. 2-SAT В задаче 2-выполнимости каждый клоз входной формулы содержит не более двух литералов. Идея: клоз (x ∨ y ) говорит нам, что нельзя одновременно присваивать значение 0 литералам x и y . Ровно о том же самом нас просят импликации (¯ ⇒ y ) и (¯ ⇒ x). x y Заведём граф на вершинах {x1 , x2 , . . . , x1 , x2 , . . . }. Если в ¯ ¯ исходной формуле есть клоз (xi ∨ xj ), проведём рёбра xi → xj ¯ и xj → xi . ¯ В полученном графе найдём компоненты сильной связности. Если хотя бы в одной из них содержатся xi и xi , то формула ¯ невыполнима. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 8 / 38
  • 15. 2-SAT В задаче 2-выполнимости каждый клоз входной формулы содержит не более двух литералов. Идея: клоз (x ∨ y ) говорит нам, что нельзя одновременно присваивать значение 0 литералам x и y . Ровно о том же самом нас просят импликации (¯ ⇒ y ) и (¯ ⇒ x). x y Заведём граф на вершинах {x1 , x2 , . . . , x1 , x2 , . . . }. Если в ¯ ¯ исходной формуле есть клоз (xi ∨ xj ), проведём рёбра xi → xj ¯ и xj → xi . ¯ В полученном графе найдём компоненты сильной связности. Если хотя бы в одной из них содержатся xi и xi , то формула ¯ невыполнима. В противном случае линеаризуем компоненты и выполним формулу. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 8 / 38
  • 16. Horn SAT Формулы Хорна: в каждом клозе не более одного положительного литерала. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 9 / 38
  • 17. Horn SAT Формулы Хорна: в каждом клозе не более одного положительного литерала. Идея: присвоим всем переменным значение 0; если формула при этом не выполнилась, значит, есть клоз вида (xi ). А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 9 / 38
  • 18. Horn SAT Формулы Хорна: в каждом клозе не более одного положительного литерала. Идея: присвоим всем переменным значение 0; если формула при этом не выполнилась, значит, есть клоз вида (xi ). Присвоим тогда xi = 1 и опять, посмотрим не выполнилась ли формула. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 9 / 38
  • 19. Horn SAT Формулы Хорна: в каждом клозе не более одного положительного литерала. Идея: присвоим всем переменным значение 0; если формула при этом не выполнилась, значит, есть клоз вида (xi ). Присвоим тогда xi = 1 и опять, посмотрим не выполнилась ли формула. Это работает по простой причине: если уж мы присвоили значение 1 какой-то переменной, значит, мы обязаны были это сделать. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 9 / 38
  • 20. Содержание 1 Введение 2 Простые подклассы 3 Примеры свед´ний е 4 Расщепление 5 Локальный поиск 6 Точные алгоритмы для MAX-2-SAT 7 Приближённый алгоритм для MAX-2-SAT А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 10 / 38
  • 21. Гамильтонов цикл В задаче о гамильтоновом цикле нужно проверить, есть ли в данном графе цикл, проходящий по каждой вершине ровно один раз. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 11 / 38
  • 22. Гамильтонов цикл В задаче о гамильтоновом цикле нужно проверить, есть ли в данном графе цикл, проходящий по каждой вершине ровно один раз. Заведём n2 переменных: xij = true, если вершина i имеет номер j в гамильтоновом цикле. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 11 / 38
  • 23. Гамильтонов цикл В задаче о гамильтоновом цикле нужно проверить, есть ли в данном графе цикл, проходящий по каждой вершине ровно один раз. Заведём n2 переменных: xij = true, если вершина i имеет номер j в гамильтоновом цикле. Клозы: А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 11 / 38
  • 24. Гамильтонов цикл В задаче о гамильтоновом цикле нужно проверить, есть ли в данном графе цикл, проходящий по каждой вершине ровно один раз. Заведём n2 переменных: xij = true, если вершина i имеет номер j в гамильтоновом цикле. Клозы: В строке i стоит ровно одна единица: (xi1 ∨ xi2 ∨ · · · ∨ xin ) (хотя бы одна единица) {(¯ij ∨ xik )}j,k (не более одной) x ¯ А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 11 / 38
  • 25. Гамильтонов цикл В задаче о гамильтоновом цикле нужно проверить, есть ли в данном графе цикл, проходящий по каждой вершине ровно один раз. Заведём n2 переменных: xij = true, если вершина i имеет номер j в гамильтоновом цикле. Клозы: В строке i стоит ровно одна единица: (xi1 ∨ xi2 ∨ · · · ∨ xin ) (хотя бы одна единица) {(¯ij ∨ xik )}j,k (не более одной) x ¯ Аналогично про столбцы. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 11 / 38
  • 26. Гамильтонов цикл В задаче о гамильтоновом цикле нужно проверить, есть ли в данном графе цикл, проходящий по каждой вершине ровно один раз. Заведём n2 переменных: xij = true, если вершина i имеет номер j в гамильтоновом цикле. Клозы: В строке i стоит ровно одна единица: (xi1 ∨ xi2 ∨ · · · ∨ xin ) (хотя бы одна единица) {(¯ij ∨ xik )}j,k (не более одной) x ¯ Аналогично про столбцы. Каждые две последовательные вершины цикла соединены ребром: если (i, j) ̸∈ E , то они не могут быть последовательными: (¯ik ∨ xj(k+1) ) x ¯ А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 11 / 38
  • 27. Максимальный разрез В задаче о максимальном разрезе нужно разделить вершины на две части так, чтобы как можно больше рёбер соединяли эти две части. Сводить будем к задаче максимальной выполнимости. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38
  • 28. Максимальный разрез В задаче о максимальном разрезе нужно разделить вершины на две части так, чтобы как можно больше рёбер соединяли эти две части. Сводить будем к задаче максимальной выполнимости. Для каждого ребра (i, j) ∈ E запишем пару клозов: (xi ∨ xj )(¯i ∨ xj ) x ¯ А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38
  • 29. Максимальный разрез В задаче о максимальном разрезе нужно разделить вершины на две части так, чтобы как можно больше рёбер соединяли эти две части. Сводить будем к задаче максимальной выполнимости. Для каждого ребра (i, j) ∈ E запишем пару клозов: (xi ∨ xj )(¯i ∨ xj ) x ¯ В полученной формуле будет 2|E | клозов. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38
  • 30. Максимальный разрез В задаче о максимальном разрезе нужно разделить вершины на две части так, чтобы как можно больше рёбер соединяли эти две части. Сводить будем к задаче максимальной выполнимости. Для каждого ребра (i, j) ∈ E запишем пару клозов: (xi ∨ xj )(¯i ∨ xj ) x ¯ В полученной формуле будет 2|E | клозов. Набору переменных естественным образом соответствует разрез в графе: в одну часть попадают вершины, которым присвоено значение true, в другую — все остальные. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38
  • 31. Максимальный разрез В задаче о максимальном разрезе нужно разделить вершины на две части так, чтобы как можно больше рёбер соединяли эти две части. Сводить будем к задаче максимальной выполнимости. Для каждого ребра (i, j) ∈ E запишем пару клозов: (xi ∨ xj )(¯i ∨ xj ) x ¯ В полученной формуле будет 2|E | клозов. Набору переменных естественным образом соответствует разрез в графе: в одну часть попадают вершины, которым присвоено значение true, в другую — все остальные. Если переменные в разных частях, то из двух клозов выполнены оба. Если в одной — то ровно один. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38
  • 32. Вершинное покрытие В задаче о вершинном покрытии нужно отметить в графе поменьше вершин так, чтобы у каждого ребра хотя бы один из концов был помечен. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38
  • 33. Вершинное покрытие В задаче о вершинном покрытии нужно отметить в графе поменьше вершин так, чтобы у каждого ребра хотя бы один из концов был помечен. Сведение чуть более хитрое, потому что теперь нужно, чтобы множество вершин было покрытием. Сводить будем опять к задаче максимальной выполнимости. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38
  • 34. Вершинное покрытие В задаче о вершинном покрытии нужно отметить в графе поменьше вершин так, чтобы у каждого ребра хотя бы один из концов был помечен. Сведение чуть более хитрое, потому что теперь нужно, чтобы множество вершин было покрытием. Сводить будем опять к задаче максимальной выполнимости. Для каждой вершины i запишем клоз (¯i ). x А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38
  • 35. Вершинное покрытие В задаче о вершинном покрытии нужно отметить в графе поменьше вершин так, чтобы у каждого ребра хотя бы один из концов был помечен. Сведение чуть более хитрое, потому что теперь нужно, чтобы множество вершин было покрытием. Сводить будем опять к задаче максимальной выполнимости. Для каждой вершины i запишем клоз (¯i ). x Для каждого ребра (i, j) ∈ E запишем клоз (xi ∨ xj ). А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38
  • 36. Вершинное покрытие В задаче о вершинном покрытии нужно отметить в графе поменьше вершин так, чтобы у каждого ребра хотя бы один из концов был помечен. Сведение чуть более хитрое, потому что теперь нужно, чтобы множество вершин было покрытием. Сводить будем опять к задаче максимальной выполнимости. Для каждой вершины i запишем клоз (¯i ). x Для каждого ребра (i, j) ∈ E запишем клоз (xi ∨ xj ). Ключевая идея: есть оптимальный набор значений, в котором все 2-клозы выполнены: если какой-то 2-клоз (xi ∨ xj ) не выполнен, изменим значение переменной xi ; при этом количество выполненных клозов не уменьшится. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38
  • 37. Содержание 1 Введение 2 Простые подклассы 3 Примеры свед´ний е 4 Расщепление 5 Локальный поиск 6 Точные алгоритмы для MAX-2-SAT 7 Приближённый алгоритм для MAX-2-SAT А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 14 / 38
  • 38. (w ∨ x ∨ y ∨ z), (w ∨ x), (x ∨ y ), (y ∨ z), (z ∨ w ), (w ∨ z) w = 0 w = 1 (x ∨ y ∨ z), (x), (x ∨ y ), (y ∨ z) (x ∨ y ), (y ∨ z), (z), (z) x = 0 x = 1 z = 0 z = 1 (y ∨ z), (y ), (y ∨ z) (), (y ∨ z) (x ∨ y ), () (x ∨ y ), (y ), () y =0 y =1 (z), (z) () z =0 z =1 () () А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 15 / 38
  • 39. Правила упрощения Единичный клоз Если формула содержит единичный клоз (unit clause), то входящему в него литералу можно присвоить значение 1: F = (x ∨ y ∨ ¬z) ∧ (¬x) ∧ (z ∨ ¬y ) ∧ (¬y ∨ ¬x ∨ ¬z) F [x = 0] = (y ∨ ¬z) ∧ (z ∨ ¬y ) А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 16 / 38
  • 40. Правила упрощения Единичный клоз Если формула содержит единичный клоз (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
  • 41. Правила упрощения (продолжение) Резолюция Если 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) А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 17 / 38
  • 42. Правила упрощения (продолжение) Резолюция Если 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
  • 43. Алгоритм Алгоритм DPLL-SAT(F ) применять правила упрощения единичный клоз, чистый литерал и резолюция до тех пор, пока хотя бы одно из них применимо если F не содержит ни одного клоза, выдать “выполнима” если F содержит пустой клоз, выдать “невыполнима” если F содержит литерал, входящий в нее хотя бы два раза положительно и хотя бы два раза отрицательно, положить x равным этому литералу; в противном случае взять в качестве x любой литерал вернуть (DPLL-SAT(F [x = 1]) or DPLL-SAT(F [x = 0])) А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 18 / 38
  • 44. Анализ Лемма Время работы алгоритма DPLL-SAT есть O * (1.415K ), где K — кол-во клозов входной формулы. Доказательство достаточно показать, что в каждой ветке удаляется хотя бы два клоза: T (K ) ≤ T (K − 2) + T (K − 2) + poly(K ) А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 19 / 38
  • 45. Анализ Лемма Время работы алгоритма DPLL-SAT есть O * (1.415K ), где K — кол-во клозов входной формулы. Доказательство достаточно показать, что в каждой ветке удаляется хотя бы два клоза: T (K ) ≤ T (K − 2) + T (K − 2) + poly(K ) это ясно, если нашёлся литерал, который входит в формулу хотя бы дважды и положительно и отрицательно А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 19 / 38
  • 46. Анализ Лемма Время работы алгоритма 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
  • 47. Доказательство (продолжение) ясно, что упрощённая формула не содержит (0, k)- и (k, 0)-литералов (это как раз чистые литералы), а также (1, 1)-литералов (они удаляются резольвированием) А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 20 / 38
  • 48. Доказательство (продолжение) ясно, что упрощённая формула не содержит (0, k)- и (k, 0)-литералов (это как раз чистые литералы), а также (1, 1)-литералов (они удаляются резольвированием) значит, осталось рассмотреть случай, когда формула состоит только из (1, 2)- и (2, 1)-литералов А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 20 / 38
  • 49. Доказательство (продолжение) рассмотрим произвольный литерал x: F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . . А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 21 / 38
  • 50. Доказательство (продолжение) рассмотрим произвольный литерал x: F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . . поскольку F не содержит единичных клозов, в клозе (¬x ∨ . . . ) есть еще хотя бы один литерал; назовем его y А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 21 / 38
  • 51. Доказательство (продолжение) рассмотрим произвольный литерал x: F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . . поскольку F не содержит единичных клозов, в клозе (¬x ∨ . . . ) есть еще хотя бы один литерал; назовем его y в F [x = 0] y будет (2, 0)-, (0, 2)- или (1, 1)-литералом А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 21 / 38
  • 52. Доказательство (продолжение) рассмотрим произвольный литерал x: F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . . поскольку F не содержит единичных клозов, в клозе (¬x ∨ . . . ) есть еще хотя бы один литерал; назовем его y в F [x = 0] y будет (2, 0)-, (0, 2)- или (1, 1)-литералом в любом из этих случаев y будет удален правилами упрощения, что повлечет за собой удаление хотя бы одного клоза А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 21 / 38
  • 53. Доказательство (продолжение) рассмотрим произвольный литерал 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
  • 54. Содержание 1 Введение 2 Простые подклассы 3 Примеры свед´ний е 4 Расщепление 5 Локальный поиск 6 Точные алгоритмы для MAX-2-SAT 7 Приближённый алгоритм для MAX-2-SAT А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 22 / 38
  • 55. Расстояние Хэмминга для наборов Набор истинностных значений переменным формулы — это последовательность битов длины n, где n — количество переменных формулы. Всего, таким образом, есть 2n различных наборов. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 23 / 38
  • 56. Расстояние Хэмминга для наборов Набор истинностных значений переменным формулы — это последовательность битов длины n, где n — количество переменных формулы. Всего, таким образом, есть 2n различных наборов. Хэммингово расстояние двух наборов — количество переменных, которым эти наборы присваивают разные значения. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 23 / 38
  • 57. Расстояние Хэмминга для наборов Набор истинностных значений переменным формулы — это последовательность битов длины n, где n — количество переменных формулы. Всего, таким образом, есть 2n различных наборов. Хэммингово расстояние двух наборов — количество переменных, которым эти наборы присваивают разные значения. Для набора t ∈ {0, 1}n и числа d под Хэмминговым шаром ℋ(t, d) (с центром в t и радиуса d) будем понимать множество всех наборов, находящихся на расстоянии не более чем d от t. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 23 / 38
  • 58. Поиск в шаре Для формулы F в 3-КНФ поиск выполняющего набора в шаре ℋ(t, d) может быть осуществлён за время 3d : если t не выполняет F , возьмём произвольный невыполненный клоз C = (x1 ∨ x2 ∨ x3 ); А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 24 / 38
  • 59. Поиск в шаре Для формулы F в 3-КНФ поиск выполняющего набора в шаре ℋ(t, d) может быть осуществлён за время 3d : если t не выполняет F , возьмём произвольный невыполненный клоз C = (x1 ∨ x2 ∨ x3 ); рассмотрим три набора, полученных из t изменением значений переменных x1 , x2 и x3 ; А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 24 / 38
  • 60. Поиск в шаре Для формулы F в 3-КНФ поиск выполняющего набора в шаре ℋ(t, d) может быть осуществлён за время 3d : если t не выполняет F , возьмём произвольный невыполненный клоз C = (x1 ∨ x2 ∨ x3 ); рассмотрим три набора, полученных из t изменением значений переменных x1 , x2 и x3 ; хотя бы один из них будет ближе к выполняющему набору. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 24 / 38
  • 61. Поиск в шаре Для формулы F в 3-КНФ поиск выполняющего набора в шаре ℋ(t, d) может быть осуществлён за время 3d : если t не выполняет F , возьмём произвольный невыполненный клоз C = (x1 ∨ x2 ∨ x3 ); рассмотрим три набора, полученных из t изменением значений переменных x1 , x2 и x3 ; хотя бы один из них будет ближе к выполняющему набору. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 24 / 38
  • 62. Поиск в шаре Для формулы 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
  • 63. Содержание 1 Введение 2 Простые подклассы 3 Примеры свед´ний е 4 Расщепление 5 Локальный поиск 6 Точные алгоритмы для MAX-2-SAT 7 Приближённый алгоритм для MAX-2-SAT А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 25 / 38
  • 64. Задача о максимальном разрезе Мы рассмотрим точный алгоритм в применении к частному случаю задачи MAX-2-SAT — задаче о максимальном разрезе (в которой требуется разбить множество вершин графа на две части так, чтобы между ними было как можно больше рёбер). А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 26 / 38
  • 65. Поиск треугольников в графе Алгоритм будет основан на быстрой проверке наличия треугольника (3-клики) в графе: А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 27 / 38
  • 66. Поиск треугольников в графе Алгоритм будет основан на быстрой проверке наличия треугольника (3-клики) в графе: возведём матрицу смежности в куб и посмотрим, есть ли на диагонали ненулевое число. Время работы: O(nw ), где w ≈ 2.37 — экспонента умножения матриц. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 27 / 38
  • 67. Основные идеи алгоритма Дан граф G на n вершинах. Построим трёхдольный граф H на 3 · 2n/3 вершинах со следующим свойством: исходный граф G имеет разрез веса w тогда и только тогда, когда H содержит 3-клику веса w . Используем быстрое умножение матриц для поиска 3-клики. Время работы: 2 𝜔n/3 ≈ 1.732n . А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 28 / 38
  • 68. Вспомогательный граф H G А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
  • 69. Вспомогательный граф это три части вершин исходного графа G H G А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
  • 70. Вспомогательный граф это три доли вершин вспомогательного огромного графа H H G А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
  • 71. Вспомогательный граф для каждого Xi ⊆ Vi создаём вершину в соответствующей доле H V1 ∖ X1 X1 X1 H G V2 ∖ X2 V3 ∖ X3 X2 X3 X2 X3 А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
  • 72. Вспомогательный граф чему равен вес разреза X1 ∪ X2 ∪ X3 в G ? V1 ∖ X1 X1 X1 H G V2 ∖ X2 V3 ∖ X3 X2 X3 X2 X3 А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
  • 73. Вспомогательный граф чему равен вес разреза X1 ∪ X2 ∪ X3 в G ? V1 ∖ X1 X1 X1 H G V2 ∖ X2 V3 ∖ X3 X2 X3 X2 X3 А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
  • 74. Вспомогательный граф V1 ∖ X1 X1 X1 H G V2 ∖ X2 V3 ∖ X3 X2 X3 X2 X3 А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
  • 75. Вспомогательный граф V1 ∖ X1 X1 X1 H G V2 ∖ X2 V3 ∖ X3 X2 X3 X2 X3 А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
  • 76. Вспомогательный граф V1 ∖ X1 X1 X1 H G V2 ∖ X2 V3 ∖ X3 X2 X3 X2 X3 А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
  • 77. Вспомогательный граф V1 ∖ X1 X1 X1 H G V2 ∖ X2 V3 ∖ X3 X2 X3 X2 X3 итак, вес треугольника (H1 , H2 , H3 ) в H равен весу разреза X1 ∪ X2 ∪ X3 в G А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
  • 78. Содержание 1 Введение 2 Простые подклассы 3 Примеры свед´ний е 4 Расщепление 5 Локальный поиск 6 Точные алгоритмы для MAX-2-SAT 7 Приближённый алгоритм для MAX-2-SAT А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 30 / 38
  • 79. Положительно полуопределённые матрицы Определение Симметрическая матрица называется положительно полуопределённой, если все её собственные числа неотрицательны. Обозначение: A ⪰ 0. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 31 / 38
  • 80. Положительно полуопределённые матрицы Определение Симметрическая матрица называется положительно полуопределённой, если все её собственные числа неотрицательны. Обозначение: A ⪰ 0. Лемма Симметрическая матрица A ∈ Rn×n является положительно полуопределённой тогда и только тогда, когда A представима в виде U T U для некоторой матрицы U ∈ Rn×n . Другими словами, найдутся вектора u1 , . . . , un ∈ Rn (столбцы U), такие что Aij = uiT uj . А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 31 / 38
  • 81. Задача полуопределённого программирования Задача полуопределённого программирования (ПП) похожа на задачу линейного программирования (ЛП). Для задачи ЛП существует полиномиальный алгоритм. Для задачи ПП существует алгоритм, находящий решение с аддитивной ошибкой 𝜀 за время, полиномиальное от размера входных данных и от log 1𝜀 . ЛП ПП максимизировать c T x ⟨C , X ⟩ при условии aiT 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
  • 82. Формулировка задачи о максимальном разрезе в виде целочисленной ПП Сопоставим каждой вершине vi ∈ V число yi , где {︃ −1, vi — белая вершина, yi = 1, vi — чёрная вершина. Тогда ребро (vi , vj ) принадлежит разрезу тогда и только тогда, когда yi yj = −1. Величина же разреза вычисляется как ∑︁ 1 − yi yj f (M) = wij . i<j 2 А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 33 / 38
  • 83. Релаксация Будем искать оптимум на сфере большей размерности: max g ((v1 , . . . , vn )), v1 ,...,vn ∈S n−1 где ∑︁ 1 − v T vj i g ((v1 , . . . , vn )) = wij , i<j 2 S n−1 — n-мерная единичная сфера. Ясно, что максимальное значение является верхней оценкой на величину максимального разреза. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 34 / 38
  • 84. Возврат к 1 и -1 Рассмотрим решение (vi )i новой задачи. Проведем через начало координат случайным образом гиперплоскость T размерности n − 1, которая разделит пространство на два полупространства A и B. После чего определим yi так: {︃ 1, vi ∈ A, yi = −1, vi ∈ B. Иначе говоря, выберем случайным образом вектор u ∈ S n и построим yi так: {︃ 1, u T vi ≥ 0, yi = −1, u T vi < 0. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 35 / 38
  • 85. 𝜃 Гиперплоскость, проходящая через Вероятность того, что случайно про- начало координат, делит сферу на ведённая через начало координат ги- две части. Мы разбиваем вектора в перплоскость разделит вектора, равна соответствии с тем, в какую половину отношению угла между ними и 𝜋. этносительно этой гиперплоскости эти вектора попали. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 36 / 38
  • 86. ∑︁ 1 − yi yj ∑︁ 𝜃ij wij = wij , i<j 2 i<j 𝜋 ∑︁ 1 − v T vj ∑︁ 1 − cos 𝜃ij i wij = wij . i<j 2 i<j 2 arccos(x)/𝜋 arccos(x)/𝜋 (1−x)/2 (1 − x)/2 0.878 1 1.5 0.5 1 0 0.5 −1 −0.5 0 0.5 1 −1 −0.5 0 0.5 А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 37 / 38
  • 87. Спасибо! Спасибо за внимание! А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 38 / 38