0
Алгоритмы для NP-трудных задач        Лекции 4–5: Алгоритмы для задачи                 выполнимости                       ...
1    Введение2    Простые подклассы3    Примеры свед´ний                 е4    Расщепление5    Локальный поиск6    Точные ...
Содержание1    Введение2    Простые подклассы3    Примеры свед´ний                 е4    Расщепление5    Локальный поиск6 ...
Формулировка задачи    Проверить, выполнима ли формула вида           (x ∨ y ∨ z)(x ∨ ¬y )(y ∨ ¬z)(z ∨ ¬x)(¬x ∨ ¬y ∨ ¬z) ....
Формулировка задачи    Проверить, выполнима ли формула вида           (x ∨ y ∨ z)(x ∨ ¬y )(y ∨ ¬z)(z ∨ ¬x)(¬x ∨ ¬y ∨ ¬z) ....
Важность    http://www.satisfiability.org/ — The International    Conferences on Theory and Applications of Satisfiability...
Содержание1    Введение2    Простые подклассы3    Примеры свед´ний                 е4    Расщепление5    Локальный поиск6 ...
Простые подклассы    Задача выполнимости NP-полна. А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   2-3 марта 2...
Простые подклассы    Задача выполнимости NP-полна.    В частности, многие NP-трудные задачи очень просто и    естественно ...
Простые подклассы    Задача выполнимости NP-полна.    В частности, многие NP-трудные задачи очень просто и    естественно ...
2-SAT    В задаче 2-выполнимости каждый клоз входной формулы    содержит не более двух литералов. А. Куликов (ПОМИ РАН)   ...
2-SAT    В задаче 2-выполнимости каждый клоз входной формулы    содержит не более двух литералов.    Идея: клоз (x ∨ y ) г...
2-SAT    В задаче 2-выполнимости каждый клоз входной формулы    содержит не более двух литералов.    Идея: клоз (x ∨ y ) г...
2-SAT    В задаче 2-выполнимости каждый клоз входной формулы    содержит не более двух литералов.    Идея: клоз (x ∨ y ) г...
2-SAT    В задаче 2-выполнимости каждый клоз входной формулы    содержит не более двух литералов.    Идея: клоз (x ∨ y ) г...
Horn SAT    Формулы Хорна: в каждом клозе не более одного    положительного литерала. А. Куликов (ПОМИ РАН)   Алгоритмы дл...
Horn SAT    Формулы Хорна: в каждом клозе не более одного    положительного литерала.    Идея: присвоим всем переменным зн...
Horn SAT    Формулы Хорна: в каждом клозе не более одного    положительного литерала.    Идея: присвоим всем переменным зн...
Horn SAT    Формулы Хорна: в каждом клозе не более одного    положительного литерала.    Идея: присвоим всем переменным зн...
Содержание1    Введение2    Простые подклассы3    Примеры свед´ний                 е4    Расщепление5    Локальный поиск6 ...
Гамильтонов цикл    В задаче о гамильтоновом цикле нужно проверить, есть ли в    данном графе цикл, проходящий по каждой в...
Гамильтонов цикл    В задаче о гамильтоновом цикле нужно проверить, есть ли в    данном графе цикл, проходящий по каждой в...
Гамильтонов цикл    В задаче о гамильтоновом цикле нужно проверить, есть ли в    данном графе цикл, проходящий по каждой в...
Гамильтонов цикл    В задаче о гамильтоновом цикле нужно проверить, есть ли в    данном графе цикл, проходящий по каждой в...
Гамильтонов цикл    В задаче о гамильтоновом цикле нужно проверить, есть ли в    данном графе цикл, проходящий по каждой в...
Гамильтонов цикл    В задаче о гамильтоновом цикле нужно проверить, есть ли в    данном графе цикл, проходящий по каждой в...
Максимальный разрез    В задаче о максимальном разрезе нужно разделить вершины    на две части так, чтобы как можно больше...
Максимальный разрез    В задаче о максимальном разрезе нужно разделить вершины    на две части так, чтобы как можно больше...
Максимальный разрез    В задаче о максимальном разрезе нужно разделить вершины    на две части так, чтобы как можно больше...
Максимальный разрез    В задаче о максимальном разрезе нужно разделить вершины    на две части так, чтобы как можно больше...
Максимальный разрез    В задаче о максимальном разрезе нужно разделить вершины    на две части так, чтобы как можно больше...
Вершинное покрытие    В задаче о вершинном покрытии нужно отметить в графе    поменьше вершин так, чтобы у каждого ребра х...
Вершинное покрытие    В задаче о вершинном покрытии нужно отметить в графе    поменьше вершин так, чтобы у каждого ребра х...
Вершинное покрытие    В задаче о вершинном покрытии нужно отметить в графе    поменьше вершин так, чтобы у каждого ребра х...
Вершинное покрытие    В задаче о вершинном покрытии нужно отметить в графе    поменьше вершин так, чтобы у каждого ребра х...
Вершинное покрытие    В задаче о вершинном покрытии нужно отметить в графе    поменьше вершин так, чтобы у каждого ребра х...
Содержание1    Введение2    Простые подклассы3    Примеры свед´ний                 е4    Расщепление5    Локальный поиск6 ...
(w ∨ x ∨ y ∨ z), (w ∨ x), (x ∨ y ), (y ∨ z), (z ∨ w ), (w ∨ z)                        w = 0                               ...
Правила упрощенияЕдиничный клозЕсли формула содержит единичный клоз (unit clause), товходящему в него литералу можно присв...
Правила упрощенияЕдиничный клозЕсли формула содержит единичный клоз (unit clause), товходящему в него литералу можно присв...
Правила упрощения (продолжение)РезолюцияЕсли F = F ′ ∧ (x ∨ C ) ∧ (¬x ∨ D) и F ′ не содержит ни x, ни ¬x,заменить F на F ′...
Правила упрощения (продолжение)РезолюцияЕсли F = F ′ ∧ (x ∨ C ) ∧ (¬x ∨ D) и F ′ не содержит ни x, ни ¬x,заменить F на F ′...
АлгоритмАлгоритмDPLL-SAT(F )   применять правила упрощения единичный клоз, чистый   литерал и резолюция до тех пор, пока х...
АнализЛеммаВремя работы алгоритма DPLL-SAT есть O * (1.415K ), где K —кол-во клозов входной формулы.Доказательство    дост...
АнализЛеммаВремя работы алгоритма DPLL-SAT есть O * (1.415K ), где K —кол-во клозов входной формулы.Доказательство    дост...
АнализЛеммаВремя работы алгоритма DPLL-SAT есть O * (1.415K ), где K —кол-во клозов входной формулы.Доказательство    дост...
Доказательство (продолжение)    ясно, что упрощённая формула не содержит (0, k)- и    (k, 0)-литералов (это как раз чистые...
Доказательство (продолжение)    ясно, что упрощённая формула не содержит (0, k)- и    (k, 0)-литералов (это как раз чистые...
Доказательство (продолжение)    рассмотрим произвольный литерал x:                 F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨...
Доказательство (продолжение)    рассмотрим произвольный литерал x:                 F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨...
Доказательство (продолжение)    рассмотрим произвольный литерал x:                 F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨...
Доказательство (продолжение)    рассмотрим произвольный литерал x:                 F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨...
Доказательство (продолжение)    рассмотрим произвольный литерал x:                 F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨...
Содержание1    Введение2    Простые подклассы3    Примеры свед´ний                 е4    Расщепление5    Локальный поиск6 ...
Расстояние Хэмминга для наборов    Набор истинностных значений переменным формулы — это    последовательность битов длины ...
Расстояние Хэмминга для наборов    Набор истинностных значений переменным формулы — это    последовательность битов длины ...
Расстояние Хэмминга для наборов    Набор истинностных значений переменным формулы — это    последовательность битов длины ...
Поиск в шареДля формулы F в 3-КНФ поиск выполняющего набора в шареℋ(t, d) может быть осуществлён за время 3d :    если t н...
Поиск в шареДля формулы F в 3-КНФ поиск выполняющего набора в шареℋ(t, d) может быть осуществлён за время 3d :    если t н...
Поиск в шареДля формулы F в 3-КНФ поиск выполняющего набора в шареℋ(t, d) может быть осуществлён за время 3d :    если t н...
Поиск в шареДля формулы F в 3-КНФ поиск выполняющего набора в шареℋ(t, d) может быть осуществлён за время 3d :    если t н...
Поиск в шареДля формулы F в 3-КНФ поиск выполняющего набора в шареℋ(t, d) может быть осуществлён за время 3d :    если t н...
Содержание1    Введение2    Простые подклассы3    Примеры свед´ний                 е4    Расщепление5    Локальный поиск6 ...
Задача о максимальном разрезеМы рассмотрим точный алгоритм в применении к частномуслучаю задачи MAX-2-SAT — задаче о макси...
Поиск треугольников в графеАлгоритм будет основан на быстрой проверке наличиятреугольника (3-клики) в графе: А. Куликов (П...
Поиск треугольников в графеАлгоритм будет основан на быстрой проверке наличиятреугольника (3-клики) в графе: возведём матр...
Основные идеи алгоритмаДан граф G на n вершинах.    Построим трёхдольный граф H на 3 · 2n/3 вершинах со    следующим свойс...
Вспомогательный граф            H                                           G А. Куликов (ПОМИ РАН)   Алгоритмы для задачи...
Вспомогательный граф       это три части вершин исходного графа G            H                                           G...
Вспомогательный графэто три доли вершин вспомогательного огромного графа H              H                                 ...
Вспомогательный графдля каждого Xi ⊆ Vi создаём вершину в соответствующей доле H                                        V1...
Вспомогательный граф              чему равен вес разреза X1 ∪ X2 ∪ X3 в G ?                                        V1 ∖ X1...
Вспомогательный граф              чему равен вес разреза X1 ∪ X2 ∪ X3 в G ?                                        V1 ∖ X1...
Вспомогательный граф                                        V1 ∖ X1                                           X1          ...
Вспомогательный граф                                        V1 ∖ X1                                           X1          ...
Вспомогательный граф                                        V1 ∖ X1                                           X1          ...
Вспомогательный граф                                        V1 ∖ X1                                           X1          ...
Содержание1    Введение2    Простые подклассы3    Примеры свед´ний                 е4    Расщепление5    Локальный поиск6 ...
Положительно полуопределённые матрицыОпределениеСимметрическая матрица называется положительнополуопределённой, если все е...
Положительно полуопределённые матрицыОпределениеСимметрическая матрица называется положительнополуопределённой, если все е...
Задача полуопределённого программированияЗадача полуопределённого программирования (ПП) похожа назадачу линейного программ...
Формулировка задачи о максимальном разрезев виде целочисленной ППСопоставим каждой вершине vi ∈ V число yi , где          ...
РелаксацияБудем искать оптимум на сфере большей размерности:                              max            g ((v1 , . . . , ...
Возврат к 1 и -1Рассмотрим решение (vi )i новой задачи. Проведем через началокоординат случайным образом гиперплоскость T ...
𝜃Гиперплоскость, проходящая через             Вероятность того, что случайно про-начало координат, делит сферу на         ...
∑︁ 1 − yi yj                ∑︁ 𝜃ij                                     wij =           wij ,                   i<j        ...
Спасибо!      Спасибо за внимание! А. Куликов (ПОМИ РАН)   Алгоритмы для задачи выполнимости   2-3 марта 2013   38 / 38
Upcoming SlideShare
Loading in...5
×

20130302 np algorithms_kulikov_lecture04-05_sat

307

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
307
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "20130302 np algorithms_kulikov_lecture04-05_sat"

  1. 1. Алгоритмы для NP-трудных задач Лекции 4–5: Алгоритмы для задачи выполнимости Александр Куликов Петербургское отделение Математического института им. В. А. Стеклова Российская академия наук Computer Science клуб в Екатеринбурге 2-3 марта 2013А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 1 / 38
  2. 2. 1 Введение2 Простые подклассы3 Примеры свед´ний е4 Расщепление5 Локальный поиск6 Точные алгоритмы для MAX-2-SAT7 Приближённый алгоритм для MAX-2-SAT А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 2 / 38
  3. 3. Содержание1 Введение2 Простые подклассы3 Примеры свед´ний е4 Расщепление5 Локальный поиск6 Точные алгоритмы для MAX-2-SAT7 Приближённый алгоритм для MAX-2-SAT А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 3 / 38
  4. 4. Формулировка задачи Проверить, выполнима ли формула вида (x ∨ y ∨ z)(x ∨ ¬y )(y ∨ ¬z)(z ∨ ¬x)(¬x ∨ ¬y ∨ ¬z) . А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 4 / 38
  5. 5. Формулировка задачи Проверить, выполнима ли формула вида (x ∨ y ∨ z)(x ∨ ¬y )(y ∨ ¬z)(z ∨ ¬x)(¬x ∨ ¬y ∨ ¬z) . Задача максимальной выполнимости: выполнить как можно больше клозов. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 4 / 38
  6. 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. 7. Содержание1 Введение2 Простые подклассы3 Примеры свед´ний е4 Расщепление5 Локальный поиск6 Точные алгоритмы для MAX-2-SAT7 Приближённый алгоритм для MAX-2-SAT А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 6 / 38
  8. 8. Простые подклассы Задача выполнимости NP-полна. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 7 / 38
  9. 9. Простые подклассы Задача выполнимости NP-полна. В частности, многие NP-трудные задачи очень просто и естественно формулируются в терминах выполнимости. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 7 / 38
  10. 10. Простые подклассы Задача выполнимости NP-полна. В частности, многие NP-трудные задачи очень просто и естественно формулируются в терминах выполнимости. Это, однако, не исключает того, что бывают простые формулы. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 7 / 38
  11. 11. 2-SAT В задаче 2-выполнимости каждый клоз входной формулы содержит не более двух литералов. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 8 / 38
  12. 12. 2-SAT В задаче 2-выполнимости каждый клоз входной формулы содержит не более двух литералов. Идея: клоз (x ∨ y ) говорит нам, что нельзя одновременно присваивать значение 0 литералам x и y . Ровно о том же самом нас просят импликации (¯ ⇒ y ) и (¯ ⇒ x). x y А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 8 / 38
  13. 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. 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. 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. 16. Horn SAT Формулы Хорна: в каждом клозе не более одного положительного литерала. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 9 / 38
  17. 17. Horn SAT Формулы Хорна: в каждом клозе не более одного положительного литерала. Идея: присвоим всем переменным значение 0; если формула при этом не выполнилась, значит, есть клоз вида (xi ). А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 9 / 38
  18. 18. Horn SAT Формулы Хорна: в каждом клозе не более одного положительного литерала. Идея: присвоим всем переменным значение 0; если формула при этом не выполнилась, значит, есть клоз вида (xi ). Присвоим тогда xi = 1 и опять, посмотрим не выполнилась ли формула. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 9 / 38
  19. 19. Horn SAT Формулы Хорна: в каждом клозе не более одного положительного литерала. Идея: присвоим всем переменным значение 0; если формула при этом не выполнилась, значит, есть клоз вида (xi ). Присвоим тогда xi = 1 и опять, посмотрим не выполнилась ли формула. Это работает по простой причине: если уж мы присвоили значение 1 какой-то переменной, значит, мы обязаны были это сделать. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 9 / 38
  20. 20. Содержание1 Введение2 Простые подклассы3 Примеры свед´ний е4 Расщепление5 Локальный поиск6 Точные алгоритмы для MAX-2-SAT7 Приближённый алгоритм для MAX-2-SAT А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 10 / 38
  21. 21. Гамильтонов цикл В задаче о гамильтоновом цикле нужно проверить, есть ли в данном графе цикл, проходящий по каждой вершине ровно один раз. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 11 / 38
  22. 22. Гамильтонов цикл В задаче о гамильтоновом цикле нужно проверить, есть ли в данном графе цикл, проходящий по каждой вершине ровно один раз. Заведём n2 переменных: xij = true, если вершина i имеет номер j в гамильтоновом цикле. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 11 / 38
  23. 23. Гамильтонов цикл В задаче о гамильтоновом цикле нужно проверить, есть ли в данном графе цикл, проходящий по каждой вершине ровно один раз. Заведём n2 переменных: xij = true, если вершина i имеет номер j в гамильтоновом цикле. Клозы: А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 11 / 38
  24. 24. Гамильтонов цикл В задаче о гамильтоновом цикле нужно проверить, есть ли в данном графе цикл, проходящий по каждой вершине ровно один раз. Заведём n2 переменных: xij = true, если вершина i имеет номер j в гамильтоновом цикле. Клозы: В строке i стоит ровно одна единица: (xi1 ∨ xi2 ∨ · · · ∨ xin ) (хотя бы одна единица) {(¯ij ∨ xik )}j,k (не более одной) x ¯ А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 11 / 38
  25. 25. Гамильтонов цикл В задаче о гамильтоновом цикле нужно проверить, есть ли в данном графе цикл, проходящий по каждой вершине ровно один раз. Заведём n2 переменных: xij = true, если вершина i имеет номер j в гамильтоновом цикле. Клозы: В строке i стоит ровно одна единица: (xi1 ∨ xi2 ∨ · · · ∨ xin ) (хотя бы одна единица) {(¯ij ∨ xik )}j,k (не более одной) x ¯ Аналогично про столбцы. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 11 / 38
  26. 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. 27. Максимальный разрез В задаче о максимальном разрезе нужно разделить вершины на две части так, чтобы как можно больше рёбер соединяли эти две части. Сводить будем к задаче максимальной выполнимости. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38
  28. 28. Максимальный разрез В задаче о максимальном разрезе нужно разделить вершины на две части так, чтобы как можно больше рёбер соединяли эти две части. Сводить будем к задаче максимальной выполнимости. Для каждого ребра (i, j) ∈ E запишем пару клозов: (xi ∨ xj )(¯i ∨ xj ) x ¯ А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38
  29. 29. Максимальный разрез В задаче о максимальном разрезе нужно разделить вершины на две части так, чтобы как можно больше рёбер соединяли эти две части. Сводить будем к задаче максимальной выполнимости. Для каждого ребра (i, j) ∈ E запишем пару клозов: (xi ∨ xj )(¯i ∨ xj ) x ¯ В полученной формуле будет 2|E | клозов. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38
  30. 30. Максимальный разрез В задаче о максимальном разрезе нужно разделить вершины на две части так, чтобы как можно больше рёбер соединяли эти две части. Сводить будем к задаче максимальной выполнимости. Для каждого ребра (i, j) ∈ E запишем пару клозов: (xi ∨ xj )(¯i ∨ xj ) x ¯ В полученной формуле будет 2|E | клозов. Набору переменных естественным образом соответствует разрез в графе: в одну часть попадают вершины, которым присвоено значение true, в другую — все остальные. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38
  31. 31. Максимальный разрез В задаче о максимальном разрезе нужно разделить вершины на две части так, чтобы как можно больше рёбер соединяли эти две части. Сводить будем к задаче максимальной выполнимости. Для каждого ребра (i, j) ∈ E запишем пару клозов: (xi ∨ xj )(¯i ∨ xj ) x ¯ В полученной формуле будет 2|E | клозов. Набору переменных естественным образом соответствует разрез в графе: в одну часть попадают вершины, которым присвоено значение true, в другую — все остальные. Если переменные в разных частях, то из двух клозов выполнены оба. Если в одной — то ровно один. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 12 / 38
  32. 32. Вершинное покрытие В задаче о вершинном покрытии нужно отметить в графе поменьше вершин так, чтобы у каждого ребра хотя бы один из концов был помечен. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38
  33. 33. Вершинное покрытие В задаче о вершинном покрытии нужно отметить в графе поменьше вершин так, чтобы у каждого ребра хотя бы один из концов был помечен. Сведение чуть более хитрое, потому что теперь нужно, чтобы множество вершин было покрытием. Сводить будем опять к задаче максимальной выполнимости. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38
  34. 34. Вершинное покрытие В задаче о вершинном покрытии нужно отметить в графе поменьше вершин так, чтобы у каждого ребра хотя бы один из концов был помечен. Сведение чуть более хитрое, потому что теперь нужно, чтобы множество вершин было покрытием. Сводить будем опять к задаче максимальной выполнимости. Для каждой вершины i запишем клоз (¯i ). x А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38
  35. 35. Вершинное покрытие В задаче о вершинном покрытии нужно отметить в графе поменьше вершин так, чтобы у каждого ребра хотя бы один из концов был помечен. Сведение чуть более хитрое, потому что теперь нужно, чтобы множество вершин было покрытием. Сводить будем опять к задаче максимальной выполнимости. Для каждой вершины i запишем клоз (¯i ). x Для каждого ребра (i, j) ∈ E запишем клоз (xi ∨ xj ). А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38
  36. 36. Вершинное покрытие В задаче о вершинном покрытии нужно отметить в графе поменьше вершин так, чтобы у каждого ребра хотя бы один из концов был помечен. Сведение чуть более хитрое, потому что теперь нужно, чтобы множество вершин было покрытием. Сводить будем опять к задаче максимальной выполнимости. Для каждой вершины i запишем клоз (¯i ). x Для каждого ребра (i, j) ∈ E запишем клоз (xi ∨ xj ). Ключевая идея: есть оптимальный набор значений, в котором все 2-клозы выполнены: если какой-то 2-клоз (xi ∨ xj ) не выполнен, изменим значение переменной xi ; при этом количество выполненных клозов не уменьшится. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 13 / 38
  37. 37. Содержание1 Введение2 Простые подклассы3 Примеры свед´ний е4 Расщепление5 Локальный поиск6 Точные алгоритмы для MAX-2-SAT7 Приближённый алгоритм для MAX-2-SAT А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 14 / 38
  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. 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. 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. 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. 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. 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. 44. АнализЛеммаВремя работы алгоритма DPLL-SAT есть O * (1.415K ), где K —кол-во клозов входной формулы.Доказательство достаточно показать, что в каждой ветке удаляется хотя бы два клоза: T (K ) ≤ T (K − 2) + T (K − 2) + poly(K ) А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 19 / 38
  45. 45. АнализЛеммаВремя работы алгоритма DPLL-SAT есть O * (1.415K ), где K —кол-во клозов входной формулы.Доказательство достаточно показать, что в каждой ветке удаляется хотя бы два клоза: T (K ) ≤ T (K − 2) + T (K − 2) + poly(K ) это ясно, если нашёлся литерал, который входит в формулу хотя бы дважды и положительно и отрицательно А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 19 / 38
  46. 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. 47. Доказательство (продолжение) ясно, что упрощённая формула не содержит (0, k)- и (k, 0)-литералов (это как раз чистые литералы), а также (1, 1)-литералов (они удаляются резольвированием) А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 20 / 38
  48. 48. Доказательство (продолжение) ясно, что упрощённая формула не содержит (0, k)- и (k, 0)-литералов (это как раз чистые литералы), а также (1, 1)-литералов (они удаляются резольвированием) значит, осталось рассмотреть случай, когда формула состоит только из (1, 2)- и (2, 1)-литералов А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 20 / 38
  49. 49. Доказательство (продолжение) рассмотрим произвольный литерал x: F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . . А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 21 / 38
  50. 50. Доказательство (продолжение) рассмотрим произвольный литерал x: F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . . поскольку F не содержит единичных клозов, в клозе (¬x ∨ . . . ) есть еще хотя бы один литерал; назовем его y А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 21 / 38
  51. 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. 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. 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. 54. Содержание1 Введение2 Простые подклассы3 Примеры свед´ний е4 Расщепление5 Локальный поиск6 Точные алгоритмы для MAX-2-SAT7 Приближённый алгоритм для MAX-2-SAT А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 22 / 38
  55. 55. Расстояние Хэмминга для наборов Набор истинностных значений переменным формулы — это последовательность битов длины n, где n — количество переменных формулы. Всего, таким образом, есть 2n различных наборов. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 23 / 38
  56. 56. Расстояние Хэмминга для наборов Набор истинностных значений переменным формулы — это последовательность битов длины n, где n — количество переменных формулы. Всего, таким образом, есть 2n различных наборов. Хэммингово расстояние двух наборов — количество переменных, которым эти наборы присваивают разные значения. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 23 / 38
  57. 57. Расстояние Хэмминга для наборов Набор истинностных значений переменным формулы — это последовательность битов длины n, где n — количество переменных формулы. Всего, таким образом, есть 2n различных наборов. Хэммингово расстояние двух наборов — количество переменных, которым эти наборы присваивают разные значения. Для набора t ∈ {0, 1}n и числа d под Хэмминговым шаром ℋ(t, d) (с центром в t и радиуса d) будем понимать множество всех наборов, находящихся на расстоянии не более чем d от t. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 23 / 38
  58. 58. Поиск в шареДля формулы F в 3-КНФ поиск выполняющего набора в шареℋ(t, d) может быть осуществлён за время 3d : если t не выполняет F , возьмём произвольный невыполненный клоз C = (x1 ∨ x2 ∨ x3 ); А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 24 / 38
  59. 59. Поиск в шареДля формулы F в 3-КНФ поиск выполняющего набора в шареℋ(t, d) может быть осуществлён за время 3d : если t не выполняет F , возьмём произвольный невыполненный клоз C = (x1 ∨ x2 ∨ x3 ); рассмотрим три набора, полученных из t изменением значений переменных x1 , x2 и x3 ; А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 24 / 38
  60. 60. Поиск в шареДля формулы F в 3-КНФ поиск выполняющего набора в шареℋ(t, d) может быть осуществлён за время 3d : если t не выполняет F , возьмём произвольный невыполненный клоз C = (x1 ∨ x2 ∨ x3 ); рассмотрим три набора, полученных из t изменением значений переменных x1 , x2 и x3 ; хотя бы один из них будет ближе к выполняющему набору. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 24 / 38
  61. 61. Поиск в шареДля формулы F в 3-КНФ поиск выполняющего набора в шареℋ(t, d) может быть осуществлён за время 3d : если t не выполняет F , возьмём произвольный невыполненный клоз C = (x1 ∨ x2 ∨ x3 ); рассмотрим три набора, полученных из t изменением значений переменных x1 , x2 и x3 ; хотя бы один из них будет ближе к выполняющему набору. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 24 / 38
  62. 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. 63. Содержание1 Введение2 Простые подклассы3 Примеры свед´ний е4 Расщепление5 Локальный поиск6 Точные алгоритмы для MAX-2-SAT7 Приближённый алгоритм для MAX-2-SAT А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 25 / 38
  64. 64. Задача о максимальном разрезеМы рассмотрим точный алгоритм в применении к частномуслучаю задачи MAX-2-SAT — задаче о максимальном разрезе (вкоторой требуется разбить множество вершин графа на двечасти так, чтобы между ними было как можно больше рёбер). А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 26 / 38
  65. 65. Поиск треугольников в графеАлгоритм будет основан на быстрой проверке наличиятреугольника (3-клики) в графе: А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 27 / 38
  66. 66. Поиск треугольников в графеАлгоритм будет основан на быстрой проверке наличиятреугольника (3-клики) в графе: возведём матрицу смежности вкуб и посмотрим, есть ли на диагонали ненулевое число. Времяработы: O(nw ), где w ≈ 2.37 — экспонента умножения матриц. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 27 / 38
  67. 67. Основные идеи алгоритмаДан граф G на n вершинах. Построим трёхдольный граф H на 3 · 2n/3 вершинах со следующим свойством: исходный граф G имеет разрез веса w тогда и только тогда, когда H содержит 3-клику веса w . Используем быстрое умножение матриц для поиска 3-клики. Время работы: 2 𝜔n/3 ≈ 1.732n . А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 28 / 38
  68. 68. Вспомогательный граф H G А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
  69. 69. Вспомогательный граф это три части вершин исходного графа G H G А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
  70. 70. Вспомогательный графэто три доли вершин вспомогательного огромного графа H H G А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
  71. 71. Вспомогательный графдля каждого Xi ⊆ Vi создаём вершину в соответствующей доле H V1 ∖ X1 X1 X1 H G V2 ∖ X2 V3 ∖ X3 X2 X3 X2 X3 А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
  72. 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. 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. 74. Вспомогательный граф V1 ∖ X1 X1 X1 H G V2 ∖ X2 V3 ∖ X3 X2 X3 X2 X3 А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
  75. 75. Вспомогательный граф V1 ∖ X1 X1 X1 H G V2 ∖ X2 V3 ∖ X3 X2 X3 X2 X3 А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
  76. 76. Вспомогательный граф V1 ∖ X1 X1 X1 H G V2 ∖ X2 V3 ∖ X3 X2 X3 X2 X3 А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 29 / 38
  77. 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. 78. Содержание1 Введение2 Простые подклассы3 Примеры свед´ний е4 Расщепление5 Локальный поиск6 Точные алгоритмы для MAX-2-SAT7 Приближённый алгоритм для MAX-2-SAT А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 30 / 38
  79. 79. Положительно полуопределённые матрицыОпределениеСимметрическая матрица называется положительнополуопределённой, если все её собственные числанеотрицательны. Обозначение: A ⪰ 0. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 31 / 38
  80. 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. 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. 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. 83. РелаксацияБудем искать оптимум на сфере большей размерности: max g ((v1 , . . . , vn )), v1 ,...,vn ∈S n−1где ∑︁ 1 − v T vj i g ((v1 , . . . , vn )) = wij , i<j 2S n−1 — n-мерная единичная сфера. Ясно, что максимальноезначение является верхней оценкой на величину максимальногоразреза. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 34 / 38
  84. 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. 85. 𝜃Гиперплоскость, проходящая через Вероятность того, что случайно про-начало координат, делит сферу на ведённая через начало координат ги-две части. Мы разбиваем вектора в перплоскость разделит вектора, равнасоответствии с тем, в какую половину отношению угла между ними и 𝜋.этносительно этой гиперплоскостиэти вектора попали. А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 36 / 38
  86. 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. 87. Спасибо! Спасибо за внимание! А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 38 / 38
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×