1. Алгоритмы для NP-трудных задач
Лекция 1: Обзор
А. Куликов
Computer Science клуб при ПОМИ
http://logic.pdmi.ras.ru/∼infclub/
А. Куликов (Computer Science клуб) 1. Обзор 1 / 24
2. План лекции
1 P и NP неформально
А. Куликов (Computer Science клуб) 1. Обзор 2 / 24
3. План лекции
1 P и NP неформально
2 Точные алгоритмы
Задача выполнимости
Задача о максимальном разрезе
А. Куликов (Computer Science клуб) 1. Обзор 2 / 24
4. Цель первых двух лекций
Привести несколько красивых алгоритмов, не особо
вдаваясь в определения и доказательства. Все
формальности будут дальше в курсе.
А. Куликов (Computer Science клуб) 1. Обзор 3 / 24
5. P и NP неформально
План лекции
1 P и NP неформально
2 Точные алгоритмы
Задача выполнимости
Задача о максимальном разрезе
А. Куликов (Computer Science клуб) 1. Обзор 4 / 24
6. P и NP неформально
Классы P и NP
А. Куликов (Computer Science клуб) 1. Обзор 5 / 24
7. P и NP неформально
Классы P и NP
Задача поиска (search problem) задаётся алгоритмом ������, который
получает на вход условие I и кандидата на решение S и имеет
время работы, ограниченное некоторым полиномом от |I |. S
называется решением (solution), если и только если
������(S, I ) = true.
А. Куликов (Computer Science клуб) 1. Обзор 5 / 24
8. P и NP неформально
Классы P и NP
Задача поиска (search problem) задаётся алгоритмом ������, который
получает на вход условие I и кандидата на решение S и имеет
время работы, ограниченное некоторым полиномом от |I |. S
называется решением (solution), если и только если
������(S, I ) = true.
NP — класс всех задач поиска. Другими словами, NP — класс
всех задач, решение для которых может быть быстро проверено.
А. Куликов (Computer Science клуб) 1. Обзор 5 / 24
9. P и NP неформально
Классы P и NP
Задача поиска (search problem) задаётся алгоритмом ������, который
получает на вход условие I и кандидата на решение S и имеет
время работы, ограниченное некоторым полиномом от |I |. S
называется решением (solution), если и только если
������(S, I ) = true.
NP — класс всех задач поиска. Другими словами, NP — класс
всех задач, решение для которых может быть быстро проверено.
P — класс задач поиска, решение для которых может быть быстро
найдено.
А. Куликов (Computer Science клуб) 1. Обзор 5 / 24
10. 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
11. P и NP неформально
Сведения
А. Куликов (Computer Science клуб) 1. Обзор 6 / 24
12. P и NP неформально
Сведения
Говорим, что задача A сводится к (reduces to) задаче B, и пишем
A → B, если по эффективному алгоритму для задачи B можно
построить эффективный алгоритм для задачи A.
А. Куликов (Computer Science клуб) 1. Обзор 6 / 24
13. P и NP неформально
Сведения
Говорим, что задача A сводится к (reduces to) задаче B, и пишем
A → B, если по эффективному алгоритму для задачи B можно
построить эффективный алгоритм для задачи A.
По-другому: если A решить сложно и A → B, то и B решить
сложно. То есть B не может быть сильно проще A.
А. Куликов (Computer Science клуб) 1. Обзор 6 / 24
14. 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
15. 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
16. P и NP неформально
P vs NP
А. Куликов (Computer Science клуб) 1. Обзор 7 / 24
17. P и NP неформально
P vs NP
Большинство исследователей считают, что P̸=NP.
А. Куликов (Computer Science клуб) 1. Обзор 7 / 24
18. P и NP неформально
P vs NP
Большинство исследователей считают, что P̸=NP.
Есть, впрочем, и другие мнения:
http://www.win.tue.nl/∼gwoegi/P-versus-NP.htm
А. Куликов (Computer Science клуб) 1. Обзор 7 / 24
19. 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
20. P и NP неформально
Мотивация
А. Куликов (Computer Science клуб) 1. Обзор 8 / 24
21. P и NP неформально
Мотивация
Многим приложениям требуется решать NP-трудные задачи, даже
несмотря на то, что решения могут быть найдены только для
весьма маленьких размеров входов.
А. Куликов (Computer Science клуб) 1. Обзор 8 / 24
22. P и NP неформально
Мотивация
Многим приложениям требуется решать NP-трудные задачи, даже
несмотря на то, что решения могут быть найдены только для
весьма маленьких размеров входов.
Лучшее понимание NP-трудных задач.
А. Куликов (Computer Science клуб) 1. Обзор 8 / 24
23. P и NP неформально
Мотивация
Многим приложениям требуется решать NP-трудные задачи, даже
несмотря на то, что решения могут быть найдены только для
весьма маленьких размеров входов.
Лучшее понимание NP-трудных задач.
Новые интересные комбинаторные и алгоритмические задачи.
А. Куликов (Computer Science клуб) 1. Обзор 8 / 24
24. P и NP неформально
Мотивация
Многим приложениям требуется решать NP-трудные задачи, даже
несмотря на то, что решения могут быть найдены только для
весьма маленьких размеров входов.
Лучшее понимание NP-трудных задач.
Новые интересные комбинаторные и алгоритмические задачи.
Общая теория.
А. Куликов (Computer Science клуб) 1. Обзор 8 / 24
25. Точные алгоритмы
План лекции
1 P и NP неформально
2 Точные алгоритмы
Задача выполнимости
Задача о максимальном разрезе
А. Куликов (Computer Science клуб) 1. Обзор 9 / 24
26. Точные алгоритмы
Точные алгоритмы для NP-трудных задач
Алгоритмы, находящие точное решение для данной
задачи за время c n для достаточно малой константы c.
А. Куликов (Computer Science клуб) 1. Обзор 10 / 24
27. Точные алгоритмы
Мотивация
Представим, что у нас есть алгоритм сложности 1.7n для некоторой
задачи, который за “разумное” время позволяет решать примеры этой
задачи размера не более n0 .
А. Куликов (Computer Science клуб) 1. Обзор 11 / 24
28. Точные алгоритмы
Мотивация
Представим, что у нас есть алгоритм сложности 1.7n для некоторой
задачи, который за “разумное” время позволяет решать примеры этой
задачи размера не более n0 .
The “hardware” approach: возьмем в 10 раз более быстрый
компьютер. Теперь мы можем решать примеры размера n0 + 4.
А. Куликов (Computer Science клуб) 1. Обзор 11 / 24
29. Точные алгоритмы
Мотивация
Представим, что у нас есть алгоритм сложности 1.7n для некоторой
задачи, который за “разумное” время позволяет решать примеры этой
задачи размера не более n0 .
The “hardware” approach: возьмем в 10 раз более быстрый
компьютер. Теперь мы можем решать примеры размера n0 + 4.
The “brainware” approach: придумаем алгоритм сложности 1.3n .
Это позволит нам решать примеры размера 2 · n0 .
А. Куликов (Computer Science клуб) 1. Обзор 11 / 24
30. Точные алгоритмы
Мотивация
Представим, что у нас есть алгоритм сложности 1.7n для некоторой
задачи, который за “разумное” время позволяет решать примеры этой
задачи размера не более n0 .
The “hardware” approach: возьмем в 10 раз более быстрый
компьютер. Теперь мы можем решать примеры размера n0 + 4.
The “brainware” approach: придумаем алгоритм сложности 1.3n .
Это позволит нам решать примеры размера 2 · n0 .
Другими словами, уменьшение основания экспоненты времени работы
алгоритма увеличивает размер решаемых за данное время примеров в
константное число раз, в то время как использование более быстрого
компьютера способно увеличить размер лишь на константу.
А. Куликов (Computer Science клуб) 1. Обзор 11 / 24
31. Точные алгоритмы Задача выполнимости
План лекции
1 P и NP неформально
2 Точные алгоритмы
Задача выполнимости
Задача о максимальном разрезе
А. Куликов (Computer Science клуб) 1. Обзор 12 / 24
32. Точные алгоритмы Задача выполнимости
Пример
Формула
(x ∨ y ∨ z) ∧ (x ∨ y ) ∧ (y ∨ z ) ∧ (z ∨ x ) ∧ (¯ ∨ y ∨ z )
¯ ¯ ¯ x ¯ ¯
невыполнима. То есть переменным x, y , z нельзя присвоить
истинностные значения так, чтобы значение формулы стало истиной.
А. Куликов (Computer Science клуб) 1. Обзор 13 / 24
33. Точные алгоритмы Задача выполнимости
Задача выполнимости
Определение
Задача пропозициональной выполнимости (Boolean satisfiability
problem, SAT): определить, выполнима ли данная формула в
конъюнктивной нормальной форме, то есть существует ли набор
булевых значений переменным формулы, выполняющий формулу.
Такой набор называют выполняющим (satisfying assignment), а
формулу, для которой такой набор существует, — выполнимой
(satisfiable).
А. Куликов (Computer Science клуб) 1. Обзор 14 / 24
34. Точные алгоритмы Задача выполнимости
Хэммингово расстояние между наборами
А. Куликов (Computer Science клуб) 1. Обзор 15 / 24
35. Точные алгоритмы Задача выполнимости
Хэммингово расстояние между наборами
Набор истинностных значений переменным формулы — это
последовательность битов длины n, где n — количество
переменных формулы. Всего, таким образом, есть 2n различных
наборов.
А. Куликов (Computer Science клуб) 1. Обзор 15 / 24
36. Точные алгоритмы Задача выполнимости
Хэммингово расстояние между наборами
Набор истинностных значений переменным формулы — это
последовательность битов длины n, где n — количество
переменных формулы. Всего, таким образом, есть 2n различных
наборов.
Определение
А. Куликов (Computer Science клуб) 1. Обзор 15 / 24
37. Точные алгоритмы Задача выполнимости
Хэммингово расстояние между наборами
Набор истинностных значений переменным формулы — это
последовательность битов длины n, где n — количество
переменных формулы. Всего, таким образом, есть 2n различных
наборов.
Определение
Хэммингово расстояние двух наборов — количество переменных,
которым эти наборы присваивают разные значения.
А. Куликов (Computer Science клуб) 1. Обзор 15 / 24
38. Точные алгоритмы Задача выполнимости
Хэммингово расстояние между наборами
Набор истинностных значений переменным формулы — это
последовательность битов длины n, где n — количество
переменных формулы. Всего, таким образом, есть 2n различных
наборов.
Определение
Хэммингово расстояние двух наборов — количество переменных,
которым эти наборы присваивают разные значения.
Для набора t ∈ {0, 1}n и числа d под Хэмминговым шаром
ℋ(t, d ) (с центром в t и радиуса d ) будем понимать множество
всех наборов, находящихся на расстоянии не более чем d от t.
А. Куликов (Computer Science клуб) 1. Обзор 15 / 24
39. Точные алгоритмы Задача выполнимости
Поиск в шаре
Поиск в шаре
Для формулы F в 3-КНФ поиск выполняющего набора в шаре ℋ(t, d )
может быть осуществлен за время 3d :
А. Куликов (Computer Science клуб) 1. Обзор 16 / 24
40. Точные алгоритмы Задача выполнимости
Поиск в шаре
Поиск в шаре
Для формулы F в 3-КНФ поиск выполняющего набора в шаре ℋ(t, d )
может быть осуществлен за время 3d :
если t не выполняет F , возьмем произвольный невыполненный
клоз C = (x1 ∨ x2 ∨ x3 )
А. Куликов (Computer Science клуб) 1. Обзор 16 / 24
41. Точные алгоритмы Задача выполнимости
Поиск в шаре
Поиск в шаре
Для формулы F в 3-КНФ поиск выполняющего набора в шаре ℋ(t, d )
может быть осуществлен за время 3d :
если t не выполняет F , возьмем произвольный невыполненный
клоз C = (x1 ∨ x2 ∨ x3 )
рассмотрим три набора, полученных из t изменением значений
переменных x1 , x2 и x3
А. Куликов (Computer Science клуб) 1. Обзор 16 / 24
42. Точные алгоритмы Задача выполнимости
Поиск в шаре
Поиск в шаре
Для формулы F в 3-КНФ поиск выполняющего набора в шаре ℋ(t, d )
может быть осуществлен за время 3d :
если t не выполняет F , возьмем произвольный невыполненный
клоз C = (x1 ∨ x2 ∨ x3 )
рассмотрим три набора, полученных из t изменением значений
переменных x1 , x2 и x3
хотя бы один из них будет ближе к выполняющему набору
А. Куликов (Computer Science клуб) 1. Обзор 16 / 24
43. Точные алгоритмы Задача выполнимости
√ n
3 -Алгоритм
Алгоритм
Simple-3-SAT(F )
А. Куликов (Computer Science клуб) 1. Обзор 17 / 24
44. Точные алгоритмы Задача выполнимости
√ n
3 -Алгоритм
Алгоритм
Simple-3-SAT(F )
проверить, есть ли выполняющий набор в шарах ℋ(0n , n/2),
ℋ(1n , n/2)
А. Куликов (Computer Science клуб) 1. Обзор 17 / 24
45. Точные алгоритмы Задача выполнимости
√ n
3 -Алгоритм
Алгоритм
Simple-3-SAT(F )
проверить, есть ли выполняющий набор в шарах ℋ(0n , n/2),
ℋ(1n , n/2)
Лемма
√ n
Время работы алгоритма Simple-3-SAT есть 3 , где n = n(F ) —
число переменных формулы F .
А. Куликов (Computer Science клуб) 1. Обзор 17 / 24
46. Точные алгоритмы Задача выполнимости
√ n
3 -Алгоритм
Алгоритм
Simple-3-SAT(F )
проверить, есть ли выполняющий набор в шарах ℋ(0n , n/2),
ℋ(1n , n/2)
Лемма
√ n
Время работы алгоритма Simple-3-SAT есть 3 , где n = n(F ) —
число переменных формулы F .
Доказательство
Понятно, что если выполняющий набор есть, то он содержится в
одном из рассмотренных двух шаров.
А. Куликов (Computer Science клуб) 1. Обзор 17 / 24
47. Точные алгоритмы Задача о максимальном разрезе
План лекции
1 P и NP неформально
2 Точные алгоритмы
Задача выполнимости
Задача о максимальном разрезе
А. Куликов (Computer Science клуб) 1. Обзор 18 / 24
48. Точные алгоритмы Задача о максимальном разрезе
3-клика
Определение
Задача о 3-клике (3-clique problem) заключается в проверке наличия
3-клики (то есть полного подграфа на трех вершинах) во входном
графе.
А. Куликов (Computer Science клуб) 1. Обзор 19 / 24
49. Точные алгоритмы Задача о максимальном разрезе
3-клика
Определение
Задача о 3-клике (3-clique problem) заключается в проверке наличия
3-клики (то есть полного подграфа на трех вершинах) во входном
графе.
Алгоритм
Matrix-Clique(G )
А. Куликов (Computer Science клуб) 1. Обзор 19 / 24
50. Точные алгоритмы Задача о максимальном разрезе
3-клика
Определение
Задача о 3-клике (3-clique problem) заключается в проверке наличия
3-клики (то есть полного подграфа на трех вершинах) во входном
графе.
Алгоритм
Matrix-Clique(G )
построить матрицу смежности A графа G
А. Куликов (Computer Science клуб) 1. Обзор 19 / 24
51. Точные алгоритмы Задача о максимальном разрезе
3-клика
Определение
Задача о 3-клике (3-clique problem) заключается в проверке наличия
3-клики (то есть полного подграфа на трех вершинах) во входном
графе.
Алгоритм
Matrix-Clique(G )
построить матрицу смежности A графа G
посчитать A3
А. Куликов (Computer Science клуб) 1. Обзор 19 / 24
52. Точные алгоритмы Задача о максимальном разрезе
3-клика
Определение
Задача о 3-клике (3-clique problem) заключается в проверке наличия
3-клики (то есть полного подграфа на трех вершинах) во входном
графе.
Алгоритм
Matrix-Clique(G )
построить матрицу смежности A графа G
посчитать A3
вернуть “да”, если на диагонали построенной матрицы есть хотя
бы одна единица
А. Куликов (Computer Science клуб) 1. Обзор 19 / 24
53. Точные алгоритмы Задача о максимальном разрезе
3-клика
Определение
Задача о 3-клике (3-clique problem) заключается в проверке наличия
3-клики (то есть полного подграфа на трех вершинах) во входном
графе.
Алгоритм
Matrix-Clique(G )
построить матрицу смежности A графа G
посчитать A3
вернуть “да”, если на диагонали построенной матрицы есть хотя
бы одна единица
вернуть “нет”
А. Куликов (Computer Science клуб) 1. Обзор 19 / 24
54. Точные алгоритмы Задача о максимальном разрезе
Анализ алгоритма
Лемма
Алгоритм выдает правильный ответ за время O(n������ ), где ������ ≈ 2.376 —
экспонента перемножения матриц (matrix multiplication exponent).
А. Куликов (Computer Science клуб) 1. Обзор 20 / 24
55. Точные алгоритмы Задача о максимальном разрезе
Анализ алгоритма
Лемма
Алгоритм выдает правильный ответ за время O(n������ ), где ������ ≈ 2.376 —
экспонента перемножения матриц (matrix multiplication exponent).
Доказательство
А. Куликов (Computer Science клуб) 1. Обзор 20 / 24
56. Точные алгоритмы Задача о максимальном разрезе
Анализ алгоритма
Лемма
Алгоритм выдает правильный ответ за время O(n������ ), где ������ ≈ 2.376 —
экспонента перемножения матриц (matrix multiplication exponent).
Доказательство
важное свойство матрицы смежности: Ak [i, j] есть количество
путей длины k из вершины i в вершину j в графе G (легко
доказать по индукции)
А. Куликов (Computer Science клуб) 1. Обзор 20 / 24
57. Точные алгоритмы Задача о максимальном разрезе
Анализ алгоритма
Лемма
Алгоритм выдает правильный ответ за время O(n������ ), где ������ ≈ 2.376 —
экспонента перемножения матриц (matrix multiplication exponent).
Доказательство
важное свойство матрицы смежности: Ak [i, j] есть количество
путей длины k из вершины i в вершину j в графе G (легко
доказать по индукции)
3-клика — это путь длины 3 из вершины в саму себя
А. Куликов (Computer Science клуб) 1. Обзор 20 / 24
58. Точные алгоритмы Задача о максимальном разрезе
Анализ алгоритма
Лемма
Алгоритм выдает правильный ответ за время O(n������ ), где ������ ≈ 2.376 —
экспонента перемножения матриц (matrix multiplication exponent).
Доказательство
важное свойство матрицы смежности: Ak [i, j] есть количество
путей длины k из вершины i в вершину j в графе G (легко
доказать по индукции)
3-клика — это путь длины 3 из вершины в саму себя
для вычисления A3 требуется два умножения матриц
А. Куликов (Computer Science клуб) 1. Обзор 20 / 24
59. Точные алгоритмы Задача о максимальном разрезе
Задача о максимальном разрезе
Определение
Задача о максимальном разрезе (maximum cut proble„ MAX-CUT)
заключается в нахождении такого разбиения вершин графа на две
части, при котором количество ребер, концы которых принадлежат
разным частям, максимально.
А. Куликов (Computer Science клуб) 1. Обзор 21 / 24
60. Точные алгоритмы Задача о максимальном разрезе
Задача о максимальном разрезе
Определение
Задача о максимальном разрезе (maximum cut proble„ MAX-CUT)
заключается в нахождении такого разбиения вершин графа на две
части, при котором количество ребер, концы которых принадлежат
разным частям, максимально.
Основные идеи сведения максимального разреза к 3-клике
Дан граф G на n вершинах.
А. Куликов (Computer Science клуб) 1. Обзор 21 / 24
61. Точные алгоритмы Задача о максимальном разрезе
Задача о максимальном разрезе
Определение
Задача о максимальном разрезе (maximum cut proble„ MAX-CUT)
заключается в нахождении такого разбиения вершин графа на две
части, при котором количество ребер, концы которых принадлежат
разным частям, максимально.
Основные идеи сведения максимального разреза к 3-клике
Дан граф G на n вершинах.
Построим трехдольный граф H на 3 · 2n/3 вершинах со
следующим свойством: исходный граф G имеет разрез веса w
тогда и только тогда, когда H содержит 3-клику веса w .
А. Куликов (Computer Science клуб) 1. Обзор 21 / 24
62. Точные алгоритмы Задача о максимальном разрезе
Задача о максимальном разрезе
Определение
Задача о максимальном разрезе (maximum cut proble„ MAX-CUT)
заключается в нахождении такого разбиения вершин графа на две
части, при котором количество ребер, концы которых принадлежат
разным частям, максимально.
Основные идеи сведения максимального разреза к 3-клике
Дан граф G на n вершинах.
Построим трехдольный граф H на 3 · 2n/3 вершинах со
следующим свойством: исходный граф G имеет разрез веса w
тогда и только тогда, когда H содержит 3-клику веса w .
Используем быстрое умножение матриц для поиска 3-клики.
А. Куликов (Computer Science клуб) 1. Обзор 21 / 24
63. Точные алгоритмы Задача о максимальном разрезе
Задача о максимальном разрезе
Определение
Задача о максимальном разрезе (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
64. Точные алгоритмы Задача о максимальном разрезе
Вспомогательный граф
H G
А. Куликов (Computer Science клуб) 1. Обзор 22 / 24
65. Точные алгоритмы Задача о максимальном разрезе
Вспомогательный граф
это три части вершин исходного графа G
H G
А. Куликов (Computer Science клуб) 1. Обзор 22 / 24
66. Точные алгоритмы Задача о максимальном разрезе
Вспомогательный граф
это три доли вершин вспомогательного огромного графа H
H G
А. Куликов (Computer Science клуб) 1. Обзор 22 / 24
67. Точные алгоритмы Задача о максимальном разрезе
Вспомогательный граф
для каждого Xi ⊆ Vi создаём вершину в соответствующей доле H
V1 ∖ X1
X1
X1
H G
V2 ∖ X2 V3 ∖ X3
X2 X3 X2 X3
А. Куликов (Computer Science клуб) 1. Обзор 22 / 24
68. Точные алгоритмы Задача о максимальном разрезе
Вспомогательный граф
чему равен вес разреза X1 ∪ X2 ∪ X3 в G ?
V1 ∖ X1
X1
X1
H G
V2 ∖ X2 V3 ∖ X3
X2 X3 X2 X3
А. Куликов (Computer Science клуб) 1. Обзор 22 / 24
69. Точные алгоритмы Задача о максимальном разрезе
Вспомогательный граф
чему равен вес разреза X1 ∪ X2 ∪ X3 в G ?
V1 ∖ X1
X1
X1
H G
V2 ∖ X2 V3 ∖ X3
X2 X3 X2 X3
А. Куликов (Computer Science клуб) 1. Обзор 22 / 24
70. Точные алгоритмы Задача о максимальном разрезе
Вспомогательный граф
V1 ∖ X1
X1
X1
H G
V2 ∖ X2 V3 ∖ X3
X2 X3 X2 X3
А. Куликов (Computer Science клуб) 1. Обзор 22 / 24
71. Точные алгоритмы Задача о максимальном разрезе
Вспомогательный граф
V1 ∖ X1
X1
X1
H G
V2 ∖ X2 V3 ∖ X3
X2 X3 X2 X3
А. Куликов (Computer Science клуб) 1. Обзор 22 / 24
72. Точные алгоритмы Задача о максимальном разрезе
Вспомогательный граф
V1 ∖ X1
X1
X1
H G
V2 ∖ X2 V3 ∖ X3
X2 X3 X2 X3
А. Куликов (Computer Science клуб) 1. Обзор 22 / 24
73. Точные алгоритмы Задача о максимальном разрезе
Вспомогательный граф
V1 ∖ X1
X1
итак, вес треугольника (H1 , H2 , H3 ) в H равен
весу разреза X1 ∪ X2 ∪ X3 в G
X1
H G
V2 ∖ X2 V3 ∖ X3
X2 X3 X2 X3
А. Куликов (Computer Science клуб) 1. Обзор 22 / 24
74. Точные алгоритмы Задача о максимальном разрезе
Алгоритм
Алгоритм
Matrix-MAX-CUT(G )
А. Куликов (Computer Science клуб) 1. Обзор 23 / 24
75. Точные алгоритмы Задача о максимальном разрезе
Алгоритм
Алгоритм
Matrix-MAX-CUT(G )
разбить множество вершин V на три равные части V1 , V2 , V3
А. Куликов (Computer Science клуб) 1. Обзор 23 / 24
76. Точные алгоритмы Задача о максимальном разрезе
Алгоритм
Алгоритм
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 )
(для остальных пар долей — аналогично)
А. Куликов (Computer Science клуб) 1. Обзор 23 / 24
77. Точные алгоритмы Задача о максимальном разрезе
Алгоритм
Алгоритм
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 |
А. Куликов (Computer Science клуб) 1. Обзор 23 / 24
78. Точные алгоритмы Задача о максимальном разрезе
Алгоритм
Алгоритм
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
А. Куликов (Computer Science клуб) 1. Обзор 23 / 24
79. Точные алгоритмы Задача о максимальном разрезе
Алгоритм
Алгоритм
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-клика
А. Куликов (Computer Science клуб) 1. Обзор 23 / 24
80. Точные алгоритмы Задача о максимальном разрезе
Алгоритм
Алгоритм
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
81. Точные алгоритмы Задача о максимальном разрезе
Алгоритм
Алгоритм
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
82. Точные алгоритмы Задача о максимальном разрезе
Спасибо за внимание!
А. Куликов (Computer Science клуб) 1. Обзор 24 / 24