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

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

Embed Size (px)

Citation preview

Page 1: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

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

А. Куликов

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

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

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

План лекции

1 Простой алгоритм для задачи выполнимости

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

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

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

План лекции

1 Простой алгоритм для задачи выполнимости

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

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

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

Метод расщепления

Один из самых мощных и хорошо изученных методов длядоказательства верхних оценок для NP-трудных задач.Рекордные теоретические верхние оценки для многих задачполучены именно с помощью этого метода.В то же время для некоторых задач не дает ничего лучше полногоперебора.Анализ алгоритмов, основанных на методе расщепления, какправило достаточно сложен (хотя и однообразен).Многие практические алгоритмы также основаны на методерасщепления.Мы будем рассматривать метод расщепления в применении кзадачам выполнимости и максимальной выполнимости, хотяизвестно много таких алгоритмов и для других задач.

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

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

Метод расщепления

Один из самых мощных и хорошо изученных методов длядоказательства верхних оценок для NP-трудных задач.

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

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

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

Метод расщепления

Один из самых мощных и хорошо изученных методов длядоказательства верхних оценок для NP-трудных задач.Рекордные теоретические верхние оценки для многих задачполучены именно с помощью этого метода.

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

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

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

Метод расщепления

Один из самых мощных и хорошо изученных методов длядоказательства верхних оценок для NP-трудных задач.Рекордные теоретические верхние оценки для многих задачполучены именно с помощью этого метода.В то же время для некоторых задач не дает ничего лучше полногоперебора.

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

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

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

Метод расщепления

Один из самых мощных и хорошо изученных методов длядоказательства верхних оценок для NP-трудных задач.Рекордные теоретические верхние оценки для многих задачполучены именно с помощью этого метода.В то же время для некоторых задач не дает ничего лучше полногоперебора.Анализ алгоритмов, основанных на методе расщепления, какправило достаточно сложен (хотя и однообразен).

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

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

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

Метод расщепления

Один из самых мощных и хорошо изученных методов длядоказательства верхних оценок для NP-трудных задач.Рекордные теоретические верхние оценки для многих задачполучены именно с помощью этого метода.В то же время для некоторых задач не дает ничего лучше полногоперебора.Анализ алгоритмов, основанных на методе расщепления, какправило достаточно сложен (хотя и однообразен).Многие практические алгоритмы также основаны на методерасщепления.

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

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

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

Метод расщепления

Один из самых мощных и хорошо изученных методов длядоказательства верхних оценок для NP-трудных задач.Рекордные теоретические верхние оценки для многих задачполучены именно с помощью этого метода.В то же время для некоторых задач не дает ничего лучше полногоперебора.Анализ алгоритмов, основанных на методе расщепления, какправило достаточно сложен (хотя и однообразен).Многие практические алгоритмы также основаны на методерасщепления.Мы будем рассматривать метод расщепления в применении кзадачам выполнимости и максимальной выполнимости, хотяизвестно много таких алгоритмов и для других задач.

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

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

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

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

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

Page 12: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

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

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

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

x = 1

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

Page 13: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

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

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

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

x = 1

(z) ∧ (¬z)

y = 1

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

Page 14: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

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

(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

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

Page 15: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

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

(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

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

Page 16: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

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

(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

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

Page 17: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

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

(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

пустая формула

z = 1

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

Page 18: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

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

(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

пустая формула

z = 1

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

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

Page 19: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

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

(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

пустая формула

z = 1

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

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

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

Page 20: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

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

(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

пустая формула

z = 1

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

упрощение

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

Page 21: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

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

(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

пустая формула

z = 1

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

порядок перебора

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

Page 22: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

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

(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

пустая формула

z = 1

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

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

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

Page 23: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

План лекции

1 Простой алгоритм для задачи выполнимости

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

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

Page 24: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

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

Определение

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

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

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

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

Простой алгоритм для задачи выполнимости

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

Определение

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

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

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

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

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

Простой алгоритм для задачи выполнимости

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

Определение

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

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

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

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

Простой алгоритм для задачи выполнимости

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

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

Пример

F = (x ∨ y ∨ ¬z) ∧ (¬x) ∧ (z ∨ ¬y) ∧ (¬y ∨ ¬x ∨ ¬z)F [x = 0] = (y ∨ ¬z) ∧ (z ∨ ¬y)

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

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

Простой алгоритм для задачи выполнимости

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

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

Пример

F = (x ∨ y ∨ ¬z) ∧ (¬x) ∧ (z ∨ ¬y) ∧ (¬y ∨ ¬x ∨ ¬z)F [x = 0] = (y ∨ ¬z) ∧ (z ∨ ¬y)

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

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

Простой алгоритм для задачи выполнимости

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

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

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

Пример

F = (x ∨ y ∨ z) ∧ (¬x) ∧ (x ∨ ¬y) ∧ (¬y ∨ ¬x ∨ z)F [z = 1] = (¬x) ∧ (x ∨ ¬y)

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

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

Простой алгоритм для задачи выполнимости

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

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

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

Пример

F = (x ∨ y ∨ z) ∧ (¬x) ∧ (x ∨ ¬y) ∧ (¬y ∨ ¬x ∨ z)F [z = 1] = (¬x) ∧ (x ∨ ¬y)

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

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

Простой алгоритм для задачи выполнимости

Резолюция

Резолюция

Если 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)

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

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

Простой алгоритм для задачи выполнимости

Резолюция

Резолюция

Если 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)

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

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

Простой алгоритм для задачи выполнимости

Резолюция

Резолюция

Если 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)

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

Page 34: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

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

Пусть 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) —числом расщепления.

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

Page 35: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

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

Пусть 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) —числом расщепления.

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

Page 36: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

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

Пусть 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) —числом расщепления.

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

Page 37: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

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

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

Пример

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

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

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

Page 38: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

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

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

Пример

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

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

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

Page 39: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

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

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

Пример

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

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

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

Page 40: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

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

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

Пример

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

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

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

Page 41: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

Алгоритм

Алгоритм

DPLL-SAT(F )

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

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

Page 42: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

Алгоритм

Алгоритм

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

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

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

Page 43: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

Алгоритм

Алгоритм

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

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

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

Page 44: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

Алгоритм

Алгоритм

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

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

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

Page 45: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

Алгоритм

Алгоритм

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

вернуть (DPLL-SAT(F [x = 1]) or DPLL-SAT(F [x = 0]))

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

Page 46: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

Алгоритм

Алгоритм

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

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

Page 47: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

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

Лемма

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

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

√2 = 1.414...

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

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

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

Простой алгоритм для задачи выполнимости

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

Лемма

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

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

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

√2 = 1.414...

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

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

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

Простой алгоритм для задачи выполнимости

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

Лемма

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

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

√2 = 1.414...

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

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

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

Простой алгоритм для задачи выполнимости

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

Лемма

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

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

√2 = 1.414...

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

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

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

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

Простой алгоритм для задачи выполнимости

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

Лемма

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

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

√2 = 1.414...

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

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

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

Простой алгоритм для задачи выполнимости

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

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

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

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

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

Простой алгоритм для задачи выполнимости

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

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

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

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

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

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

Простой алгоритм для задачи выполнимости

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

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

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

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

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

Простой алгоритм для задачи выполнимости

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

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

рассмотрим произвольный литерал 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

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

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

Простой алгоритм для задачи выполнимости

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

Доказательстворассмотрим произвольный литерал 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

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

Page 57: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

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

Доказательстворассмотрим произвольный литерал 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

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

Page 58: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

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

Доказательстворассмотрим произвольный литерал 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

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

Page 59: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

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

Доказательстворассмотрим произвольный литерал 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

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

Page 60: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Простой алгоритм для задачи выполнимости

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

Доказательстворассмотрим произвольный литерал 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

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

Page 61: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

План лекции

1 Простой алгоритм для задачи выполнимости

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

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

Page 62: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Анализ алгоритмов расщепления

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

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

Page 63: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Анализ алгоритмов расщепления

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

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

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

Page 64: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Анализ алгоритмов расщепления

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

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

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

Page 65: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Анализ алгоритмов расщепления

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

такой разбор случаев можно проводить автоматически

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

Page 66: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Анализ алгоритмов расщепления

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

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

Page 67: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Программа для автоматического доказательства верхнихоценок для NP-трудных задач

Вход

NP-трудная задача, сформулированная в терминах КНФ формулмножество правил упрощения для данной задачиверхнюю оценку

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

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

Page 68: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Программа для автоматического доказательства верхнихоценок для NP-трудных задач

ВходNP-трудная задача, сформулированная в терминах КНФ формул

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

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

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

Page 69: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Программа для автоматического доказательства верхнихоценок для NP-трудных задач

ВходNP-трудная задача, сформулированная в терминах КНФ формулмножество правил упрощения для данной задачи

верхнюю оценку

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

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

Page 70: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Программа для автоматического доказательства верхнихоценок для NP-трудных задач

ВходNP-трудная задача, сформулированная в терминах КНФ формулмножество правил упрощения для данной задачиверхнюю оценку

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

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

Page 71: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Программа для автоматического доказательства верхнихоценок для NP-трудных задач

ВходNP-трудная задача, сформулированная в терминах КНФ формулмножество правил упрощения для данной задачиверхнюю оценку

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

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

Page 72: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Пример входа

Допсутим, программа получила задание доказать, что существуеталгоритм для выполнимости, который использует правила удаленияединичных клозов и чистых литералов и имеет время работы не хуже1.619K , где K — количество клозов входной формулы.

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

Page 73: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Предобработка

программа должна доказать, что для любой упрощеннойформулы можно найти (1, 2)-расщепление (то есть расщепление,которому соответствует рекуррентное неравенствоT (K ) ≤ T (K − 1) + T (K − 2) + poly(K ))каждый литерал упрощенной формулы входит в нее хотя бы одинраз положительно и хотя бы один раз отрицательно (всеостальные литералы являются чистыми и удаляютсясоответствующим правилом)более того, если есть литерал, который входит в формулу хотя быдважды, то расщепление по нему дает требуемое неравенство:

(x ∨ a ∨ . . . ) ∧ (x ∨ b ∨ . . . ) ∧ (x ∨ c ∨ . . . ) ∧ . . .

(c ∨ . . . ) ∧ . . . (a ∨ . . . ) ∧ (b ∨ . . . ) ∧ . . .

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

Page 74: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Предобработка

программа должна доказать, что для любой упрощеннойформулы можно найти (1, 2)-расщепление (то есть расщепление,которому соответствует рекуррентное неравенствоT (K ) ≤ T (K − 1) + T (K − 2) + poly(K ))

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

(x ∨ a ∨ . . . ) ∧ (x ∨ b ∨ . . . ) ∧ (x ∨ c ∨ . . . ) ∧ . . .

(c ∨ . . . ) ∧ . . . (a ∨ . . . ) ∧ (b ∨ . . . ) ∧ . . .

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

Page 75: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Предобработка

программа должна доказать, что для любой упрощеннойформулы можно найти (1, 2)-расщепление (то есть расщепление,которому соответствует рекуррентное неравенствоT (K ) ≤ T (K − 1) + T (K − 2) + poly(K ))каждый литерал упрощенной формулы входит в нее хотя бы одинраз положительно и хотя бы один раз отрицательно (всеостальные литералы являются чистыми и удаляютсясоответствующим правилом)

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

(x ∨ a ∨ . . . ) ∧ (x ∨ b ∨ . . . ) ∧ (x ∨ c ∨ . . . ) ∧ . . .

(c ∨ . . . ) ∧ . . . (a ∨ . . . ) ∧ (b ∨ . . . ) ∧ . . .

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

Page 76: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Предобработка

программа должна доказать, что для любой упрощеннойформулы можно найти (1, 2)-расщепление (то есть расщепление,которому соответствует рекуррентное неравенствоT (K ) ≤ T (K − 1) + T (K − 2) + poly(K ))каждый литерал упрощенной формулы входит в нее хотя бы одинраз положительно и хотя бы один раз отрицательно (всеостальные литералы являются чистыми и удаляютсясоответствующим правилом)более того, если есть литерал, который входит в формулу хотя быдважды, то расщепление по нему дает требуемое неравенство:

(x ∨ a ∨ . . . ) ∧ (x ∨ b ∨ . . . ) ∧ (x ∨ c ∨ . . . ) ∧ . . .

(c ∨ . . . ) ∧ . . . (a ∨ . . . ) ∧ (b ∨ . . . ) ∧ . . .

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

Page 77: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Предобработка

Таким образомПрограмме нужно доказать, что упрощенную формулу, состоящуютолько из (1, 1)-литералов, всегда можно хорошо расщепить.

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

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

Автоматические доказательства верхних оценок

Автоматический разбор случаев

упрощенные формулы

?

(x ∨ . . .) ∧ (x ∨ . . .) ∧ . . .����)

(x) ∧ (x ∨ . . .) ∧ . . .

PPPPq

y ∈ (x ∨ . . . )есть единичный клоз

(x ∨ y . . . ) ∧ (x ∨ y . . . ) ∧ . . .

(x ∨ y . . . ) ∧ (x ∨ . . . ) ∧ (y ∨ . . . ) ∧ . . .

(2, 2)-расщепление по x

(2, 1)-расщепление по x

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

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

Автоматические доказательства верхних оценок

Автоматический разбор случаев

упрощенные формулы

?

(x ∨ . . .) ∧ (x ∨ . . .) ∧ . . .

����)

(x) ∧ (x ∨ . . .) ∧ . . .

PPPPq

y ∈ (x ∨ . . . )есть единичный клоз

(x ∨ y . . . ) ∧ (x ∨ y . . . ) ∧ . . .

(x ∨ y . . . ) ∧ (x ∨ . . . ) ∧ (y ∨ . . . ) ∧ . . .

(2, 2)-расщепление по x

(2, 1)-расщепление по x

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

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

Автоматические доказательства верхних оценок

Автоматический разбор случаев

упрощенные формулы

?

(x ∨ . . .) ∧ (x ∨ . . .) ∧ . . .����)

(x) ∧ (x ∨ . . .) ∧ . . .

PPPPq

y ∈ (x ∨ . . . )есть единичный клоз

(x ∨ y . . . ) ∧ (x ∨ y . . . ) ∧ . . .

(x ∨ y . . . ) ∧ (x ∨ . . . ) ∧ (y ∨ . . . ) ∧ . . .

(2, 2)-расщепление по x

(2, 1)-расщепление по x

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

Page 81: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Автоматический разбор случаев

упрощенные формулы

?

(x ∨ . . .) ∧ (x ∨ . . .) ∧ . . .����)

(x) ∧ (x ∨ . . .) ∧ . . .

PPPPq

y ∈ (x ∨ . . . )

есть единичный клоз

(x ∨ y . . . ) ∧ (x ∨ y . . . ) ∧ . . .

(x ∨ y . . . ) ∧ (x ∨ . . . ) ∧ (y ∨ . . . ) ∧ . . .

(2, 2)-расщепление по x

(2, 1)-расщепление по x

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

Page 82: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Автоматический разбор случаев

упрощенные формулы

?

(x ∨ . . .) ∧ (x ∨ . . .) ∧ . . .����)

(x) ∧ (x ∨ . . .) ∧ . . .

PPPPq

y ∈ (x ∨ . . . )есть единичный клоз

(x ∨ y . . . ) ∧ (x ∨ y . . . ) ∧ . . .

(x ∨ y . . . ) ∧ (x ∨ . . . ) ∧ (y ∨ . . . ) ∧ . . .

(2, 2)-расщепление по x

(2, 1)-расщепление по x

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

Page 83: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Автоматический разбор случаев

упрощенные формулы

?

(x ∨ . . .) ∧ (x ∨ . . .) ∧ . . .����)

(x) ∧ (x ∨ . . .) ∧ . . .

PPPPq

y ∈ (x ∨ . . . )есть единичный клоз

(x ∨ y . . . ) ∧ (x ∨ y . . . ) ∧ . . .

(x ∨ y . . . ) ∧ (x ∨ . . . ) ∧ (y ∨ . . . ) ∧ . . .

(2, 2)-расщепление по x

(2, 1)-расщепление по x

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

Page 84: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Автоматический разбор случаев

упрощенные формулы

?

(x ∨ . . .) ∧ (x ∨ . . .) ∧ . . .����)

(x) ∧ (x ∨ . . .) ∧ . . .

PPPPq

y ∈ (x ∨ . . . )есть единичный клоз

(x ∨ y . . . ) ∧ (x ∨ y . . . ) ∧ . . .

(x ∨ y . . . ) ∧ (x ∨ . . . ) ∧ (y ∨ . . . ) ∧ . . .

(2, 2)-расщепление по x

(2, 1)-расщепление по x

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

Page 85: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Автоматический разбор случаев

упрощенные формулы

?

(x ∨ . . .) ∧ (x ∨ . . .) ∧ . . .����)

(x) ∧ (x ∨ . . .) ∧ . . .

PPPPq

y ∈ (x ∨ . . . )есть единичный клоз

(x ∨ y . . . ) ∧ (x ∨ y . . . ) ∧ . . .

(x ∨ y . . . ) ∧ (x ∨ . . . ) ∧ (y ∨ . . . ) ∧ . . .

(2, 2)-расщепление по x

(2, 1)-расщепление по x

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

Page 86: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

Автоматический разбор случаев

упрощенные формулы

?

(x ∨ . . .) ∧ (x ∨ . . .) ∧ . . .����)

(x) ∧ (x ∨ . . .) ∧ . . .

PPPPq

y ∈ (x ∨ . . . )есть единичный клоз

(x ∨ y . . . ) ∧ (x ∨ y . . . ) ∧ . . .

(x ∨ y . . . ) ∧ (x ∨ . . . ) ∧ (y ∨ . . . ) ∧ . . .

(2, 2)-расщепление по x

(2, 1)-расщепление по x

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

Page 87: Алгоритмы для NP-трудных задач, осень 2009: Приближенные алгоритмы

Автоматические доказательства верхних оценок

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

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