Your SlideShare is downloading. ×
0
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

20130302 np algorithms_kulikov_lecture04-05_sat

240

Published on

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

  • Be the first to like this

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Алгоритмы для NP-трудных задач Лекции 4–5: Алгоритмы для задачи выполнимости Александр Куликов Петербургское отделение Математического института им. В. А. Стеклова Российская академия наук Computer Science клуб в Екатеринбурге 2-3 марта 2013А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 1 / 38
  • 2. 1 Введение2 Простые подклассы3 Примеры свед´ний е4 Расщепление5 Локальный поиск6 Точные алгоритмы для MAX-2-SAT7 Приближённый алгоритм для MAX-2-SAT А. Куликов (ПОМИ РАН) Алгоритмы для задачи выполнимости 2-3 марта 2013 2 / 38
  • 3. Содержание1 Введение2 Простые подклассы3 Примеры свед´ний е4 Расщепление5 Локальный поиск6 Точные алгоритмы для MAX-2-SAT7 Приближённый алгоритм для 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-SAT7 Приближённый алгоритм для 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-SAT7 Приближённый алгоритм для 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-SAT7 Приближённый алгоритм для 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-SAT7 Приближённый алгоритм для 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-SAT7 Приближённый алгоритм для 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-SAT7 Приближённый алгоритм для 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 2S 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

×