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

Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

Feb 12, 2017

Download

Documents

CS Center
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

А. Куликов

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

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

Page 2: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

План лекции

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

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

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

Page 3: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

План лекции

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

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

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

Page 4: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

План лекции

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

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

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

Page 5: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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

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

Page 6: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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

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

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

Page 7: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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

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

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

Page 8: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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

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

Page 9: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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

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

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

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

Page 10: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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

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

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

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

Page 11: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

Пример: 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

Пример: 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

Пример: 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

Пример: 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

Обозначим через 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

Верхняя оценка 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

Верхняя оценка 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

Верхняя оценка 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

Верхняя оценка 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

(n, 3)-MAX-2-SAT

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

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

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

Page 25: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

(n, 3)-MAX-2-SAT

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

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

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

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

Page 26: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

(n, 3)-MAX-2-SAT

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

𝛾(F ) = N(F )

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

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

Page 27: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

(n, 3)-MAX-2-SAT

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

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

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

Page 28: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

(n, 3)-MAX-2-SAT

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

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

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

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

Page 29: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

(n, 3)-MAX-2-SAT

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

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

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

Page 30: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

План лекции

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

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

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

Page 31: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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

Пример

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

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

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

Page 32: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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

Пример

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

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

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

Page 33: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

Как решить 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

Как решить 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

Как решить 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

Как решить 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

Как решить 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

Как решить 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

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

Page 48: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

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

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

Page 49: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

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

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

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

Page 50: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

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

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

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

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

Page 51: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

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

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

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

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

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

Page 52: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

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

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

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

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

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

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

Page 53: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

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

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

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

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

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

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

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

Page 54: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

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

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

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

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

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

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

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

Page 55: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

F

F ′ ∧ F0 F ′ ∧ F1

a = 0 a = 1

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

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

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

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

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

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

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

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

Page 56: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

Пусть дана формула 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

Пусть дана формула 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

Пусть дана формула 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

Пусть дана формула 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

Пусть дана формула 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

Пусть дана формула 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

Пусть дана формула 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

Напомним, что 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

Напомним, что 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

Напомним, что 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

Напомним, что 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

Напомним, что 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

Напомним, что 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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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

𝛾(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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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

𝛾(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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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

𝛾(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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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

𝛾(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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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

𝛾(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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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

𝛾(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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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

𝛾(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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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

𝛾(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: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

Заключение

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

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

Page 78: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

Заключение

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

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

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

Page 79: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

Заключение

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

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

Page 80: Алгоритмы для NP-трудных задач, осень 2009: Алгоритмы расщепления

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

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

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