SlideShare a Scribd company logo
1 of 18
Download to read offline
Алгоритм Кристофидеса

                       Н.Н. Кузюрин                   С.А. Фомин



                               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

More Related Content

What's hot

Системы мониторинга и аналитики поведения пользователей
Системы мониторинга и аналитики поведения пользователейСистемы мониторинга и аналитики поведения пользователей
Системы мониторинга и аналитики поведения пользователейDmitry Satin
 
ObjectXPathNavigator - Как и зачем?
ObjectXPathNavigator - Как и зачем?ObjectXPathNavigator - Как и зачем?
ObjectXPathNavigator - Как и зачем?SQALab
 
ObjectXPathNavigator - как и зачем?
ObjectXPathNavigator - как и зачем?ObjectXPathNavigator - как и зачем?
ObjectXPathNavigator - как и зачем?Andrew Mayorov
 
Платформы Java и .NET. Современные концепции ООП
Платформы Java и .NET. Современные концепции ООППлатформы Java и .NET. Современные концепции ООП
Платформы Java и .NET. Современные концепции ООПBoris Volfson
 
кеширование в бд
кеширование в бдкеширование в бд
кеширование в бдMax Lapshin
 
Zepter Tuttoluxo Manual
Zepter Tuttoluxo ManualZepter Tuttoluxo Manual
Zepter Tuttoluxo ManualNatalia Zepter
 
кто же расстанется со своим
кто же расстанется со своимкто же расстанется со своим
кто же расстанется со своимTimur AITOV
 
Построение индекса по иерархии записей в реляционной БД
Построение индекса по иерархии записей в реляционной БДПостроение индекса по иерархии записей в реляционной БД
Построение индекса по иерархии записей в реляционной БДAndrew Mayorov
 
Amayorov Hindex
Amayorov HindexAmayorov Hindex
Amayorov Hindexsef2009
 
SPBNET: webdev company profile
SPBNET: webdev company profileSPBNET: webdev company profile
SPBNET: webdev company profileIrina Zimitskaya
 
Установка производства полимербитума вязкого ПБВ, модификация битумов полимер...
Установка производства полимербитума вязкого ПБВ, модификация битумов полимер...Установка производства полимербитума вязкого ПБВ, модификация битумов полимер...
Установка производства полимербитума вязкого ПБВ, модификация битумов полимер...GlobeCore
 
Derandomization Luby
Derandomization LubyDerandomization Luby
Derandomization LubyStas Fomin
 
присяжный Root Conf2009 Beta 1
присяжный Root Conf2009 Beta 1присяжный Root Conf2009 Beta 1
присяжный Root Conf2009 Beta 1Liudmila Li
 

What's hot (18)

Inter@Ctive Web Office
Inter@Ctive Web OfficeInter@Ctive Web Office
Inter@Ctive Web Office
 
Системы мониторинга и аналитики поведения пользователей
Системы мониторинга и аналитики поведения пользователейСистемы мониторинга и аналитики поведения пользователей
Системы мониторинга и аналитики поведения пользователей
 
Xrumme
XrummeXrumme
Xrumme
 
ObjectXPathNavigator - Как и зачем?
ObjectXPathNavigator - Как и зачем?ObjectXPathNavigator - Как и зачем?
ObjectXPathNavigator - Как и зачем?
 
ObjectXPathNavigator - как и зачем?
ObjectXPathNavigator - как и зачем?ObjectXPathNavigator - как и зачем?
ObjectXPathNavigator - как и зачем?
 
Платформы Java и .NET. Современные концепции ООП
Платформы Java и .NET. Современные концепции ООППлатформы Java и .NET. Современные концепции ООП
Платформы Java и .NET. Современные концепции ООП
 
кеширование в бд
кеширование в бдкеширование в бд
кеширование в бд
 
Xen virtualization
Xen virtualizationXen virtualization
Xen virtualization
 
02 04
02 0402 04
02 04
 
Zepter Tuttoluxo Manual
Zepter Tuttoluxo ManualZepter Tuttoluxo Manual
Zepter Tuttoluxo Manual
 
кто же расстанется со своим
кто же расстанется со своимкто же расстанется со своим
кто же расстанется со своим
 
MTS 2008 Financial Results
MTS 2008 Financial ResultsMTS 2008 Financial Results
MTS 2008 Financial Results
 
Построение индекса по иерархии записей в реляционной БД
Построение индекса по иерархии записей в реляционной БДПостроение индекса по иерархии записей в реляционной БД
Построение индекса по иерархии записей в реляционной БД
 
Amayorov Hindex
Amayorov HindexAmayorov Hindex
Amayorov Hindex
 
SPBNET: webdev company profile
SPBNET: webdev company profileSPBNET: webdev company profile
SPBNET: webdev company profile
 
Установка производства полимербитума вязкого ПБВ, модификация битумов полимер...
Установка производства полимербитума вязкого ПБВ, модификация битумов полимер...Установка производства полимербитума вязкого ПБВ, модификация битумов полимер...
Установка производства полимербитума вязкого ПБВ, модификация битумов полимер...
 
Derandomization Luby
Derandomization LubyDerandomization Luby
Derandomization Luby
 
присяжный Root Conf2009 Beta 1
присяжный Root Conf2009 Beta 1присяжный Root Conf2009 Beta 1
присяжный Root Conf2009 Beta 1
 

More from Stas Fomin

average-knapsack.beam.pdf
average-knapsack.beam.pdfaverage-knapsack.beam.pdf
average-knapsack.beam.pdfStas Fomin
 
Levenstein distance.beam
Levenstein distance.beamLevenstein distance.beam
Levenstein distance.beamStas Fomin
 
testopia-missing-link
testopia-missing-linktestopia-missing-link
testopia-missing-linkStas Fomin
 
«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...Stas Fomin
 
Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Stas Fomin
 
Mindmaps: история и идеология
Mindmaps: история и идеологияMindmaps: история и идеология
Mindmaps: история и идеологияStas Fomin
 
Теория ограничений и Линейное программирование
Теория ограничений и Линейное программированиеТеория ограничений и Линейное программирование
Теория ограничений и Линейное программированиеStas Fomin
 
Введение в Subversion
Введение в SubversionВведение в Subversion
Введение в SubversionStas Fomin
 
Fake Flash Drives from TopKeen
Fake Flash Drives from TopKeenFake Flash Drives from TopKeen
Fake Flash Drives from TopKeenStas Fomin
 
Randomized Complexity
Randomized ComplexityRandomized Complexity
Randomized ComplexityStas Fomin
 
P Reducibility And Npc
P Reducibility And NpcP Reducibility And Npc
P Reducibility And NpcStas Fomin
 
Probabilistically Checkable Proofs
Probabilistically Checkable ProofsProbabilistically Checkable Proofs
Probabilistically Checkable ProofsStas Fomin
 
Packing Average
Packing AveragePacking Average
Packing AverageStas Fomin
 
Obfuscation Curstate Review
Obfuscation Curstate ReviewObfuscation Curstate Review
Obfuscation Curstate ReviewStas Fomin
 
Max Cut Semidefinite
Max Cut SemidefiniteMax Cut Semidefinite
Max Cut SemidefiniteStas Fomin
 
Intro And Samples
Intro And SamplesIntro And Samples
Intro And SamplesStas Fomin
 
Greedy Knapsack
Greedy KnapsackGreedy Knapsack
Greedy KnapsackStas Fomin
 
Greedy Covering Almost Ok
Greedy Covering Almost OkGreedy Covering Almost Ok
Greedy Covering Almost OkStas Fomin
 

More from Stas Fomin (20)

average-knapsack.beam.pdf
average-knapsack.beam.pdfaverage-knapsack.beam.pdf
average-knapsack.beam.pdf
 
Levenstein distance.beam
Levenstein distance.beamLevenstein distance.beam
Levenstein distance.beam
 
testopia-missing-link
testopia-missing-linktestopia-missing-link
testopia-missing-link
 
«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...
 
Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?
 
Mindmaps: история и идеология
Mindmaps: история и идеологияMindmaps: история и идеология
Mindmaps: история и идеология
 
Теория ограничений и Линейное программирование
Теория ограничений и Линейное программированиеТеория ограничений и Линейное программирование
Теория ограничений и Линейное программирование
 
Введение в Subversion
Введение в SubversionВведение в Subversion
Введение в Subversion
 
Fake Flash Drives from TopKeen
Fake Flash Drives from TopKeenFake Flash Drives from TopKeen
Fake Flash Drives from TopKeen
 
Randomized Complexity
Randomized ComplexityRandomized Complexity
Randomized Complexity
 
Ptas Knapsack
Ptas KnapsackPtas Knapsack
Ptas Knapsack
 
P Reducibility And Npc
P Reducibility And NpcP Reducibility And Npc
P Reducibility And Npc
 
Probabilistically Checkable Proofs
Probabilistically Checkable ProofsProbabilistically Checkable Proofs
Probabilistically Checkable Proofs
 
Packing Average
Packing AveragePacking Average
Packing Average
 
Obfuscation Curstate Review
Obfuscation Curstate ReviewObfuscation Curstate Review
Obfuscation Curstate Review
 
Max Cut Semidefinite
Max Cut SemidefiniteMax Cut Semidefinite
Max Cut Semidefinite
 
Intro Erevan
Intro ErevanIntro Erevan
Intro Erevan
 
Intro And Samples
Intro And SamplesIntro And Samples
Intro And Samples
 
Greedy Knapsack
Greedy KnapsackGreedy Knapsack
Greedy Knapsack
 
Greedy Covering Almost Ok
Greedy Covering Almost OkGreedy Covering Almost Ok
Greedy Covering Almost Ok
 

Christofides

  • 1. Алгоритм Кристофидеса Н.Н. Кузюрин С.А. Фомин 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. Определение Эйлеровым путем в графе называется произвольный путь, проходящий через каждое ребро графа в точности один раз. Определение Замкнутый эйлеров путь называется эйлеровым обходом или эйлеровым циклом. Определение Эйлеров граф — граф, в котором существует эйлеров обход. 2 / 18
  • 3. Теорема Эйлеров цикл существует ⇔ граф связный и все его вершины четной степени. Доказательство. Достаточность ← алгоритм нахождения эйлерова пути. Необходимость: если некоторая вершина v появляется в эйлеровом обходе k раз, то это означает, что степень этой вершины в графе составляет 2k. 3 / 18
  • 4. Алгоритм нахождения Эйлерова цикла [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
  • 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
  • 15. Алгоритм Кристофидеса — 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
  • 16. Алгоритм Кристофидеса — 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
  • 17. Алгоритм Кристофидеса — 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