• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Christofides
 

Christofides

on

  • 693 views

 

Statistics

Views

Total Views
693
Views on SlideShare
693
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Christofides Christofides Presentation Transcript

    • Алгоритм Кристофидеса Н.Н. Кузюрин С.А. Фомин 10 октября 2008 г. 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 1 / 18
    • Определение Эйлеровым путем в графе называется произвольный путь, проходящий через каждое ребро графа в точности один раз. Определение Замкнутый эйлеров путь называется эйлеровым обходом или эйлеровым циклом. Определение Эйлеров граф — граф, в котором существует эйлеров обход. 2 / 18
    • Теорема Эйлеров цикл существует ⇔ граф связный и все его вершины четной степени. Доказательство. Достаточность ← алгоритм нахождения эйлерова пути. Необходимость: если некоторая вершина v появляется в эйлеровом обходе k раз, то это означает, что степень этой вершины в графе составляет 2k. 3 / 18
    • Алгоритм нахождения Эйлерова цикла [0] + 0 : < 1 2 3 4 0 > -> [0, 1, 2, 3, 4, 0] [0, 1, 2, 3, 4, 0] + 1 : < 4 1 > -> [0, 1, 4, 1, 2, 3, 4, 0] [0, 1, 4, 1, 2, 3, 4, 0] 2 5 4 2 3 6 3 1 4 1 0 7 4 / 18
    • Задача «Коммивояжер», «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
    • Определение Задача коммивояжера (задача «TSP») называется метрической, если для матрицы расстояний выполнено неравенство треугольника: ∀i, j, k dik ≤ dij + djk . В метрической TSP — граф должен быть полным! Лемма Метрическая задача коммивояжера N P-полна. Доказательство. 1 Гамильтонов цикл (единичные веса) — N P-полна. 2 Дополним до полного графа ребрами с весом 2. 3 Граф с весами 1 и 2 — метрический. 4 Если оптимум не включает в себя ребра с весом 2 — то это гамильтонов цикл для исходного графа. 6 / 18
    • Определение Задача коммивояжера (задача «TSP») называется метрической, если для матрицы расстояний выполнено неравенство треугольника: ∀i, j, k dik ≤ dij + djk . В метрической TSP — граф должен быть полным! Лемма Метрическая задача коммивояжера N P-полна. Доказательство. 1 Гамильтонов цикл (единичные веса) — N P-полна. 2 Дополним до полного графа ребрами с весом 2. 3 Граф с весами 1 и 2 — метрический. 4 Если оптимум не включает в себя ребра с весом 2 — то это гамильтонов цикл для исходного графа. 7 / 18
    • Определение Задача коммивояжера (задача «TSP») называется метрической, если для матрицы расстояний выполнено неравенство треугольника: ∀i, j, k dik ≤ dij + djk . В метрической TSP — граф должен быть полным! Лемма Метрическая задача коммивояжера N P-полна. Доказательство. 1 Гамильтонов цикл (единичные веса) — N P-полна. 2 Дополним до полного графа ребрами с весом 2. 3 Граф с весами 1 и 2 — метрический. 4 Если оптимум не включает в себя ребра с весом 2 — то это гамильтонов цикл для исходного графа. 8 / 18
    • Определение Задача коммивояжера (задача «TSP») называется метрической, если для матрицы расстояний выполнено неравенство треугольника: ∀i, j, k dik ≤ dij + djk . В метрической TSP — граф должен быть полным! Лемма Метрическая задача коммивояжера N P-полна. Доказательство. 1 Гамильтонов цикл (единичные веса) — N P-полна. 2 Дополним до полного графа ребрами с весом 2. 3 Граф с весами 1 и 2 — метрический. 4 Если оптимум не включает в себя ребра с весом 2 — то это гамильтонов цикл для исходного графа. 9 / 18
    • Задача «Минимальное остовное дерево» (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
    • Приближенный алгоритм-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
    • Алгоритм-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
    • Определение Паросочетаниеa — подмножество ребер графа, такое, что никакие два ребра из этого подмножества не инцидентны какой-либо одной вершине. a Matching в англоязычной литературе. Определение Совершенное паросочетаниеa — паросочетание, покрывающее все вершины графа. a Perfect matching в англоязычной литературе. 13 / 18
    • Алгоритм Кристофидеса для метрической «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
    • Алгоритм Кристофидеса — 3 -приближенный 2 ∗ GE — эйлеров и связен. PH — результат. PH — оптимум. c(PH ) ≤ c(PE ) = c(GE ) = c(T ) + c(M). ∗ c(T ) ≤ c(PH ) ≤ c(PH ). 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 15 / 18
    • Алгоритм Кристофидеса — 3 -приближенный 2 ∗ i1 , i2 , . . . , i2m — вершины нечетной степени в T (в порядке PH ). Рассмотрим паросочетания: M1 = {i1 , i2 }, {i3 , i4 }, . . . , {i2m−1 , i2m }, M2 = {i2 , i3 }, {i4 , i5 }, . . . , {i2m , i1 }. ∗ Из неравенства треугольника ⇒ c(PH ) ≥ c(M1 ) + c(M2 ). M — кратчайшее ⇒ c(M1 ) ≥ c(M), c(M2 ) ≥ c(M). ∗ 1 ∗ c(PH ) ≥ 2c(M) ⇒ c(M) ≤ c(PH ). 2 ∗ 1 ∗ 3 ∗ c(PH ) ≤ c(T ) + c(M) ≤ c(PH ) + c(PH ) = c(PH ). 2 2 v12 v13 v14 v15 v12 v13 v14 v15 v8 v9 v10 v11 v8 v9 v10 v11 v4 v5 v6 v7 v4 v5 v6 v7 v0 v1 v2 v3 v0 v1 v2 v3 16 / 18
    • Алгоритм Кристофидеса — 3 -приближенный 2 ∗ i1 , i2 , . . . , i2m — вершины нечетной степени в T (в порядке PH ). Рассмотрим паросочетания: M1 = {i1 , i2 }, {i3 , i4 }, . . . , {i2m−1 , i2m }, M2 = {i2 , i3 }, {i4 , i5 }, . . . , {i2m , i1 }. ∗ Из неравенства треугольника ⇒ c(PH ) ≥ c(M1 ) + c(M2 ). M — кратчайшее ⇒ c(M1 ) ≥ c(M), c(M2 ) ≥ c(M). ∗ 1 ∗ c(PH ) ≥ 2c(M) ⇒ c(M) ≤ c(PH ). 2 ∗ 1 ∗ 3 ∗ c(PH ) ≤ c(T ) + c(M) ≤ c(PH ) + c(PH ) = c(PH ). 2 2 v12 v13 v14 v15 v12 v13 v14 v15 v8 v9 v10 v11 v8 v9 v10 v11 v4 v5 v6 v7 v4 v5 v6 v7 v0 v1 v2 v3 v0 v1 v2 v3 17 / 18
    • Интернет поддержка курса http://discopal.ispras.ru/ Вопросы? 18 / 18