20130302 np algorithms_kulikov_lecture04-05_sat

476 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
476
On SlideShare
0
From Embeds
0
Number of Embeds
142
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

×