2. Определение
Эйлеровым путем в графе называется произвольный путь,
проходящий через каждое ребро графа в точности один раз.
Определение
Замкнутый эйлеров путь называется эйлеровым обходом или
эйлеровым циклом.
Определение
Эйлеров граф — граф, в котором существует эйлеров обход.
2 / 18
3. Теорема
Эйлеров цикл существует ⇔ граф связный и все его вершины четной
степени.
Доказательство.
Достаточность ← алгоритм нахождения эйлерова пути.
Необходимость: если некоторая вершина v появляется в эйлеровом
обходе k раз, то это означает, что степень этой вершины в графе
составляет 2k.
3 / 18
5. Задача
«Коммивояжер», «TSPa ». Заданы неориентированный граф из n
вершин-городов, и dij ≡ d(vi , vj ) — положительные целые расстояния
между городами.
Чему равна наименьшая возможная длина кольцевого маршрута,
проходящего по одному разу через все города? Т.е. нужно найти
минимально возможное значение суммы
n−1
min dpi ,pi+1 + dpn ,p1 , (1)
1 2 . . . n i=1
p∈
. . . .
где минимум берется по всем перестановкам p чисел 1, . . . , n.
a
В англоязычной литературе — Traveling Salesman Problem.
5 / 18
6. Определение
Задача коммивояжера (задача «TSP») называется метрической,
если для матрицы расстояний выполнено неравенство треугольника:
∀i, j, k dik ≤ dij + djk .
В метрической TSP — граф должен быть полным!
Лемма
Метрическая задача коммивояжера N P-полна.
Доказательство.
1 Гамильтонов цикл (единичные веса) — N P-полна.
2 Дополним до полного графа ребрами с весом 2.
3 Граф с весами 1 и 2 — метрический.
4 Если оптимум не включает в себя ребра с весом 2 — то это
гамильтонов цикл для исходного графа.
6 / 18
7. Определение
Задача коммивояжера (задача «TSP») называется метрической,
если для матрицы расстояний выполнено неравенство треугольника:
∀i, j, k dik ≤ dij + djk .
В метрической TSP — граф должен быть полным!
Лемма
Метрическая задача коммивояжера N P-полна.
Доказательство.
1 Гамильтонов цикл (единичные веса) — N P-полна.
2 Дополним до полного графа ребрами с весом 2.
3 Граф с весами 1 и 2 — метрический.
4 Если оптимум не включает в себя ребра с весом 2 — то это
гамильтонов цикл для исходного графа.
7 / 18
8. Определение
Задача коммивояжера (задача «TSP») называется метрической,
если для матрицы расстояний выполнено неравенство треугольника:
∀i, j, k dik ≤ dij + djk .
В метрической TSP — граф должен быть полным!
Лемма
Метрическая задача коммивояжера N P-полна.
Доказательство.
1 Гамильтонов цикл (единичные веса) — N P-полна.
2 Дополним до полного графа ребрами с весом 2.
3 Граф с весами 1 и 2 — метрический.
4 Если оптимум не включает в себя ребра с весом 2 — то это
гамильтонов цикл для исходного графа.
8 / 18
9. Определение
Задача коммивояжера (задача «TSP») называется метрической,
если для матрицы расстояний выполнено неравенство треугольника:
∀i, j, k dik ≤ dij + djk .
В метрической TSP — граф должен быть полным!
Лемма
Метрическая задача коммивояжера N P-полна.
Доказательство.
1 Гамильтонов цикл (единичные веса) — N P-полна.
2 Дополним до полного графа ребрами с весом 2.
3 Граф с весами 1 и 2 — метрический.
4 Если оптимум не включает в себя ребра с весом 2 — то это
гамильтонов цикл для исходного графа.
9 / 18
10. Задача
«Минимальное остовное дерево» (Minimum Spanning Tree)
Задан связный неориентированный граф G = (V , E ), где
V —множество вершин, |V | = n, E —множество ребер между ними,
и весовая функция w : E → Z +. Иными словами, есть n вершин
v1 , . . . , vn и положительные целые веса дуг wij ≡ w (vi , vj )a между ними.
Требуется найти наименьший возможный вес остовного дерева, т.е.
min w (vi , vj ), (2)
(i,j)∈T
где минимум берется по всем остовным деревьям на n вершинах (по
всем множествам T из (n − 1) дуг, связывающим все n вершин
в единую сеть).
a
Можно вводить веса на ребрах, как we , e ∈ E .
10 / 18
11. Приближенный алгоритм-1 для метрической «TSP»
1 Найти минимальное остовное дерево T с матрицей весов [dij ].
2 Построить эйлеров граф G и эйлеров обход в G , продублировав
все ребра дерева T .
3 Из эйлерова маршрута (обхода) гамильтонов цикл строится путем
последовательного вычеркивания вершин, встретившихся ранее.
v12 v13 v14 v15
v12 v13 v14 v15 v12 v13 v14 v15
v8 v9 v10 v11
v8 v9 v10 v11 v8 v9 v10 v11
v4 v5 v6 v7
v4 v5 v6 v7 v4 v5 v6 v7
v0 v1 v2 v3
v0 v1 v2 v3 v0 v1 v2 v3
11 / 18
12. Алгоритм-1 2-приближенный
Доказательство.
1 Кратчайший гамильтонов цикл не меньше MST.
2 Длина эйлерова маршрута в G равна двум MST.
3 Неравенство треугольника ⇒ полученный гамильтонов цикл не
длиннее эйлерова обхода ⇒ не длиннее двух MST ⇒ ...
v12 v13 v14 v15
v12 v13 v14 v15 v12 v13 v14 v15
v8 v9 v10 v11
v8 v9 v10 v11 v8 v9 v10 v11
v4 v5 v6 v7
v4 v5 v6 v7 v4 v5 v6 v7
v0 v1 v2 v3
v0 v1 v2 v3 v0 v1 v2 v3
12 / 18
13. Определение
Паросочетаниеa — подмножество ребер графа, такое, что никакие
два ребра из этого подмножества не инцидентны какой-либо одной
вершине.
a
Matching в англоязычной литературе.
Определение
Совершенное паросочетаниеa — паросочетание, покрывающее все
вершины графа.
a
Perfect matching в англоязычной литературе.
13 / 18
14. Алгоритм Кристофидеса для метрической «TSP»
1 Найти MST T .
2 N(T ) — вершины нечетной степени в T
3 M — кратчайшее совершенное паросочетание с множеством
вершин N(T ).
4 Построить эйлеров граф GE с множеством вершин {v1 , . . . , vn }
и множеством ребер T ∪ M.
5 Найти эйлеров обход PE в GE .
6 Построить гамильтонов цикл PH из PE последовательным
вычеркиванием посещенных вершин.
v12 v13 v14 v15 v12 v13 v14 v15 v12 v13 v14 v15 v12 v13 v14 v15
v8 v9 v10 v11 v8 v9 v10 v11 v8 v9 v10 v11 v8 v9 v10 v11
v4 v5 v6 v7 v4 v5 v6 v7 v4 v5 v6 v7 v4 v5 v6 v7
v0 v1 v2 v3 v0 v1 v2 v3 v0 v1 v2 v3 v0 v1 v2 v3
14 / 18