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