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

More Related Content

PDF
Algorithms For Np Hard Problems
PDF
20091025 algorithmsfornphardproblems kulikov_lecture03
PDF
20111202 machine learning_nikolenko_lecture01
PPTX
Como instalar o windows 7
DOCX
Holi
PPT
О показателе открытий (Open Rate)
PPTX
As 4 novas habilidades
PPT
Algorithms For Np Hard Problems
20091025 algorithmsfornphardproblems kulikov_lecture03
20111202 machine learning_nikolenko_lecture01
Como instalar o windows 7
Holi
О показателе открытий (Open Rate)
As 4 novas habilidades

Viewers also liked (20)

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

Similar to 20090913 algorithmsfornphardproblems kulikov_lecture01 (11)

PPT
Лекция 10 NP-полнота
PPTX
P, NP и не только
PDF
Лекция 11: Методы разработки алгоритмов. Метод декомпозиции
PDF
20080217 efficientalgorithms kulikov_lecture13
PDF
20080217 efficientalgorithms kulikov_lecture13
PPT
Обзор современного состояния области алгоритмов и структур данных
PPT
Обзор современного состояния области алгоритмов и структур данных
PDF
20080928 structuralcomplexitytheory lecture01-02
PDF
Лекция 12: Трудноразрешимые задачи
PDF
20130301 np algorithms_kulikov_lecture01_np
PDF
20070923 efficientalgorithms kulikov_lecture01
Лекция 10 NP-полнота
P, NP и не только
Лекция 11: Методы разработки алгоритмов. Метод декомпозиции
20080217 efficientalgorithms kulikov_lecture13
20080217 efficientalgorithms kulikov_lecture13
Обзор современного состояния области алгоритмов и структур данных
Обзор современного состояния области алгоритмов и структур данных
20080928 structuralcomplexitytheory lecture01-02
Лекция 12: Трудноразрешимые задачи
20130301 np algorithms_kulikov_lecture01_np
20070923 efficientalgorithms kulikov_lecture01
Ad

More from Computer Science Club (20)

PDF
20141223 kuznetsov distributed
PDF
Computer Vision
PDF
20140531 serebryany lecture01_fantastic_cpp_bugs
PDF
20140531 serebryany lecture02_find_scary_cpp_bugs
PDF
20140531 serebryany lecture01_fantastic_cpp_bugs
PDF
20140511 parallel programming_kalishenko_lecture12
PDF
20140427 parallel programming_zlobin_lecture11
PDF
20140420 parallel programming_kalishenko_lecture10
PDF
20140413 parallel programming_kalishenko_lecture09
PDF
20140329 graph drawing_dainiak_lecture02
PDF
20140329 graph drawing_dainiak_lecture01
PDF
20140310 parallel programming_kalishenko_lecture03-04
PDF
20140223-SuffixTrees-lecture01-03
PDF
20140216 parallel programming_kalishenko_lecture01
PDF
20131106 h10 lecture6_matiyasevich
PDF
20131027 h10 lecture5_matiyasevich
PDF
20131027 h10 lecture5_matiyasevich
PDF
20131013 h10 lecture4_matiyasevich
PDF
20131006 h10 lecture3_matiyasevich
PDF
20131006 h10 lecture3_matiyasevich
20141223 kuznetsov distributed
Computer Vision
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
20140511 parallel programming_kalishenko_lecture12
20140427 parallel programming_zlobin_lecture11
20140420 parallel programming_kalishenko_lecture10
20140413 parallel programming_kalishenko_lecture09
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture01
20140310 parallel programming_kalishenko_lecture03-04
20140223-SuffixTrees-lecture01-03
20140216 parallel programming_kalishenko_lecture01
20131106 h10 lecture6_matiyasevich
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
20131013 h10 lecture4_matiyasevich
20131006 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-клики. Сложность: 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