Algorytm Christofidesa

Algorytm Christofidesa – algorytm aproksymacyjny znajdujący rozwiązanie problemu komiwojażera w grafach w których wagi krawędzi są nieujemne i spełniają warunek nierówności trójkąta. Algorytm jest 1,5-optymalny, to znaczy, że znalezione rozwiązanie będzie nie gorsze niż 1,5 rozwiązania optymalnego.

Algorytm

Niech G {\displaystyle G} będzie grafem pełnym.

  1. Dla grafu G {\displaystyle G} stwórzmy minimalne drzewo rozpinające T . {\displaystyle T.}
  2. Niech O {\displaystyle O} będzie zbiorem wierzchołków o nieparzystym stopniu w T . {\displaystyle T.} Znajdźmy minimalne skojarzenie doskonałe M {\displaystyle M} na wierzchołkach O {\displaystyle O} spośród krawędzi grafu pełnego G . {\displaystyle G.}
  3. Niech H {\displaystyle H} będzie multigrafem utworzonym z M {\displaystyle M} i T . {\displaystyle T.}
  4. Wyznaczmy cykl Eulera w grafie H {\displaystyle H} (graf H {\displaystyle H} jest eulerowski, ponieważ ma wszystkie wierzchołki parzystego stopnia).
  5. Z cyklu Eulera zróbmy cykl Hamiltona poprzez pomijanie odwiedzonych wierzchołków (skracanie).

Dowód 1,5 optymalności

Oznaczmy rozwiązanie optymalne problemu komiwojażera w G {\displaystyle G} jako O P T . {\displaystyle OPT.} Zachodzi w ( T ) < O P T , {\displaystyle w(T)<OPT,} ponieważ po usunięciu jednej z krawędzi z O P T {\displaystyle OPT} powstaje drzewo rozpinające, które nie może być mniejsze od minimalnego drzewa rozpinającego T . {\displaystyle T.} Ponadto zachodzi w ( M ) <= O P T / 2. {\displaystyle w(M)<=OPT/2.} Wynika to z faktu iż O {\displaystyle O} jest podgrafem G , {\displaystyle G,} a więc rozwiązanie problemu komiwojażera w O {\displaystyle O} jest nie większe niż O P T , {\displaystyle OPT,} oraz z faktu iż to rozwiązanie można podzielić na dwa uzupełniające się skojarzenia z których przynajmniej jedno musi być nie większe niż O P T / 2. {\displaystyle OPT/2.} W takim razie waga w ( H ) = w ( M ) + w ( T ) < 1 , 5 O P T . {\displaystyle w(H)=w(M)+w(T)<1{,}5*OPT.} W grafie spełniającym nierówność trójkąta, operacja skracania nie może wydłużyć cyklu, więc waga uzyskanego cyklu Hamiltona jest równa 1 , 5 O P T . {\displaystyle 1{,}5*OPT.}

Bibliografia

  • NIST Christofides Algorithm Definition