SlideShare a Scribd company logo
1 of 136
Download to read offline
Алгоритмы для NP-трудных задач

                                 А. Куликов

Санкт-Петербургское отделение Математического института им. В.А. Стеклова РАН
                                (ПОМИ РАН)


                        Computer Science E-Days
                            20 марта 2010




       А. Куликов        Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                       1 / 39
План лекции


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




         А. Куликов      Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                       2 / 39
План лекции


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

2   Точные алгоритмы
      1.732n алгоритм для задачи о максимальном разрезе




          А. Куликов     Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                       2 / 39
План лекции


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

2   Точные алгоритмы
      1.732n алгоритм для задачи о максимальном разрезе

3   FPT алгоритмы
      FPT-алгоритм для задачи о пути длины k




          А. Куликов     Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                       2 / 39
План лекции


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

2   Точные алгоритмы
      1.732n алгоритм для задачи о максимальном разрезе

3   FPT алгоритмы
      FPT-алгоритм для задачи о пути длины k

4   Приближённые алгоритмы
      3/2-приближённый алгоритм для задачи о коммивояжёре в
      метрическом пространстве



          А. Куликов     Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                       2 / 39
План лекции


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

2   Точные алгоритмы
      1.732n алгоритм для задачи о максимальном разрезе

3   FPT алгоритмы
      FPT-алгоритм для задачи о пути длины k

4   Приближённые алгоритмы
      3/2-приближённый алгоритм для задачи о коммивояжёре в
      метрическом пространстве



          А. Куликов     Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                       3 / 39
Классы P и NP




      А. Куликов   Алгоритмы для NP-трудных задач
                          (Санкт-Петербургское отделение Математического института им. В.
                                                                                 4 / 39
Классы P и NP


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




       А. Куликов    Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                   4 / 39
Классы P и NP


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




       А. Куликов    Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                   4 / 39
Классы P и NP


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




       А. Куликов    Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                   4 / 39
Классы P и NP


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



       А. Куликов    Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                   4 / 39
Сведения




      А. Куликов   Алгоритмы для NP-трудных задач
                          (Санкт-Петербургское отделение Математического института им. В.
                                                                                 5 / 39
Сведения



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




       А. Куликов    Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                   5 / 39
Сведения



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




       А. Куликов    Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                   5 / 39
Сведения



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




       А. Куликов    Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                   5 / 39
Сведения



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




       А. Куликов    Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                   5 / 39
P vs NP




      А. Куликов   Алгоритмы для NP-трудных задач
                          (Санкт-Петербургское отделение Математического института им. В.
                                                                                 6 / 39
P vs NP




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




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                  6 / 39
P vs NP




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




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                  6 / 39
P vs NP




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




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                  6 / 39
Мотивация




      А. Куликов   Алгоритмы для NP-трудных задач
                          (Санкт-Петербургское отделение Математического института им. В.
                                                                                 7 / 39
Мотивация




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




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                  7 / 39
Мотивация




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




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                  7 / 39
Мотивация




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




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                  7 / 39
Мотивация




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




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                  7 / 39
План лекции


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

2   Точные алгоритмы
      1.732n алгоритм для задачи о максимальном разрезе

3   FPT алгоритмы
      FPT-алгоритм для задачи о пути длины k

4   Приближённые алгоритмы
      3/2-приближённый алгоритм для задачи о коммивояжёре в
      метрическом пространстве



          А. Куликов     Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                       8 / 39
Точные алгоритмы для NP-трудных задач




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




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                  9 / 39
Мотивация


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




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   10 / 39
Мотивация


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




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   10 / 39
Мотивация


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




        А. Куликов     Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    10 / 39
Мотивация


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



        А. Куликов     Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    10 / 39
План лекции


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

2   Точные алгоритмы
      1.732n алгоритм для задачи о максимальном разрезе

3   FPT алгоритмы
      FPT-алгоритм для задачи о пути длины k

4   Приближённые алгоритмы
      3/2-приближённый алгоритм для задачи о коммивояжёре в
      метрическом пространстве



          А. Куликов     Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                      11 / 39
3-клика

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




          А. Куликов   Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    12 / 39
3-клика

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

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




          А. Куликов   Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    12 / 39
3-клика

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

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




          А. Куликов   Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    12 / 39
3-клика

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

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




          А. Куликов   Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    12 / 39
3-клика

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

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




          А. Куликов   Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    12 / 39
3-клика

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

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


          А. Куликов   Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    12 / 39
Анализ алгоритма


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




        А. Куликов     Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    13 / 39
Анализ алгоритма


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

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




        А. Куликов     Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    13 / 39
Анализ алгоритма


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

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




        А. Куликов     Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    13 / 39
Анализ алгоритма


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

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




        А. Куликов      Алгоритмы для NP-трудных задач
                               (Санкт-Петербургское отделение Математического института им. В.
                                                                                     13 / 39
Анализ алгоритма


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

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




        А. Куликов      Алгоритмы для NP-трудных задач
                               (Санкт-Петербургское отделение Математического института им. В.
                                                                                     13 / 39
Задача о максимальном разрезе

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




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   14 / 39
Задача о максимальном разрезе

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

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




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   14 / 39
Задача о максимальном разрезе

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

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




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   14 / 39
Задача о максимальном разрезе

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

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



        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   14 / 39
Задача о максимальном разрезе

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

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

        А. Куликов     Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    14 / 39
Вспомогательный граф




        H                                         G




      А. Куликов   Алгоритмы для NP-трудных задач
                          (Санкт-Петербургское отделение Математического института им. В.
                                                                                15 / 39
Вспомогательный граф

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




        H                                          G




      А. Куликов    Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 15 / 39
Вспомогательный граф

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




          H                                          G




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   15 / 39
Вспомогательный граф

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

                                     V1  X1

                                         X1

         X1
         H                                            G
                      V2  X2                         V3  X3

   X2            X3     X2                                X3




        А. Куликов     Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    15 / 39
Вспомогательный граф

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

                                      V1  X1

                                          X1

         X1
         H                                             G
                       V2  X2                         V3  X3

   X2            X3      X2                                X3




        А. Куликов      Алгоритмы для NP-трудных задач
                               (Санкт-Петербургское отделение Математического института им. В.
                                                                                     15 / 39
Вспомогательный граф

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

                                      V1  X1

                                          X1

         X1
         H                                             G
                       V2  X2                         V3  X3

   X2            X3      X2                                X3




        А. Куликов      Алгоритмы для NP-трудных задач
                               (Санкт-Петербургское отделение Математического института им. В.
                                                                                     15 / 39
Вспомогательный граф



                                     V1  X1

                                         X1

         X1
         H                                            G
                      V2  X2                         V3  X3

   X2            X3     X2                                X3




        А. Куликов     Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    15 / 39
Вспомогательный граф



                                     V1  X1

                                         X1

         X1
         H                                            G
                      V2  X2                         V3  X3

   X2            X3     X2                                X3




        А. Куликов     Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    15 / 39
Вспомогательный граф



                                     V1  X1

                                         X1

         X1
         H                                            G
                      V2  X2                         V3  X3

   X2            X3     X2                                X3




        А. Куликов     Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    15 / 39
Вспомогательный граф



                                     V1  X1

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

   X2            X3     X2                                X3




        А. Куликов     Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    15 / 39
Алгоритм

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




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 16 / 39
Алгоритм

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




       А. Куликов    Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                  16 / 39
Алгоритм

Алгоритм
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 )

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




       А. Куликов        Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                      16 / 39
Алгоритм

Алгоритм
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 |




       А. Куликов        Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                      16 / 39
Алгоритм

Алгоритм
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




       А. Куликов        Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                      16 / 39
Алгоритм

Алгоритм
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-клика




       А. Куликов        Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                      16 / 39
Алгоритм

Алгоритм
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


       А. Куликов        Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                      16 / 39
Алгоритм

Алгоритм
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
   вернуть максимальную найденную стоимость разреза

       А. Куликов        Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                      16 / 39
Известные оценки




Факт




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 17 / 39
Известные оценки




Факт
   Алгоритм, как видно, использует экспоненциальную память и
   поэтому совсем не практичен.




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   17 / 39
Известные оценки




Факт
   Алгоритм, как видно, использует экспоненциальную память и
   поэтому совсем не практичен.
    Алгоритм со временем работы 1.99999n и полиномиальной
    памятью пока не придуман.




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   17 / 39
Известные оценки




Факт
   Алгоритм, как видно, использует экспоненциальную память и
   поэтому совсем не практичен.
    Алгоритм со временем работы 1.99999n и полиномиальной
    памятью пока не придуман.
    Наилучшая известная оценка относительно количества рёбер
    2m/6.2 .




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   17 / 39
План лекции


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

2   Точные алгоритмы
      1.732n алгоритм для задачи о максимальном разрезе

3   FPT алгоритмы
      FPT-алгоритм для задачи о пути длины k

4   Приближённые алгоритмы
      3/2-приближённый алгоритм для задачи о коммивояжёре в
      метрическом пространстве



          А. Куликов     Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                      18 / 39
FPT алгоритмы для NP-трудных задач



Алгоритмы, находящие точное решение для данной
задачи за время
                      f (k)nc ,
где
      n   размер входа,
      c   константа,
      k   некоторый параметр,
      f   произвольная функция.




          А. Куликов   Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    19 / 39
Вершинное покрытие и доминирующее множество


Определение




        А. Куликов   Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                  20 / 39
Вершинное покрытие и доминирующее множество


Определение
   (Параметризованная) задача о вершинном покрытии
   (parameterized vertex cover problem) заключается в нахождении по
   данному графу G = (V , E ) и числу k такого множества вершин
   V ⊆ V , что |V | ≤ k и для любого ребра (u, v ) ∈ E , хотя бы одна
   из вершин u и v содержится в V .




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   20 / 39
Вершинное покрытие и доминирующее множество


Определение
   (Параметризованная) задача о вершинном покрытии
   (parameterized vertex cover problem) заключается в нахождении по
   данному графу G = (V , E ) и числу k такого множества вершин
   V ⊆ V , что |V | ≤ k и для любого ребра (u, v ) ∈ E , хотя бы одна
   из вершин u и v содержится в V .
   (Параметризованная) задача о доминирующем множестве
   (parameterzied dominating set problem) заключается в нахождении
   по данному графу G = (V , E ) и числу k такого множества вершин
   V ⊆ V , что для любой вершины u ∈ V найдётся такая вершина
   v ∈ V , что (u, v ) ∈ E .




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   20 / 39
Сравнение алгоритмов




      А. Куликов   Алгоритмы для NP-трудных задач
                          (Санкт-Петербургское отделение Математического института им. В.
                                                                                21 / 39
Сравнение алгоритмов


   Наивный алгоритм для задачи о вершинном покрытии имеет
   время работы 2k n, для задачи о доминирующем множестве
   nk+1 .




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 21 / 39
Сравнение алгоритмов


   Наивный алгоритм для задачи о вершинном покрытии имеет
   время работы 2k n, для задачи о доминирующем множестве
   nk+1 .
   Отношение nk+1 /2k n для различных значений k и n.
                            n = 50          n = 100           n = 150
                 k =2         625             2 500             5 625
                 k =3       15 625           125 000          421 875
                 k =5      390 625          6 255 000        31 640 625
                k = 10    1.9 × 1012       9.8 × 1014        3.7 × 1016
                k = 20    1.8 × 1026       9.5 × 1031        2.1 × 1035




       А. Куликов        Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                      21 / 39
Fixed parameter tractability



Определение




        А. Куликов   Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                  22 / 39
Fixed parameter tractability



Определение
    Параметризованной задачей (parameterized problem) L называется
    подмножество Σ∗ × N для некоторого конечного алфавита Σ.
    Входом задачи является пара (x, k), k называется параметром
    (parameter).




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   22 / 39
Fixed parameter tractability



Определение
    Параметризованной задачей (parameterized problem) L называется
    подмножество Σ∗ × N для некоторого конечного алфавита Σ.
    Входом задачи является пара (x, k), k называется параметром
    (parameter).
    Параметризованная задача L называется fixed parameter tractable
    (FPT), если принадлежность пары (x, k) языку L может быть
    проверена за время f (k)|x|c , где c константа (не зависящая ни
    от k, ни от n), а f  произвольная функция.




        А. Куликов     Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    22 / 39
План лекции


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

2   Точные алгоритмы
      1.732n алгоритм для задачи о максимальном разрезе

3   FPT алгоритмы
      FPT-алгоритм для задачи о пути длины k

4   Приближённые алгоритмы
      3/2-приближённый алгоритм для задачи о коммивояжёре в
      метрическом пространстве



          А. Куликов     Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                      23 / 39
Задача о пути длины k




Определение
Задачи о пути длины k (k-path problem) заключается в нахождении по
данному графу G с двумя выделенными вершинами s и t и числу k
простого пути между s и t, содержащего ровно k промежуточных
вершин.




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   24 / 39
Color coding




Color coding




         А. Куликов   Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   25 / 39
Color coding




Color coding
    Присвоим равновероятно и независимо всем вершинам, кроме s и
    t, цвета от 1 до k.




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   25 / 39
Color coding




Color coding
    Присвоим равновероятно и независимо всем вершинам, кроме s и
    t, цвета от 1 до k.
    Проверим, есть ли полноцветный s–t путь, то есть путь, в
    котором промежуточные вершины покрашены во все k цветов.




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   25 / 39
Оценка вероятности ошибки


Оценка вероятности ошибки




        А. Куликов   Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                  26 / 39
Оценка вероятности ошибки


Оценка вероятности ошибки
    Если путь длины k есть, то вероятность того, что он полноцветен,
    равна
                                  k k
                           k!
                              > e k = e −k .
                           kk     k




        А. Куликов     Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    26 / 39
Оценка вероятности ошибки


Оценка вероятности ошибки
    Если путь длины k есть, то вероятность того, что он полноцветен,
    равна
                                  k k
                           k!
                              > e k = e −k .
                           kk     k

    Вероятность того, что путь не найдётся (если он есть) после e k
    повторений, не превосходит

                                 k            −k   ek
                     (1 − e −k )e < e −e                = e −1 .




        А. Куликов     Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    26 / 39
Как же проверять наличие полноцветного пути?



Как же проверять наличие полноцветного пути?




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   27 / 39
Как же проверять наличие полноцветного пути?



Как же проверять наличие полноцветного пути?
    Мы знаем, что в полноцветном пути должны встречаться
    вершины всех k цветов, но не знаем, в каком порядке.




        А. Куликов   Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                  27 / 39
Как же проверять наличие полноцветного пути?



Как же проверять наличие полноцветного пути?
    Мы знаем, что в полноцветном пути должны встречаться
    вершины всех k цветов, но не знаем, в каком порядке.
    Можно перебрать все k! порядков. Когда порядок зафиксирован,
    нужно просто проверить наличие s–t пути в графе.




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   27 / 39
Как же проверять наличие полноцветного пути?



Как же проверять наличие полноцветного пути?
    Мы знаем, что в полноцветном пути должны встречаться
    вершины всех k цветов, но не знаем, в каком порядке.
    Можно перебрать все k! порядков. Когда порядок зафиксирован,
    нужно просто проверить наличие s–t пути в графе.

Итого
Алгоритм за время O(e k k!|E (G )|) решает задачу о пути длины k с
вероятностью ошибки не более e −1 .




         А. Куликов    Алгоритмы для NP-трудных задач
                              (Санкт-Петербургское отделение Математического института им. В.
                                                                                    27 / 39
План лекции


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

2   Точные алгоритмы
      1.732n алгоритм для задачи о максимальном разрезе

3   FPT алгоритмы
      FPT-алгоритм для задачи о пути длины k

4   Приближённые алгоритмы
      3/2-приближённый алгоритм для задачи о коммивояжёре в
      метрическом пространстве



          А. Куликов     Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                      28 / 39
Приближённые алгоритмы для NP-трудных задач




Алгоритмы, находящие за полиномиальное время для
данной оптимизационной задачи решение, которое
гарантированно не сильно хуже оптимального.




      А. Куликов   Алгоритмы для NP-трудных задач
                          (Санкт-Петербургское отделение Математического института им. В.
                                                                                29 / 39
План лекции


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

2   Точные алгоритмы
      1.732n алгоритм для задачи о максимальном разрезе

3   FPT алгоритмы
      FPT-алгоритм для задачи о пути длины k

4   Приближённые алгоритмы
      3/2-приближённый алгоритм для задачи о коммивояжёре в
      метрическом пространстве



          А. Куликов     Алгоритмы для NP-трудных задач
                                (Санкт-Петербургское отделение Математического института им. В.
                                                                                      30 / 39
Задача о коммивояжере


Определение




        А. Куликов   Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                  31 / 39
Задача о коммивояжере


Определение
   Дан полный неориентированный граф G = (V , E ), каждому ребру
   (u, v ) которого приписана некоторая стоимость c(u, v ).




        А. Куликов   Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                  31 / 39
Задача о коммивояжере


Определение
   Дан полный неориентированный граф G = (V , E ), каждому ребру
   (u, v ) которого приписана некоторая стоимость c(u, v ).
   Задача о коммивояжере (travelling salesman problem, TSP)
   заключается в нахождении в графе гамильтонова цикла
   минимальной стоимости.




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   31 / 39
Задача о коммивояжере


Определение
   Дан полный неориентированный граф G = (V , E ), каждому ребру
   (u, v ) которого приписана некоторая стоимость c(u, v ).
   Задача о коммивояжере (travelling salesman problem, TSP)
   заключается в нахождении в графе гамильтонова цикла
   минимальной стоимости.
   Задача о коммивояжере в метрическом пространстве (metric TSP)
   есть частный случай задачи о коммивояжере, где расстояния
   входного графа удовлетворяют неравенству треугольника:

                     c(u, w ) ≤ c(u, v ) + c(v , w ) ∀u, v , w ∈ V .




        А. Куликов           Алгоритмы для NP-трудных задач
                                    (Санкт-Петербургское отделение Математического института им. В.
                                                                                          31 / 39
2-оптимальный алгоритм




Алгоритм
Approx-TSP(G )




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 32 / 39
2-оптимальный алгоритм




Алгоритм
Approx-TSP(G )
   построим минимальное остовное дерево T графа G




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 32 / 39
2-оптимальный алгоритм




Алгоритм
Approx-TSP(G )
   построим минимальное остовное дерево T графа G
   продублируем каждое ребро дерева T и в полученном графе
   найдем эйлеров цикл




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 32 / 39
2-оптимальный алгоритм




Алгоритм
Approx-TSP(G )
   построим минимальное остовное дерево T графа G
   продублируем каждое ребро дерева T и в полученном графе
   найдем эйлеров цикл
   выкинем из полученного цикла все повторения вершин и вернем
   полученный цикл




       А. Куликов    Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                  32 / 39
Пример работы алгоритма


  Алгоритм
  Approx-TSP(G )                                 a             d
                                                                      e

                                                 b             f            g

                                           c

                                                        h




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 33 / 39
Пример работы алгоритма


  Алгоритм
  Approx-TSP(G )                                 a             d
     строим минимальное
     остовное дерево T                                                e
     графа G                                                                g
                                                 b             f
                                           c

                                                        h




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 33 / 39
Пример работы алгоритма


  Алгоритм
  Approx-TSP(G )                                 a             d
     строим минимальное
     остовное дерево T                                                e
     графа G                                                                g
                                                 b             f
     продублируем каждое
     ребро дерева T и в                    c
     полученном графе
                                                        h
     найдем эйлеров цикл




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 33 / 39
Пример работы алгоритма


  Алгоритм
  Approx-TSP(G )                                 a             d
     строим минимальное
     остовное дерево T                                                e
     графа G                                                                g
                                                 b             f
     продублируем каждое
     ребро дерева T и в                    c
     полученном графе
                                                        h
     найдем эйлеров цикл




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 33 / 39
Пример работы алгоритма


  Алгоритм
  Approx-TSP(G )                                 a             d
     строим минимальное
     остовное дерево T                                                e
     графа G                                                                g
                                                 b             f
     продублируем каждое
     ребро дерева T и в                    c
     полученном графе
                                                        h
     найдем эйлеров цикл
     выкинем из полученного
     цикла все повторения
     вершин и вернем
     полученный цикл

       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 33 / 39
Анализ алгоритма

Лемма
Алгоритм Approx-TSP является 2-приближенным.




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 34 / 39
Анализ алгоритма

Лемма
Алгоритм Approx-TSP является 2-приближенным.

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




        А. Куликов   Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                  34 / 39
Анализ алгоритма

Лемма
Алгоритм Approx-TSP является 2-приближенным.

Доказательство
    пусть WT   вес минимального остовного дерева, а Wopt                       вес
    оптимального гамильтонова цикла




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   34 / 39
Анализ алгоритма

Лемма
Алгоритм Approx-TSP является 2-приближенным.

Доказательство
    пусть WT   вес минимального остовного дерева, а Wopt                       вес
    оптимального гамильтонова цикла
    WT ≤ Wopt , поскольку при выкидывании ребра из гамильтонва
    цикла получается остовное дерево




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   34 / 39
Анализ алгоритма

Лемма
Алгоритм Approx-TSP является 2-приближенным.

Доказательство
    пусть WT   вес минимального остовного дерева, а Wopt                       вес
    оптимального гамильтонова цикла
    WT ≤ Wopt , поскольку при выкидывании ребра из гамильтонва
    цикла получается остовное дерево
    каждое ребро построенного гамильтонова цикла заменяет
    какой-то путь эйлерова цикла, длина которого по неравенству
    треугольника не менее длины этого ребра




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   34 / 39
Анализ алгоритма

Лемма
Алгоритм Approx-TSP является 2-приближенным.

Доказательство
    пусть WT   вес минимального остовного дерева, а Wopt                       вес
    оптимального гамильтонова цикла
    WT ≤ Wopt , поскольку при выкидывании ребра из гамильтонва
    цикла получается остовное дерево
    каждое ребро построенного гамильтонова цикла заменяет
    какой-то путь эйлерова цикла, длина которого по неравенству
    треугольника не менее длины этого ребра
    значит, длина найденного пути не превосходит 2WT , а
    следовательно, и 2Wopt


        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   34 / 39
3/2-оптимальный алгоритм



Алгоритм
Approx-TSP-Improved(G )




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 35 / 39
3/2-оптимальный алгоритм



Алгоритм
Approx-TSP-Improved(G )
   строим минимальное остовное дерево T графа G




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 35 / 39
3/2-оптимальный алгоритм



Алгоритм
Approx-TSP-Improved(G )
   строим минимальное остовное дерево T графа G
   найдем минимальное полное паросочетание всех вершин дерева T
   нечетной степени




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 35 / 39
3/2-оптимальный алгоритм



Алгоритм
Approx-TSP-Improved(G )
   строим минимальное остовное дерево T графа G
   найдем минимальное полное паросочетание всех вершин дерева T
   нечетной степени
   добавим найденные ребра в дерево T и найдем в полученном
   графе эйлеров цикл




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 35 / 39
3/2-оптимальный алгоритм



Алгоритм
Approx-TSP-Improved(G )
   строим минимальное остовное дерево T графа G
   найдем минимальное полное паросочетание всех вершин дерева T
   нечетной степени
   добавим найденные ребра в дерево T и найдем в полученном
   графе эйлеров цикл
   выкинем из полученного цикла все повторения вершин и вернем
   полученный цикл




       А. Куликов    Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                  35 / 39
Анализ алгоритма

Лемма
Алгоритм Approx-TSP-Improved является 3/2-приближенным.




       А. Куликов   Алгоритмы для NP-трудных задач
                           (Санкт-Петербургское отделение Математического института им. В.
                                                                                 36 / 39
Анализ алгоритма

Лемма
Алгоритм Approx-TSP-Improved является 3/2-приближенным.

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




        А. Куликов   Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                  36 / 39
Анализ алгоритма

Лемма
Алгоритм Approx-TSP-Improved является 3/2-приближенным.

Доказательство
    как и в предыдущем доказательстве, вес построенного цикла не
    провосходит WT + WP , где WP    вес минимального
    паросочетания вершин нечетной степени дерева T




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   36 / 39
Анализ алгоритма

Лемма
Алгоритм Approx-TSP-Improved является 3/2-приближенным.

Доказательство
    как и в предыдущем доказательстве, вес построенного цикла не
    провосходит WT + WP , где WP    вес минимального
    паросочетания вершин нечетной степени дерева T
    нужно показать, что WP ≤ Wopt /2




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   36 / 39
Анализ алгоритма

Лемма
Алгоритм Approx-TSP-Improved является 3/2-приближенным.

Доказательство
    как и в предыдущем доказательстве, вес построенного цикла не
    провосходит WT + WP , где WP    вес минимального
    паросочетания вершин нечетной степени дерева T
    нужно показать, что WP ≤ Wopt /2
    обозначим через A множество всех вершин нечетной степени
    дерева T




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   36 / 39
Анализ алгоритма

Лемма
Алгоритм Approx-TSP-Improved является 3/2-приближенным.

Доказательство
    как и в предыдущем доказательстве, вес построенного цикла не
    провосходит WT + WP , где WP    вес минимального
    паросочетания вершин нечетной степени дерева T
    нужно показать, что WP ≤ Wopt /2
    обозначим через A множество всех вершин нечетной степени
    дерева T
    рассмотрим такой гамильтонов цикл на вершинах множества A:
    вершины множества A в нем будут встречаться в такой
    последовательности, в какой они идут в оптимальном
    гамильтоновом цикле графа G

        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   36 / 39
Доказательство (продолжение)



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




        А. Куликов   Алгоритмы для NP-трудных задач
                            (Санкт-Петербургское отделение Математического института им. В.
                                                                                  37 / 39
Доказательство (продолжение)



Доказательство
    важно отметить, что нам не нужно строить такой цикл; нам
    важен лишь факт его существования




        А. Куликов    Алгоритмы для NP-трудных задач
                             (Санкт-Петербургское отделение Математического института им. В.
                                                                                   37 / 39
Algorithms For Np Hard Problems
Algorithms For Np Hard Problems
Algorithms For Np Hard Problems
Algorithms For Np Hard Problems
Algorithms For Np Hard Problems
Algorithms For Np Hard Problems
Algorithms For Np Hard Problems
Algorithms For Np Hard Problems

More Related Content

Viewers also liked

теория к уроку измерение информации
теория к уроку измерение информациитеория к уроку измерение информации
теория к уроку измерение информацииguest579319
 
Открытый урок
Открытый урокОткрытый урок
Открытый урокMarijVANGLIS
 
кодирование инф.
кодирование инф.кодирование инф.
кодирование инф.Rushitech
 
ЮУрГУ Прикладная информатика
ЮУрГУ Прикладная информатикаЮУрГУ Прикладная информатика
ЮУрГУ Прикладная информатикаCaustaveric
 
Введение в теорию информации
Введение в теорию информацииВведение в теорию информации
Введение в теорию информацииmesherinova
 
лекция 8 арифметические операции информатика
лекция 8 арифметические операции информатикалекция 8 арифметические операции информатика
лекция 8 арифметические операции информатикаGulnaz Shakirova
 
Презентация на тему: Информатика и информация
Презентация на тему: Информатика и информацияПрезентация на тему: Информатика и информация
Презентация на тему: Информатика и информация2berkas
 
двоичное кодирование информации: звук, изображение, текст
двоичное кодирование информации: звук, изображение, текст двоичное кодирование информации: звук, изображение, текст
двоичное кодирование информации: звук, изображение, текст NadinFura
 
лабораторная работа 2
лабораторная работа 2лабораторная работа 2
лабораторная работа 2Gulnaz Shakirova
 
лекция 4 системы счисления информатика
лекция 4 системы счисления информатикалекция 4 системы счисления информатика
лекция 4 системы счисления информатикаGulnaz Shakirova
 
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.Alex Dainiak
 
Конспект лекций по теории кодирования
Конспект лекций по теории кодированияКонспект лекций по теории кодирования
Конспект лекций по теории кодированияAlex Dainiak
 
Информация
ИнформацияИнформация
ИнформацияBorisovna
 
Основы теории графов 01: напоминание определений, теорема Форда—Фалкерсона
Основы теории графов 01: напоминание определений, теорема Форда—ФалкерсонаОсновы теории графов 01: напоминание определений, теорема Форда—Фалкерсона
Основы теории графов 01: напоминание определений, теорема Форда—ФалкерсонаAlex Dainiak
 
вклад клода шеннона в тои
вклад клода шеннона в тоивклад клода шеннона в тои
вклад клода шеннона в тоиtatyana-denisova-92
 

Viewers also liked (20)

теория к уроку измерение информации
теория к уроку измерение информациитеория к уроку измерение информации
теория к уроку измерение информации
 
Открытый урок
Открытый урокОткрытый урок
Открытый урок
 
кодирование инф.
кодирование инф.кодирование инф.
кодирование инф.
 
лекция 3
лекция 3лекция 3
лекция 3
 
ЮУрГУ Прикладная информатика
ЮУрГУ Прикладная информатикаЮУрГУ Прикладная информатика
ЮУрГУ Прикладная информатика
 
Введение в теорию информации
Введение в теорию информацииВведение в теорию информации
Введение в теорию информации
 
лекция 8 арифметические операции информатика
лекция 8 арифметические операции информатикалекция 8 арифметические операции информатика
лекция 8 арифметические операции информатика
 
Кодирование информации
Кодирование информацииКодирование информации
Кодирование информации
 
Презентация на тему: Информатика и информация
Презентация на тему: Информатика и информацияПрезентация на тему: Информатика и информация
Презентация на тему: Информатика и информация
 
Prezent
PrezentPrezent
Prezent
 
двоичное кодирование информации: звук, изображение, текст
двоичное кодирование информации: звук, изображение, текст двоичное кодирование информации: звук, изображение, текст
двоичное кодирование информации: звук, изображение, текст
 
лабораторная работа 2
лабораторная работа 2лабораторная работа 2
лабораторная работа 2
 
лекция 4 системы счисления информатика
лекция 4 системы счисления информатикалекция 4 системы счисления информатика
лекция 4 системы счисления информатика
 
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
 
кодирование информации
кодирование информациикодирование информации
кодирование информации
 
Конспект лекций по теории кодирования
Конспект лекций по теории кодированияКонспект лекций по теории кодирования
Конспект лекций по теории кодирования
 
Информация
ИнформацияИнформация
Информация
 
Основы теории графов 01: напоминание определений, теорема Форда—Фалкерсона
Основы теории графов 01: напоминание определений, теорема Форда—ФалкерсонаОсновы теории графов 01: напоминание определений, теорема Форда—Фалкерсона
Основы теории графов 01: напоминание определений, теорема Форда—Фалкерсона
 
Энтропия
ЭнтропияЭнтропия
Энтропия
 
вклад клода шеннона в тои
вклад клода шеннона в тоивклад клода шеннона в тои
вклад клода шеннона в тои
 

More from LiloSEA

CSEDays. Олег Ушмаев
CSEDays. Олег УшмаевCSEDays. Олег Ушмаев
CSEDays. Олег УшмаевLiloSEA
 
CSEDays. Алексей Кадиев
CSEDays. Алексей КадиевCSEDays. Алексей Кадиев
CSEDays. Алексей КадиевLiloSEA
 
CSEDays. Юрий Айдаров
CSEDays. Юрий АйдаровCSEDays. Юрий Айдаров
CSEDays. Юрий АйдаровLiloSEA
 
CSEDays. Александр Семенов
CSEDays. Александр СеменовCSEDays. Александр Семенов
CSEDays. Александр СеменовLiloSEA
 
Александра Торгашова
Александра ТоргашоваАлександра Торгашова
Александра ТоргашоваLiloSEA
 
Степан Петухов
Степан ПетуховСтепан Петухов
Степан ПетуховLiloSEA
 
Лукина Ольга. Безопасность в соц. сетях
Лукина Ольга. Безопасность в соц. сетяхЛукина Ольга. Безопасность в соц. сетях
Лукина Ольга. Безопасность в соц. сетяхLiloSEA
 
Андрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировкиАндрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировкиLiloSEA
 
Андрей Гаража. Биоинформатика
Андрей Гаража. БиоинформатикаАндрей Гаража. Биоинформатика
Андрей Гаража. БиоинформатикаLiloSEA
 
Александр Тиморин. Мошеннические атаки
Александр Тиморин. Мошеннические атакиАлександр Тиморин. Мошеннические атаки
Александр Тиморин. Мошеннические атакиLiloSEA
 
Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.LiloSEA
 
Cse коновалова титов
Cse коновалова титовCse коновалова титов
Cse коновалова титовLiloSEA
 
схемы разделения секрета
схемы разделения секретасхемы разделения секрета
схемы разделения секретаLiloSEA
 
почти пороговая схема разделения секрета
почти пороговая схема разделения секретапочти пороговая схема разделения секрета
почти пороговая схема разделения секретаLiloSEA
 
Алексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнесаАлексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнесаLiloSEA
 
Hash cse lecture3
Hash cse lecture3Hash cse lecture3
Hash cse lecture3LiloSEA
 
Hash cse lecture1
Hash cse lecture1Hash cse lecture1
Hash cse lecture1LiloSEA
 
Hash cse lecture2
Hash cse lecture2Hash cse lecture2
Hash cse lecture2LiloSEA
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetestingLiloSEA
 
Simonova CSEDays
Simonova CSEDaysSimonova CSEDays
Simonova CSEDaysLiloSEA
 

More from LiloSEA (20)

CSEDays. Олег Ушмаев
CSEDays. Олег УшмаевCSEDays. Олег Ушмаев
CSEDays. Олег Ушмаев
 
CSEDays. Алексей Кадиев
CSEDays. Алексей КадиевCSEDays. Алексей Кадиев
CSEDays. Алексей Кадиев
 
CSEDays. Юрий Айдаров
CSEDays. Юрий АйдаровCSEDays. Юрий Айдаров
CSEDays. Юрий Айдаров
 
CSEDays. Александр Семенов
CSEDays. Александр СеменовCSEDays. Александр Семенов
CSEDays. Александр Семенов
 
Александра Торгашова
Александра ТоргашоваАлександра Торгашова
Александра Торгашова
 
Степан Петухов
Степан ПетуховСтепан Петухов
Степан Петухов
 
Лукина Ольга. Безопасность в соц. сетях
Лукина Ольга. Безопасность в соц. сетяхЛукина Ольга. Безопасность в соц. сетях
Лукина Ольга. Безопасность в соц. сетях
 
Андрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировкиАндрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировки
 
Андрей Гаража. Биоинформатика
Андрей Гаража. БиоинформатикаАндрей Гаража. Биоинформатика
Андрей Гаража. Биоинформатика
 
Александр Тиморин. Мошеннические атаки
Александр Тиморин. Мошеннические атакиАлександр Тиморин. Мошеннические атаки
Александр Тиморин. Мошеннические атаки
 
Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.
 
Cse коновалова титов
Cse коновалова титовCse коновалова титов
Cse коновалова титов
 
схемы разделения секрета
схемы разделения секретасхемы разделения секрета
схемы разделения секрета
 
почти пороговая схема разделения секрета
почти пороговая схема разделения секретапочти пороговая схема разделения секрета
почти пороговая схема разделения секрета
 
Алексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнесаАлексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнеса
 
Hash cse lecture3
Hash cse lecture3Hash cse lecture3
Hash cse lecture3
 
Hash cse lecture1
Hash cse lecture1Hash cse lecture1
Hash cse lecture1
 
Hash cse lecture2
Hash cse lecture2Hash cse lecture2
Hash cse lecture2
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
 
Simonova CSEDays
Simonova CSEDaysSimonova CSEDays
Simonova CSEDays
 

Algorithms For Np Hard Problems

  • 1. Алгоритмы для NP-трудных задач А. Куликов Санкт-Петербургское отделение Математического института им. В.А. Стеклова РАН (ПОМИ РАН) Computer Science E-Days 20 марта 2010 А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 1 / 39
  • 2. План лекции 1 P и NP неформально А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 2 / 39
  • 3. План лекции 1 P и NP неформально 2 Точные алгоритмы 1.732n алгоритм для задачи о максимальном разрезе А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 2 / 39
  • 4. План лекции 1 P и NP неформально 2 Точные алгоритмы 1.732n алгоритм для задачи о максимальном разрезе 3 FPT алгоритмы FPT-алгоритм для задачи о пути длины k А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 2 / 39
  • 5. План лекции 1 P и NP неформально 2 Точные алгоритмы 1.732n алгоритм для задачи о максимальном разрезе 3 FPT алгоритмы FPT-алгоритм для задачи о пути длины k 4 Приближённые алгоритмы 3/2-приближённый алгоритм для задачи о коммивояжёре в метрическом пространстве А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 2 / 39
  • 6. План лекции 1 P и NP неформально 2 Точные алгоритмы 1.732n алгоритм для задачи о максимальном разрезе 3 FPT алгоритмы FPT-алгоритм для задачи о пути длины k 4 Приближённые алгоритмы 3/2-приближённый алгоритм для задачи о коммивояжёре в метрическом пространстве А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 3 / 39
  • 7. Классы P и NP А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 4 / 39
  • 8. Классы P и NP Задача поиска задаётся алгоритмом C, который получает на вход условие I и кандидата на решение S и имеет время работы, ограниченное некоторым полиномом от |I |. S называется решением, если и только если C(S, I ) = true. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 4 / 39
  • 9. Классы P и NP Задача поиска задаётся алгоритмом C, который получает на вход условие I и кандидата на решение S и имеет время работы, ограниченное некоторым полиномом от |I |. S называется решением, если и только если C(S, I ) = true. NP класс всех задач поиска. Другими словами, NP класс всех задач, решение для которых может быть быстро проверено. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 4 / 39
  • 10. Классы P и NP Задача поиска задаётся алгоритмом C, который получает на вход условие I и кандидата на решение S и имеет время работы, ограниченное некоторым полиномом от |I |. S называется решением, если и только если C(S, I ) = true. NP класс всех задач поиска. Другими словами, NP класс всех задач, решение для которых может быть быстро проверено. P класс задач поиска, решение для которых может быть быстро найдено. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 4 / 39
  • 11. Классы P и NP Задача поиска задаётся алгоритмом C, который получает на вход условие I и кандидата на решение S и имеет время работы, ограниченное некоторым полиномом от |I |. S называется решением, если и только если C(S, I ) = true. NP класс всех задач поиска. Другими словами, NP класс всех задач, решение для которых может быть быстро проверено. P класс задач поиска, решение для которых может быть быстро найдено. P=NP? Другими словами, существуют ли задачи, решение для которых может быть быстро проверено, но не может быть быстро найдено? Это один из самых важных и самых сложных открытых вопросов Theoretical Computer Science. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 4 / 39
  • 12. Сведения А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 5 / 39
  • 13. Сведения Говорим, что задача A сводится к задаче B, и пишем A → B, если по эффективному алгоритму для задачи B можно построить эффективный алгоритм для задачи A. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 5 / 39
  • 14. Сведения Говорим, что задача A сводится к задаче B, и пишем A → B, если по эффективному алгоритму для задачи B можно построить эффективный алгоритм для задачи A. По-другому: если A решить сложно и A → B, то и B решить сложно. То есть B не может быть сильно проще A. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 5 / 39
  • 15. Сведения Говорим, что задача A сводится к задаче B, и пишем A → B, если по эффективному алгоритму для задачи B можно построить эффективный алгоритм для задачи A. По-другому: если A решить сложно и A → B, то и B решить сложно. То есть B не может быть сильно проще A. Задача поиска называется NP-полной, если к ней сводятся все задачи поиска. То есть это универсальный притягивающий объект в классе NP. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 5 / 39
  • 16. Сведения Говорим, что задача A сводится к задаче B, и пишем A → B, если по эффективному алгоритму для задачи B можно построить эффективный алгоритм для задачи A. По-другому: если A решить сложно и A → B, то и B решить сложно. То есть B не может быть сильно проще A. Задача поиска называется NP-полной, если к ней сводятся все задачи поиска. То есть это универсальный притягивающий объект в классе NP. Удивительно (на первый взгляд), что такие задачи вообще существуют. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 5 / 39
  • 17. P vs NP А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 6 / 39
  • 18. P vs NP Большинство исследователей считают, что P=NP. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 6 / 39
  • 19. P vs NP Большинство исследователей считают, что P=NP. Есть, впрочем, и другие мнения: http://www.win.tue.nl/∼gwoegi/P-versus-NP.htm А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 6 / 39
  • 20. P vs NP Большинство исследователей считают, что P=NP. Есть, впрочем, и другие мнения: http://www.win.tue.nl/∼gwoegi/P-versus-NP.htm В предположении P=NP не существует полиномиальных алгоритмов для NP-трудных задач. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 6 / 39
  • 21. Мотивация А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 7 / 39
  • 22. Мотивация Многим приложениям требуется решать NP-трудные задачи, даже несмотря на то, что решения могут быть найдены только для весьма маленьких размеров входов. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 7 / 39
  • 23. Мотивация Многим приложениям требуется решать NP-трудные задачи, даже несмотря на то, что решения могут быть найдены только для весьма маленьких размеров входов. Лучшее понимание NP-трудных задач. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 7 / 39
  • 24. Мотивация Многим приложениям требуется решать NP-трудные задачи, даже несмотря на то, что решения могут быть найдены только для весьма маленьких размеров входов. Лучшее понимание NP-трудных задач. Новые интересные комбинаторные и алгоритмические задачи. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 7 / 39
  • 25. Мотивация Многим приложениям требуется решать NP-трудные задачи, даже несмотря на то, что решения могут быть найдены только для весьма маленьких размеров входов. Лучшее понимание NP-трудных задач. Новые интересные комбинаторные и алгоритмические задачи. Общая теория. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 7 / 39
  • 26. План лекции 1 P и NP неформально 2 Точные алгоритмы 1.732n алгоритм для задачи о максимальном разрезе 3 FPT алгоритмы FPT-алгоритм для задачи о пути длины k 4 Приближённые алгоритмы 3/2-приближённый алгоритм для задачи о коммивояжёре в метрическом пространстве А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 8 / 39
  • 27. Точные алгоритмы для NP-трудных задач Алгоритмы, находящие точное решение для данной задачи за время c n для достаточно малой константы c. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 9 / 39
  • 28. Мотивация Представим, что у нас есть алгоритм сложности 1.7n для некоторой задачи, который за “разумное” время позволяет решать примеры этой задачи размера не более n0 . А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 10 / 39
  • 29. Мотивация Представим, что у нас есть алгоритм сложности 1.7n для некоторой задачи, который за “разумное” время позволяет решать примеры этой задачи размера не более n0 . The “hardware” approach: возьмем в 10 раз более быстрый компьютер. Теперь мы можем решать примеры размера n0 + 4. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 10 / 39
  • 30. Мотивация Представим, что у нас есть алгоритм сложности 1.7n для некоторой задачи, который за “разумное” время позволяет решать примеры этой задачи размера не более n0 . The “hardware” approach: возьмем в 10 раз более быстрый компьютер. Теперь мы можем решать примеры размера n0 + 4. The “brainware” approach: придумаем алгоритм сложности 1.3n . Это позволит нам решать примеры размера 2 · n0 . А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 10 / 39
  • 31. Мотивация Представим, что у нас есть алгоритм сложности 1.7n для некоторой задачи, который за “разумное” время позволяет решать примеры этой задачи размера не более n0 . The “hardware” approach: возьмем в 10 раз более быстрый компьютер. Теперь мы можем решать примеры размера n0 + 4. The “brainware” approach: придумаем алгоритм сложности 1.3n . Это позволит нам решать примеры размера 2 · n0 . Другими словами, уменьшение основания экспоненты времени работы алгоритма увеличивает размер решаемых за данное время примеров в константное число раз, в то время как использование более быстрого компьютера способно увеличить размер лишь на константу. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 10 / 39
  • 32. План лекции 1 P и NP неформально 2 Точные алгоритмы 1.732n алгоритм для задачи о максимальном разрезе 3 FPT алгоритмы FPT-алгоритм для задачи о пути длины k 4 Приближённые алгоритмы 3/2-приближённый алгоритм для задачи о коммивояжёре в метрическом пространстве А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 11 / 39
  • 33. 3-клика Определение Задача о 3-клике (3-clique problem) заключается в проверке наличия 3-клики (то есть полного подграфа на трех вершинах) во входном графе. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 12 / 39
  • 34. 3-клика Определение Задача о 3-клике (3-clique problem) заключается в проверке наличия 3-клики (то есть полного подграфа на трех вершинах) во входном графе. Алгоритм Matrix-Clique(G ) А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 12 / 39
  • 35. 3-клика Определение Задача о 3-клике (3-clique problem) заключается в проверке наличия 3-клики (то есть полного подграфа на трех вершинах) во входном графе. Алгоритм Matrix-Clique(G ) построить матрицу смежности A графа G А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 12 / 39
  • 36. 3-клика Определение Задача о 3-клике (3-clique problem) заключается в проверке наличия 3-клики (то есть полного подграфа на трех вершинах) во входном графе. Алгоритм Matrix-Clique(G ) построить матрицу смежности A графа G посчитать A3 А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 12 / 39
  • 37. 3-клика Определение Задача о 3-клике (3-clique problem) заключается в проверке наличия 3-клики (то есть полного подграфа на трех вершинах) во входном графе. Алгоритм Matrix-Clique(G ) построить матрицу смежности A графа G посчитать A3 вернуть “да”, если на диагонали построенной матрицы есть хотя бы один не ноль А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 12 / 39
  • 38. 3-клика Определение Задача о 3-клике (3-clique problem) заключается в проверке наличия 3-клики (то есть полного подграфа на трех вершинах) во входном графе. Алгоритм Matrix-Clique(G ) построить матрицу смежности A графа G посчитать A3 вернуть “да”, если на диагонали построенной матрицы есть хотя бы один не ноль вернуть “нет” А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 12 / 39
  • 39. Анализ алгоритма Лемма Алгоритм выдает правильный ответ за время O(nω ), где ω ≈ 2.376 экспонента перемножения матриц (matrix multiplication exponent). А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 13 / 39
  • 40. Анализ алгоритма Лемма Алгоритм выдает правильный ответ за время O(nω ), где ω ≈ 2.376 экспонента перемножения матриц (matrix multiplication exponent). Доказательство А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 13 / 39
  • 41. Анализ алгоритма Лемма Алгоритм выдает правильный ответ за время O(nω ), где ω ≈ 2.376 экспонента перемножения матриц (matrix multiplication exponent). Доказательство важное свойство матрицы смежности: Ak [i, j] есть количество путей длины k из вершины i в вершину j в графе G (легко доказать по индукции) А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 13 / 39
  • 42. Анализ алгоритма Лемма Алгоритм выдает правильный ответ за время O(nω ), где ω ≈ 2.376 экспонента перемножения матриц (matrix multiplication exponent). Доказательство важное свойство матрицы смежности: Ak [i, j] есть количество путей длины k из вершины i в вершину j в графе G (легко доказать по индукции) 3-клика это путь длины 3 из вершины в саму себя А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 13 / 39
  • 43. Анализ алгоритма Лемма Алгоритм выдает правильный ответ за время O(nω ), где ω ≈ 2.376 экспонента перемножения матриц (matrix multiplication exponent). Доказательство важное свойство матрицы смежности: Ak [i, j] есть количество путей длины k из вершины i в вершину j в графе G (легко доказать по индукции) 3-клика это путь длины 3 из вершины в саму себя для вычисления A3 требуется два умножения матриц А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 13 / 39
  • 44. Задача о максимальном разрезе Определение Задача о максимальном разрезе (maximum cut problem, MAX-CUT) заключается в нахождении такого разбиения вершин графа на две части, при котором количество ребер, концы которых принадлежат разным частям, максимально. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 14 / 39
  • 45. Задача о максимальном разрезе Определение Задача о максимальном разрезе (maximum cut problem, MAX-CUT) заключается в нахождении такого разбиения вершин графа на две части, при котором количество ребер, концы которых принадлежат разным частям, максимально. Основные идеи сведения максимального разреза к 3-клике Дан граф G на n вершинах. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 14 / 39
  • 46. Задача о максимальном разрезе Определение Задача о максимальном разрезе (maximum cut problem, MAX-CUT) заключается в нахождении такого разбиения вершин графа на две части, при котором количество ребер, концы которых принадлежат разным частям, максимально. Основные идеи сведения максимального разреза к 3-клике Дан граф G на n вершинах. Построим трехдольный граф H на 3 · 2n/3 вершинах со следующим свойством: исходный граф G имеет разрез веса w тогда и только тогда, когда H содержит 3-клику веса w . А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 14 / 39
  • 47. Задача о максимальном разрезе Определение Задача о максимальном разрезе (maximum cut problem, MAX-CUT) заключается в нахождении такого разбиения вершин графа на две части, при котором количество ребер, концы которых принадлежат разным частям, максимально. Основные идеи сведения максимального разреза к 3-клике Дан граф G на n вершинах. Построим трехдольный граф H на 3 · 2n/3 вершинах со следующим свойством: исходный граф G имеет разрез веса w тогда и только тогда, когда H содержит 3-клику веса w . Используем быстрое умножение матриц для поиска 3-клики. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 14 / 39
  • 48. Задача о максимальном разрезе Определение Задача о максимальном разрезе (maximum cut problem, MAX-CUT) заключается в нахождении такого разбиения вершин графа на две части, при котором количество ребер, концы которых принадлежат разным частям, максимально. Основные идеи сведения максимального разреза к 3-клике Дан граф G на n вершинах. Построим трехдольный граф H на 3 · 2n/3 вершинах со следующим свойством: исходный граф G имеет разрез веса w тогда и только тогда, когда H содержит 3-клику веса w . Используем быстрое умножение матриц для поиска 3-клики. Сложность: 2ωn/3 ≈ 1.732n . А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 14 / 39
  • 49. Вспомогательный граф H G А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 15 / 39
  • 50. Вспомогательный граф это три части вершин исходного графа G H G А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 15 / 39
  • 51. Вспомогательный граф это три доли вершин вспомогательного огромного графа H H G А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 15 / 39
  • 52. Вспомогательный граф для каждого Xi ⊆ Vi создаём вершину в соответствующей доле H V1 X1 X1 X1 H G V2 X2 V3 X3 X2 X3 X2 X3 А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 15 / 39
  • 53. Вспомогательный граф чему равен вес разреза X1 ∪ X2 ∪ X3 в G ? V1 X1 X1 X1 H G V2 X2 V3 X3 X2 X3 X2 X3 А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 15 / 39
  • 54. Вспомогательный граф чему равен вес разреза X1 ∪ X2 ∪ X3 в G ? V1 X1 X1 X1 H G V2 X2 V3 X3 X2 X3 X2 X3 А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 15 / 39
  • 55. Вспомогательный граф V1 X1 X1 X1 H G V2 X2 V3 X3 X2 X3 X2 X3 А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 15 / 39
  • 56. Вспомогательный граф V1 X1 X1 X1 H G V2 X2 V3 X3 X2 X3 X2 X3 А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 15 / 39
  • 57. Вспомогательный граф V1 X1 X1 X1 H G V2 X2 V3 X3 X2 X3 X2 X3 А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 15 / 39
  • 58. Вспомогательный граф V1 X1 X1 итак, вес треугольника (H1 , H2 , H3 ) в H равен весу разреза X1 ∪ X2 ∪ X3 в G X1 H G V2 X2 V3 X3 X2 X3 X2 X3 А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 15 / 39
  • 59. Алгоритм Алгоритм Matrix-MAX-CUT(G ) А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 16 / 39
  • 60. Алгоритм Алгоритм Matrix-MAX-CUT(G ) разбить множество вершин V на три равные части V1 , V2 , V3 А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 16 / 39
  • 61. Алгоритм Алгоритм 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 ) (для остальных пар долей аналогично) А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 16 / 39
  • 62. Алгоритм Алгоритм 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 | А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 16 / 39
  • 63. Алгоритм Алгоритм 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 А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 16 / 39
  • 64. Алгоритм Алгоритм 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-клика А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 16 / 39
  • 65. Алгоритм Алгоритм 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 А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 16 / 39
  • 66. Алгоритм Алгоритм 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 вернуть максимальную найденную стоимость разреза А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 16 / 39
  • 67. Известные оценки Факт А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 17 / 39
  • 68. Известные оценки Факт Алгоритм, как видно, использует экспоненциальную память и поэтому совсем не практичен. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 17 / 39
  • 69. Известные оценки Факт Алгоритм, как видно, использует экспоненциальную память и поэтому совсем не практичен. Алгоритм со временем работы 1.99999n и полиномиальной памятью пока не придуман. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 17 / 39
  • 70. Известные оценки Факт Алгоритм, как видно, использует экспоненциальную память и поэтому совсем не практичен. Алгоритм со временем работы 1.99999n и полиномиальной памятью пока не придуман. Наилучшая известная оценка относительно количества рёбер 2m/6.2 . А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 17 / 39
  • 71. План лекции 1 P и NP неформально 2 Точные алгоритмы 1.732n алгоритм для задачи о максимальном разрезе 3 FPT алгоритмы FPT-алгоритм для задачи о пути длины k 4 Приближённые алгоритмы 3/2-приближённый алгоритм для задачи о коммивояжёре в метрическом пространстве А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 18 / 39
  • 72. FPT алгоритмы для NP-трудных задач Алгоритмы, находящие точное решение для данной задачи за время f (k)nc , где n размер входа, c константа, k некоторый параметр, f произвольная функция. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 19 / 39
  • 73. Вершинное покрытие и доминирующее множество Определение А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 20 / 39
  • 74. Вершинное покрытие и доминирующее множество Определение (Параметризованная) задача о вершинном покрытии (parameterized vertex cover problem) заключается в нахождении по данному графу G = (V , E ) и числу k такого множества вершин V ⊆ V , что |V | ≤ k и для любого ребра (u, v ) ∈ E , хотя бы одна из вершин u и v содержится в V . А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 20 / 39
  • 75. Вершинное покрытие и доминирующее множество Определение (Параметризованная) задача о вершинном покрытии (parameterized vertex cover problem) заключается в нахождении по данному графу G = (V , E ) и числу k такого множества вершин V ⊆ V , что |V | ≤ k и для любого ребра (u, v ) ∈ E , хотя бы одна из вершин u и v содержится в V . (Параметризованная) задача о доминирующем множестве (parameterzied dominating set problem) заключается в нахождении по данному графу G = (V , E ) и числу k такого множества вершин V ⊆ V , что для любой вершины u ∈ V найдётся такая вершина v ∈ V , что (u, v ) ∈ E . А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 20 / 39
  • 76. Сравнение алгоритмов А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 21 / 39
  • 77. Сравнение алгоритмов Наивный алгоритм для задачи о вершинном покрытии имеет время работы 2k n, для задачи о доминирующем множестве nk+1 . А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 21 / 39
  • 78. Сравнение алгоритмов Наивный алгоритм для задачи о вершинном покрытии имеет время работы 2k n, для задачи о доминирующем множестве nk+1 . Отношение nk+1 /2k n для различных значений k и n. n = 50 n = 100 n = 150 k =2 625 2 500 5 625 k =3 15 625 125 000 421 875 k =5 390 625 6 255 000 31 640 625 k = 10 1.9 × 1012 9.8 × 1014 3.7 × 1016 k = 20 1.8 × 1026 9.5 × 1031 2.1 × 1035 А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 21 / 39
  • 79. Fixed parameter tractability Определение А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 22 / 39
  • 80. Fixed parameter tractability Определение Параметризованной задачей (parameterized problem) L называется подмножество Σ∗ × N для некоторого конечного алфавита Σ. Входом задачи является пара (x, k), k называется параметром (parameter). А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 22 / 39
  • 81. Fixed parameter tractability Определение Параметризованной задачей (parameterized problem) L называется подмножество Σ∗ × N для некоторого конечного алфавита Σ. Входом задачи является пара (x, k), k называется параметром (parameter). Параметризованная задача L называется fixed parameter tractable (FPT), если принадлежность пары (x, k) языку L может быть проверена за время f (k)|x|c , где c константа (не зависящая ни от k, ни от n), а f произвольная функция. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 22 / 39
  • 82. План лекции 1 P и NP неформально 2 Точные алгоритмы 1.732n алгоритм для задачи о максимальном разрезе 3 FPT алгоритмы FPT-алгоритм для задачи о пути длины k 4 Приближённые алгоритмы 3/2-приближённый алгоритм для задачи о коммивояжёре в метрическом пространстве А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 23 / 39
  • 83. Задача о пути длины k Определение Задачи о пути длины k (k-path problem) заключается в нахождении по данному графу G с двумя выделенными вершинами s и t и числу k простого пути между s и t, содержащего ровно k промежуточных вершин. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 24 / 39
  • 84. Color coding Color coding А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 25 / 39
  • 85. Color coding Color coding Присвоим равновероятно и независимо всем вершинам, кроме s и t, цвета от 1 до k. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 25 / 39
  • 86. Color coding Color coding Присвоим равновероятно и независимо всем вершинам, кроме s и t, цвета от 1 до k. Проверим, есть ли полноцветный s–t путь, то есть путь, в котором промежуточные вершины покрашены во все k цветов. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 25 / 39
  • 87. Оценка вероятности ошибки Оценка вероятности ошибки А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 26 / 39
  • 88. Оценка вероятности ошибки Оценка вероятности ошибки Если путь длины k есть, то вероятность того, что он полноцветен, равна k k k! > e k = e −k . kk k А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 26 / 39
  • 89. Оценка вероятности ошибки Оценка вероятности ошибки Если путь длины k есть, то вероятность того, что он полноцветен, равна k k k! > e k = e −k . kk k Вероятность того, что путь не найдётся (если он есть) после e k повторений, не превосходит k −k ek (1 − e −k )e < e −e = e −1 . А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 26 / 39
  • 90. Как же проверять наличие полноцветного пути? Как же проверять наличие полноцветного пути? А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 27 / 39
  • 91. Как же проверять наличие полноцветного пути? Как же проверять наличие полноцветного пути? Мы знаем, что в полноцветном пути должны встречаться вершины всех k цветов, но не знаем, в каком порядке. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 27 / 39
  • 92. Как же проверять наличие полноцветного пути? Как же проверять наличие полноцветного пути? Мы знаем, что в полноцветном пути должны встречаться вершины всех k цветов, но не знаем, в каком порядке. Можно перебрать все k! порядков. Когда порядок зафиксирован, нужно просто проверить наличие s–t пути в графе. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 27 / 39
  • 93. Как же проверять наличие полноцветного пути? Как же проверять наличие полноцветного пути? Мы знаем, что в полноцветном пути должны встречаться вершины всех k цветов, но не знаем, в каком порядке. Можно перебрать все k! порядков. Когда порядок зафиксирован, нужно просто проверить наличие s–t пути в графе. Итого Алгоритм за время O(e k k!|E (G )|) решает задачу о пути длины k с вероятностью ошибки не более e −1 . А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 27 / 39
  • 94. План лекции 1 P и NP неформально 2 Точные алгоритмы 1.732n алгоритм для задачи о максимальном разрезе 3 FPT алгоритмы FPT-алгоритм для задачи о пути длины k 4 Приближённые алгоритмы 3/2-приближённый алгоритм для задачи о коммивояжёре в метрическом пространстве А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 28 / 39
  • 95. Приближённые алгоритмы для NP-трудных задач Алгоритмы, находящие за полиномиальное время для данной оптимизационной задачи решение, которое гарантированно не сильно хуже оптимального. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 29 / 39
  • 96. План лекции 1 P и NP неформально 2 Точные алгоритмы 1.732n алгоритм для задачи о максимальном разрезе 3 FPT алгоритмы FPT-алгоритм для задачи о пути длины k 4 Приближённые алгоритмы 3/2-приближённый алгоритм для задачи о коммивояжёре в метрическом пространстве А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 30 / 39
  • 97. Задача о коммивояжере Определение А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 31 / 39
  • 98. Задача о коммивояжере Определение Дан полный неориентированный граф G = (V , E ), каждому ребру (u, v ) которого приписана некоторая стоимость c(u, v ). А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 31 / 39
  • 99. Задача о коммивояжере Определение Дан полный неориентированный граф G = (V , E ), каждому ребру (u, v ) которого приписана некоторая стоимость c(u, v ). Задача о коммивояжере (travelling salesman problem, TSP) заключается в нахождении в графе гамильтонова цикла минимальной стоимости. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 31 / 39
  • 100. Задача о коммивояжере Определение Дан полный неориентированный граф G = (V , E ), каждому ребру (u, v ) которого приписана некоторая стоимость c(u, v ). Задача о коммивояжере (travelling salesman problem, TSP) заключается в нахождении в графе гамильтонова цикла минимальной стоимости. Задача о коммивояжере в метрическом пространстве (metric TSP) есть частный случай задачи о коммивояжере, где расстояния входного графа удовлетворяют неравенству треугольника: c(u, w ) ≤ c(u, v ) + c(v , w ) ∀u, v , w ∈ V . А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 31 / 39
  • 101. 2-оптимальный алгоритм Алгоритм Approx-TSP(G ) А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 32 / 39
  • 102. 2-оптимальный алгоритм Алгоритм Approx-TSP(G ) построим минимальное остовное дерево T графа G А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 32 / 39
  • 103. 2-оптимальный алгоритм Алгоритм Approx-TSP(G ) построим минимальное остовное дерево T графа G продублируем каждое ребро дерева T и в полученном графе найдем эйлеров цикл А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 32 / 39
  • 104. 2-оптимальный алгоритм Алгоритм Approx-TSP(G ) построим минимальное остовное дерево T графа G продублируем каждое ребро дерева T и в полученном графе найдем эйлеров цикл выкинем из полученного цикла все повторения вершин и вернем полученный цикл А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 32 / 39
  • 105. Пример работы алгоритма Алгоритм Approx-TSP(G ) a d e b f g c h А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 33 / 39
  • 106. Пример работы алгоритма Алгоритм Approx-TSP(G ) a d строим минимальное остовное дерево T e графа G g b f c h А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 33 / 39
  • 107. Пример работы алгоритма Алгоритм Approx-TSP(G ) a d строим минимальное остовное дерево T e графа G g b f продублируем каждое ребро дерева T и в c полученном графе h найдем эйлеров цикл А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 33 / 39
  • 108. Пример работы алгоритма Алгоритм Approx-TSP(G ) a d строим минимальное остовное дерево T e графа G g b f продублируем каждое ребро дерева T и в c полученном графе h найдем эйлеров цикл А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 33 / 39
  • 109. Пример работы алгоритма Алгоритм Approx-TSP(G ) a d строим минимальное остовное дерево T e графа G g b f продублируем каждое ребро дерева T и в c полученном графе h найдем эйлеров цикл выкинем из полученного цикла все повторения вершин и вернем полученный цикл А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 33 / 39
  • 110. Анализ алгоритма Лемма Алгоритм Approx-TSP является 2-приближенным. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 34 / 39
  • 111. Анализ алгоритма Лемма Алгоритм Approx-TSP является 2-приближенным. Доказательство А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 34 / 39
  • 112. Анализ алгоритма Лемма Алгоритм Approx-TSP является 2-приближенным. Доказательство пусть WT вес минимального остовного дерева, а Wopt вес оптимального гамильтонова цикла А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 34 / 39
  • 113. Анализ алгоритма Лемма Алгоритм Approx-TSP является 2-приближенным. Доказательство пусть WT вес минимального остовного дерева, а Wopt вес оптимального гамильтонова цикла WT ≤ Wopt , поскольку при выкидывании ребра из гамильтонва цикла получается остовное дерево А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 34 / 39
  • 114. Анализ алгоритма Лемма Алгоритм Approx-TSP является 2-приближенным. Доказательство пусть WT вес минимального остовного дерева, а Wopt вес оптимального гамильтонова цикла WT ≤ Wopt , поскольку при выкидывании ребра из гамильтонва цикла получается остовное дерево каждое ребро построенного гамильтонова цикла заменяет какой-то путь эйлерова цикла, длина которого по неравенству треугольника не менее длины этого ребра А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 34 / 39
  • 115. Анализ алгоритма Лемма Алгоритм Approx-TSP является 2-приближенным. Доказательство пусть WT вес минимального остовного дерева, а Wopt вес оптимального гамильтонова цикла WT ≤ Wopt , поскольку при выкидывании ребра из гамильтонва цикла получается остовное дерево каждое ребро построенного гамильтонова цикла заменяет какой-то путь эйлерова цикла, длина которого по неравенству треугольника не менее длины этого ребра значит, длина найденного пути не превосходит 2WT , а следовательно, и 2Wopt А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 34 / 39
  • 116. 3/2-оптимальный алгоритм Алгоритм Approx-TSP-Improved(G ) А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 35 / 39
  • 117. 3/2-оптимальный алгоритм Алгоритм Approx-TSP-Improved(G ) строим минимальное остовное дерево T графа G А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 35 / 39
  • 118. 3/2-оптимальный алгоритм Алгоритм Approx-TSP-Improved(G ) строим минимальное остовное дерево T графа G найдем минимальное полное паросочетание всех вершин дерева T нечетной степени А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 35 / 39
  • 119. 3/2-оптимальный алгоритм Алгоритм Approx-TSP-Improved(G ) строим минимальное остовное дерево T графа G найдем минимальное полное паросочетание всех вершин дерева T нечетной степени добавим найденные ребра в дерево T и найдем в полученном графе эйлеров цикл А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 35 / 39
  • 120. 3/2-оптимальный алгоритм Алгоритм Approx-TSP-Improved(G ) строим минимальное остовное дерево T графа G найдем минимальное полное паросочетание всех вершин дерева T нечетной степени добавим найденные ребра в дерево T и найдем в полученном графе эйлеров цикл выкинем из полученного цикла все повторения вершин и вернем полученный цикл А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 35 / 39
  • 121. Анализ алгоритма Лемма Алгоритм Approx-TSP-Improved является 3/2-приближенным. А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 36 / 39
  • 122. Анализ алгоритма Лемма Алгоритм Approx-TSP-Improved является 3/2-приближенным. Доказательство А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 36 / 39
  • 123. Анализ алгоритма Лемма Алгоритм Approx-TSP-Improved является 3/2-приближенным. Доказательство как и в предыдущем доказательстве, вес построенного цикла не провосходит WT + WP , где WP вес минимального паросочетания вершин нечетной степени дерева T А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 36 / 39
  • 124. Анализ алгоритма Лемма Алгоритм Approx-TSP-Improved является 3/2-приближенным. Доказательство как и в предыдущем доказательстве, вес построенного цикла не провосходит WT + WP , где WP вес минимального паросочетания вершин нечетной степени дерева T нужно показать, что WP ≤ Wopt /2 А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 36 / 39
  • 125. Анализ алгоритма Лемма Алгоритм Approx-TSP-Improved является 3/2-приближенным. Доказательство как и в предыдущем доказательстве, вес построенного цикла не провосходит WT + WP , где WP вес минимального паросочетания вершин нечетной степени дерева T нужно показать, что WP ≤ Wopt /2 обозначим через A множество всех вершин нечетной степени дерева T А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 36 / 39
  • 126. Анализ алгоритма Лемма Алгоритм Approx-TSP-Improved является 3/2-приближенным. Доказательство как и в предыдущем доказательстве, вес построенного цикла не провосходит WT + WP , где WP вес минимального паросочетания вершин нечетной степени дерева T нужно показать, что WP ≤ Wopt /2 обозначим через A множество всех вершин нечетной степени дерева T рассмотрим такой гамильтонов цикл на вершинах множества A: вершины множества A в нем будут встречаться в такой последовательности, в какой они идут в оптимальном гамильтоновом цикле графа G А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 36 / 39
  • 127. Доказательство (продолжение) Доказательство А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 37 / 39
  • 128. Доказательство (продолжение) Доказательство важно отметить, что нам не нужно строить такой цикл; нам важен лишь факт его существования А. Куликов Алгоритмы для NP-трудных задач (Санкт-Петербургское отделение Математического института им. В. 37 / 39