Algorytm Christofidesa

Algorytm Christofidesa

Algorytm Christofidesa to algorytm aproksymacyjny, który rozwiązuje problem komiwojażera w grafach, gdzie wagi krawędzi są nieujemne i spełniają warunek nierówności trójkąta. Jest on 1,5-optymalny, co oznacza, że uzyskane rozwiązanie nie jest gorsze niż 1,5-krotność rozwiązania optymalnego.

Opis algorytmu

Rozważmy graf G, który jest grafem pełnym. Dla tego grafu stworzymy minimalne drzewo rozpinające, oznaczane jako T.

Niech zbiór O zawiera wierzchołki o nieparzystym stopniu w drzewie T. Następnie znajdźmy minimalne skojarzenie doskonałe M na wierzchołkach zbioru O spośród krawędzi grafu pełnego G.

Niech graf H będzie multigrafem utworzonym z M i T. Następnie wyznaczamy cykl Eulera w grafie H, który jest eulerowski, ponieważ wszystkie jego wierzchołki mają parzysty stopień. Z cyklu Eulera tworzymy cykl Hamiltona, pomijając już odwiedzone wierzchołki (skracanie).

Dowód 1,5 optymalności

Oznaczmy optymalne rozwiązanie problemu komiwojażera w grafie G jako OPT. Wówczas zachodzi:

w(T) < OPT,

gdyż po usunięciu jednej krawędzi z OPT otrzymujemy drzewo rozpinające, które nie może być mniejsze od minimalnego drzewa T.

Oprócz tego, mamy:

w(M) ≤ OPT / 2.

Wynika to z faktu, że O jest podgrafem G, co oznacza, że rozwiązanie problemu komiwojażera w O jest nie większe niż OPT. Dodatkowo, to rozwiązanie można podzielić na dwa uzupełniające się skojarzenia, z których przynajmniej jedno musi być nie większe niż OPT / 2.

W rezultacie, mamy:

w(H) = w(M) + w(T) < 1.5 * OPT.

W grafie, który spełnia 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 * OPT.

Bibliografia

NIST Christofides Algorithm Definition

Przeczytaj u przyjaciół: