20091108 algorithmsfornphardproblems kulikov_lecture08

80
Алгоритмы для NP-трудных задач Лекция 8: Алгоритмы расщепления А. Куликов Computer Science клуб при ПОМИ http://logic.pdmi.ras.ru/infclub/ А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 1 / 20

Upload: computer-science-club

Post on 14-Apr-2017

264 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 20091108 algorithmsfornphardproblems kulikov_lecture08

Алгоритмы для NP-трудных задачЛекция 8: Алгоритмы расщепления

А. Куликов

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

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 1 / 20

Page 2: 20091108 algorithmsfornphardproblems kulikov_lecture08

План лекции

1 Комбинированные меры сложности

2 Запоминание дизъюнктов

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 2 / 20

Page 3: 20091108 algorithmsfornphardproblems kulikov_lecture08

План лекции

1 Комбинированные меры сложности

2 Запоминание дизъюнктов

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 2 / 20

Page 4: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

План лекции

1 Комбинированные меры сложности

2 Запоминание дизъюнктов

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 3 / 20

Page 5: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Задача максимальной 2-выполнимости

Задача максимальной 2-выполнимости (maximum 2-satisfiability)заключается в нахождении набора, выполняющего максимальноеколичество клозов данной формулы в 2-КНФ (то есть каждыйклоз которой содержит не более двух литералов).Является NP-трудной (сравните с 2-выполнимостью).В терминах максимальной 2-выполнимости легко формулируютсямногие задачи на графах.

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 4 / 20

Page 6: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Задача максимальной 2-выполнимости

Задача максимальной 2-выполнимости (maximum 2-satisfiability)заключается в нахождении набора, выполняющего максимальноеколичество клозов данной формулы в 2-КНФ (то есть каждыйклоз которой содержит не более двух литералов).

Является NP-трудной (сравните с 2-выполнимостью).В терминах максимальной 2-выполнимости легко формулируютсямногие задачи на графах.

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 4 / 20

Page 7: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Задача максимальной 2-выполнимости

Задача максимальной 2-выполнимости (maximum 2-satisfiability)заключается в нахождении набора, выполняющего максимальноеколичество клозов данной формулы в 2-КНФ (то есть каждыйклоз которой содержит не более двух литералов).Является NP-трудной (сравните с 2-выполнимостью).

В терминах максимальной 2-выполнимости легко формулируютсямногие задачи на графах.

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 4 / 20

Page 8: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Задача максимальной 2-выполнимости

Задача максимальной 2-выполнимости (maximum 2-satisfiability)заключается в нахождении набора, выполняющего максимальноеколичество клозов данной формулы в 2-КНФ (то есть каждыйклоз которой содержит не более двух литералов).Является NP-трудной (сравните с 2-выполнимостью).В терминах максимальной 2-выполнимости легко формулируютсямногие задачи на графах.

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 4 / 20

Page 9: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Меры сложности

Стандартные меры сложности формулn — количество переменныхK — количество клозовL — количество дизъюнктов

Стандартные меры сложности графовn — количество вершинm — количество ребер

Как правило, именно относительно этих мер хочется получитьверхнюю оценку на время работы алгоритма. Однако длядоказательства оценки можно использовать и другую меру.

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 5 / 20

Page 10: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Меры сложности

Стандартные меры сложности формулn — количество переменныхK — количество клозовL — количество дизъюнктов

Стандартные меры сложности графовn — количество вершинm — количество ребер

Как правило, именно относительно этих мер хочется получитьверхнюю оценку на время работы алгоритма. Однако длядоказательства оценки можно использовать и другую меру.

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 5 / 20

Page 11: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Пример: K и K2

(x ∨ a) ∧ (x ∨ b) ∧ (x ∨ c) ∧ (x̄ ∨ d) ∧ (x̄ ∨ e) ∧ . . .XXXXXXXXz

��������9x = 1 x = 0(d) ∧ (e) ∧ . . . (a) ∧ (b) ∧ (c) ∧ . . .

ΔK = 3 ΔK = 2

ΔK2 = 5 ΔK2 = 5

K2 ≤ K

K2 — честная мера сложности: если K2(F ) = 0, от решение для Fможет быть найдено за линейное время

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 6 / 20

Page 12: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Пример: K и K2

(x ∨ a) ∧ (x ∨ b) ∧ (x ∨ c) ∧ (x̄ ∨ d) ∧ (x̄ ∨ e) ∧ . . .XXXXXXXXz

��������9x = 1 x = 0(d) ∧ (e) ∧ . . . (a) ∧ (b) ∧ (c) ∧ . . .

ΔK = 3 ΔK = 2

ΔK2 = 5 ΔK2 = 5

K2 ≤ KK2 — честная мера сложности: если K2(F ) = 0, от решение для Fможет быть найдено за линейное время

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 6 / 20

Page 13: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Пример: K и K2

(x ∨ a) ∧ (x ∨ b) ∧ (x ∨ c) ∧ (x̄ ∨ d) ∧ (x̄ ∨ e) ∧ . . .XXXXXXXXz

��������9x = 1 x = 0(d) ∧ (e) ∧ . . . (a) ∧ (b) ∧ (c) ∧ . . .

ΔK = 3 ΔK = 2

ΔK2 = 5 ΔK2 = 5

K2 ≤ KK2 — честная мера сложности: если K2(F ) = 0, от решение для Fможет быть найдено за линейное время

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 6 / 20

Page 14: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Пример: K и K2

(x ∨ a) ∧ (x ∨ b) ∧ (x ∨ c) ∧ (x̄ ∨ d) ∧ (x̄ ∨ e) ∧ . . .XXXXXXXXz

��������9x = 1 x = 0(d) ∧ (e) ∧ . . . (a) ∧ (b) ∧ (c) ∧ . . .

ΔK = 3 ΔK = 2

ΔK2 = 5 ΔK2 = 5

K2 ≤ KK2 — честная мера сложности: если K2(F ) = 0, от решение для Fможет быть найдено за линейное время

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 6 / 20

Page 15: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Комбинированная мера сложности

Обозначим через Ni количество переменных, входящих в ровно i2-клоза.

количество 2-клозов: K2 =N∑︁

i=1

i2Ni

комбинированная мера: 𝛾 = N3 + 1.9 · N4 +N∑︁

i=5

i2Ni

K2 -q q q q q q qN1 N2 N3 N4 N5 N6

0 0.5 1 1.5 2 2.5 3𝛾 -q q q q q q

N1, N2 N3 N4 N5 N6

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 7 / 20

Page 16: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Верхняя оценка 2K/5.5

Теорема

MAX-2-SAT может быть решена за время poly(K ) · 2K/5.5, где K —количество клозов формулы F .

Доказательство

докажем оценку 2𝛾/5.5; этого достаточно, поскольку 𝛾 ≤ K2 ≤ Kдля этого покажем, что присваивание значения переменнойформулы уменьшает 𝛾 хотя бы на 5.5

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 8 / 20

Page 17: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Верхняя оценка 2K/5.5

Теорема

MAX-2-SAT может быть решена за время poly(K ) · 2K/5.5, где K —количество клозов формулы F .

Доказательство

докажем оценку 2𝛾/5.5; этого достаточно, поскольку 𝛾 ≤ K2 ≤ Kдля этого покажем, что присваивание значения переменнойформулы уменьшает 𝛾 хотя бы на 5.5

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 8 / 20

Page 18: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Верхняя оценка 2K/5.5

Теорема

MAX-2-SAT может быть решена за время poly(K ) · 2K/5.5, где K —количество клозов формулы F .

Доказательство

докажем оценку 2𝛾/5.5; этого достаточно, поскольку 𝛾 ≤ K2 ≤ K

для этого покажем, что присваивание значения переменнойформулы уменьшает 𝛾 хотя бы на 5.5

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 8 / 20

Page 19: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Верхняя оценка 2K/5.5

Теорема

MAX-2-SAT может быть решена за время poly(K ) · 2K/5.5, где K —количество клозов формулы F .

Доказательство

докажем оценку 2𝛾/5.5; этого достаточно, поскольку 𝛾 ≤ K2 ≤ Kдля этого покажем, что присваивание значения переменнойформулы уменьшает 𝛾 хотя бы на 5.5

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 8 / 20

Page 20: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Доказательство

0 1 1.9 2.5 3𝛾 -q qq qq qq qq q

N1, N2 N3 N4 N5 N6

упрощенная формула не содержит переменных, входящих менеечем в три 2-клоза

рассмотрим переменную входящую в хотя бы шесть 2-клозов:Δ𝛾 ≥ 3 + 6 · 0.5 = 6рассмотрим переменную входящую в ровно пять 2-клозов:Δ𝛾 ≥ 2.5 + 5 · 0.6 = 5.5рассмотрим переменную входящую в ровно четыре 2-клозов:Δ𝛾 ≥ 1.9 + 4 · 0.9 = 5.5

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 9 / 20

Page 21: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Доказательство

0 1 1.9 2.5 3𝛾 -q qq qq qq qq q

N1, N2 N3 N4 N5 N6s s

упрощенная формула не содержит переменных, входящих менеечем в три 2-клозарассмотрим переменную входящую в хотя бы шесть 2-клозов:Δ𝛾 ≥ 3 + 6 · 0.5 = 6

рассмотрим переменную входящую в ровно пять 2-клозов:Δ𝛾 ≥ 2.5 + 5 · 0.6 = 5.5рассмотрим переменную входящую в ровно четыре 2-клозов:Δ𝛾 ≥ 1.9 + 4 · 0.9 = 5.5

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 9 / 20

Page 22: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Доказательство

0 1 1.9 2.5 3𝛾 -q qq qq qq qq q

N1, N2 N3 N4 N5 N6s s

упрощенная формула не содержит переменных, входящих менеечем в три 2-клозарассмотрим переменную входящую в хотя бы шесть 2-клозов:Δ𝛾 ≥ 3 + 6 · 0.5 = 6рассмотрим переменную входящую в ровно пять 2-клозов:Δ𝛾 ≥ 2.5 + 5 · 0.6 = 5.5

рассмотрим переменную входящую в ровно четыре 2-клозов:Δ𝛾 ≥ 1.9 + 4 · 0.9 = 5.5

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 9 / 20

Page 23: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

Доказательство

0 1 1.9 2.5 3𝛾 -q qq qq qq qq q

N1, N2 N3 N4 N5 N6s s

упрощенная формула не содержит переменных, входящих менеечем в три 2-клозарассмотрим переменную входящую в хотя бы шесть 2-клозов:Δ𝛾 ≥ 3 + 6 · 0.5 = 6рассмотрим переменную входящую в ровно пять 2-клозов:Δ𝛾 ≥ 2.5 + 5 · 0.6 = 5.5рассмотрим переменную входящую в ровно четыре 2-клозов:Δ𝛾 ≥ 1.9 + 4 · 0.9 = 5.5

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 9 / 20

Page 24: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

(n, 3)-MAX-2-SAT

все переменные F входят не более чем в три 2-клозаесли F упрощена, то все ее переменные входят ровно в три2-клоза; значит, количество переменных четно𝛾(F ) = N(F )

необходимо показать, что после присваивания значенияпеременной еще хотя бы четыре другие переменные будут удаленыправилами упрощениядоказывается небольшим перебором случаев (есть иавтоматическое доказательство)

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 10 / 20

Page 25: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

(n, 3)-MAX-2-SAT

все переменные F входят не более чем в три 2-клоза

если F упрощена, то все ее переменные входят ровно в три2-клоза; значит, количество переменных четно𝛾(F ) = N(F )

необходимо показать, что после присваивания значенияпеременной еще хотя бы четыре другие переменные будут удаленыправилами упрощениядоказывается небольшим перебором случаев (есть иавтоматическое доказательство)

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 10 / 20

Page 26: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

(n, 3)-MAX-2-SAT

все переменные F входят не более чем в три 2-клозаесли F упрощена, то все ее переменные входят ровно в три2-клоза; значит, количество переменных четно

𝛾(F ) = N(F )

необходимо показать, что после присваивания значенияпеременной еще хотя бы четыре другие переменные будут удаленыправилами упрощениядоказывается небольшим перебором случаев (есть иавтоматическое доказательство)

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 10 / 20

Page 27: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

(n, 3)-MAX-2-SAT

все переменные F входят не более чем в три 2-клозаесли F упрощена, то все ее переменные входят ровно в три2-клоза; значит, количество переменных четно𝛾(F ) = N(F )

необходимо показать, что после присваивания значенияпеременной еще хотя бы четыре другие переменные будут удаленыправилами упрощениядоказывается небольшим перебором случаев (есть иавтоматическое доказательство)

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 10 / 20

Page 28: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

(n, 3)-MAX-2-SAT

все переменные F входят не более чем в три 2-клозаесли F упрощена, то все ее переменные входят ровно в три2-клоза; значит, количество переменных четно𝛾(F ) = N(F )

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

доказывается небольшим перебором случаев (есть иавтоматическое доказательство)

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 10 / 20

Page 29: 20091108 algorithmsfornphardproblems kulikov_lecture08

Комбинированные меры сложности

(n, 3)-MAX-2-SAT

все переменные F входят не более чем в три 2-клозаесли F упрощена, то все ее переменные входят ровно в три2-клоза; значит, количество переменных четно𝛾(F ) = N(F )

необходимо показать, что после присваивания значенияпеременной еще хотя бы четыре другие переменные будут удаленыправилами упрощениядоказывается небольшим перебором случаев (есть иавтоматическое доказательство)

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 10 / 20

Page 30: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

План лекции

1 Комбинированные меры сложности

2 Запоминание дизъюнктов

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 11 / 20

Page 31: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Запоминание дизъюнктов для задачи выполнимости

Запоминание дизъюнктов для задачи выполнимостиВ алгоритмах, решающих задачу выполнимости, запоминаниедизъюнктов означает, что алгоритм хранит частичные наборыпеременных, которые не могут быть расширены до выполняющего.

Пример

{y = 0} является таким набором для формулы

(x ∨ y ∨ z) ∧ (¬x ∨ ¬y) ∧ (y ∨ z) ∧ (y ∨ ¬z).

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 12 / 20

Page 32: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Запоминание дизъюнктов для задачи выполнимости

Запоминание дизъюнктов для задачи выполнимостиВ алгоритмах, решающих задачу выполнимости, запоминаниедизъюнктов означает, что алгоритм хранит частичные наборыпеременных, которые не могут быть расширены до выполняющего.

Пример

{y = 0} является таким набором для формулы

(x ∨ y ∨ z) ∧ (¬x ∨ ¬y) ∧ (y ∨ z) ∧ (y ∨ ¬z).

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 12 / 20

Page 33: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Как решить k-SAT за менее чем 2n шагов?

Алгоритм

Выбрать произвольный клоз (x1 ∨ x2 ∨ · · · ∨ xt) данной формулы Fв k-КНФ и произвести рекурсивные вызовы дляF [x1 = 1],F [x1 = 0, x2 = 1],F [x1 = 0, x2 = 0, x3 = 1],. . .F [x1 = 0, x2 = 0, . . . , xt−1 = 0, xt = 1].

АнализРасщепление выше является (1, 2, . . . , t)-расщеплениемотносительно количества переменных n.Поскольку t ≤ k , 𝜏(1, 2, . . . , t) ≤ 𝜏(1, 2, . . . , k) = ck < 2.Таким образом, время работы не превосходит cn

k .

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 13 / 20

Page 34: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Как решить k-SAT за менее чем 2n шагов?

Алгоритм

Выбрать произвольный клоз (x1 ∨ x2 ∨ · · · ∨ xt) данной формулы Fв k-КНФ и произвести рекурсивные вызовы дляF [x1 = 1],F [x1 = 0, x2 = 1],F [x1 = 0, x2 = 0, x3 = 1],. . .F [x1 = 0, x2 = 0, . . . , xt−1 = 0, xt = 1].

АнализРасщепление выше является (1, 2, . . . , t)-расщеплениемотносительно количества переменных n.Поскольку t ≤ k , 𝜏(1, 2, . . . , t) ≤ 𝜏(1, 2, . . . , k) = ck < 2.Таким образом, время работы не превосходит cn

k .

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 13 / 20

Page 35: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Как решить k-SAT за менее чем 2n шагов?

Алгоритм

Выбрать произвольный клоз (x1 ∨ x2 ∨ · · · ∨ xt) данной формулы Fв k-КНФ и произвести рекурсивные вызовы дляF [x1 = 1],F [x1 = 0, x2 = 1],F [x1 = 0, x2 = 0, x3 = 1],. . .F [x1 = 0, x2 = 0, . . . , xt−1 = 0, xt = 1].

Анализ

Расщепление выше является (1, 2, . . . , t)-расщеплениемотносительно количества переменных n.Поскольку t ≤ k , 𝜏(1, 2, . . . , t) ≤ 𝜏(1, 2, . . . , k) = ck < 2.Таким образом, время работы не превосходит cn

k .

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 13 / 20

Page 36: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Как решить k-SAT за менее чем 2n шагов?

Алгоритм

Выбрать произвольный клоз (x1 ∨ x2 ∨ · · · ∨ xt) данной формулы Fв k-КНФ и произвести рекурсивные вызовы дляF [x1 = 1],F [x1 = 0, x2 = 1],F [x1 = 0, x2 = 0, x3 = 1],. . .F [x1 = 0, x2 = 0, . . . , xt−1 = 0, xt = 1].

АнализРасщепление выше является (1, 2, . . . , t)-расщеплениемотносительно количества переменных n.

Поскольку t ≤ k , 𝜏(1, 2, . . . , t) ≤ 𝜏(1, 2, . . . , k) = ck < 2.Таким образом, время работы не превосходит cn

k .

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 13 / 20

Page 37: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Как решить k-SAT за менее чем 2n шагов?

Алгоритм

Выбрать произвольный клоз (x1 ∨ x2 ∨ · · · ∨ xt) данной формулы Fв k-КНФ и произвести рекурсивные вызовы дляF [x1 = 1],F [x1 = 0, x2 = 1],F [x1 = 0, x2 = 0, x3 = 1],. . .F [x1 = 0, x2 = 0, . . . , xt−1 = 0, xt = 1].

АнализРасщепление выше является (1, 2, . . . , t)-расщеплениемотносительно количества переменных n.Поскольку t ≤ k , 𝜏(1, 2, . . . , t) ≤ 𝜏(1, 2, . . . , k) = ck < 2.

Таким образом, время работы не превосходит cnk .

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 13 / 20

Page 38: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Как решить k-SAT за менее чем 2n шагов?

Алгоритм

Выбрать произвольный клоз (x1 ∨ x2 ∨ · · · ∨ xt) данной формулы Fв k-КНФ и произвести рекурсивные вызовы дляF [x1 = 1],F [x1 = 0, x2 = 1],F [x1 = 0, x2 = 0, x3 = 1],. . .F [x1 = 0, x2 = 0, . . . , xt−1 = 0, xt = 1].

АнализРасщепление выше является (1, 2, . . . , t)-расщеплениемотносительно количества переменных n.Поскольку t ≤ k , 𝜏(1, 2, . . . , t) ≤ 𝜏(1, 2, . . . , k) = ck < 2.Таким образом, время работы не превосходит cn

k .

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 13 / 20

Page 39: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

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

F = F ′ ∧ (a ∨ C1) ∧ · · · ∧ (a ∨ Cp) ∧ (¬a ∨ D1) ∧ . . . (¬a ∨ Dq)

F [a = 0] = F ′ ∧ C1 ∧ · · · ∧ Cp⏟ ⏞ F0

, F [a = 1] = F ′ ∧ D1 ∧ · · · ∧ Dq⏟ ⏞ F1

Допустим, что F0 сравнительно мала, так что её выполнимостьможно проверить за полиномиальное время.Если F0 невыполнима, тогда невыполнима и F [a = 0] и не нужнорасщепляться вообще (можно просто присвоить значение 1переменной a).В противном случае найдём набор 𝛼, выполняющий F0.Тогда мы можем рекурсивно вызваться для F [a = 0] и еслиполучен ответ “невыполнима”, тогда мы знаем, что 𝛼 не можетбыть расширен до выполняющего набора F ′. Таким образом, нетнеобходимости рассматривать расширения 𝛼 в ветке F [a = 1].

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 14 / 20

Page 40: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

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

F = F ′ ∧ (a ∨ C1) ∧ · · · ∧ (a ∨ Cp) ∧ (¬a ∨ D1) ∧ . . . (¬a ∨ Dq)

F [a = 0] = F ′ ∧ C1 ∧ · · · ∧ Cp⏟ ⏞ F0

, F [a = 1] = F ′ ∧ D1 ∧ · · · ∧ Dq⏟ ⏞ F1

Допустим, что F0 сравнительно мала, так что её выполнимостьможно проверить за полиномиальное время.Если F0 невыполнима, тогда невыполнима и F [a = 0] и не нужнорасщепляться вообще (можно просто присвоить значение 1переменной a).В противном случае найдём набор 𝛼, выполняющий F0.Тогда мы можем рекурсивно вызваться для F [a = 0] и еслиполучен ответ “невыполнима”, тогда мы знаем, что 𝛼 не можетбыть расширен до выполняющего набора F ′. Таким образом, нетнеобходимости рассматривать расширения 𝛼 в ветке F [a = 1].

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 14 / 20

Page 41: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

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

F = F ′ ∧ (a ∨ C1) ∧ · · · ∧ (a ∨ Cp) ∧ (¬a ∨ D1) ∧ . . . (¬a ∨ Dq)

F [a = 0] = F ′ ∧ C1 ∧ · · · ∧ Cp⏟ ⏞ F0

,

F [a = 1] = F ′ ∧ D1 ∧ · · · ∧ Dq⏟ ⏞ F1

Допустим, что F0 сравнительно мала, так что её выполнимостьможно проверить за полиномиальное время.Если F0 невыполнима, тогда невыполнима и F [a = 0] и не нужнорасщепляться вообще (можно просто присвоить значение 1переменной a).В противном случае найдём набор 𝛼, выполняющий F0.Тогда мы можем рекурсивно вызваться для F [a = 0] и еслиполучен ответ “невыполнима”, тогда мы знаем, что 𝛼 не можетбыть расширен до выполняющего набора F ′. Таким образом, нетнеобходимости рассматривать расширения 𝛼 в ветке F [a = 1].

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 14 / 20

Page 42: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

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

F = F ′ ∧ (a ∨ C1) ∧ · · · ∧ (a ∨ Cp) ∧ (¬a ∨ D1) ∧ . . . (¬a ∨ Dq)

F [a = 0] = F ′ ∧ C1 ∧ · · · ∧ Cp⏟ ⏞ F0

, F [a = 1] = F ′ ∧ D1 ∧ · · · ∧ Dq⏟ ⏞ F1

Допустим, что F0 сравнительно мала, так что её выполнимостьможно проверить за полиномиальное время.Если F0 невыполнима, тогда невыполнима и F [a = 0] и не нужнорасщепляться вообще (можно просто присвоить значение 1переменной a).В противном случае найдём набор 𝛼, выполняющий F0.Тогда мы можем рекурсивно вызваться для F [a = 0] и еслиполучен ответ “невыполнима”, тогда мы знаем, что 𝛼 не можетбыть расширен до выполняющего набора F ′. Таким образом, нетнеобходимости рассматривать расширения 𝛼 в ветке F [a = 1].

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 14 / 20

Page 43: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

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

F = F ′ ∧ (a ∨ C1) ∧ · · · ∧ (a ∨ Cp) ∧ (¬a ∨ D1) ∧ . . . (¬a ∨ Dq)

F [a = 0] = F ′ ∧ C1 ∧ · · · ∧ Cp⏟ ⏞ F0

, F [a = 1] = F ′ ∧ D1 ∧ · · · ∧ Dq⏟ ⏞ F1

Допустим, что F0 сравнительно мала, так что её выполнимостьможно проверить за полиномиальное время.

Если F0 невыполнима, тогда невыполнима и F [a = 0] и не нужнорасщепляться вообще (можно просто присвоить значение 1переменной a).В противном случае найдём набор 𝛼, выполняющий F0.Тогда мы можем рекурсивно вызваться для F [a = 0] и еслиполучен ответ “невыполнима”, тогда мы знаем, что 𝛼 не можетбыть расширен до выполняющего набора F ′. Таким образом, нетнеобходимости рассматривать расширения 𝛼 в ветке F [a = 1].

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 14 / 20

Page 44: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

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

F = F ′ ∧ (a ∨ C1) ∧ · · · ∧ (a ∨ Cp) ∧ (¬a ∨ D1) ∧ . . . (¬a ∨ Dq)

F [a = 0] = F ′ ∧ C1 ∧ · · · ∧ Cp⏟ ⏞ F0

, F [a = 1] = F ′ ∧ D1 ∧ · · · ∧ Dq⏟ ⏞ F1

Допустим, что F0 сравнительно мала, так что её выполнимостьможно проверить за полиномиальное время.Если F0 невыполнима, тогда невыполнима и F [a = 0] и не нужнорасщепляться вообще (можно просто присвоить значение 1переменной a).

В противном случае найдём набор 𝛼, выполняющий F0.Тогда мы можем рекурсивно вызваться для F [a = 0] и еслиполучен ответ “невыполнима”, тогда мы знаем, что 𝛼 не можетбыть расширен до выполняющего набора F ′. Таким образом, нетнеобходимости рассматривать расширения 𝛼 в ветке F [a = 1].

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 14 / 20

Page 45: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

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

F = F ′ ∧ (a ∨ C1) ∧ · · · ∧ (a ∨ Cp) ∧ (¬a ∨ D1) ∧ . . . (¬a ∨ Dq)

F [a = 0] = F ′ ∧ C1 ∧ · · · ∧ Cp⏟ ⏞ F0

, F [a = 1] = F ′ ∧ D1 ∧ · · · ∧ Dq⏟ ⏞ F1

Допустим, что F0 сравнительно мала, так что её выполнимостьможно проверить за полиномиальное время.Если F0 невыполнима, тогда невыполнима и F [a = 0] и не нужнорасщепляться вообще (можно просто присвоить значение 1переменной a).В противном случае найдём набор 𝛼, выполняющий F0.

Тогда мы можем рекурсивно вызваться для F [a = 0] и еслиполучен ответ “невыполнима”, тогда мы знаем, что 𝛼 не можетбыть расширен до выполняющего набора F ′. Таким образом, нетнеобходимости рассматривать расширения 𝛼 в ветке F [a = 1].

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 14 / 20

Page 46: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

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

F = F ′ ∧ (a ∨ C1) ∧ · · · ∧ (a ∨ Cp) ∧ (¬a ∨ D1) ∧ . . . (¬a ∨ Dq)

F [a = 0] = F ′ ∧ C1 ∧ · · · ∧ Cp⏟ ⏞ F0

, F [a = 1] = F ′ ∧ D1 ∧ · · · ∧ Dq⏟ ⏞ F1

Допустим, что F0 сравнительно мала, так что её выполнимостьможно проверить за полиномиальное время.Если F0 невыполнима, тогда невыполнима и F [a = 0] и не нужнорасщепляться вообще (можно просто присвоить значение 1переменной a).В противном случае найдём набор 𝛼, выполняющий F0.Тогда мы можем рекурсивно вызваться для F [a = 0] и еслиполучен ответ “невыполнима”, тогда мы знаем, что 𝛼 не можетбыть расширен до выполняющего набора F ′. Таким образом, нетнеобходимости рассматривать расширения 𝛼 в ветке F [a = 1].

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 14 / 20

Page 47: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Основные идеи: иллюстрация

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 15 / 20

Page 48: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Основные идеи: иллюстрация

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

проверяем выполнимость F0

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 15 / 20

Page 49: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Основные идеи: иллюстрация

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

проверяем выполнимость F0

если F0 невыполнима, тогдане нужно идти в левую ветку

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 15 / 20

Page 50: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Основные идеи: иллюстрация

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

проверяем выполнимость F0

если F0 невыполнима, тогдане нужно идти в левую ветку

поэтому допустим, что 𝛼 выполняет F0

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 15 / 20

Page 51: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Основные идеи: иллюстрация

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

проверяем выполнимость F0

если F0 невыполнима, тогдане нужно идти в левую ветку

поэтому допустим, что 𝛼 выполняет F0

тогда идём в левую ветку

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 15 / 20

Page 52: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Основные идеи: иллюстрация

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

проверяем выполнимость F0

если F0 невыполнима, тогдане нужно идти в левую ветку

поэтому допустим, что 𝛼 выполняет F0

тогда идём в левую ветку

если F ′ ∧ F0 выполнима,просто сообщаем, что выполнима и F

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 15 / 20

Page 53: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Основные идеи: иллюстрация

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

проверяем выполнимость F0

если F0 невыполнима, тогдане нужно идти в левую ветку

поэтому допустим, что 𝛼 выполняет F0

тогда идём в левую ветку

если F ′ ∧ F0 выполнима,просто сообщаем, что выполнима и F

в противном случае идём в правую ветку

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 15 / 20

Page 54: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Основные идеи: иллюстрация

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

проверяем выполнимость F0

если F0 невыполнима, тогдане нужно идти в левую ветку

поэтому допустим, что 𝛼 выполняет F0

тогда идём в левую ветку

если F ′ ∧ F0 выполнима,просто сообщаем, что выполнима и F

в противном случае идём в правую веткуоднако мы теперь знаем, что расширения 𝛼 не могут выполнить F ′

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 15 / 20

Page 55: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Основные идеи: иллюстрация

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

проверяем выполнимость F0

если F0 невыполнима, тогдане нужно идти в левую ветку

поэтому допустим, что 𝛼 выполняет F0

тогда идём в левую ветку

если F ′ ∧ F0 выполнима,просто сообщаем, что выполнима и F

в противном случае идём в правую веткуоднако мы теперь знаем, что расширения 𝛼 не могут выполнить F ′

и пространство поиска сужается

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 15 / 20

Page 56: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Алгоритм для выполнимости формул константнойплотности

Пусть дана формула F с не более чем Δn клозами.

Если F содержит литерал a, такой что и a, и ¬a встречаются хотябы d раз (константа d = d(Δ) будет определена позже),расщепимся на F [a = 0] и F [a = 1].В противном случае выберем d−-литерал a.

Пусть F [a = 0] = F ′ ∧ F0, F [a = 1] = F ′ ∧ F1.Поскольку a является d−-литералом, F0 содержит не более dклозов и мы можем проверить выполнимость F0 заполиномиальное время.Если F0 невыполнима, тогда невыполнима и F [a = 0] ирасщепляться не нужно (можно просто присвоить значение 1переменной a).В противном случае находим набор 𝛼 = {l1, . . . , lt}, выполняющийF0.

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 16 / 20

Page 57: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Алгоритм для выполнимости формул константнойплотности

Пусть дана формула F с не более чем Δn клозами.Если F содержит литерал a, такой что и a, и ¬a встречаются хотябы d раз (константа d = d(Δ) будет определена позже),расщепимся на F [a = 0] и F [a = 1].

В противном случае выберем d−-литерал a.Пусть F [a = 0] = F ′ ∧ F0, F [a = 1] = F ′ ∧ F1.Поскольку a является d−-литералом, F0 содержит не более dклозов и мы можем проверить выполнимость F0 заполиномиальное время.Если F0 невыполнима, тогда невыполнима и F [a = 0] ирасщепляться не нужно (можно просто присвоить значение 1переменной a).В противном случае находим набор 𝛼 = {l1, . . . , lt}, выполняющийF0.

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 16 / 20

Page 58: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Алгоритм для выполнимости формул константнойплотности

Пусть дана формула F с не более чем Δn клозами.Если F содержит литерал a, такой что и a, и ¬a встречаются хотябы d раз (константа d = d(Δ) будет определена позже),расщепимся на F [a = 0] и F [a = 1].В противном случае выберем d−-литерал a.

Пусть F [a = 0] = F ′ ∧ F0, F [a = 1] = F ′ ∧ F1.Поскольку a является d−-литералом, F0 содержит не более dклозов и мы можем проверить выполнимость F0 заполиномиальное время.Если F0 невыполнима, тогда невыполнима и F [a = 0] ирасщепляться не нужно (можно просто присвоить значение 1переменной a).В противном случае находим набор 𝛼 = {l1, . . . , lt}, выполняющийF0.

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 16 / 20

Page 59: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Алгоритм для выполнимости формул константнойплотности

Пусть дана формула F с не более чем Δn клозами.Если F содержит литерал a, такой что и a, и ¬a встречаются хотябы d раз (константа d = d(Δ) будет определена позже),расщепимся на F [a = 0] и F [a = 1].В противном случае выберем d−-литерал a.

Пусть F [a = 0] = F ′ ∧ F0, F [a = 1] = F ′ ∧ F1.

Поскольку a является d−-литералом, F0 содержит не более dклозов и мы можем проверить выполнимость F0 заполиномиальное время.Если F0 невыполнима, тогда невыполнима и F [a = 0] ирасщепляться не нужно (можно просто присвоить значение 1переменной a).В противном случае находим набор 𝛼 = {l1, . . . , lt}, выполняющийF0.

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 16 / 20

Page 60: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Алгоритм для выполнимости формул константнойплотности

Пусть дана формула F с не более чем Δn клозами.Если F содержит литерал a, такой что и a, и ¬a встречаются хотябы d раз (константа d = d(Δ) будет определена позже),расщепимся на F [a = 0] и F [a = 1].В противном случае выберем d−-литерал a.

Пусть F [a = 0] = F ′ ∧ F0, F [a = 1] = F ′ ∧ F1.Поскольку a является d−-литералом, F0 содержит не более dклозов и мы можем проверить выполнимость F0 заполиномиальное время.

Если F0 невыполнима, тогда невыполнима и F [a = 0] ирасщепляться не нужно (можно просто присвоить значение 1переменной a).В противном случае находим набор 𝛼 = {l1, . . . , lt}, выполняющийF0.

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 16 / 20

Page 61: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Алгоритм для выполнимости формул константнойплотности

Пусть дана формула F с не более чем Δn клозами.Если F содержит литерал a, такой что и a, и ¬a встречаются хотябы d раз (константа d = d(Δ) будет определена позже),расщепимся на F [a = 0] и F [a = 1].В противном случае выберем d−-литерал a.

Пусть F [a = 0] = F ′ ∧ F0, F [a = 1] = F ′ ∧ F1.Поскольку a является d−-литералом, F0 содержит не более dклозов и мы можем проверить выполнимость F0 заполиномиальное время.Если F0 невыполнима, тогда невыполнима и F [a = 0] ирасщепляться не нужно (можно просто присвоить значение 1переменной a).

В противном случае находим набор 𝛼 = {l1, . . . , lt}, выполняющийF0.

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 16 / 20

Page 62: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Алгоритм для выполнимости формул константнойплотности

Пусть дана формула F с не более чем Δn клозами.Если F содержит литерал a, такой что и a, и ¬a встречаются хотябы d раз (константа d = d(Δ) будет определена позже),расщепимся на F [a = 0] и F [a = 1].В противном случае выберем d−-литерал a.

Пусть F [a = 0] = F ′ ∧ F0, F [a = 1] = F ′ ∧ F1.Поскольку a является d−-литералом, F0 содержит не более dклозов и мы можем проверить выполнимость F0 заполиномиальное время.Если F0 невыполнима, тогда невыполнима и F [a = 0] ирасщепляться не нужно (можно просто присвоить значение 1переменной a).В противном случае находим набор 𝛼 = {l1, . . . , lt}, выполняющийF0.

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 16 / 20

Page 63: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Продолжение описания алгоритма

Напомним, что a — d−-литерал, F [a = 0] = F ′ ∧ F0,F [a = 1] = F ′ ∧ F1, 𝛼 = {l1, . . . , lt} — выполняющий набор F0.Рекурсивно вызовемся для F [a = 0].Если F [a = 0] выполнима, то выполнима и F .В противном случае F [a = 0] невыполнима и мы заключаем, что𝛼 не может быть расширен до выполняющего набора F ′ (ибоF [a = 0] = F ′ ∧ F0). Значит, в ветке F [a = 1] можно расщепитьсятак: F [a = 1, l1 = 0], F [a = 1, l1 = 1, l2 = 0], . . . ,F [a = 1, l1 = 1, l2 = 1, . . . , lt−1 = 1, lt = 0].

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 17 / 20

Page 64: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Продолжение описания алгоритма

Напомним, что a — d−-литерал, F [a = 0] = F ′ ∧ F0,F [a = 1] = F ′ ∧ F1, 𝛼 = {l1, . . . , lt} — выполняющий набор F0.

Рекурсивно вызовемся для F [a = 0].Если F [a = 0] выполнима, то выполнима и F .В противном случае F [a = 0] невыполнима и мы заключаем, что𝛼 не может быть расширен до выполняющего набора F ′ (ибоF [a = 0] = F ′ ∧ F0). Значит, в ветке F [a = 1] можно расщепитьсятак: F [a = 1, l1 = 0], F [a = 1, l1 = 1, l2 = 0], . . . ,F [a = 1, l1 = 1, l2 = 1, . . . , lt−1 = 1, lt = 0].

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 17 / 20

Page 65: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Продолжение описания алгоритма

Напомним, что a — d−-литерал, F [a = 0] = F ′ ∧ F0,F [a = 1] = F ′ ∧ F1, 𝛼 = {l1, . . . , lt} — выполняющий набор F0.Рекурсивно вызовемся для F [a = 0].

Если F [a = 0] выполнима, то выполнима и F .В противном случае F [a = 0] невыполнима и мы заключаем, что𝛼 не может быть расширен до выполняющего набора F ′ (ибоF [a = 0] = F ′ ∧ F0). Значит, в ветке F [a = 1] можно расщепитьсятак: F [a = 1, l1 = 0], F [a = 1, l1 = 1, l2 = 0], . . . ,F [a = 1, l1 = 1, l2 = 1, . . . , lt−1 = 1, lt = 0].

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 17 / 20

Page 66: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Продолжение описания алгоритма

Напомним, что a — d−-литерал, F [a = 0] = F ′ ∧ F0,F [a = 1] = F ′ ∧ F1, 𝛼 = {l1, . . . , lt} — выполняющий набор F0.Рекурсивно вызовемся для F [a = 0].Если F [a = 0] выполнима, то выполнима и F .

В противном случае F [a = 0] невыполнима и мы заключаем, что𝛼 не может быть расширен до выполняющего набора F ′ (ибоF [a = 0] = F ′ ∧ F0). Значит, в ветке F [a = 1] можно расщепитьсятак: F [a = 1, l1 = 0], F [a = 1, l1 = 1, l2 = 0], . . . ,F [a = 1, l1 = 1, l2 = 1, . . . , lt−1 = 1, lt = 0].

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 17 / 20

Page 67: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Продолжение описания алгоритма

Напомним, что a — d−-литерал, F [a = 0] = F ′ ∧ F0,F [a = 1] = F ′ ∧ F1, 𝛼 = {l1, . . . , lt} — выполняющий набор F0.Рекурсивно вызовемся для F [a = 0].Если F [a = 0] выполнима, то выполнима и F .В противном случае F [a = 0] невыполнима и мы заключаем, что𝛼 не может быть расширен до выполняющего набора F ′ (ибоF [a = 0] = F ′ ∧ F0).

Значит, в ветке F [a = 1] можно расщепитьсятак: F [a = 1, l1 = 0], F [a = 1, l1 = 1, l2 = 0], . . . ,F [a = 1, l1 = 1, l2 = 1, . . . , lt−1 = 1, lt = 0].

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 17 / 20

Page 68: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Продолжение описания алгоритма

Напомним, что a — d−-литерал, F [a = 0] = F ′ ∧ F0,F [a = 1] = F ′ ∧ F1, 𝛼 = {l1, . . . , lt} — выполняющий набор F0.Рекурсивно вызовемся для F [a = 0].Если F [a = 0] выполнима, то выполнима и F .В противном случае F [a = 0] невыполнима и мы заключаем, что𝛼 не может быть расширен до выполняющего набора F ′ (ибоF [a = 0] = F ′ ∧ F0). Значит, в ветке F [a = 1] можно расщепитьсятак: F [a = 1, l1 = 0], F [a = 1, l1 = 1, l2 = 0], . . . ,F [a = 1, l1 = 1, l2 = 1, . . . , lt−1 = 1, lt = 0].

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 17 / 20

Page 69: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Анализ времени работы алгоритма

для оценки времени работы используется следующая мерасложности

𝛾(F ) = n(F ) + w ·m(F )

расщепление по (d+, d+)-литералу даёт число расщепления неболее 𝜏(1 + wd , 1 + wd) = 2

11+wd

расщепление по d−-литералу даёт число расщепления не более𝜏(1, 2, . . . , d + 1)положим d равным произвольной константе, большей Δ

пусть w — константа, такая что 21

1+wd = 𝜏(1, 2, . . . , d + 1)тогда время работы алгоритмы не превосходит= 2

n+wm1+wd < 2

n+wΔn1+wd = cn,

где c = 21+wΔ1+wd < 2 — константа

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 18 / 20

Page 70: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Анализ времени работы алгоритма

для оценки времени работы используется следующая мерасложности

𝛾(F ) = n(F ) + w ·m(F )

расщепление по (d+, d+)-литералу даёт число расщепления неболее 𝜏(1 + wd , 1 + wd) = 2

11+wd

расщепление по d−-литералу даёт число расщепления не более𝜏(1, 2, . . . , d + 1)положим d равным произвольной константе, большей Δ

пусть w — константа, такая что 21

1+wd = 𝜏(1, 2, . . . , d + 1)тогда время работы алгоритмы не превосходит= 2

n+wm1+wd < 2

n+wΔn1+wd = cn,

где c = 21+wΔ1+wd < 2 — константа

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 18 / 20

Page 71: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Анализ времени работы алгоритма

для оценки времени работы используется следующая мерасложности

𝛾(F ) = n(F ) + w ·m(F )

расщепление по (d+, d+)-литералу даёт число расщепления неболее 𝜏(1 + wd , 1 + wd) = 2

11+wd

расщепление по d−-литералу даёт число расщепления не более𝜏(1, 2, . . . , d + 1)положим d равным произвольной константе, большей Δ

пусть w — константа, такая что 21

1+wd = 𝜏(1, 2, . . . , d + 1)тогда время работы алгоритмы не превосходит= 2

n+wm1+wd < 2

n+wΔn1+wd = cn,

где c = 21+wΔ1+wd < 2 — константа

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 18 / 20

Page 72: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Анализ времени работы алгоритма

для оценки времени работы используется следующая мерасложности

𝛾(F ) = n(F ) + w ·m(F )

расщепление по (d+, d+)-литералу даёт число расщепления неболее 𝜏(1 + wd , 1 + wd) = 2

11+wd

расщепление по d−-литералу даёт число расщепления не более𝜏(1, 2, . . . , d + 1)

положим d равным произвольной константе, большей Δ

пусть w — константа, такая что 21

1+wd = 𝜏(1, 2, . . . , d + 1)тогда время работы алгоритмы не превосходит= 2

n+wm1+wd < 2

n+wΔn1+wd = cn,

где c = 21+wΔ1+wd < 2 — константа

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 18 / 20

Page 73: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Анализ времени работы алгоритма

для оценки времени работы используется следующая мерасложности

𝛾(F ) = n(F ) + w ·m(F )

расщепление по (d+, d+)-литералу даёт число расщепления неболее 𝜏(1 + wd , 1 + wd) = 2

11+wd

расщепление по d−-литералу даёт число расщепления не более𝜏(1, 2, . . . , d + 1)положим d равным произвольной константе, большей Δ

пусть w — константа, такая что 21

1+wd = 𝜏(1, 2, . . . , d + 1)тогда время работы алгоритмы не превосходит= 2

n+wm1+wd < 2

n+wΔn1+wd = cn,

где c = 21+wΔ1+wd < 2 — константа

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 18 / 20

Page 74: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Анализ времени работы алгоритма

для оценки времени работы используется следующая мерасложности

𝛾(F ) = n(F ) + w ·m(F )

расщепление по (d+, d+)-литералу даёт число расщепления неболее 𝜏(1 + wd , 1 + wd) = 2

11+wd

расщепление по d−-литералу даёт число расщепления не более𝜏(1, 2, . . . , d + 1)положим d равным произвольной константе, большей Δ

пусть w — константа, такая что 21

1+wd = 𝜏(1, 2, . . . , d + 1)

тогда время работы алгоритмы не превосходит= 2

n+wm1+wd < 2

n+wΔn1+wd = cn,

где c = 21+wΔ1+wd < 2 — константа

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 18 / 20

Page 75: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Анализ времени работы алгоритма

для оценки времени работы используется следующая мерасложности

𝛾(F ) = n(F ) + w ·m(F )

расщепление по (d+, d+)-литералу даёт число расщепления неболее 𝜏(1 + wd , 1 + wd) = 2

11+wd

расщепление по d−-литералу даёт число расщепления не более𝜏(1, 2, . . . , d + 1)положим d равным произвольной константе, большей Δ

пусть w — константа, такая что 21

1+wd = 𝜏(1, 2, . . . , d + 1)тогда время работы алгоритмы не превосходит= 2

n+wm1+wd

< 2n+wΔn1+wd = cn,

где c = 21+wΔ1+wd < 2 — константа

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 18 / 20

Page 76: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Анализ времени работы алгоритма

для оценки времени работы используется следующая мерасложности

𝛾(F ) = n(F ) + w ·m(F )

расщепление по (d+, d+)-литералу даёт число расщепления неболее 𝜏(1 + wd , 1 + wd) = 2

11+wd

расщепление по d−-литералу даёт число расщепления не более𝜏(1, 2, . . . , d + 1)положим d равным произвольной константе, большей Δ

пусть w — константа, такая что 21

1+wd = 𝜏(1, 2, . . . , d + 1)тогда время работы алгоритмы не превосходит= 2

n+wm1+wd < 2

n+wΔn1+wd = cn,

где c = 21+wΔ1+wd < 2 — константа

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 18 / 20

Page 77: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Заключение

Итак, мы построили алгоритм для задачи выполнимостиформулы константной плотности со временем работы cn, гдеc < 2 — константа, а n — количество переменных.Напомним, что в общем случае задачи выполнимости (безограничений на длину клоза и количество клозов) такихалгоритмов неизвестно.

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 19 / 20

Page 78: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Заключение

Итак, мы построили алгоритм для задачи выполнимостиформулы константной плотности со временем работы cn, гдеc < 2 — константа, а n — количество переменных.

Напомним, что в общем случае задачи выполнимости (безограничений на длину клоза и количество клозов) такихалгоритмов неизвестно.

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 19 / 20

Page 79: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

Заключение

Итак, мы построили алгоритм для задачи выполнимостиформулы константной плотности со временем работы cn, гдеc < 2 — константа, а n — количество переменных.Напомним, что в общем случае задачи выполнимости (безограничений на длину клоза и количество клозов) такихалгоритмов неизвестно.

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 19 / 20

Page 80: 20091108 algorithmsfornphardproblems kulikov_lecture08

Запоминание дизъюнктов

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

А. Куликов (Computer Science клуб) 8. Алгоритмы расщепления 20 / 20