SlideShare a Scribd company logo
Алгоритмы для 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-клики.
        Сложность: 2������n/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

More Related Content

Viewers also liked

Онлайн общества
Онлайн обществаОнлайн общества
Онлайн общества
Banko Stoianov
 
Sudamérica: El ultimo refugio de hitler
Sudamérica: El ultimo refugio de hitlerSudamérica: El ultimo refugio de hitler
Sudamérica: El ultimo refugio de hitler
Choi Ha Young
 
Showcase JP*Haus
Showcase JP*Haus Showcase JP*Haus
Showcase JP*Haus JP*Haus
 
Kurikulum & modul 1
Kurikulum & modul 1Kurikulum & modul 1
Kurikulum & modul 1
Sejahtera Affif
 
Permendikbud95 2014 ptn-pts
Permendikbud95 2014 ptn-ptsPermendikbud95 2014 ptn-pts
Permendikbud95 2014 ptn-pts
Sejahtera Affif
 
Bob esponja. horacio german garcia
Bob esponja. horacio german garciaBob esponja. horacio german garcia
Bob esponja. horacio german garciaRobertoOtazu
 
David benitez chavarriaga 9b
David benitez chavarriaga 9bDavid benitez chavarriaga 9b
David benitez chavarriaga 9bdavidbenitez98
 
Dove si trovano i Centri Vitaldent di Roma?
Dove si trovano i Centri Vitaldent di Roma?Dove si trovano i Centri Vitaldent di Roma?
Dove si trovano i Centri Vitaldent di Roma?
VitaldentItalia
 
Business Times Balloon Sinuplasty
Business Times Balloon SinuplastyBusiness Times Balloon Sinuplasty
Business Times Balloon SinuplastyMandeep Grover
 
Barangay phone brief
Barangay phone briefBarangay phone brief
Barangay phone brieflowdanmoe
 
ABB CEF Current Limiting Fuses 27kV, 6-100A High Voltage Fuse Links
ABB CEF Current Limiting Fuses 27kV, 6-100A High Voltage Fuse LinksABB CEF Current Limiting Fuses 27kV, 6-100A High Voltage Fuse Links
ABB CEF Current Limiting Fuses 27kV, 6-100A High Voltage Fuse Links
Thorne & Derrick International
 

Viewers also liked (20)

Онлайн общества
Онлайн обществаОнлайн общества
Онлайн общества
 
Holiiiii
HoliiiiiHoliiiii
Holiiiii
 
светодиоды и светотехника
светодиоды и светотехникасветодиоды и светотехника
светодиоды и светотехника
 
HOMBERGER promo 06/2012
HOMBERGER promo 06/2012  HOMBERGER promo 06/2012
HOMBERGER promo 06/2012
 
Sudamérica: El ultimo refugio de hitler
Sudamérica: El ultimo refugio de hitlerSudamérica: El ultimo refugio de hitler
Sudamérica: El ultimo refugio de hitler
 
Showcase JP*Haus
Showcase JP*Haus Showcase JP*Haus
Showcase JP*Haus
 
Kurikulum & modul 1
Kurikulum & modul 1Kurikulum & modul 1
Kurikulum & modul 1
 
Permendikbud95 2014 ptn-pts
Permendikbud95 2014 ptn-ptsPermendikbud95 2014 ptn-pts
Permendikbud95 2014 ptn-pts
 
Doc1
Doc1Doc1
Doc1
 
Bob esponja. horacio german garcia
Bob esponja. horacio german garciaBob esponja. horacio german garcia
Bob esponja. horacio german garcia
 
David benitez chavarriaga 9b
David benitez chavarriaga 9bDavid benitez chavarriaga 9b
David benitez chavarriaga 9b
 
Dove si trovano i Centri Vitaldent di Roma?
Dove si trovano i Centri Vitaldent di Roma?Dove si trovano i Centri Vitaldent di Roma?
Dove si trovano i Centri Vitaldent di Roma?
 
Portfolio
PortfolioPortfolio
Portfolio
 
Business Times Balloon Sinuplasty
Business Times Balloon SinuplastyBusiness Times Balloon Sinuplasty
Business Times Balloon Sinuplasty
 
Barangay phone brief
Barangay phone briefBarangay phone brief
Barangay phone brief
 
picture album
picture albumpicture album
picture album
 
Thor
ThorThor
Thor
 
Matt resume
Matt resume Matt resume
Matt resume
 
absence
absenceabsence
absence
 
ABB CEF Current Limiting Fuses 27kV, 6-100A High Voltage Fuse Links
ABB CEF Current Limiting Fuses 27kV, 6-100A High Voltage Fuse LinksABB CEF Current Limiting Fuses 27kV, 6-100A High Voltage Fuse Links
ABB CEF Current Limiting Fuses 27kV, 6-100A High Voltage Fuse Links
 

Similar to 20090913 algorithmsfornphardproblems kulikov_lecture01

20080217 efficientalgorithms kulikov_lecture13
20080217 efficientalgorithms kulikov_lecture1320080217 efficientalgorithms kulikov_lecture13
20080217 efficientalgorithms kulikov_lecture13Computer Science Club
 
20080217 efficientalgorithms kulikov_lecture13
20080217 efficientalgorithms kulikov_lecture1320080217 efficientalgorithms kulikov_lecture13
20080217 efficientalgorithms kulikov_lecture13Computer Science Club
 
20091101 algorithmsfornphardproblems kulikov_lecture05
20091101 algorithmsfornphardproblems kulikov_lecture0520091101 algorithmsfornphardproblems kulikov_lecture05
20091101 algorithmsfornphardproblems kulikov_lecture05Computer Science Club
 
P, NP и не только
P, NP и не толькоP, NP и не только
P, NP и не толькоAnton Karputkin
 
20070923 efficientalgorithms kulikov_lecture01
20070923 efficientalgorithms kulikov_lecture0120070923 efficientalgorithms kulikov_lecture01
20070923 efficientalgorithms kulikov_lecture01Computer Science Club
 
Лекция 10 NP-полнота
Лекция 10 NP-полнотаЛекция 10 NP-полнота
Лекция 10 NP-полнота
simple_people
 

Similar to 20090913 algorithmsfornphardproblems kulikov_lecture01 (6)

20080217 efficientalgorithms kulikov_lecture13
20080217 efficientalgorithms kulikov_lecture1320080217 efficientalgorithms kulikov_lecture13
20080217 efficientalgorithms kulikov_lecture13
 
20080217 efficientalgorithms kulikov_lecture13
20080217 efficientalgorithms kulikov_lecture1320080217 efficientalgorithms kulikov_lecture13
20080217 efficientalgorithms kulikov_lecture13
 
20091101 algorithmsfornphardproblems kulikov_lecture05
20091101 algorithmsfornphardproblems kulikov_lecture0520091101 algorithmsfornphardproblems kulikov_lecture05
20091101 algorithmsfornphardproblems kulikov_lecture05
 
P, NP и не только
P, NP и не толькоP, NP и не только
P, NP и не только
 
20070923 efficientalgorithms kulikov_lecture01
20070923 efficientalgorithms kulikov_lecture0120070923 efficientalgorithms kulikov_lecture01
20070923 efficientalgorithms kulikov_lecture01
 
Лекция 10 NP-полнота
Лекция 10 NP-полнотаЛекция 10 NP-полнота
Лекция 10 NP-полнота
 

More from Computer Science Club

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
Computer Science Club
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
Computer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugsComputer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

More from Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 

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