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

                                         А. Куликов

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




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




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




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




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


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




А. Куликов (Computer Science клуб)   1. Обзор   2 / 24
Цель первых двух лекций




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




А. Куликов (Computer Science клуб)   1. Обзор        3 / 24
P и NP неформально


 План лекции




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


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




А. Куликов (Computer Science клуб)            1. Обзор   4 / 24
P и NP неформально


 Классы P и NP




А. Куликов (Computer Science клуб)            1. Обзор   5 / 24
P и NP неформально


 Классы P и NP

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




А. Куликов (Computer Science клуб)            1. Обзор               5 / 24
P и NP неформально


 Классы P и NP

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




А. Куликов (Computer Science клуб)            1. Обзор               5 / 24
P и NP неформально


 Классы P и NP

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




А. Куликов (Computer Science клуб)            1. Обзор               5 / 24
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
P и NP неформально


 Сведения




А. Куликов (Computer Science клуб)            1. Обзор   6 / 24
P и NP неформально


 Сведения


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




А. Куликов (Computer Science клуб)            1. Обзор               6 / 24
P и NP неформально


 Сведения


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




А. Куликов (Computer Science клуб)            1. Обзор               6 / 24
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
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
P и NP неформально


 P vs NP




А. Куликов (Computer Science клуб)            1. Обзор   7 / 24
P и NP неформально


 P vs NP




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




А. Куликов (Computer Science клуб)            1. Обзор   7 / 24
P и NP неформально


 P vs NP




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




А. Куликов (Computer Science клуб)            1. Обзор   7 / 24
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
P и NP неформально


 Мотивация




А. Куликов (Computer Science клуб)            1. Обзор   8 / 24
P и NP неформально


 Мотивация




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




А. Куликов (Computer Science клуб)            1. Обзор          8 / 24
P и NP неформально


 Мотивация




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




А. Куликов (Computer Science клуб)            1. Обзор          8 / 24
P и NP неформально


 Мотивация




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




А. Куликов (Computer Science клуб)            1. Обзор             8 / 24
P и NP неформально


 Мотивация




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




А. Куликов (Computer Science клуб)            1. Обзор             8 / 24
Точные алгоритмы


 План лекции




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


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




А. Куликов (Computer Science клуб)            1. Обзор   9 / 24
Точные алгоритмы


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




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




А. Куликов (Computer Science клуб)            1. Обзор   10 / 24
Точные алгоритмы


 Мотивация


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




А. Куликов (Computer Science клуб)            1. Обзор          11 / 24
Точные алгоритмы


 Мотивация


  Представим, что у нас есть алгоритм сложности 1.7n для некоторой
  задачи, который за “разумное” время позволяет решать примеры этой
  задачи размера не более n0 .
        The “hardware” approach: возьмем в 10 раз более быстрый
        компьютер. Теперь мы можем решать примеры размера n0 + 4.




А. Куликов (Computer Science клуб)            1. Обзор          11 / 24
Точные алгоритмы


 Мотивация


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




А. Куликов (Computer Science клуб)            1. Обзор                  11 / 24
Точные алгоритмы


 Мотивация


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



А. Куликов (Computer Science клуб)            1. Обзор                  11 / 24
Точные алгоритмы   Задача выполнимости


 План лекции




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


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




А. Куликов (Computer Science клуб)            1. Обзор                    12 / 24
Точные алгоритмы   Задача выполнимости


 Пример




  Формула

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

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




А. Куликов (Computer Science клуб)            1. Обзор                        13 / 24
Точные алгоритмы   Задача выполнимости


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



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




А. Куликов (Computer Science клуб)            1. Обзор                    14 / 24
Точные алгоритмы   Задача выполнимости


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




А. Куликов (Computer Science клуб)            1. Обзор                    15 / 24
Точные алгоритмы   Задача выполнимости


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


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




А. Куликов (Computer Science клуб)            1. Обзор                    15 / 24
Точные алгоритмы   Задача выполнимости


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


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

  Определение




А. Куликов (Computer Science клуб)            1. Обзор                    15 / 24
Точные алгоритмы   Задача выполнимости


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


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

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




А. Куликов (Computer Science клуб)            1. Обзор                    15 / 24
Точные алгоритмы   Задача выполнимости


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


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

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



А. Куликов (Computer Science клуб)            1. Обзор                    15 / 24
Точные алгоритмы   Задача выполнимости


 Поиск в шаре



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




А. Куликов (Computer Science клуб)            1. Обзор                    16 / 24
Точные алгоритмы   Задача выполнимости


 Поиск в шаре



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




А. Куликов (Computer Science клуб)            1. Обзор                    16 / 24
Точные алгоритмы   Задача выполнимости


 Поиск в шаре



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




А. Куликов (Computer Science клуб)            1. Обзор                    16 / 24
Точные алгоритмы   Задача выполнимости


 Поиск в шаре



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




А. Куликов (Computer Science клуб)            1. Обзор                    16 / 24
Точные алгоритмы   Задача выполнимости
 √     n
     3 -Алгоритм

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




А. Куликов (Computer Science клуб)            1. Обзор                    17 / 24
Точные алгоритмы   Задача выполнимости
 √     n
     3 -Алгоритм

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




А. Куликов (Computer Science клуб)            1. Обзор                    17 / 24
Точные алгоритмы   Задача выполнимости
 √     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
Точные алгоритмы   Задача выполнимости
 √     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
Точные алгоритмы   Задача о максимальном разрезе


 План лекции




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


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




А. Куликов (Computer Science клуб)            1. Обзор                              18 / 24
Точные алгоритмы   Задача о максимальном разрезе


 3-клика

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




А. Куликов (Computer Science клуб)            1. Обзор                              19 / 24
Точные алгоритмы   Задача о максимальном разрезе


 3-клика

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

  Алгоритм
  Matrix-Clique(G )




А. Куликов (Computer Science клуб)            1. Обзор                              19 / 24
Точные алгоритмы   Задача о максимальном разрезе


 3-клика

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

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




А. Куликов (Computer Science клуб)            1. Обзор                              19 / 24
Точные алгоритмы   Задача о максимальном разрезе


 3-клика

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

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




А. Куликов (Computer Science клуб)            1. Обзор                              19 / 24
Точные алгоритмы   Задача о максимальном разрезе


 3-клика

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

  Алгоритм
  Matrix-Clique(G )
        построить матрицу смежности A графа G
        посчитать A3
        вернуть “да”, если на диагонали построенной матрицы есть хотя
        бы одна единица



А. Куликов (Computer Science клуб)            1. Обзор                              19 / 24
Точные алгоритмы   Задача о максимальном разрезе


 3-клика

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

  Алгоритм
  Matrix-Clique(G )
        построить матрицу смежности A графа G
        посчитать A3
        вернуть “да”, если на диагонали построенной матрицы есть хотя
        бы одна единица
        вернуть “нет”


А. Куликов (Computer Science клуб)            1. Обзор                              19 / 24
Точные алгоритмы   Задача о максимальном разрезе


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


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




А. Куликов (Computer Science клуб)            1. Обзор                              20 / 24
Точные алгоритмы   Задача о максимальном разрезе


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


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

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




А. Куликов (Computer Science клуб)            1. Обзор                              20 / 24
Точные алгоритмы   Задача о максимальном разрезе


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


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

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




А. Куликов (Computer Science клуб)            1. Обзор                              20 / 24
Точные алгоритмы   Задача о максимальном разрезе


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


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

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




А. Куликов (Computer Science клуб)            1. Обзор                              20 / 24
Точные алгоритмы   Задача о максимальном разрезе


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


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

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



А. Куликов (Computer Science клуб)            1. Обзор                              20 / 24
Точные алгоритмы   Задача о максимальном разрезе


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

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




А. Куликов (Computer Science клуб)            1. Обзор                              21 / 24
Точные алгоритмы   Задача о максимальном разрезе


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

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

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




А. Куликов (Computer Science клуб)            1. Обзор                              21 / 24
Точные алгоритмы   Задача о максимальном разрезе


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

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

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




А. Куликов (Computer Science клуб)            1. Обзор                              21 / 24
Точные алгоритмы   Задача о максимальном разрезе


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

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

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


А. Куликов (Computer Science клуб)            1. Обзор                              21 / 24
Точные алгоритмы   Задача о максимальном разрезе


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

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

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

А. Куликов (Computer Science клуб)            1. Обзор                              21 / 24
Точные алгоритмы   Задача о максимальном разрезе


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




                 H                                               G




А. Куликов (Computer Science клуб)            1. Обзор                              22 / 24
Точные алгоритмы   Задача о максимальном разрезе


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

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




                 H                                               G




А. Куликов (Computer Science клуб)            1. Обзор                              22 / 24
Точные алгоритмы   Задача о максимальном разрезе


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

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




                 H                                               G




А. Куликов (Computer Science клуб)            1. Обзор                              22 / 24
Точные алгоритмы    Задача о максимальном разрезе


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

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

                                                    V1 ∖ X1

                                                      X1

                 X1
                 H                                                G
                                     V2 ∖ X2                      V3 ∖ X3

        X2               X3            X2                             X3




А. Куликов (Computer Science клуб)             1. Обзор                              22 / 24
Точные алгоритмы    Задача о максимальном разрезе


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

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

                                                    V1 ∖ X1

                                                      X1

                 X1
                 H                                                G
                                     V2 ∖ X2                      V3 ∖ X3

        X2               X3            X2                             X3




А. Куликов (Computer Science клуб)             1. Обзор                              22 / 24
Точные алгоритмы    Задача о максимальном разрезе


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

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

                                                    V1 ∖ X1

                                                      X1

                 X1
                 H                                                G
                                     V2 ∖ X2                      V3 ∖ X3

        X2               X3            X2                             X3




А. Куликов (Computer Science клуб)             1. Обзор                              22 / 24
Точные алгоритмы    Задача о максимальном разрезе


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



                                                    V1 ∖ X1

                                                      X1

                 X1
                 H                                                G
                                     V2 ∖ X2                      V3 ∖ X3

        X2               X3            X2                             X3




А. Куликов (Computer Science клуб)             1. Обзор                              22 / 24
Точные алгоритмы    Задача о максимальном разрезе


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



                                                    V1 ∖ X1

                                                      X1

                 X1
                 H                                                G
                                     V2 ∖ X2                      V3 ∖ X3

        X2               X3            X2                             X3




А. Куликов (Computer Science клуб)             1. Обзор                              22 / 24
Точные алгоритмы    Задача о максимальном разрезе


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



                                                    V1 ∖ X1

                                                      X1

                 X1
                 H                                                G
                                     V2 ∖ X2                      V3 ∖ X3

        X2               X3            X2                             X3




А. Куликов (Computer Science клуб)             1. Обзор                              22 / 24
Точные алгоритмы    Задача о максимальном разрезе


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



                                                    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
Точные алгоритмы   Задача о максимальном разрезе


 Алгоритм
  Алгоритм
  Matrix-MAX-CUT(G )




А. Куликов (Computer Science клуб)            1. Обзор                              23 / 24
Точные алгоритмы   Задача о максимальном разрезе


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




А. Куликов (Computer Science клуб)            1. Обзор                              23 / 24
Точные алгоритмы   Задача о максимальном разрезе


 Алгоритм
  Алгоритм
  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
Точные алгоритмы   Задача о максимальном разрезе


 Алгоритм
  Алгоритм
  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
Точные алгоритмы   Задача о максимальном разрезе


 Алгоритм
  Алгоритм
  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
Точные алгоритмы   Задача о максимальном разрезе


 Алгоритм
  Алгоритм
  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
Точные алгоритмы   Задача о максимальном разрезе


 Алгоритм
  Алгоритм
  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
Точные алгоритмы   Задача о максимальном разрезе


 Алгоритм
  Алгоритм
  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
Точные алгоритмы   Задача о максимальном разрезе




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




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

20090913 algorithmsfornphardproblems kulikov_lecture01

  • 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-клики. Сложность: 2n/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