105
с/к “Эффективные алгоритмы” Лекция 11: Задача выполнимости А. Куликов Computer Science клуб при ПОМИ http://logic.pdmi.ras.ru/infclub/ А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 1 / 30

Эффективные алгоритмы, осень 2007: Задача выполнимости

Embed Size (px)

Citation preview

Page 1: Эффективные алгоритмы, осень 2007: Задача выполнимости

с/к “Эффективные алгоритмы”Лекция 11: Задача выполнимости

А. Куликов

Computer Science клуб при ПОМИhttp://logic.pdmi.ras.ru/∼infclub/

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 1 / 30

Page 2: Эффективные алгоритмы, осень 2007: Задача выполнимости

План лекции

1 Определение задачи

2 СведенияЯпонские кроссвордыEternityМаксимальный разрез

3 Что мы узнали за сегодня

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 2 / 30

Page 3: Эффективные алгоритмы, осень 2007: Задача выполнимости

План лекции

1 Определение задачи

2 СведенияЯпонские кроссвордыEternityМаксимальный разрез

3 Что мы узнали за сегодня

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 2 / 30

Page 4: Эффективные алгоритмы, осень 2007: Задача выполнимости

План лекции

1 Определение задачи

2 СведенияЯпонские кроссвордыEternityМаксимальный разрез

3 Что мы узнали за сегодня

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 2 / 30

Page 5: Эффективные алгоритмы, осень 2007: Задача выполнимости

План лекции

1 Определение задачи

2 СведенияЯпонские кроссвордыEternityМаксимальный разрез

3 Что мы узнали за сегодня

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 3 / 30

Page 6: Эффективные алгоритмы, осень 2007: Задача выполнимости

Формула в КНФ

Определение

Пропозициональной или Булевой (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: Задача выполнимости

Формула в КНФ

ОпределениеПропозициональной или Булевой (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: Задача выполнимости

Формула в КНФ

ОпределениеПропозициональной или Булевой (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: Задача выполнимости

Формула в КНФ

ОпределениеПропозициональной или Булевой (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: Задача выполнимости

Формула в КНФ

ОпределениеПропозициональной или Булевой (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: Задача выполнимости

Формула в КНФ

ОпределениеПропозициональной или Булевой (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: Задача выполнимости

Меры сложности формул

n(F ), N(F ) — кол-во различных переменных в F .m(F ), K (F ) — кол-во клозов в F .l(F ), L(F ) — кол-во литералов в (длина) F .

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 5 / 30

Page 13: Эффективные алгоритмы, осень 2007: Задача выполнимости

Меры сложности формул

n(F ), N(F ) — кол-во различных переменных в F .

m(F ), K (F ) — кол-во клозов в F .l(F ), L(F ) — кол-во литералов в (длина) F .

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 5 / 30

Page 14: Эффективные алгоритмы, осень 2007: Задача выполнимости

Меры сложности формул

n(F ), N(F ) — кол-во различных переменных в F .m(F ), K (F ) — кол-во клозов в F .

l(F ), L(F ) — кол-во литералов в (длина) F .

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 5 / 30

Page 15: Эффективные алгоритмы, осень 2007: Задача выполнимости

Меры сложности формул

n(F ), N(F ) — кол-во различных переменных в F .m(F ), K (F ) — кол-во клозов в F .l(F ), L(F ) — кол-во литералов в (длина) F .

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 5 / 30

Page 16: Эффективные алгоритмы, осень 2007: Задача выполнимости

Задача выполнимости

Определение

Задача пропозициональной выполнимости (Boolean satisfiabilityproblem, SAT): определить, выполнима ли данная формула вКНФ, то есть существует ли набор Булевых значений переменнымформулы, выполняющий формулу. Такой набор называютвыполняющим (satisfying assignment), а формулу, для которойтакой набор существует, — выполнимой (satisfiable).Задача максимальной выполнимости (maximum satisfiabilityproblem, SAT): по данной формуле определить, какоемаксимальное количество ее клозов может быть выполнено.k-SAT, MAX-k-SAT — частные случаи соответствующих задач,когда все клозы входной формулы содержат не более k литералов.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 6 / 30

Page 17: Эффективные алгоритмы, осень 2007: Задача выполнимости

Задача выполнимости

ОпределениеЗадача пропозициональной выполнимости (Boolean satisfiabilityproblem, SAT): определить, выполнима ли данная формула вКНФ, то есть существует ли набор Булевых значений переменнымформулы, выполняющий формулу. Такой набор называютвыполняющим (satisfying assignment), а формулу, для которойтакой набор существует, — выполнимой (satisfiable).

Задача максимальной выполнимости (maximum satisfiabilityproblem, SAT): по данной формуле определить, какоемаксимальное количество ее клозов может быть выполнено.k-SAT, MAX-k-SAT — частные случаи соответствующих задач,когда все клозы входной формулы содержат не более k литералов.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 6 / 30

Page 18: Эффективные алгоритмы, осень 2007: Задача выполнимости

Задача выполнимости

ОпределениеЗадача пропозициональной выполнимости (Boolean satisfiabilityproblem, SAT): определить, выполнима ли данная формула вКНФ, то есть существует ли набор Булевых значений переменнымформулы, выполняющий формулу. Такой набор называютвыполняющим (satisfying assignment), а формулу, для которойтакой набор существует, — выполнимой (satisfiable).Задача максимальной выполнимости (maximum satisfiabilityproblem, SAT): по данной формуле определить, какоемаксимальное количество ее клозов может быть выполнено.

k-SAT, MAX-k-SAT — частные случаи соответствующих задач,когда все клозы входной формулы содержат не более k литералов.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 6 / 30

Page 19: Эффективные алгоритмы, осень 2007: Задача выполнимости

Задача выполнимости

ОпределениеЗадача пропозициональной выполнимости (Boolean satisfiabilityproblem, SAT): определить, выполнима ли данная формула вКНФ, то есть существует ли набор Булевых значений переменнымформулы, выполняющий формулу. Такой набор называютвыполняющим (satisfying assignment), а формулу, для которойтакой набор существует, — выполнимой (satisfiable).Задача максимальной выполнимости (maximum satisfiabilityproblem, SAT): по данной формуле определить, какоемаксимальное количество ее клозов может быть выполнено.k-SAT, MAX-k-SAT — частные случаи соответствующих задач,когда все клозы входной формулы содержат не более k литералов.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 6 / 30

Page 20: Эффективные алгоритмы, осень 2007: Задача выполнимости

Пример

Пример

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: Задача выполнимости

Пример

Пример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: Задача выполнимости

Пример

Пример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: Задача выполнимости

Пример

Пример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: Задача выполнимости

Пример

Пример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: Задача выполнимости

Пример

Пример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: Задача выполнимости

Пример

Пример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: Задача выполнимости

NP-трудность

Первая известная NP-полная задача (Кук, 1971).3-SAT тоже NP-полна.2-SAT может быть решена за линейное время.MAX-2-SAT NP-трудна, даже если каждая переменнаявстречается в формуле не более трех раз.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 8 / 30

Page 28: Эффективные алгоритмы, осень 2007: Задача выполнимости

NP-трудность

Первая известная NP-полная задача (Кук, 1971).

3-SAT тоже NP-полна.2-SAT может быть решена за линейное время.MAX-2-SAT NP-трудна, даже если каждая переменнаявстречается в формуле не более трех раз.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 8 / 30

Page 29: Эффективные алгоритмы, осень 2007: Задача выполнимости

NP-трудность

Первая известная NP-полная задача (Кук, 1971).3-SAT тоже NP-полна.

2-SAT может быть решена за линейное время.MAX-2-SAT NP-трудна, даже если каждая переменнаявстречается в формуле не более трех раз.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 8 / 30

Page 30: Эффективные алгоритмы, осень 2007: Задача выполнимости

NP-трудность

Первая известная NP-полная задача (Кук, 1971).3-SAT тоже NP-полна.2-SAT может быть решена за линейное время.

MAX-2-SAT NP-трудна, даже если каждая переменнаявстречается в формуле не более трех раз.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 8 / 30

Page 31: Эффективные алгоритмы, осень 2007: Задача выполнимости

NP-трудность

Первая известная NP-полная задача (Кук, 1971).3-SAT тоже NP-полна.2-SAT может быть решена за линейное время.MAX-2-SAT NP-трудна, даже если каждая переменнаявстречается в формуле не более трех раз.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 8 / 30

Page 32: Эффективные алгоритмы, осень 2007: Задача выполнимости

Важность задачи

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: Задача выполнимости

Важность задачи

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: Задача выполнимости

Важность задачи

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: Задача выполнимости

Важность задачи

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: Задача выполнимости

Важность задачи

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: Задача выполнимости

Важность задачи

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: Задача выполнимости

Важность задачи

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: Задача выполнимости

План лекции

1 Определение задачи

2 СведенияЯпонские кроссвордыEternityМаксимальный разрез

3 Что мы узнали за сегодня

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 10 / 30

Page 40: Эффективные алгоритмы, осень 2007: Задача выполнимости

Сведения

Многие известные задачи из NP очень просто сводятся к SAT илиMAX-SAT.Сведя задачу к SAT, на практике можно воспользоватьсяSAT-солвером.Такой подход иногда помогает, иногда — нет.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 11 / 30

Page 41: Эффективные алгоритмы, осень 2007: Задача выполнимости

Сведения

Многие известные задачи из NP очень просто сводятся к SAT илиMAX-SAT.

Сведя задачу к SAT, на практике можно воспользоватьсяSAT-солвером.Такой подход иногда помогает, иногда — нет.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 11 / 30

Page 42: Эффективные алгоритмы, осень 2007: Задача выполнимости

Сведения

Многие известные задачи из NP очень просто сводятся к SAT илиMAX-SAT.Сведя задачу к SAT, на практике можно воспользоватьсяSAT-солвером.

Такой подход иногда помогает, иногда — нет.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 11 / 30

Page 43: Эффективные алгоритмы, осень 2007: Задача выполнимости

Сведения

Многие известные задачи из NP очень просто сводятся к SAT илиMAX-SAT.Сведя задачу к SAT, на практике можно воспользоватьсяSAT-солвером.Такой подход иногда помогает, иногда — нет.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 11 / 30

Page 44: Эффективные алгоритмы, осень 2007: Задача выполнимости

План лекции

1 Определение задачи

2 СведенияЯпонские кроссвордыEternityМаксимальный разрез

3 Что мы узнали за сегодня

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 12 / 30

Page 45: Эффективные алгоритмы, осень 2007: Задача выполнимости

Японские кроссворды

ОпределениеРешение японского кроссворда (japanese puzzle) заключается ввосстановлении картинки по длинам блоков подряд идущихзакрашенных клеток в строках и столбцах.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 13 / 30

Page 46: Эффективные алгоритмы, осень 2007: Задача выполнимости

Сведение к SAT

дано поле n ×mдостаточно научиться кодировать тот факт, что в i-й строкезакрашены блоки длины a1, . . . , at

введем такие переменные:I xij — клетка (i , j) закрашенаI yijp — p-й блок строки i начинается в клетке j

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 14 / 30

Page 47: Эффективные алгоритмы, осень 2007: Задача выполнимости

Сведение к SAT

дано поле n ×m

достаточно научиться кодировать тот факт, что в i-й строкезакрашены блоки длины a1, . . . , at

введем такие переменные:I xij — клетка (i , j) закрашенаI yijp — p-й блок строки i начинается в клетке j

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 14 / 30

Page 48: Эффективные алгоритмы, осень 2007: Задача выполнимости

Сведение к SAT

дано поле n ×mдостаточно научиться кодировать тот факт, что в i-й строкезакрашены блоки длины a1, . . . , at

введем такие переменные:I xij — клетка (i , j) закрашенаI yijp — p-й блок строки i начинается в клетке j

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 14 / 30

Page 49: Эффективные алгоритмы, осень 2007: Задача выполнимости

Сведение к SAT

дано поле n ×mдостаточно научиться кодировать тот факт, что в i-й строкезакрашены блоки длины a1, . . . , at

введем такие переменные:

I xij — клетка (i , j) закрашенаI yijp — p-й блок строки i начинается в клетке j

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 14 / 30

Page 50: Эффективные алгоритмы, осень 2007: Задача выполнимости

Сведение к SAT

дано поле n ×mдостаточно научиться кодировать тот факт, что в i-й строкезакрашены блоки длины a1, . . . , at

введем такие переменные:I xij — клетка (i , j) закрашена

I yijp — p-й блок строки i начинается в клетке j

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 14 / 30

Page 51: Эффективные алгоритмы, осень 2007: Задача выполнимости

Сведение к SAT

дано поле n ×mдостаточно научиться кодировать тот факт, что в i-й строкезакрашены блоки длины a1, . . . , at

введем такие переменные:I xij — клетка (i , j) закрашенаI yijp — p-й блок строки i начинается в клетке j

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 14 / 30

Page 52: Эффективные алгоритмы, осень 2007: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к 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: Задача выполнимости

Замечание

если какой-то индекс “вылезает”, то соответствующимпеременным просто присваиваем значение 0можно сводить более эффективно

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 16 / 30

Page 58: Эффективные алгоритмы, осень 2007: Задача выполнимости

Замечаниеесли какой-то индекс “вылезает”, то соответствующимпеременным просто присваиваем значение 0

можно сводить более эффективно

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 16 / 30

Page 59: Эффективные алгоритмы, осень 2007: Задача выполнимости

Замечаниеесли какой-то индекс “вылезает”, то соответствующимпеременным просто присваиваем значение 0можно сводить более эффективно

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 16 / 30

Page 60: Эффективные алгоритмы, осень 2007: Задача выполнимости

Примеры решенных кроссвордов

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 17 / 30

Page 61: Эффективные алгоритмы, осень 2007: Задача выполнимости

План лекции

1 Определение задачи

2 СведенияЯпонские кроссвордыEternityМаксимальный разрез

3 Что мы узнали за сегодня

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 18 / 30

Page 62: Эффективные алгоритмы, осень 2007: Задача выполнимости

Игра EternityОпределениеНужно замостить квадрат заданным набором доминошек так, чтобыузоры на граничащих частях доминошек совпадали.

Рис.: www.eternity2.comА. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 19 / 30

Page 63: Эффективные алгоритмы, осень 2007: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к SAT (продолжение)

в клетке одновременно не стоят две доминошки:

{(¬xip ∨ ¬xiq)}p ̸=q

две доминошки должны граничить равными ребрами:

{(¬xi1j1 ∨ ¬xi2j2 ∨ ¬yi1k1 ∨ ¬yi2k2)},

если клетки i1 и i2 — соседи и при постановке туда доминошек j1и j2 в “положениях”, соответственно, k1 и k2 нарушается узор

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 22 / 30

Page 74: Эффективные алгоритмы, осень 2007: Задача выполнимости

Сведение к SAT (продолжение)

в клетке одновременно не стоят две доминошки:

{(¬xip ∨ ¬xiq)}p ̸=q

две доминошки должны граничить равными ребрами:

{(¬xi1j1 ∨ ¬xi2j2 ∨ ¬yi1k1 ∨ ¬yi2k2)},

если клетки i1 и i2 — соседи и при постановке туда доминошек j1и j2 в “положениях”, соответственно, k1 и k2 нарушается узор

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 22 / 30

Page 75: Эффективные алгоритмы, осень 2007: Задача выполнимости

Сведение к SAT (продолжение)

в клетке одновременно не стоят две доминошки:

{(¬xip ∨ ¬xiq)}p ̸=q

две доминошки должны граничить равными ребрами:

{(¬xi1j1 ∨ ¬xi2j2 ∨ ¬yi1k1 ∨ ¬yi2k2)},

если клетки i1 и i2 — соседи и при постановке туда доминошек j1и j2 в “положениях”, соответственно, k1 и k2 нарушается узор

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 22 / 30

Page 76: Эффективные алгоритмы, осень 2007: Задача выполнимости

Не все так просто, тем не менее

итак, мы записали игру Eternity в виде задачи выполнимостиконкретной формулы при помощи полиномиального сведенияосталось напустить на полученную формулу какой-нибудьэффективный SAT-солверно в чем же тогда подвох?давайте примерно оценим длину полученной формулы

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 23 / 30

Page 77: Эффективные алгоритмы, осень 2007: Задача выполнимости

Не все так просто, тем не менее

итак, мы записали игру Eternity в виде задачи выполнимостиконкретной формулы при помощи полиномиального сведения

осталось напустить на полученную формулу какой-нибудьэффективный SAT-солверно в чем же тогда подвох?давайте примерно оценим длину полученной формулы

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 23 / 30

Page 78: Эффективные алгоритмы, осень 2007: Задача выполнимости

Не все так просто, тем не менее

итак, мы записали игру Eternity в виде задачи выполнимостиконкретной формулы при помощи полиномиального сведенияосталось напустить на полученную формулу какой-нибудьэффективный SAT-солвер

но в чем же тогда подвох?давайте примерно оценим длину полученной формулы

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 23 / 30

Page 79: Эффективные алгоритмы, осень 2007: Задача выполнимости

Не все так просто, тем не менее

итак, мы записали игру Eternity в виде задачи выполнимостиконкретной формулы при помощи полиномиального сведенияосталось напустить на полученную формулу какой-нибудьэффективный SAT-солверно в чем же тогда подвох?

давайте примерно оценим длину полученной формулы

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 23 / 30

Page 80: Эффективные алгоритмы, осень 2007: Задача выполнимости

Не все так просто, тем не менее

итак, мы записали игру Eternity в виде задачи выполнимостиконкретной формулы при помощи полиномиального сведенияосталось напустить на полученную формулу какой-нибудьэффективный SAT-солверно в чем же тогда подвох?давайте примерно оценим длину полученной формулы

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 23 / 30

Page 81: Эффективные алгоритмы, осень 2007: Задача выполнимости

Оценка длины

(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: Задача выполнимости

Оценка длины

(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: Задача выполнимости

Оценка длины

(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: Задача выполнимости

Оценка длины

(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: Задача выполнимости

Оценка длины

(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: Задача выполнимости

Оценка длины

(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: Задача выполнимости

Оценка длины

(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: Задача выполнимости

План лекции

1 Определение задачи

2 СведенияЯпонские кроссвордыEternityМаксимальный разрез

3 Что мы узнали за сегодня

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 25 / 30

Page 89: Эффективные алгоритмы, осень 2007: Задача выполнимости

Задача о максимальном разрезе

ОпределениеЗадача о максимальном разрезе (maximum cut, MAX-CUT)заключается в нахождении такого разбиения вершин графа на двечасти, при котором количество ребер, концы которых принадлежатразным частям, максимально.

NP-трудностьОдна из знаменитых 21-й NP-полной задачи Карпа.Остается NP-полной даже на графах степени 3.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 26 / 30

Page 90: Эффективные алгоритмы, осень 2007: Задача выполнимости

Задача о максимальном разрезе

ОпределениеЗадача о максимальном разрезе (maximum cut, MAX-CUT)заключается в нахождении такого разбиения вершин графа на двечасти, при котором количество ребер, концы которых принадлежатразным частям, максимально.

NP-трудность

Одна из знаменитых 21-й NP-полной задачи Карпа.Остается NP-полной даже на графах степени 3.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 26 / 30

Page 91: Эффективные алгоритмы, осень 2007: Задача выполнимости

Задача о максимальном разрезе

ОпределениеЗадача о максимальном разрезе (maximum cut, MAX-CUT)заключается в нахождении такого разбиения вершин графа на двечасти, при котором количество ребер, концы которых принадлежатразным частям, максимально.

NP-трудностьОдна из знаменитых 21-й NP-полной задачи Карпа.

Остается NP-полной даже на графах степени 3.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 26 / 30

Page 92: Эффективные алгоритмы, осень 2007: Задача выполнимости

Задача о максимальном разрезе

ОпределениеЗадача о максимальном разрезе (maximum cut, MAX-CUT)заключается в нахождении такого разбиения вершин графа на двечасти, при котором количество ребер, концы которых принадлежатразным частям, максимально.

NP-трудностьОдна из знаменитых 21-й NP-полной задачи Карпа.Остается NP-полной даже на графах степени 3.

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 26 / 30

Page 93: Эффективные алгоритмы, осень 2007: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к 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: Задача выполнимости

Сведение к 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: Задача выполнимости

План лекции

1 Определение задачи

2 СведенияЯпонские кроссвордыEternityМаксимальный разрез

3 Что мы узнали за сегодня

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 28 / 30

Page 99: Эффективные алгоритмы, осень 2007: Задача выполнимости

Что мы узнали за сегодня?

Многие известные задачи из NP очень просто сводятся к SAT илиMAX-SAT.Сведя задачу к SAT, на практике можно воспользоватьсяSAT-солвером.Сведения:

I японские кроссворды, игра Eternity — к SATI задача о максимальном разрезе — к MAX-SAT

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 29 / 30

Page 100: Эффективные алгоритмы, осень 2007: Задача выполнимости

Что мы узнали за сегодня?

Многие известные задачи из NP очень просто сводятся к SAT илиMAX-SAT.

Сведя задачу к SAT, на практике можно воспользоватьсяSAT-солвером.Сведения:

I японские кроссворды, игра Eternity — к SATI задача о максимальном разрезе — к MAX-SAT

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 29 / 30

Page 101: Эффективные алгоритмы, осень 2007: Задача выполнимости

Что мы узнали за сегодня?

Многие известные задачи из NP очень просто сводятся к SAT илиMAX-SAT.Сведя задачу к SAT, на практике можно воспользоватьсяSAT-солвером.

Сведения:I японские кроссворды, игра Eternity — к SATI задача о максимальном разрезе — к MAX-SAT

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 29 / 30

Page 102: Эффективные алгоритмы, осень 2007: Задача выполнимости

Что мы узнали за сегодня?

Многие известные задачи из NP очень просто сводятся к SAT илиMAX-SAT.Сведя задачу к SAT, на практике можно воспользоватьсяSAT-солвером.Сведения:

I японские кроссворды, игра Eternity — к SATI задача о максимальном разрезе — к MAX-SAT

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 29 / 30

Page 103: Эффективные алгоритмы, осень 2007: Задача выполнимости

Что мы узнали за сегодня?

Многие известные задачи из NP очень просто сводятся к SAT илиMAX-SAT.Сведя задачу к SAT, на практике можно воспользоватьсяSAT-солвером.Сведения:

I японские кроссворды, игра Eternity — к SAT

I задача о максимальном разрезе — к MAX-SAT

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 29 / 30

Page 104: Эффективные алгоритмы, осень 2007: Задача выполнимости

Что мы узнали за сегодня?

Многие известные задачи из NP очень просто сводятся к SAT илиMAX-SAT.Сведя задачу к SAT, на практике можно воспользоватьсяSAT-солвером.Сведения:

I японские кроссворды, игра Eternity — к SATI задача о максимальном разрезе — к MAX-SAT

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 29 / 30

Page 105: Эффективные алгоритмы, осень 2007: Задача выполнимости

Спасибо за внимание!

А. Куликов (CS клуб при ПОМИ) 11. Задача выполнимости 30 / 30