124
Алгоритмы для NP-трудных задач Лекции 2–3: Алгоритмы для задачи коммивояжёра Александр Куликов Петербургское отделение Математического института им. В. А. Стеклова Российская академия наук Computer Science клуб в Екатеринбурге 1–2 марта 2013 А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 1 / 62

20130301 np algorithms_kulikov_lecture02-03_tsp

Embed Size (px)

Citation preview

Page 1: 20130301 np algorithms_kulikov_lecture02-03_tsp

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

коммивояжёра

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

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

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

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 1 / 62

Page 2: 20130301 np algorithms_kulikov_lecture02-03_tsp

1 Введение

2 ЭвристикиМетод ветвей и границМетод локального поиска

3 Приближённые алгоритмы1.5-приближение для Metric-TSPНеприближаемость общего случая1/2-приближение для максимизационной версии

4 Точные алгоритмыДинамическое программированиеФормула включений-исключенийМатрица Татта и перманент

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 2 / 62

Page 3: 20130301 np algorithms_kulikov_lecture02-03_tsp

Содержание

1 Введение

2 ЭвристикиМетод ветвей и границМетод локального поиска

3 Приближённые алгоритмы1.5-приближение для Metric-TSPНеприближаемость общего случая1/2-приближение для максимизационной версии

4 Точные алгоритмыДинамическое программированиеФормула включений-исключенийМатрица Татта и перманент

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 3 / 62

Page 4: 20130301 np algorithms_kulikov_lecture02-03_tsp

Формулировка задачи

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

Задача коммивояжёра: найти в данном полном взвешенномграфе гамильтонов цикл минимального веса.Периодически мы будем искать не цикл, а путь.Применения: проектирование схем, планирование, сборкагенома.Сложность полного перебора: O(n!).

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 4 / 62

Page 5: 20130301 np algorithms_kulikov_lecture02-03_tsp

Формулировка задачи

Задача о гамильтоновом цикле: проверить, есть ли в графецикл, проходящий по каждой вершине ровно один раз.Задача коммивояжёра: найти в данном полном взвешенномграфе гамильтонов цикл минимального веса.

Периодически мы будем искать не цикл, а путь.Применения: проектирование схем, планирование, сборкагенома.Сложность полного перебора: O(n!).

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 4 / 62

Page 6: 20130301 np algorithms_kulikov_lecture02-03_tsp

Формулировка задачи

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

Применения: проектирование схем, планирование, сборкагенома.Сложность полного перебора: O(n!).

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 4 / 62

Page 7: 20130301 np algorithms_kulikov_lecture02-03_tsp

Формулировка задачи

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

Сложность полного перебора: O(n!).

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 4 / 62

Page 8: 20130301 np algorithms_kulikov_lecture02-03_tsp

Формулировка задачи

Задача о гамильтоновом цикле: проверить, есть ли в графецикл, проходящий по каждой вершине ровно один раз.Задача коммивояжёра: найти в данном полном взвешенномграфе гамильтонов цикл минимального веса.Периодически мы будем искать не цикл, а путь.Применения: проектирование схем, планирование, сборкагенома.Сложность полного перебора: O(n!).

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 4 / 62

Page 9: 20130301 np algorithms_kulikov_lecture02-03_tsp

Цикл по 15 городам Германии

Оптимальный маршрут коммивояжёра че-рез 15 крупнейших городов Германии. Ука-занный маршрут является самым короткимиз всех возможных 43 589 145 600.

http://en.wikipedia.org/wiki/Travelling_salesman_problem

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 5 / 62

Page 10: 20130301 np algorithms_kulikov_lecture02-03_tsp

Цикл по 13 509 городам США

David Applegate, Robert Bixby, Vasek Chvatal and William Cook.The Traveling Salesman Problem: A Computational Study.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 6 / 62

Page 11: 20130301 np algorithms_kulikov_lecture02-03_tsp

Оптимальный путь лазера85 900 «городов»

David Applegate, Robert Bixby, Vasek Chvatal and William Cook.The Traveling Salesman Problem: A Computational Study.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 7 / 62

Page 12: 20130301 np algorithms_kulikov_lecture02-03_tsp

Ещё интересное

http://www.tsp.gatech.edu/

книги, статьимировые рекордыдатасетыпрограммыигрытриллер

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 8 / 62

Page 13: 20130301 np algorithms_kulikov_lecture02-03_tsp

Содержание

1 Введение

2 ЭвристикиМетод ветвей и границМетод локального поиска

3 Приближённые алгоритмы1.5-приближение для Metric-TSPНеприближаемость общего случая1/2-приближение для максимизационной версии

4 Точные алгоритмыДинамическое программированиеФормула включений-исключенийМатрица Татта и перманент

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 9 / 62

Page 14: 20130301 np algorithms_kulikov_lecture02-03_tsp

Содержание

1 Введение

2 ЭвристикиМетод ветвей и границМетод локального поиска

3 Приближённые алгоритмы1.5-приближение для Metric-TSPНеприближаемость общего случая1/2-приближение для максимизационной версии

4 Точные алгоритмыДинамическое программированиеФормула включений-исключенийМатрица Татта и перманент

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 10 / 62

Page 15: 20130301 np algorithms_kulikov_lecture02-03_tsp

Пример графа

A B

C

D

EF

G

H

2

1

1

2

1

2

1

1

1 1

1

5

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 11 / 62

Page 16: 20130301 np algorithms_kulikov_lecture02-03_tsp

Пример графа

A B

C

D

EF

G

H

2

1

1

2

1

2

1

1

1 1

1

5

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 11 / 62

Page 17: 20130301 np algorithms_kulikov_lecture02-03_tsp

Дерево поиска

H H

G G

F D H

E G G G C

D H D F B D

C E E G C G

B F H

A

11 8

11 8

11 8

11

∞ 14 14

8

10 14

15

10 8

12

10 10 8

13 14 8

10 8 8

Стоимость: 11 Стоимость: 8

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 12 / 62

Page 18: 20130301 np algorithms_kulikov_lecture02-03_tsp

Дерево поиска

H H

G G

F D H

E G G G C

D H D F B D

C E E G C G

B F H

A

11 8

11 8

11 8

11

∞ 14 14

8

10 14

15

10 8

12

10 10 8

13 14 8

10 8 8

Стоимость: 11 Стоимость: 8

A B

C

D

EF

G

H

21

1

21

2

1

1

1 11

5

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 12 / 62

Page 19: 20130301 np algorithms_kulikov_lecture02-03_tsp

Подзадачи и нижняя граница

подзадача: [a, S , b] — достроение простого пути из a в b,проходящего по всем вершинам из S ∋ a, b (то естькратчайший путь из b в a, проходящий по V ∖ S)

начальная задача: [a, {a}, a]

нижняя граница — сумма из

самого лёгкого ребра из a в V ∖ S ,самого лёгкого ребра из b в V ∖ S иминимального покрывающего дерева графа на вершинахV ∖ S .

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 13 / 62

Page 20: 20130301 np algorithms_kulikov_lecture02-03_tsp

Подзадачи и нижняя граница

подзадача: [a, S , b] — достроение простого пути из a в b,проходящего по всем вершинам из S ∋ a, b (то естькратчайший путь из b в a, проходящий по V ∖ S)начальная задача: [a, {a}, a]

нижняя граница — сумма из

самого лёгкого ребра из a в V ∖ S ,самого лёгкого ребра из b в V ∖ S иминимального покрывающего дерева графа на вершинахV ∖ S .

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 13 / 62

Page 21: 20130301 np algorithms_kulikov_lecture02-03_tsp

Подзадачи и нижняя граница

подзадача: [a, S , b] — достроение простого пути из a в b,проходящего по всем вершинам из S ∋ a, b (то естькратчайший путь из b в a, проходящий по V ∖ S)начальная задача: [a, {a}, a]

нижняя граница — сумма из

самого лёгкого ребра из a в V ∖ S ,самого лёгкого ребра из b в V ∖ S иминимального покрывающего дерева графа на вершинахV ∖ S .

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 13 / 62

Page 22: 20130301 np algorithms_kulikov_lecture02-03_tsp

Подзадачи и нижняя граница

подзадача: [a, S , b] — достроение простого пути из a в b,проходящего по всем вершинам из S ∋ a, b (то естькратчайший путь из b в a, проходящий по V ∖ S)начальная задача: [a, {a}, a]

нижняя граница — сумма изсамого лёгкого ребра из a в V ∖ S ,

самого лёгкого ребра из b в V ∖ S иминимального покрывающего дерева графа на вершинахV ∖ S .

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 13 / 62

Page 23: 20130301 np algorithms_kulikov_lecture02-03_tsp

Подзадачи и нижняя граница

подзадача: [a, S , b] — достроение простого пути из a в b,проходящего по всем вершинам из S ∋ a, b (то естькратчайший путь из b в a, проходящий по V ∖ S)начальная задача: [a, {a}, a]

нижняя граница — сумма изсамого лёгкого ребра из a в V ∖ S ,самого лёгкого ребра из b в V ∖ S и

минимального покрывающего дерева графа на вершинахV ∖ S .

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 13 / 62

Page 24: 20130301 np algorithms_kulikov_lecture02-03_tsp

Подзадачи и нижняя граница

подзадача: [a, S , b] — достроение простого пути из a в b,проходящего по всем вершинам из S ∋ a, b (то естькратчайший путь из b в a, проходящий по V ∖ S)начальная задача: [a, {a}, a]

нижняя граница — сумма изсамого лёгкого ребра из a в V ∖ S ,самого лёгкого ребра из b в V ∖ S иминимального покрывающего дерева графа на вершинахV ∖ S .

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 13 / 62

Page 25: 20130301 np algorithms_kulikov_lecture02-03_tsp

Содержание

1 Введение

2 ЭвристикиМетод ветвей и границМетод локального поиска

3 Приближённые алгоритмы1.5-приближение для Metric-TSPНеприближаемость общего случая1/2-приближение для максимизационной версии

4 Точные алгоритмыДинамическое программированиеФормула включений-исключенийМатрица Татта и перманент

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 14 / 62

Page 26: 20130301 np algorithms_kulikov_lecture02-03_tsp

Локальный поиск

1 s ← какое-нибудь начальное решение2 while в окрестности s есть решение s ′ большей стоимости3 do заменить s на s ′

4 return s

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 15 / 62

Page 27: 20130301 np algorithms_kulikov_lecture02-03_tsp

2-окружение

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 16 / 62

Page 28: 20130301 np algorithms_kulikov_lecture02-03_tsp

Узкое место

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 17 / 62

Page 29: 20130301 np algorithms_kulikov_lecture02-03_tsp

3-окружение

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 18 / 62

Page 30: 20130301 np algorithms_kulikov_lecture02-03_tsp

Пример локального поиска (с 3-окружением)

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 19 / 62

Page 31: 20130301 np algorithms_kulikov_lecture02-03_tsp

Пример локального поиска (с 3-окружением)

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 19 / 62

Page 32: 20130301 np algorithms_kulikov_lecture02-03_tsp

Пример локального поиска (с 3-окружением)

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 19 / 62

Page 33: 20130301 np algorithms_kulikov_lecture02-03_tsp

Пример локального поиска (с 3-окружением)

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 19 / 62

Page 34: 20130301 np algorithms_kulikov_lecture02-03_tsp

Пример локального поиска (с 3-окружением)

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 19 / 62

Page 35: 20130301 np algorithms_kulikov_lecture02-03_tsp

Локальный поиск абстрактно

стоимость

локальный оптимум

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 20 / 62

Page 36: 20130301 np algorithms_kulikov_lecture02-03_tsp

Метод имитации отжига

1 s ← какое-нибудь начальное решение2 repeat3 выбрать случайное решение s ′ из окружения s4 ∆← cost(s ′)− cost(s)5 if ∆ < 06 then заменить s на s ′

7 else заменить s на s ′ с вероятностью e−Δ/T

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 21 / 62

Page 37: 20130301 np algorithms_kulikov_lecture02-03_tsp

Метод имитации отжига абстрактно

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 22 / 62

Page 38: 20130301 np algorithms_kulikov_lecture02-03_tsp

Содержание

1 Введение

2 ЭвристикиМетод ветвей и границМетод локального поиска

3 Приближённые алгоритмы1.5-приближение для Metric-TSPНеприближаемость общего случая1/2-приближение для максимизационной версии

4 Точные алгоритмыДинамическое программированиеФормула включений-исключенийМатрица Татта и перманент

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 23 / 62

Page 39: 20130301 np algorithms_kulikov_lecture02-03_tsp

Содержание

1 Введение

2 ЭвристикиМетод ветвей и границМетод локального поиска

3 Приближённые алгоритмы1.5-приближение для Metric-TSPНеприближаемость общего случая1/2-приближение для максимизационной версии

4 Точные алгоритмыДинамическое программированиеФормула включений-исключенийМатрица Татта и перманент

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 24 / 62

Page 40: 20130301 np algorithms_kulikov_lecture02-03_tsp

Задача коммивояжёра в метрическомпространстве

Задача коммивояжёра в метрическом пространстве (Metric TSP):частный случай для графов, веса рёбер которых удовлетворяютнеравенству треугольника (w(i , j) ≤ w(i , k) + w(k , j)).

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 25 / 62

Page 41: 20130301 np algorithms_kulikov_lecture02-03_tsp

2-приближённый алгоритм

1 построить минимальное покрывающее дерево T2 продублировать каждое ребро дерева T и

в полученном графе найти эйлеров цикл3 выкинуть из этого цикла все повторения вершин и

вернуть полученный цикл

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 26 / 62

Page 42: 20130301 np algorithms_kulikov_lecture02-03_tsp

Пример

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 27 / 62

Page 43: 20130301 np algorithms_kulikov_lecture02-03_tsp

Пример

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 27 / 62

Page 44: 20130301 np algorithms_kulikov_lecture02-03_tsp

Пример

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 27 / 62

Page 45: 20130301 np algorithms_kulikov_lecture02-03_tsp

Пример

1

23

45

6

7

8

910 11

12

1314

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 27 / 62

Page 46: 20130301 np algorithms_kulikov_lecture02-03_tsp

Пример

1

23

45

6

7

8

910 11

12

1314

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 27 / 62

Page 47: 20130301 np algorithms_kulikov_lecture02-03_tsp

Пример

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 27 / 62

Page 48: 20130301 np algorithms_kulikov_lecture02-03_tsp

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

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

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

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 28 / 62

Page 49: 20130301 np algorithms_kulikov_lecture02-03_tsp

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

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

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

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 28 / 62

Page 50: 20130301 np algorithms_kulikov_lecture02-03_tsp

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

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

значит, длина найденного пути не превосходит 2WT ,а следовательно, и 2Wopt

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 28 / 62

Page 51: 20130301 np algorithms_kulikov_lecture02-03_tsp

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

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

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 28 / 62

Page 52: 20130301 np algorithms_kulikov_lecture02-03_tsp

1.5-приближённый алгоритм

1 построить минимальное покрывающее дерево T2 найти минимальное полное паросочетание

всех вершин дерева T нечетной степени3 добавить найденные рёбра в дерево T

и найти в полученном графе эйлеров цикл4 выкинуть из этого цикла все повторения вершин и

вернуть полученный цикл

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 29 / 62

Page 53: 20130301 np algorithms_kulikov_lecture02-03_tsp

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

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

нужно показать, что WP ≤ Wopt/2

обозначим через A множество всех вершин нечётной степенидерева T

рассмотрим такой гамильтонов цикл на вершинах множестваA: вершины множества A в нём будут встречаться в такойпоследовательности, в какой они идут в оптимальномгамильтоновом цикле графа G

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 30 / 62

Page 54: 20130301 np algorithms_kulikov_lecture02-03_tsp

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

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

нужно показать, что WP ≤ Wopt/2

обозначим через A множество всех вершин нечётной степенидерева T

рассмотрим такой гамильтонов цикл на вершинах множестваA: вершины множества A в нём будут встречаться в такойпоследовательности, в какой они идут в оптимальномгамильтоновом цикле графа G

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 30 / 62

Page 55: 20130301 np algorithms_kulikov_lecture02-03_tsp

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

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

нужно показать, что WP ≤ Wopt/2

обозначим через A множество всех вершин нечётной степенидерева T

рассмотрим такой гамильтонов цикл на вершинах множестваA: вершины множества A в нём будут встречаться в такойпоследовательности, в какой они идут в оптимальномгамильтоновом цикле графа G

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 30 / 62

Page 56: 20130301 np algorithms_kulikov_lecture02-03_tsp

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

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

нужно показать, что WP ≤ Wopt/2

обозначим через A множество всех вершин нечётной степенидерева T

рассмотрим такой гамильтонов цикл на вершинах множестваA: вершины множества A в нём будут встречаться в такойпоследовательности, в какой они идут в оптимальномгамильтоновом цикле графа G

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 30 / 62

Page 57: 20130301 np algorithms_kulikov_lecture02-03_tsp

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

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

разбив вершины только что построенного цикла на чётные инечётные, мы получим два паросочетаниявес хотя бы одного из них будет не более Wopt/2

значит, и вес минимального паросочетания не превосходитWopt/2

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 31 / 62

Page 58: 20130301 np algorithms_kulikov_lecture02-03_tsp

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

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

вес хотя бы одного из них будет не более Wopt/2

значит, и вес минимального паросочетания не превосходитWopt/2

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 31 / 62

Page 59: 20130301 np algorithms_kulikov_lecture02-03_tsp

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

важно отметить, что нам не нужно строить такой цикл; намважен лишь факт его существованияразбив вершины только что построенного цикла на чётные инечётные, мы получим два паросочетаниявес хотя бы одного из них будет не более Wopt/2

значит, и вес минимального паросочетания не превосходитWopt/2

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 31 / 62

Page 60: 20130301 np algorithms_kulikov_lecture02-03_tsp

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

важно отметить, что нам не нужно строить такой цикл; намважен лишь факт его существованияразбив вершины только что построенного цикла на чётные инечётные, мы получим два паросочетаниявес хотя бы одного из них будет не более Wopt/2

значит, и вес минимального паросочетания не превосходитWopt/2

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 31 / 62

Page 61: 20130301 np algorithms_kulikov_lecture02-03_tsp

Содержание

1 Введение

2 ЭвристикиМетод ветвей и границМетод локального поиска

3 Приближённые алгоритмы1.5-приближение для Metric-TSPНеприближаемость общего случая1/2-приближение для максимизационной версии

4 Точные алгоритмыДинамическое программированиеФормула включений-исключенийМатрица Татта и перманент

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 32 / 62

Page 62: 20130301 np algorithms_kulikov_lecture02-03_tsp

Неприближаемость

Предположим, что существует 𝛼-приближённый алгоритмдля задачи коммивояжёра.

Возьмём тогда произвольный (невзвешенный инеобязательно полный) граф и присвоим всем его рёбрамвес 1.Между любыми двумя не соединёнными ребром вершинамидобавим ребро веса 𝛼n + 1.Заметим теперь, что если в исходном графе существуетгамильтонов цикл, то в новом графе существуетгамильтонов цикл веса n.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 33 / 62

Page 63: 20130301 np algorithms_kulikov_lecture02-03_tsp

Неприближаемость

Предположим, что существует 𝛼-приближённый алгоритмдля задачи коммивояжёра.Возьмём тогда произвольный (невзвешенный инеобязательно полный) граф и присвоим всем его рёбрамвес 1.

Между любыми двумя не соединёнными ребром вершинамидобавим ребро веса 𝛼n + 1.Заметим теперь, что если в исходном графе существуетгамильтонов цикл, то в новом графе существуетгамильтонов цикл веса n.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 33 / 62

Page 64: 20130301 np algorithms_kulikov_lecture02-03_tsp

Неприближаемость

Предположим, что существует 𝛼-приближённый алгоритмдля задачи коммивояжёра.Возьмём тогда произвольный (невзвешенный инеобязательно полный) граф и присвоим всем его рёбрамвес 1.Между любыми двумя не соединёнными ребром вершинамидобавим ребро веса 𝛼n + 1.

Заметим теперь, что если в исходном графе существуетгамильтонов цикл, то в новом графе существуетгамильтонов цикл веса n.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 33 / 62

Page 65: 20130301 np algorithms_kulikov_lecture02-03_tsp

Неприближаемость

Предположим, что существует 𝛼-приближённый алгоритмдля задачи коммивояжёра.Возьмём тогда произвольный (невзвешенный инеобязательно полный) граф и присвоим всем его рёбрамвес 1.Между любыми двумя не соединёнными ребром вершинамидобавим ребро веса 𝛼n + 1.Заметим теперь, что если в исходном графе существуетгамильтонов цикл, то в новом графе существуетгамильтонов цикл веса n.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 33 / 62

Page 66: 20130301 np algorithms_kulikov_lecture02-03_tsp

Неприближаемость (продолжение)

Если же такого цикла в исходном графе нет, то самыйлёгкий цикл в новом графе имеет вес хотя бы(𝛼n + 1) + (n − 1) > 𝛼n.

Таким образом, с помощью 𝛼-приближенного алгоритма длязадачи о коммивояжёре мы можем понять, стоимостьоптимального цикла в построенном графе превосходит n илинет.А это позволит нам понять (за полиномиальное время!),есть в исходном графе гамильтонов цикл или нет.Но тогда P = NP.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 34 / 62

Page 67: 20130301 np algorithms_kulikov_lecture02-03_tsp

Неприближаемость (продолжение)

Если же такого цикла в исходном графе нет, то самыйлёгкий цикл в новом графе имеет вес хотя бы(𝛼n + 1) + (n − 1) > 𝛼n.Таким образом, с помощью 𝛼-приближенного алгоритма длязадачи о коммивояжёре мы можем понять, стоимостьоптимального цикла в построенном графе превосходит n илинет.

А это позволит нам понять (за полиномиальное время!),есть в исходном графе гамильтонов цикл или нет.Но тогда P = NP.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 34 / 62

Page 68: 20130301 np algorithms_kulikov_lecture02-03_tsp

Неприближаемость (продолжение)

Если же такого цикла в исходном графе нет, то самыйлёгкий цикл в новом графе имеет вес хотя бы(𝛼n + 1) + (n − 1) > 𝛼n.Таким образом, с помощью 𝛼-приближенного алгоритма длязадачи о коммивояжёре мы можем понять, стоимостьоптимального цикла в построенном графе превосходит n илинет.А это позволит нам понять (за полиномиальное время!),есть в исходном графе гамильтонов цикл или нет.

Но тогда P = NP.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 34 / 62

Page 69: 20130301 np algorithms_kulikov_lecture02-03_tsp

Неприближаемость (продолжение)

Если же такого цикла в исходном графе нет, то самыйлёгкий цикл в новом графе имеет вес хотя бы(𝛼n + 1) + (n − 1) > 𝛼n.Таким образом, с помощью 𝛼-приближенного алгоритма длязадачи о коммивояжёре мы можем понять, стоимостьоптимального цикла в построенном графе превосходит n илинет.А это позволит нам понять (за полиномиальное время!),есть в исходном графе гамильтонов цикл или нет.Но тогда P = NP.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 34 / 62

Page 70: 20130301 np algorithms_kulikov_lecture02-03_tsp

Содержание

1 Введение

2 ЭвристикиМетод ветвей и границМетод локального поиска

3 Приближённые алгоритмы1.5-приближение для Metric-TSPНеприближаемость общего случая1/2-приближение для максимизационной версии

4 Точные алгоритмыДинамическое программированиеФормула включений-исключенийМатрица Татта и перманент

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 35 / 62

Page 71: 20130301 np algorithms_kulikov_lecture02-03_tsp

Покрытие ориентированными циклами

1 2

3

4

5

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 36 / 62

Page 72: 20130301 np algorithms_kulikov_lecture02-03_tsp

Покрытие ориентированными циклами

1 2

3

4

5

5 5

4 4

3 3

2 2

1 1

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 36 / 62

Page 73: 20130301 np algorithms_kulikov_lecture02-03_tsp

Покрытие ориентированными циклами

1 2

3

4

5

5 5

4 4

3 3

2 2

1 1

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 36 / 62

Page 74: 20130301 np algorithms_kulikov_lecture02-03_tsp

Покрытие ориентированными циклами

1 2

3

4

5

5 5

4 4

3 3

2 2

1 1

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 36 / 62

Page 75: 20130301 np algorithms_kulikov_lecture02-03_tsp

1/2-приближение для максимизационной версии

Найдём покрытие циклами максимального веса. Выкинем изкаждого цикла самое лёгкое ребро (при этом суммарный весуменьшится не более чем вдвое). Соединим полученныепути произвольно.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 37 / 62

Page 76: 20130301 np algorithms_kulikov_lecture02-03_tsp

Содержание

1 Введение

2 ЭвристикиМетод ветвей и границМетод локального поиска

3 Приближённые алгоритмы1.5-приближение для Metric-TSPНеприближаемость общего случая1/2-приближение для максимизационной версии

4 Точные алгоритмыДинамическое программированиеФормула включений-исключенийМатрица Татта и перманент

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 38 / 62

Page 77: 20130301 np algorithms_kulikov_lecture02-03_tsp

Теория и практика

Camil Demetrescu. Engineering shortest path algorithms

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 39 / 62

Page 78: 20130301 np algorithms_kulikov_lecture02-03_tsp

Содержание

1 Введение

2 ЭвристикиМетод ветвей и границМетод локального поиска

3 Приближённые алгоритмы1.5-приближение для Metric-TSPНеприближаемость общего случая1/2-приближение для максимизационной версии

4 Точные алгоритмыДинамическое программированиеФормула включений-исключенийМатрица Татта и перманент

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 40 / 62

Page 79: 20130301 np algorithms_kulikov_lecture02-03_tsp

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

Подзадачи: для подмножества городов S ⊆ {1, 2, . . . , n},включающего 1 и j , обозначим через C [S , j ] длинукратчайшего пути, начинающегося в 1 и заканчивающегосяв j , проходящего через каждый город из множества S ровноодин раз.

Пересчёт: C [S , j ] = mini∈S,i =j

{C [S ∖ {j}, i ] + dij}.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 41 / 62

Page 80: 20130301 np algorithms_kulikov_lecture02-03_tsp

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

Подзадачи: для подмножества городов S ⊆ {1, 2, . . . , n},включающего 1 и j , обозначим через C [S , j ] длинукратчайшего пути, начинающегося в 1 и заканчивающегосяв j , проходящего через каждый город из множества S ровноодин раз.Пересчёт: C [S , j ] = min

i∈S,i =j{C [S ∖ {j}, i ] + dij}.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 41 / 62

Page 81: 20130301 np algorithms_kulikov_lecture02-03_tsp

Псевдокод

1 C [{1}, 1]← 02 for s ← 2 to n3 do for всех S ⊆ {1, 2, . . . , n} размера s, содержащих 14 do C [S , 1]←∞5 for всех j ∈ S , j = 16 do C [S , j ]← min

i∈S,i =j{C [S ∖ {j}, i ] + dij}

7 return minj

C [{1, . . . , n}, j ] + dj1

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 42 / 62

Page 82: 20130301 np algorithms_kulikov_lecture02-03_tsp

Сложность алгоритма

Время работы данного алгоритма есть O(n22n) = O*(2n).

Более того, памяти ему требуется тоже O*(2n), что делаетего совсем непрактичным.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 43 / 62

Page 83: 20130301 np algorithms_kulikov_lecture02-03_tsp

Сложность алгоритма

Время работы данного алгоритма есть O(n22n) = O*(2n).Более того, памяти ему требуется тоже O*(2n), что делаетего совсем непрактичным.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 43 / 62

Page 84: 20130301 np algorithms_kulikov_lecture02-03_tsp

Содержание

1 Введение

2 ЭвристикиМетод ветвей и границМетод локального поиска

3 Приближённые алгоритмы1.5-приближение для Metric-TSPНеприближаемость общего случая1/2-приближение для максимизационной версии

4 Точные алгоритмыДинамическое программированиеФормула включений-исключенийМатрица Татта и перманент

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 44 / 62

Page 85: 20130301 np algorithms_kulikov_lecture02-03_tsp

Формула включений-исключений

Пусть A — некоторое множество, f , g : 2A → R, т.ч.f (X ) =

∑Y⊆X g(Y ). Тогда

g(X ) =∑Y⊆X

(−1)|X−Y |f (Y ) .

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

∑Y⊆X

(−1)|X−Y |f (Y ) =∑Y⊆X

∑Z⊆Y

(−1)|X−Y |g(Z ) =

=∑Z⊆X

g(Z )∑

Z⊆Y⊆X

(−1)|X−Y | = g(X )

(последняя сумма равна 1, если Z = X , и нулю иначе).

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 45 / 62

Page 86: 20130301 np algorithms_kulikov_lecture02-03_tsp

Формула включений-исключений

Пусть A — некоторое множество, f , g : 2A → R, т.ч.f (X ) =

∑Y⊆X g(Y ). Тогда

g(X ) =∑Y⊆X

(−1)|X−Y |f (Y ) .

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

∑Y⊆X

(−1)|X−Y |f (Y ) =∑Y⊆X

∑Z⊆Y

(−1)|X−Y |g(Z ) =

=∑Z⊆X

g(Z )∑

Z⊆Y⊆X

(−1)|X−Y | = g(X )

(последняя сумма равна 1, если Z = X , и нулю иначе).

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 45 / 62

Page 87: 20130301 np algorithms_kulikov_lecture02-03_tsp

Задача о гамильтоновом пути

Формулировка задачи: необходимо проверить, есть ли вданном графе простой путь, проходящий через все вершины,начинающийся в заданной вершине s и заканчивающийся взаданной вершине t.

Для {s, t} ⊆ X ⊆ V обозначим через f (X ) количество путей(не обязательно простых! путь может проходить понекоторым вершинам несколько раз, а по некоторым вообщене проходить) длины n − 1 из s в t, проходящих только повершинам множества X .Нетрудно видеть, что значение f (X ) содержится в строке s истолбце t матрицы An−1, где A — матрица смежности графаG [X ].

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 46 / 62

Page 88: 20130301 np algorithms_kulikov_lecture02-03_tsp

Задача о гамильтоновом пути

Формулировка задачи: необходимо проверить, есть ли вданном графе простой путь, проходящий через все вершины,начинающийся в заданной вершине s и заканчивающийся взаданной вершине t.Для {s, t} ⊆ X ⊆ V обозначим через f (X ) количество путей(не обязательно простых! путь может проходить понекоторым вершинам несколько раз, а по некоторым вообщене проходить) длины n − 1 из s в t, проходящих только повершинам множества X .

Нетрудно видеть, что значение f (X ) содержится в строке s истолбце t матрицы An−1, где A — матрица смежности графаG [X ].

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 46 / 62

Page 89: 20130301 np algorithms_kulikov_lecture02-03_tsp

Задача о гамильтоновом пути

Формулировка задачи: необходимо проверить, есть ли вданном графе простой путь, проходящий через все вершины,начинающийся в заданной вершине s и заканчивающийся взаданной вершине t.Для {s, t} ⊆ X ⊆ V обозначим через f (X ) количество путей(не обязательно простых! путь может проходить понекоторым вершинам несколько раз, а по некоторым вообщене проходить) длины n − 1 из s в t, проходящих только повершинам множества X .Нетрудно видеть, что значение f (X ) содержится в строке s истолбце t матрицы An−1, где A — матрица смежности графаG [X ].

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 46 / 62

Page 90: 20130301 np algorithms_kulikov_lecture02-03_tsp

Задача о гамильтоновом пути (продолжение)

Пусть теперь g(X ) есть количество путей длины n − 1 из sв t, проходящих по всем вершинам множества X . Вчастности, g(V ) есть количество гамильтоновых путей из sв t.

Тогдаg(V ) =

∑Y⊆V

(−1)|V−Y |f (Y ) .

Таким образом, количество гамильтоновых путей в графеможет быть найдено за время O*(2n) и полиномиальнуюпамять.Интересно отметить, что данный алгоритм переизобреталсятри раза.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 47 / 62

Page 91: 20130301 np algorithms_kulikov_lecture02-03_tsp

Задача о гамильтоновом пути (продолжение)

Пусть теперь g(X ) есть количество путей длины n − 1 из sв t, проходящих по всем вершинам множества X . Вчастности, g(V ) есть количество гамильтоновых путей из sв t.Тогда

g(V ) =∑Y⊆V

(−1)|V−Y |f (Y ) .

Таким образом, количество гамильтоновых путей в графеможет быть найдено за время O*(2n) и полиномиальнуюпамять.Интересно отметить, что данный алгоритм переизобреталсятри раза.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 47 / 62

Page 92: 20130301 np algorithms_kulikov_lecture02-03_tsp

Задача о гамильтоновом пути (продолжение)

Пусть теперь g(X ) есть количество путей длины n − 1 из sв t, проходящих по всем вершинам множества X . Вчастности, g(V ) есть количество гамильтоновых путей из sв t.Тогда

g(V ) =∑Y⊆V

(−1)|V−Y |f (Y ) .

Таким образом, количество гамильтоновых путей в графеможет быть найдено за время O*(2n) и полиномиальнуюпамять.

Интересно отметить, что данный алгоритм переизобреталсятри раза.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 47 / 62

Page 93: 20130301 np algorithms_kulikov_lecture02-03_tsp

Задача о гамильтоновом пути (продолжение)

Пусть теперь g(X ) есть количество путей длины n − 1 из sв t, проходящих по всем вершинам множества X . Вчастности, g(V ) есть количество гамильтоновых путей из sв t.Тогда

g(V ) =∑Y⊆V

(−1)|V−Y |f (Y ) .

Таким образом, количество гамильтоновых путей в графеможет быть найдено за время O*(2n) и полиномиальнуюпамять.Интересно отметить, что данный алгоритм переизобреталсятри раза.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 47 / 62

Page 94: 20130301 np algorithms_kulikov_lecture02-03_tsp

Содержание

1 Введение

2 ЭвристикиМетод ветвей и границМетод локального поиска

3 Приближённые алгоритмы1.5-приближение для Metric-TSPНеприближаемость общего случая1/2-приближение для максимизационной версии

4 Точные алгоритмыДинамическое программированиеФормула включений-исключенийМатрица Татта и перманент

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 48 / 62

Page 95: 20130301 np algorithms_kulikov_lecture02-03_tsp

Замечание

Далее мы рассмотрим алгоритм Бьорклунда для решения задачио гамильтоновом цикле в двудольном графе за время O*(2n/2).Для общего случая задачи коммивояжёра оценка на времяработы алгоритма Бьорклунда составляет O*(1.657n ·W ) (W —максимальный вес ребра).

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 49 / 62

Page 96: 20130301 np algorithms_kulikov_lecture02-03_tsp

Перманент матрицы Татта

1 2

43

x12 x13 x14

x12 x24

x13 x34

x14 x24 x34

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 50 / 62

Page 97: 20130301 np algorithms_kulikov_lecture02-03_tsp

Перманент матрицы Татта

1 2

43

x12 x13 x14

x12 x24

x13 x34

x14 x24 x34

perm(M) =

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 50 / 62

Page 98: 20130301 np algorithms_kulikov_lecture02-03_tsp

Перманент матрицы Татта

1 2

43

x12 x13 x14

x12 x24

x13 x34

x14 x24 x34

perm(M) = x12x24x43x31 + . . .

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 50 / 62

Page 99: 20130301 np algorithms_kulikov_lecture02-03_tsp

Перманент матрицы Татта

1 2

43

x12 x13 x14

x12 x24

x13 x34

x14 x24 x34

perm(M) = x12x24x43x31 + x213x224 + . . .

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 50 / 62

Page 100: 20130301 np algorithms_kulikov_lecture02-03_tsp

Перманент матрицы Татта

1 2

43

x12 x13 x14

x12 x24

x13 x34

x14 x24 x34

perm(M) = x12x24x43x31 + x213x224 +

x12x24x43x31 + . . .

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 50 / 62

Page 101: 20130301 np algorithms_kulikov_lecture02-03_tsp

Поле характеристики 2

Если вычислять перманент над полем характеристики 2, товсе циклы, не полностью состоящие из циклов длины 2,сократятся. Действительно, если в покрытии циклами естьцикл длины не 2, то возьмём первый из них (первыйотносительного какого-нибудь фиксированного порядка навершинах) и обратим в нём все рёбра. Получим другоепокрытие циклами, которому соответствует тот же самыймоном.

Мы хотим исправить следующие два момента: во-первых,чтобы гамильтоновы циклы не сокращались, а во-вторых,чтобы покрытия с циклами длины 2 всё же пропадали.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 51 / 62

Page 102: 20130301 np algorithms_kulikov_lecture02-03_tsp

Поле характеристики 2

Если вычислять перманент над полем характеристики 2, товсе циклы, не полностью состоящие из циклов длины 2,сократятся. Действительно, если в покрытии циклами естьцикл длины не 2, то возьмём первый из них (первыйотносительного какого-нибудь фиксированного порядка навершинах) и обратим в нём все рёбра. Получим другоепокрытие циклами, которому соответствует тот же самыймоном.Мы хотим исправить следующие два момента: во-первых,чтобы гамильтоновы циклы не сокращались, а во-вторых,чтобы покрытия с циклами длины 2 всё же пропадали.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 51 / 62

Page 103: 20130301 np algorithms_kulikov_lecture02-03_tsp

Первая цель: оставить гамильтоновы циклы

Сделаем вершину 1 графа выделенной: TG [1, j ] = x1j , ноTG [j , 1] = xj1 для ребра {1, j} ∈ E . Тогда каждому гамильтоновуциклу будут соответствовать два разных монома.

x12 x13 x14

x21 x24

x31 x34

x41 x24 x34

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 52 / 62

Page 104: 20130301 np algorithms_kulikov_lecture02-03_tsp

Вторая цель: сократить всё остальное

6

4

2

3

1

5

A

E

C

D

B

F

1

6

2

3

4

5AF

ABB

BF

BC

CEBECD

BD

DE

EEF

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 53 / 62

Page 105: 20130301 np algorithms_kulikov_lecture02-03_tsp

Почему же всё сократится?

В новом графе нам нужен помеченный гамильтонов цикл.

В матрице Татта теперь будут помеченные переменные:вместо x24 будет x24,C + x24,E .При вычислении над полем характеристики 2 гамильтоновыциклы по-прежнему не сократятся (из-за специальнойпеременной 1).Всё остальное:

покрытия циклами, в которых используются не всепометки — сократятся по формуле включений-исключений(рассмотрим все 2n/2 подмножеств пометок);негамилтьтоновы покрытия циклами, в которых есть всепометки, разобьются на пары и сократятся (из-за пометок).

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 54 / 62

Page 106: 20130301 np algorithms_kulikov_lecture02-03_tsp

Почему же всё сократится?

В новом графе нам нужен помеченный гамильтонов цикл.В матрице Татта теперь будут помеченные переменные:вместо x24 будет x24,C + x24,E .

При вычислении над полем характеристики 2 гамильтоновыциклы по-прежнему не сократятся (из-за специальнойпеременной 1).Всё остальное:

покрытия циклами, в которых используются не всепометки — сократятся по формуле включений-исключений(рассмотрим все 2n/2 подмножеств пометок);негамилтьтоновы покрытия циклами, в которых есть всепометки, разобьются на пары и сократятся (из-за пометок).

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 54 / 62

Page 107: 20130301 np algorithms_kulikov_lecture02-03_tsp

Почему же всё сократится?

В новом графе нам нужен помеченный гамильтонов цикл.В матрице Татта теперь будут помеченные переменные:вместо x24 будет x24,C + x24,E .При вычислении над полем характеристики 2 гамильтоновыциклы по-прежнему не сократятся (из-за специальнойпеременной 1).

Всё остальное:

покрытия циклами, в которых используются не всепометки — сократятся по формуле включений-исключений(рассмотрим все 2n/2 подмножеств пометок);негамилтьтоновы покрытия циклами, в которых есть всепометки, разобьются на пары и сократятся (из-за пометок).

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 54 / 62

Page 108: 20130301 np algorithms_kulikov_lecture02-03_tsp

Почему же всё сократится?

В новом графе нам нужен помеченный гамильтонов цикл.В матрице Татта теперь будут помеченные переменные:вместо x24 будет x24,C + x24,E .При вычислении над полем характеристики 2 гамильтоновыциклы по-прежнему не сократятся (из-за специальнойпеременной 1).Всё остальное:

покрытия циклами, в которых используются не всепометки — сократятся по формуле включений-исключений(рассмотрим все 2n/2 подмножеств пометок);негамилтьтоновы покрытия циклами, в которых есть всепометки, разобьются на пары и сократятся (из-за пометок).

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 54 / 62

Page 109: 20130301 np algorithms_kulikov_lecture02-03_tsp

Почему же всё сократится?

В новом графе нам нужен помеченный гамильтонов цикл.В матрице Татта теперь будут помеченные переменные:вместо x24 будет x24,C + x24,E .При вычислении над полем характеристики 2 гамильтоновыциклы по-прежнему не сократятся (из-за специальнойпеременной 1).Всё остальное:

покрытия циклами, в которых используются не всепометки — сократятся по формуле включений-исключений(рассмотрим все 2n/2 подмножеств пометок);

негамилтьтоновы покрытия циклами, в которых есть всепометки, разобьются на пары и сократятся (из-за пометок).

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 54 / 62

Page 110: 20130301 np algorithms_kulikov_lecture02-03_tsp

Почему же всё сократится?

В новом графе нам нужен помеченный гамильтонов цикл.В матрице Татта теперь будут помеченные переменные:вместо x24 будет x24,C + x24,E .При вычислении над полем характеристики 2 гамильтоновыциклы по-прежнему не сократятся (из-за специальнойпеременной 1).Всё остальное:

покрытия циклами, в которых используются не всепометки — сократятся по формуле включений-исключений(рассмотрим все 2n/2 подмножеств пометок);негамилтьтоновы покрытия циклами, в которых есть всепометки, разобьются на пары и сократятся (из-за пометок).

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 54 / 62

Page 111: 20130301 np algorithms_kulikov_lecture02-03_tsp

Получившийся алгоритм

Рассмотрим многочлен

P(x) =∑S⊆L

perm(MS).

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

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 55 / 62

Page 112: 20130301 np algorithms_kulikov_lecture02-03_tsp

Получившийся алгоритм

Рассмотрим многочлен

P(x) =∑S⊆L

perm(MS).

Как мы уже выяснили, этот многочлен не равен нулю тогдаи только тогда, когда в графе есть гамильтонов цикл.

Проверять, равен он нулю или нет, мы будем вероятностно:подставим случайные значения всем переменным; еслиполучился не ноль, то и многочлен точно не равен нулю; впротивном случае мы могли попасть в корень.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 55 / 62

Page 113: 20130301 np algorithms_kulikov_lecture02-03_tsp

Получившийся алгоритм

Рассмотрим многочлен

P(x) =∑S⊆L

perm(MS).

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

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 55 / 62

Page 114: 20130301 np algorithms_kulikov_lecture02-03_tsp

Проверка равенства нулю многочлена

ЛеммаПусть P — ненулевой многочлен полной степени d над полем F ипусть S ⊆ F. Тогда

Prr1,...,rn∈S{P(r1, . . . , rn) = 0} ≤ d/|S | .

ДоказательствоИндукция по n. При n = 1 утверждение верно, поскольку умногочлена степени d от одной переменной может быть не болееd корней.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 56 / 62

Page 115: 20130301 np algorithms_kulikov_lecture02-03_tsp

Проверка равенства нулю многочлена

ЛеммаПусть P — ненулевой многочлен полной степени d над полем F ипусть S ⊆ F. Тогда

Prr1,...,rn∈S{P(r1, . . . , rn) = 0} ≤ d/|S | .

ДоказательствоИндукция по n. При n = 1 утверждение верно, поскольку умногочлена степени d от одной переменной может быть не болееd корней.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 56 / 62

Page 116: 20130301 np algorithms_kulikov_lecture02-03_tsp

ПереходРазложим многочлен P по степеням переменной xn:

P(x1, . . . , xn) =k∑

i=0

x inPi(x1, . . . , xn−1) ,

где deg(Pi) ≤ d − i , k ≤ d и Pk ≡ 0. Распишем теперь поформуле полной вероятности:

Pr{P(r1, . . . , rn) = 0} =

Pr{P(r1, . . . , rn) = 0 ∧ Pk(r1, . . . , rn−1) = 0}+Pr{P(r1, . . . , rn) = 0 ∧ Pk(r1, . . . , rn−1) = 0} ≤

(d − k)/|S |+ Pr{P(r1, . . . , rn) = 0 | Pk(r1, . . . , rn−1) = 0}(d − k)/|S |+ k/|S | = d/|S |

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 57 / 62

Page 117: 20130301 np algorithms_kulikov_lecture02-03_tsp

Открытые задачи

Открытые задачиТочный алгоритм для задачи о гамильтоновом цикле вориентированных графах за O*(1.99n).

Какое-нибудь константное приближение для metric TSP вориентированных графах.Приближение лучше 1.5 для metric TSP внеориентированных графах.Приближение лучше 2/3 для максимального циклакоммивояжёра.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 58 / 62

Page 118: 20130301 np algorithms_kulikov_lecture02-03_tsp

Открытые задачи

Открытые задачиТочный алгоритм для задачи о гамильтоновом цикле вориентированных графах за O*(1.99n).Какое-нибудь константное приближение для metric TSP вориентированных графах.

Приближение лучше 1.5 для metric TSP внеориентированных графах.Приближение лучше 2/3 для максимального циклакоммивояжёра.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 58 / 62

Page 119: 20130301 np algorithms_kulikov_lecture02-03_tsp

Открытые задачи

Открытые задачиТочный алгоритм для задачи о гамильтоновом цикле вориентированных графах за O*(1.99n).Какое-нибудь константное приближение для metric TSP вориентированных графах.Приближение лучше 1.5 для metric TSP внеориентированных графах.

Приближение лучше 2/3 для максимального циклакоммивояжёра.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 58 / 62

Page 120: 20130301 np algorithms_kulikov_lecture02-03_tsp

Открытые задачи

Открытые задачиТочный алгоритм для задачи о гамильтоновом цикле вориентированных графах за O*(1.99n).Какое-нибудь константное приближение для metric TSP вориентированных графах.Приближение лучше 1.5 для metric TSP внеориентированных графах.Приближение лучше 2/3 для максимального циклакоммивояжёра.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 58 / 62

Page 121: 20130301 np algorithms_kulikov_lecture02-03_tsp

Литература I

Held, M., Karp, R. M.A dynamic programming approach to sequencing problems. 1962.Lin, Shen; Kernighan, B. W.An Effective Heuristic Algorithm for the Traveling-SalesmanProblem. 1973.Christofides, N.Worst-case analysis of a new heuristic for the travelling salesmanproblem. 1973.Kohn, S., Gottlieb, A., Kohn, M.A generating function approach to the traveling salesmanproblem. 1977.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 59 / 62

Page 122: 20130301 np algorithms_kulikov_lecture02-03_tsp

Литература II

Lawler, E. L.; Lenstra, J. K.; Rinnooy Kan, A. H. G.; Shmoys,D. B.The Traveling Salesman Problem: A Guided Tour ofCombinatorial Optimization. 1985.Goldberg, D. E. Genetic Algorithms in Search, Optimization andMachine Learning. 1989.Arora, S.Polynomial time approximation schemes for Euclidean travelingsalesman and other geometric problems. 1998.Applegate, D. L.; Bixby, R. E.; Chvatal, V.; Cook, W. J.The Traveling Salesman Problem: A Computational Study. 2006.Bjorklund, A.Determinant Sums for Undirected Hamiltonicity. 2010.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 60 / 62

Page 123: 20130301 np algorithms_kulikov_lecture02-03_tsp

Литература III

Cook, W.In Pursuit of the Travelling Salesman: Mathematics at the Limitsof Computation. 2011.Paluch, K., Elbassioni, K., Zuylen, A. van.Simpler Approximation of the Maximum Asymmetric TravelingSalesman Problem. 2012.Cygan, M., Kratsch, S., Nederlof, J.Fast Hamiltonicity checking via bases of perfect matchings.2013.

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 61 / 62

Page 124: 20130301 np algorithms_kulikov_lecture02-03_tsp

Спасибо!

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

А. Куликов (ПОМИ РАН) Алгоритмы для задачи коммивояжёра 1–2 марта 2013 62 / 62