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

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

Embed Size (px)

Citation preview

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

Алгоритмы для NP-трудных задачЛекция 1: Обзор

А. Куликов

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

А. Куликов (Computer Science клуб) 1. Обзор 1 / 24

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

План лекции

1 P и NP неформально

2 Точные алгоритмыЗадача выполнимостиЗадача о максимальном разрезе

А. Куликов (Computer Science клуб) 1. Обзор 2 / 24

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

План лекции

1 P и NP неформально

2 Точные алгоритмыЗадача выполнимостиЗадача о максимальном разрезе

А. Куликов (Computer Science клуб) 1. Обзор 2 / 24

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

Цель первых двух лекций

Привести несколько красивых алгоритмов, не особовдаваясь в определения и доказательства. Всеформальности будут дальше в курсе.

А. Куликов (Computer Science клуб) 1. Обзор 3 / 24

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

P и NP неформально

План лекции

1 P и NP неформально

2 Точные алгоритмыЗадача выполнимостиЗадача о максимальном разрезе

А. Куликов (Computer Science клуб) 1. Обзор 4 / 24

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

P и NP неформально

Классы P и NP

Задача поиска (search problem) задаётся алгоритмом 𝒞, которыйполучает на вход условие I и кандидата на решение S и имеетвремя работы, ограниченное некоторым полиномом от |I |. Sназывается решением (solution), если и только если𝒞(S , I ) = true.NP — класс всех задач поиска. Другими словами, NP — классвсех задач, решение для которых может быть быстро проверено.P — класс задач поиска, решение для которых может быть быстронайдено.P =NP? Другими словами, существуют ли задачи, решение длякоторых может быть быстро проверено, но не может быть быстронайдено? Это один из самых важных и самых сложных открытыхвопросов Theoretical Computer Science.

А. Куликов (Computer Science клуб) 1. Обзор 5 / 24

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

P и NP неформально

Классы P и NP

Задача поиска (search problem) задаётся алгоритмом 𝒞, которыйполучает на вход условие I и кандидата на решение S и имеетвремя работы, ограниченное некоторым полиномом от |I |. Sназывается решением (solution), если и только если𝒞(S , I ) = true.

NP — класс всех задач поиска. Другими словами, NP — классвсех задач, решение для которых может быть быстро проверено.P — класс задач поиска, решение для которых может быть быстронайдено.P =NP? Другими словами, существуют ли задачи, решение длякоторых может быть быстро проверено, но не может быть быстронайдено? Это один из самых важных и самых сложных открытыхвопросов Theoretical Computer Science.

А. Куликов (Computer Science клуб) 1. Обзор 5 / 24

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

P и NP неформально

Классы P и NP

Задача поиска (search problem) задаётся алгоритмом 𝒞, которыйполучает на вход условие I и кандидата на решение S и имеетвремя работы, ограниченное некоторым полиномом от |I |. Sназывается решением (solution), если и только если𝒞(S , I ) = true.NP — класс всех задач поиска. Другими словами, NP — классвсех задач, решение для которых может быть быстро проверено.

P — класс задач поиска, решение для которых может быть быстронайдено.P =NP? Другими словами, существуют ли задачи, решение длякоторых может быть быстро проверено, но не может быть быстронайдено? Это один из самых важных и самых сложных открытыхвопросов Theoretical Computer Science.

А. Куликов (Computer Science клуб) 1. Обзор 5 / 24

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

P и NP неформально

Классы P и NP

Задача поиска (search problem) задаётся алгоритмом 𝒞, которыйполучает на вход условие I и кандидата на решение S и имеетвремя работы, ограниченное некоторым полиномом от |I |. Sназывается решением (solution), если и только если𝒞(S , I ) = true.NP — класс всех задач поиска. Другими словами, NP — классвсех задач, решение для которых может быть быстро проверено.P — класс задач поиска, решение для которых может быть быстронайдено.

P =NP? Другими словами, существуют ли задачи, решение длякоторых может быть быстро проверено, но не может быть быстронайдено? Это один из самых важных и самых сложных открытыхвопросов Theoretical Computer Science.

А. Куликов (Computer Science клуб) 1. Обзор 5 / 24

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

P и NP неформально

Классы P и NP

Задача поиска (search problem) задаётся алгоритмом 𝒞, которыйполучает на вход условие I и кандидата на решение S и имеетвремя работы, ограниченное некоторым полиномом от |I |. Sназывается решением (solution), если и только если𝒞(S , I ) = true.NP — класс всех задач поиска. Другими словами, NP — классвсех задач, решение для которых может быть быстро проверено.P — класс задач поиска, решение для которых может быть быстронайдено.P =NP? Другими словами, существуют ли задачи, решение длякоторых может быть быстро проверено, но не может быть быстронайдено? Это один из самых важных и самых сложных открытыхвопросов Theoretical Computer Science.

А. Куликов (Computer Science клуб) 1. Обзор 5 / 24

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

P и NP неформально

Сведения

Говорим, что задача A сводится к (reduces to) задаче B , и пишемA → B , если по эффективному алгоритму для задачи B можнопостроить эффективный алгоритм для задачи A.По-другому: если A решить сложно и A → B , то и B решитьсложно. То есть B не может быть сильно проще A.Задача поиска называется NP-полной (NP-complete), если к нейсводятся все задачи поиска. То есть это универсальныйпритягивающий объект в классе NP.Удивительно (на первый взгляд), что такие задачи вообщесуществуют.

А. Куликов (Computer Science клуб) 1. Обзор 6 / 24

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

P и NP неформально

Сведения

Говорим, что задача A сводится к (reduces to) задаче B , и пишемA → B , если по эффективному алгоритму для задачи B можнопостроить эффективный алгоритм для задачи A.

По-другому: если A решить сложно и A → B , то и B решитьсложно. То есть B не может быть сильно проще A.Задача поиска называется NP-полной (NP-complete), если к нейсводятся все задачи поиска. То есть это универсальныйпритягивающий объект в классе NP.Удивительно (на первый взгляд), что такие задачи вообщесуществуют.

А. Куликов (Computer Science клуб) 1. Обзор 6 / 24

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

P и NP неформально

Сведения

Говорим, что задача A сводится к (reduces to) задаче B , и пишемA → B , если по эффективному алгоритму для задачи B можнопостроить эффективный алгоритм для задачи A.По-другому: если A решить сложно и A → B , то и B решитьсложно. То есть B не может быть сильно проще A.

Задача поиска называется NP-полной (NP-complete), если к нейсводятся все задачи поиска. То есть это универсальныйпритягивающий объект в классе NP.Удивительно (на первый взгляд), что такие задачи вообщесуществуют.

А. Куликов (Computer Science клуб) 1. Обзор 6 / 24

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

P и NP неформально

Сведения

Говорим, что задача A сводится к (reduces to) задаче B , и пишемA → B , если по эффективному алгоритму для задачи B можнопостроить эффективный алгоритм для задачи A.По-другому: если A решить сложно и A → B , то и B решитьсложно. То есть B не может быть сильно проще A.Задача поиска называется NP-полной (NP-complete), если к нейсводятся все задачи поиска. То есть это универсальныйпритягивающий объект в классе NP.

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

А. Куликов (Computer Science клуб) 1. Обзор 6 / 24

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

P и NP неформально

Сведения

Говорим, что задача A сводится к (reduces to) задаче B , и пишемA → B , если по эффективному алгоритму для задачи B можнопостроить эффективный алгоритм для задачи A.По-другому: если A решить сложно и A → B , то и B решитьсложно. То есть B не может быть сильно проще A.Задача поиска называется NP-полной (NP-complete), если к нейсводятся все задачи поиска. То есть это универсальныйпритягивающий объект в классе NP.Удивительно (на первый взгляд), что такие задачи вообщесуществуют.

А. Куликов (Computer Science клуб) 1. Обзор 6 / 24

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

P и NP неформально

P vs NP

Большинство исследователей считают, что P=NP.Есть, впрочем, и другие мнения:http://www.win.tue.nl/∼gwoegi/P-versus-NP.htmВ предположении P =NP не существует полиномиальныхалгоритмов для NP-трудных задач.

А. Куликов (Computer Science клуб) 1. Обзор 7 / 24

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

P и NP неформально

P vs NP

Большинство исследователей считают, что P=NP.

Есть, впрочем, и другие мнения:http://www.win.tue.nl/∼gwoegi/P-versus-NP.htmВ предположении P =NP не существует полиномиальныхалгоритмов для NP-трудных задач.

А. Куликов (Computer Science клуб) 1. Обзор 7 / 24

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

P и NP неформально

P vs NP

Большинство исследователей считают, что P=NP.Есть, впрочем, и другие мнения:http://www.win.tue.nl/∼gwoegi/P-versus-NP.htm

В предположении P =NP не существует полиномиальныхалгоритмов для NP-трудных задач.

А. Куликов (Computer Science клуб) 1. Обзор 7 / 24

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

P и NP неформально

P vs NP

Большинство исследователей считают, что P=NP.Есть, впрочем, и другие мнения:http://www.win.tue.nl/∼gwoegi/P-versus-NP.htmВ предположении P =NP не существует полиномиальныхалгоритмов для NP-трудных задач.

А. Куликов (Computer Science клуб) 1. Обзор 7 / 24

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

P и NP неформально

Мотивация

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

А. Куликов (Computer Science клуб) 1. Обзор 8 / 24

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

P и NP неформально

Мотивация

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

Лучшее понимание NP-трудных задач.Новые интересные комбинаторные и алгоритмические задачи.Общая теория.

А. Куликов (Computer Science клуб) 1. Обзор 8 / 24

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

P и NP неформально

Мотивация

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

Новые интересные комбинаторные и алгоритмические задачи.Общая теория.

А. Куликов (Computer Science клуб) 1. Обзор 8 / 24

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

P и NP неформально

Мотивация

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

Общая теория.

А. Куликов (Computer Science клуб) 1. Обзор 8 / 24

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

P и NP неформально

Мотивация

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

А. Куликов (Computer Science клуб) 1. Обзор 8 / 24

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

Точные алгоритмы

План лекции

1 P и NP неформально

2 Точные алгоритмыЗадача выполнимостиЗадача о максимальном разрезе

А. Куликов (Computer Science клуб) 1. Обзор 9 / 24

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

Точные алгоритмы

Точные алгоритмы для NP-трудных задач

Алгоритмы, находящие точное решение для даннойзадачи за время cn для достаточно малой константы c.

А. Куликов (Computer Science клуб) 1. Обзор 10 / 24

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

Точные алгоритмы

Мотивация

Представим, что у нас есть алгоритм сложности 1.7n для некоторойзадачи, который за “разумное” время позволяет решать примеры этойзадачи размера не более n0.

The “hardware” approach: возьмем в 10 раз более быстрыйкомпьютер. Теперь мы можем решать примеры размера n0 + 4.The “brainware” approach: придумаем алгоритм сложности 1.3n.Это позволит нам решать примеры размера 2 · n0.

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

А. Куликов (Computer Science клуб) 1. Обзор 11 / 24

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

Точные алгоритмы

Мотивация

Представим, что у нас есть алгоритм сложности 1.7n для некоторойзадачи, который за “разумное” время позволяет решать примеры этойзадачи размера не более n0.

The “hardware” approach: возьмем в 10 раз более быстрыйкомпьютер. Теперь мы можем решать примеры размера n0 + 4.

The “brainware” approach: придумаем алгоритм сложности 1.3n.Это позволит нам решать примеры размера 2 · n0.

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

А. Куликов (Computer Science клуб) 1. Обзор 11 / 24

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

Точные алгоритмы

Мотивация

Представим, что у нас есть алгоритм сложности 1.7n для некоторойзадачи, который за “разумное” время позволяет решать примеры этойзадачи размера не более n0.

The “hardware” approach: возьмем в 10 раз более быстрыйкомпьютер. Теперь мы можем решать примеры размера n0 + 4.The “brainware” approach: придумаем алгоритм сложности 1.3n.Это позволит нам решать примеры размера 2 · n0.

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

А. Куликов (Computer Science клуб) 1. Обзор 11 / 24

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

Точные алгоритмы

Мотивация

Представим, что у нас есть алгоритм сложности 1.7n для некоторойзадачи, который за “разумное” время позволяет решать примеры этойзадачи размера не более n0.

The “hardware” approach: возьмем в 10 раз более быстрыйкомпьютер. Теперь мы можем решать примеры размера n0 + 4.The “brainware” approach: придумаем алгоритм сложности 1.3n.Это позволит нам решать примеры размера 2 · n0.

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

А. Куликов (Computer Science клуб) 1. Обзор 11 / 24

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

Точные алгоритмы Задача выполнимости

План лекции

1 P и NP неформально

2 Точные алгоритмыЗадача выполнимостиЗадача о максимальном разрезе

А. Куликов (Computer Science клуб) 1. Обзор 12 / 24

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

Точные алгоритмы Задача выполнимости

Пример

Формула

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

невыполнима. То есть переменным x , y , z нельзя присвоитьистинностные значения так, чтобы значение формулы стало истиной.

А. Куликов (Computer Science клуб) 1. Обзор 13 / 24

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

Точные алгоритмы Задача выполнимости

Задача выполнимости

Определение

Задача пропозициональной выполнимости (Boolean satisfiabilityproblem, SAT): определить, выполнима ли данная формула вконъюнктивной нормальной форме, то есть существует ли наборбулевых значений переменным формулы, выполняющий формулу.Такой набор называют выполняющим (satisfying assignment), аформулу, для которой такой набор существует, — выполнимой(satisfiable).

А. Куликов (Computer Science клуб) 1. Обзор 14 / 24

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

Точные алгоритмы Задача выполнимости

Хэммингово расстояние между наборами

Набор истинностных значений переменным формулы — этопоследовательность битов длины n, где n — количествопеременных формулы. Всего, таким образом, есть 2n различныхнаборов.

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

А. Куликов (Computer Science клуб) 1. Обзор 15 / 24

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

Точные алгоритмы Задача выполнимости

Хэммингово расстояние между наборами

Набор истинностных значений переменным формулы — этопоследовательность битов длины n, где n — количествопеременных формулы. Всего, таким образом, есть 2n различныхнаборов.

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

А. Куликов (Computer Science клуб) 1. Обзор 15 / 24

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

Точные алгоритмы Задача выполнимости

Хэммингово расстояние между наборами

Набор истинностных значений переменным формулы — этопоследовательность битов длины n, где n — количествопеременных формулы. Всего, таким образом, есть 2n различныхнаборов.

Определение

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

А. Куликов (Computer Science клуб) 1. Обзор 15 / 24

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

Точные алгоритмы Задача выполнимости

Хэммингово расстояние между наборами

Набор истинностных значений переменным формулы — этопоследовательность битов длины n, где n — количествопеременных формулы. Всего, таким образом, есть 2n различныхнаборов.

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

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

А. Куликов (Computer Science клуб) 1. Обзор 15 / 24

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

Точные алгоритмы Задача выполнимости

Хэммингово расстояние между наборами

Набор истинностных значений переменным формулы — этопоследовательность битов длины n, где n — количествопеременных формулы. Всего, таким образом, есть 2n различныхнаборов.

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

А. Куликов (Computer Science клуб) 1. Обзор 15 / 24

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

Точные алгоритмы Задача выполнимости

Поиск в шаре

Поиск в шаре

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

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

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

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

А. Куликов (Computer Science клуб) 1. Обзор 16 / 24

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

Точные алгоритмы Задача выполнимости

Поиск в шаре

Поиск в шаре

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

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

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

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

А. Куликов (Computer Science клуб) 1. Обзор 16 / 24

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

Точные алгоритмы Задача выполнимости

Поиск в шаре

Поиск в шаре

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

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

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

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

А. Куликов (Computer Science клуб) 1. Обзор 16 / 24

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

Точные алгоритмы Задача выполнимости

Поиск в шаре

Поиск в шаре

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

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

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

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

А. Куликов (Computer Science клуб) 1. Обзор 16 / 24

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

Точные алгоритмы Задача выполнимости

√3

n-Алгоритм

Алгоритм

Simple-3-SAT(F )

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

Лемма

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

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

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

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

А. Куликов (Computer Science клуб) 1. Обзор 17 / 24

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

Точные алгоритмы Задача выполнимости

√3

n-Алгоритм

Алгоритм

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

Лемма

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

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

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

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

А. Куликов (Computer Science клуб) 1. Обзор 17 / 24

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

Точные алгоритмы Задача выполнимости

√3

n-Алгоритм

Алгоритм

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

Лемма

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

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

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

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

А. Куликов (Computer Science клуб) 1. Обзор 17 / 24

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

Точные алгоритмы Задача выполнимости

√3

n-Алгоритм

Алгоритм

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

Лемма

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

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

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

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

А. Куликов (Computer Science клуб) 1. Обзор 17 / 24

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

Точные алгоритмы Задача о максимальном разрезе

План лекции

1 P и NP неформально

2 Точные алгоритмыЗадача выполнимостиЗадача о максимальном разрезе

А. Куликов (Computer Science клуб) 1. Обзор 18 / 24

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

Точные алгоритмы Задача о максимальном разрезе

3-клика

Определение

Задача о 3-клике (3-clique problem) заключается в проверке наличия3-клики (то есть полного подграфа на трех вершинах) во входномграфе.

Алгоритм

Matrix-Clique(G )построить матрицу смежности A графа Gпосчитать A3

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

А. Куликов (Computer Science клуб) 1. Обзор 19 / 24

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

Точные алгоритмы Задача о максимальном разрезе

3-клика

Определение

Задача о 3-клике (3-clique problem) заключается в проверке наличия3-клики (то есть полного подграфа на трех вершинах) во входномграфе.

Алгоритм

Matrix-Clique(G )

построить матрицу смежности A графа Gпосчитать A3

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

А. Куликов (Computer Science клуб) 1. Обзор 19 / 24

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

Точные алгоритмы Задача о максимальном разрезе

3-клика

Определение

Задача о 3-клике (3-clique problem) заключается в проверке наличия3-клики (то есть полного подграфа на трех вершинах) во входномграфе.

Алгоритм

Matrix-Clique(G )построить матрицу смежности A графа G

посчитать A3

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

А. Куликов (Computer Science клуб) 1. Обзор 19 / 24

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

Точные алгоритмы Задача о максимальном разрезе

3-клика

Определение

Задача о 3-клике (3-clique problem) заключается в проверке наличия3-клики (то есть полного подграфа на трех вершинах) во входномграфе.

Алгоритм

Matrix-Clique(G )построить матрицу смежности A графа Gпосчитать A3

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

А. Куликов (Computer Science клуб) 1. Обзор 19 / 24

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

Точные алгоритмы Задача о максимальном разрезе

3-клика

Определение

Задача о 3-клике (3-clique problem) заключается в проверке наличия3-клики (то есть полного подграфа на трех вершинах) во входномграфе.

Алгоритм

Matrix-Clique(G )построить матрицу смежности A графа Gпосчитать A3

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

вернуть “нет”

А. Куликов (Computer Science клуб) 1. Обзор 19 / 24

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

Точные алгоритмы Задача о максимальном разрезе

3-клика

Определение

Задача о 3-клике (3-clique problem) заключается в проверке наличия3-клики (то есть полного подграфа на трех вершинах) во входномграфе.

Алгоритм

Matrix-Clique(G )построить матрицу смежности A графа Gпосчитать A3

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

А. Куликов (Computer Science клуб) 1. Обзор 19 / 24

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

Точные алгоритмы Задача о максимальном разрезе

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

ЛеммаАлгоритм выдает правильный ответ за время O(n𝜔), где 𝜔 ≈ 2.376 —экспонента перемножения матриц (matrix multiplication exponent).

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

важное свойство матрицы смежности: Ak [i , j ] есть количествопутей длины k из вершины i в вершину j в графе G (легкодоказать по индукции)3-клика — это путь длины 3 из вершины в саму себядля вычисления A3 требуется два умножения матриц

А. Куликов (Computer Science клуб) 1. Обзор 20 / 24

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

Точные алгоритмы Задача о максимальном разрезе

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

ЛеммаАлгоритм выдает правильный ответ за время O(n𝜔), где 𝜔 ≈ 2.376 —экспонента перемножения матриц (matrix multiplication exponent).

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

важное свойство матрицы смежности: Ak [i , j ] есть количествопутей длины k из вершины i в вершину j в графе G (легкодоказать по индукции)3-клика — это путь длины 3 из вершины в саму себядля вычисления A3 требуется два умножения матриц

А. Куликов (Computer Science клуб) 1. Обзор 20 / 24

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

Точные алгоритмы Задача о максимальном разрезе

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

ЛеммаАлгоритм выдает правильный ответ за время O(n𝜔), где 𝜔 ≈ 2.376 —экспонента перемножения матриц (matrix multiplication exponent).

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

важное свойство матрицы смежности: Ak [i , j ] есть количествопутей длины k из вершины i в вершину j в графе G (легкодоказать по индукции)

3-клика — это путь длины 3 из вершины в саму себядля вычисления A3 требуется два умножения матриц

А. Куликов (Computer Science клуб) 1. Обзор 20 / 24

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

Точные алгоритмы Задача о максимальном разрезе

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

ЛеммаАлгоритм выдает правильный ответ за время O(n𝜔), где 𝜔 ≈ 2.376 —экспонента перемножения матриц (matrix multiplication exponent).

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

важное свойство матрицы смежности: Ak [i , j ] есть количествопутей длины k из вершины i в вершину j в графе G (легкодоказать по индукции)3-клика — это путь длины 3 из вершины в саму себя

для вычисления A3 требуется два умножения матриц

А. Куликов (Computer Science клуб) 1. Обзор 20 / 24

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

Точные алгоритмы Задача о максимальном разрезе

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

ЛеммаАлгоритм выдает правильный ответ за время O(n𝜔), где 𝜔 ≈ 2.376 —экспонента перемножения матриц (matrix multiplication exponent).

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

важное свойство матрицы смежности: Ak [i , j ] есть количествопутей длины k из вершины i в вершину j в графе G (легкодоказать по индукции)3-клика — это путь длины 3 из вершины в саму себядля вычисления A3 требуется два умножения матриц

А. Куликов (Computer Science клуб) 1. Обзор 20 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Задача о максимальном разрезе

Определение

Задача о максимальном разрезе (maximum cut proble„ MAX-CUT)заключается в нахождении такого разбиения вершин графа на двечасти, при котором количество ребер, концы которых принадлежатразным частям, максимально.

Основные идеи сведения максимального разреза к 3-кликеДан граф G на n вершинах.

Построим трехдольный граф H на 3 · 2n/3 вершинах соследующим свойством: исходный граф G имеет разрез веса wтогда и только тогда, когда H содержит 3-клику веса w .Используем быстрое умножение матриц для поиска 3-клики.Сложность: 2𝜔n/3 ≈ 1.732n.

А. Куликов (Computer Science клуб) 1. Обзор 21 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Задача о максимальном разрезе

Определение

Задача о максимальном разрезе (maximum cut proble„ MAX-CUT)заключается в нахождении такого разбиения вершин графа на двечасти, при котором количество ребер, концы которых принадлежатразным частям, максимально.

Основные идеи сведения максимального разреза к 3-кликеДан граф G на n вершинах.

Построим трехдольный граф H на 3 · 2n/3 вершинах соследующим свойством: исходный граф G имеет разрез веса wтогда и только тогда, когда H содержит 3-клику веса w .Используем быстрое умножение матриц для поиска 3-клики.Сложность: 2𝜔n/3 ≈ 1.732n.

А. Куликов (Computer Science клуб) 1. Обзор 21 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Задача о максимальном разрезе

Определение

Задача о максимальном разрезе (maximum cut proble„ MAX-CUT)заключается в нахождении такого разбиения вершин графа на двечасти, при котором количество ребер, концы которых принадлежатразным частям, максимально.

Основные идеи сведения максимального разреза к 3-кликеДан граф G на n вершинах.

Построим трехдольный граф H на 3 · 2n/3 вершинах соследующим свойством: исходный граф G имеет разрез веса wтогда и только тогда, когда H содержит 3-клику веса w .

Используем быстрое умножение матриц для поиска 3-клики.Сложность: 2𝜔n/3 ≈ 1.732n.

А. Куликов (Computer Science клуб) 1. Обзор 21 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Задача о максимальном разрезе

Определение

Задача о максимальном разрезе (maximum cut proble„ MAX-CUT)заключается в нахождении такого разбиения вершин графа на двечасти, при котором количество ребер, концы которых принадлежатразным частям, максимально.

Основные идеи сведения максимального разреза к 3-кликеДан граф G на n вершинах.

Построим трехдольный граф H на 3 · 2n/3 вершинах соследующим свойством: исходный граф G имеет разрез веса wтогда и только тогда, когда H содержит 3-клику веса w .Используем быстрое умножение матриц для поиска 3-клики.

Сложность: 2𝜔n/3 ≈ 1.732n.

А. Куликов (Computer Science клуб) 1. Обзор 21 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Задача о максимальном разрезе

Определение

Задача о максимальном разрезе (maximum cut proble„ MAX-CUT)заключается в нахождении такого разбиения вершин графа на двечасти, при котором количество ребер, концы которых принадлежатразным частям, максимально.

Основные идеи сведения максимального разреза к 3-кликеДан граф G на n вершинах.

Построим трехдольный граф H на 3 · 2n/3 вершинах соследующим свойством: исходный граф G имеет разрез веса wтогда и только тогда, когда H содержит 3-клику веса w .Используем быстрое умножение матриц для поиска 3-клики.Сложность: 2𝜔n/3 ≈ 1.732n.

А. Куликов (Computer Science клуб) 1. Обзор 21 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Вспомогательный граф

H G

А. Куликов (Computer Science клуб) 1. Обзор 22 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Вспомогательный граф

H G

это три части вершин исходного графа G

А. Куликов (Computer Science клуб) 1. Обзор 22 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Вспомогательный граф

H G

это три доли вершин вспомогательного огромного графа H

А. Куликов (Computer Science клуб) 1. Обзор 22 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Вспомогательный граф

H GV3 ∖ X3

X3

V1 ∖ X1

X1

V2 ∖ X2

X2

X1

X2 X3

для каждого Xi ⊆ Vi создаём вершину в соответствующей доле H

А. Куликов (Computer Science клуб) 1. Обзор 22 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Вспомогательный граф

H GV3 ∖ X3

X3

V1 ∖ X1

X1

V2 ∖ X2

X2

X1

X2 X3

чему равен вес разреза X1 ∪ X2 ∪ X3 в G?

А. Куликов (Computer Science клуб) 1. Обзор 22 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Вспомогательный граф

H GV3 ∖ X3

X3

V1 ∖ X1

X1

V2 ∖ X2

X2

X1

X2 X3

чему равен вес разреза X1 ∪ X2 ∪ X3 в G?

А. Куликов (Computer Science клуб) 1. Обзор 22 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Вспомогательный граф

H GV3 ∖ X3

X3

V1 ∖ X1

X1

V2 ∖ X2

X2

X1

X2 X3

А. Куликов (Computer Science клуб) 1. Обзор 22 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Вспомогательный граф

H GV3 ∖ X3

X3

V1 ∖ X1

X1

V2 ∖ X2

X2

X1

X2 X3

А. Куликов (Computer Science клуб) 1. Обзор 22 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Вспомогательный граф

H GV3 ∖ X3

X3

V1 ∖ X1

X1

V2 ∖ X2

X2

X1

X2 X3

А. Куликов (Computer Science клуб) 1. Обзор 22 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Вспомогательный граф

H GV3 ∖ X3

X3

V1 ∖ X1

X1

V2 ∖ X2

X2

X1

X2 X3

итак, вес треугольника (H1, H2, H3) в H равенвесу разреза X1 ∪ X2 ∪ X3 в G

А. Куликов (Computer Science клуб) 1. Обзор 22 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Алгоритм

Алгоритм

Matrix-MAX-CUT(G )

разбить множество вершин V на три равные части V1, V2, V3

построить вспомогательный трехдольный граф H: i-я доля Tiсодержит все возможные подмножества Vi ; вес ребра между X1 иX2 равен

w(V2 ∖ X2, X1) + w(V1 ∖ X1, X1) + w(V1 ∖ X1, X2)

(для остальных пар долей — аналогично)для всех 1 ≤ w12, w13, w23 ≤ |EG |

оставить только ребра веса wij между долями Ti и Tjпроверить, есть ли в модифицированном графе H 3-кликаесли да, то в G есть разрез веса w12 + w13 + w23

вернуть максимальную найденную стоимость разреза

А. Куликов (Computer Science клуб) 1. Обзор 23 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Алгоритм

Алгоритм

Matrix-MAX-CUT(G )разбить множество вершин V на три равные части V1, V2, V3

построить вспомогательный трехдольный граф H: i-я доля Tiсодержит все возможные подмножества Vi ; вес ребра между X1 иX2 равен

w(V2 ∖ X2, X1) + w(V1 ∖ X1, X1) + w(V1 ∖ X1, X2)

(для остальных пар долей — аналогично)для всех 1 ≤ w12, w13, w23 ≤ |EG |

оставить только ребра веса wij между долями Ti и Tjпроверить, есть ли в модифицированном графе H 3-кликаесли да, то в G есть разрез веса w12 + w13 + w23

вернуть максимальную найденную стоимость разреза

А. Куликов (Computer Science клуб) 1. Обзор 23 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Алгоритм

Алгоритм

Matrix-MAX-CUT(G )разбить множество вершин V на три равные части V1, V2, V3

построить вспомогательный трехдольный граф H: i-я доля Tiсодержит все возможные подмножества Vi ; вес ребра между X1 иX2 равен

w(V2 ∖ X2, X1) + w(V1 ∖ X1, X1) + w(V1 ∖ X1, X2)

(для остальных пар долей — аналогично)

для всех 1 ≤ w12, w13, w23 ≤ |EG |оставить только ребра веса wij между долями Ti и Tjпроверить, есть ли в модифицированном графе H 3-кликаесли да, то в G есть разрез веса w12 + w13 + w23

вернуть максимальную найденную стоимость разреза

А. Куликов (Computer Science клуб) 1. Обзор 23 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Алгоритм

Алгоритм

Matrix-MAX-CUT(G )разбить множество вершин V на три равные части V1, V2, V3

построить вспомогательный трехдольный граф H: i-я доля Tiсодержит все возможные подмножества Vi ; вес ребра между X1 иX2 равен

w(V2 ∖ X2, X1) + w(V1 ∖ X1, X1) + w(V1 ∖ X1, X2)

(для остальных пар долей — аналогично)для всех 1 ≤ w12, w13, w23 ≤ |EG |

оставить только ребра веса wij между долями Ti и Tjпроверить, есть ли в модифицированном графе H 3-кликаесли да, то в G есть разрез веса w12 + w13 + w23

вернуть максимальную найденную стоимость разреза

А. Куликов (Computer Science клуб) 1. Обзор 23 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Алгоритм

Алгоритм

Matrix-MAX-CUT(G )разбить множество вершин V на три равные части V1, V2, V3

построить вспомогательный трехдольный граф H: i-я доля Tiсодержит все возможные подмножества Vi ; вес ребра между X1 иX2 равен

w(V2 ∖ X2, X1) + w(V1 ∖ X1, X1) + w(V1 ∖ X1, X2)

(для остальных пар долей — аналогично)для всех 1 ≤ w12, w13, w23 ≤ |EG |

оставить только ребра веса wij между долями Ti и Tj

проверить, есть ли в модифицированном графе H 3-кликаесли да, то в G есть разрез веса w12 + w13 + w23

вернуть максимальную найденную стоимость разреза

А. Куликов (Computer Science клуб) 1. Обзор 23 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Алгоритм

Алгоритм

Matrix-MAX-CUT(G )разбить множество вершин V на три равные части V1, V2, V3

построить вспомогательный трехдольный граф H: i-я доля Tiсодержит все возможные подмножества Vi ; вес ребра между X1 иX2 равен

w(V2 ∖ X2, X1) + w(V1 ∖ X1, X1) + w(V1 ∖ X1, X2)

(для остальных пар долей — аналогично)для всех 1 ≤ w12, w13, w23 ≤ |EG |

оставить только ребра веса wij между долями Ti и Tjпроверить, есть ли в модифицированном графе H 3-клика

если да, то в G есть разрез веса w12 + w13 + w23

вернуть максимальную найденную стоимость разреза

А. Куликов (Computer Science клуб) 1. Обзор 23 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Алгоритм

Алгоритм

Matrix-MAX-CUT(G )разбить множество вершин V на три равные части V1, V2, V3

построить вспомогательный трехдольный граф H: i-я доля Tiсодержит все возможные подмножества Vi ; вес ребра между X1 иX2 равен

w(V2 ∖ X2, X1) + w(V1 ∖ X1, X1) + w(V1 ∖ X1, X2)

(для остальных пар долей — аналогично)для всех 1 ≤ w12, w13, w23 ≤ |EG |

оставить только ребра веса wij между долями Ti и Tjпроверить, есть ли в модифицированном графе H 3-кликаесли да, то в G есть разрез веса w12 + w13 + w23

вернуть максимальную найденную стоимость разреза

А. Куликов (Computer Science клуб) 1. Обзор 23 / 24

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

Точные алгоритмы Задача о максимальном разрезе

Алгоритм

Алгоритм

Matrix-MAX-CUT(G )разбить множество вершин V на три равные части V1, V2, V3

построить вспомогательный трехдольный граф H: i-я доля Tiсодержит все возможные подмножества Vi ; вес ребра между X1 иX2 равен

w(V2 ∖ X2, X1) + w(V1 ∖ X1, X1) + w(V1 ∖ X1, X2)

(для остальных пар долей — аналогично)для всех 1 ≤ w12, w13, w23 ≤ |EG |

оставить только ребра веса wij между долями Ti и Tjпроверить, есть ли в модифицированном графе H 3-кликаесли да, то в G есть разрез веса w12 + w13 + w23

вернуть максимальную найденную стоимость разреза

А. Куликов (Computer Science клуб) 1. Обзор 23 / 24

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

Точные алгоритмы Задача о максимальном разрезе

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

А. Куликов (Computer Science клуб) 1. Обзор 24 / 24