Der Algorithmus von Christofides oder der Algorithmus von Christofides und Serdyukov ist ein Algorithmus, der zur Approximation des metrischen Problem des Handlungsreisenden dient. Er wurde 1976 unabhängig von Nicos Christofides und Anatoliy I. Serdyukov entdeckt und war lange Zeit die beste Approximation des Problems für euklidische Graphen. 1996 stellten Arora und Mitchell für diese jedoch einen besseren Approximationsalgorithmus vor.

Formal geht man ähnlich wie bei der Minimum-Spanning-Tree-Heuristik vor:

  1. Erzeuge einen minimalen aufspannenden Baum  T {\displaystyle T} für den zugrunde liegenden Graphen G = ( V , E ) {\displaystyle G=\left(V,E\right)} mit Kantengewichten.
  2. Suche ein (bezüglich Kantengewicht) minimales perfektes Matching M {\displaystyle M} im Graphen zwischen den Knoten, die ungeraden Grad in dem gerade erzeugten Baum T {\displaystyle T} besitzen.
  3. Füge diese Kanten zu T {\displaystyle T} hinzu. Dabei können Multikanten auftreten. Der entstehende Graph  T M {\displaystyle T\cup M} ist dann eulersch.
  4. Konstruiere eine Eulertour in  T M {\displaystyle T\cup M} .
  5. Konstruiere einen Hamiltonkreis in T M {\displaystyle T\cup M} . Wähle dazu einen beliebigen Startknoten und gehe die Eulertour ab. Ersetze dabei die bereits besuchten Knoten durch direkte Verbindungen (bzw. Abkürzungen) zum nächsten noch nicht besuchten Knoten.

Gütegarantie

Es lässt sich zeigen, dass die Christofides-Heuristik eine 1 , 5 {\displaystyle 1{,}5} -Approximation ist. Das heißt, die so entstandene Rundreise ist maximal um die Hälfte länger als die optimale Tour. Der Beweis beruht dabei auf einer wiederholten Anwendung der Dreiecksungleichung.

  • Die Summe der Kantengewichte im Minimum-Spanning-Tree (MST) ist sowieso kleiner gleich der optimalen Lösung, da jede Lösung des Traveling Salesman Problem (TSP) einen Spannbaum enthält.
  • Bezüglich des Matchings gilt folgendes:
    Sei i 1 , , i n {\displaystyle i_{1},\ldots ,i_{n}} die Folge der Knoten vormals ungeraden Grades in der optimalen Lösung; dazwischen liegen irgendwelche anderen Knoten: a i 1 b i 2 c i n {\displaystyle a-i_{1}-b-i_{2}-c-\cdots -i_{n}} . Betrachte die beiden Matchings { { i 1 , i 2 } , { i 3 , i 4 } , { i n 1 , i n } } {\displaystyle \left\{\left\{i_{1},i_{2}\right\},\left\{i_{3},i_{4}\right\},\ldots \left\{i_{n-1},i_{n}\right\}\right\}} sowie { { i 2 , i 3 } , { i 4 , i 5 } , { i n , i 1 } } {\displaystyle \left\{\left\{i_{2},i_{3}\right\},\left\{i_{4},i_{5}\right\},\ldots \left\{i_{n},i_{1}\right\}\right\}} . Dann gilt aufgrund der Dreiecksungleichung, dass c ( i 1 , i 2 ) c ( i 1 , b ) c ( b , i 2 ) , c ( i 2 , i 3 ) c ( i 2 , c ) c ( c , i 3 ) , {\displaystyle c(i_{1},i_{2})\leq c(i_{1},b) c(b,i_{2}),c(i_{2},i_{3})\leq c(i_{2},c) c(c,i_{3}),\ldots }
    Also sind die Gesamtkosten der optimalen Lösung größer gleich derer zweier beliebiger Matchings, insbesondere also zwei Mal des minimalen Matchings. Dann ist ein minimales Matching auch nur maximal halb so groß wie die optimale Lösung. So lässt sich die Summe der Kantengewichte entlang der Eulertour in T M {\displaystyle T\cup M} (d. h. die Summe der Gewichte aller Kanten in T M {\displaystyle T\cup M} ) nach oben hin abschätzen.
  • Schließlich lässt sich die Summe der Kanten in dem aus der Eulertour erzeugten Hamiltonkreis durch erneutes Anwenden der Dreiecksungleichung nach oben hin durch die Summe der Kanten in der Eulertour abschätzen (denn die Direktkanten können nicht länger sein als die Verbindung über einen schon früher besuchten Knoten), also transitiv durch das 1,5-Fache der optimalen Lösung.

Beispiel

Literatur

  • Lawler, Lenstra, Rinnooy Kan, Shmoys (Hrsg.): The Traveling Salesman Problem. A Guided Tour of Combinatorial Optimization. Wiley, Chichester 1985. ISBN 0-471-90413-9, Abschnitt 5.3.4: Christofides' algorithm

Weblinks

  • Foliensatz mit grafischer Visualisierung des Algorithmus (PDF, 154 KiB)

Einzelnachweise


Was ist ein Algorithmus? Definition, Eigenschaften und Beispiele

Der erweiterte euklidische Algorithmus (Theorie + Erklärung) YouTube

Was ist ein Algorithmus? CINTELLIC Consulting

Was ist ein Algorithmus? Artificial Creativity

Euklidischer Algorithmus • Schritt für Schritt erklärt · [mit Video]