1. с/к “Эффективные алгоритмы”
Лекция 11: Задача выполнимости
А. Куликов
Computer Science клуб при ПОМИ
http://logic.pdmi.ras.ru/∼infclub/
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 1 / 30
2. План лекции
1 Определение задачи
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 2 / 30
3. План лекции
1 Определение задачи
2 Сведения
Японские кроссворды
Eternity
Максимальный разрез
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 2 / 30
4. План лекции
1 Определение задачи
2 Сведения
Японские кроссворды
Eternity
Максимальный разрез
3 Что мы узнали за сегодня
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 2 / 30
5. План лекции
1 Определение задачи
2 Сведения
Японские кроссворды
Eternity
Максимальный разрез
3 Что мы узнали за сегодня
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 3 / 30
7. Формула в КНФ
Определение
Пропозициональной или Булевой (propositional, Boolean)
переменной называется переменная, принимающая значения true
(1) и false (0).
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 4 / 30
8. Формула в КНФ
Определение
Пропозициональной или Булевой (propositional, Boolean)
переменной называется переменная, принимающая значения true
(1) и false (0).
Литералом (literal) называется Булева переменная x или ее
отрицание ¬x.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 4 / 30
9. Формула в КНФ
Определение
Пропозициональной или Булевой (propositional, Boolean)
переменной называется переменная, принимающая значения true
(1) и false (0).
Литералом (literal) называется Булева переменная x или ее
отрицание ¬x.
Клозом (clause) называется дизъюнкция конечного множества
литералов, не содержащего одновременно переменной и ее
отрицания.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 4 / 30
10. Формула в КНФ
Определение
Пропозициональной или Булевой (propositional, Boolean)
переменной называется переменная, принимающая значения true
(1) и false (0).
Литералом (literal) называется Булева переменная x или ее
отрицание ¬x.
Клозом (clause) называется дизъюнкция конечного множества
литералов, не содержащего одновременно переменной и ее
отрицания.
k-клозом (k-clause) называется клоз, содержащий ровно k
литералов.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 4 / 30
11. Формула в КНФ
Определение
Пропозициональной или Булевой (propositional, Boolean)
переменной называется переменная, принимающая значения true
(1) и false (0).
Литералом (literal) называется Булева переменная x или ее
отрицание ¬x.
Клозом (clause) называется дизъюнкция конечного множества
литералов, не содержащего одновременно переменной и ее
отрицания.
k-клозом (k-clause) называется клоз, содержащий ровно k
литералов.
Формулой в конъюнктивной нормальной форме (КНФ) (formula in
conjunctive normal form, CNF) называется конъюнкция конечного
множества клозов.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 4 / 30
13. Меры сложности формул
n(F ), N(F ) — кол-во различных переменных в F .
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 5 / 30
14. Меры сложности формул
n(F ), N(F ) — кол-во различных переменных в F .
m(F ), K (F ) — кол-во клозов в F .
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 5 / 30
15. Меры сложности формул
n(F ), N(F ) — кол-во различных переменных в F .
m(F ), K (F ) — кол-во клозов в F .
l (F ), L(F ) — кол-во литералов в (длина) F .
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 5 / 30
17. Задача выполнимости
Определение
Задача пропозициональной выполнимости (Boolean satisfiability
problem, SAT): определить, выполнима ли данная формула в
КНФ, то есть существует ли набор Булевых значений переменным
формулы, выполняющий формулу. Такой набор называют
выполняющим (satisfying assignment), а формулу, для которой
такой набор существует, — выполнимой (satisfiable).
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 6 / 30
18. Задача выполнимости
Определение
Задача пропозициональной выполнимости (Boolean satisfiability
problem, SAT): определить, выполнима ли данная формула в
КНФ, то есть существует ли набор Булевых значений переменным
формулы, выполняющий формулу. Такой набор называют
выполняющим (satisfying assignment), а формулу, для которой
такой набор существует, — выполнимой (satisfiable).
Задача максимальной выполнимости (maximum satisfiability
problem, SAT): по данной формуле определить, какое
максимальное количество ее клозов может быть выполнено.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 6 / 30
19. Задача выполнимости
Определение
Задача пропозициональной выполнимости (Boolean satisfiability
problem, SAT): определить, выполнима ли данная формула в
КНФ, то есть существует ли набор Булевых значений переменным
формулы, выполняющий формулу. Такой набор называют
выполняющим (satisfying assignment), а формулу, для которой
такой набор существует, — выполнимой (satisfiable).
Задача максимальной выполнимости (maximum satisfiability
problem, SAT): по данной формуле определить, какое
максимальное количество ее клозов может быть выполнено.
k-SAT, MAX-k-SAT — частные случаи соответствующих задач,
когда все клозы входной формулы содержат не более k литералов.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 6 / 30
21. Пример
Пример
F1 = (x ∨ y ∨ ¬z) ∧ (¬x) ∧ (¬y ∨ z)
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 7 / 30
22. Пример
Пример
F1 = (x ∨ y ∨ ¬z) ∧ (¬x) ∧ (¬y ∨ z)
n(F1 ) = 3, m(F1 ) = 3, l (F1 ) = 6
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 7 / 30
23. Пример
Пример
F1 = (x ∨ y ∨ ¬z) ∧ (¬x) ∧ (¬y ∨ z)
n(F1 ) = 3, m(F1 ) = 3, l (F1 ) = 6
F1 выполнима: x = 0, y = 1, z = 1
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 7 / 30
24. Пример
Пример
F1 = (x ∨ y ∨ ¬z) ∧ (¬x) ∧ (¬y ∨ z)
n(F1 ) = 3, m(F1 ) = 3, l (F1 ) = 6
F1 выполнима: x = 0, y = 1, z = 1
F2 = (x ∨ y ) ∧ (x ∨ ¬y ) ∧ (¬x ∨ y ) ∧ (¬x ∨ ¬y )
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 7 / 30
25. Пример
Пример
F1 = (x ∨ y ∨ ¬z) ∧ (¬x) ∧ (¬y ∨ z)
n(F1 ) = 3, m(F1 ) = 3, l (F1 ) = 6
F1 выполнима: x = 0, y = 1, z = 1
F2 = (x ∨ y ) ∧ (x ∨ ¬y ) ∧ (¬x ∨ y ) ∧ (¬x ∨ ¬y )
n(F2 ) = 2, m(F2 ) = 4, l (F1 ) = 8
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 7 / 30
26. Пример
Пример
F1 = (x ∨ y ∨ ¬z) ∧ (¬x) ∧ (¬y ∨ z)
n(F1 ) = 3, m(F1 ) = 3, l (F1 ) = 6
F1 выполнима: x = 0, y = 1, z = 1
F2 = (x ∨ y ) ∧ (x ∨ ¬y ) ∧ (¬x ∨ y ) ∧ (¬x ∨ ¬y )
n(F2 ) = 2, m(F2 ) = 4, l (F1 ) = 8
F2 невыполнима, но три клоза можно выполнить
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 7 / 30
28. NP-трудность
Первая известная NP-полная задача (Кук, 1971).
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 8 / 30
29. NP-трудность
Первая известная NP-полная задача (Кук, 1971).
3-SAT тоже NP-полна.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 8 / 30
30. NP-трудность
Первая известная NP-полная задача (Кук, 1971).
3-SAT тоже NP-полна.
2-SAT может быть решена за линейное время.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 8 / 30
31. NP-трудность
Первая известная NP-полная задача (Кук, 1971).
3-SAT тоже NP-полна.
2-SAT может быть решена за линейное время.
MAX-2-SAT NP-трудна, даже если каждая переменная
встречается в формуле не более трех раз.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 8 / 30
33. Важность задачи
http://www.satisfiability.org/ — The International
Conferences on Theory and Applications of Satisfiability Testing.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 9 / 30
34. Важность задачи
http://www.satisfiability.org/ — The International
Conferences on Theory and Applications of Satisfiability Testing.
http://www.satcompetition.org/ — The international SAT
Competitions web page.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 9 / 30
35. Важность задачи
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.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 9 / 30
36. Важность задачи
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.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 9 / 30
37. Важность задачи
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.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 9 / 30
38. Важность задачи
http://www.satisfiability.org/ — The International
Conferences on Theory and Applications of Satisfiability Testing.
http://www.satcompetition.org/ — The international SAT
Competitions web page.
http://www.isa.ewi.tudelft.nl/Jsat/ — Journal on
Satisfiability, Boolean Modeling and Computation.
http://www.satlib.org/ — The Satisfiability Library.
http://www.satlive.org/ — Up-to-date links for the Satisfiability
Problem.
http://www.qbflib.org/ — The Quantified Boolean Formulas
Satisfiability Library.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 9 / 30
39. План лекции
1 Определение задачи
2 Сведения
Японские кроссворды
Eternity
Максимальный разрез
3 Что мы узнали за сегодня
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 10 / 30
41. Сведения
Многие известные задачи из NP очень просто сводятся к SAT или
MAX-SAT.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 11 / 30
42. Сведения
Многие известные задачи из NP очень просто сводятся к SAT или
MAX-SAT.
Сведя задачу к SAT, на практике можно воспользоваться
SAT-солвером.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 11 / 30
43. Сведения
Многие известные задачи из NP очень просто сводятся к SAT или
MAX-SAT.
Сведя задачу к SAT, на практике можно воспользоваться
SAT-солвером.
Такой подход иногда помогает, иногда — нет.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 11 / 30
44. План лекции
1 Определение задачи
2 Сведения
Японские кроссворды
Eternity
Максимальный разрез
3 Что мы узнали за сегодня
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 12 / 30
45. Японские кроссворды
Определение
Решение японского кроссворда (japanese puzzle) заключается в
восстановлении картинки по длинам блоков подряд идущих
закрашенных клеток в строках и столбцах.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 13 / 30
46. Сведение к SAT
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 14 / 30
47. Сведение к SAT
дано поле n × m
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 14 / 30
48. Сведение к SAT
дано поле n × m
достаточно научиться кодировать тот факт, что в i-й строке
закрашены блоки длины a1 , . . . , at
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 14 / 30
49. Сведение к SAT
дано поле n × m
достаточно научиться кодировать тот факт, что в i-й строке
закрашены блоки длины a1 , . . . , at
введем такие переменные:
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 14 / 30
50. Сведение к SAT
дано поле n × m
достаточно научиться кодировать тот факт, что в i-й строке
закрашены блоки длины a1 , . . . , at
введем такие переменные:
xij — клетка (i, j) закрашена
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 14 / 30
51. Сведение к SAT
дано поле n × m
достаточно научиться кодировать тот факт, что в i-й строке
закрашены блоки длины a1 , . . . , at
введем такие переменные:
xij — клетка (i, j) закрашена
yijp — p-й блок строки i начинается в клетке j
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 14 / 30
52. Сведение к SAT (продолжение)
итак, дана строка i с блоками a1 , . . . , at
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 15 / 30
53. Сведение к SAT (продолжение)
итак, дана строка i с блоками a1 , . . . , at
p-й блок начинается ровно в одной клетке:
(yi1p ∨ yi2p ∨ · · · ∨ yimp ) ∧ {(¬yijp ∨ ¬yikp )}j̸=k
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 15 / 30
54. Сведение к SAT (продолжение)
итак, дана строка i с блоками a1 , . . . , at
p-й блок начинается ровно в одной клетке:
(yi1p ∨ yi2p ∨ · · · ∨ yimp ) ∧ {(¬yijp ∨ ¬yikp )}j̸=k
(p + 1)-й блок начинается позже конца p-го:
{(¬yij(p+1) ∨ ¬yi(j+k)p )}k≥0
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 15 / 30
55. Сведение к SAT (продолжение)
итак, дана строка i с блоками a1 , . . . , at
p-й блок начинается ровно в одной клетке:
(yi1p ∨ yi2p ∨ · · · ∨ yimp ) ∧ {(¬yijp ∨ ¬yikp )}j̸=k
(p + 1)-й блок начинается позже конца p-го:
{(¬yij(p+1) ∨ ¬yi(j+k)p )}k≥0
если p-й блок начинается в клетке j, то соответствующие ap
клеток закрашены:
{(¬yijp ∨ xi(j+k) )}0≤k<ap
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 15 / 30
56. Сведение к SAT (продолжение)
итак, дана строка i с блоками a1 , . . . , at
p-й блок начинается ровно в одной клетке:
(yi1p ∨ yi2p ∨ · · · ∨ yimp ) ∧ {(¬yijp ∨ ¬yikp )}j̸=k
(p + 1)-й блок начинается позже конца p-го:
{(¬yij(p+1) ∨ ¬yi(j+k)p )}k≥0
если p-й блок начинается в клетке j, то соответствующие ap
клеток закрашены:
{(¬yijp ∨ xi(j+k) )}0≤k<ap
если клетка не принадлежит ни одному из блоков, то она не
закрашена:
(yi(j−a1 +1)1 ∨ · · · ∨ yij1 ∨ · · · ∨ yi(j−at +1)p ∨ · · · ∨ yijt ∨ ¬xij )
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 15 / 30
58. Замечание
если какой-то индекс “вылезает”, то соответствующим
переменным просто присваиваем значение 0
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 16 / 30
59. Замечание
если какой-то индекс “вылезает”, то соответствующим
переменным просто присваиваем значение 0
можно сводить более эффективно
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 16 / 30
61. План лекции
1 Определение задачи
2 Сведения
Японские кроссворды
Eternity
Максимальный разрез
3 Что мы узнали за сегодня
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 18 / 30
62. Игра Eternity
Определение
Нужно замостить квадрат заданным набором доминошек так, чтобы
узоры на граничащих частях доминошек совпадали.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 19 / 30
63. Сведение к SAT
дан квадрат n × n и n2 доминошек
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 20 / 30
64. Сведение к SAT
дан квадрат n × n и n2 доминошек
перенумеруем все клетки и доминошки числами от 1 до n2
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 20 / 30
65. Сведение к SAT
дан квадрат n × n и n2 доминошек
перенумеруем все клетки и доминошки числами от 1 до n2
заводим два типа переменных:
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 20 / 30
66. Сведение к SAT
дан квадрат n × n и n2 доминошек
перенумеруем все клетки и доминошки числами от 1 до n2
заводим два типа переменных:
xij — в i-й клетке стоит j-я доминошка
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 20 / 30
67. Сведение к SAT
дан квадрат n × n и n2 доминошек
перенумеруем все клетки и доминошки числами от 1 до n2
заводим два типа переменных:
xij — в i-й клетке стоит j-я доминошка
yjk — j-я доминошка в “положении” k, 1 ≤ k ≤ 4 (например, так:
k = 1 — не повернута, k = 2 — повернута на ������/2 по часовой,
k = 3 — на ������, k = 4 — на ������/2 против часовой)
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 20 / 30
68. Сведение к SAT
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 21 / 30
69. Сведение к SAT
каждая доминошка находится ровно в одном “положении”:
(yj1 ∨ yj2 ∨ yj3 ∨ yj4 ) ∧ {(¬yjp ∨ ¬yjq )}p̸=q
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 21 / 30
70. Сведение к SAT
каждая доминошка находится ровно в одном “положении”:
(yj1 ∨ yj2 ∨ yj3 ∨ yj4 ) ∧ {(¬yjp ∨ ¬yjq )}p̸=q
каждая доминошка стоит хотя бы в одной клетке:
{(x1j ∨ x2j ∨ · · · ∨ xn2 j )}j∈[n2 ]
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 21 / 30
71. Сведение к SAT
каждая доминошка находится ровно в одном “положении”:
(yj1 ∨ yj2 ∨ yj3 ∨ yj4 ) ∧ {(¬yjp ∨ ¬yjq )}p̸=q
каждая доминошка стоит хотя бы в одной клетке:
{(x1j ∨ x2j ∨ · · · ∨ xn2 j )}j∈[n2 ]
в каждой клетке стоит хотя бы одна доминошка:
{(xi1 ∨ xi2 ∨ · · · ∨ xin2 )}i∈[n2 ]
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 21 / 30
72. Сведение к SAT
каждая доминошка находится ровно в одном “положении”:
(yj1 ∨ yj2 ∨ yj3 ∨ yj4 ) ∧ {(¬yjp ∨ ¬yjq )}p̸=q
каждая доминошка стоит хотя бы в одной клетке:
{(x1j ∨ x2j ∨ · · · ∨ xn2 j )}j∈[n2 ]
в каждой клетке стоит хотя бы одна доминошка:
{(xi1 ∨ xi2 ∨ · · · ∨ xin2 )}i∈[n2 ]
доминошка не стоит в двух клетках одновременно:
{(¬xpj ∨ ¬xqj )}p̸=q
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 21 / 30
73. Сведение к SAT (продолжение)
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 22 / 30
74. Сведение к SAT (продолжение)
в клетке одновременно не стоят две доминошки:
{(¬xip ∨ ¬xiq )}p̸=q
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 22 / 30
75. Сведение к SAT (продолжение)
в клетке одновременно не стоят две доминошки:
{(¬xip ∨ ¬xiq )}p̸=q
две доминошки должны граничить равными ребрами:
{(¬xi1 j1 ∨ ¬xi2 j2 ∨ ¬yi1 k1 ∨ ¬yi2 k2 )},
если клетки i1 и i2 — соседи и при постановке туда доминошек j1
и j2 в “положениях”, соответственно, k1 и k2 нарушается узор
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 22 / 30
76. Не все так просто, тем не менее
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 23 / 30
77. Не все так просто, тем не менее
итак, мы записали игру Eternity в виде задачи выполнимости
конкретной формулы при помощи полиномиального сведения
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 23 / 30
78. Не все так просто, тем не менее
итак, мы записали игру Eternity в виде задачи выполнимости
конкретной формулы при помощи полиномиального сведения
осталось напустить на полученную формулу какой-нибудь
эффективный SAT-солвер
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 23 / 30
79. Не все так просто, тем не менее
итак, мы записали игру Eternity в виде задачи выполнимости
конкретной формулы при помощи полиномиального сведения
осталось напустить на полученную формулу какой-нибудь
эффективный SAT-солвер
но в чем же тогда подвох?
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 23 / 30
80. Не все так просто, тем не менее
итак, мы записали игру Eternity в виде задачи выполнимости
конкретной формулы при помощи полиномиального сведения
осталось напустить на полученную формулу какой-нибудь
эффективный SAT-солвер
но в чем же тогда подвох?
давайте примерно оценим длину полученной формулы
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 23 / 30
81. Оценка длины
(yj1 ∨ yj2 ∨ yj3 ∨ yj4 ) ∧ {(¬yjp ∨ ¬yjq )}p̸=q (4 + 2 · 6)n2
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 24 / 30
82. Оценка длины
(yj1 ∨ yj2 ∨ yj3 ∨ yj4 ) ∧ {(¬yjp ∨ ¬yjq )}p̸=q (4 + 2 · 6)n2
{(x1j ∨ x2j ∨ · · · ∨ xn2 j )}j∈[n2 ] n2 · n2
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 24 / 30
87. Оценка длины
(yj1 ∨ yj2 ∨ yj3 ∨ yj4 ) ∧ {(¬yjp ∨ ¬yjq )}p̸=q (4 + 2 · 6)n2
{(x1j ∨ x2j ∨ · · · ∨ xn2 j )}j∈[n2 ] n2 · n2
{(xi1 ∨ xi2 ∨ · · · ∨ xin2 )}i∈[n2 ] n2 · n2
n2 · n
(︀ )︀
{(¬xpj ∨ ¬xqj )}p̸=q
(︀2)︀
2· n
{(¬xip ∨ ¬xiq )}p̸=q n 2
{(¬xi1 j1 ∨ ¬xi2 j2 ∨ ¬yi1 k1 ∨ ¬yi2 k2 )} ∼ n2 · n2 · n2
Итого, порядок длины формулы будет n6 , что при n = 16 составляеят
166 = 224 = 16 777 216.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 24 / 30
88. План лекции
1 Определение задачи
2 Сведения
Японские кроссворды
Eternity
Максимальный разрез
3 Что мы узнали за сегодня
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 25 / 30
89. Задача о максимальном разрезе
Определение
Задача о максимальном разрезе (maximum cut, MAX-CUT)
заключается в нахождении такого разбиения вершин графа на две
части, при котором количество ребер, концы которых принадлежат
разным частям, максимально.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 26 / 30
90. Задача о максимальном разрезе
Определение
Задача о максимальном разрезе (maximum cut, MAX-CUT)
заключается в нахождении такого разбиения вершин графа на две
части, при котором количество ребер, концы которых принадлежат
разным частям, максимально.
NP-трудность
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 26 / 30
91. Задача о максимальном разрезе
Определение
Задача о максимальном разрезе (maximum cut, MAX-CUT)
заключается в нахождении такого разбиения вершин графа на две
части, при котором количество ребер, концы которых принадлежат
разным частям, максимально.
NP-трудность
Одна из знаменитых 21-й NP-полной задачи Карпа.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 26 / 30
92. Задача о максимальном разрезе
Определение
Задача о максимальном разрезе (maximum cut, MAX-CUT)
заключается в нахождении такого разбиения вершин графа на две
части, при котором количество ребер, концы которых принадлежат
разным частям, максимально.
NP-трудность
Одна из знаменитых 21-й NP-полной задачи Карпа.
Остается NP-полной даже на графах степени 3.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 26 / 30
94. Сведение к MAX-2-SAT
каждой вершине u графа G (V , E ) поставим в соответствие
переменную xu (xu = 1 — вершина u принадлежит первой части)
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 27 / 30
95. Сведение к MAX-2-SAT
каждой вершине u графа G (V , E ) поставим в соответствие
переменную xu (xu = 1 — вершина u принадлежит первой части)
для каждого ребра (u, v ) запишем два клоза (xu ∨ xv ), (¬xu ∨ ¬xv )
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 27 / 30
96. Сведение к MAX-2-SAT
каждой вершине u графа G (V , E ) поставим в соответствие
переменную xu (xu = 1 — вершина u принадлежит первой части)
для каждого ребра (u, v ) запишем два клоза (xu ∨ xv ), (¬xu ∨ ¬xv )
видно, что набор значений переменным u, v выполняет оба клоза,
когда u и v в разных частях, и выполняет только один из них —
когда в одной
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 27 / 30
97. Сведение к MAX-2-SAT
каждой вершине u графа G (V , E ) поставим в соответствие
переменную xu (xu = 1 — вершина u принадлежит первой части)
для каждого ребра (u, v ) запишем два клоза (xu ∨ xv ), (¬xu ∨ ¬xv )
видно, что набор значений переменным u, v выполняет оба клоза,
когда u и v в разных частях, и выполняет только один из них —
когда в одной
таким образом, максимальное количество одновременно
выполнимых клозов полученной формулы равно
|E | + |MAX-CUT(G )|
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 27 / 30
98. План лекции
1 Определение задачи
2 Сведения
Японские кроссворды
Eternity
Максимальный разрез
3 Что мы узнали за сегодня
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 28 / 30
99. Что мы узнали за сегодня?
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 29 / 30
100. Что мы узнали за сегодня?
Многие известные задачи из NP очень просто сводятся к SAT или
MAX-SAT.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 29 / 30
101. Что мы узнали за сегодня?
Многие известные задачи из NP очень просто сводятся к SAT или
MAX-SAT.
Сведя задачу к SAT, на практике можно воспользоваться
SAT-солвером.
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 29 / 30
102. Что мы узнали за сегодня?
Многие известные задачи из NP очень просто сводятся к SAT или
MAX-SAT.
Сведя задачу к SAT, на практике можно воспользоваться
SAT-солвером.
Сведения:
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 29 / 30
103. Что мы узнали за сегодня?
Многие известные задачи из NP очень просто сводятся к SAT или
MAX-SAT.
Сведя задачу к SAT, на практике можно воспользоваться
SAT-солвером.
Сведения:
японские кроссворды, игра Eternity — к SAT
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 29 / 30
104. Что мы узнали за сегодня?
Многие известные задачи из NP очень просто сводятся к SAT или
MAX-SAT.
Сведя задачу к SAT, на практике можно воспользоваться
SAT-солвером.
Сведения:
японские кроссворды, игра Eternity — к SAT
задача о максимальном разрезе — к MAX-SAT
А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 29 / 30