20071202 efficientalgorithms kulikov_lecture12

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

Transcript of 20071202 efficientalgorithms kulikov_lecture12

Page 1: 20071202 efficientalgorithms kulikov_lecture12

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

А. Куликов

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 1 / 44

Page 2: 20071202 efficientalgorithms kulikov_lecture12

План лекции

1 РасщеплениеПравила упрощенияОценка времени работыDPLLPPSZ

2 Случайное блуждание

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 2 / 44

Page 3: 20071202 efficientalgorithms kulikov_lecture12

План лекции

1 РасщеплениеПравила упрощенияОценка времени работыDPLLPPSZ

2 Случайное блуждание

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 2 / 44

Page 4: 20071202 efficientalgorithms kulikov_lecture12

Типы алгоритмов для SAT

Расщепляющие алгоритмы

расщепляющие алгоритмы сводят задачу для входной формулы Fк задаче для более простых формул F1, . . . , Fj

I DPLL-подобные алгоритмы, как правило, заменяют входнуюформулу F на две формулы F [x = 1] и F [x = 0]; время работыоценивается из рекуррентных соотношений для количества листьевв дереве рекурсии

I PPSZ-подобные алгоритмы присваивают значения переменнымслучайно; время работы оценивается “глобально”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 3 / 44

Page 5: 20071202 efficientalgorithms kulikov_lecture12

Типы алгоритмов для SAT

Расщепляющие алгоритмырасщепляющие алгоритмы сводят задачу для входной формулы Fк задаче для более простых формул F1, . . . , Fj

I DPLL-подобные алгоритмы, как правило, заменяют входнуюформулу F на две формулы F [x = 1] и F [x = 0]; время работыоценивается из рекуррентных соотношений для количества листьевв дереве рекурсии

I PPSZ-подобные алгоритмы присваивают значения переменнымслучайно; время работы оценивается “глобально”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 3 / 44

Page 6: 20071202 efficientalgorithms kulikov_lecture12

Типы алгоритмов для SAT

Расщепляющие алгоритмырасщепляющие алгоритмы сводят задачу для входной формулы Fк задаче для более простых формул F1, . . . , Fj

I DPLL-подобные алгоритмы, как правило, заменяют входнуюформулу F на две формулы F [x = 1] и F [x = 0]; время работыоценивается из рекуррентных соотношений для количества листьевв дереве рекурсии

I PPSZ-подобные алгоритмы присваивают значения переменнымслучайно; время работы оценивается “глобально”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 3 / 44

Page 7: 20071202 efficientalgorithms kulikov_lecture12

Типы алгоритмов для SAT

Расщепляющие алгоритмырасщепляющие алгоритмы сводят задачу для входной формулы Fк задаче для более простых формул F1, . . . , Fj

I DPLL-подобные алгоритмы, как правило, заменяют входнуюформулу F на две формулы F [x = 1] и F [x = 0]; время работыоценивается из рекуррентных соотношений для количества листьевв дереве рекурсии

I PPSZ-подобные алгоритмы присваивают значения переменнымслучайно; время работы оценивается “глобально”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 3 / 44

Page 8: 20071202 efficientalgorithms kulikov_lecture12

Типы алгоритмов для SAT (продолжение)

Локальный поиск

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

I жадные алгоритмы выбирают переменную и изменяют ее значениена противоположное, так чтобы как можно больше увеличитьзначение некоторой функции от набора (к примеру, кол-вовыполненных клозов)

I алгоритмы, основанные на случайных блужданиях меняютзначение случайной переменной; время работы можно оценить,используя связь с одномерынми случайными блужданиями

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 4 / 44

Page 9: 20071202 efficientalgorithms kulikov_lecture12

Типы алгоритмов для SAT (продолжение)

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

I жадные алгоритмы выбирают переменную и изменяют ее значениена противоположное, так чтобы как можно больше увеличитьзначение некоторой функции от набора (к примеру, кол-вовыполненных клозов)

I алгоритмы, основанные на случайных блужданиях меняютзначение случайной переменной; время работы можно оценить,используя связь с одномерынми случайными блужданиями

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 4 / 44

Page 10: 20071202 efficientalgorithms kulikov_lecture12

Типы алгоритмов для SAT (продолжение)

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

I жадные алгоритмы выбирают переменную и изменяют ее значениена противоположное, так чтобы как можно больше увеличитьзначение некоторой функции от набора (к примеру, кол-вовыполненных клозов)

I алгоритмы, основанные на случайных блужданиях меняютзначение случайной переменной; время работы можно оценить,используя связь с одномерынми случайными блужданиями

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 4 / 44

Page 11: 20071202 efficientalgorithms kulikov_lecture12

Типы алгоритмов для SAT (продолжение)

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

I жадные алгоритмы выбирают переменную и изменяют ее значениена противоположное, так чтобы как можно больше увеличитьзначение некоторой функции от набора (к примеру, кол-вовыполненных клозов)

I алгоритмы, основанные на случайных блужданиях меняютзначение случайной переменной; время работы можно оценить,используя связь с одномерынми случайными блужданиями

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 4 / 44

Page 12: 20071202 efficientalgorithms kulikov_lecture12

План лекции

1 РасщеплениеПравила упрощенияОценка времени работыDPLLPPSZ

2 Случайное блуждание

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 5 / 44

Page 13: 20071202 efficientalgorithms kulikov_lecture12

Пример работы алгоритма расщепления

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 6 / 44

Page 14: 20071202 efficientalgorithms kulikov_lecture12

Пример работы алгоритма расщепления

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

(y) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 1

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 6 / 44

Page 15: 20071202 efficientalgorithms kulikov_lecture12

Пример работы алгоритма расщепления

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

(y) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 1

(z) ∧ (¬z)

y = 1

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 6 / 44

Page 16: 20071202 efficientalgorithms kulikov_lecture12

Пример работы алгоритма расщепления

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

(y) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 1

(z) ∧ (¬z)

y = 1

(y ∨ z) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 0

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 6 / 44

Page 17: 20071202 efficientalgorithms kulikov_lecture12

Пример работы алгоритма расщепления

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

(y) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 1

(z) ∧ (¬z)

y = 1

(y ∨ z) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 0

(z) ∧ (¬z)

y = 1

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 6 / 44

Page 18: 20071202 efficientalgorithms kulikov_lecture12

Пример работы алгоритма расщепления

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

(y) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 1

(z) ∧ (¬z)

y = 1

(y ∨ z) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 0

(z) ∧ (¬z)

y = 1

(z)

y = 0

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 6 / 44

Page 19: 20071202 efficientalgorithms kulikov_lecture12

Пример работы алгоритма расщепления

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

(y) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 1

(z) ∧ (¬z)

y = 1

(y ∨ z) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 0

(z) ∧ (¬z)

y = 1

(z)

y = 0

{x = 0, y = 0, z = 1} — выполняющий набор

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 6 / 44

Page 20: 20071202 efficientalgorithms kulikov_lecture12

Пример работы алгоритма расщепления

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

(y) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 1

(z) ∧ (¬z)

y = 1

(y ∨ z) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 0

(z) ∧ (¬z)

y = 1

(z)

y = 0

{x = 0, y = 0, z = 1} — выполняющий набор

как улучшать?

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 6 / 44

Page 21: 20071202 efficientalgorithms kulikov_lecture12

Пример работы алгоритма расщепления

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

(y) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 1

(z) ∧ (¬z)

y = 1

(y ∨ z) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 0

(z) ∧ (¬z)

y = 1

(z)

y = 0

{x = 0, y = 0, z = 1} — выполняющий набор

упростить формулу перед расщеплением

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 6 / 44

Page 22: 20071202 efficientalgorithms kulikov_lecture12

Пример работы алгоритма расщепления

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

(y) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 1

(z) ∧ (¬z)

y = 1

(y ∨ z) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 0

(z) ∧ (¬z)

y = 1

(z)

y = 0

{x = 0, y = 0, z = 1} — выполняющий набор

мы могли бы рассмотреть сначала случай x = 0

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 6 / 44

Page 23: 20071202 efficientalgorithms kulikov_lecture12

Пример работы алгоритма расщепления

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

(y) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 1

(z) ∧ (¬z)

y = 1

(y ∨ z) ∧ (¬y ∨ z) ∧ (¬y ∨ ¬z)

x = 0

(z) ∧ (¬z)

y = 1

(z)

y = 0

{x = 0, y = 0, z = 1} — выполняющий набор

использование в правой ветке информации из левой

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 6 / 44

Page 24: 20071202 efficientalgorithms kulikov_lecture12

План лекции

1 РасщеплениеПравила упрощенияОценка времени работыDPLLPPSZ

2 Случайное блуждание

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 7 / 44

Page 25: 20071202 efficientalgorithms kulikov_lecture12

Правила упрощения

ОпределениеК формуле F применимо правило упрощения (simplification/reductionrule), если по этому правилу F можно заменить за полиномиальноевремя на F ′, так что:

сложность F ′ меньше сложности F ,выполняющий набор для F можно построить из выполняющегонабора для F ′ за полиномиальное время.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 8 / 44

Page 26: 20071202 efficientalgorithms kulikov_lecture12

Правила упрощения

ОпределениеК формуле F применимо правило упрощения (simplification/reductionrule), если по этому правилу F можно заменить за полиномиальноевремя на F ′, так что:

сложность F ′ меньше сложности F ,

выполняющий набор для F можно построить из выполняющегонабора для F ′ за полиномиальное время.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 8 / 44

Page 27: 20071202 efficientalgorithms kulikov_lecture12

Правила упрощения

ОпределениеК формуле F применимо правило упрощения (simplification/reductionrule), если по этому правилу F можно заменить за полиномиальноевремя на F ′, так что:

сложность F ′ меньше сложности F ,выполняющий набор для F можно построить из выполняющегонабора для F ′ за полиномиальное время.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 8 / 44

Page 28: 20071202 efficientalgorithms kulikov_lecture12

Единичный клоз

Единичный клозЕсли формула содержит единичный клоз (unit clause), то входящему внего литералу можно присвоить значение 1.

ПримерF = (x ∨ y ∨ ¬z) ∧ (¬x) ∧ (z ∨ ¬y) ∧ (¬y ∨ ¬x ∨ ¬z)F [x = 0] = (y ∨ ¬z) ∧ (z ∨ ¬y)

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 9 / 44

Page 29: 20071202 efficientalgorithms kulikov_lecture12

Единичный клоз

Единичный клозЕсли формула содержит единичный клоз (unit clause), то входящему внего литералу можно присвоить значение 1.

ПримерF = (x ∨ y ∨ ¬z) ∧ (¬x) ∧ (z ∨ ¬y) ∧ (¬y ∨ ¬x ∨ ¬z)F [x = 0] = (y ∨ ¬z) ∧ (z ∨ ¬y)

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 9 / 44

Page 30: 20071202 efficientalgorithms kulikov_lecture12

Чистый литерал

Чистый литералЕсли формула содержит чистый литерал (pure literal), т. е. литерал,отрицание которого не входит в формулу, то ему можно присвоитьзначение 1.

ПримерF = (x ∨ y ∨ z) ∧ (¬x) ∧ (x ∨ ¬y) ∧ (¬y ∨ ¬x ∨ z)F [z = 1] = (¬x) ∧ (x ∨ ¬y)

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 10 / 44

Page 31: 20071202 efficientalgorithms kulikov_lecture12

Чистый литерал

Чистый литералЕсли формула содержит чистый литерал (pure literal), т. е. литерал,отрицание которого не входит в формулу, то ему можно присвоитьзначение 1.

ПримерF = (x ∨ y ∨ z) ∧ (¬x) ∧ (x ∨ ¬y) ∧ (¬y ∨ ¬x ∨ z)F [z = 1] = (¬x) ∧ (x ∨ ¬y)

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 10 / 44

Page 32: 20071202 efficientalgorithms kulikov_lecture12

Резолюция

РезолюцияЕсли F = F ′ ∧ (x ∨ C ) ∧ (¬x ∨ D) и F ′ не содержит ни x , ни ¬x ,заменить F на F ′ ∧ (C ∨ D).

Пример

(x ∨ ¬y ∨ z) ∧ (¬z) ∧ (z ∨ u) ∧ (¬u ∨ x̄) ∧ (y ∨ z)↔ (¬y ∨ z ∨ ¬u) ∧ (¬z) ∧ (z ∨ u) ∧ (y ∨ z)

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 11 / 44

Page 33: 20071202 efficientalgorithms kulikov_lecture12

Резолюция

РезолюцияЕсли F = F ′ ∧ (x ∨ C ) ∧ (¬x ∨ D) и F ′ не содержит ни x , ни ¬x ,заменить F на F ′ ∧ (C ∨ D).

Пример(x ∨ ¬y ∨ z) ∧ (¬z) ∧ (z ∨ u) ∧ (¬u ∨ x̄) ∧ (y ∨ z)↔ (¬y ∨ z ∨ ¬u) ∧ (¬z) ∧ (z ∨ u) ∧ (y ∨ z)

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 11 / 44

Page 34: 20071202 efficientalgorithms kulikov_lecture12

Резолюция

РезолюцияЕсли F = F ′ ∧ (x ∨ C ) ∧ (¬x ∨ D) и F ′ не содержит ни x , ни ¬x ,заменить F на F ′ ∧ (C ∨ D).

Пример(x ∨ ¬y ∨ z) ∧ (¬z) ∧ (z ∨ u) ∧ (¬u ∨ x̄) ∧ (y ∨ z)↔ (¬y ∨ z ∨ ¬u) ∧ (¬z) ∧ (z ∨ u) ∧ (y ∨ z)

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 11 / 44

Page 35: 20071202 efficientalgorithms kulikov_lecture12

План лекции

1 РасщеплениеПравила упрощенияОценка времени работыDPLLPPSZ

2 Случайное блуждание

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 12 / 44

Page 36: 20071202 efficientalgorithms kulikov_lecture12

Оценка времени работы алгоритмов расщепления

Пусть K — некоторая мера сложности формул в КНФ (к примеру,кол-во переменных или кол-во клозов).

ФормальноЕсли алгоритм всегда расщепляет с рекуррентным неравенством вида

T (K ) ≤ T (K − t1) + · · ·+ T (K − tj) + poly(K ),

то его время работы в худшем случае составляет

poly(|F |)𝛼K(F ),

𝛼 = 𝜏(t1, . . . , tj) — единственный положительный корень уравненияx−t1 + · · ·+ x−tj = 1 .(t1, . . . , tj) называется вектором расщепления, а 𝛼 = 𝜏(t1, . . . , tj) —числом расщепления.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 13 / 44

Page 37: 20071202 efficientalgorithms kulikov_lecture12

Оценка времени работы алгоритмов расщепления

Пусть K — некоторая мера сложности формул в КНФ (к примеру,кол-во переменных или кол-во клозов).

ФормальноЕсли алгоритм всегда расщепляет с рекуррентным неравенством вида

T (K ) ≤ T (K − t1) + · · ·+ T (K − tj) + poly(K ),

то его время работы в худшем случае составляет

poly(|F |)𝛼K(F ),

𝛼 = 𝜏(t1, . . . , tj) — единственный положительный корень уравненияx−t1 + · · ·+ x−tj = 1 .

(t1, . . . , tj) называется вектором расщепления, а 𝛼 = 𝜏(t1, . . . , tj) —числом расщепления.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 13 / 44

Page 38: 20071202 efficientalgorithms kulikov_lecture12

Оценка времени работы алгоритмов расщепления

Пусть K — некоторая мера сложности формул в КНФ (к примеру,кол-во переменных или кол-во клозов).

ФормальноЕсли алгоритм всегда расщепляет с рекуррентным неравенством вида

T (K ) ≤ T (K − t1) + · · ·+ T (K − tj) + poly(K ),

то его время работы в худшем случае составляет

poly(|F |)𝛼K(F ),

𝛼 = 𝜏(t1, . . . , tj) — единственный положительный корень уравненияx−t1 + · · ·+ x−tj = 1 .(t1, . . . , tj) называется вектором расщепления, а 𝛼 = 𝜏(t1, . . . , tj) —числом расщепления.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 13 / 44

Page 39: 20071202 efficientalgorithms kulikov_lecture12

Оценка времени работы алгоритмов расщепления

НеформальноЧем меньше сложности формул, на которые алгоритм расщепляет, тембыстрее алгоритм работает.

Пример

T (K ) ≤ T (K − 2) + T (K − 3) ↔ 1.325K

T (N) ≤ 2 · T (N − 6) + 2 · T (N − 7) ↔ 1.239N

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 14 / 44

Page 40: 20071202 efficientalgorithms kulikov_lecture12

Оценка времени работы алгоритмов расщепления

НеформальноЧем меньше сложности формул, на которые алгоритм расщепляет, тембыстрее алгоритм работает.

Пример

T (K ) ≤ T (K − 2) + T (K − 3) ↔ 1.325K

T (N) ≤ 2 · T (N − 6) + 2 · T (N − 7) ↔ 1.239N

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 14 / 44

Page 41: 20071202 efficientalgorithms kulikov_lecture12

Оценка времени работы алгоритмов расщепления

НеформальноЧем меньше сложности формул, на которые алгоритм расщепляет, тембыстрее алгоритм работает.

Пример

T (K ) ≤ T (K − 2) + T (K − 3) ↔ 1.325K

T (N) ≤ 2 · T (N − 6) + 2 · T (N − 7) ↔ 1.239N

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 14 / 44

Page 42: 20071202 efficientalgorithms kulikov_lecture12

Оценка времени работы алгоритмов расщепления

НеформальноЧем меньше сложности формул, на которые алгоритм расщепляет, тембыстрее алгоритм работает.

Пример

T (K ) ≤ T (K − 2) + T (K − 3) ↔ 1.325K

T (N) ≤ 2 · T (N − 6) + 2 · T (N − 7) ↔ 1.239N

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 14 / 44

Page 43: 20071202 efficientalgorithms kulikov_lecture12

План лекции

1 РасщеплениеПравила упрощенияОценка времени работыDPLLPPSZ

2 Случайное блуждание

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 15 / 44

Page 44: 20071202 efficientalgorithms kulikov_lecture12

DPLL-подобный алгоритм

АлгоритмDPLL-SAT(F )

применять правила упрощения единичный клоз, чистый литерал ирезолюция до тех пор, пока хотя бы одно из них применимоесли F не содержит ни одного клоза, выдать “выполнима”если F содержит пустой клоз, выдать “невыполнима”если F содержит литерал, входящий в нее хотя бы два разаположительно и хотя бы два раза отрицательно, положить xравным этому литералу; в противном случае взять в качестве xлюбой литералвызвать DPLL-SAT(F [x = 1]) и DPLL-SAT(F [x = 0])если хотя бы один из рекурсивных вызовов вернул ответ“выполнима”, выдать “выполнима”; в противном случае выдать“невыполнима”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 16 / 44

Page 45: 20071202 efficientalgorithms kulikov_lecture12

DPLL-подобный алгоритм

АлгоритмDPLL-SAT(F )

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

если F не содержит ни одного клоза, выдать “выполнима”если F содержит пустой клоз, выдать “невыполнима”если F содержит литерал, входящий в нее хотя бы два разаположительно и хотя бы два раза отрицательно, положить xравным этому литералу; в противном случае взять в качестве xлюбой литералвызвать DPLL-SAT(F [x = 1]) и DPLL-SAT(F [x = 0])если хотя бы один из рекурсивных вызовов вернул ответ“выполнима”, выдать “выполнима”; в противном случае выдать“невыполнима”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 16 / 44

Page 46: 20071202 efficientalgorithms kulikov_lecture12

DPLL-подобный алгоритм

АлгоритмDPLL-SAT(F )

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

если F содержит пустой клоз, выдать “невыполнима”если F содержит литерал, входящий в нее хотя бы два разаположительно и хотя бы два раза отрицательно, положить xравным этому литералу; в противном случае взять в качестве xлюбой литералвызвать DPLL-SAT(F [x = 1]) и DPLL-SAT(F [x = 0])если хотя бы один из рекурсивных вызовов вернул ответ“выполнима”, выдать “выполнима”; в противном случае выдать“невыполнима”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 16 / 44

Page 47: 20071202 efficientalgorithms kulikov_lecture12

DPLL-подобный алгоритм

АлгоритмDPLL-SAT(F )

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

если F содержит литерал, входящий в нее хотя бы два разаположительно и хотя бы два раза отрицательно, положить xравным этому литералу; в противном случае взять в качестве xлюбой литералвызвать DPLL-SAT(F [x = 1]) и DPLL-SAT(F [x = 0])если хотя бы один из рекурсивных вызовов вернул ответ“выполнима”, выдать “выполнима”; в противном случае выдать“невыполнима”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 16 / 44

Page 48: 20071202 efficientalgorithms kulikov_lecture12

DPLL-подобный алгоритм

АлгоритмDPLL-SAT(F )

применять правила упрощения единичный клоз, чистый литерал ирезолюция до тех пор, пока хотя бы одно из них применимоесли F не содержит ни одного клоза, выдать “выполнима”если F содержит пустой клоз, выдать “невыполнима”если F содержит литерал, входящий в нее хотя бы два разаположительно и хотя бы два раза отрицательно, положить xравным этому литералу; в противном случае взять в качестве xлюбой литерал

вызвать DPLL-SAT(F [x = 1]) и DPLL-SAT(F [x = 0])если хотя бы один из рекурсивных вызовов вернул ответ“выполнима”, выдать “выполнима”; в противном случае выдать“невыполнима”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 16 / 44

Page 49: 20071202 efficientalgorithms kulikov_lecture12

DPLL-подобный алгоритм

АлгоритмDPLL-SAT(F )

применять правила упрощения единичный клоз, чистый литерал ирезолюция до тех пор, пока хотя бы одно из них применимоесли F не содержит ни одного клоза, выдать “выполнима”если F содержит пустой клоз, выдать “невыполнима”если F содержит литерал, входящий в нее хотя бы два разаположительно и хотя бы два раза отрицательно, положить xравным этому литералу; в противном случае взять в качестве xлюбой литералвызвать DPLL-SAT(F [x = 1]) и DPLL-SAT(F [x = 0])

если хотя бы один из рекурсивных вызовов вернул ответ“выполнима”, выдать “выполнима”; в противном случае выдать“невыполнима”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 16 / 44

Page 50: 20071202 efficientalgorithms kulikov_lecture12

DPLL-подобный алгоритм

АлгоритмDPLL-SAT(F )

применять правила упрощения единичный клоз, чистый литерал ирезолюция до тех пор, пока хотя бы одно из них применимоесли F не содержит ни одного клоза, выдать “выполнима”если F содержит пустой клоз, выдать “невыполнима”если F содержит литерал, входящий в нее хотя бы два разаположительно и хотя бы два раза отрицательно, положить xравным этому литералу; в противном случае взять в качестве xлюбой литералвызвать DPLL-SAT(F [x = 1]) и DPLL-SAT(F [x = 0])если хотя бы один из рекурсивных вызовов вернул ответ“выполнима”, выдать “выполнима”; в противном случае выдать“невыполнима”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 16 / 44

Page 51: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

ЛеммаВремя работы алгоритма DPLL-SAT не превосходит 1.415K , где K —кол-во клозов входной формулы.

Доказательстводостаточно показать, что в каждой ветке удаляется хотя бы дваклоза: 𝜏(2, 2) =

√2 = 1.414...

это ясно, если нашелся литерал, который входит в формулу хотябы дважды и положительно и отрицательноназовем (i , j)-литералом литерал, входящий в формулу ровно iраз положительно и ровно j раз отрицательно

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 17 / 44

Page 52: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

ЛеммаВремя работы алгоритма DPLL-SAT не превосходит 1.415K , где K —кол-во клозов входной формулы.

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

достаточно показать, что в каждой ветке удаляется хотя бы дваклоза: 𝜏(2, 2) =

√2 = 1.414...

это ясно, если нашелся литерал, который входит в формулу хотябы дважды и положительно и отрицательноназовем (i , j)-литералом литерал, входящий в формулу ровно iраз положительно и ровно j раз отрицательно

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 17 / 44

Page 53: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

ЛеммаВремя работы алгоритма DPLL-SAT не превосходит 1.415K , где K —кол-во клозов входной формулы.

Доказательстводостаточно показать, что в каждой ветке удаляется хотя бы дваклоза: 𝜏(2, 2) =

√2 = 1.414...

это ясно, если нашелся литерал, который входит в формулу хотябы дважды и положительно и отрицательноназовем (i , j)-литералом литерал, входящий в формулу ровно iраз положительно и ровно j раз отрицательно

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 17 / 44

Page 54: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

ЛеммаВремя работы алгоритма DPLL-SAT не превосходит 1.415K , где K —кол-во клозов входной формулы.

Доказательстводостаточно показать, что в каждой ветке удаляется хотя бы дваклоза: 𝜏(2, 2) =

√2 = 1.414...

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

назовем (i , j)-литералом литерал, входящий в формулу ровно iраз положительно и ровно j раз отрицательно

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 17 / 44

Page 55: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

ЛеммаВремя работы алгоритма DPLL-SAT не превосходит 1.415K , где K —кол-во клозов входной формулы.

Доказательстводостаточно показать, что в каждой ветке удаляется хотя бы дваклоза: 𝜏(2, 2) =

√2 = 1.414...

это ясно, если нашелся литерал, который входит в формулу хотябы дважды и положительно и отрицательноназовем (i , j)-литералом литерал, входящий в формулу ровно iраз положительно и ровно j раз отрицательно

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 17 / 44

Page 56: 20071202 efficientalgorithms kulikov_lecture12

Доказательство (продолжение)

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

ясно, что упрощенная формула не содержит (0, k)- и(k , 0)-литералов (это как раз чистые литералы), а также(1, 1)-литералов (они удаляются резольвированием)значит, осталось рассмотреть случай, когда формула состоиттолько из (1, 2)- и (2, 1)-литералов

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 18 / 44

Page 57: 20071202 efficientalgorithms kulikov_lecture12

Доказательство (продолжение)

Доказательствоясно, что упрощенная формула не содержит (0, k)- и(k , 0)-литералов (это как раз чистые литералы), а также(1, 1)-литералов (они удаляются резольвированием)

значит, осталось рассмотреть случай, когда формула состоиттолько из (1, 2)- и (2, 1)-литералов

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 18 / 44

Page 58: 20071202 efficientalgorithms kulikov_lecture12

Доказательство (продолжение)

Доказательствоясно, что упрощенная формула не содержит (0, k)- и(k , 0)-литералов (это как раз чистые литералы), а также(1, 1)-литералов (они удаляются резольвированием)значит, осталось рассмотреть случай, когда формула состоиттолько из (1, 2)- и (2, 1)-литералов

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 18 / 44

Page 59: 20071202 efficientalgorithms kulikov_lecture12

Доказательство (продолжение)

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

рассмотрим произвольный литерал x :

F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . .

поскольку F не содержит единичных клозов, в клозе (¬x ∨ . . . )есть еще хотя бы один литерал; назовем его yв F [x = 0] y будет (2, 0)-, (0, 2)- или (1, 1)-литераломв любом из этих случаев y будет удален правилами упрощения,что повлечет за собой удаление хотя бы одного клозаитак, и F [x = 1], и F [x = 0] (после упрощения) содержат хотя бына два клоза меньше, чем F

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 19 / 44

Page 60: 20071202 efficientalgorithms kulikov_lecture12

Доказательство (продолжение)

Доказательстворассмотрим произвольный литерал x :

F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . .

поскольку F не содержит единичных клозов, в клозе (¬x ∨ . . . )есть еще хотя бы один литерал; назовем его yв F [x = 0] y будет (2, 0)-, (0, 2)- или (1, 1)-литераломв любом из этих случаев y будет удален правилами упрощения,что повлечет за собой удаление хотя бы одного клозаитак, и F [x = 1], и F [x = 0] (после упрощения) содержат хотя бына два клоза меньше, чем F

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 19 / 44

Page 61: 20071202 efficientalgorithms kulikov_lecture12

Доказательство (продолжение)

Доказательстворассмотрим произвольный литерал x :

F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . .

поскольку F не содержит единичных клозов, в клозе (¬x ∨ . . . )есть еще хотя бы один литерал; назовем его y

в F [x = 0] y будет (2, 0)-, (0, 2)- или (1, 1)-литераломв любом из этих случаев y будет удален правилами упрощения,что повлечет за собой удаление хотя бы одного клозаитак, и F [x = 1], и F [x = 0] (после упрощения) содержат хотя бына два клоза меньше, чем F

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 19 / 44

Page 62: 20071202 efficientalgorithms kulikov_lecture12

Доказательство (продолжение)

Доказательстворассмотрим произвольный литерал x :

F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . .

поскольку F не содержит единичных клозов, в клозе (¬x ∨ . . . )есть еще хотя бы один литерал; назовем его yв F [x = 0] y будет (2, 0)-, (0, 2)- или (1, 1)-литералом

в любом из этих случаев y будет удален правилами упрощения,что повлечет за собой удаление хотя бы одного клозаитак, и F [x = 1], и F [x = 0] (после упрощения) содержат хотя бына два клоза меньше, чем F

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 19 / 44

Page 63: 20071202 efficientalgorithms kulikov_lecture12

Доказательство (продолжение)

Доказательстворассмотрим произвольный литерал x :

F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . .

поскольку F не содержит единичных клозов, в клозе (¬x ∨ . . . )есть еще хотя бы один литерал; назовем его yв F [x = 0] y будет (2, 0)-, (0, 2)- или (1, 1)-литераломв любом из этих случаев y будет удален правилами упрощения,что повлечет за собой удаление хотя бы одного клоза

итак, и F [x = 1], и F [x = 0] (после упрощения) содержат хотя бына два клоза меньше, чем F

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 19 / 44

Page 64: 20071202 efficientalgorithms kulikov_lecture12

Доказательство (продолжение)

Доказательстворассмотрим произвольный литерал x :

F = (x ∨ . . . ) ∧ (x ∨ . . . ) ∧ (¬x ∨ . . . ) ∧ . . .

поскольку F не содержит единичных клозов, в клозе (¬x ∨ . . . )есть еще хотя бы один литерал; назовем его yв F [x = 0] y будет (2, 0)-, (0, 2)- или (1, 1)-литераломв любом из этих случаев y будет удален правилами упрощения,что повлечет за собой удаление хотя бы одного клозаитак, и F [x = 1], и F [x = 0] (после упрощения) содержат хотя бына два клоза меньше, чем F

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 19 / 44

Page 65: 20071202 efficientalgorithms kulikov_lecture12

Замечание

Замечание

представленный алгоритм является одним из простейших;известные более хитрые правила упрощения и эвристики длярасщепленийна методе расщепления основано большинство современныхполных (т.е. всегда выдающих правильный ответ) SAT-солверовбольшинство теоретических верхних оценок также доказаны припомощи метода расщепления

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 20 / 44

Page 66: 20071202 efficientalgorithms kulikov_lecture12

Замечание

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

на методе расщепления основано большинство современныхполных (т.е. всегда выдающих правильный ответ) SAT-солверовбольшинство теоретических верхних оценок также доказаны припомощи метода расщепления

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 20 / 44

Page 67: 20071202 efficientalgorithms kulikov_lecture12

Замечание

Замечаниепредставленный алгоритм является одним из простейших;известные более хитрые правила упрощения и эвристики длярасщепленийна методе расщепления основано большинство современныхполных (т.е. всегда выдающих правильный ответ) SAT-солверов

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 20 / 44

Page 68: 20071202 efficientalgorithms kulikov_lecture12

Замечание

Замечаниепредставленный алгоритм является одним из простейших;известные более хитрые правила упрощения и эвристики длярасщепленийна методе расщепления основано большинство современныхполных (т.е. всегда выдающих правильный ответ) SAT-солверовбольшинство теоретических верхних оценок также доказаны припомощи метода расщепления

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 20 / 44

Page 69: 20071202 efficientalgorithms kulikov_lecture12

План лекции

1 РасщеплениеПравила упрощенияОценка времени работыDPLLPPSZ

2 Случайное блуждание

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 21 / 44

Page 70: 20071202 efficientalgorithms kulikov_lecture12

Основные идеи PPSZ-подобного алгоритма

Основные идеи

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 22 / 44

Page 71: 20071202 efficientalgorithms kulikov_lecture12

Основные идеи PPSZ-подобного алгоритма

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

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 22 / 44

Page 72: 20071202 efficientalgorithms kulikov_lecture12

Основные идеи PPSZ-подобного алгоритма

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

для оценки времени работы будем считать, по сколькимпеременным нам расщеплять не пришлось

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 22 / 44

Page 73: 20071202 efficientalgorithms kulikov_lecture12

Основные идеи PPSZ-подобного алгоритма

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 22 / 44

Page 74: 20071202 efficientalgorithms kulikov_lecture12

PPSZ-подобный алгоритм

АлгоритмPPSZ-SAT(F )

выбрать случайным образом перестановку 𝜋 из множества всехперестановок {1, . . . , n}построить дерево рекурсии глубины не более 2n/3, где на каждомшаге

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

входяющую в формулу, и расщепляемся по ней

если на каком-то шаге высянилось, что формула выполнима,выдать “выполнима”в противном случае выдать “невыполнима”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 23 / 44

Page 75: 20071202 efficientalgorithms kulikov_lecture12

PPSZ-подобный алгоритм

АлгоритмPPSZ-SAT(F )

выбрать случайным образом перестановку 𝜋 из множества всехперестановок {1, . . . , n}

построить дерево рекурсии глубины не более 2n/3, где на каждомшаге

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

входяющую в формулу, и расщепляемся по ней

если на каком-то шаге высянилось, что формула выполнима,выдать “выполнима”в противном случае выдать “невыполнима”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 23 / 44

Page 76: 20071202 efficientalgorithms kulikov_lecture12

PPSZ-подобный алгоритм

АлгоритмPPSZ-SAT(F )

выбрать случайным образом перестановку 𝜋 из множества всехперестановок {1, . . . , n}построить дерево рекурсии глубины не более 2n/3, где на каждомшаге

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

входяющую в формулу, и расщепляемся по ней

если на каком-то шаге высянилось, что формула выполнима,выдать “выполнима”в противном случае выдать “невыполнима”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 23 / 44

Page 77: 20071202 efficientalgorithms kulikov_lecture12

PPSZ-подобный алгоритм

АлгоритмPPSZ-SAT(F )

выбрать случайным образом перестановку 𝜋 из множества всехперестановок {1, . . . , n}построить дерево рекурсии глубины не более 2n/3, где на каждомшаге

I сначала применяем правило удаления единичных клозов,

I а потом выбираем первую переменную из перестановки, все ещевходяющую в формулу, и расщепляемся по ней

если на каком-то шаге высянилось, что формула выполнима,выдать “выполнима”в противном случае выдать “невыполнима”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 23 / 44

Page 78: 20071202 efficientalgorithms kulikov_lecture12

PPSZ-подобный алгоритм

АлгоритмPPSZ-SAT(F )

выбрать случайным образом перестановку 𝜋 из множества всехперестановок {1, . . . , n}построить дерево рекурсии глубины не более 2n/3, где на каждомшаге

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

входяющую в формулу, и расщепляемся по ней

если на каком-то шаге высянилось, что формула выполнима,выдать “выполнима”в противном случае выдать “невыполнима”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 23 / 44

Page 79: 20071202 efficientalgorithms kulikov_lecture12

PPSZ-подобный алгоритм

АлгоритмPPSZ-SAT(F )

выбрать случайным образом перестановку 𝜋 из множества всехперестановок {1, . . . , n}построить дерево рекурсии глубины не более 2n/3, где на каждомшаге

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

входяющую в формулу, и расщепляемся по ней

если на каком-то шаге высянилось, что формула выполнима,выдать “выполнима”

в противном случае выдать “невыполнима”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 23 / 44

Page 80: 20071202 efficientalgorithms kulikov_lecture12

PPSZ-подобный алгоритм

АлгоритмPPSZ-SAT(F )

выбрать случайным образом перестановку 𝜋 из множества всехперестановок {1, . . . , n}построить дерево рекурсии глубины не более 2n/3, где на каждомшаге

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

входяющую в формулу, и расщепляемся по ней

если на каком-то шаге высянилось, что формула выполнима,выдать “выполнима”в противном случае выдать “невыполнима”

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 23 / 44

Page 81: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

Анализ алгоритма

очевидно, время работы этого алгоритма равно poly(|F |) · 22n/3

мы покажем, что PPSZ-SAT с достаточно большойвероятностью находит правильное решение для формулы, укоторой не более одного выполняющего наборарассмотрим дерево расщепления алгоритма, однако безораничения 2n/3 на его глубинуесли S — выполняющий набор для F , то это дерево содержитветвь, ведущую в Sкаждое расщепление вдоль этой ветви присваивает значениепеременнойнекоторым переменным значения также присваиваютсяправилами упрощения

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 24 / 44

Page 82: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

Анализ алгоритма

очевидно, время работы этого алгоритма равно poly(|F |) · 22n/3

мы покажем, что PPSZ-SAT с достаточно большойвероятностью находит правильное решение для формулы, укоторой не более одного выполняющего наборарассмотрим дерево расщепления алгоритма, однако безораничения 2n/3 на его глубинуесли S — выполняющий набор для F , то это дерево содержитветвь, ведущую в Sкаждое расщепление вдоль этой ветви присваивает значениепеременнойнекоторым переменным значения также присваиваютсяправилами упрощения

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 24 / 44

Page 83: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

Анализ алгоритма

очевидно, время работы этого алгоритма равно poly(|F |) · 22n/3

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

рассмотрим дерево расщепления алгоритма, однако безораничения 2n/3 на его глубинуесли S — выполняющий набор для F , то это дерево содержитветвь, ведущую в Sкаждое расщепление вдоль этой ветви присваивает значениепеременнойнекоторым переменным значения также присваиваютсяправилами упрощения

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 24 / 44

Page 84: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

Анализ алгоритма

очевидно, время работы этого алгоритма равно poly(|F |) · 22n/3

мы покажем, что PPSZ-SAT с достаточно большойвероятностью находит правильное решение для формулы, укоторой не более одного выполняющего наборарассмотрим дерево расщепления алгоритма, однако безораничения 2n/3 на его глубину

если S — выполняющий набор для F , то это дерево содержитветвь, ведущую в Sкаждое расщепление вдоль этой ветви присваивает значениепеременнойнекоторым переменным значения также присваиваютсяправилами упрощения

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 24 / 44

Page 85: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

Анализ алгоритма

очевидно, время работы этого алгоритма равно poly(|F |) · 22n/3

мы покажем, что PPSZ-SAT с достаточно большойвероятностью находит правильное решение для формулы, укоторой не более одного выполняющего наборарассмотрим дерево расщепления алгоритма, однако безораничения 2n/3 на его глубинуесли S — выполняющий набор для F , то это дерево содержитветвь, ведущую в S

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 24 / 44

Page 86: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

Анализ алгоритма

очевидно, время работы этого алгоритма равно poly(|F |) · 22n/3

мы покажем, что PPSZ-SAT с достаточно большойвероятностью находит правильное решение для формулы, укоторой не более одного выполняющего наборарассмотрим дерево расщепления алгоритма, однако безораничения 2n/3 на его глубинуесли S — выполняющий набор для F , то это дерево содержитветвь, ведущую в Sкаждое расщепление вдоль этой ветви присваивает значениепеременной

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 24 / 44

Page 87: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

Анализ алгоритма

очевидно, время работы этого алгоритма равно poly(|F |) · 22n/3

мы покажем, что PPSZ-SAT с достаточно большойвероятностью находит правильное решение для формулы, укоторой не более одного выполняющего наборарассмотрим дерево расщепления алгоритма, однако безораничения 2n/3 на его глубинуесли S — выполняющий набор для F , то это дерево содержитветвь, ведущую в Sкаждое расщепление вдоль этой ветви присваивает значениепеременнойнекоторым переменным значения также присваиваютсяправилами упрощения

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 24 / 44

Page 88: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма (продолжение)

Анализ алгоритма

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 25 / 44

Page 89: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма (продолжение)

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

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 25 / 44

Page 90: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма (продолжение)

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 25 / 44

Page 91: 20071202 efficientalgorithms kulikov_lecture12

Лемма о кодировании выполняющего набора

ЛеммаПусть F — одновыполнимая формула в 3-КНФ, а S — ее выполняющийнабор. Рассмотрим описание относительно перестановки, случайно иравновероятно выбранной из множества всех перестановок. Тогдаматематическое ожидание длины описания S не превосходит 2n/3.

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

заметим, что для каждой переменной x из F найдется хотя быодин клоз, в котором S выполняет только литерал,соответствующий x : если бы такого клоза не нашлось, то, изменивзначение x в S , мы получили бы другой выполняющий наборклоз, удовлетворяющий такому условию, назовем критическимдля переменной x

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 26 / 44

Page 92: 20071202 efficientalgorithms kulikov_lecture12

Лемма о кодировании выполняющего набора

ЛеммаПусть F — одновыполнимая формула в 3-КНФ, а S — ее выполняющийнабор. Рассмотрим описание относительно перестановки, случайно иравновероятно выбранной из множества всех перестановок. Тогдаматематическое ожидание длины описания S не превосходит 2n/3.

Доказательствозаметим, что для каждой переменной x из F найдется хотя быодин клоз, в котором S выполняет только литерал,соответствующий x :

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 26 / 44

Page 93: 20071202 efficientalgorithms kulikov_lecture12

Лемма о кодировании выполняющего набора

ЛеммаПусть F — одновыполнимая формула в 3-КНФ, а S — ее выполняющийнабор. Рассмотрим описание относительно перестановки, случайно иравновероятно выбранной из множества всех перестановок. Тогдаматематическое ожидание длины описания S не превосходит 2n/3.

Доказательствозаметим, что для каждой переменной x из F найдется хотя быодин клоз, в котором S выполняет только литерал,соответствующий x : если бы такого клоза не нашлось, то, изменивзначение x в S , мы получили бы другой выполняющий набор

клоз, удовлетворяющий такому условию, назовем критическимдля переменной x

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 26 / 44

Page 94: 20071202 efficientalgorithms kulikov_lecture12

Лемма о кодировании выполняющего набора

ЛеммаПусть F — одновыполнимая формула в 3-КНФ, а S — ее выполняющийнабор. Рассмотрим описание относительно перестановки, случайно иравновероятно выбранной из множества всех перестановок. Тогдаматематическое ожидание длины описания S не превосходит 2n/3.

Доказательствозаметим, что для каждой переменной x из F найдется хотя быодин клоз, в котором S выполняет только литерал,соответствующий x : если бы такого клоза не нашлось, то, изменивзначение x в S , мы получили бы другой выполняющий наборклоз, удовлетворяющий такому условию, назовем критическимдля переменной x

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 26 / 44

Page 95: 20071202 efficientalgorithms kulikov_lecture12

Доказательство (продолжение)

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

поскольку 𝜋 выбирается случайно и равновероятно, переменная xокажется в этой перестановке последней переменной критическогоклоза для x с вероятностью не менее 1/3ясно, что в таком случае x не появится в описании Sтаким образом, с вероятностью хотя бы 1/3 x не попадет вописание Sосталось воспользоваться линейностью математическогоожидания

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 27 / 44

Page 96: 20071202 efficientalgorithms kulikov_lecture12

Доказательство (продолжение)

Доказательствопоскольку 𝜋 выбирается случайно и равновероятно, переменная xокажется в этой перестановке последней переменной критическогоклоза для x с вероятностью не менее 1/3

ясно, что в таком случае x не появится в описании Sтаким образом, с вероятностью хотя бы 1/3 x не попадет вописание Sосталось воспользоваться линейностью математическогоожидания

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 27 / 44

Page 97: 20071202 efficientalgorithms kulikov_lecture12

Доказательство (продолжение)

Доказательствопоскольку 𝜋 выбирается случайно и равновероятно, переменная xокажется в этой перестановке последней переменной критическогоклоза для x с вероятностью не менее 1/3ясно, что в таком случае x не появится в описании S

таким образом, с вероятностью хотя бы 1/3 x не попадет вописание Sосталось воспользоваться линейностью математическогоожидания

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 27 / 44

Page 98: 20071202 efficientalgorithms kulikov_lecture12

Доказательство (продолжение)

Доказательствопоскольку 𝜋 выбирается случайно и равновероятно, переменная xокажется в этой перестановке последней переменной критическогоклоза для x с вероятностью не менее 1/3ясно, что в таком случае x не появится в описании Sтаким образом, с вероятностью хотя бы 1/3 x не попадет вописание S

осталось воспользоваться линейностью математическогоожидания

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 27 / 44

Page 99: 20071202 efficientalgorithms kulikov_lecture12

Доказательство (продолжение)

Доказательствопоскольку 𝜋 выбирается случайно и равновероятно, переменная xокажется в этой перестановке последней переменной критическогоклоза для x с вероятностью не менее 1/3ясно, что в таком случае x не появится в описании Sтаким образом, с вероятностью хотя бы 1/3 x не попадет вописание Sосталось воспользоваться линейностью математическогоожидания

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 27 / 44

Page 100: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма (продолжение)

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

2n3≥

n∑︁l=0

pl l ≥(︂⌊︂

2n3

⌋︂+ 1

)︂ n∑︁l=⌊ 2n

3 ⌋+1

pl

следовательно,

n∑︁l=⌊ 2n

3 ⌋+1

pl ≤2n3

(︂⌊︂2n3

⌋︂+ 1

)︂−1

≤ 2n3· 32n + 1

= 1− 12n + 1

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 28 / 44

Page 101: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма (продолжение)

пусть pl — вероятность того, что длина описания выполняющегонабора в точности равна l

по только что доказанной лемме

2n3≥

n∑︁l=0

pl l ≥(︂⌊︂

2n3

⌋︂+ 1

)︂ n∑︁l=⌊ 2n

3 ⌋+1

pl

следовательно,

n∑︁l=⌊ 2n

3 ⌋+1

pl ≤2n3

(︂⌊︂2n3

⌋︂+ 1

)︂−1

≤ 2n3· 32n + 1

= 1− 12n + 1

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 28 / 44

Page 102: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма (продолжение)

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

2n3≥

n∑︁l=0

pl l ≥(︂⌊︂

2n3

⌋︂+ 1

)︂ n∑︁l=⌊ 2n

3 ⌋+1

pl

следовательно,

n∑︁l=⌊ 2n

3 ⌋+1

pl ≤2n3

(︂⌊︂2n3

⌋︂+ 1

)︂−1

≤ 2n3· 32n + 1

= 1− 12n + 1

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 28 / 44

Page 103: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма (продолжение)

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

2n3≥

n∑︁l=0

pl l ≥(︂⌊︂

2n3

⌋︂+ 1

)︂ n∑︁l=⌊ 2n

3 ⌋+1

pl

следовательно,

n∑︁l=⌊ 2n

3 ⌋+1

pl ≤2n3

(︂⌊︂2n3

⌋︂+ 1

)︂−1

≤ 2n3· 32n + 1

= 1− 12n + 1

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 28 / 44

Page 104: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма (продолжение)

⌊ 2n3 ⌋+1∑︁l=0

pl ≥1

2n + 1

итак, для случайной перестановки длина описания не превосходит2n/3 с вероятностью хотя бы 1/(2n + 1)если запустить алгоритм (2n + 1) раз, то алгоритм не найдетнабор с вероятностью не более (1− 1

2n+1)2n+1 < 1e

а если запустить c(2n + 1) раз, то вероятность ошибки будет неболее 1

ec

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 29 / 44

Page 105: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма (продолжение)

⌊ 2n3 ⌋+1∑︁l=0

pl ≥1

2n + 1

итак, для случайной перестановки длина описания не превосходит2n/3 с вероятностью хотя бы 1/(2n + 1)если запустить алгоритм (2n + 1) раз, то алгоритм не найдетнабор с вероятностью не более (1− 1

2n+1)2n+1 < 1e

а если запустить c(2n + 1) раз, то вероятность ошибки будет неболее 1

ec

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 29 / 44

Page 106: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма (продолжение)

⌊ 2n3 ⌋+1∑︁l=0

pl ≥1

2n + 1

итак, для случайной перестановки длина описания не превосходит2n/3 с вероятностью хотя бы 1/(2n + 1)

если запустить алгоритм (2n + 1) раз, то алгоритм не найдетнабор с вероятностью не более (1− 1

2n+1)2n+1 < 1e

а если запустить c(2n + 1) раз, то вероятность ошибки будет неболее 1

ec

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 29 / 44

Page 107: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма (продолжение)

⌊ 2n3 ⌋+1∑︁l=0

pl ≥1

2n + 1

итак, для случайной перестановки длина описания не превосходит2n/3 с вероятностью хотя бы 1/(2n + 1)если запустить алгоритм (2n + 1) раз, то алгоритм не найдетнабор с вероятностью не более (1− 1

2n+1)2n+1 < 1e

а если запустить c(2n + 1) раз, то вероятность ошибки будет неболее 1

ec

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 29 / 44

Page 108: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма (продолжение)

⌊ 2n3 ⌋+1∑︁l=0

pl ≥1

2n + 1

итак, для случайной перестановки длина описания не превосходит2n/3 с вероятностью хотя бы 1/(2n + 1)если запустить алгоритм (2n + 1) раз, то алгоритм не найдетнабор с вероятностью не более (1− 1

2n+1)2n+1 < 1e

а если запустить c(2n + 1) раз, то вероятность ошибки будет неболее 1

ec

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 29 / 44

Page 109: 20071202 efficientalgorithms kulikov_lecture12

Основные идеи PPSZ-подобного алгоритма еще раз

Основные идеи еще раз

случайно выбираем порядок переменных и расщепляем,периодически удаляя единичные клозыесли у F есть ровно один выполняющий набор S , то для любойпеременной x найдется клоз (x ∨ y ∨ z), такой что S выполняеттолько литерал x в этом клозе (то есть S присваивает x , y , zзначения 1, 0, 0, соответственно)если в перестановке 𝜋 x идет после y и z , то в описание S она непопадетв среднем, примерно треть всех переменных не попадет в описаниетаким образом, если мы переберем все описания длины не более2n/3, то с хорошей вероятностью мы найдем описаниевыполняющего набора

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 30 / 44

Page 110: 20071202 efficientalgorithms kulikov_lecture12

Основные идеи PPSZ-подобного алгоритма еще раз

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

если у F есть ровно один выполняющий набор S , то для любойпеременной x найдется клоз (x ∨ y ∨ z), такой что S выполняеттолько литерал x в этом клозе (то есть S присваивает x , y , zзначения 1, 0, 0, соответственно)если в перестановке 𝜋 x идет после y и z , то в описание S она непопадетв среднем, примерно треть всех переменных не попадет в описаниетаким образом, если мы переберем все описания длины не более2n/3, то с хорошей вероятностью мы найдем описаниевыполняющего набора

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 30 / 44

Page 111: 20071202 efficientalgorithms kulikov_lecture12

Основные идеи PPSZ-подобного алгоритма еще раз

Основные идеи еще разслучайно выбираем порядок переменных и расщепляем,периодически удаляя единичные клозыесли у F есть ровно один выполняющий набор S , то для любойпеременной x найдется клоз (x ∨ y ∨ z), такой что S выполняеттолько литерал x в этом клозе (то есть S присваивает x , y , zзначения 1, 0, 0, соответственно)

если в перестановке 𝜋 x идет после y и z , то в описание S она непопадетв среднем, примерно треть всех переменных не попадет в описаниетаким образом, если мы переберем все описания длины не более2n/3, то с хорошей вероятностью мы найдем описаниевыполняющего набора

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 30 / 44

Page 112: 20071202 efficientalgorithms kulikov_lecture12

Основные идеи PPSZ-подобного алгоритма еще раз

Основные идеи еще разслучайно выбираем порядок переменных и расщепляем,периодически удаляя единичные клозыесли у F есть ровно один выполняющий набор S , то для любойпеременной x найдется клоз (x ∨ y ∨ z), такой что S выполняеттолько литерал x в этом клозе (то есть S присваивает x , y , zзначения 1, 0, 0, соответственно)если в перестановке 𝜋 x идет после y и z , то в описание S она непопадет

в среднем, примерно треть всех переменных не попадет в описаниетаким образом, если мы переберем все описания длины не более2n/3, то с хорошей вероятностью мы найдем описаниевыполняющего набора

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 30 / 44

Page 113: 20071202 efficientalgorithms kulikov_lecture12

Основные идеи PPSZ-подобного алгоритма еще раз

Основные идеи еще разслучайно выбираем порядок переменных и расщепляем,периодически удаляя единичные клозыесли у F есть ровно один выполняющий набор S , то для любойпеременной x найдется клоз (x ∨ y ∨ z), такой что S выполняеттолько литерал x в этом клозе (то есть S присваивает x , y , zзначения 1, 0, 0, соответственно)если в перестановке 𝜋 x идет после y и z , то в описание S она непопадетв среднем, примерно треть всех переменных не попадет в описание

таким образом, если мы переберем все описания длины не более2n/3, то с хорошей вероятностью мы найдем описаниевыполняющего набора

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 30 / 44

Page 114: 20071202 efficientalgorithms kulikov_lecture12

Основные идеи PPSZ-подобного алгоритма еще раз

Основные идеи еще разслучайно выбираем порядок переменных и расщепляем,периодически удаляя единичные клозыесли у F есть ровно один выполняющий набор S , то для любойпеременной x найдется клоз (x ∨ y ∨ z), такой что S выполняеттолько литерал x в этом клозе (то есть S присваивает x , y , zзначения 1, 0, 0, соответственно)если в перестановке 𝜋 x идет после y и z , то в описание S она непопадетв среднем, примерно треть всех переменных не попадет в описаниетаким образом, если мы переберем все описания длины не более2n/3, то с хорошей вероятностью мы найдем описаниевыполняющего набора

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 30 / 44

Page 115: 20071202 efficientalgorithms kulikov_lecture12

План лекции

1 РасщеплениеПравила упрощенияОценка времени работыDPLLPPSZ

2 Случайное блуждание

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 31 / 44

Page 116: 20071202 efficientalgorithms kulikov_lecture12

Основные идеи алгоритмов, основанных на случайныхблужданиях

Основные идеи

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 32 / 44

Page 117: 20071202 efficientalgorithms kulikov_lecture12

Основные идеи алгоритмов, основанных на случайныхблужданиях

Основные идеивыберем случайный набор переменных и проверим, выполняет лион формулу

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 32 / 44

Page 118: 20071202 efficientalgorithms kulikov_lecture12

Основные идеи алгоритмов, основанных на случайныхблужданиях

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

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 32 / 44

Page 119: 20071202 efficientalgorithms kulikov_lecture12

Основные идеи алгоритмов, основанных на случайныхблужданиях

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

выберем случайную переменную из этого клоза и изменим еезначение в текущем наборес некоторой вероятностью мы стали ближе к выполняющемйнабору

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 32 / 44

Page 120: 20071202 efficientalgorithms kulikov_lecture12

Основные идеи алгоритмов, основанных на случайныхблужданиях

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

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 32 / 44

Page 121: 20071202 efficientalgorithms kulikov_lecture12

Основные идеи алгоритмов, основанных на случайныхблужданиях

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 32 / 44

Page 122: 20071202 efficientalgorithms kulikov_lecture12

Общая схема

АлгоритмRandom-Walk(F , 𝛼, 𝜏)

Повторить 𝛼(n) раз:I Выбрать случайным образом набор A.I Если A выполянет F , выдать его. В противном случае повторить

𝜏(n) раз:F Взять произвольный невыполненный клоз C в F .F Выбрать случайную переменную x из C .F Изменить значение x в A.F Если A выполянет F , выдать его.

Выдать ответ “невыполнима”.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 33 / 44

Page 123: 20071202 efficientalgorithms kulikov_lecture12

Общая схема

АлгоритмRandom-Walk(F , 𝛼, 𝜏)

Повторить 𝛼(n) раз:

I Выбрать случайным образом набор A.I Если A выполянет F , выдать его. В противном случае повторить

𝜏(n) раз:F Взять произвольный невыполненный клоз C в F .F Выбрать случайную переменную x из C .F Изменить значение x в A.F Если A выполянет F , выдать его.

Выдать ответ “невыполнима”.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 33 / 44

Page 124: 20071202 efficientalgorithms kulikov_lecture12

Общая схема

АлгоритмRandom-Walk(F , 𝛼, 𝜏)

Повторить 𝛼(n) раз:I Выбрать случайным образом набор A.

I Если A выполянет F , выдать его. В противном случае повторить𝜏(n) раз:

F Взять произвольный невыполненный клоз C в F .F Выбрать случайную переменную x из C .F Изменить значение x в A.F Если A выполянет F , выдать его.

Выдать ответ “невыполнима”.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 33 / 44

Page 125: 20071202 efficientalgorithms kulikov_lecture12

Общая схема

АлгоритмRandom-Walk(F , 𝛼, 𝜏)

Повторить 𝛼(n) раз:I Выбрать случайным образом набор A.I Если A выполянет F , выдать его. В противном случае повторить

𝜏(n) раз:

F Взять произвольный невыполненный клоз C в F .F Выбрать случайную переменную x из C .F Изменить значение x в A.F Если A выполянет F , выдать его.

Выдать ответ “невыполнима”.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 33 / 44

Page 126: 20071202 efficientalgorithms kulikov_lecture12

Общая схема

АлгоритмRandom-Walk(F , 𝛼, 𝜏)

Повторить 𝛼(n) раз:I Выбрать случайным образом набор A.I Если A выполянет F , выдать его. В противном случае повторить

𝜏(n) раз:F Взять произвольный невыполненный клоз C в F .

F Выбрать случайную переменную x из C .F Изменить значение x в A.F Если A выполянет F , выдать его.

Выдать ответ “невыполнима”.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 33 / 44

Page 127: 20071202 efficientalgorithms kulikov_lecture12

Общая схема

АлгоритмRandom-Walk(F , 𝛼, 𝜏)

Повторить 𝛼(n) раз:I Выбрать случайным образом набор A.I Если A выполянет F , выдать его. В противном случае повторить

𝜏(n) раз:F Взять произвольный невыполненный клоз C в F .F Выбрать случайную переменную x из C .

F Изменить значение x в A.F Если A выполянет F , выдать его.

Выдать ответ “невыполнима”.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 33 / 44

Page 128: 20071202 efficientalgorithms kulikov_lecture12

Общая схема

АлгоритмRandom-Walk(F , 𝛼, 𝜏)

Повторить 𝛼(n) раз:I Выбрать случайным образом набор A.I Если A выполянет F , выдать его. В противном случае повторить

𝜏(n) раз:F Взять произвольный невыполненный клоз C в F .F Выбрать случайную переменную x из C .F Изменить значение x в A.

F Если A выполянет F , выдать его.

Выдать ответ “невыполнима”.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 33 / 44

Page 129: 20071202 efficientalgorithms kulikov_lecture12

Общая схема

АлгоритмRandom-Walk(F , 𝛼, 𝜏)

Повторить 𝛼(n) раз:I Выбрать случайным образом набор A.I Если A выполянет F , выдать его. В противном случае повторить

𝜏(n) раз:F Взять произвольный невыполненный клоз C в F .F Выбрать случайную переменную x из C .F Изменить значение x в A.F Если A выполянет F , выдать его.

Выдать ответ “невыполнима”.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 33 / 44

Page 130: 20071202 efficientalgorithms kulikov_lecture12

Общая схема

АлгоритмRandom-Walk(F , 𝛼, 𝜏)

Повторить 𝛼(n) раз:I Выбрать случайным образом набор A.I Если A выполянет F , выдать его. В противном случае повторить

𝜏(n) раз:F Взять произвольный невыполненный клоз C в F .F Выбрать случайную переменную x из C .F Изменить значение x в A.F Если A выполянет F , выдать его.

Выдать ответ “невыполнима”.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 33 / 44

Page 131: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

Анализ алгоритма

рассмотрим работу алгоритма на формуле F в k-КНФпредположим, что у F есть выполняющий набор S , которыйотличается от A значениями ровно i переменныхна каждом шаге алгоритм приближается к S с вероятностью хотябы 1/kтаким образом, процесс модификации A связан со следующимодномерным случайным блужданием:

I частица блуждает на интервале [0..n]I стартует с позиции j в момент времени t = 0 и совершает 𝜏(n)

шаговI с вероятностью 1/k переходит в j − 1, с вероятностью 1− 1/k — в

j + 1I в 0 останавливается, из n обязательно переходит в n − 1

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 34 / 44

Page 132: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

Анализ алгоритмарассмотрим работу алгоритма на формуле F в k-КНФ

предположим, что у F есть выполняющий набор S , которыйотличается от A значениями ровно i переменныхна каждом шаге алгоритм приближается к S с вероятностью хотябы 1/kтаким образом, процесс модификации A связан со следующимодномерным случайным блужданием:

I частица блуждает на интервале [0..n]I стартует с позиции j в момент времени t = 0 и совершает 𝜏(n)

шаговI с вероятностью 1/k переходит в j − 1, с вероятностью 1− 1/k — в

j + 1I в 0 останавливается, из n обязательно переходит в n − 1

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 34 / 44

Page 133: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

Анализ алгоритмарассмотрим работу алгоритма на формуле F в k-КНФпредположим, что у F есть выполняющий набор S , которыйотличается от A значениями ровно i переменных

на каждом шаге алгоритм приближается к S с вероятностью хотябы 1/kтаким образом, процесс модификации A связан со следующимодномерным случайным блужданием:

I частица блуждает на интервале [0..n]I стартует с позиции j в момент времени t = 0 и совершает 𝜏(n)

шаговI с вероятностью 1/k переходит в j − 1, с вероятностью 1− 1/k — в

j + 1I в 0 останавливается, из n обязательно переходит в n − 1

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 34 / 44

Page 134: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

Анализ алгоритмарассмотрим работу алгоритма на формуле F в k-КНФпредположим, что у F есть выполняющий набор S , которыйотличается от A значениями ровно i переменныхна каждом шаге алгоритм приближается к S с вероятностью хотябы 1/k

таким образом, процесс модификации A связан со следующимодномерным случайным блужданием:

I частица блуждает на интервале [0..n]I стартует с позиции j в момент времени t = 0 и совершает 𝜏(n)

шаговI с вероятностью 1/k переходит в j − 1, с вероятностью 1− 1/k — в

j + 1I в 0 останавливается, из n обязательно переходит в n − 1

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 34 / 44

Page 135: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

Анализ алгоритмарассмотрим работу алгоритма на формуле F в k-КНФпредположим, что у F есть выполняющий набор S , которыйотличается от A значениями ровно i переменныхна каждом шаге алгоритм приближается к S с вероятностью хотябы 1/kтаким образом, процесс модификации A связан со следующимодномерным случайным блужданием:

I частица блуждает на интервале [0..n]I стартует с позиции j в момент времени t = 0 и совершает 𝜏(n)

шаговI с вероятностью 1/k переходит в j − 1, с вероятностью 1− 1/k — в

j + 1I в 0 останавливается, из n обязательно переходит в n − 1

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 34 / 44

Page 136: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

Анализ алгоритмарассмотрим работу алгоритма на формуле F в k-КНФпредположим, что у F есть выполняющий набор S , которыйотличается от A значениями ровно i переменныхна каждом шаге алгоритм приближается к S с вероятностью хотябы 1/kтаким образом, процесс модификации A связан со следующимодномерным случайным блужданием:

I частица блуждает на интервале [0..n]

I стартует с позиции j в момент времени t = 0 и совершает 𝜏(n)шагов

I с вероятностью 1/k переходит в j − 1, с вероятностью 1− 1/k — вj + 1

I в 0 останавливается, из n обязательно переходит в n − 1

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 34 / 44

Page 137: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

Анализ алгоритмарассмотрим работу алгоритма на формуле F в k-КНФпредположим, что у F есть выполняющий набор S , которыйотличается от A значениями ровно i переменныхна каждом шаге алгоритм приближается к S с вероятностью хотябы 1/kтаким образом, процесс модификации A связан со следующимодномерным случайным блужданием:

I частица блуждает на интервале [0..n]I стартует с позиции j в момент времени t = 0 и совершает 𝜏(n)

шагов

I с вероятностью 1/k переходит в j − 1, с вероятностью 1− 1/k — вj + 1

I в 0 останавливается, из n обязательно переходит в n − 1

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 34 / 44

Page 138: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

Анализ алгоритмарассмотрим работу алгоритма на формуле F в k-КНФпредположим, что у F есть выполняющий набор S , которыйотличается от A значениями ровно i переменныхна каждом шаге алгоритм приближается к S с вероятностью хотябы 1/kтаким образом, процесс модификации A связан со следующимодномерным случайным блужданием:

I частица блуждает на интервале [0..n]I стартует с позиции j в момент времени t = 0 и совершает 𝜏(n)

шаговI с вероятностью 1/k переходит в j − 1, с вероятностью 1− 1/k — в

j + 1

I в 0 останавливается, из n обязательно переходит в n − 1

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 34 / 44

Page 139: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма

Анализ алгоритмарассмотрим работу алгоритма на формуле F в k-КНФпредположим, что у F есть выполняющий набор S , которыйотличается от A значениями ровно i переменныхна каждом шаге алгоритм приближается к S с вероятностью хотябы 1/kтаким образом, процесс модификации A связан со следующимодномерным случайным блужданием:

I частица блуждает на интервале [0..n]I стартует с позиции j в момент времени t = 0 и совершает 𝜏(n)

шаговI с вероятностью 1/k переходит в j − 1, с вероятностью 1− 1/k — в

j + 1I в 0 останавливается, из n обязательно переходит в n − 1

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 34 / 44

Page 140: 20071202 efficientalgorithms kulikov_lecture12

Случайные блуждания визуально

0 1 j n − 1 n

старт

p

1− p

p p

1− p

p p

1− p

1

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 35 / 44

Page 141: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма неформально

Неформально

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 36 / 44

Page 142: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма неформально

Неформальнодля оценки вероятности ошибки такого алгоритма оцениваетсявероятность того, что частица, вышедшая из состояния i ,достигнет состояния 0 за t шагов

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 36 / 44

Page 143: 20071202 efficientalgorithms kulikov_lecture12

Анализ алгоритма неформально

Неформальнодля оценки вероятности ошибки такого алгоритма оцениваетсявероятность того, что частица, вышедшая из состояния i ,достигнет состояния 0 за t шаговмы рассмотрим упрощенные варианты такого алгоритма, вкоторых вместо выбора случайной переменной из невыполненногоклоза, рассматриваются все три изменения

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 36 / 44

Page 144: 20071202 efficientalgorithms kulikov_lecture12

Хэммингово расстояние

Определение

Хэммингово расстояние двух наборов — количество переменных,которым эти наборы присваивают разные значения.Для набора t и числа d под Хэмминговым шаром ℋ(t, d) (сцентром в t и радуиса d) будем понимать множество всехнаборов, находящихся на расстоянии не более чем d от t.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 37 / 44

Page 145: 20071202 efficientalgorithms kulikov_lecture12

Хэммингово расстояние

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

Для набора t и числа d под Хэмминговым шаром ℋ(t, d) (сцентром в t и радуиса d) будем понимать множество всехнаборов, находящихся на расстоянии не более чем d от t.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 37 / 44

Page 146: 20071202 efficientalgorithms kulikov_lecture12

Хэммингово расстояние

ОпределениеХэммингово расстояние двух наборов — количество переменных,которым эти наборы присваивают разные значения.Для набора t и числа d под Хэмминговым шаром ℋ(t, d) (сцентром в t и радуиса d) будем понимать множество всехнаборов, находящихся на расстоянии не более чем d от t.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 37 / 44

Page 147: 20071202 efficientalgorithms kulikov_lecture12

Поиск в шаре

Поиск в шареДля формулы F в 3-КНФ поиск выполняющего набора в шаре ℋ(t, d)может быть осуществлен за время 3d :

если t не выполянет F , возьмем произвольный невыполненныйклоз C = (x1 ∨ x2 ∨ x3)

рассмотрим три набора, полученных из t изменением значенийпеременных x1, x2 и x3

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 38 / 44

Page 148: 20071202 efficientalgorithms kulikov_lecture12

Поиск в шаре

Поиск в шареДля формулы F в 3-КНФ поиск выполняющего набора в шаре ℋ(t, d)может быть осуществлен за время 3d :

если t не выполянет F , возьмем произвольный невыполненныйклоз C = (x1 ∨ x2 ∨ x3)

рассмотрим три набора, полученных из t изменением значенийпеременных x1, x2 и x3

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 38 / 44

Page 149: 20071202 efficientalgorithms kulikov_lecture12

Поиск в шаре

Поиск в шареДля формулы F в 3-КНФ поиск выполняющего набора в шаре ℋ(t, d)может быть осуществлен за время 3d :

если t не выполянет F , возьмем произвольный невыполненныйклоз C = (x1 ∨ x2 ∨ x3)

рассмотрим три набора, полученных из t изменением значенийпеременных x1, x2 и x3

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 38 / 44

Page 150: 20071202 efficientalgorithms kulikov_lecture12

Поиск в шаре

Поиск в шареДля формулы F в 3-КНФ поиск выполняющего набора в шаре ℋ(t, d)может быть осуществлен за время 3d :

если t не выполянет F , возьмем произвольный невыполненныйклоз C = (x1 ∨ x2 ∨ x3)

рассмотрим три набора, полученных из t изменением значенийпеременных x1, x2 и x3

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 38 / 44

Page 151: 20071202 efficientalgorithms kulikov_lecture12

√3

n-Алгоритм

АлгоритмSimple-3-SAT(F )

проверить, есть ли выполняющий набор в шарах ℋ(0n, n/2),ℋ(1n, n/2)

Лемма

Время работы алгоритма Simple-3-SAT есть√

3n, где n = n(F ) —

число переменных формулы F .

ДоказательствоПонятно, что если выполняющий набор есть, то он содержится водном из рассмотренных двух шаров.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 39 / 44

Page 152: 20071202 efficientalgorithms kulikov_lecture12

√3

n-Алгоритм

АлгоритмSimple-3-SAT(F )

проверить, есть ли выполняющий набор в шарах ℋ(0n, n/2),ℋ(1n, n/2)

Лемма

Время работы алгоритма Simple-3-SAT есть√

3n, где n = n(F ) —

число переменных формулы F .

ДоказательствоПонятно, что если выполняющий набор есть, то он содержится водном из рассмотренных двух шаров.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 39 / 44

Page 153: 20071202 efficientalgorithms kulikov_lecture12

√3

n-Алгоритм

АлгоритмSimple-3-SAT(F )

проверить, есть ли выполняющий набор в шарах ℋ(0n, n/2),ℋ(1n, n/2)

Лемма

Время работы алгоритма Simple-3-SAT есть√

3n, где n = n(F ) —

число переменных формулы F .

ДоказательствоПонятно, что если выполняющий набор есть, то он содержится водном из рассмотренных двух шаров.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 39 / 44

Page 154: 20071202 efficientalgorithms kulikov_lecture12

√3

n-Алгоритм

АлгоритмSimple-3-SAT(F )

проверить, есть ли выполняющий набор в шарах ℋ(0n, n/2),ℋ(1n, n/2)

Лемма

Время работы алгоритма Simple-3-SAT есть√

3n, где n = n(F ) —

число переменных формулы F .

ДоказательствоПонятно, что если выполняющий набор есть, то он содержится водном из рассмотренных двух шаров.

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 39 / 44

Page 155: 20071202 efficientalgorithms kulikov_lecture12

1.5n-Алгоритм

АлгоритмImproved-3-SAT(F )

повторить T = c · 2n/|ℋ(0n, n/4)| раз:I выбрать случайно набор tI проверить шар ℋ(t, n/4)I если выполняющий набор найден, выдать ответ “выполнима”

выдать ответ “невыполнима”

ЛеммаАлгоритм Improved-3-SAT имеет время работы 1.5n и вероятностьошибки не более e−c .

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 40 / 44

Page 156: 20071202 efficientalgorithms kulikov_lecture12

1.5n-Алгоритм

АлгоритмImproved-3-SAT(F )

повторить T = c · 2n/|ℋ(0n, n/4)| раз:

I выбрать случайно набор tI проверить шар ℋ(t, n/4)I если выполняющий набор найден, выдать ответ “выполнима”

выдать ответ “невыполнима”

ЛеммаАлгоритм Improved-3-SAT имеет время работы 1.5n и вероятностьошибки не более e−c .

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 40 / 44

Page 157: 20071202 efficientalgorithms kulikov_lecture12

1.5n-Алгоритм

АлгоритмImproved-3-SAT(F )

повторить T = c · 2n/|ℋ(0n, n/4)| раз:I выбрать случайно набор t

I проверить шар ℋ(t, n/4)I если выполняющий набор найден, выдать ответ “выполнима”

выдать ответ “невыполнима”

ЛеммаАлгоритм Improved-3-SAT имеет время работы 1.5n и вероятностьошибки не более e−c .

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 40 / 44

Page 158: 20071202 efficientalgorithms kulikov_lecture12

1.5n-Алгоритм

АлгоритмImproved-3-SAT(F )

повторить T = c · 2n/|ℋ(0n, n/4)| раз:I выбрать случайно набор tI проверить шар ℋ(t, n/4)

I если выполняющий набор найден, выдать ответ “выполнима”

выдать ответ “невыполнима”

ЛеммаАлгоритм Improved-3-SAT имеет время работы 1.5n и вероятностьошибки не более e−c .

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 40 / 44

Page 159: 20071202 efficientalgorithms kulikov_lecture12

1.5n-Алгоритм

АлгоритмImproved-3-SAT(F )

повторить T = c · 2n/|ℋ(0n, n/4)| раз:I выбрать случайно набор tI проверить шар ℋ(t, n/4)I если выполняющий набор найден, выдать ответ “выполнима”

выдать ответ “невыполнима”

ЛеммаАлгоритм Improved-3-SAT имеет время работы 1.5n и вероятностьошибки не более e−c .

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 40 / 44

Page 160: 20071202 efficientalgorithms kulikov_lecture12

1.5n-Алгоритм

АлгоритмImproved-3-SAT(F )

повторить T = c · 2n/|ℋ(0n, n/4)| раз:I выбрать случайно набор tI проверить шар ℋ(t, n/4)I если выполняющий набор найден, выдать ответ “выполнима”

выдать ответ “невыполнима”

ЛеммаАлгоритм Improved-3-SAT имеет время работы 1.5n и вероятностьошибки не более e−c .

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 40 / 44

Page 161: 20071202 efficientalgorithms kulikov_lecture12

1.5n-Алгоритм

АлгоритмImproved-3-SAT(F )

повторить T = c · 2n/|ℋ(0n, n/4)| раз:I выбрать случайно набор tI проверить шар ℋ(t, n/4)I если выполняющий набор найден, выдать ответ “выполнима”

выдать ответ “невыполнима”

ЛеммаАлгоритм Improved-3-SAT имеет время работы 1.5n и вероятностьошибки не более e−c .

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 40 / 44

Page 162: 20071202 efficientalgorithms kulikov_lecture12

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

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

время работы: T · 3n/4 = c · 2n · 3n/4/|ℋ(0n, n/4)| ≤ 1.5n

вероятность ошибки:I ошибка может возникнуть только в случае, когда формула

выполнима и алгоритм всегда выбирает “плохие центры”I вероятность того, что случайно выбранный набор является

плохим, не превосходит 1− |ℋ(0n, 2n/4)|/2n = 1− c/TI таким образом, вероятность ошибки не превосходит

(1− c/T )T < e−c

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 41 / 44

Page 163: 20071202 efficientalgorithms kulikov_lecture12

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

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

время работы: T · 3n/4 = c · 2n · 3n/4/|ℋ(0n, n/4)| ≤ 1.5n

вероятность ошибки:I ошибка может возникнуть только в случае, когда формула

выполнима и алгоритм всегда выбирает “плохие центры”I вероятность того, что случайно выбранный набор является

плохим, не превосходит 1− |ℋ(0n, 2n/4)|/2n = 1− c/TI таким образом, вероятность ошибки не превосходит

(1− c/T )T < e−c

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 41 / 44

Page 164: 20071202 efficientalgorithms kulikov_lecture12

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

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

время работы: T · 3n/4 = c · 2n · 3n/4/|ℋ(0n, n/4)| ≤ 1.5n

вероятность ошибки:

I ошибка может возникнуть только в случае, когда формулавыполнима и алгоритм всегда выбирает “плохие центры”

I вероятность того, что случайно выбранный набор являетсяплохим, не превосходит 1− |ℋ(0n, 2n/4)|/2n = 1− c/T

I таким образом, вероятность ошибки не превосходит(1− c/T )T < e−c

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 41 / 44

Page 165: 20071202 efficientalgorithms kulikov_lecture12

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

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

время работы: T · 3n/4 = c · 2n · 3n/4/|ℋ(0n, n/4)| ≤ 1.5n

вероятность ошибки:I ошибка может возникнуть только в случае, когда формула

выполнима и алгоритм всегда выбирает “плохие центры”

I вероятность того, что случайно выбранный набор являетсяплохим, не превосходит 1− |ℋ(0n, 2n/4)|/2n = 1− c/T

I таким образом, вероятность ошибки не превосходит(1− c/T )T < e−c

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 41 / 44

Page 166: 20071202 efficientalgorithms kulikov_lecture12

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

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

время работы: T · 3n/4 = c · 2n · 3n/4/|ℋ(0n, n/4)| ≤ 1.5n

вероятность ошибки:I ошибка может возникнуть только в случае, когда формула

выполнима и алгоритм всегда выбирает “плохие центры”I вероятность того, что случайно выбранный набор является

плохим, не превосходит 1− |ℋ(0n, 2n/4)|/2n = 1− c/T

I таким образом, вероятность ошибки не превосходит(1− c/T )T < e−c

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 41 / 44

Page 167: 20071202 efficientalgorithms kulikov_lecture12

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

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

время работы: T · 3n/4 = c · 2n · 3n/4/|ℋ(0n, n/4)| ≤ 1.5n

вероятность ошибки:I ошибка может возникнуть только в случае, когда формула

выполнима и алгоритм всегда выбирает “плохие центры”I вероятность того, что случайно выбранный набор является

плохим, не превосходит 1− |ℋ(0n, 2n/4)|/2n = 1− c/TI таким образом, вероятность ошибки не превосходит

(1− c/T )T < e−c

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 41 / 44

Page 168: 20071202 efficientalgorithms kulikov_lecture12

Обобщение для k-SAT

Обобщение для k-SAT

покрыть множество всех наборов шарами равного радиуса(покрывающий код, covering code)проверить каждый шарвремя работы алгоритма: (2− 2/(k + 1))n

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 42 / 44

Page 169: 20071202 efficientalgorithms kulikov_lecture12

Обобщение для k-SAT

Обобщение для k-SATпокрыть множество всех наборов шарами равного радиуса(покрывающий код, covering code)

проверить каждый шарвремя работы алгоритма: (2− 2/(k + 1))n

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 42 / 44

Page 170: 20071202 efficientalgorithms kulikov_lecture12

Обобщение для k-SAT

Обобщение для k-SATпокрыть множество всех наборов шарами равного радиуса(покрывающий код, covering code)проверить каждый шар

время работы алгоритма: (2− 2/(k + 1))n

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 42 / 44

Page 171: 20071202 efficientalgorithms kulikov_lecture12

Обобщение для k-SAT

Обобщение для k-SATпокрыть множество всех наборов шарами равного радиуса(покрывающий код, covering code)проверить каждый шарвремя работы алгоритма: (2− 2/(k + 1))n

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 42 / 44

Page 172: 20071202 efficientalgorithms kulikov_lecture12

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

Что мы узнали за сегодня?основные типы алгоритмов для SAT:

расщепляющие алгоритмы сводят задачу для входной формулы Fк задаче для более простых формул F1, . . . , Fj

I DPLL-подобные алгоритмы заменяют входную формулу F на двеформулы F [x = 1] и F [x = 0]; время работы оценивается изрекуррентных соотношений для количества листьев в дереверекурсии

I PPSZ-подобные алгоритмы присваивают значения переменнымслучайно; время работы оценивается “глобально”

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 43 / 44

Page 173: 20071202 efficientalgorithms kulikov_lecture12

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

Что мы узнали за сегодня?основные типы алгоритмов для SAT:

расщепляющие алгоритмы сводят задачу для входной формулы Fк задаче для более простых формул F1, . . . , Fj

I DPLL-подобные алгоритмы заменяют входную формулу F на двеформулы F [x = 1] и F [x = 0]; время работы оценивается изрекуррентных соотношений для количества листьев в дереверекурсии

I PPSZ-подобные алгоритмы присваивают значения переменнымслучайно; время работы оценивается “глобально”

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 43 / 44

Page 174: 20071202 efficientalgorithms kulikov_lecture12

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

Что мы узнали за сегодня?основные типы алгоритмов для SAT:

расщепляющие алгоритмы сводят задачу для входной формулы Fк задаче для более простых формул F1, . . . , Fj

I DPLL-подобные алгоритмы заменяют входную формулу F на двеформулы F [x = 1] и F [x = 0]; время работы оценивается изрекуррентных соотношений для количества листьев в дереверекурсии

I PPSZ-подобные алгоритмы присваивают значения переменнымслучайно; время работы оценивается “глобально”

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 43 / 44

Page 175: 20071202 efficientalgorithms kulikov_lecture12

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

Что мы узнали за сегодня?основные типы алгоритмов для SAT:

расщепляющие алгоритмы сводят задачу для входной формулы Fк задаче для более простых формул F1, . . . , Fj

I DPLL-подобные алгоритмы заменяют входную формулу F на двеформулы F [x = 1] и F [x = 0]; время работы оценивается изрекуррентных соотношений для количества листьев в дереверекурсии

I PPSZ-подобные алгоритмы присваивают значения переменнымслучайно; время работы оценивается “глобально”

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 43 / 44

Page 176: 20071202 efficientalgorithms kulikov_lecture12

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

Что мы узнали за сегодня?основные типы алгоритмов для SAT:

расщепляющие алгоритмы сводят задачу для входной формулы Fк задаче для более простых формул F1, . . . , Fj

I DPLL-подобные алгоритмы заменяют входную формулу F на двеформулы F [x = 1] и F [x = 0]; время работы оценивается изрекуррентных соотношений для количества листьев в дереверекурсии

I PPSZ-подобные алгоритмы присваивают значения переменнымслучайно; время работы оценивается “глобально”

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 43 / 44

Page 177: 20071202 efficientalgorithms kulikov_lecture12

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

А. Куликов (CS клуб при ПОМИ) 12. Алгоритмы для SAT 44 / 44