SlideShare a Scribd company logo
Алгоритмы для NP-трудных задач
                    Лекция 11: FPT-алгоритмы

                                         А. Куликов

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




А. Куликов (Computer Science клуб)      11. FPT-алгоритмы           1 / 24
План лекции



  1   Лемма о подсолнухе
        Задача о минимальном множестве представителей




А. Куликов (Computer Science клуб)   11. FPT-алгоритмы   2 / 24
План лекции



  1   Лемма о подсолнухе
        Задача о минимальном множестве представителей


  2   Динамическое программирование
        Steiner tree problem




А. Куликов (Computer Science клуб)   11. FPT-алгоритмы   2 / 24
План лекции



  1   Лемма о подсолнухе
        Задача о минимальном множестве представителей


  2   Динамическое программирование
        Steiner tree problem


  3   Итеративное сжатие
        Задача об удалении нечетных циклов




А. Куликов (Computer Science клуб)   11. FPT-алгоритмы   2 / 24
Лемма о подсолнухе


 План лекции



  1   Лемма о подсолнухе
        Задача о минимальном множестве представителей


  2   Динамическое программирование
        Steiner tree problem


  3   Итеративное сжатие
        Задача об удалении нечетных циклов




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы   3 / 24
Лемма о подсолнухе


 Лемма о подсолнухе


  Определение
  Подсолнухом с k лепестками (sunflower with k petals) называется
  семейство из k (конечных) множеств, пересечения любых двух их
  которых совпадают. Это пересечение называется центром (core)
  цветка:
                   Si ∩ Sj = C для всех 1 ≤ i < j ≤ k .




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы         4 / 24
Лемма о подсолнухе


 Лемма о подсолнухе


  Определение
  Подсолнухом с k лепестками (sunflower with k petals) называется
  семейство из k (конечных) множеств, пересечения любых двух их
  которых совпадают. Это пересечение называется центром (core)
  цветка:
                   Si ∩ Sj = C для всех 1 ≤ i < j ≤ k .

  Лемма о подсолнухе (Sunflower Lemma)
  В любом семействе, состоящем из более чем s!(k − 1)s множеств
  размера не более s, найдется подсолнух с хотя бы k лепестками.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы         4 / 24
Лемма о подсолнухе


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




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы   5 / 24
Лемма о подсолнухе


 Доказательство
        Индукция по s.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы   5 / 24
Лемма о подсолнухе


 Доказательство
        Индукция по s.
        При s = 1 есть более k − 1 одноэлементных множеств. Любые k
        из них составляют подсолнух (с пустым центром).




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы       5 / 24
Лемма о подсолнухе


 Доказательство
        Индукция по s.
        При s = 1 есть более k − 1 одноэлементных множеств. Любые k
        из них составляют подсолнух (с пустым центром).
        Пусть теперь s ≥ 2 и ℱ — семейство, содержащее более s!(k − 1)s
        множеств размера не более s.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы         5 / 24
Лемма о подсолнухе


 Доказательство
        Индукция по s.
        При s = 1 есть более k − 1 одноэлементных множеств. Любые k
        из них составляют подсолнух (с пустым центром).
        Пусть теперь s ≥ 2 и ℱ — семейство, содержащее более s!(k − 1)s
        множеств размера не более s.
        Рассмотрим максимальное семейство попарно не пересекающихся
        множеств ������ = {A1 , . . . , At }.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы         5 / 24
Лемма о подсолнухе


 Доказательство
        Индукция по s.
        При s = 1 есть более k − 1 одноэлементных множеств. Любые k
        из них составляют подсолнух (с пустым центром).
        Пусть теперь s ≥ 2 и ℱ — семейство, содержащее более s!(k − 1)s
        множеств размера не более s.
        Рассмотрим максимальное семейство попарно не пересекающихся
        множеств ������ = {A1 , . . . , At }.
        Если t ≥ k, то необходимый подсолнух найден.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы         5 / 24
Лемма о подсолнухе


 Доказательство
        Индукция по s.
        При s = 1 есть более k − 1 одноэлементных множеств. Любые k
        из них составляют подсолнух (с пустым центром).
        Пусть теперь s ≥ 2 и ℱ — семейство, содержащее более s!(k − 1)s
        множеств размера не более s.
        Рассмотрим максимальное семейство попарно не пересекающихся
        множеств ������ = {A1 , . . . , At }.
        Если t ≥ k, то необходимый подсолнух найден.
        Пусть t ≤ k − 1 и B = A1 ∪ · · · ∪ At . Тогда |B| ≤ s(k − 1) и B
        пересекает любое множество семейства ℱ.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы          5 / 24
Лемма о подсолнухе


 Доказательство
        Индукция по s.
        При s = 1 есть более k − 1 одноэлементных множеств. Любые k
        из них составляют подсолнух (с пустым центром).
        Пусть теперь s ≥ 2 и ℱ — семейство, содержащее более s!(k − 1)s
        множеств размера не более s.
        Рассмотрим максимальное семейство попарно не пересекающихся
        множеств ������ = {A1 , . . . , At }.
        Если t ≥ k, то необходимый подсолнух найден.
        Пусть t ≤ k − 1 и B = A1 ∪ · · · ∪ At . Тогда |B| ≤ s(k − 1) и B
        пересекает любое множество семейства ℱ.
        Значит, найдется элемент x ∈ B, содержащийся в хотя бы
                             |ℱ|   s!(k − 1)s
                                 >            = (s − 1)!(k − 1)s−1
                             |B|    s(k − 1)
        множествах семейства ℱ.
А. Куликов (Computer Science клуб)        11. FPT-алгоритмы          5 / 24
Лемма о подсолнухе


 Доказательство (продолжение)




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы   6 / 24
Лемма о подсолнухе


 Доказательство (продолжение)




        По индукционному предположению семейство

                                     ℱx = {S ∖ {x} | S ∈ ℱ, x ∈ S}

        содержит подсолнух с k лепестками.




А. Куликов (Computer Science клуб)         11. FPT-алгоритмы         6 / 24
Лемма о подсолнухе


 Доказательство (продолжение)




        По индукционному предположению семейство

                                     ℱx = {S ∖ {x} | S ∈ ℱ, x ∈ S}

        содержит подсолнух с k лепестками.
        Добавив x к множествам этого подсолнуха, получим подсолнух
        исходного семейства.




А. Куликов (Computer Science клуб)         11. FPT-алгоритмы         6 / 24
Лемма о подсолнухе   Задача о минимальном множестве представителей


 План лекции



  1   Лемма о подсолнухе
        Задача о минимальном множестве представителей


  2   Динамическое программирование
        Steiner tree problem


  3   Итеративное сжатие
        Задача об удалении нечетных циклов




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                                     7 / 24
Лемма о подсолнухе   Задача о минимальном множестве представителей


 Задача о d-множестве представителей




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                                     8 / 24
Лемма о подсолнухе   Задача о минимальном множестве представителей


 Задача о d-множестве представителей



        В задаче о d -множестве представителей (d -hitting set problem) по
        данному семейству множеств размера не более d каждое
        необходимо найти множество из не более k элементов,
        пересекающее каждое множество семейства.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                                     8 / 24
Лемма о подсолнухе   Задача о минимальном множестве представителей


 Задача о d-множестве представителей



        В задаче о d -множестве представителей (d -hitting set problem) по
        данному семейству множеств размера не более d каждое
        необходимо найти множество из не более k элементов,
        пересекающее каждое множество семейства.
        Правило упрощения: если k + 1 множество образуют подсолнух,
        заменить их всех на центр цвета. Если подсолнуха нет, то
        семейство содержит не более O(k d ) множеств.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                                     8 / 24
Лемма о подсолнухе   Задача о минимальном множестве представителей


 Задача о d-множестве представителей



        В задаче о d -множестве представителей (d -hitting set problem) по
        данному семейству множеств размера не более d каждое
        необходимо найти множество из не более k элементов,
        пересекающее каждое множество семейства.
        Правило упрощения: если k + 1 множество образуют подсолнух,
        заменить их всех на центр цвета. Если подсолнуха нет, то
        семейство содержит не более O(k d ) множеств.
        Получили ядро для задачи о минимальном множестве
        представителей, а значит, она принадлежит классу FPT.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                                     8 / 24
Динамическое программирование


 План лекции



  1   Лемма о подсолнухе
        Задача о минимальном множестве представителей


  2   Динамическое программирование
        Steiner tree problem


  3   Итеративное сжатие
        Задача об удалении нечетных циклов




А. Куликов (Computer Science клуб)       11. FPT-алгоритмы   9 / 24
Динамическое программирование   Steiner tree problem


 План лекции



  1   Лемма о подсолнухе
        Задача о минимальном множестве представителей


  2   Динамическое программирование
        Steiner tree problem


  3   Итеративное сжатие
        Задача об удалении нечетных циклов




А. Куликов (Computer Science клуб)       11. FPT-алгоритмы                 10 / 24
Динамическое программирование   Steiner tree problem


 Steiner tree problem




А. Куликов (Computer Science клуб)       11. FPT-алгоритмы                 11 / 24
Динамическое программирование   Steiner tree problem


 Steiner tree problem
        Steiner tree problem заключается в нахождении по данному графу
        G и множеству S из k его вершин дерева T минимального веса,
        содержащего все вершины множества S. Вершины множества S
        называются терминалами (termianl).




А. Куликов (Computer Science клуб)       11. FPT-алгоритмы                 11 / 24
Динамическое программирование   Steiner tree problem


 Steiner tree problem
        Steiner tree problem заключается в нахождении по данному графу
        G и множеству S из k его вершин дерева T минимального веса,
        содержащего все вершины множества S. Вершины множества S
        называются терминалами (termianl).




        Задача очень похожа на задачу от минимальном покрывающем
        дереве, но, в отличие от последней, NP-трудна.


А. Куликов (Computer Science клуб)       11. FPT-алгоритмы                 11 / 24
Динамическое программирование   Steiner tree problem


 Steiner tree problem
        Steiner tree problem заключается в нахождении по данному графу
        G и множеству S из k его вершин дерева T минимального веса,
        содержащего все вершины множества S. Вершины множества S
        называются терминалами (termianl).




        Задача очень похожа на задачу от минимальном покрывающем
        дереве, но, в отличие от последней, NP-трудна.
        Мы покажем, что при параметризации k = |S| она принадлежит
        классу FPT.
А. Куликов (Computer Science клуб)       11. FPT-алгоритмы                 11 / 24
Динамическое программирование   Steiner tree problem


 Решение методом динамического программирования




  Лемма
  Для v ∈ V и X ⊆ S пусть c(v , X ) — минимальная стоимость дерева
  для X , содержащего v , d (u, v ) — расстояние от u до v . Тогда

         c(v , X ) =         min        c(u, X ′ ∖ u) + c(u, X ∖ X ′ ∖ u) + d (u, v ).
                        u∈V ,∅⊂X ′ ⊂X




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                              12 / 24
Динамическое программирование   Steiner tree problem


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


         c(v , X ) =         min        c(u, X ′ ∖ u) + c(u, X ∖ X ′ ∖ u) + d (u, v ).
                        u∈V ,∅⊂X ′ ⊂X




                                                    u


                                             v

  ≤: Дерево T1 , на котором достигается c(u, X ′ ∖ u), дерево T2 , на
  котором достигается c(u, X ∖ X ′ ∖ u), и путь из u в v дают в
  объединении дерево, содержащее все вершины множества X и v .

А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                              13 / 24
Динамическое программирование   Steiner tree problem


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




                                                    u


                                            v

  ≤: Пусть на дереве T достигается c(v , X ) и пусть T ′ — его
  минимальное дерево, покрывающее X . Пусть u — вершина T ′ ,
  ближайшая к v . Найдется компонента в T ∖ u, содержащая
  подмножество терминалов ∅ ⊂ X ′ ⊂ X . Значит, T есть объединение
  дерева, содержащего X ′ ∖ u и u, дерева, содержащего X ∖ X ′ ∖ u и u, и
  пути из u в v .
А. Куликов (Computer Science клуб)       11. FPT-алгоритмы                 14 / 24
Динамическое программирование   Steiner tree problem


 Алгоритм




А. Куликов (Computer Science клуб)       11. FPT-алгоритмы                 15 / 24
Динамическое программирование   Steiner tree problem


 Алгоритм



        Итак, достаточно заполнить матрицу размера 2k |V | в порядке
        возрастания размера |X |.




А. Куликов (Computer Science клуб)       11. FPT-алгоритмы                 15 / 24
Динамическое программирование   Steiner tree problem


 Алгоритм



        Итак, достаточно заполнить матрицу размера 2k |V | в порядке
        возрастания размера |X |.
        Для вычисления значения c(v , X ) необходимо перебрать 2|X |
        значений.




А. Куликов (Computer Science клуб)       11. FPT-алгоритмы                 15 / 24
Динамическое программирование         Steiner tree problem


 Алгоритм



        Итак, достаточно заполнить матрицу размера 2k |V | в порядке
        возрастания размера |X |.
        Для вычисления значения c(v , X ) необходимо перебрать 2|X |
        значений.
        Время работы:

                              ∑︁                   k
                                                  ∑︁ (︂k )︂
                                         |X |
                                     2          =          2i ≤ (1 + 2)k = 3k
                                                       i
                             X ⊆S                 i=1




А. Куликов (Computer Science клуб)               11. FPT-алгоритмы               15 / 24
Итеративное сжатие


 План лекции



  1   Лемма о подсолнухе
        Задача о минимальном множестве представителей


  2   Динамическое программирование
        Steiner tree problem


  3   Итеративное сжатие
        Задача об удалении нечетных циклов




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы   16 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 План лекции



  1   Лемма о подсолнухе
        Задача о минимальном множестве представителей


  2   Динамическое программирование
        Steiner tree problem


  3   Итеративное сжатие
        Задача об удалении нечетных циклов




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               17 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Задача об удалении нечетных циклов




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               18 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Задача об удалении нечетных циклов



        Задача об удалении нечетных циклов (odd cycle transversal
        problem, bipartite deletion problem, graph bipartization problem)
        заключается в проверке по данному графу G и числу k
        существования в графе таких k вершин, после удаления которых
        граф становится двудольным. Такое множество вершин S
        называется секущим (odd cycle transversal).




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               18 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Задача об удалении нечетных циклов



        Задача об удалении нечетных циклов (odd cycle transversal
        problem, bipartite deletion problem, graph bipartization problem)
        заключается в проверке по данному графу G и числу k
        существования в графе таких k вершин, после удаления которых
        граф становится двудольным. Такое множество вершин S
        называется секущим (odd cycle transversal).
        Compression version задачи об удалении нечетных циклов: дан
        граф G и его секущее множество S размера k + 1 и необходимо
        проверить, есть ли у G секущее множество размера k.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               18 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Итеративное сжатие




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               19 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Итеративное сжатие



        Построив алгоритм Compression для compression version задачи
        об удалении нечетных циклов со временем работы f (k)nc , мы
        сможем решить исходную задачу за f (k)nc+1 .




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               19 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Итеративное сжатие



        Построив алгоритм Compression для compression version задачи
        об удалении нечетных циклов со временем работы f (k)nc , мы
        сможем решить исходную задачу за f (k)nc+1 .
        Пусть V = {v1 , . . . , vn } и Gi = G [Vi ].




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               19 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Итеративное сжатие



        Построив алгоритм Compression для compression version задачи
        об удалении нечетных циклов со временем работы f (k)nc , мы
        сможем решить исходную задачу за f (k)nc+1 .
        Пусть V = {v1 , . . . , vn } и Gi = G [Vi ].
        Простые замечания:




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               19 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Итеративное сжатие



        Построив алгоритм Compression для compression version задачи
        об удалении нечетных циклов со временем работы f (k)nc , мы
        сможем решить исходную задачу за f (k)nc+1 .
        Пусть V = {v1 , . . . , vn } и Gi = G [Vi ].
        Простые замечания:
               если S является секущим для G , то оно является секущим для
               всех Gi ;




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               19 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Итеративное сжатие



        Построив алгоритм Compression для compression version задачи
        об удалении нечетных циклов со временем работы f (k)nc , мы
        сможем решить исходную задачу за f (k)nc+1 .
        Пусть V = {v1 , . . . , vn } и Gi = G [Vi ].
        Простые замечания:
               если S является секущим для G , то оно является секущим для
               всех Gi ;
               если S является секущим для Gi , то S ∪ {vi+1 } является секущим
               для Gi+1 ;




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               19 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Итеративное сжатие



        Построив алгоритм Compression для compression version задачи
        об удалении нечетных циклов со временем работы f (k)nc , мы
        сможем решить исходную задачу за f (k)nc+1 .
        Пусть V = {v1 , . . . , vn } и Gi = G [Vi ].
        Простые замечания:
               если S является секущим для G , то оно является секущим для
               всех Gi ;
               если S является секущим для Gi , то S ∪ {vi+1 } является секущим
               для Gi+1 ;
               Vk — секущее для Gk .




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               19 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Итеративное сжатие




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               20 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Итеративное сжатие



        Запустим Compression(Gk+1 , Vk+1 , k).




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               20 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Итеративное сжатие



        Запустим Compression(Gk+1 , Vk+1 , k).
        Если ответом будет “нет”, то секущего множества размера k нет и
        для исходного графа.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               20 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Итеративное сжатие



        Запустим Compression(Gk+1 , Vk+1 , k).
        Если ответом будет “нет”, то секущего множества размера k нет и
        для исходного графа.
        Если же ответом будет секущее множество Sk+1 размера k, то
        запустим Compression(Gk+2 , Sk+1 ∪ {vk+2 }, k).




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               20 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Итеративное сжатие



        Запустим Compression(Gk+1 , Vk+1 , k).
        Если ответом будет “нет”, то секущего множества размера k нет и
        для исходного графа.
        Если же ответом будет секущее множество Sk+1 размера k, то
        запустим Compression(Gk+2 , Sk+1 ∪ {vk+2 }, k).
        И так далее до Gn .




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               20 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Итеративное сжатие



        Запустим Compression(Gk+1 , Vk+1 , k).
        Если ответом будет “нет”, то секущего множества размера k нет и
        для исходного графа.
        Если же ответом будет секущее множество Sk+1 размера k, то
        запустим Compression(Gk+2 , Sk+1 ∪ {vk+2 }, k).
        И так далее до Gn .
        Мы предъявим алгоритм, решающий compression version за время
        O(3k k|E |).




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               20 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Решение compression version




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               21 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Решение compression version
        Итак, пусть дан граф G и его секущее множество S ′ размера k + 1
        и необходимо проверить, есть ли секущее множество S размера k.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               21 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Решение compression version
        Итак, пусть дан граф G и его секущее множество S ′ размера k + 1
        и необходимо проверить, есть ли секущее множество S размера k.
        Расщепимся на 3k+1 случай: каждая вершина множества S ′
        должна принадлежать либо S, либо одной из двух долей.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               21 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Решение compression version
        Итак, пусть дан граф G и его секущее множество S ′ размера k + 1
        и необходимо проверить, есть ли секущее множество S размера k.
        Расщепимся на 3k+1 случай: каждая вершина множества S ′
        должна принадлежать либо S, либо одной из двух долей.
        В каждом из случаев у нас некоторые вершины графа уже
        принадлежат искомому секущему множеству S, некоторые уже
        покрашены в белый цвет, некоторые — в черный. Ясно, что в
        искомой раскраске графа G ∖ S все соседи уже покрашенных
        черных вершин должны быть белыми, а все соседи уже
        покрашенных белых — черными.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               21 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Решение compression version
        Итак, пусть дан граф G и его секущее множество S ′ размера k + 1
        и необходимо проверить, есть ли секущее множество S размера k.
        Расщепимся на 3k+1 случай: каждая вершина множества S ′
        должна принадлежать либо S, либо одной из двух долей.
        В каждом из случаев у нас некоторые вершины графа уже
        принадлежат искомому секущему множеству S, некоторые уже
        покрашены в белый цвет, некоторые — в черный. Ясно, что в
        искомой раскраске графа G ∖ S все соседи уже покрашенных
        черных вершин должны быть белыми, а все соседи уже
        покрашенных белых — черными.
        Достаточно показать, что следующая задача ∈ FPT. Дан
        двудольный граф G и непересекающиеся подмножества его
        вершин B и W . Необходимо проверить, существует ли такое
        подмножество его вершин S размера не более k, такое что G ∖ S
        можно покрасить в два цвета, причем вершины множеств B и W
        будут покрашены, соответственно, в черный и белый цвета.
А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               21 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Вспомогательная задача




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               22 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Вспомогательная задача

        Дан двудольный граф G и непересекающиеся подмножества его
        вершин B и W . Необходимо проверить, существует ли такое
        подмножество его вершин S размера не более k, такое что G ∖ S
        можно покрасить в два цвета, причем вершины множеств B и W
        будут покрашены, соответственно, в черный и белый цвета.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               22 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Вспомогательная задача

        Дан двудольный граф G и непересекающиеся подмножества его
        вершин B и W . Необходимо проверить, существует ли такое
        подмножество его вершин S размера не более k, такое что G ∖ S
        можно покрасить в два цвета, причем вершины множеств B и W
        будут покрашены, соответственно, в черный и белый цвета.
        Найдем какую-нибудь раскраску (B0 , W0 ) графа G в два цвета.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               22 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Вспомогательная задача

        Дан двудольный граф G и непересекающиеся подмножества его
        вершин B и W . Необходимо проверить, существует ли такое
        подмножество его вершин S размера не более k, такое что G ∖ S
        можно покрасить в два цвета, причем вершины множеств B и W
        будут покрашены, соответственно, в черный и белый цвета.
        Найдем какую-нибудь раскраску (B0 , W0 ) графа G в два цвета.
        Вершины множества C = (B0 ∩ W ) ∪ (W0 ∩ B) должны изменить
        цвет, а вершины множества R = (B0 ∩ B) ∪ (W0 ∩ W ) — сохранить.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               22 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


 Вспомогательная задача

        Дан двудольный граф G и непересекающиеся подмножества его
        вершин B и W . Необходимо проверить, существует ли такое
        подмножество его вершин S размера не более k, такое что G ∖ S
        можно покрасить в два цвета, причем вершины множеств B и W
        будут покрашены, соответственно, в черный и белый цвета.
        Найдем какую-нибудь раскраску (B0 , W0 ) графа G в два цвета.
        Вершины множества C = (B0 ∩ W ) ∪ (W0 ∩ B) должны изменить
        цвет, а вершины множества R = (B0 ∩ B) ∪ (W0 ∩ W ) — сохранить.

  Лемма
  G ∖ S имеет необходимую раскраску тогда и только тогда, когда S
  разделяет множества C и R (то есть ни одна компонента G ∖ S не
  содержит одновременно вершины и из S, и из R).

А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               22 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


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

  Лемма
  G ∖ S имеет необходимую раскраску тогда и только тогда, когда S
  разделяет множества C и R (то есть ни одна компонента G ∖ S не
  содержит одновременно вершины и из S, и из R).




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               23 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


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

  Лемма
  G ∖ S имеет необходимую раскраску тогда и только тогда, когда S
  разделяет множества C и R (то есть ни одна компонента G ∖ S не
  содержит одновременно вершины и из S, и из R).

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




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               23 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


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

  Лемма
  G ∖ S имеет необходимую раскраску тогда и только тогда, когда S
  разделяет множества C и R (то есть ни одна компонента G ∖ S не
  содержит одновременно вершины и из S, и из R).

  Доказательство
        ⇒: в 2-раскраске G каждая вершина либо меняет, либо сохраняет
        цвет, причем со смежными вершинами происходит одно и то же.




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               23 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


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

  Лемма
  G ∖ S имеет необходимую раскраску тогда и только тогда, когда S
  разделяет множества C и R (то есть ни одна компонента G ∖ S не
  содержит одновременно вершины и из S, и из R).

  Доказательство
        ⇒: в 2-раскраске G каждая вершина либо меняет, либо сохраняет
        цвет, причем со смежными вершинами происходит одно и то же.
        ⇐: Изменим цвет компонент графа G ∖ S, содержащих вершины
        множества C .




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               23 / 24
Итеративное сжатие   Задача об удалении нечетных циклов


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

  Лемма
  G ∖ S имеет необходимую раскраску тогда и только тогда, когда S
  разделяет множества C и R (то есть ни одна компонента G ∖ S не
  содержит одновременно вершины и из S, и из R).

  Доказательство
        ⇒: в 2-раскраске G каждая вершина либо меняет, либо сохраняет
        цвет, причем со смежными вершинами происходит одно и то же.
        ⇐: Изменим цвет компонент графа G ∖ S, содержащих вершины
        множества C .

  Алгоритм для нахождения множества S
  Множество S может быть найдено за k итераций алгоритма
  Форда-Фалкерсона.

А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               23 / 24
Итеративное сжатие   Задача об удалении нечетных циклов




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




А. Куликов (Computer Science клуб)        11. FPT-алгоритмы                               24 / 24

More Related Content

What's hot

20110515 systems of typed lambda_calculi_moskvin_lecture10
20110515 systems of typed lambda_calculi_moskvin_lecture1020110515 systems of typed lambda_calculi_moskvin_lecture10
20110515 systems of typed lambda_calculi_moskvin_lecture10Computer Science Club
 
20110515 systems of typed lambda_calculi_moskvin_lecture09
20110515 systems of typed lambda_calculi_moskvin_lecture0920110515 systems of typed lambda_calculi_moskvin_lecture09
20110515 systems of typed lambda_calculi_moskvin_lecture09Computer Science Club
 
20081012 structuralcomplexitytheory lecture03-04
20081012 structuralcomplexitytheory lecture03-0420081012 structuralcomplexitytheory lecture03-04
20081012 structuralcomplexitytheory lecture03-04Computer Science Club
 
20081109 structuralcomplexitytheory lecture07-08
20081109 structuralcomplexitytheory lecture07-0820081109 structuralcomplexitytheory lecture07-08
20081109 structuralcomplexitytheory lecture07-08Computer Science Club
 
Kuznecova 9klass
Kuznecova 9klassKuznecova 9klass
Kuznecova 9klass
qwasar1
 
20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikovComputer Science Club
 
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_satComputer Science Club
 
Лекция 3. АВЛ-деревья (AVL trees)
Лекция 3. АВЛ-деревья (AVL trees)Лекция 3. АВЛ-деревья (AVL trees)
Лекция 3. АВЛ-деревья (AVL trees)Mikhail Kurnosov
 

What's hot (8)

20110515 systems of typed lambda_calculi_moskvin_lecture10
20110515 systems of typed lambda_calculi_moskvin_lecture1020110515 systems of typed lambda_calculi_moskvin_lecture10
20110515 systems of typed lambda_calculi_moskvin_lecture10
 
20110515 systems of typed lambda_calculi_moskvin_lecture09
20110515 systems of typed lambda_calculi_moskvin_lecture0920110515 systems of typed lambda_calculi_moskvin_lecture09
20110515 systems of typed lambda_calculi_moskvin_lecture09
 
20081012 structuralcomplexitytheory lecture03-04
20081012 structuralcomplexitytheory lecture03-0420081012 structuralcomplexitytheory lecture03-04
20081012 structuralcomplexitytheory lecture03-04
 
20081109 structuralcomplexitytheory lecture07-08
20081109 structuralcomplexitytheory lecture07-0820081109 structuralcomplexitytheory lecture07-08
20081109 structuralcomplexitytheory lecture07-08
 
Kuznecova 9klass
Kuznecova 9klassKuznecova 9klass
Kuznecova 9klass
 
20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov
 
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
 
Лекция 3. АВЛ-деревья (AVL trees)
Лекция 3. АВЛ-деревья (AVL trees)Лекция 3. АВЛ-деревья (AVL trees)
Лекция 3. АВЛ-деревья (AVL trees)
 

Viewers also liked

Michal Fojtík (Letní škola 2013)
Michal Fojtík (Letní škola 2013)Michal Fojtík (Letní škola 2013)
Michal Fojtík (Letní škola 2013)KISK FF MU
 
Street Art- By David Walker
Street Art- By David WalkerStreet Art- By David Walker
Street Art- By David Walker
maditabalnco
 
Programma dettagliato corso implantologia sicoi cfi 2013
Programma dettagliato corso implantologia sicoi cfi 2013Programma dettagliato corso implantologia sicoi cfi 2013
Programma dettagliato corso implantologia sicoi cfi 2013Pier Luigi Cavagni
 
20091129 cryptoprotocols nikolenko_lecture09
20091129 cryptoprotocols nikolenko_lecture0920091129 cryptoprotocols nikolenko_lecture09
20091129 cryptoprotocols nikolenko_lecture09Computer Science Club
 
Ativ76clau
Ativ76clauAtiv76clau
Ativ76clau
claudia7colo
 
Amazing Photography By Simona Smrckova
Amazing Photography By Simona SmrckovaAmazing Photography By Simona Smrckova
Amazing Photography By Simona Smrckova
maditabalnco
 
Beautiful Photography- By Caras Ionut
Beautiful Photography- By Caras IonutBeautiful Photography- By Caras Ionut
Beautiful Photography- By Caras Ionut
maditabalnco
 
Social Media Marketing / Online Reputation Management für Kliniken
Social Media Marketing / Online Reputation Management für KlinikenSocial Media Marketing / Online Reputation Management für Kliniken
Social Media Marketing / Online Reputation Management für Kliniken
positiv Multimedia GmbH
 
5. 3. O Digitalizace A Vedecke Digitalni Knihovny Martin Lhotak
5. 3. O Digitalizace A  Vedecke  Digitalni Knihovny  Martin Lhotak5. 3. O Digitalizace A  Vedecke  Digitalni Knihovny  Martin Lhotak
5. 3. O Digitalizace A Vedecke Digitalni Knihovny Martin LhotakKISK FF MU
 
[아이데이션]아이폰 쇼핑
[아이데이션]아이폰 쇼핑[아이데이션]아이폰 쇼핑
[아이데이션]아이폰 쇼핑
Seungyul Kim
 
One piece volume 02(009-017)
One piece volume 02(009-017)One piece volume 02(009-017)
One piece volume 02(009-017)
Marcos Donato
 
One piece volume 37(347-357)
One piece volume 37(347-357)One piece volume 37(347-357)
One piece volume 37(347-357)
Marcos Donato
 
20080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-0220080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-02Computer Science Club
 
New text document
New text documentNew text document
New text documentYassin Yas
 
Batman o longo dia das bruxas 12
Batman   o longo dia das bruxas 12Batman   o longo dia das bruxas 12
Batman o longo dia das bruxas 12
Marcos Donato
 

Viewers also liked (20)

Michal Fojtík (Letní škola 2013)
Michal Fojtík (Letní škola 2013)Michal Fojtík (Letní škola 2013)
Michal Fojtík (Letní škola 2013)
 
Street Art- By David Walker
Street Art- By David WalkerStreet Art- By David Walker
Street Art- By David Walker
 
Programma dettagliato corso implantologia sicoi cfi 2013
Programma dettagliato corso implantologia sicoi cfi 2013Programma dettagliato corso implantologia sicoi cfi 2013
Programma dettagliato corso implantologia sicoi cfi 2013
 
20091129 cryptoprotocols nikolenko_lecture09
20091129 cryptoprotocols nikolenko_lecture0920091129 cryptoprotocols nikolenko_lecture09
20091129 cryptoprotocols nikolenko_lecture09
 
TheodorTodorov_HL
TheodorTodorov_HLTheodorTodorov_HL
TheodorTodorov_HL
 
Ativ76clau
Ativ76clauAtiv76clau
Ativ76clau
 
Amazing Photography By Simona Smrckova
Amazing Photography By Simona SmrckovaAmazing Photography By Simona Smrckova
Amazing Photography By Simona Smrckova
 
Beautiful Photography- By Caras Ionut
Beautiful Photography- By Caras IonutBeautiful Photography- By Caras Ionut
Beautiful Photography- By Caras Ionut
 
Social Media Marketing / Online Reputation Management für Kliniken
Social Media Marketing / Online Reputation Management für KlinikenSocial Media Marketing / Online Reputation Management für Kliniken
Social Media Marketing / Online Reputation Management für Kliniken
 
20091108 mfcs itsykson_lecture06
20091108 mfcs itsykson_lecture0620091108 mfcs itsykson_lecture06
20091108 mfcs itsykson_lecture06
 
5. 3. O Digitalizace A Vedecke Digitalni Knihovny Martin Lhotak
5. 3. O Digitalizace A  Vedecke  Digitalni Knihovny  Martin Lhotak5. 3. O Digitalizace A  Vedecke  Digitalni Knihovny  Martin Lhotak
5. 3. O Digitalizace A Vedecke Digitalni Knihovny Martin Lhotak
 
[아이데이션]아이폰 쇼핑
[아이데이션]아이폰 쇼핑[아이데이션]아이폰 쇼핑
[아이데이션]아이폰 쇼핑
 
One piece volume 02(009-017)
One piece volume 02(009-017)One piece volume 02(009-017)
One piece volume 02(009-017)
 
Tritium
TritiumTritium
Tritium
 
One piece volume 37(347-357)
One piece volume 37(347-357)One piece volume 37(347-357)
One piece volume 37(347-357)
 
20080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-0220080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-02
 
Presentation1
Presentation1Presentation1
Presentation1
 
R2c3
R2c3R2c3
R2c3
 
New text document
New text documentNew text document
New text document
 
Batman o longo dia das bruxas 12
Batman   o longo dia das bruxas 12Batman   o longo dia das bruxas 12
Batman o longo dia das bruxas 12
 

More from Computer Science Club

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
Computer Science Club
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
Computer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
Computer 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_bugs
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_bugs
Computer 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_lecture11
Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

More from Computer Science Club (20)

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

20091206 algorithmsfornphardproblems kulikov_lecture11

  • 1. Алгоритмы для NP-трудных задач Лекция 11: FPT-алгоритмы А. Куликов Computer Science клуб при ПОМИ http://logic.pdmi.ras.ru/∼infclub/ А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 1 / 24
  • 2. План лекции 1 Лемма о подсолнухе Задача о минимальном множестве представителей А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 2 / 24
  • 3. План лекции 1 Лемма о подсолнухе Задача о минимальном множестве представителей 2 Динамическое программирование Steiner tree problem А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 2 / 24
  • 4. План лекции 1 Лемма о подсолнухе Задача о минимальном множестве представителей 2 Динамическое программирование Steiner tree problem 3 Итеративное сжатие Задача об удалении нечетных циклов А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 2 / 24
  • 5. Лемма о подсолнухе План лекции 1 Лемма о подсолнухе Задача о минимальном множестве представителей 2 Динамическое программирование Steiner tree problem 3 Итеративное сжатие Задача об удалении нечетных циклов А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 3 / 24
  • 6. Лемма о подсолнухе Лемма о подсолнухе Определение Подсолнухом с k лепестками (sunflower with k petals) называется семейство из k (конечных) множеств, пересечения любых двух их которых совпадают. Это пересечение называется центром (core) цветка: Si ∩ Sj = C для всех 1 ≤ i < j ≤ k . А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 4 / 24
  • 7. Лемма о подсолнухе Лемма о подсолнухе Определение Подсолнухом с k лепестками (sunflower with k petals) называется семейство из k (конечных) множеств, пересечения любых двух их которых совпадают. Это пересечение называется центром (core) цветка: Si ∩ Sj = C для всех 1 ≤ i < j ≤ k . Лемма о подсолнухе (Sunflower Lemma) В любом семействе, состоящем из более чем s!(k − 1)s множеств размера не более s, найдется подсолнух с хотя бы k лепестками. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 4 / 24
  • 8. Лемма о подсолнухе Доказательство А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 5 / 24
  • 9. Лемма о подсолнухе Доказательство Индукция по s. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 5 / 24
  • 10. Лемма о подсолнухе Доказательство Индукция по s. При s = 1 есть более k − 1 одноэлементных множеств. Любые k из них составляют подсолнух (с пустым центром). А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 5 / 24
  • 11. Лемма о подсолнухе Доказательство Индукция по s. При s = 1 есть более k − 1 одноэлементных множеств. Любые k из них составляют подсолнух (с пустым центром). Пусть теперь s ≥ 2 и ℱ — семейство, содержащее более s!(k − 1)s множеств размера не более s. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 5 / 24
  • 12. Лемма о подсолнухе Доказательство Индукция по s. При s = 1 есть более k − 1 одноэлементных множеств. Любые k из них составляют подсолнух (с пустым центром). Пусть теперь s ≥ 2 и ℱ — семейство, содержащее более s!(k − 1)s множеств размера не более s. Рассмотрим максимальное семейство попарно не пересекающихся множеств ������ = {A1 , . . . , At }. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 5 / 24
  • 13. Лемма о подсолнухе Доказательство Индукция по s. При s = 1 есть более k − 1 одноэлементных множеств. Любые k из них составляют подсолнух (с пустым центром). Пусть теперь s ≥ 2 и ℱ — семейство, содержащее более s!(k − 1)s множеств размера не более s. Рассмотрим максимальное семейство попарно не пересекающихся множеств ������ = {A1 , . . . , At }. Если t ≥ k, то необходимый подсолнух найден. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 5 / 24
  • 14. Лемма о подсолнухе Доказательство Индукция по s. При s = 1 есть более k − 1 одноэлементных множеств. Любые k из них составляют подсолнух (с пустым центром). Пусть теперь s ≥ 2 и ℱ — семейство, содержащее более s!(k − 1)s множеств размера не более s. Рассмотрим максимальное семейство попарно не пересекающихся множеств ������ = {A1 , . . . , At }. Если t ≥ k, то необходимый подсолнух найден. Пусть t ≤ k − 1 и B = A1 ∪ · · · ∪ At . Тогда |B| ≤ s(k − 1) и B пересекает любое множество семейства ℱ. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 5 / 24
  • 15. Лемма о подсолнухе Доказательство Индукция по s. При s = 1 есть более k − 1 одноэлементных множеств. Любые k из них составляют подсолнух (с пустым центром). Пусть теперь s ≥ 2 и ℱ — семейство, содержащее более s!(k − 1)s множеств размера не более s. Рассмотрим максимальное семейство попарно не пересекающихся множеств ������ = {A1 , . . . , At }. Если t ≥ k, то необходимый подсолнух найден. Пусть t ≤ k − 1 и B = A1 ∪ · · · ∪ At . Тогда |B| ≤ s(k − 1) и B пересекает любое множество семейства ℱ. Значит, найдется элемент x ∈ B, содержащийся в хотя бы |ℱ| s!(k − 1)s > = (s − 1)!(k − 1)s−1 |B| s(k − 1) множествах семейства ℱ. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 5 / 24
  • 16. Лемма о подсолнухе Доказательство (продолжение) А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 6 / 24
  • 17. Лемма о подсолнухе Доказательство (продолжение) По индукционному предположению семейство ℱx = {S ∖ {x} | S ∈ ℱ, x ∈ S} содержит подсолнух с k лепестками. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 6 / 24
  • 18. Лемма о подсолнухе Доказательство (продолжение) По индукционному предположению семейство ℱx = {S ∖ {x} | S ∈ ℱ, x ∈ S} содержит подсолнух с k лепестками. Добавив x к множествам этого подсолнуха, получим подсолнух исходного семейства. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 6 / 24
  • 19. Лемма о подсолнухе Задача о минимальном множестве представителей План лекции 1 Лемма о подсолнухе Задача о минимальном множестве представителей 2 Динамическое программирование Steiner tree problem 3 Итеративное сжатие Задача об удалении нечетных циклов А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 7 / 24
  • 20. Лемма о подсолнухе Задача о минимальном множестве представителей Задача о d-множестве представителей А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 8 / 24
  • 21. Лемма о подсолнухе Задача о минимальном множестве представителей Задача о d-множестве представителей В задаче о d -множестве представителей (d -hitting set problem) по данному семейству множеств размера не более d каждое необходимо найти множество из не более k элементов, пересекающее каждое множество семейства. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 8 / 24
  • 22. Лемма о подсолнухе Задача о минимальном множестве представителей Задача о d-множестве представителей В задаче о d -множестве представителей (d -hitting set problem) по данному семейству множеств размера не более d каждое необходимо найти множество из не более k элементов, пересекающее каждое множество семейства. Правило упрощения: если k + 1 множество образуют подсолнух, заменить их всех на центр цвета. Если подсолнуха нет, то семейство содержит не более O(k d ) множеств. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 8 / 24
  • 23. Лемма о подсолнухе Задача о минимальном множестве представителей Задача о d-множестве представителей В задаче о d -множестве представителей (d -hitting set problem) по данному семейству множеств размера не более d каждое необходимо найти множество из не более k элементов, пересекающее каждое множество семейства. Правило упрощения: если k + 1 множество образуют подсолнух, заменить их всех на центр цвета. Если подсолнуха нет, то семейство содержит не более O(k d ) множеств. Получили ядро для задачи о минимальном множестве представителей, а значит, она принадлежит классу FPT. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 8 / 24
  • 24. Динамическое программирование План лекции 1 Лемма о подсолнухе Задача о минимальном множестве представителей 2 Динамическое программирование Steiner tree problem 3 Итеративное сжатие Задача об удалении нечетных циклов А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 9 / 24
  • 25. Динамическое программирование Steiner tree problem План лекции 1 Лемма о подсолнухе Задача о минимальном множестве представителей 2 Динамическое программирование Steiner tree problem 3 Итеративное сжатие Задача об удалении нечетных циклов А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 10 / 24
  • 26. Динамическое программирование Steiner tree problem Steiner tree problem А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 11 / 24
  • 27. Динамическое программирование Steiner tree problem Steiner tree problem Steiner tree problem заключается в нахождении по данному графу G и множеству S из k его вершин дерева T минимального веса, содержащего все вершины множества S. Вершины множества S называются терминалами (termianl). А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 11 / 24
  • 28. Динамическое программирование Steiner tree problem Steiner tree problem Steiner tree problem заключается в нахождении по данному графу G и множеству S из k его вершин дерева T минимального веса, содержащего все вершины множества S. Вершины множества S называются терминалами (termianl). Задача очень похожа на задачу от минимальном покрывающем дереве, но, в отличие от последней, NP-трудна. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 11 / 24
  • 29. Динамическое программирование Steiner tree problem Steiner tree problem Steiner tree problem заключается в нахождении по данному графу G и множеству S из k его вершин дерева T минимального веса, содержащего все вершины множества S. Вершины множества S называются терминалами (termianl). Задача очень похожа на задачу от минимальном покрывающем дереве, но, в отличие от последней, NP-трудна. Мы покажем, что при параметризации k = |S| она принадлежит классу FPT. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 11 / 24
  • 30. Динамическое программирование Steiner tree problem Решение методом динамического программирования Лемма Для v ∈ V и X ⊆ S пусть c(v , X ) — минимальная стоимость дерева для X , содержащего v , d (u, v ) — расстояние от u до v . Тогда c(v , X ) = min c(u, X ′ ∖ u) + c(u, X ∖ X ′ ∖ u) + d (u, v ). u∈V ,∅⊂X ′ ⊂X А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 12 / 24
  • 31. Динамическое программирование Steiner tree problem Доказательство леммы c(v , X ) = min c(u, X ′ ∖ u) + c(u, X ∖ X ′ ∖ u) + d (u, v ). u∈V ,∅⊂X ′ ⊂X u v ≤: Дерево T1 , на котором достигается c(u, X ′ ∖ u), дерево T2 , на котором достигается c(u, X ∖ X ′ ∖ u), и путь из u в v дают в объединении дерево, содержащее все вершины множества X и v . А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 13 / 24
  • 32. Динамическое программирование Steiner tree problem Доказательство леммы u v ≤: Пусть на дереве T достигается c(v , X ) и пусть T ′ — его минимальное дерево, покрывающее X . Пусть u — вершина T ′ , ближайшая к v . Найдется компонента в T ∖ u, содержащая подмножество терминалов ∅ ⊂ X ′ ⊂ X . Значит, T есть объединение дерева, содержащего X ′ ∖ u и u, дерева, содержащего X ∖ X ′ ∖ u и u, и пути из u в v . А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 14 / 24
  • 33. Динамическое программирование Steiner tree problem Алгоритм А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 15 / 24
  • 34. Динамическое программирование Steiner tree problem Алгоритм Итак, достаточно заполнить матрицу размера 2k |V | в порядке возрастания размера |X |. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 15 / 24
  • 35. Динамическое программирование Steiner tree problem Алгоритм Итак, достаточно заполнить матрицу размера 2k |V | в порядке возрастания размера |X |. Для вычисления значения c(v , X ) необходимо перебрать 2|X | значений. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 15 / 24
  • 36. Динамическое программирование Steiner tree problem Алгоритм Итак, достаточно заполнить матрицу размера 2k |V | в порядке возрастания размера |X |. Для вычисления значения c(v , X ) необходимо перебрать 2|X | значений. Время работы: ∑︁ k ∑︁ (︂k )︂ |X | 2 = 2i ≤ (1 + 2)k = 3k i X ⊆S i=1 А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 15 / 24
  • 37. Итеративное сжатие План лекции 1 Лемма о подсолнухе Задача о минимальном множестве представителей 2 Динамическое программирование Steiner tree problem 3 Итеративное сжатие Задача об удалении нечетных циклов А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 16 / 24
  • 38. Итеративное сжатие Задача об удалении нечетных циклов План лекции 1 Лемма о подсолнухе Задача о минимальном множестве представителей 2 Динамическое программирование Steiner tree problem 3 Итеративное сжатие Задача об удалении нечетных циклов А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 17 / 24
  • 39. Итеративное сжатие Задача об удалении нечетных циклов Задача об удалении нечетных циклов А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 18 / 24
  • 40. Итеративное сжатие Задача об удалении нечетных циклов Задача об удалении нечетных циклов Задача об удалении нечетных циклов (odd cycle transversal problem, bipartite deletion problem, graph bipartization problem) заключается в проверке по данному графу G и числу k существования в графе таких k вершин, после удаления которых граф становится двудольным. Такое множество вершин S называется секущим (odd cycle transversal). А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 18 / 24
  • 41. Итеративное сжатие Задача об удалении нечетных циклов Задача об удалении нечетных циклов Задача об удалении нечетных циклов (odd cycle transversal problem, bipartite deletion problem, graph bipartization problem) заключается в проверке по данному графу G и числу k существования в графе таких k вершин, после удаления которых граф становится двудольным. Такое множество вершин S называется секущим (odd cycle transversal). Compression version задачи об удалении нечетных циклов: дан граф G и его секущее множество S размера k + 1 и необходимо проверить, есть ли у G секущее множество размера k. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 18 / 24
  • 42. Итеративное сжатие Задача об удалении нечетных циклов Итеративное сжатие А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 19 / 24
  • 43. Итеративное сжатие Задача об удалении нечетных циклов Итеративное сжатие Построив алгоритм Compression для compression version задачи об удалении нечетных циклов со временем работы f (k)nc , мы сможем решить исходную задачу за f (k)nc+1 . А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 19 / 24
  • 44. Итеративное сжатие Задача об удалении нечетных циклов Итеративное сжатие Построив алгоритм Compression для compression version задачи об удалении нечетных циклов со временем работы f (k)nc , мы сможем решить исходную задачу за f (k)nc+1 . Пусть V = {v1 , . . . , vn } и Gi = G [Vi ]. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 19 / 24
  • 45. Итеративное сжатие Задача об удалении нечетных циклов Итеративное сжатие Построив алгоритм Compression для compression version задачи об удалении нечетных циклов со временем работы f (k)nc , мы сможем решить исходную задачу за f (k)nc+1 . Пусть V = {v1 , . . . , vn } и Gi = G [Vi ]. Простые замечания: А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 19 / 24
  • 46. Итеративное сжатие Задача об удалении нечетных циклов Итеративное сжатие Построив алгоритм Compression для compression version задачи об удалении нечетных циклов со временем работы f (k)nc , мы сможем решить исходную задачу за f (k)nc+1 . Пусть V = {v1 , . . . , vn } и Gi = G [Vi ]. Простые замечания: если S является секущим для G , то оно является секущим для всех Gi ; А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 19 / 24
  • 47. Итеративное сжатие Задача об удалении нечетных циклов Итеративное сжатие Построив алгоритм Compression для compression version задачи об удалении нечетных циклов со временем работы f (k)nc , мы сможем решить исходную задачу за f (k)nc+1 . Пусть V = {v1 , . . . , vn } и Gi = G [Vi ]. Простые замечания: если S является секущим для G , то оно является секущим для всех Gi ; если S является секущим для Gi , то S ∪ {vi+1 } является секущим для Gi+1 ; А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 19 / 24
  • 48. Итеративное сжатие Задача об удалении нечетных циклов Итеративное сжатие Построив алгоритм Compression для compression version задачи об удалении нечетных циклов со временем работы f (k)nc , мы сможем решить исходную задачу за f (k)nc+1 . Пусть V = {v1 , . . . , vn } и Gi = G [Vi ]. Простые замечания: если S является секущим для G , то оно является секущим для всех Gi ; если S является секущим для Gi , то S ∪ {vi+1 } является секущим для Gi+1 ; Vk — секущее для Gk . А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 19 / 24
  • 49. Итеративное сжатие Задача об удалении нечетных циклов Итеративное сжатие А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 20 / 24
  • 50. Итеративное сжатие Задача об удалении нечетных циклов Итеративное сжатие Запустим Compression(Gk+1 , Vk+1 , k). А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 20 / 24
  • 51. Итеративное сжатие Задача об удалении нечетных циклов Итеративное сжатие Запустим Compression(Gk+1 , Vk+1 , k). Если ответом будет “нет”, то секущего множества размера k нет и для исходного графа. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 20 / 24
  • 52. Итеративное сжатие Задача об удалении нечетных циклов Итеративное сжатие Запустим Compression(Gk+1 , Vk+1 , k). Если ответом будет “нет”, то секущего множества размера k нет и для исходного графа. Если же ответом будет секущее множество Sk+1 размера k, то запустим Compression(Gk+2 , Sk+1 ∪ {vk+2 }, k). А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 20 / 24
  • 53. Итеративное сжатие Задача об удалении нечетных циклов Итеративное сжатие Запустим Compression(Gk+1 , Vk+1 , k). Если ответом будет “нет”, то секущего множества размера k нет и для исходного графа. Если же ответом будет секущее множество Sk+1 размера k, то запустим Compression(Gk+2 , Sk+1 ∪ {vk+2 }, k). И так далее до Gn . А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 20 / 24
  • 54. Итеративное сжатие Задача об удалении нечетных циклов Итеративное сжатие Запустим Compression(Gk+1 , Vk+1 , k). Если ответом будет “нет”, то секущего множества размера k нет и для исходного графа. Если же ответом будет секущее множество Sk+1 размера k, то запустим Compression(Gk+2 , Sk+1 ∪ {vk+2 }, k). И так далее до Gn . Мы предъявим алгоритм, решающий compression version за время O(3k k|E |). А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 20 / 24
  • 55. Итеративное сжатие Задача об удалении нечетных циклов Решение compression version А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 21 / 24
  • 56. Итеративное сжатие Задача об удалении нечетных циклов Решение compression version Итак, пусть дан граф G и его секущее множество S ′ размера k + 1 и необходимо проверить, есть ли секущее множество S размера k. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 21 / 24
  • 57. Итеративное сжатие Задача об удалении нечетных циклов Решение compression version Итак, пусть дан граф G и его секущее множество S ′ размера k + 1 и необходимо проверить, есть ли секущее множество S размера k. Расщепимся на 3k+1 случай: каждая вершина множества S ′ должна принадлежать либо S, либо одной из двух долей. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 21 / 24
  • 58. Итеративное сжатие Задача об удалении нечетных циклов Решение compression version Итак, пусть дан граф G и его секущее множество S ′ размера k + 1 и необходимо проверить, есть ли секущее множество S размера k. Расщепимся на 3k+1 случай: каждая вершина множества S ′ должна принадлежать либо S, либо одной из двух долей. В каждом из случаев у нас некоторые вершины графа уже принадлежат искомому секущему множеству S, некоторые уже покрашены в белый цвет, некоторые — в черный. Ясно, что в искомой раскраске графа G ∖ S все соседи уже покрашенных черных вершин должны быть белыми, а все соседи уже покрашенных белых — черными. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 21 / 24
  • 59. Итеративное сжатие Задача об удалении нечетных циклов Решение compression version Итак, пусть дан граф G и его секущее множество S ′ размера k + 1 и необходимо проверить, есть ли секущее множество S размера k. Расщепимся на 3k+1 случай: каждая вершина множества S ′ должна принадлежать либо S, либо одной из двух долей. В каждом из случаев у нас некоторые вершины графа уже принадлежат искомому секущему множеству S, некоторые уже покрашены в белый цвет, некоторые — в черный. Ясно, что в искомой раскраске графа G ∖ S все соседи уже покрашенных черных вершин должны быть белыми, а все соседи уже покрашенных белых — черными. Достаточно показать, что следующая задача ∈ FPT. Дан двудольный граф G и непересекающиеся подмножества его вершин B и W . Необходимо проверить, существует ли такое подмножество его вершин S размера не более k, такое что G ∖ S можно покрасить в два цвета, причем вершины множеств B и W будут покрашены, соответственно, в черный и белый цвета. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 21 / 24
  • 60. Итеративное сжатие Задача об удалении нечетных циклов Вспомогательная задача А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 22 / 24
  • 61. Итеративное сжатие Задача об удалении нечетных циклов Вспомогательная задача Дан двудольный граф G и непересекающиеся подмножества его вершин B и W . Необходимо проверить, существует ли такое подмножество его вершин S размера не более k, такое что G ∖ S можно покрасить в два цвета, причем вершины множеств B и W будут покрашены, соответственно, в черный и белый цвета. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 22 / 24
  • 62. Итеративное сжатие Задача об удалении нечетных циклов Вспомогательная задача Дан двудольный граф G и непересекающиеся подмножества его вершин B и W . Необходимо проверить, существует ли такое подмножество его вершин S размера не более k, такое что G ∖ S можно покрасить в два цвета, причем вершины множеств B и W будут покрашены, соответственно, в черный и белый цвета. Найдем какую-нибудь раскраску (B0 , W0 ) графа G в два цвета. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 22 / 24
  • 63. Итеративное сжатие Задача об удалении нечетных циклов Вспомогательная задача Дан двудольный граф G и непересекающиеся подмножества его вершин B и W . Необходимо проверить, существует ли такое подмножество его вершин S размера не более k, такое что G ∖ S можно покрасить в два цвета, причем вершины множеств B и W будут покрашены, соответственно, в черный и белый цвета. Найдем какую-нибудь раскраску (B0 , W0 ) графа G в два цвета. Вершины множества C = (B0 ∩ W ) ∪ (W0 ∩ B) должны изменить цвет, а вершины множества R = (B0 ∩ B) ∪ (W0 ∩ W ) — сохранить. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 22 / 24
  • 64. Итеративное сжатие Задача об удалении нечетных циклов Вспомогательная задача Дан двудольный граф G и непересекающиеся подмножества его вершин B и W . Необходимо проверить, существует ли такое подмножество его вершин S размера не более k, такое что G ∖ S можно покрасить в два цвета, причем вершины множеств B и W будут покрашены, соответственно, в черный и белый цвета. Найдем какую-нибудь раскраску (B0 , W0 ) графа G в два цвета. Вершины множества C = (B0 ∩ W ) ∪ (W0 ∩ B) должны изменить цвет, а вершины множества R = (B0 ∩ B) ∪ (W0 ∩ W ) — сохранить. Лемма G ∖ S имеет необходимую раскраску тогда и только тогда, когда S разделяет множества C и R (то есть ни одна компонента G ∖ S не содержит одновременно вершины и из S, и из R). А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 22 / 24
  • 65. Итеративное сжатие Задача об удалении нечетных циклов Доказательство леммы Лемма G ∖ S имеет необходимую раскраску тогда и только тогда, когда S разделяет множества C и R (то есть ни одна компонента G ∖ S не содержит одновременно вершины и из S, и из R). А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 23 / 24
  • 66. Итеративное сжатие Задача об удалении нечетных циклов Доказательство леммы Лемма G ∖ S имеет необходимую раскраску тогда и только тогда, когда S разделяет множества C и R (то есть ни одна компонента G ∖ S не содержит одновременно вершины и из S, и из R). Доказательство А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 23 / 24
  • 67. Итеративное сжатие Задача об удалении нечетных циклов Доказательство леммы Лемма G ∖ S имеет необходимую раскраску тогда и только тогда, когда S разделяет множества C и R (то есть ни одна компонента G ∖ S не содержит одновременно вершины и из S, и из R). Доказательство ⇒: в 2-раскраске G каждая вершина либо меняет, либо сохраняет цвет, причем со смежными вершинами происходит одно и то же. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 23 / 24
  • 68. Итеративное сжатие Задача об удалении нечетных циклов Доказательство леммы Лемма G ∖ S имеет необходимую раскраску тогда и только тогда, когда S разделяет множества C и R (то есть ни одна компонента G ∖ S не содержит одновременно вершины и из S, и из R). Доказательство ⇒: в 2-раскраске G каждая вершина либо меняет, либо сохраняет цвет, причем со смежными вершинами происходит одно и то же. ⇐: Изменим цвет компонент графа G ∖ S, содержащих вершины множества C . А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 23 / 24
  • 69. Итеративное сжатие Задача об удалении нечетных циклов Доказательство леммы Лемма G ∖ S имеет необходимую раскраску тогда и только тогда, когда S разделяет множества C и R (то есть ни одна компонента G ∖ S не содержит одновременно вершины и из S, и из R). Доказательство ⇒: в 2-раскраске G каждая вершина либо меняет, либо сохраняет цвет, причем со смежными вершинами происходит одно и то же. ⇐: Изменим цвет компонент графа G ∖ S, содержащих вершины множества C . Алгоритм для нахождения множества S Множество S может быть найдено за k итераций алгоритма Форда-Фалкерсона. А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 23 / 24
  • 70. Итеративное сжатие Задача об удалении нечетных циклов Спасибо за внимание! А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 24 / 24