20091108 algorithmsfornphardproblems kulikov_lecture07

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

Upload: computer-science-club

Post on 13-Jul-2015

283 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

А. Куликов

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

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

Page 2: 20091108 algorithmsfornphardproblems kulikov_lecture07

План лекции

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

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

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

Page 3: 20091108 algorithmsfornphardproblems kulikov_lecture07

План лекции

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

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

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

Page 4: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

Page 5: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

Page 6: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

Page 7: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

Page 8: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

Page 9: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

Page 10: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

Page 11: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

Page 12: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

x = 1

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

Page 13: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

План лекции

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

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

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

Page 24: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

Определение

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

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

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

Page 25: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

Определение

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

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

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

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

Page 26: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

Определение

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

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

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

Page 27: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

Единичный клозЕсли формула содержит единичный клоз (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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

Единичный клозЕсли формула содержит единичный клоз (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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

Если формула содержит чистый литерал (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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

Если формула содержит чистый литерал (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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

Резолюция

Резолюция

Если 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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

Резолюция

Резолюция

Если 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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

Резолюция

Резолюция

Если 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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

Пусть 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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

Пусть 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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

Пусть 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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

Пример

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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

Пример

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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

Пример

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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

Пример

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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

Алгоритм

Алгоритм

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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

Алгоритм

Алгоритм

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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

Алгоритм

Алгоритм

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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

Алгоритм

Алгоритм

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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

Алгоритм

Алгоритм

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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

Алгоритм

Алгоритм

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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

Лемма

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

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

√2 = 1.414...

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

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

Page 48: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

Лемма

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

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

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

√2 = 1.414...

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

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

Page 49: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

Лемма

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

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

√2 = 1.414...

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

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

Page 50: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

Лемма

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

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

√2 = 1.414...

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

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

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

Page 51: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

Лемма

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

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

√2 = 1.414...

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

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

Page 52: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

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

Page 53: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

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

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

Page 54: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

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

Page 55: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

План лекции

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

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

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

Page 62: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

Page 63: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

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

Page 64: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

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

Page 65: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

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

Page 66: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

Page 67: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

Вход

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

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

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

Page 68: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

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

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

Page 69: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

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

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

Page 70: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

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

Page 71: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

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

Page 72: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

Пример входа

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

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

Page 73: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

программа должна доказать, что для любой упрощеннойформулы можно найти (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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

программа должна доказать, что для любой упрощеннойформулы можно найти (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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

программа должна доказать, что для любой упрощеннойформулы можно найти (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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

программа должна доказать, что для любой упрощеннойформулы можно найти (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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

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

Page 78: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

?

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

?

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

?

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

?

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

?

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

?

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

?

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

?

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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

?

(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: 20091108 algorithmsfornphardproblems kulikov_lecture07

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

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

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