Das Traveling Salesman Problem Was ist die kürzeste Rundtour durch 80 deutsche Städte? Melanie Herzog∗ Wolfgang Ferdinand Riedl† Lehrstuhl M9 für Angewandte Geometrie und Diskrete Mathematik Technische Universität München Voraussetzungen: Grundlagen: Graphen und Grundlagen: Kombinatorische Explosion 1 Motivation Das Traveling Salesman Problem (oder Problem des Handlungsreisenden) ist ein sehr altes und bekanntes Problem. Seine Fragestellung ist zugleich sehr einfach zu erklären und schwer zu lösen. Für einen gegebenen Graphen sucht man eine möglichst kurze Rundtour, welche alle Knoten besucht (siehe Abbildung 1). (a) Deutschlandkarte mit 80 Städten Dieses Problem tauchte bereits im Jahr (b) Rundreise durch die 80 Städte 1 Abbildung 1: Wie ndet man eine kürzeste Rundtour durch 80 deutsche Städte? 1832 das erste Mal in einem Handbuch für Handlungsreisende auf. Das erste Mal als mathematisches Problem wurde es 1930 erwähnt. Durch seine vielfältigen Anwendungen in der Logistikplanung war das Problem schnell sehr bekannt. Da es häug sehr einfach ist, gute Lösungen zu nden, der Beweis deren Güte jedoch alles andere als leicht ist, wurde es bald bei Mathematikern beliebt, wenn sie neue Optimierungsverfahren testen wollten. ∗ [email protected] † [email protected] 1 Quelle: TSP Spiel des Lehrstuhl M9 der Technische Universität München (siehe [6]) 1 So wurden an Hand des Traveling Salesman Problem viele neue Optimierungsmethoden entwickelt, welche dann auch auf andere Problemstellungen angewandt und weiterentwickelt wurden. Diese neuen Verfahren sollten einerseits schneller optimale Lösungen berechnen und andererseits das Lösen von gröÿeren Problemklassen ermöglichen. So ist man heute in der Lage, eine Rundtour durch 1, 904, 711 Städte auf der ganzen Welt zu berechnen und 0.076% länger ist als die optimale Tour (siehe kann beweisen, dass diese Lösung maximal Abbildung 2). Abbildung 2: Eine fast optimale Tour durch 2 Quelle: 1, 904, 711 http://www.tsp.gatech.edu/world/pictures.html 2 Städte der Welt. 2 2 Denition Das Traveling Salesman Problem kann wie folgt deniert werden: Denition 2.1 (Traveling Salesman Problem): Eingabe: Ausgabe: G = (V, E, c) ein ungerichteter, gewichteter Graph mit c : E → R. P Ein Kreis C minimaler Länge (d.h. e∈C c(e) soll möglichst klein sein), der alle Knoten in V besucht. Sei Eine Annahme, welche häug getroen wird, ist eine bestimmte Anforderung an die Kantengewichte des Graphen. Denition 2.2 (Dreiecksungleichung): Der gewichtete Graph G = (V, E, c) erfüllt die Dreiecksungleichung, falls gilt: c(i, j) ≤ c(i, k) + c(k, j) für alle i, j, k ∈ V. Die Dreiecksungleichung fordert also nichts anderes, als dass die Kosten einer Kante den Kosten einer kürzesten Verbindung zwischen den zwei Endknoten der Kante entsprechen. 3 Heuristische Lösungsverfahren Wie bereits erwähnt, ist es für das Traveling Salesman Problem relativ leicht, Verfahren zu nden, welche schnell gute Lösungen berechnen. Bei den meisten dieser Verfahren weiÿ man jedoch nicht, wie gut die gefundene Lösung ist (d.h. insbesondere, ob sie optimal ist oder wie weit sie von der optimalen Lösung abweicht). Diese Verfahren werden Heuristiken genannt. Im Folgenden werden wir zwei einfache Heuristiken für das Problem des Handlungsreisenden vorstellen. Für diese werden wir auÿerdem Beispiele präsentieren, für welche sie besonders schlecht funktionieren oder falls das möglich ist Garantien, für die Qualität ihrer Lösung. Beide Heuristiken wurden für Graphen entwickelt, welche die Dreiecksungleichung erfüllen (siehe Denition 2.2). 3.1 Nearest Neighbor Heuristik Das Prinzip der Nearest Neighbor Heuristik ist sehr einfach zu verstehen. Man beginnt die Tour mit einem beliebigen Knoten (beispielsweise v1 ) und geht zum nächstliegenden Knoten. Von dort geht man wieder zum nächsten Knoten, welcher noch nicht besucht wurde und immer so weiter. Eine formale Darstellung der Heuristik ndet sich in Algorithmus 1. Natürlich ndet dieses sehr einfache Verfahren nicht immer die optimale Lösung. Vielmehr gibt es nicht nur Beispiele, bei welchen die Heuristik schlechte Lösungen ndet, sondern sogar Beispiele, bei welchen die Lösung beliebig schlecht sein kann. Aufgabe 3.1: Finde ein einfaches Beispiel, bei welchem die Nearest Neighbor Heuristik nicht die optimale Lösung zurück gibt. 3 Algorithmus 1 Nearest Neighbor Heuristik Eingabe: G = (V, E, c) Ausgabe: Kreis C , welcher alle v ∈ V besucht 1: 2: 3: 4: 5: 6: 7: c1 ← v1 V 0 ← {v2 , . . . , vn } t←1 while V 0 6= ∅ do ct ← argminv∈V 0 c(ct−1 , v) V 0 ← V 0 \ {ct } t←t+1 8: end while 9: C ← (c1 , . . . , cn , c1 ) . . . Wähle Startknoten Noch zu besuchende Knoten Suche weiteren Knoten mit minimalem Abstand Theorem 3.2: NN (G) den Wert der optimale Lösung der Nearest Neighbor Heuristik auf Graph G angibt und OPT (G) den Wert der optimalen Lösung, so gibt es für jede Zahl r > 1 einen Graphen G, so dass gilt: NN (G) ≥ r · OPT (G). Falls Beweis: Für jede Zahl F1 i>0 denieren wir einen Graphen Fi wie in Abbildung 3 gezeigt. besteht aus drei Knoten, welche über Kanten mit Kosten 1 verbunden sind (siehe auch Abbildung 3a). Fi wird rekursiv, wie in Abbildung 3c zu sehen, aus zwei Kopien von Fi−1 und drei weiteren 0 Knoten D , E und D zusammengesetzt, die wie folgt über Kanten verbunden werden: E 0 0 wird über Kanten mit Kosten 1 mit D und D verbunden. Ebenso wird D bzw. D mit dem letzten Knoten der ersten Kopie (bezeichnet mit C ) bzw. dem ersten Knoten der zweiten 0 Kopie (bezeichnet mit A ) über eine Kante mit Kosten 1 verbunden. Abschlieÿend wird D mit dem mittleren Knoten der zweiten Kopie (hier B 0 genannt) über eine Kante mit i−1 verbunden, analog D 0 mit B . Alle Kanten, die nicht explizit angegeben sind, Kosten 2 haben Kosten, die der kürzesten Verbindung zwischen ihren Endknoten entsprechen. Das so konstruierte Beispiel für Der Graph Fi hat i=2 ist in Abbildung 3b zu sehen. 3(2i −1) Knoten. Eine mögliche Lösung des Traveling Salesman Problems auf diesem Graphen ist es, von links nach rechts alle Knoten der Reihe nach zu besuchen und am Ende vom letzten zum ersten Knoten zurück zu springen. Diese Tour hätte dann i eine Länge von 6(2 ) − 8. Wir wissen deshalb OPT (Fi ) ≤ 6(2i ) − 8. Und welche ist eine besonders schlechte Tour, die unsere Nearest Neighbor Heuristik nden könnte? Um diese Frage zu beantworten, denieren wir wieder rekursiv für jedes den zugehörigen Graphen Graphen. Für F1 Fi i>0 und einen Pfad vom ersten Knoten zum mittleren Knoten des ist dieser Pfad in Abbildung 4a zu sehen. Für Fi wird wieder der Pfad für Fi−1 für beide Kopien von Fi−1 genommen. Vom Ende 0 des Pfades in der ersten Kopie, Knoten B , geht man nun zu Knoten D und weiter zu A0 , von wo aus man den Pfad in der zweiten Kopie nimmt. Der Pfad endet im mittleren 0 Knoten der Kopie, Knoten B , von wo aus man zu D und weiter zu E geht und damit 4 2 1 A 1 2 1 1 B 1 A C B 1 1 C 1 1 D (a) F1 1 D0 1 A0 1 B0 1 C0 (b) F2 2i−1 A E B 1 C 2i−1 1 D 1 E 1 D0 A0 B0 Fi−1 C0 Fi−1 (c) Rekursive Denition von Fi Abbildung 3: Beispielgraphen für ein beliebig schlechtes Verhalten der Nearest Neighbor Heuristik in der Mitte von Knoten von Fi Fi angelangt. Dieser Pfad hat die Länge (i + 1)2i − 2 und besucht alle F2 ). (siehe Abbildung 4c und Abbildung 4b für das Beispiel in Auÿerdem könnte dieser Pfad von der Nearest Neighbor Heuristik zurückgegeben werden, wenn diese bei gleicher Entfernung mehrerer Knoten zufällig den jeweils falschen auswählt. 2 1 A 1 1 1 B 1 A C B 1 1 C 1 (a) Pfad in F1 B 1 D E 1 D0 1 A0 1 B0 1 C0 (b) Pfad in F2 2 A 2 C 1 i−1 D 2i−1 1 E 1 D0 1 Fi−1 A0 B0 C0 Fi−1 (c) Rekursive Denition des Pfades in Fi Abbildung 4: Mögliche Lösungen der Nearest Neighbor Heuristik Das Einzige, was jetzt noch zur Vollendung des Kreises fehlt, ist die Kante von E zurück i zu A. Für diese kann man zeigen, dass sie Kosten 2 − 1 hat, weshalb man sagen kann: NN (Fi ) ≥ (i + 2)2i − 3. Daraus folgt für das Verhältnis der Lösung der Nearest Neighbor Heuristik der optimalen Lösung OPT (Fi ): NN (Fi ) (i + 2)2i − 3 ≥ . OPT (FI ) 6(2i ) − 8 5 NN (Fi ) und Lässt mann i gegen unendlich gehen, macht die Graphen also immer gröÿer, so wird auch das Verhältnis immer gröÿer. Das heiÿt, die Länge der Lösung der Nearest Neighbor Heuristik wird immer schlechter im Vergleich zur optimalen Lösung. Hat man also eine Zahl r >0 gegeben, so muss man das i nur groÿ genug wählen und weiÿ, dass die Gleichung irgendwann erfüllt ist. Aufgabe 3.3: Zeichne den Graphen F3 und die zugehörige Lösung, wie sie im Beweis konstruiert wurde. Aufgabe 3.4: Angenommen, wir wollen garantieren, dass die Lösung der Nearest Neighbor Heuristik mindestens fünf mal so schlecht ist wie die optimale Lösung (d.h. wir i für unseren Graphen Fi Aufgabe 3.5: Zeige, dass der Graph Fi r = 5). Wie groÿ müssen mindestens wählen? 3(2i − 1) aus obigem Beweis Aufgabe 3.6: Zeige, dass die konstruierten Pfade tatsächlich Länge Knoten besitzt. (i + 1)2i − 2 haben. 3.2 Spannbaum Heuristik Die Idee hinter dieser Heuristik ist die folgende Beobachtung: Wenn wir für einen Graphen (wie in Abbildung 5a) einen minimalen Spannbaum berechnen, so haben wir schon eine Struktur gefunden, welche alle Knoten besucht (siehe Abbildung 5b). Verdoppeln wir jetzt jede Kante, haben wir eine Tour, welche alle Knoten mindestens einmal besucht (leider auch manche öfter als einmal, wie in Abbildung 5c zu sehen ist). Deshalb ersetzen wir nun geeignet Kanten durch Abkürzungen, bis jeder Knoten genau einmal besucht wird und erhalten dadurch eine korrekte Lösung für das Traveling Salesman Problem (siehe Abbildung 5d). Wie man einen minimalen Spannbaum berechnet, wurde bereits in Grundlagen: Graphen gezeigt. Das Verdoppeln der Kanten erreicht man mit Hilfe einer Tiefensuche auf dem erhaltenen Spannbaum M. Nun müssen wir aus dem so erhaltenen Zykel nur noch einen Kreis machen. Dies können wir erreichen, indem wir geeignet Abkürzungen einführen. Wann immer ein Knoten k ∈ V mehr als einmal besucht wird, ersetzen wir die Kanten (i, k) und (k, j) in unserem Zykel durch die Kante (i, j). So erhält man schlussendlich einen Kreis C , welcher alle Knoten genau einmal besucht. Diese Spannbaum Heuristik ist in Algorithmus 2 zusammengefasst. Algorithmus 2 Spannbaum Heuristik Eingabe: G = (V, E, c) Ausgabe: Kreis C , welcher alle v ∈ V besucht 1: Berechne minimalen Spannbaum 2: Durchlauf 3: Wandle C M M auf G mit Hilfe von Tiefensuche und erhalte Zykel C , welche alle Knoten besucht mit Abkürzungen in Kreis um Eine interessante Frage ist nun, ob die Ergebnisse der Spannbaum Heuristik wie auch die der Nearest Neighbor Heuristik beliebig schlecht werden können. Und in diesem Fall kann man die Frage wesentlich erfreulicher beantworten: 6 A B C A D B E F G C D H E F G H I I (a) Graph G = (V, E) (b) Minimaler Spannbaum M A B C A D B E F G C D H E F I G H I (c) Durchlauf von M durch Verdoppelung der Kanten (d) Durchlauf von M mit Abkürzungen Abbildung 5: Die Spannbaum Heuristik Theorem 3.7: Falls MST (G) der Wert einer Lösung der Spannbaum Heuristik ist und timale Wert einer Lösung auf dem Graphen G OPT (G) der op- ist, so gilt: MST (G) ≤ 2 OPT (G). Beweis: Die Korrektheit der Ungleichung lässt sich sehr einfach an Hand von Algorithmus 2 selbst begründen. Die Länge des im ersten Schritt berechneten minimalen Spannbaumes jeden Fall nicht gröÿer als OPT (G) M ist auf (da wir aus der optimalen Rundtour durch Weglas- sen einer Kante einen Spannbaum erzeugen können). Hierdurch hat der im zweiten Schritt durch Verdoppeln der Kanten erzeugte Zykel maximal Länge 2 OPT (G). Da wir anneh- men, dass die Dreiecksungleichung gilt, wird unsere Lösung durch das Abkürzungen im dritten Schritt nicht länger (denn die Dreiecksungleichung sagt aus, dass die Kosten der Abkürzung c(i, j) nicht gröÿer 2 OPT (G) . sind als die des Umweges c(i, k) + c(k, j)), und damit auch nicht länger als Das Ergebnis der Spannbaum Heuristik ist also im schlechtesten Fall doppelt so schlecht wie die optimale Lösung. Die Heuristik ist damit wesentlich zuverlässiger als die Nearest Neighbor Heuristik, welche ja beliebig schlecht sein kann. Aufgabe 3.8: Nimm den in Aufgabe 3.3 gezeichneten Graphen F3 und führe darauf die Spannbaum Heu- ristik aus. Welche der beiden Heuristiken liefert ein besseres Ergebnis? 7 Aufgabe 3.9: Finde einen Graphen, auf welchem die Spannbaum Heuristik nicht die optimale Lösung ndet. Aufgabe 3.10: Finde einen Graphen, auf welchem die Spannbaum Heuristik die optimale Lösung ndet. Aufgabe 3.11: Wir wollen die Spannbaum Heuristik auf den in Abbildung 6a gezeigten Graphen anwenden. ε 1−ε ε (a) Graph mit Entfernungen 1−ε (b) Ein möglicher Spannbaum (c) Ein möglicher Kreis (d) Ein anderer möglicher Kreis Abbildung 6: Wie gut funktioniert die Spannbaum Heuristik auf diesem Graphen? Berechne einen minimalen Spannbaum des Graphen. Wie lang ist der Spannbaum in Abbildung 6b? Wie sieht der aus dem Spannbaum erhaltene Kreis aus, nachdem nötige Abkürzungen eingefügt wurden? Wie lang sind die in Abbildung 6c und 6d dargestellten Kreise? Was ist das Verhältnis der beiden Längen? Was passiert, wenn wir ε immer kleiner machen? Wie hängen diese Ergebnisse mit dem Resultat von Theorem 3.7 zusammen? 8 Bemerkung 3.12 (Christodes Heuristik): Algorithmus 2 kann so verbessert werden, dass die schlechteste Lösung maximal 3/2 mal so schlecht ist wie die optimale Lösung. Diese Variante nennt sich Christodes Heuristik. Hierbei werden nach der Konstruktion des Spannbaumes, die Kanten nicht verdoppelt, sondern die Kanten eines sogenannten Matchings der Knoten des minimalen Spannbaumes, an welchen eine ungerade Zahl Kanten anliegt, hinzugefügt. So ergibt sich wieder ein Zykel der durch Abkürzen in einen Kreis verwandelt wird. 3.3 Beispiel Wir wollen die beiden Heuristiken für den in Abbildung 7a dargestellten Graphen vergleichen. In dem Graphen haben alle nicht eingezeichneten Kanten ein Gewicht, das dem kürzesten Weg zwischen den beiden Endpunkten der Kante entspricht. Der so gegebene Graph erfüllt die Dreiecksungleichung. Führt man die Nearest Neighbor Heuristik mit Startknoten v1 aus, so kann dies die in Abbildung 7b gezeigte Lösung ergeben (das Ergebnis der Heuristik ist ja nicht immer eindeutig, je nachdem welche Kanten man bei gleichen Kosten nimmt). Die so erhaltene Lösung hat Länge 23. Ein mögliches Ergebnis der Spannbaum Heuristik ist das in Abbildung 7d gezeigte, welches 25 lang ist (auch diese Lösung ist natürlich nicht eindeutig, da es auch hier zum Beispiel auf die Reihenfolge beim Durchlaufen des verdoppelten Graphen ankommt). 7 5 v2 v1 4 8 v6 v6 3 3 3 v4 4 v1 4 2 v4 4 2 v3 4 3 v3 5 v2 v5 3 v5 (a) Was sind die Lösungen der beiden Heuristiken(b) Mögliche Lösung der Nearest Neighbor Heuauf diesem gewichteten Graphen? ristik mit Länge 23 v3 v3 v2 v2 2 2 4 v1 3 v5 (c) Möglicher minimaler Spannbaum 8 v6 3 3 v6 4 v1 v4 4 v4 4 3 v5 (d) Mögliche Lösung der Spannbaum Heuristik mit Länge 25 Abbildung 7: Vergleich der Nearest Neighbor und Spannbaum Heuristik Oensichtlich ist das Ergebnis der Spannbaum Heuristik nicht optimal, da wir schon mit Hilfe der Nearest Neighbor Heuristik eine bessere Lösung gefunden haben. Doch auch für diese haben wir keine Garantie, dass sie optimal ist. Wie man das überprüft, wird im nächsten Abschnitt gezeigt. 9 4 Exakte Lösungsverfahren Manchmal reicht eine gute heuristische Lösung nicht aus, sondern man braucht die optimale Lösung. Möchte man diese berechnen, muss man dazu ein exaktes Lösungsverfahren benutzen, welches nicht nur eine Lösung berechnet, sondern auch nachweist, dass es keine bessere gibt. Bei Letzterem hilft es, wenn man weiÿ, wie lang eine Lösung des Traveling Salesman Problem mindestens sein muss, denn ist eine bereits bekannte Lösung genau so lang, weiÿ man, dass sie optimal ist, weil es keine kürzere geben kann. 4.1 Eine untere Schranke Ein mögliches Verfahren, um festzustellen, wie lang eine Lösung des Traveling Salesman Problem mindestens sein muss, ist die Berechnung von 1-Bäumen. Denition 4.1 (1-Baum): G = (V, E) ein Graph und G0 = ({v2 , . . . , vn }, E 0 ) der Graph, der durch Entfernen von Knoten v1 entsteht. Ein 1-Baum ist eine Kantenmenge T ⊂ E , welche aus einem 0 Spannbaum auf G und zwei an v1 anliegenden Kanten aus E besteht. Sei v2 v4 v1 v2 v6 v3 v4 v1 v5 v6 v3 v5 (a) T = {{v1 , v2 }, {v1 , v3 }, {v2 , v4 }, (b) T = {{v1 , v2 }, {v1 , v5 }, {v2 , v4 }, {v3 , v5 }, {v4 , v6 }, {v5 , v6 }} ist ein 1-Baum {v3 , v4 }, {v4 , v5 }, {v5 , v6 }} ist ein 1-Baum, und eine Lösung des Traveling Salesman Problem aber keine Lösung des Traveling Salesman Problem Abbildung 8: 1-Bäume Abbildung 8 zeigt zwei Beispiele für 1-Bäume, eines davon ist zugleich Lösung des Traveling Salesman Problems, das andere nicht. Man kann leicht zeigen, dass jede Lösung des Traveling Salesman Problem ein 1-Baum ist, aber nicht jeder 1-Baum eine Lösung des Traveling Salesman Problem. Das heiÿt, die Menge aller Rundtouren durch alle Knoten ist eine Teilmenge aller 1-Bäume (siehe Abbildung 9). Das bedeutet auch, dass der minimale Rundtouren 1-Bäume Abbildung 9: 1-Bäume und Rundtouren 1-Baum nicht länger ist als die minimale Rundtour, also nicht länger als die optimale Lösung des Traveling Salesman Problems. Durch die Berechnung des minimalen 1-Baumes 10 können wir also abschätzen, wie gut die beste Rundtour maximal sein kann. Anders ausgedrückt: Die Länge des minimalen 1-Baumes ist eine untere Schranke für das Traveling Salesman Problem. Bemerkung 4.2: Dieses Verfahren eine Schranke für ein Problem zu berechnen, indem die Menge der betrachteten Lösungen erweitert wird, heiÿt Relaxation, da die Anforderungen an die Lösung relaxiert, also entspannt, werden. Glücklicherweise lässt sich ein 1-Baum wie folgt sehr einfach berechnen, siehe auch Algorithmus 3. Wir entfernen zunächst Knoten v1 aus unserem Graphen, suchen dann einen minimalen Spannbaum auf dem Restgraphen (zum Beispiel mit Hilfe des Algorithmus von Kruskal) und fügen abschlieÿend die zwei Kanten hinzu, welche unter den Kanten, die v1 als Endknoten haben, das geringste Gewicht haben. Algorithmus 3 Berechnung eines minimalen 1-Baums Eingabe: G = (V, E, c) Ausgabe: Ein minimaler 1-Baum T G0 = ({v2 , . . . , vn }, E 0 ) durch Entfernen von v1 aus G 0 Berechne minimalen Spannbaum T auf G {v1 , i1 } ← argmin{v1 ,j}∈E c(v1 , j) . Suche zwei kleinste Kanten an v1 {v1 , i2 } ← argmin{v1 ,j}∈E\{{v1 ,i1 }} c(v1 , j) T ← T ∪ {{v1 , i1 }, {v1 , i2 }} . Füge beide gefundene Kanten zu T hinzu 1: Erstelle Graphen 2: 3: 4: 5: Beispiel 4.3: Für den Graphen in Abbildung 6a hatten mit Hilfe der Heuristiken zwei Lösungen gefunden. Wir wollen nun mit Hilfe eines 1-Baums ermitteln, welche Länge die optimale Lösung für diesen Graphen mindestens sein muss. Dazu berechnen wir einen minimalen 1-Baum und erhalten den in Abbildung 10 gezeigten, welcher die Länge 19 hat. v3 v2 2 v4 4 4 v1 v6 3 3 3 v5 Abbildung 10: Ein minimaler 1-Baum mit Länge 19. Wir wissen also, dass jede Lösung des Traveling Salesman Problem mindestens Länge 19 haben muss. Die Nearest Neighbor Heuristik macht somit maximal einen Fehler von 4, die Spannbaum Heuristik maximal von 6. Aufgabe 4.4: Finde für den in Aufgabe 3.3 gegebenen Graphen einen minimalen 1-Baum. Welche Länge hat dieser? Welche Länge hat die Lösung der Nearest Neighbor Heuristik, welche die der Spannbaum Heuristik? Was sagt uns das über die Qualität der beiden Lösungen? Aufgabe 4.5: Was wissen wir, wenn die Länge des 1-Baums und die der Lösung einer Heuristik gleich sind? 11 4.2 Optimale Lösung des TSP In Beispiel 4.3 haben wir gesehen, dass 1-Bäume uns bei der Einschätzung der heuristischen Lösungen helfen. Wie aber könnten wir nun tatsächlich die optimale Lösung berechnen? Eine Möglichkeit ist es, alle möglichen Rundreisen systematisch aufzuzählen. Wir beginnen die Rundreise bei Knoten v1 , von dort können wir zu einem der fünf verbleibenden Knoten weiterfahren, von dort wiederum zu einem der vier verbleibenden Knoten, usw. Alle möglichen Rundreisen sind in Abbildung 11 angegeben. Bemerkung 4.6: Dreht man die Abbildung um 90◦ nach links, so hat sie Ähnlichkeit mit einem Baum mit vielen Ästen (engl. Branches). Daher wird dieses systematische Aufzählen bzw. Fallunterscheiden auch Branching genannt. Unter den Rundreisen nden sich viele doppelte. So ist beispielsweise lediglich v1 − v6 − v5 − v4 − v3 − v2 v1 −v2 −v3 −v4 −v5 −v6 in umgekehrter Richtung. Die doppelten Touren sind in der Abbildung grau markiert. Um die optimale Lösung zu nden, müssten wir also nur die Kosten der 60 schwarzen Touren berechnen und vergleichen. Leider wird diese Menge bei Graphen mit mehr Knoten schnell zu groÿ. Doch mit unserem Wissen über 1-Bäume müssen wir häug gar nicht alle, sondern nur sehr wenige Touren untersuchen: Wir beginnen wieder bei Knoten v1 . Momentan haben wir für diesen noch keinen Nach- barn festgelegt, und im letzten Abschnitt bereits berechnet, dass in diesem Fall die untere Schranke an die Länge der optimalen Lösung v2 , v3 , v4 , oder v5 19 ist. Nach Knoten v1 können wir die Knoten besuchen (v6 können wir hier vernachlässigen, da sich dadurch Dopp- lungen ergeben würden). Wir wählen zunächst Knoten {v1 , v3 } v3 , legen also fest, dass die Kante benutzt wird. Berechnen wir für diesen Fall den 1-Baum, so erhalten wir den in Abbildung 12 dargestellten mit der Länge 23. Das heiÿt jede Rundreise, welche Kante {v1 , v3 } verwendet, hat eine Länge von mindestens 23. Da wir durch die Nearest Neighbor Heuristik bereits eine Tour mit Länge 23 kennen, müssen wir alle anderen Touren, welche die Kante {v1 , v3 } enthalten, nicht mehr betrachten, denn diese können nicht besser sein. {v1 , v4 } bzw. {v1 , v5 } benutzen. Durch dieses Vorgehen wird der noch zu untersuchende Suchbaum schon Auf die gleiche Weise können wir alle Touren ausschlieÿen, welche die Kante sehr viel kleiner (siehe Abbildung 13, welche im Suchbaum die Werte der unteren Schranke und die zugehörigen 1-Bäume zeigt). Bemerkung 4.7: Das Ausschlieÿen bzw. Abschneiden von Ästen wird Cutting genannt, zusammen mit dem Branching heiÿt die ganze Methode daher Branch&Cut. Legen wir fest, dass Kante {v1 , v2 } enthalten sein soll, so ergibt sich derselbe 1-Baum, den wir erhalten hatten ohne eine Kante festzulegen, da die Kante {v1 , v2 } bereits in diesem enthalten war. Da dessen Länge lediglich 19 ist, könnte unter den Rundreisen, die Kante {v1 , v2 } verwenden, eine sein, die kürzer ist, als die der Nearest Neighbor Heuristik. Das heiÿt, wir müssen diesen Teil des Suchbaumes weiter untersuchen. Gehen wir nun weiter zu den Knoten v3 und dann zu v4 , so erhalten wir eine neue Lösung, welche eine Länge von 20 hat. Diese ist besser als die Lösung der Nearest Neighbor Heuristik. Sehen wir uns nun noch die verbliebenen Teile des Baumes auf die gleiche Weise an, zeigt sich dass es keine Lösung geben kann, die kürzer als 20 ist. Somit ist die Lösung mit Länge 20 die optimale Lösung. 12 v4 v5 v3 v2 v5 v4 v3 v2 v6 v5 v3 v4 v2 v5 v2 v4 v3 v4 v6 v3 v2 v6 v4 v3 v2 v5 v6 v3 v4 v2 v6 v2 v4 v3 v5 v6 v3 v2 v6 v5 v1 v3 v2 v4 v6 v3 v5 v2 v6 v2 v5 v3 v5 v6 v4 v2 v6 v5 v4 v2 v3 v6 v4 v5 v2 v6 v2 v5 v4 v5 v6 v4 v3 v6 v5 v4 v3 v2 v6 v4 v5 v3 v6 v3 v5 v4 v3 v2 v4 v2 v4 v3 v3 v2 v5 v2 v5 v3 v4 v2 v5 v2 v5 v4 v4 v3 v5 v3 v5 v4 v3 v2 v4 v2 v4 v3 v3 v2 v6 v2 v6 v3 v4 v2 v6 v2 v6 v4 v4 v3 v6 v3 v6 v4 v3 v2 v5 v2 v5 v3 v3 v2 v6 v2 v6 v3 v5 v2 v6 v2 v6 v5 v5 v3 v6 v3 v6 v5 v4 v2 v5 v2 v5 v4 v4 v2 v6 v2 v6 v4 v5 v2 v6 v2 v6 v5 v5 v4 v6 v4 v6 v5 v4 v3 v5 v3 v5 v4 v4 v3 v6 v3 v6 v4 v5 v3 v6 v3 v6 v5 v5 v4 v6 v4 v6 v5 v2 v3 v2 v4 v3 v4 v2 v3 v2 v5 v3 v5 v2 v4 v2 v5 v4 v5 v3 v4 v3 v5 v4 v5 v2 v3 v2 v4 v3 v4 v2 v3 v2 v6 v3 v6 v2 v4 v2 v6 v4 v6 v3 v4 v3 v6 v4 v6 v2 v3 v2 v5 v3 v5 v2 v3 v2 v6 v3 v6 v2 v5 v2 v6 v5 v6 v3 v5 v3 v6 v5 v6 v2 v4 v2 v5 v4 v5 v2 v4 v2 v6 v4 v6 v2 v5 v2 v6 v5 v6 v4 v5 v4 v6 v5 v6 v3 v4 v3 v5 v4 v5 v3 v4 v3 v6 v4 v6 v3 v5 v3 v6 v5 v6 v4 v5 v4 v6 v5 v6 Abbildung 11: Alle möglichen Rundreisen bei sechs Knoten (doppelte Touren sind grau gezeichnet). 13 7 v3 v2 2 v4 4 4 v1 3 v6 3 Abbildung 12: Nach Festlegung der Kante mit Kosten {v1 , v3 } v5 erhält man diesen minimalen 1-Baum 23. Mit Hilfe der 1-Bäume als untere Schranken ist es uns also gelungen, zahlreiche Teile des Suchbaumes aus Abbildung 11 auszuschlieÿen. Wir mussten lediglich einige wenige Teile anschauen, um nicht nur die optimale Lösung zu nden, sondern auch nachzuweisen, dass sie optimal ist. Natürlich kann es im ungünstigsten Fall vorkommen, dass wir trotzdem alle Knoten anschauen müssen, in der Realität funktioniert diese Methode jedoch bereits relativ gut. Verbessern kann man sie einerseits, indem man bessere untere Schranken benutzt (da dann mehr Knoten ausgeschlossen werden können), andererseits kann man eine andere Branchingregel anwenden, also andere Fallunterscheidungen machen. Wir haben nach Kanten unterschieden, eine andere Möglichkeit ist die Folgende: Sieht man sich die 1-Bäume genauer an, so haben dies - wenn sie keine Rundreisen sind - Knoten mit mehr als zwei anliegenden Kanten. Beispielsweise liegen im 1-Baum aus Abbildung 10 in Knoten v6 drei Kanten an. Dies kann man ausschlieÿen, indem man die folgenden Fälle unterscheidet: Kante {v1 , v6 } ist verboten Kante {v1 , v6 } muss enthalten sein, aber Kanten v6 {v2 , v6 } ist verboten {v1 , v6 } und {v2 , v6 } müssen enthalten sein, alle anderen Kanten um Knoten sind verboten Keiner dieser Fälle enthält den 1-Baum aus Abbildung 10 als Lösung, aber alle Rundtouren sind in einem der Fälle enthalten. Das heiÿt, wir können immer noch die optimale Lösung nden, aber der bisherige 1-Baum kann nicht mehr als untere Schranke für einen der Fälle auftreten, was diese wahrscheinlich verbessert. Aufgabe 4.8: Was passiert, wenn man die zuletzt vorgestellte Branchingregel auf das Beispiel aus Abbildung 7 anwendet? Aufgabe 4.9: Macht es einen Unterschied, in welcher Reihenfolge die Knoten des Suchbaumes bearbeitet werden (siehe auch Abbildung 13)? 5 Verweise Eine anschauliche und liebevolle Einführung in das Traveling Salesman Problem und verwandte Probleme ndet man in [4]. Eine theoretischere und grundlegende Zusammenfassung ndet man in [5, 3]. Eine Zusammenfassung eines aktuellen Lösungsverfahrens (mit technischen Details und einem Fokus auf schnelle Laufzeit) ndet man in [1]. 14 v5 : 23 STOPP! v4 : 19 v3 : 23 v3 : 19 v4 : 23 STOPP! v5 : 19 v4 : 24 STOPP! v1 : 19 v6 : 19 v4 : 22 v5 : 22 v3 : 20 v4 : 24 v6 : 21 v3 : 20 v5 : 20 STOPP! STOPP! v3 : 23 STOPP! STOPP! STOPP! v2 : 19 STOPP! STOPP! STOPP! v4 : 20 STOPP! Neue beste Lösung! Abbildung 13: Mit Hilfe der berechneten unteren Schranken können wir zahlreiche Möglichkeiten ausschlieÿen. 15 Eine eine Übersicht über aktuelle Rekorde und weitere Spiele ndet man in [2], eine anschauliche und wunderschön animierte Möglichkeit zum Ausprobieren ist unter der folgenden Adresse zu nden: http://www-m9.ma.tum.de/Allgemeines/TSPStarten Literatur [1] David L. Applegate, Robert E. Bixby, Va²ek Chvátal und William J. Cook. The tra- veling salesman problem. Princeton Series in Applied Mathematics. A computational study. Princeton, NJ: Princeton University Press, 2006, S. xii+593. isbn: 978-0-69112993-8; 0-691-12993-2. [2] Cook. Gatech: The Traveling Salesman Problem. Juli 2012. url: gatech.edu/. [3] http://www.tsp. William J. Cook. In pursuit of the traveling salesman. Mathematics at the limits of computation. Princeton, NJ: Princeton University Press, 2012, S. ixiii, 1228. isbn: 978-0-691-15270-7. [4] Peter Gritzmann und René Brandenberg. Das Geheimnis des kürzesten Weges - ein mathematisches Abenteuer (3. Au.) Springer, 2005, S. 1362. isbn: 978-3-540-221937. [5] E. L. Lawler, J. K. Lenstra, A. H. G. Rinnooy Kan und D. B. Shmoys, Hrsg. The traveling salesman problem. Wiley-Interscience Series in Discrete Mathematics and Optimization. A guided tour of combinatorial optimization, Reprint of the 1985 original, A Wiley-Interscience Publication. Chichester: John Wiley & Sons Ltd., 1990, S. x+473. isbn: 0-471-90413-9. [6] M9 Lehrstuhl für Angewandte Geometrie und Diskrete Mathematik, TU München. TSP Spiel. Juli 2012. url: http://www-m9.ma.tum.de/Allgemeines/TSPStarten. 16