Algoritmus Christofides - Christofides algorithm

Christofides algoritmus nebo algoritmus Christofides-Serdyukov je algoritmus pro nalezení přibližné řešení k problému obchodního cestujícího , v případech, kdy jsou vzdálenosti tvoří metrický prostor (jsou symetrické a poslouchat trojúhelník nerovnost ). Jedná se o aproximační algoritmus, který zaručuje, že jeho řešení bude v rozmezí 3/2 optimální délky řešení, a je pojmenován po Nicosovi Christofidesovi a Anatoliji I. Serdyukovovi , kteří jej objevili nezávisle v roce 1976.

Tento algoritmus stále stojí jako nejlepší algoritmus aproximace polynomiálního času, který byl důkladně přezkoumán příslušnou vědeckou komunitou pro problém obchodního cestujícího v obecných metrických prostorech. V červenci 2020 však Karlin, Klein a Gharan vydali předtisk, ve kterém představili nový aproximační algoritmus a tvrdili, že jeho aproximační poměr je 1,5 - 10 −36 . Jejich metoda se řídí podobnými principy jako Christofidesův algoritmus, ale místo náhodného stromu používá náhodně vybraný strom z pečlivě zvoleného náhodného rozdělení.

Algoritmus

Nechť G = ( V , w ) je příkladem problému obchodního cestujícího. To znamená, že G je kompletní graf na množině V vrcholů a funkce w přiřadí každé hraně G nezápornou skutečnou váhu . Podle nerovnosti trojúhelníku by pro každé tři vrcholy u , v a x mělo platit, že w ( uv ) + w ( vx ) ≥ w ( ux ) .

Potom lze algoritmus popsat v pseudokódu následovně.

  1. Vytvořte minimální kostra T a G .
  2. Nechť O je množina vrcholů s lichým stupněm v T . Podle handshaking lemmatu , O má sudý počet vrcholů.
  3. Najděte v indukovaném podgrafu daném vrcholy z O dokonalou shodu M s minimální hmotností .
  4. Zkombinujte hrany M a T a vytvořte spojený multigraf H, ve kterém má každý vrchol rovnoměrný stupeň.
  5. Tvoří Eulerian obvod v H .
  6. Přeměňte obvod nalezený v předchozím kroku na hamiltonovský obvod přeskočením opakovaných vrcholů ( zkratka ).

Aproximační poměr

Cena řešení vytvořeného algoritmem je v rozmezí 3/2 optima. Chcete-li to dokázat, nechte C být optimální prohlídkou obchodního cestujícího. Odstraněním hrany z C vznikne kostra, která musí mít váhu alespoň váhu minimálního kostry, z čehož vyplývá, že w ( T ) ≤ w ( C ) . Dále číslujte vrcholy O v cyklickém pořadí kolem C a rozdělte C na dvě sady cest: ty, ve kterých má první vrchol cesty v cyklickém pořadí liché číslo a ty, ve kterých má první cesta vrchol sudé číslo . Každá sada cest odpovídá dokonalému párování O, které odpovídá dvěma koncovým bodům každé cesty, a váha tohoto párování se maximálně rovná hmotnosti cest. Protože tyto dvě sady cest rozdělení okraje C , jeden ze dvou sad má maximálně polovinu hmotnosti C , a to díky nerovnosti trojúhelníku její odpovídající přizpůsobení má hmotnost, která je také nejvýše polovina hmotnosti C . Dokonalé přizpůsobení minimální hmotnosti nemůže mít větší váhu, takže w ( M ) ≤ w ( C ) / 2 . Přidáním vah T a M získáte váhu turné Euler, maximálně 3 w ( C ) / 2 . Díky nerovnosti trojúhelníku nezkracuje zkratka váhu, takže váha výstupu je také maximálně 3 w ( C ) / 2 .

Dolní hranice

Existují vstupy do problému obchodního cestujícího, které způsobují, že Christofidův algoritmus najde řešení, jehož aproximační poměr je libovolně blízký 3/2. Jedna taková třída vstupů jsou tvořeny cestou z n vrcholů, s okraji dráhy, které mají hmotnost 1 , spolu se sadou hran spojujících vrcholy dva kroky od sebe v dráze s hmotností 1 + ε pro číslo e zvolené blížící se nule, ale pozitivní. Všechny zbývající okraje celého grafu mají vzdálenosti dané nejkratšími cestami v tomto podgrafu. Potom bude minimální kostra dána cestou o délce n - 1 a jedinými dvěma lichými vrcholy budou koncové body cesty, jejichž dokonalé přizpůsobení se skládá z jedné hrany o hmotnosti přibližně n / 2 . Spojení stromu a shody je cyklus bez možných zkratek as váhou přibližně 3 n / 2 . Optimální řešení však používá hrany váhy 1 + ε společně se dvěma hranami hmotnosti 1, které dopadají na koncové body cesty, a má celkovou hmotnost (1 + ε ) ( n - 2) + 2 , blízko n pro malé hodnoty ε . Proto získáme přibližný poměr 3/2.

Příklad

Metrischer Graph mit 5 Knoten.svg Dáno: kompletní graf, jehož okrajové váhy se řídí nerovností trojúhelníku
Christofides MST.svg Vypočítejte minimální kostru T
V'.svg Vypočítejte množinu vrcholů O s lichým stupněm v T
G V'.svg Vytvořte podgraf G pouze s vrcholy O
Christofides Matching.svg Vytvořte v tomto podgrafu dokonalou shodu M s minimální hmotností
TuM.svg Spojte odpovídající a překlenující strom T M a vytvořte euleriánský multigraf
Eulertour.svg Vypočítejte Eulerovu prohlídku
Eulertour bereinigt.svg Odstraňte opakované vrcholy, čímž získáte výstup algoritmu

Reference

externí odkazy