SlideShare uma empresa Scribd logo
1 de 67
Baixar para ler offline
Алгоритмы для NP-трудных задач
            Лекция 1: NP-полные задачи

                           Александр Куликов

      Петербургское отделение Математического института им. В. А. Стеклова
                            Российская академия наук


               Computer Science клуб в Екатеринбурге
                           1 марта 2013




А. Куликов (ПОМИ РАН)           NP-полные задачи                1 марта 2013   1 / 31
1    Задачи поиска


2    NP-полные задачи


3    Сведения




    А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   2 / 31
Содержание



1    Задачи поиска


2    NP-полные задачи


3    Сведения




    А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   3 / 31
Эффективные алгоритмы




 А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   4 / 31
Эффективные алгоритмы
    Алгоритмы нахождения кратчайших путей и минимальных
    покрывающих деревьев в графах, паросочетаний в
    двудольных графах, наибольшей возрастающей
    подпоследовательности, максимального потока в сети
    являются эффективными, поскольку время работы каждого
    из них растет полиномиально (как n, n2 , n3 ) с ростом
    размера входа.




 А. Куликов (ПОМИ РАН)   NP-полные задачи     1 марта 2013   4 / 31
Эффективные алгоритмы
    Алгоритмы нахождения кратчайших путей и минимальных
    покрывающих деревьев в графах, паросочетаний в
    двудольных графах, наибольшей возрастающей
    подпоследовательности, максимального потока в сети
    являются эффективными, поскольку время работы каждого
    из них растет полиномиально (как n, n2 , n3 ) с ростом
    размера входа.
    В каждой из решаемых ими задач мы ищем решение (путь,
    дерево, паросочетание) среди экспоненциально большого
    множества кандидатов: существует n! различных
    паросочетаний в двудольном n × n графе, у полного графа
    на n вершинах есть nn−2 покрывающих деревьев, в графе,
    как правило, есть экспоненциальное число путей из s в t.


 А. Куликов (ПОМИ РАН)   NP-полные задачи       1 марта 2013   4 / 31
Эффективные алгоритмы
    Алгоритмы нахождения кратчайших путей и минимальных
    покрывающих деревьев в графах, паросочетаний в
    двудольных графах, наибольшей возрастающей
    подпоследовательности, максимального потока в сети
    являются эффективными, поскольку время работы каждого
    из них растет полиномиально (как n, n2 , n3 ) с ростом
    размера входа.
    В каждой из решаемых ими задач мы ищем решение (путь,
    дерево, паросочетание) среди экспоненциально большого
    множества кандидатов: существует n! различных
    паросочетаний в двудольном n × n графе, у полного графа
    на n вершинах есть nn−2 покрывающих деревьев, в графе,
    как правило, есть экспоненциальное число путей из s в t.
    Цель эффективного алгоритма: избежать полного перебора.
 А. Куликов (ПОМИ РАН)   NP-полные задачи       1 марта 2013   4 / 31
Задача выполнимости




 А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   5 / 31
Задача выполнимости



    Вход задачи пропозициональной выполнимости (satisfiability
    problem, SAT) выглядит следующим образом:

           (x ∨ y ∨ z)(x ∨ ¬y )(y ∨ ¬z)(z ∨ ¬x)(¬x ∨ ¬y ∨ ¬z) .




 А. Куликов (ПОМИ РАН)       NP-полные задачи         1 марта 2013   5 / 31
Задача выполнимости



    Вход задачи пропозициональной выполнимости (satisfiability
    problem, SAT) выглядит следующим образом:

           (x ∨ y ∨ z)(x ∨ ¬y )(y ∨ ¬z)(z ∨ ¬x)(¬x ∨ ¬y ∨ ¬z) .


    Необходимо проверить, выполнима ли формула.




 А. Куликов (ПОМИ РАН)       NP-полные задачи         1 марта 2013   5 / 31
Задача поиска




 А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   6 / 31
Задача поиска


    Задача выполнимости является типичной задачей поиска:
    дано условие I и надо найти для него решение S. При этом
    должен существовать способ быстрой проверки того, что
    решение правильное.




 А. Куликов (ПОМИ РАН)   NP-полные задачи       1 марта 2013   6 / 31
Задача поиска


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




 А. Куликов (ПОМИ РАН)   NP-полные задачи        1 марта 2013   6 / 31
Задача поиска




 А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   7 / 31
Задача коммивояжёра




 А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   8 / 31
Задача коммивояжёра

    В задаче о коммивояжере (traveling salesman problem) дано n
    вершин с номерами 1, . . . , n и все n(n − 1)/2 попарных
    расстояний между ними, а также бюджет b.




 А. Куликов (ПОМИ РАН)   NP-полные задачи         1 марта 2013   8 / 31
Задача коммивояжёра

    В задаче о коммивояжере (traveling salesman problem) дано n
    вершин с номерами 1, . . . , n и все n(n − 1)/2 попарных
    расстояний между ними, а также бюджет b.
    Найти необходимо цикл, проходящий через все вершины
    ровно по одному разу (то есть гамильтонов цикл) и
    имеющий длину не более b, или же сообщить, что такого
    цикла нет.




 А. Куликов (ПОМИ РАН)   NP-полные задачи         1 марта 2013   8 / 31
Задача коммивояжёра

    В задаче о коммивояжере (traveling salesman problem) дано n
    вершин с номерами 1, . . . , n и все n(n − 1)/2 попарных
    расстояний между ними, а также бюджет b.
    Найти необходимо цикл, проходящий через все вершины
    ровно по одному разу (то есть гамильтонов цикл) и
    имеющий длину не более b, или же сообщить, что такого
    цикла нет.
    Другими словами, необходимо найти перестановку
    𝜏 (1), . . . , 𝜏 (n) вершин, такую что

                   d 𝜏 (1),𝜏 (2) + d 𝜏 (2),𝜏 (3) + · · · + d 𝜏 (n),𝜏 (1) ≤ b .



 А. Куликов (ПОМИ РАН)              NP-полные задачи                      1 марта 2013   8 / 31
Пример
                                   5

                3            2              3       3
                                                4
                1

                         4
                3                                   2

                                   6
 А. Куликов (ПОМИ РАН)       NP-полные задачи           1 марта 2013   9 / 31
Пример
                                   5

                3            2              3       3
                                                4
                1

                         4
                3                                   2

                                   6
 А. Куликов (ПОМИ РАН)       NP-полные задачи           1 марта 2013   9 / 31
Оптимизационные задачи и задачи поиска




 А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   10 / 31
Оптимизационные задачи и задачи поиска


    Почему мы сформулировали задачу о коммивояжере как
    задачу поиска, когда на самом деле это оптимизационная
    задача?




 А. Куликов (ПОМИ РАН)   NP-полные задачи      1 марта 2013   10 / 31
Оптимизационные задачи и задачи поиска


    Почему мы сформулировали задачу о коммивояжере как
    задачу поиска, когда на самом деле это оптимизационная
    задача?
    Переформулировка оптимизационной задачи как задачи
    поиска не меняет ее сложности, поскольку обе версии
    сводятся друг к другу.




 А. Куликов (ПОМИ РАН)   NP-полные задачи      1 марта 2013   10 / 31
Оптимизационные задачи и задачи поиска


    Почему мы сформулировали задачу о коммивояжере как
    задачу поиска, когда на самом деле это оптимизационная
    задача?
    Переформулировка оптимизационной задачи как задачи
    поиска не меняет ее сложности, поскольку обе версии
    сводятся друг к другу.
    Имея потенциальное решение для задачи TSP, легко
    проверить свойства “является маршрутом” и “имеет длину
    не более b”, но как проверить свойство “является
    оптимальным”?



 А. Куликов (ПОМИ РАН)   NP-полные задачи      1 марта 2013   10 / 31
Коммивояжёр и покрывающее дерево




 А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   11 / 31
Коммивояжёр и покрывающее дерево

    Задача о минимальном покрывающем дереве: дана матрица
    попарных расстояний и бюджет b и требуется найти
    дерево T , такое что
                           ∑︁
                              dij ≤ b .
                          (i,j)∈T




 А. Куликов (ПОМИ РАН)   NP-полные задачи    1 марта 2013   11 / 31
Коммивояжёр и покрывающее дерево

    Задача о минимальном покрывающем дереве: дана матрица
    попарных расстояний и бюджет b и требуется найти
    дерево T , такое что
                           ∑︁
                              dij ≤ b .
                          (i,j)∈T



    Задача коммивояжёра может рассматриваться как вариант
    задачи о покрывающем дереве, где искомому дереву не
    разрешается ветвиться и оно, таким образом, должно быть
    просто путем.




 А. Куликов (ПОМИ РАН)   NP-полные задачи      1 марта 2013   11 / 31
Коммивояжёр и покрывающее дерево

    Задача о минимальном покрывающем дереве: дана матрица
    попарных расстояний и бюджет b и требуется найти
    дерево T , такое что
                           ∑︁
                              dij ≤ b .
                          (i,j)∈T



    Задача коммивояжёра может рассматриваться как вариант
    задачи о покрывающем дереве, где искомому дереву не
    разрешается ветвиться и оно, таким образом, должно быть
    просто путем.
    Это дополнительное условие на структуру дерева делает
    задачу гораздо более сложной.

 А. Куликов (ПОМИ РАН)   NP-полные задачи      1 марта 2013   11 / 31
Незавсисмое множество, вершинное покрытие и
клика




 А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   12 / 31
Незавсисмое множество, вершинное покрытие и
клика

    В задаче о независимом множестве (independent set problem)
    дан граф и число g и требуется найти g независимых
    вершин, то есть таких, что никакие две из них не соединены
    ребром.




 А. Куликов (ПОМИ РАН)   NP-полные задачи       1 марта 2013   12 / 31
Незавсисмое множество, вершинное покрытие и
клика

    В задаче о независимом множестве (independent set problem)
    дан граф и число g и требуется найти g независимых
    вершин, то есть таких, что никакие две из них не соединены
    ребром.
    В задаче о вершинном покрытии (vertex cover problem) дан
    граф и число b, и требуется найти b вершин, покрывающих
    все ребра (то есть такое множество из b вершин, что для
    любого ребра хотя бы один из его концов содержится в этом
    множестве).




 А. Куликов (ПОМИ РАН)   NP-полные задачи       1 марта 2013   12 / 31
Незавсисмое множество, вершинное покрытие и
клика

    В задаче о независимом множестве (independent set problem)
    дан граф и число g и требуется найти g независимых
    вершин, то есть таких, что никакие две из них не соединены
    ребром.
    В задаче о вершинном покрытии (vertex cover problem) дан
    граф и число b, и требуется найти b вершин, покрывающих
    все ребра (то есть такое множество из b вершин, что для
    любого ребра хотя бы один из его концов содержится в этом
    множестве).
    Задача о клике (clique problem) заключается в нахождении
    по графу и числу g таких g вершин, что любые две из них
    соединены ребром.

 А. Куликов (ПОМИ РАН)   NP-полные задачи       1 марта 2013   12 / 31
Содержание



1    Задачи поиска


2    NP-полные задачи


3    Сведения




    А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   13 / 31
Сложные и простые задачи




     трудные задачи (NP-полные) простые задачи (из P)
                3-SAT              2-SAT, Horn SAT
            коммивояжёр          покрывающее дерево
       независимое множество    независимое множество
                                      в деревьях




 А. Куликов (ПОМИ РАН)   NP-полные задачи    1 марта 2013   14 / 31
Классы P и NP




 А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   15 / 31
Классы P и NP




    NP — класс всех задач поиска.




 А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   15 / 31
Классы P и NP




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




 А. Куликов (ПОМИ РАН)   NP-полные задачи      1 марта 2013   15 / 31
Сведения


Свед´ние задачи поиска A к задаче поиска B — это пара
    е
полиномиальных по времени алгоритмов (f , h):




 А. Куликов (ПОМИ РАН)   NP-полные задачи      1 марта 2013   16 / 31
Сведения


Свед´ние задачи поиска A к задаче поиска B — это пара
    е
полиномиальных по времени алгоритмов (f , h):

                                                    решение S для f (I )
                                                                            h    решение h(S) для I
 условие I       условие f (I )
             f                    алгоритм для B
                                                   нет решения для f (I )
                                                                                 нет решения для I




 А. Куликов (ПОМИ РАН)                    NP-полные задачи                      1 марта 2013     16 / 31
NP-полные задачи




 А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   17 / 31
NP-полные задачи



    Задача поиска называется NP-полной (NP-complete), если
    все другие задачи поиска сводятся к ней.




 А. Куликов (ПОМИ РАН)   NP-полные задачи      1 марта 2013   17 / 31
NP-полные задачи



    Задача поиска называется NP-полной (NP-complete), если
    все другие задачи поиска сводятся к ней.
    Чтобы задача была NP-полной, с ее помощью должны
    решаться все задачи поиска в мире!




 А. Куликов (ПОМИ РАН)   NP-полные задачи      1 марта 2013   17 / 31
NP-полные задачи



    Задача поиска называется NP-полной (NP-complete), если
    все другие задачи поиска сводятся к ней.
    Чтобы задача была NP-полной, с ее помощью должны
    решаться все задачи поиска в мире!
    Удивительно, что такие задачи существуют вообще.




 А. Куликов (ПОМИ РАН)   NP-полные задачи      1 марта 2013   17 / 31
Два способа использования сведений



Задача поиска A сводится к задаче поиска B:




 А. Куликов (ПОМИ РАН)   NP-полные задачи     1 марта 2013   18 / 31
Два способа использования сведений



Задача поиска A сводится к задаче поиска B:
    Мы знаем, как эффективно решать B и хотим использовать
    это знание для решения A.




 А. Куликов (ПОМИ РАН)   NP-полные задачи     1 марта 2013   18 / 31
Два способа использования сведений



Задача поиска A сводится к задаче поиска B:
    Мы знаем, как эффективно решать B и хотим использовать
    это знание для решения A.
    Мы знаем, что A трудна, и используем сведение, чтобы
    показать, что и B трудна.




 А. Куликов (ПОМИ РАН)   NP-полные задачи     1 марта 2013   18 / 31
Пространство NP всех задач поиска в
предположении P ̸= NP




                         P                   NP-полные




                         увеличение сложности




 А. Куликов (ПОМИ РАН)        NP-полные задачи           1 марта 2013   19 / 31
Содержание



1    Задачи поиска


2    NP-полные задачи


3    Сведения




    А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   20 / 31
Сведения



Мы построим следующие сведения:


любая задача из NP → SAT → 3SAT → независимое множество →
                    вершинное покрытие, клика.




 А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   21 / 31
3-SAT → задача о независимом множестве




                y                   ¬y                   y         ¬y



       ¬x                ¬z   x              z       x       z     ¬x




            (¬x ∨ y ∨ ¬z)(x ∨ ¬y ∨ z)(x ∨ y ∨ z)(¬x ∨ ¬y )


 А. Куликов (ПОМИ РАН)            NP-полные задачи           1 марта 2013   22 / 31
SAT → 3-SAT




 А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   23 / 31
SAT → 3-SAT


    Это интересное и типичное сведение задачи к своему
    частному случаю.




 А. Куликов (ПОМИ РАН)   NP-полные задачи       1 марта 2013   23 / 31
SAT → 3-SAT


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




 А. Куликов (ПОМИ РАН)   NP-полные задачи      1 марта 2013   23 / 31
SAT → 3-SAT


    Это интересное и типичное сведение задачи к своему
    частному случаю.
    Мы хотим показать, что задача остается сложной, даже если
    ее входы как-то ограничены — в нашем случае, если все
    клозы содержат не более трех литералов.
    Такие сведения модифицируют входное условие так, чтобы
    избавиться от запрещенных конфигураций (клозов длины
    хотя бы четыре), не меняя при этом условия в том смысле,
    что решение для исходного условия можно построить из
    решения для полученного условия.



 А. Куликов (ПОМИ РАН)   NP-полные задачи      1 марта 2013   23 / 31
Конструкция


Каждый клоз (a1 ∨ a2 ∨ · · · ∨ ak ) длины более 3 заменяется на
множество клозов

(a1 ∨ a2 ∨ y1 )(¬y1 ∨ a3 ∨ y2 )(¬y2 ∨ a4 ∨ y3 ) . . . (¬yk−3 ∨ ak−1 ∨ ak ) ,

где {yi } суть новые переменные.




 А. Куликов (ПОМИ РАН)         NP-полные задачи            1 марта 2013   24 / 31
Конструкция


Каждый клоз (a1 ∨ a2 ∨ · · · ∨ ak ) длины более 3 заменяется на
множество клозов

(a1 ∨ a2 ∨ y1 )(¬y1 ∨ a3 ∨ y2 )(¬y2 ∨ a4 ∨ y3 ) . . . (¬yk−3 ∨ ak−1 ∨ ak ) ,

где {yi } суть новые переменные.
Для каждого набора переменным {ai } клоз (a1 ∨ a2 ∨ · · · ∨ ak )
выполнен тогда и только тогда, когда существует набор значений
переменным {yi }, выполняющий все соответствующие клозы.




 А. Куликов (ПОМИ РАН)         NP-полные задачи            1 марта 2013   24 / 31
Задача о независимом множестве →
задача о вершинном покрытии

S является вершинным покрытием тогда и только тогда, когда
V − S является независимым множеством:

                         S




 А. Куликов (ПОМИ РАН)       NP-полные задачи   1 марта 2013   25 / 31
Задача о независимом множестве →
задача о клике



Подмножество вершин S является независимым в G тогда и
                                        ¯
только тогда, когда S является кликой в G . Другими словами,
эти вершины попарно не соединены в G тогда и только тогда,
когда любые две из них соединены ребром в G .¯




 А. Куликов (ПОМИ РАН)    NP-полные задачи       1 марта 2013   26 / 31
Любая задача класса NP → SAT



Мы уже свели задачу SAT к нескольким задачам. Теперь мы
замыкаем круг и показываем, что все эти задачи — в
действительности все задачи класса NP — сводятся к SAT.
Именно, мы покажем, что все задачи класса NP сводятся к
обобщению задачи SAT, называемому задачей выполнимости
булевой схемы (CIRCUIT-SAT).




 А. Куликов (ПОМИ РАН)   NP-полные задачи    1 марта 2013   27 / 31
Пример схемы
                            выход


                            AND


                         NOT              OR


                         AND        OR            AND


                     true      x1          x2           x3

 А. Куликов (ПОМИ РАН)         NP-полные задачи              1 марта 2013   28 / 31
SAT ↔ CIRCUIT-SAT
    SAT → CIRCUIT-SAT: понятно.
    Обратно: запишем схему в виде формулы в КНФ. Для
    каждого гейта g мы заводим переменную g и моделируем
    этот гейт добавлением клозов следующим образом.
      g       g          g              g         g

      true     false          OR                        AND            NOT

      (g )      (g )

                         h1          h2            h1         h2         h
                           (g ∨ h1 )             (g ∨ h1 )    (g ∨ h)
                           (g ∨ h2 )             (g ∨ h2 )    (g ∨ h)
                         (g ∨ h1 ∨ h2 )        (g ∨ h1 ∨ h2 )

 А. Куликов (ПОМИ РАН)          NP-полные задачи                   1 марта 2013   29 / 31
Сведение




 А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   30 / 31
Сведение

    Теперь, когда мы знаем, что CIRCUIT SAT сводится к SAT,
    мы возвращаемся к нашей основной задаче — показать, что
    все задачи поиска сводятся к CIRCUIT SAT.




 А. Куликов (ПОМИ РАН)   NP-полные задачи     1 марта 2013   30 / 31
Сведение

    Теперь, когда мы знаем, что CIRCUIT SAT сводится к SAT,
    мы возвращаемся к нашей основной задаче — показать, что
    все задачи поиска сводятся к CIRCUIT SAT.
    Итак, предположим, что задача A принадлежит классу NP.
    Мы должны построить сведение A к CIRCUIT-SAT. Это
    кажется довольно сложным, поскольку мы не знаем
    практически ничего про A.




 А. Куликов (ПОМИ РАН)   NP-полные задачи     1 марта 2013   30 / 31
Сведение

    Теперь, когда мы знаем, что CIRCUIT SAT сводится к SAT,
    мы возвращаемся к нашей основной задаче — показать, что
    все задачи поиска сводятся к CIRCUIT SAT.
    Итак, предположим, что задача A принадлежит классу NP.
    Мы должны построить сведение A к CIRCUIT-SAT. Это
    кажется довольно сложным, поскольку мы не знаем
    практически ничего про A.
    Мы знаем, что для A есть алгоритм 𝒞, который по условию
    I и кандидату на решение S проверяет (за полиномиальное
    от I время!), верно ли, что S действительно является
    решением.



 А. Куликов (ПОМИ РАН)   NP-полные задачи     1 марта 2013   30 / 31
Сведение

    Теперь, когда мы знаем, что CIRCUIT SAT сводится к SAT,
    мы возвращаемся к нашей основной задаче — показать, что
    все задачи поиска сводятся к CIRCUIT SAT.
    Итак, предположим, что задача A принадлежит классу NP.
    Мы должны построить сведение A к CIRCUIT-SAT. Это
    кажется довольно сложным, поскольку мы не знаем
    практически ничего про A.
    Мы знаем, что для A есть алгоритм 𝒞, который по условию
    I и кандидату на решение S проверяет (за полиномиальное
    от I время!), верно ли, что S действительно является
    решением.
    Такой алгоритм можно преобразовать в схему,
    полиномиального от длины I размера.

 А. Куликов (ПОМИ РАН)   NP-полные задачи     1 марта 2013   30 / 31
Спасибо!




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




 А. Куликов (ПОМИ РАН)   NP-полные задачи   1 марта 2013   31 / 31

Mais conteúdo relacionado

Mais procurados

Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовTheoretical mechanics department
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахromovpa
 
Лекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировкиЛекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировкиMikhail Kurnosov
 
Лекция 11: Методы разработки алгоритмов. Метод декомпозиции
Лекция 11: Методы разработки алгоритмов. Метод декомпозицииЛекция 11: Методы разработки алгоритмов. Метод декомпозиции
Лекция 11: Методы разработки алгоритмов. Метод декомпозицииMikhail Kurnosov
 
разработка урока в.э. чернова
разработка урока в.э. черноваразработка урока в.э. чернова
разработка урока в.э. черноваAndreGus1964
 
пугач му по матлогике 2015
пугач му по матлогике 2015пугач му по матлогике 2015
пугач му по матлогике 2015LIPugach
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Technosphere1
 
экспертные системы
экспертные системыэкспертные системы
экспертные системыsokol_klinik
 
Лекция №11 "Основы нейронных сетей"
Лекция №11 "Основы нейронных сетей" Лекция №11 "Основы нейронных сетей"
Лекция №11 "Основы нейронных сетей" Technosphere1
 
Дмитрий Кропотов, ВМК МГУ, Группа Байесовских Методов, «Методы оптимизации бо...
Дмитрий Кропотов, ВМК МГУ, Группа Байесовских Методов, «Методы оптимизации бо...Дмитрий Кропотов, ВМК МГУ, Группа Байесовских Методов, «Методы оптимизации бо...
Дмитрий Кропотов, ВМК МГУ, Группа Байесовских Методов, «Методы оптимизации бо...Mail.ru Group
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовMikhail Kurnosov
 
Кванторные операции над предикатами. Формула логики предикатов. Тавтологии ло...
Кванторные операции над предикатами. Формула логики предикатов. Тавтологии ло...Кванторные операции над предикатами. Формула логики предикатов. Тавтологии ло...
Кванторные операции над предикатами. Формула логики предикатов. Тавтологии ло...Ильдус Ситдиков
 

Mais procurados (13)

Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементов
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системах
 
Лекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировкиЛекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировки
 
Лекция 11: Методы разработки алгоритмов. Метод декомпозиции
Лекция 11: Методы разработки алгоритмов. Метод декомпозицииЛекция 11: Методы разработки алгоритмов. Метод декомпозиции
Лекция 11: Методы разработки алгоритмов. Метод декомпозиции
 
Метод отдельных тел
Метод отдельных телМетод отдельных тел
Метод отдельных тел
 
разработка урока в.э. чернова
разработка урока в.э. черноваразработка урока в.э. чернова
разработка урока в.э. чернова
 
пугач му по матлогике 2015
пугач му по матлогике 2015пугач му по матлогике 2015
пугач му по матлогике 2015
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана"
 
экспертные системы
экспертные системыэкспертные системы
экспертные системы
 
Лекция №11 "Основы нейронных сетей"
Лекция №11 "Основы нейронных сетей" Лекция №11 "Основы нейронных сетей"
Лекция №11 "Основы нейронных сетей"
 
Дмитрий Кропотов, ВМК МГУ, Группа Байесовских Методов, «Методы оптимизации бо...
Дмитрий Кропотов, ВМК МГУ, Группа Байесовских Методов, «Методы оптимизации бо...Дмитрий Кропотов, ВМК МГУ, Группа Байесовских Методов, «Методы оптимизации бо...
Дмитрий Кропотов, ВМК МГУ, Группа Байесовских Методов, «Методы оптимизации бо...
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмов
 
Кванторные операции над предикатами. Формула логики предикатов. Тавтологии ло...
Кванторные операции над предикатами. Формула логики предикатов. Тавтологии ло...Кванторные операции над предикатами. Формула логики предикатов. Тавтологии ло...
Кванторные операции над предикатами. Формула логики предикатов. Тавтологии ло...
 

Mais de Computer Science Club

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

Mais de Computer Science Club (20)

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

20130301 np algorithms_kulikov_lecture01_np

  • 1. Алгоритмы для NP-трудных задач Лекция 1: NP-полные задачи Александр Куликов Петербургское отделение Математического института им. В. А. Стеклова Российская академия наук Computer Science клуб в Екатеринбурге 1 марта 2013 А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 1 / 31
  • 2. 1 Задачи поиска 2 NP-полные задачи 3 Сведения А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 2 / 31
  • 3. Содержание 1 Задачи поиска 2 NP-полные задачи 3 Сведения А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 3 / 31
  • 4. Эффективные алгоритмы А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 4 / 31
  • 5. Эффективные алгоритмы Алгоритмы нахождения кратчайших путей и минимальных покрывающих деревьев в графах, паросочетаний в двудольных графах, наибольшей возрастающей подпоследовательности, максимального потока в сети являются эффективными, поскольку время работы каждого из них растет полиномиально (как n, n2 , n3 ) с ростом размера входа. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 4 / 31
  • 6. Эффективные алгоритмы Алгоритмы нахождения кратчайших путей и минимальных покрывающих деревьев в графах, паросочетаний в двудольных графах, наибольшей возрастающей подпоследовательности, максимального потока в сети являются эффективными, поскольку время работы каждого из них растет полиномиально (как n, n2 , n3 ) с ростом размера входа. В каждой из решаемых ими задач мы ищем решение (путь, дерево, паросочетание) среди экспоненциально большого множества кандидатов: существует n! различных паросочетаний в двудольном n × n графе, у полного графа на n вершинах есть nn−2 покрывающих деревьев, в графе, как правило, есть экспоненциальное число путей из s в t. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 4 / 31
  • 7. Эффективные алгоритмы Алгоритмы нахождения кратчайших путей и минимальных покрывающих деревьев в графах, паросочетаний в двудольных графах, наибольшей возрастающей подпоследовательности, максимального потока в сети являются эффективными, поскольку время работы каждого из них растет полиномиально (как n, n2 , n3 ) с ростом размера входа. В каждой из решаемых ими задач мы ищем решение (путь, дерево, паросочетание) среди экспоненциально большого множества кандидатов: существует n! различных паросочетаний в двудольном n × n графе, у полного графа на n вершинах есть nn−2 покрывающих деревьев, в графе, как правило, есть экспоненциальное число путей из s в t. Цель эффективного алгоритма: избежать полного перебора. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 4 / 31
  • 8. Задача выполнимости А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 5 / 31
  • 9. Задача выполнимости Вход задачи пропозициональной выполнимости (satisfiability problem, SAT) выглядит следующим образом: (x ∨ y ∨ z)(x ∨ ¬y )(y ∨ ¬z)(z ∨ ¬x)(¬x ∨ ¬y ∨ ¬z) . А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 5 / 31
  • 10. Задача выполнимости Вход задачи пропозициональной выполнимости (satisfiability problem, SAT) выглядит следующим образом: (x ∨ y ∨ z)(x ∨ ¬y )(y ∨ ¬z)(z ∨ ¬x)(¬x ∨ ¬y ∨ ¬z) . Необходимо проверить, выполнима ли формула. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 5 / 31
  • 11. Задача поиска А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 6 / 31
  • 12. Задача поиска Задача выполнимости является типичной задачей поиска: дано условие I и надо найти для него решение S. При этом должен существовать способ быстрой проверки того, что решение правильное. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 6 / 31
  • 13. Задача поиска Задача выполнимости является типичной задачей поиска: дано условие I и надо найти для него решение S. При этом должен существовать способ быстрой проверки того, что решение правильное. Будем говорить, что задача поиска задаётся алгоритмом 𝒞, который получает на вход условие I и кандидата на решение S и работает полиномиальное от |I | время. Мы говорим, что S является решением для I тогда и только тогда, когда 𝒞(I , S) = true. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 6 / 31
  • 14. Задача поиска А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 7 / 31
  • 15. Задача коммивояжёра А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 8 / 31
  • 16. Задача коммивояжёра В задаче о коммивояжере (traveling salesman problem) дано n вершин с номерами 1, . . . , n и все n(n − 1)/2 попарных расстояний между ними, а также бюджет b. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 8 / 31
  • 17. Задача коммивояжёра В задаче о коммивояжере (traveling salesman problem) дано n вершин с номерами 1, . . . , n и все n(n − 1)/2 попарных расстояний между ними, а также бюджет b. Найти необходимо цикл, проходящий через все вершины ровно по одному разу (то есть гамильтонов цикл) и имеющий длину не более b, или же сообщить, что такого цикла нет. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 8 / 31
  • 18. Задача коммивояжёра В задаче о коммивояжере (traveling salesman problem) дано n вершин с номерами 1, . . . , n и все n(n − 1)/2 попарных расстояний между ними, а также бюджет b. Найти необходимо цикл, проходящий через все вершины ровно по одному разу (то есть гамильтонов цикл) и имеющий длину не более b, или же сообщить, что такого цикла нет. Другими словами, необходимо найти перестановку 𝜏 (1), . . . , 𝜏 (n) вершин, такую что d 𝜏 (1),𝜏 (2) + d 𝜏 (2),𝜏 (3) + · · · + d 𝜏 (n),𝜏 (1) ≤ b . А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 8 / 31
  • 19. Пример 5 3 2 3 3 4 1 4 3 2 6 А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 9 / 31
  • 20. Пример 5 3 2 3 3 4 1 4 3 2 6 А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 9 / 31
  • 21. Оптимизационные задачи и задачи поиска А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 10 / 31
  • 22. Оптимизационные задачи и задачи поиска Почему мы сформулировали задачу о коммивояжере как задачу поиска, когда на самом деле это оптимизационная задача? А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 10 / 31
  • 23. Оптимизационные задачи и задачи поиска Почему мы сформулировали задачу о коммивояжере как задачу поиска, когда на самом деле это оптимизационная задача? Переформулировка оптимизационной задачи как задачи поиска не меняет ее сложности, поскольку обе версии сводятся друг к другу. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 10 / 31
  • 24. Оптимизационные задачи и задачи поиска Почему мы сформулировали задачу о коммивояжере как задачу поиска, когда на самом деле это оптимизационная задача? Переформулировка оптимизационной задачи как задачи поиска не меняет ее сложности, поскольку обе версии сводятся друг к другу. Имея потенциальное решение для задачи TSP, легко проверить свойства “является маршрутом” и “имеет длину не более b”, но как проверить свойство “является оптимальным”? А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 10 / 31
  • 25. Коммивояжёр и покрывающее дерево А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 11 / 31
  • 26. Коммивояжёр и покрывающее дерево Задача о минимальном покрывающем дереве: дана матрица попарных расстояний и бюджет b и требуется найти дерево T , такое что ∑︁ dij ≤ b . (i,j)∈T А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 11 / 31
  • 27. Коммивояжёр и покрывающее дерево Задача о минимальном покрывающем дереве: дана матрица попарных расстояний и бюджет b и требуется найти дерево T , такое что ∑︁ dij ≤ b . (i,j)∈T Задача коммивояжёра может рассматриваться как вариант задачи о покрывающем дереве, где искомому дереву не разрешается ветвиться и оно, таким образом, должно быть просто путем. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 11 / 31
  • 28. Коммивояжёр и покрывающее дерево Задача о минимальном покрывающем дереве: дана матрица попарных расстояний и бюджет b и требуется найти дерево T , такое что ∑︁ dij ≤ b . (i,j)∈T Задача коммивояжёра может рассматриваться как вариант задачи о покрывающем дереве, где искомому дереву не разрешается ветвиться и оно, таким образом, должно быть просто путем. Это дополнительное условие на структуру дерева делает задачу гораздо более сложной. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 11 / 31
  • 29. Незавсисмое множество, вершинное покрытие и клика А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 12 / 31
  • 30. Незавсисмое множество, вершинное покрытие и клика В задаче о независимом множестве (independent set problem) дан граф и число g и требуется найти g независимых вершин, то есть таких, что никакие две из них не соединены ребром. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 12 / 31
  • 31. Незавсисмое множество, вершинное покрытие и клика В задаче о независимом множестве (independent set problem) дан граф и число g и требуется найти g независимых вершин, то есть таких, что никакие две из них не соединены ребром. В задаче о вершинном покрытии (vertex cover problem) дан граф и число b, и требуется найти b вершин, покрывающих все ребра (то есть такое множество из b вершин, что для любого ребра хотя бы один из его концов содержится в этом множестве). А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 12 / 31
  • 32. Незавсисмое множество, вершинное покрытие и клика В задаче о независимом множестве (independent set problem) дан граф и число g и требуется найти g независимых вершин, то есть таких, что никакие две из них не соединены ребром. В задаче о вершинном покрытии (vertex cover problem) дан граф и число b, и требуется найти b вершин, покрывающих все ребра (то есть такое множество из b вершин, что для любого ребра хотя бы один из его концов содержится в этом множестве). Задача о клике (clique problem) заключается в нахождении по графу и числу g таких g вершин, что любые две из них соединены ребром. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 12 / 31
  • 33. Содержание 1 Задачи поиска 2 NP-полные задачи 3 Сведения А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 13 / 31
  • 34. Сложные и простые задачи трудные задачи (NP-полные) простые задачи (из P) 3-SAT 2-SAT, Horn SAT коммивояжёр покрывающее дерево независимое множество независимое множество в деревьях А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 14 / 31
  • 35. Классы P и NP А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 15 / 31
  • 36. Классы P и NP NP — класс всех задач поиска. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 15 / 31
  • 37. Классы P и NP NP — класс всех задач поиска. P — класс всех задач поиска, которые могут быть решены за полиномиальное время. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 15 / 31
  • 38. Сведения Свед´ние задачи поиска A к задаче поиска B — это пара е полиномиальных по времени алгоритмов (f , h): А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 16 / 31
  • 39. Сведения Свед´ние задачи поиска A к задаче поиска B — это пара е полиномиальных по времени алгоритмов (f , h): решение S для f (I ) h решение h(S) для I условие I условие f (I ) f алгоритм для B нет решения для f (I ) нет решения для I А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 16 / 31
  • 40. NP-полные задачи А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 17 / 31
  • 41. NP-полные задачи Задача поиска называется NP-полной (NP-complete), если все другие задачи поиска сводятся к ней. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 17 / 31
  • 42. NP-полные задачи Задача поиска называется NP-полной (NP-complete), если все другие задачи поиска сводятся к ней. Чтобы задача была NP-полной, с ее помощью должны решаться все задачи поиска в мире! А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 17 / 31
  • 43. NP-полные задачи Задача поиска называется NP-полной (NP-complete), если все другие задачи поиска сводятся к ней. Чтобы задача была NP-полной, с ее помощью должны решаться все задачи поиска в мире! Удивительно, что такие задачи существуют вообще. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 17 / 31
  • 44. Два способа использования сведений Задача поиска A сводится к задаче поиска B: А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 18 / 31
  • 45. Два способа использования сведений Задача поиска A сводится к задаче поиска B: Мы знаем, как эффективно решать B и хотим использовать это знание для решения A. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 18 / 31
  • 46. Два способа использования сведений Задача поиска A сводится к задаче поиска B: Мы знаем, как эффективно решать B и хотим использовать это знание для решения A. Мы знаем, что A трудна, и используем сведение, чтобы показать, что и B трудна. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 18 / 31
  • 47. Пространство NP всех задач поиска в предположении P ̸= NP P NP-полные увеличение сложности А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 19 / 31
  • 48. Содержание 1 Задачи поиска 2 NP-полные задачи 3 Сведения А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 20 / 31
  • 49. Сведения Мы построим следующие сведения: любая задача из NP → SAT → 3SAT → независимое множество → вершинное покрытие, клика. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 21 / 31
  • 50. 3-SAT → задача о независимом множестве y ¬y y ¬y ¬x ¬z x z x z ¬x (¬x ∨ y ∨ ¬z)(x ∨ ¬y ∨ z)(x ∨ y ∨ z)(¬x ∨ ¬y ) А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 22 / 31
  • 51. SAT → 3-SAT А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 23 / 31
  • 52. SAT → 3-SAT Это интересное и типичное сведение задачи к своему частному случаю. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 23 / 31
  • 53. SAT → 3-SAT Это интересное и типичное сведение задачи к своему частному случаю. Мы хотим показать, что задача остается сложной, даже если ее входы как-то ограничены — в нашем случае, если все клозы содержат не более трех литералов. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 23 / 31
  • 54. SAT → 3-SAT Это интересное и типичное сведение задачи к своему частному случаю. Мы хотим показать, что задача остается сложной, даже если ее входы как-то ограничены — в нашем случае, если все клозы содержат не более трех литералов. Такие сведения модифицируют входное условие так, чтобы избавиться от запрещенных конфигураций (клозов длины хотя бы четыре), не меняя при этом условия в том смысле, что решение для исходного условия можно построить из решения для полученного условия. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 23 / 31
  • 55. Конструкция Каждый клоз (a1 ∨ a2 ∨ · · · ∨ ak ) длины более 3 заменяется на множество клозов (a1 ∨ a2 ∨ y1 )(¬y1 ∨ a3 ∨ y2 )(¬y2 ∨ a4 ∨ y3 ) . . . (¬yk−3 ∨ ak−1 ∨ ak ) , где {yi } суть новые переменные. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 24 / 31
  • 56. Конструкция Каждый клоз (a1 ∨ a2 ∨ · · · ∨ ak ) длины более 3 заменяется на множество клозов (a1 ∨ a2 ∨ y1 )(¬y1 ∨ a3 ∨ y2 )(¬y2 ∨ a4 ∨ y3 ) . . . (¬yk−3 ∨ ak−1 ∨ ak ) , где {yi } суть новые переменные. Для каждого набора переменным {ai } клоз (a1 ∨ a2 ∨ · · · ∨ ak ) выполнен тогда и только тогда, когда существует набор значений переменным {yi }, выполняющий все соответствующие клозы. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 24 / 31
  • 57. Задача о независимом множестве → задача о вершинном покрытии S является вершинным покрытием тогда и только тогда, когда V − S является независимым множеством: S А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 25 / 31
  • 58. Задача о независимом множестве → задача о клике Подмножество вершин S является независимым в G тогда и ¯ только тогда, когда S является кликой в G . Другими словами, эти вершины попарно не соединены в G тогда и только тогда, когда любые две из них соединены ребром в G .¯ А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 26 / 31
  • 59. Любая задача класса NP → SAT Мы уже свели задачу SAT к нескольким задачам. Теперь мы замыкаем круг и показываем, что все эти задачи — в действительности все задачи класса NP — сводятся к SAT. Именно, мы покажем, что все задачи класса NP сводятся к обобщению задачи SAT, называемому задачей выполнимости булевой схемы (CIRCUIT-SAT). А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 27 / 31
  • 60. Пример схемы выход AND NOT OR AND OR AND true x1 x2 x3 А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 28 / 31
  • 61. SAT ↔ CIRCUIT-SAT SAT → CIRCUIT-SAT: понятно. Обратно: запишем схему в виде формулы в КНФ. Для каждого гейта g мы заводим переменную g и моделируем этот гейт добавлением клозов следующим образом. g g g g g true false OR AND NOT (g ) (g ) h1 h2 h1 h2 h (g ∨ h1 ) (g ∨ h1 ) (g ∨ h) (g ∨ h2 ) (g ∨ h2 ) (g ∨ h) (g ∨ h1 ∨ h2 ) (g ∨ h1 ∨ h2 ) А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 29 / 31
  • 62. Сведение А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 30 / 31
  • 63. Сведение Теперь, когда мы знаем, что CIRCUIT SAT сводится к SAT, мы возвращаемся к нашей основной задаче — показать, что все задачи поиска сводятся к CIRCUIT SAT. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 30 / 31
  • 64. Сведение Теперь, когда мы знаем, что CIRCUIT SAT сводится к SAT, мы возвращаемся к нашей основной задаче — показать, что все задачи поиска сводятся к CIRCUIT SAT. Итак, предположим, что задача A принадлежит классу NP. Мы должны построить сведение A к CIRCUIT-SAT. Это кажется довольно сложным, поскольку мы не знаем практически ничего про A. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 30 / 31
  • 65. Сведение Теперь, когда мы знаем, что CIRCUIT SAT сводится к SAT, мы возвращаемся к нашей основной задаче — показать, что все задачи поиска сводятся к CIRCUIT SAT. Итак, предположим, что задача A принадлежит классу NP. Мы должны построить сведение A к CIRCUIT-SAT. Это кажется довольно сложным, поскольку мы не знаем практически ничего про A. Мы знаем, что для A есть алгоритм 𝒞, который по условию I и кандидату на решение S проверяет (за полиномиальное от I время!), верно ли, что S действительно является решением. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 30 / 31
  • 66. Сведение Теперь, когда мы знаем, что CIRCUIT SAT сводится к SAT, мы возвращаемся к нашей основной задаче — показать, что все задачи поиска сводятся к CIRCUIT SAT. Итак, предположим, что задача A принадлежит классу NP. Мы должны построить сведение A к CIRCUIT-SAT. Это кажется довольно сложным, поскольку мы не знаем практически ничего про A. Мы знаем, что для A есть алгоритм 𝒞, который по условию I и кандидату на решение S проверяет (за полиномиальное от I время!), верно ли, что S действительно является решением. Такой алгоритм можно преобразовать в схему, полиномиального от длины I размера. А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 30 / 31
  • 67. Спасибо! Спасибо за внимание! А. Куликов (ПОМИ РАН) NP-полные задачи 1 марта 2013 31 / 31