70
Алгоритмы для NP-трудных задач Лекция 11: FPT-алгоритмы А. Куликов Computer Science клуб при ПОМИ http://logic.pdmi.ras.ru/infclub/ А. Куликов (Computer Science клуб) 11. FPT-алгоритмы 1 / 24

Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

Embed Size (px)

Citation preview

Page 1: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

А. Куликов

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

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

Page 2: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

План лекции

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

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

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

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

Page 3: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

План лекции

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

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

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

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

Page 4: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

План лекции

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

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

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

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

Page 5: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

План лекции

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

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

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

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

Page 6: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Определение

Подсолнухом с 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

Page 7: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Определение

Подсолнухом с 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

Page 8: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Индукция по 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 , содержащийся в хотя бы

|ℱ||B|

>s!(k − 1)s

s(k − 1)= (s − 1)!(k − 1)s−1

множествах семейства ℱ .

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

Page 9: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Индукция по 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 , содержащийся в хотя бы

|ℱ||B|

>s!(k − 1)s

s(k − 1)= (s − 1)!(k − 1)s−1

множествах семейства ℱ .

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

Page 10: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Индукция по 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 , содержащийся в хотя бы

|ℱ||B|

>s!(k − 1)s

s(k − 1)= (s − 1)!(k − 1)s−1

множествах семейства ℱ .

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

Page 11: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Индукция по 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 , содержащийся в хотя бы

|ℱ||B|

>s!(k − 1)s

s(k − 1)= (s − 1)!(k − 1)s−1

множествах семейства ℱ .

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

Page 12: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Индукция по 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 , содержащийся в хотя бы

|ℱ||B|

>s!(k − 1)s

s(k − 1)= (s − 1)!(k − 1)s−1

множествах семейства ℱ .

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

Page 13: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Индукция по 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 , содержащийся в хотя бы

|ℱ||B|

>s!(k − 1)s

s(k − 1)= (s − 1)!(k − 1)s−1

множествах семейства ℱ .

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

Page 14: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Индукция по 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 , содержащийся в хотя бы

|ℱ||B|

>s!(k − 1)s

s(k − 1)= (s − 1)!(k − 1)s−1

множествах семейства ℱ .

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

Page 15: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Индукция по 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 , содержащийся в хотя бы

|ℱ||B|

>s!(k − 1)s

s(k − 1)= (s − 1)!(k − 1)s−1

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

Page 16: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

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

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

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

Page 17: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

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

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

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

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

Page 18: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

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

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

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

Page 19: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

План лекции

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

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

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

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

Page 20: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

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

Page 21: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

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

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

Page 22: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

Получили ядро для задачи о минимальном множествепредставителей, а значит, она принадлежит классу FPT.

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

Page 23: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

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

Page 24: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

Динамическое программирование

План лекции

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

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

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

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

Page 25: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

План лекции

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

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

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

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

Page 26: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

Динамическое программирование 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

Page 27: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

Динамическое программирование 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

Page 28: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

Динамическое программирование 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

Page 29: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

Динамическое программирование 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

Page 30: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

c(v , X ) = minu∈V ,∅⊂X ′⊂X

c(u, X ′ ∖ u) + c(u, X ∖ X ′ ∖ u) + d(u, v).

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

Page 31: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

c(v , X ) = minu∈V ,∅⊂X ′⊂X

c(u, X ′ ∖ u) + c(u, X ∖ X ′ ∖ u) + d(u, v).

v

u

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

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

Page 32: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

v

u

≤: Пусть на дереве 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

Page 33: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

Алгоритм

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

значений.Время работы:

∑︁X⊆S

2|X | =k∑︁

i=1

(︂ki

)︂2i ≤ (1 + 2)k = 3k

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

Page 34: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

Алгоритм

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

Для вычисления значения c(v , X ) необходимо перебрать 2|X |

значений.Время работы:

∑︁X⊆S

2|X | =k∑︁

i=1

(︂ki

)︂2i ≤ (1 + 2)k = 3k

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

Page 35: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

Алгоритм

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

значений.

Время работы:

∑︁X⊆S

2|X | =k∑︁

i=1

(︂ki

)︂2i ≤ (1 + 2)k = 3k

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

Page 36: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

Алгоритм

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

значений.Время работы:

∑︁X⊆S

2|X | =k∑︁

i=1

(︂ki

)︂2i ≤ (1 + 2)k = 3k

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

Page 37: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

План лекции

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

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

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

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

Page 38: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

План лекции

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

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

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

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

Page 39: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Задача об удалении нечетных циклов (odd cycle transversalproblem, 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

Page 40: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Задача об удалении нечетных циклов (odd cycle transversalproblem, 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

Page 41: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Задача об удалении нечетных циклов (odd cycle transversalproblem, 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

Page 42: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Построив алгоритм 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

Page 43: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Построив алгоритм 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

Page 44: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Построив алгоритм 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

Page 45: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Построив алгоритм 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

Page 46: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Построив алгоритм 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

Page 47: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Построив алгоритм 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

Page 48: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Построив алгоритм 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

Page 49: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

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

Page 50: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

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

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

Page 51: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

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

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

Page 52: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

И так далее до Gn.Мы предъявим алгоритм, решающий compression version за времяO(3kk |E |).

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

Page 53: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

Мы предъявим алгоритм, решающий compression version за времяO(3kk |E |).

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

Page 54: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

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

Page 55: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

Решение 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

Page 56: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

Решение 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

Page 57: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

Решение 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

Page 58: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

Решение 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

Page 59: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

Решение 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

Page 60: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Дан двудольный граф 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

Page 61: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Дан двудольный граф 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

Page 62: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Дан двудольный граф 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

Page 63: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Дан двудольный граф 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

Page 64: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

Дан двудольный граф 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

Page 65: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

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

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

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

Page 66: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

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

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

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

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

Page 67: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

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

⇐: Изменим цвет компонент графа G ∖ S , содержащих вершинымножества C .

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

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

Page 68: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

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

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

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

Page 69: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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

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

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

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

Page 70: Алгоритмы для NP-трудных задач, осень 2009: FPT-алгоритмы

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

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

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