Traveling Salesman Problem - THI - Leibniz Universität Hannover

18.08.2007 - Ihren Vorteil gegenüber den einfachen Heuristiken, nämlich die Gütegarantie, konnte die MST-Heuristik nicht aus- spielen, weil alle Verfahren ...
2MB Größe 29 Downloads 48 Ansichten
Leibniz Universität Hannover Insitut für Theoretische Informatik

Traveling Salesman Problem Vergleich von Heuristiken zur Lösung des Problems des Handlungsreisenden

Eine Bachelorarbeit von

Florian Nöhring

18. August 2007

Prof. Dr. Heribert Vollmer Erstprüfer

Prof. Dr. Udo Lipeck Zweitprüfer

Erklärung Hiermit versichere ich, dass ich die vorliegende Arbeit selbstständig verfasst und dabei keine anderen als die aufgeführten Quellen und Hilfsmittel verwendet habe. Hannover, den 18. August 2007

Inhaltsverzeichnis 1

2

Einführung

7

1.1 Traveling Salesman Problem . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Motivation dieser Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Begriffe, Konventionen und Definitionen . . . . . . . . . . . . . . . . . . .

7 9 9

Instanzen

11

2.1 TSPLIB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3

Heuristiken

3.1 Einfache Heuristiken . . . . . . . . . . . . 3.1.1 Nearest Neighbor . . . . . . . . . . 3.1.2 Random Insertion . . . . . . . . . 3.2 Ausgefeiltere Heuristiken . . . . . . . . . 3.2.1 Minimum Spanning Tree-Heuristik 3.2.2 Die Heuristik von Christofides . . . 3.3 Sonstige Verfahren . . . . . . . . . . . . . 3.3.1 Brute Force . . . . . . . . . . . . . 3.3.2 Genetischer Algorithmus . . . . . . 4

Testdurchführung

13

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

13 13 15 17 17 19 23 23 23 27

4.1 Testsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.2 Laufzeitanalyse und Testergebnisse . . . . . . . . . . . . . . . . . . . . . . 27 5

Bewertung der Ergebnisse

Literaturverzeichnis

43 45

5

1 Einführung 1.1 Traveling Salesman Problem Das Problem des Handlungsreisenden äußert sich in dem Wunsch für eine gegebene Menge von Städten eine Rundreise zu finden, die nacheinander zu jeder Stadt genau einmal führt und schließlich zur Ausgangsstadt zurückkehrt und dabei eine möglichst kurze Strecke zurücklegt. Das Problem ist dabei nicht auf Städte beschränkt, sondern lässt sich auch auf ähnliche Situationen übertragen und findet damit Relevanz nicht nur bei einem Paketdienstleister oder Vertreter, der seine Kunden ohne Umwege besuchen möchte, sondern auch in der Fertigungsindustrie, etwa bei einem Bestückungs- oder Schweißroboter, für den die Zeit minimiert werden soll, die er benötigt um zu den Steckplätzen oder Schweißstellen zu gelangen, damit der Fertigungsprozess nicht unnötig verlangsamt wird. Am Beispiel der Suche nach der kürzesten Rundreise durch die 16 Landeshauptstädte Deutschlands wird deutlich wie schwierig es ist die kürzeste Rundreise zu finden. Ein Mensch kann für solch eine kleine Menge von Städten noch sehr kurze und oft sogar die kürzeste Rundreise durch scharfes Hinsehen erkennen, weil er bei einem Blick auf die Karte die Lage der Orte im Ganzen erfassen kann und erkennt, dass die kürzeste Rundreise beispielsweise nicht von Kiel über München, zurück nach Hamburg und anschließend über Stuttgart führt. Der Mensch zerlegt das Problem intuitiv in kleinere Teile1 und erkennt, dass beispielsweise

München–Stuttgart–Saarbrücken–Mainz–Wiesbaden–Düsseldorf

oder

auch

Hannover–Bremen–Hamburg–Kiel derart positioniert sind, dass sie mit größter Wahrscheinlichkeit in dieser Reihenfolge auch Teil der gesuchten Lösung sind. Diese Teillösungen können dann zusammengesetzt werden. 1

Dies folgt dem divide et impera-Paradigma, dt. teile und herrsche.

7

Kapitel 1. Einführung

Ein Computerprogramm sieht nicht das Gesamtbild und kann daher nicht dieselben Schlüsse ziehen wie ein Mensch. Es muss ein anderer Lösungsweg gefunden werden. Für nur 16 Städte existieren bereits mehr als 650 Mrd. verschiedene Rundreisen; zu viele um alle auszuprobieren. Das Problem des Handlungsreisenden (en.: Travelling Salesman Problem, amer.: Traveling ∼; kurz MinTSP) gehört zu einer Klasse von Problemen genannt NPO. Es existiert eine Variante von MinTSP, genannt TSP, bei der es sich um das zugehörige Entscheidungsproblem handelt.

Das Optimierungsproblem MinTSP

MinTSP = (I, Sol, m, goal) mit • I = {h(di,j )1≤i,j≤n i | n, di,j ∈ N} • Sol(D) ist die Menge aller Rundreisen in D, d. h. Sol(D) = Sn , die Gruppe der Permutationen von n Elementen. • m(D, π) ist die Länge Rundreise in π in D, d. h. m(D, π) = dπ(n),π(1) .

n−1 P

dπ(i),π(i+1) +

i=1

• goal = min. aus [7], S. 31

Das Entscheidungsproblem TSP

TSP = {h(di,j )1≤i,j≤n , Bi | n, di,j , B ∈ N und es gibt π ∈ Sn mit

n−1 P

dπ(i),π(i+1) +

i=1

dπ(n),π(1) ≤ B} aus [7], S. 29 Beim Entscheidungsproblem wird neben der Menge von Städten noch eine Zahl B übergeben, und es ist lediglich die Antwort auf die Frage gesucht, ob eine Rundreise durch alle Städte existiert, die eine Strecke nicht länger als B zurückgelegt. TSP ist ein klassisches NP-vollständiges Problem. Damit ist MinTSP NP-hart ([7], S. 33), und es ist kein effizientes Verfahren bekannt um MinTSP zu lösen.

8

1.2. Motivation dieser Arbeit

1.2 Motivation dieser Arbeit Weil für NP-harte Probleme keine effizienten Lösungsverfahren bekannt sind, ist es praktisch unmöglich das Problem des Handlungsreisenden für eine große Menge von Städten zu lösen. Im Folgenden soll daher nicht mehr versucht werden die optimale Lösung, also die kürzeste Rundreise, zu finden, sondern mit Hilfe von verschiedenen Heuristiken eine Rundreise die – entsprechend den Möglichkeiten der Heuristik – so kurz wie möglich und dabei so lang wie nötig ist. Diese Arbeit stellt einen empirischen Vergleich an zwischen einigen Heuristiken, die für das Problem des Handlungsreisenden effizient Näherungslösungen finden.

1.3 Begriffe, Konventionen und Definitionen Instanz

Die hier vorgestellten Heuristiken und anderen Verfahren versuchen eine möglichst kurze Rundreise für eine gegebene Menge von Städten zu bestimmen. Eine solche Eingabemenge, auf die eine Heuristik angewandt werden kann, wird als Probleminstanz oder kurz Instanz bezeichnet. Die Dimension einer Instanz ist die Anzahl ihrer Städte. Die Instanzen werden als Graphen modelliert, mit den Städten als Knoten und den Entfernungen als Kantengewichte. Diese Gewichte werden auch als Kosten bezeichnet. Für alle Graphen und damit auch für die zugrunde liegenden Instanzen gelten dabei einige Einschränkungen. Sie sind einfach, vollständig und ungerichtet, also auch symmetrisch, sowie metrisch, das heißt die Dreiecksungleichung2 ist erfüllt. Formal ist eine Instanz mit n Städten entweder gegeben als • eine Menge C = {c1 , c2 , . . . , cn } von Punkten mit Koordinaten, die die Städte repräsentieren und eine Funktion d : (i, j) → N, die ∀ i, j ∈ {1, . . . , n} die Entfernung zwischen ci und cj berechnet, oder als 2

Die Distanz zwischen den Städten A und C kann niemals länger sein als der Umweg von A über eine beliebige Stadt B nach C.

9

Kapitel 1. Einführung • eine symmetrische (n × n)-Matrix A, bei der an Position Ai,j die Entfernung zwischen den Städten i und j steht. Rundreise

Eine Rundreise durch eine Instanz mit n Städten wird modelliert als Permutation ! 1 2 3 4 ... n π= , p1 , . . . , pn ∈ {1, . . . , n}. p1 p2 p3 p4 . . . pn π(i) gibt dabei die Stadt an, die nach Stadt i besucht wird. Als kürzere Darstellung dient die Zyklenschreibweise π = ( q1 q2 q3 q4 . . . qn ),

q1 , . . . , qn ∈ {1, . . . , n},

bei der die Städte in der angegebenen Reihenfolge besucht werden. Eine solche Rundreise, bei der jede Stadt genau einmal besucht wird, wird auch als Lösung bezeichnet, auch wenn es sich dabei nicht um die gesuchte kürzeste Rundreise handelt. Eine weitere Bezeichnung für eine Rundreise ist Tour. Die Maßzahl einer Rundreise oder Lösung π ist ihre Gesamtlänge. Das ist n   X d i, π(i) i=1

bzw.

n X

Ai,π(i) .

i=1

Performanz

Die Performanz einer Lösung, auch Güte genannt, gibt das Verhältnis von ihrer Maßzahl zu der Maßzahl der optimalen Lösung an. ([5], S. 39)

10

2 Instanzen Um Heuristiken effektiv vergleichen zu können, müssen Metriken gefunden werden, mit deren Hilfe die Qualität eines Verfahrens objektiv beurteilt werden kann. Hierfür eignen sich besonders die benötigte Zeit und die Performanz einer gefundenen Tour. Später wird außerdem die Varianz der Güte ermittelter Lösungen eines Verfahrens bei wiederholter Anwendung auf dieselbe Instanz von einiger Bedeutung sein. Wegen der NP-Härte des Problems lässt sich für größere Instanzen in vertretbarer Zeit effektiv keine optimale Lösung bestimmen. Deswegen können nicht eigens für die Messungen Testinstanzen zufällig erzeugt werden, und es muss auf Instanzen mit bekannten Lösungen zurückgegriffen werden.

2.1 TSPLIB Um die Heuristiken vergleichen zu können wird daher auf TSPLIB [1] zurückgegriffen. Dies ist eine Sammlung von über 100 Probleminstanzen des symmetrischen Problems des Handlungsreisenden unterschiedlicher Größe. Die kleinste Instanz burma14.tsp verfügt über 14 Städte oder Knoten, die größte über 85.900 (pla85900.tsp). Die Instanzen haben meist einen realitätsbezogenen Hintergrund. So finden sich in der TSPLIB u. a. folgende Instanzen: • 666 Städte rund um die Welt (gr666.tsp) • 16 und 22 Stationen auf der Irrfahrt des Odysseus (ulysses16.tsp und ulysses22.tsp) • 127 Biergärten in Augsburg (bier127.tsp)

11

Kapitel 2. Instanzen

Die Instanzen können dabei im Wesentlichen in drei verschiedenen Formaten vorliegen.1 Punktmenge in der euklidischen Ebene Jede Stadt ist als kartesische Koordinate gege-

ben. Die Distanz zwischen zwei Städten muss nach Pythagoras berechnet werden. Punktmenge geografischer Koordinaten aus Breiten- und Längengraden Die Distanz

zwischen zwei Punkten muss mittels aufwändiger trigonometrischer Funktionen berechnet werden. Es gilt stets die direkte Luftlinie unabhängig etwaiger Hindernisse. Explizite Angabe aller Distanzen Die Distanzen liegen als obere oder untere Dreiecks-

oder als vollständige Adjazenzmatrix vor. Dadurch wird zwar keine Zeit zur Berechnung benötigt, aufgrund der Repräsentation der Distanzen als 32 Bit-Ganzzahlen wird zur Speicherung der Dreiecksmatrix jedoch

(n2 −n) 2

· 4 Byte Speicher-

platz benötigt, was bei großen Instanzen wie d18512.tsp (18.512 Städte in Deutschland) bereits 650 MB und bei pla85900.tsp sogar über 13 GB Speicherbedarf bedeutet.

Abbildung 2.1: Schematische Darstellung der 16 Knoten aus ulysses16.tsp. In Wirklichkeit liegen die Punkte auf der gekrümmten Erdoberfläche. Die Proportionen der paarweisen Distanzen in dieser Abbildung stimmen daher nicht mit der Wirklichkeit überein.

1

Es gibt außerdem noch die Möglichkeit Instanzen zu formulieren, bei denen die Distanz zwischen zwei Knoten auf spezielle Art berechnet oder gerundet werden muss, was hier jedoch von nur geringem Interesse ist.

12

3 Heuristiken Anders als Algorithmen, die für ein bestehendes Problem garantiert eine Lösung finden, falls es sie gibt, sind Heuristiken Verfahren, die meist einfacher durchzuführen sind und eine Näherungslösung finden, die zwar nicht perfekt aber oft zufriedenstellend ist.

3.1 Einfache Heuristiken Einfache Heuristiken stellen intuitive Lösungsansätze dar. Im Gegenzug bieten sie jedoch keine Garantien bezüglich der Güte einer ermittelten Lösung.

3.1.1 Nearest Neighbor Dies stellt die einfachste und intuitivste Heuristik dar. Ausgehend von einem beliebigen Startknoten wird die Tour stets über denjenigen Knoten fortgesetzt, der dem zuletzt besuchten am nächsten ist, bis alle Knoten einmal besucht wurden. Schließlich wird zum Startknoten zurückgekehrt. Die Schritte des Vorgehens im Einzelnen sind: 1. Setze beliebigen Knoten als Startknoten der Tour. 2. Solange noch Knoten existieren, die noch nicht zur Tour hinzugefügt wurden, wiederhole den folgenden Schritt. 2.1 Bestimme den Knoten, der dem zuletzt hinzugefügten am nächsten ist und noch nicht hinzugefügt wurde, und füge ihn als nächsten zur Tour hinzu. 3. Verbinde den ersten und letzten Knoten um eine Rundreise zu erhalten. Hierbei ist zu beachten, dass je nach Wahl des Startknotens, das Verfahren stark abweichende Ergebnisse liefern kann und die Güte der Lösung damit vom Zufall abhängt, weil

13

Kapitel 3. Heuristiken

sich nicht vorhersehen lässt, welcher Knoten als Startknoten gut oder schlecht geeignet ist. Bei der Instanz fri26.tsp sorgt dies beispielsweise dafür, dass bei Wahl des optimalen Startknotens Knoten 12 eine Tour gefunden wird, deren Länge die der optimalen Tour nur um 3 % übersteigt. Fällt die Wahl des Startknotens dagegen auf Knoten 23, so liefert das Verfahren eine Lösung, die 37 % länger ist als die optimale. Beispiel 7

8

9

1 2

3 5

4

6

Abbildung 3.1: Knoten 2 wird als nächstes besucht. Im Beispiel in Abbildung 3.1 wird als nächstes die 2 und anschließend die 7 zur Tour hinzugefügt werden. Bei einer optimalen Tour hingegen müssten zunächst die Knoten 3 und 9 besucht werden, da die Knoten 2 und 7 dann auf dem Rückweg zur 1 ohne großen Umweg berücksichtigt werden könnten. 7

8

9

1 2

3 5

4

6

Abbildung 3.2: Mit Knoten 2 als Startknoten wird im Beispiel die optimale Tour gefunden, weil diesmal die 2 nach der 5 nicht als Nachfolger in Frage kommt. 14

3.1. Einfache Heuristiken

Anhand des Beispiels wird deutlich, dass das Verfahren nicht vorausschaut um die Gesamtlänge möglichst gering zu halten, sondern in jedem Schritt lediglich die momentanen Schrittkosten minimal hält. Algorithmen und Heuristiken, die nach diesem Muster vorgehen werden auch als gierig bezeichnet. Für das Verfahren ergibt sich insgesamt ein Laufzeit von O(n2 ), denn Schritt 2.1 wird n-mal ausgeführt, und bei jeder dieser Iteration müssen O(n) Distanzen berechnet werden. Ausiello et al. haben (in [5]) gezeigt, dass für die Performanz von Nearest Neighbor die obere Schranke 12 (dlog ne + 1) existiert.

3.1.2 Random Insertion Auch bei Random Insertion handelt es sich um ein gieriges Verfahren, und es ähnelt auch dem Vorgehen bei Nearest Neighbor. Hier werden jedoch nicht Knoten nacheinander an den zuletzt besuchten angehängt, sondern so in eine vorhandene Teiltour eingefügt, dass die geringstmögliche Verlängerung der Tour bewirkt wird. Gestartet wird dabei nicht mit einem, sondern mit drei1 Knoten und einer Rundreise durch eben diese drei. Im Detail setzt sich das Verfahren aus diesen Schritten zusammen: 1. Wähle 3 Startknoten und bilde eine Rundreise durch diese. 1.1 Diese erste Rundreise besteht aus 3 Toursegmenten, nämlich den Kanten zwischen jeweils 2 der 3 Startknoten. 2. Solange noch Knoten existieren, die noch nicht zur Tour hinzugefügt wurden, wiederhole die folgenden Schritte. 2.1 Wähle zufällig einen noch nicht hinzugefügten Knoten Z aus. 2.2 Berechne die Distanzen von Z zu allen bisher eingefügten Knoten. 2.3 Bestimme die zwei benachbarten Knoten P und Q der unvollständigen Rundreise, so dass, wenn Z zwischen ihnen eingefügt wird, die Rundreise minimal verlängert wird. 2.4 Füge Z zur Rundreise hinzu, indem die Strecke PQ durch PZ und ZQ ersetzt wird. 1

Man könnte auch mit 2 Knoten und einer Rundreise durch diese 2 starten; natürlich nur, wenn die Instanz überhaupt so viele Knoten enthält.

15

Kapitel 3. Heuristiken

Für Random Insertion ergibt sich, wie für Nearest Neighbor, ebenfalls eine Laufzeit von O(n2 ). Schritte 2.1 bis 2.4 werden n-mal ausgeführt, und in jeder Iteration müssen O(n) Distanzen berechnet werden.

6

6

3

3

4

1

4

1 2

5

2 5

Abbildung 3.3: Knoten 6 wird als nächstes ausgewählt und findet seinen Platz zwischen 2 und 3.

Bei Nearest Neighbor wird sichergestellt, dass die Distanz von jedem Knoten zu seinem Nachfolgeknoten möglichst gering ist. Die Distanz zum Vorgänger dagegen bleibt unberücksichtigt. Für das letzte Toursegment gibt es dann keinerlei Wahlmöglichkeiten mehr; es muss immer den ersten und letzten Knoten miteinander verbinden, und diese beiden können unter Umständen sehr ungünstig liegen. Random Insertion hingegen misst die Distanz zu Vorgänger und Nachfolger und wählt den jeweils besten Kompromiss. Dadurch ist die Wahl nie so eingeschränkt wie bei Nearest Neighbor, und es werden üblicherweise – nicht jedoch grundsätzlich – auch bessere Ergebnisse erzielt. Das Wort Random im Titel impliziert allerdings schon, dass das Verfahren bei wiederholter Anwendung verschiedene Ergebnisse liefern kann, also die Performanz der Lösung nicht mehr nur von der Wahl der Startknoten (wie bei Nearest Neighbor) abhängt, sondern auch bei exakt gleichen Startbedingungen unterschiedliche Ergebnisse liefern kann. Wie sehr die Ergebnisse von wiederholten Verfahrensanwendungen voneinander abweichen können wird im Abschnitt 4.2 auf Seite 31 untersucht.

16

3.2. Ausgefeiltere Heuristiken

3.2 Ausgefeiltere Heuristiken Die hier vorgestellten Verfahren unterscheiden sich von den einfachen Heuristiken hauptsächlich dadurch, dass sie nicht gierig vorgehen, sondern einen minimalen Spannbaum zu Hilfe nehmen um eine Vorauswahl der Kanten zu treffen. Speziell handelt es sich hierbei um c-Approximationsalgorithmen. Das bedeutet, dass im schlechtesten Fall noch immer eine Güte von c garantiert werden kann.

3.2.1 Minimum Spanning Tree-Heuristik Die Idee bei der Minimum Spanning Tree-Heuristik (kurz MST-Heuristik, auch TreeTSP bei Vollmer [7]) ist es, zunächst einen minimalen Spannbaum über der Knotenmenge zu spannen. Die Reihenfolge der ermittelten Lösung ergibt sich dann daraus, den Spannbaum entlangzulaufen und die Knoten in der Reihenfolge des Besuches zu notieren. Wird dabei ein Knoten erneut besucht, wird er übersprungen. Technisch kann das Verfahren auf die folgende Weise durchgeführt werden: 1. Konstruiere einen minimalen Spannbaum über der Knotenmenge. 2. Überführe den dabei entstehenden Graphen in einen Multigraphen, indem jede Kante dupliziert wird. 3. Ausgehend von einem beliebigen Startknoten, finde eine Eulertour durch den Multigraphen und füge die Knoten in der Reihenfolge des Besuches zur Lösung hinzu. 4. Streiche jedes wiederholte Auftreten eines Knotens aus der Lösung. Der minimale Spannbaum eignet sich, um eine Vorauswahl der zu wählenden Kanten zu treffen, weil er alle Knoten miteinander verbindet bei kleinstmöglichem Gesamtkantengewicht. Sofern jedoch Verzweigungen im minimalen Spannbaum vorkommen, kann die Lösung nicht eindeutig aus der Eulertour bestimmt werden. Abbildung 3.4 zeigt den Multigraphen eines einfachen Spannbaumes. Die Eulertour führt 3-mal am Knoten 2 vorbei. Zwei dieser Besuche müssen durch zusätzliche Kanten zwischen den Nachbarn überbrückt werden. Welche dies sind schreibt die MST-Heuristik nicht vor.

17

Kapitel 3. Heuristiken

3

2

4

5

1

6 3

2

4

5

1

6

Abbildung 3.4: Multigraph mit Eulertour und eine gültige Lösung. Beim Vorgehen nach der MST-Heuristik können bei Verzweigungen – wie hier – ungünstige Entscheidungen getroffen werden.

Definition

„Eine Eulertour in einem Graphen [. . . ] ist ein Weg, der jede Kante des Graphen genau einmal enhält und dessen Anfangs- und Endknoten identisch sind. Enthält ein Graph eine Eulertour, so nennt man ihn eulersch.“

([9], S. 72)

Die Laufzeit des Verfahrens ergibt sich anhand der einzelnen Schritte zu O(n2 ) bei Verwendung des Algorithmus’ von Prim-Jarník zur Bestimmung des minimalen Spannbaumes. Schritt 1 2 3 4

Zeitbedarf O(n2 ) O(n) O(n) O(n)

Tabelle 3.1: Zeitbedarf der Schritte der MST-Heuristik Satz: Die MST-Heuristik ist ein 2-Approximationsalgorithmus ([2], [7]). Beweis (nach [7]): Das Gesamtgewicht des minimalen Spannbaumes WMST kann nicht größer als die Länge der optimalen Rundreise Wopt. sein. WMST ≤ Wopt.

18

3.2. Ausgefeiltere Heuristiken

Wäre dies doch der Fall, könnte man von der optimalen Rundreise eine Kante entfernen und erhielte wieder einen Spannbaum, der noch leichter als der minimale Spannbaum wäre. Weil in der Eulertour jede Kante des in Schritt 2 erzeugten Multigraphen genau einmal benutzt wird, hat diese eine Gesamtlänge von 2 · WMST .

WEuler ≤ 2 · Wopt. Aufgrund der Dreiecksungleichung ist die von der MST-Heuristik ermittelte Lösung nicht länger als die Eulertour durch den Multigraphen. Damit gilt: WLösung ≤ 2 · Wopt.

9



10 3 2

16 12 13 14

7 6

11

15

1 8 4

5

Abbildung 3.5: Der minimale Spannbaum und eine von der MST-Heuristik ermittelte Rundreise zu ulysses16.tsp. Diese Lösung hat eine Performanz von 1,13 und liegt damit deutlich unter der oberen Schranke von 2.

3.2.2 Die Heuristik von Christofides Die Heuristik von Christofides (auch Christofides’ Algorithmus genannt) baut auf der MST-Heuristik auf. Sie verwendet ebenfalls einen minimalen Spannbaum um eine erste Auswahl der für die Rundreise zu wählenden Kanten zu treffen.

19

Kapitel 3. Heuristiken

Letztendlich wird auch hier die Rundreise ermittelt indem eine Eulertour durch einen Multigraphen gesucht wird. Der Multigraph wird dabei jedoch nicht erzeugt indem jede Kante des Spannbaumes dupliziert wird, sondern durch Bestimmen eines gewichtsminimalen perfekten Matchings auf der Menge der Knoten des Spannbaumes mit ungeradem Grad und Hinzufügen jeder Kante dieses Matchings zum Spannbaum. Definition

Ein Matching eines Graphen G = (V, E) ist eine Teilmenge M ⊆ E, so dass die inzidenten Knoten aller Kanten aus M paarweise disjunkt sind, jeder Knoten aus V also nur mit höchstens einer Kante aus M inzidiert. M heißt perfekt, wenn zusätzlich gilt: |M | =

|V | , 2

also wenn jeder Knoten aus V mit genau einer Kante aus M inzidiert. Das Gesamtgewicht eines Matchings ist die Summe seiner Kantengewichte. Ein gewichtsminimales perfektes Matching M eines Graphen G ist ein Matching, so dass kein anderes Matching M 0 von G existiert mit geringerem Gesamtgewicht als M . [7], [9] Durch dieses Vorgehen wird ein Multigraph erzeugt, in dem alle Knoten von geradem Grad sind. Ein solcher Graph ist stets eulersch ([9], S. 73). Die weitere Durchführung entspricht wieder der MST-Heuristik. 1. Konstruiere einen minimalen Spannbaum über der Knotenmenge. 2. Bestimme ein gewichtsminimales perfektes Matching für die Menge der Knoten des Spannbaumes, die von ungeradem Grad sind. 3. Füge jede Kante des Matchings zum Spannbaum hinzu um einen Multigraphen zu erhalten. 4. Ausgehend von einem beliebigen Startknoten, finde eine Eulertour durch den Multigraphen und füge die Knoten in der Reihenfolge des Besuches zur Lösung hinzu. 5. Streiche jedes wiederholte Auftreten eines Knotens aus der Lösung.

20

3.2. Ausgefeiltere Heuristiken Schritt 1 2 3 4 5

Zeitbedarf O(n2 ) s. u. O(n) O(n) O(n)

Tabelle 3.2: Zeitbedarf der Schritte der Heuristik von Christofides

Schritt 2 stellt den zeitkritischen Schritt dar. Die Berechnung eines gewichtsminimalen perfekten Matchings ermöglicht der Algorithmus von Edmonds in Zeit O(n4 ). Außerdem existieren Verbesserungen des Algorithmus’ u. a. von Gabow, die in Zeit O(n3 ) auskommen ([6], S. 2). In dieser Arbeit wird zur Bestimmung eines gewichtsminimalen perfekten Matchings auf eine Implementierung des Algorithmus’ von Edmonds von Michael Maguire und Luis Goddyn ([3]) zurückgegriffen. Alternativ dazu wird untersucht, wie eine Heuristik zur Bestimmung einer Näherungslösung eines gewichtsminimalen perfekten Matchings Laufzeit und Performanz der Heuristik von Christofides beeinflusst. Dazu wird ein Verfahren von Wattenhofer & Wattenhofer ([10]) verwendet, das in Zeit O(n2 log n) ein perfektes Matching findet, das nicht schwerer als (log n)-mal das gewichtsminimale Matching ist. Die Laufzeit der Heuristik von Christofides ergibt sich damit zu O(n4 ) für die exakte und O(n2 log n) für die approximierte Lösung. 9

10

3 16

12

7

13

6

14

11 15 5

2 1 11

8

Knoten des Spannbaumes mit ungeradem Grad (zu matchender Knoten) Kante des Spannbaumes

4 Kante, die beim Matching bestimmt wurde

Abbildung 3.6: Der Multigraph zu ulysses16.tsp, der durch Hinzufügen des perfekten Matchings entsteht. Schematische Darstellung: die Proportionen der Entfernungen in der Darstellung stimmen nicht mit den echten überein. Vgl. Abbildungen 2.1 und 3.5.

21

Kapitel 3. Heuristiken

Genau wie bei der MST-Heuristik ist auch nach Christofides die Auswertung des Multigraphen, also die Bestimmung der Eulertour nicht genau beschrieben. Gefordert ist lediglich eine beliebige Eulertour. 12

913

3

68 …

904 13



52 14

12

68

13

904

406 449

12

3





14

449

16

16

913

3





14

52

13

406

16

Abbildung 3.7: Zwei mögliche Teillösungen für den Multigraphen aus Abb. 3.6. (Entfernungen sind Kilometerangaben.) Abbildung 3.7 zeigt einen Ausschnitt aus dem Multigraphen zu ulysses16.tsp. Die ermittelte Eulertour führt 2-mal an der 13 vorbei. Die rechts dargestellte Lösung der zwei möglichen Alternativen ist die bessere, weil sie das geringere Gesamtgewicht der betroffenen Kanten hat. Mit dem Verfahren nach Christofides wird das jedoch nicht berücksichtigt. Die Performanz hängt damit auch vom Zufall ab, weil bei der Anwendung zufällig eine der Möglichkeiten gewählt wird. Dieser Zufallsfaktor sorgt dafür, dass bei Verwendung des approximierten Matchings nach Wattenhofer & Wattenhofer, bei dem gegenüber dem exakten Matching nach Edmonds ein Multigraph mit höherem Gesamtgewicht entsteht, trotzdem eine kürzere Rundreise gefunden werden könnte. Ob dieser Umstand tatsächlich eintritt, wird in Abschnitt 4.2 auf Seite 34 geklärt. Unabhängig dieser Problematik und davon wie effizient eine Lösung anhand der Eulertour gewählt wird, ist die Performanz der ermittelten Lösung stets nicht größer als 1,5. Satz: Die Heuristik von Christofides ist ein 32 -Approximationsalgorithmus. Den Beweis dazu liefert Vollmer ([7], S. 38).

22

3.3. Sonstige Verfahren

3.3 Sonstige Verfahren 3.3.1 Brute Force Dem Brute Force-Ansatz nachzugehen stellt die einfachste und naivste Vorgehensweise dar. Es wird nacheinander jede mögliche Permutation der Knoten ausprobiert, wobei garantiert die optimale Lösung gefunden wird. Der Aufwand lässt sich reduzieren, indem ein beliebiger Startknoten festgelegt wird. Dies ist möglich, da dennoch alle möglichen Touren untersucht werden. Ist beispielsweise (5 4 6 1 3 2) eine optimale Tour und wird Knoten 1 als Startknoten festgelegt, so wird trotzdem die Tour (1 3 2 5 4 6) oder (1 6 4 5 2 3) gefunden. All diese drei Touren besuchen die Knoten in der gleichen oder genau umgekehrten Reihenfolge. Die ermittelten Längen der drei Lösungen sind identisch. Eine weitere Einsparung lässt sich vornehmen, wenn nicht jedesmal die gesamte Länge einer Tour, sondern nur der in der Iteration geänderte Teil berechnet wird. Dies entspricht einer Tiefensuche durch den Suchbaum, bei dem die Zwischendistanz an den Verzweigungen gespeichert und nur die Distanz von jeder Verzweigung zum Blatt berechnet werden muss. Außerdem braucht nur jeweils eine der zwei möglichen Rundreisen pro Permutation berechnet werden. Durch diese Einsparungen müssen noch

(n−1)! 2

mögliche Touren berechnet werden. Der

Zeitbedarf wächst exponentiell an, und das Verfahren ist schon für kleine Instanzen nicht praktikabel.

3.3.2 Genetischer Algorithmus Genetische Algorithmen ([8], S. 157) sind Verfahren, die in der Lage sind eine Vielzahl unterschiedlicher Probleme zu lösen, nicht nur das des Handlungsreisenden. Dazu arbeiten sie mit einer Menge von gültigen aber noch nicht zufriedenstellenden Lösungen. In mehreren wiederholten Iterationen werden vorhandene Lösungen paarweise miteinander kombiniert um neue, möglicherweise günstigere Lösungen zu erhalten. Die Bezeichnung genetischer Algorithmus kommt von der Ähnlichkeit dieses Vorgehens zur natürlichen Auslese nach der Evolutionstheorie von Charles Darwin (1858/1859).

23

Kapitel 3. Heuristiken Die Menge der Lösungen heißt daher Population, die einzelnen Lösungen Individuen. Das Kombinieren zweier Individuen, wodurch ein Nachfolger, das Kind, entsteht, wird Kreuzung genannt. Dabei können mit geringer Wahrscheinlichkeit Variationen, die Mutationen auftreten. Die sich ändernden Zustände der Population, die durch hinzufügen neuer Individuen entstehen, werden als Generationen bezeichnet. Die sogenannte Fitnessfunktion entscheidet dabei wie kräftig ein Individuum ist. Dadurch können schwache Individuen verworfen werden, die starken Individuen überleben bzw. geben ihre Gene an die Nachkommen weiter. So wird verhindert, dass die Population zu groß wird, der Algorithmus kann seine Suche auf die günstig scheinenden Lösungen konzentrieren. Als Anfangspopulation werden k Individuen zufällig erzeugt. Während der Durchführung befinden sich auch stets nur k Individuen in der Population. Das Verfahren kann schließlich in einem der drei folgenden Fälle anhalten: 1. Eine zufriedenstellende Lösung wurde ermittelt. 2. Eine festgelegte Anzahl von Generationen wurde erzeugt. 3. In einer festgelegten Anzahl nachfolgender Generationen trat keine Besserung ein. Der Algorithmus gibt dann die beste Lösung aus der Population zurück. Um mit dem genetischen Algorithmus nun eine günstige Rundreise für den Handlungsreisenden zu ermitteln wird er folgendermaßen angewandt. Die Individuen stellen Permutationen der n Städte oder Knoten dar. Damit handelt es sich um beliebig schlechte aber gültige Lösungen, da sie Rundreisen entsprechen, die nacheinander jede Stadt einmal besuchen. Als Anfangspopulation dienen k zufällig erzeugte Permutationen. Die Fitnessfunktion misst einfach die Länge der Rundreise der entsprechenden Lösung, wobei kürzere Lösungen fitter also kräftiger sind. Die Nachfolgegeneration wird hier stets nach folgendem Muster erzeugt. Sämtliche Individuen der Population werden paarweise mit jedem anderen Individuum  gekreuzt. Dabei entstehen k2 Kinder, die gegebenenfalls mutieren. Von den k alten und k(k−1) 2

neuen Individuen werden die k besten nach der Fitnessfunktion gewählt und in

die neue Generation übernommen; der Rest wird verworfen.

24

3.3. Sonstige Verfahren Die Kreuzung zwischen zwei Individuen i1 , i2 wird durchgeführt, indem von i1 eine Teil    tour t1 der Länge n2 zufällig bestimmt wird. Eine zweite Teiltour t2 der Länge n2 wird gebildet, indem von i2 alle Knoten entfernt werden, die schon in t1 enthalten sind. Die restlichen Knoten werden ausgehend von einem beliebigen Startknoten in der gleichen Reihenfolge wie in i2 aneinander gereiht und bilden t2 .

t1 und t2 stellen dabei keine Rundreisen, sondern lediglich Sequenzen oder Ketten von Knoten dar. Erst durch Aneinanderreihen entsteht eine Rundreise. Dies geschieht dabei auf diejenige der zwei Arten, bei denen die kürzere Gesamtlänge entsteht. Mit einer Wahrscheinlichkeit von 5 % mutiert anschließend die entstandene Rundreise. Dazu werden zwei Knoten zufällig ausgewählt, die einfach ihre Positionen tauschen.

Beispiel

Das Beispiel zeigt eine Kreuzung zweier Lösungen von ulysses16.tsp.

9

9

10

10

3 16

12

7

13

6

2

13

6

8

14

11

3

14

11

15

16

12

7

1

15

4

2 1 8 4

5

5

Abbildung 3.8: Diese zwei Individuen sollen gekreuzt werden. Links ist t1 bereits hervorgehoben.

9

10

3 12

16

2 8 4

Abbildung 3.9: t2 entsteht durch Auftrennen einer zufällig ausgewählten Kante der übrig gebliebenen Rundreise aus i2 .

25

Kapitel 3. Heuristiken

9

11 6

10 16

7

12

13

t2

t1

8

14

2

1 3

15 4

5

Abbildung 3.10: Die 2 Teiltouren werden zusammengefügt. Falls dadurch die Gesamttour kürzer wird, wird t2 zuvor umgedreht.

9

10

3 16

12

7

13

6

14

11

2 1 8

15

4

5

Abbildung 3.11: Hier fand keine Mutation statt. Die gekreuzte Rundreise hat eine Performanz von 1,32. Damit trat bei dieser Kreuzung keine Besserung gegenüber den Eltern (1,24 bzw. 1,21) ein.

Das Beispiel macht deutlich, dass nicht bei jeder Kreuzung eine Besserung eintritt. Es wird sogar immer unwahrscheinlicher, je besser die Performanz der Eltern ist, noch eine Besserung per Kreuzung zu erzielen. Während anfangs noch bei fast jeder Generation mit einer besseren Lösung gerechnet werden kann, werden im Laufe des Verfahrens mit zunehmender Güte im Mittel immer mehr Generationen nötig um überhaupt noch eine Besserung zu erzielen. Deswegen skaliert das Verfahren nicht für große Instanzen, auch wenn für kleine Instanzen in kurzer Zeit die optimale Tour gefunden werden kann. Damit bietet der genetische Algorithmus keine Garantie bzgl. der Performanz der ermittelten Lösung.

26

4 Testdurchführung

4.1 Testsystem Als Testsystem dient ein iMac (Late 2006). Hardware Prozessor: Arbeitsspeicher: Software Betriebssystem: Java:

Intel Core 2 Duo 2,16 GHz 2 GB DDR2 SDRAM Mac OS X 10.4.10 J2SE 1.5.0_07-164

4.2 Laufzeitanalyse und Testergebnisse Für die Verfahren Nearest Neighbor und Random Insertion wurden zur Ermittlung der Performanz Testserien durchgeführt mit 50 Wiederholungen pro Instanz für alle Instanzen mit Ausnahme von pla33810.tsp und pla85900.tsp; bei ihnen wurden nur 5 Wiederholungen durchgeführt. Die Startknoten wurden dabei in jeder Iteration stets zufällig gewählt. Für die folgenden Ergebnisse wird der arithmetische Mittelwert über alle Iterationen betrachtet. Die Verfahren MST-Heuristik und Heuristik von Christofides hingegen liefern reproduzierbare Ergebnisse und wurden nur jeweils einmal ausgeführt. Zur Messung der Laufzeit wurden alle Heuristiken ebenfalls nur jeweils einmal angewandt, weil bei wiederholter Anwendung die nachfolgenden Iterationen ansonsten teilweise erheblich schneller ausgeführt werden konnten, was auf die Verwendung von Caches zurückgeführt werden kann.

27

Kapitel 4. Testdurchführung Nearest Neighbor

Abbildung 4.1 zeigt die gemittelten Performanzen der Testserie mit 50 Wiederholungen aller Testinstanzen bis 2.392 Knoten. Nicht dargestellt sind 13 Instanzen aus TSPLIB mit Dimensionen zwischen 3.000 und 85.900 Knoten.Neighbor Performanz von Nearest 1,40 1,35

Performanz

1,30 1,25 1,20 1,15 1,10 1,05 1,00

0

400

800

1200

1600

2000

2400

Dimension

1,30 Random Insertion Abbildung 4.1: Performanzen von Nearest Neighbor für alle Instanzen bis 3.000 Knoten. Jedes Kästchen steht für eine Instanz, für die der arithmetische 1,25 Mittelwert aus 50 Testwiederholungen ermittelt wurde. 1,20

Es sollen einige Instanzen genauer betrachtet werden. si1032.tsp sticht durch seine au1,15 ßerordentlich gute Performanz hervor. Mit einer Dimension von 1.032 wurde im Mittel eine Performanz von 1,0197 erreicht. In einem eigenen Test wird die Häufigkeitsvertei1,10 lung der Performanzen für jeden möglichen Startknoten der 1.032 Knoten untersucht. 1,05 Abbildung 4.2 zeigt die Häufigkeitsverteilung der Performanzen auf Intervalle der Länge 0,00125 an.

1,00

0 400 800 1200 1600 2000 2400 Die Lösungen liegen extrem nah beieinander. Egal welcher Knoten als Startknoten be-

stimmt wird, eine mit Nearest Neighbor ermittelte Lösung für die Instanz si1032.tsp wird niemals mehr als 2,25 % länger sein als die optimale Lösung. Damit handelt es 1,6 MST-Heuristik sich ganz und gar nicht um eine typische Instanz aus TSPLIB. si1032.tsp selbst liegt nur als Adjazenzmatrix vor und kann deshalb nicht grafisch dargestellt werden. Bei Be1,5

1

trachtung der Adjazenzmatrix fällt jedoch auf, dass die Distanz von vielen Knoten zu ganzen Mengen1,4 von anderen Knoten gleich ist. So nehmen beispielsweise die Gewichte

1

28

1,3

1

1,2

1

1,1

1

1,0

0

400

800

1200

1600

2000

2400

1

1

1,10 1,05 1,00

0

400

800

1200 1600 2000 2400 4.2. Laufzeitanalyse und Testergebnisse

Dimension

der mehr als eintausend inzidenten Kanten des ersten Knotens nur weniger als 100 verRandom Insertion schiedene Werte an. Zwei weitere Instanzen, die fast ebenso stark nach unten ausreißen sind si175.tsp und si535.tsp mit den gleichen Besonderheiten wie si1032.tsp. 330 275

Anzahl

220 165 110 55

1,0256

1,0244

1,0231

1,0219

1,0206

1,0194

1,0181

1,0169

1,0156

1,0144

1,0131

MST-Heuristik

1,0119

1,0106

0

Intervallzentrum

1,6 MST-Heuristik Abbildung 4.2: Verteilung der Performanzen für alle 1.032 möglichen Startknoten von si1032.tsp. Die Werte an der Abszisse geben das Zentrum des Inter1,5 valls an. An der Ordinate lässt sich ablesen wie viele der 1.032 Lösungen in das jeweilige Intervall fallen. 1,4

Mit der Instanz 1,3 nrw1379.tsp (1.379 Städte in Nordrhein-Westfalen) soll ein typischer Vertreter von TSPLIB mit der gleichen Methode wie si1032.tsp untersucht werden. 8500 1,2 90

1,1 14000

60

Anzahl

1,0 3000

Christofides (approx.)

6500

80

Christofides (exakt)

60

90

60

36000

1,3040

1,2990

1,2940

1,2840

1,2890

1,2790

1,2740

1,2690

1,2640

1,2590

1,2540

1,2490

1,2440

1,2390

1,2340

1,2290

1,2240

1,2190

1,2140

1,2090

1,2040

0

Intervallzentrum

40

1,3040

1,2940

1,2840

1,2740

1,2640

1,2540

1,2440

1,2240

1,2140

4500 5500 Städte sowie die Häufigkeitsverteilung der Die nordrein-westfälischen 20 Performanzen für alle möglichen Startknoten. Die Intervalle haben eine Länge von 0,0025. 0 1,2040

5500 2500 Abbildung3500 4.3:

25000

30

100

1,2340

7500

29

Kapitel 4. Testdurchführung

Man sieht, dass bei einer recht gleichmäßig verteilten Menge an Städten die Performanzen aller Startknoten auch auf einem wesentlich größeren Bereich verteilt sind als bei speziellen Instanzen wie si1032.tsp. Nearest Neighbor liefert für jeden möglichen Startknoten für nrw1379.tsp eine Performanz zwischen 1,205 und 1,3025.

Random Insertion

Bei Analyse der Ergebnisse der Testserie zur Bestimmung der Performanzen von Random Insertion lässt sich feststellen, dass im Vergleich zu Nearest Neighbor hier mit besseren Ergebnissen gerechnet werden kann. Abbildung 4.4 stellt die Messergebnisse der beiden Verfahren gegenüber.

1,40

Random Insertion

1,35

Nearest Neighbor

Performanz

1,30 1,25 1,20 1,15 1,10 1,05 1,00

2400

0

400

800

1200

1600

2000

2400

Dimension Abbildung 4.4: Performanzen aller Instanzen unter 3.000 Knoten der Testserie von Random Insertion und noch einmal zum Vergleich die von Nearest Neighbor

Es lässt sich der 330 Eindruck gewinnen, dass mit zunehmender Dimension mit Nearest Anzahl Neighbor bessere 275 und mit Random Insertion schlechtere Ergebnisse erzielt werden. Ein Blick auf die restlichen Instanzen aus TSPLIB, die in Abbildung 4.4 nicht dargestellt sind, 220

zeigt, dass dies allgemein nicht so ist. 165 110

30

1,6

1,0269

1,0256

1,0244

1,0231

1,0219

1,0206

1,0194

1,0181

1,0169

1,0156

1,0144

MST-Heuristik

1,0131

0

1,0119

0

1,0106

55

MST-Heuristik

1,0 3000

14000

25000

36000

4.2. Laufzeitanalyse und Testergebnisse

ofides (approx.)

ofides (exakt)

Performanz

1,35 1,25 1,15 1,05 1500

7000

12500

18000

23500

29000

34500

Dimension

Abbildung 4.5: Vergleich der Instanzen großer Dimension. Nicht abgebildet ist pla85900.tsp, wofür Nearest Neighbor und Random Insertion jeweils eine Performanz von 1,15 ermittelt haben. 90

„Wie random ist Random Insertion?“

60

In Abschnitt 3.1.2 auf Seite 16 kam die Frage auf wie sehr die Ergebnisse von wiederholten Verfahrensanwendungen bei gleichen Startbedingungen voneinander abweichen 30

können.

Anzahl

25

1,3040

pa561.tsp

1,2940

1,2890

1,2840

1,2790

1,2740

nrw1379.tsp

1,2690

1,2640

1,2590

1,2540

1,2490

1,2440

1,2390

1,2340

1,2290

1,2240

1,2190

1,2140

1,2040

1,2090

0

30

1,2990

35

bier127.tsp

20

berlin52.tsp

15

ulysses22.tsp

10 5 0

1,01 1,03 1,05 1,07 1,09 1,11 1,13 1,15 1,17 1,19 1,21 1,23

Intervallzentrum

Abbildung 4.6: Häufigkeitsverteilung von jeweils 50 Anwendungen von Random Insertion auf Instanzen unterschiedlicher Größe mit jeweils immer gleichen Startbedingungen.

31

Kapitel 4. Testdurchführung

Anhand von fünf Beispielinstanzen unterschiedlicher Dimension soll dies untersucht werden. Abbildung 4.6 zeigt die Häufigkeitsverteilung der Performanzen, die in 50 Testwiederholungen mit jeweils immer gleichen Startbedingungen ermittelt wurden. Die Ergebnisse zeigen ähnliche Performanz und ähnliches Streuverhalten aller fünf Instanzen. Lediglich ulysses22.tsp zeigt verhältnismäßig gute Ergebnisse, was jedoch – hier nicht zu sehen – alle Testinstanzen mit Dimensionen unter 50 gemeinsam haben. ulysses22.tsp 0,036

berlin52 0,031

bier127.tsp 0,026

pa561.tsp 0,013

nrw1379.tsp 0,007

Tabelle 4.1: Standardabweichungen der 5 Instanzen aus Abbildung 4.6 bei 50 Wiederholungen mit jeweils gleichen Startbedingungen Die Zahlen der beiden gierigen Verfahren im Vergleich der Testserie über alle Testinstanzen sind in Tabelle 4.2 zu sehen.

Schlechteste Performanz: Beste Performanz: Arithmetisches Mittel: Median: Varianz: Standardabweichung:

Nearest Neighbor 1,3662 1,0197 1,2445 1,2532 0,0036 0,06

Random Insertion 1,2320 1,0230 1,1105 1,1086 0,0021 0,0459

Tabelle 4.2: Zusammenfassung der Messergebnisse zu Nearest Neighbor und Random Insertion für alle 110 Testinstanzen

MST-Heuristik

Die MST-Heuristik liefert die durchweg schlechtesten Ergebnisse. Abbildung 4.7 zeigt die Häufigkeitsverteilung der Performanzen auf Intervalle der Länge 0,05. Der Mittelwert beträgt 1,34 und die Standardabweichung 0,09. Abbildung 4.8 zeigt die Performanz der Testinstanzen gegenüber der Dimension.

32

4.2. Laufzeitanalyse und Testergebnisse

35 30

Anzahl

25 20 15 10

1,575

1,525

1,475

1,425

1,375

1,325

1,275

1,225

1,175

1,125

1,075

0

1,025

5

Intervallzentrum

Abbildung 4.7: Häufigkeitsverteilung der Performanzen aller Instanzen mit Ausnahme von pla85900.tsp bei Verwendung der MST-Heuristik

1,5500 1,5000 1,4500

Performanz

1,4000 1,3500 1,3000 1,2500 1,2000 1,1500 1,1000 1,0500 1,0000 10

100

1000

10000

100000

Dimension

Abbildung 4.8: Performanzen der MST-Heuristik aller Instanzen mit Ausnahme von pla85900.tsp nach Dimension unter Verwendung einer logarithmischen Skala für die Dimension. Auffällig: die Positionen der Punkte sind fast auf ein Dreieck im oberen Bereich beschränkt. Nur drei Instanzen liegen deutlich darunter. Es handelt sich um si175.tsp, si535.tsp und si1032.tsp.

33

Kapitel 4. Testdurchführung 1,5

Christofides (approx.)

Die Heuristik von Christofides 1,4

Christofides (exakt)

Die von Michael Maguire und Luis Goddyn entwickelte Implementierung des Algorith1,3

mus’ von Edmonds, die hier zur Bestimmung eines gewichtsminimalen perfekten Mat1,2 chings verwendet wird, funktioniert nur bei Instanzen, bei denen die Knoten in der

euklidischen Ebene 1,1 liegen. Dem gegenüber1,0gestellt wird die eines Verfahrens von Wattenhofer 40 244 448 Implementierung 652 856 1060 und Wattenhofer zur Bestimmung einer Näherungslösung eines gewichtsminimalen perfekten Matchings. Näherungslösung (Wattenhofer)

Performanz

Exakte Lösung (Edmonds) 1,3

1,3

1,2

1,2

1,1

1,1

1,0 44

94

144

194

244

1,0 244

346

448

550

652

754

856

958 1060

Dimension

Abbildung 4.9: Die Performanzen der Instanzen mit euklidischer Knotenmenge bei Verwendung der Heuristik von Christofides. Jedes Kästchen steht für eine Testinstanz. Abbildung 4.9 zeigt die Ergebnisse der beiden Implementierungen im Vergleich. Bei Verwendung des exakten gewichtsminimalen perfekten Matchings wurde im Mittel eine Performanz von 1,1053 und bei Verwendung des approximierten1 Matchings eine Performanz von 1,1659 erreicht. In nur einem einzigen Fall (pr144.tsp) führte die Verwendung eines approximierten Matchings zu einer insgesamt kürzeren Rundreise als bei Verwendung des exakten Matchings. Dort konnte aus einer längeren Eulertour zufällig eine günstigere Lösung ermittelt werden. 1

Dies gilt bei Wattenhofer nur für die Menge der in Abbildung 4.9 dargestellten euklidischen Instanzen. Tabelle 4.3 zeigt die Ergebnisse für alle gültigen Testinstanzen einschließlich der nicht-euklidischen.

34

4.2. Laufzeitanalyse und Testergebnisse

Allgemein sorgt die Verwendung einer Näherungslösung für das gesuchte gewichtsminimale perfekte Matching dafür, dass für die Heuristik von Christofides eine Güte von 1,5 nicht mehr garantiert werden kann. Die Messergebnisse über alle Testinstanzen, das sind alle euklidischen sowie solche mit expliziten Entfernungsangaben, zeigt jedoch, dass selbst für die Näherungslösung niemals eine Performanz schlechter als 1,3 ermittelt wurde. Wenn 1,3 auch keine echte obere Schranke darstellt, so zeigt dies doch zumindest, dass es schon speziell konstruierter Instanzen bedarf um möglichst schlechte Ergebnisse zu erzielen. MST-Heuristik Schlechteste Performanz: Beste Performanz: Arithmetisches Mittel: Median: Varianz: Standardabweichung: Anzahl der Testinstanzen:

1,5166 1,0380 1,3441 1,3596 0,0082 0,0908 109

Christofides (exakt) 1,1760 1,0318 1,1053 1,1074 0,0009 0,0298 51

Christofides (approx.) 1,2704 1,0160 1,1630 1,1698 0,0022 0,0474 94

Tabelle 4.3: Zusammenfassung der Messergebnisse zu MST-Heuristik und Heuristik von Christofides

Laufzeiten der Verfahren Bei der Analyse der Laufzeiten muss zwischen den Formaten der Instanzen differenziert werden. Instanzen, bei denen die Distanzen explizit gegeben sind, werden sich – bei gleicher Dimension – immer schneller lösen lassen als Instanzen mit euklidischen oder geografischen Koordinaten. Auch existiert keine Instanz mit explizit gegebenen Distanzen mit größerer Dimension als 1.032 und keine geografische Instanz mit größerer Dimension als 666. Bei solch kleinen Dimensionen liegen die Messergebnisse noch recht nah beieinander. Lediglich die Heuristik von Christofides bei Verwendung der Implementierung von Maguire/Goddyn zur Bestimmung eines gewichtsminimalen perfekten Matchings zeigt Laufzeiten, die deutlich höher liegen. Auch wenn dieses Verfahren mit O(n4 ) die erwartungsgemäß höchsten Laufzeiten hat, so ist dieser Umstand wohl eher darin zu sehen,

35

Kapitel 4. Testdurchführung

dass die Implementierung primär für ein Applet geschrieben wurde um Matchings zu

Laufzeit in Sekunden

visualisieren für kleine Mengen bis ca. 50 Knoten. 0,85 0,8 0,75 0,7 0,65 0,6 0,55 0,5 0,45 0,4 0,35 0,3 0,25 0,2 0,15 0,1 0,05 0 0

Christof. (approx., euklidisch) MST (euklidisch) Nearest Neighbor (euklidisch) Random Insertion (euklidisch) MST (Geo) Nearest Neighbor (Geo) Random Insertion (Geo) Christof. (approx., explizit) MST (explizit) Nearest Neighbor (explizit) Random Insertion (explizit)

200

400

600

800

1000

Dimension Abbildung 4.10: Laufzeiten für kleine Instanzen bis 1.000 Knoten. Es zeichnet sich bereits ab, dass Random Insertion und Nearest Neighbor sowie MSTHeuristik und Christofides (approx.) stets recht nah beieinander liegen. Hier nicht dargestellt: Christofides mit exaktem gewichtsminimalem Matching. Abbildung 4.10 stellt die Laufzeiten der Testinstanzen bis 1.000 und Abbildung 4.11 bis 7.500 Knoten grafisch dar. Der leichte Einschnitt in der Laufzeit in Abbildung 4.11 bei ca. n = 4.500 Knoten für die MST-Heuristik kommt daher, dass bei der Instanz fnl4461.tsp die Koordinaten in ganzen Zahlen und bei der Instanz fl3795.tsp in gebrochenen Zahlen in Exponentialschreibweise vorliegen, was höheren Rechenaufwand bedeutet. Dort ist ebenfalls der Verlauf der Laufzeiten für Brute Force bei Verwendung von Instanzen mit explizit angegebenen Distanzen dargestellt. Selbst in diesem Fall beträgt die Laufzeit bei nur 13 Städten bereits rund 20 Minuten. Die Laufzeiten der nicht in den Diagrammen dargestellten Instanzen sind in Tabelle 4.4

36

0,15 0,1 0,05 0 0

Nearest Neighbor (explizit) Random Insertion (explizit)

200

400

600

Dimension

1000 und Testergebnisse 4.2.800 Laufzeitanalyse

Laufzeit in Sekunden

aufgelistet. 170 160 150 140 130 120 110 100 90 80 70 60 50 40 30 20 10 0 0

Christofides (exakt) Christofides (approx.) MST-Heuristik Nearest Neighbor Random Insertion Brute Force (explizit)

1000

2000

3000

4000

5000

6000

7000

8000

Dimension

Abbildung 4.11: Laufzeiten für euklidische Instanzen. Christofides’ Heuristik steigt schon früh dramatisch an, was nicht zuletzt an der Implementierung von Edmonds’ Algorithmus liegt.

Dimension 11.849 13.509 14.051 15.112 18.512 33.810 85.900

Christofides (approx.) 3 min 31 s 8 min 3 min 39 s 8 min 30 s 12 min 27 s 70 min 27 s unbestimmt

MST-Heuristik

Nearest Neighbor

Random Insertion

3 min 25 s 7 min 30 s 3 min 8 s 7 min 40 s 11 min 15 s 63 min 7 s unbestimmt

24 s 31 s 33 s 39 s 57 s 3 min 55 s 24 min 34 s

27 s 36 s 38 s 44 s 1 min 5 s 4 min 42 s 31 min 48 s

Tabelle 4.4: Laufzeiten für große Instanzen

Genetischer Algorithmus Auf 4 Beispielinstanzen unterschiedlicher Größe soll der genetische Algorithmus angewandt werden. Mit einer Populationsgröße von 10 sollen 100 Generationen erzeugt wer-

37

5 3 Kapitel 1 4. Testdurchführung

0

10

20

30

40

50

60

70

80

90 100

Generation

den. Abbildung 4.12 zeigt den Verlauf.

17

u574.tsp

15

ulysses22.tsp

Performanz

13

gr137.tsp

11

fri26.tsp

9 7 5 3 1

0

10

20

30

40

50

60

70

80

90 100

Generation

Abbildung 4.12: Verlauf des genetischen Algorithmus’. Jedes Kästchen steht für eine Generation in der eine Verbesserung gegenüber der Elterngeneration eingetreten ist. Die Performanz steht für das kräftigste Individuum der jeweiligen Generation. Man erkennt, dass für kleine Instanzen durchaus schnell gute Ergebnisse erzielt werden konnten. Die beiden größeren Instanzen hingegen lieferten nicht so gute Ergebnisse. Hinzu kommt, dass die Laufzeiten hier für 100 Generationen bereits schon recht hoch sind wie der Vergleich mit der Laufzeit der MST-Heuristik zeigt. Instanz ulysses22.tsp fri26.tsp gr137.tsp u574

Genetischer Algorithmus 66 ms 200 ms 1s 5s

MST-Heuristik 370 µs 175 µs 13 ms 200 ms

Tabelle 4.5: Laufzeiten für 100 Generationen des genetischen Algorithmus’ Abbildung 4.13 zeigt warum das Verfahren nicht skaliert. Bei einer Steigerung der Anzahl der Generationen auf 2.000 konnte die Performanz für die Instanz u574.tsp nur

38

5 3 1

0

10

20

30

40

50

und Testergebnisse 60 4.2.70Laufzeitanalyse 80 90 100

Generation

auf 3,5 gesenkt werden gegenüber dem ersten Versuch, bei dem in 100 Generationen eine Performanz von 11,6 erreicht wurde. Die Kurve konvergiert jedoch immer langsamer, dieser zweite Versuch dauerte bereits 111 Sekunden und in nur 972 Generationen konnte eine Verbesserung gegenüber der Elterngeneration erreicht werden; beim ersten Versuch trat noch in jeder Generation eine Besserung ein.

17 15

Performanz

13 11 9 7 5 3 1

0

400

800

1200

1600

2000

Generation

Abbildung 4.13: Wiederholung des genetischen Algorithmus für u574.tsp mit diesmal 2.000 Generationen

Was es sonst noch gibt Mit Concorde ([4]) steht alternativ eine Software zur Verfügung, die den Ansatz der linearen Optimierung verfolgt um das Problem des Handlungsreisenden zu lösen. Dabei handelt es sich tatsächlich nicht mehr um Näherungslösungen, sondern die kürzestmögliche Rundreise durch die jeweilige Instanz. Concorde ist auch das Programm, mit dem die optimalen Lösungen zu 106 der 110 Testinstanzen von TSPLIB ermittelt werden konnten.

39

Kapitel 4. Testdurchführung

Die Brute Force-Methode ist mit ihrer exponentiell anwachsenden Laufzeit ungeeignet um exakte Lösungen zu bestimmen; Concorde schafft dies deutlich schneller. Die Laufzeit von Concorde für einige Testinstanzen ist in Tabelle 4.6 und Abbildung 4.14 dargestellt. Instanz kroA100.tsp pr144.tsp a280.tsp lin318.tsp rd400.tsp fl417.tsp d493.tsp u574.tsp

Concorde 1 2 2,5 7,4 53 34 251 28

Christofides 0,7 0,5 1,8 2,4 7,6 6,6 19,9 15,3

Instanz rat575.tsp p654.tsp d657.tsp u724.tsp pr1002 u1060.tsp nrw1379 pr2392

Concorde 163 13 150 220 44 616 502 63

Christofides 24 31 28 34 132 164

Tabelle 4.6: Laufzeit von Concorde einiger ausgewählter Instanzen und Vergleich mit Christofides. Alle Angaben in Sekunden. Mit der Maguire/GoddynImplementierung von Edmonds’ Algorithmus ließen sich keine Matchings bestimmen für größere Instanzen als u1060.tsp. 170

Christofides Concorde

Laufzeit in Sekunden

136 102 68 34 0

0

800

1600

2400

Dimension

Abbildung 4.14: Grafische Darstellung der Ergebnisse aus Tabelle 4.6. Nicht dargestellt sind die Ergebnisse, deren Laufzeit 170 Sekunden übersteigt. Die Laufzeiten bei Concorde schwanken mitunter sehr stark. Während beispielsweise nrw1379.tsp sehr lange braucht, kann die deutlich größere Instanz pr2392.tsp viel

40

4.2. Laufzeitanalyse und Testergebnisse

schneller abgeschlossen werden. In Abbildung 4.15 wird ersichtlich warum.

16000

8500

1000 4.15: Die 2.392 Knoten aus pr2392.tsp. Das Vorhandensein spezieller Abbildung 500 6000 11500 Strukturen und lokaler Gruppen begünstigt das Ausnützen linearer Optimierung. Bei nrw1379.tsp sind die Städte/Knoten dagegen gleichmäßig verteilt.

41

Kapitel 4. Testdurchführung

Abbildung 4.16: Concorde mit der optimalen Lösung zu p654.tsp

42

5 Bewertung der Ergebnisse Auch mit vorliegenden Messergebnissen fällt die Bewertung noch nicht ganz leicht. Es lassen sich aber schon einige Beobachtungen äußern. Der gierige Ansatz der einfachen Heuristiken lieferte durchweg Ergebnisse, gegen die die ausgefeiltere Methodik der MST-Heuristik nicht ankam. Ihren Vorteil gegenüber den einfachen Heuristiken, nämlich die Gütegarantie, konnte die MST-Heuristik nicht ausspielen, weil alle Verfahren sowieso Ergebnisse erzielten, die deutlich unter den oberen Schranken lagen. Mit nur einer einzigen Testinstanz überhaupt überschritt die MSTHeuristik die obere Schranke von 1,5 der verbesserten Heuristik von Christofides knapp. Die Ergebnisse der beiden Varianten der Christofides-Heuristik liegen ebenfalls derart niedrig, dass bei Verwendung einer Näherungslösung des gewichtsminimalen perfekten Matchings die Gefahr des Überschreitens der oberen Schranke von 1,5 praktisch nicht gegeben ist, wenn man nicht gerade Instanzen konstruiert, die genau darauf abzielen. Was die Ergebnisse deutlich zeigen, ist dass Nearest Neighbor das schnellste Verfahren darstellt, Random Insertion jedoch nur unwesentlich langsamer ist; zudem kann bei Random Insertion im Mittel mit besseren Ergebnissen gerechnet werden. Die Ergebnisse von Random Insertion sind sogar so gut, dass sie fast gleichauf mit denen der Christofides-Heuristik liegen, für welche im Mittel die beste Performanz ermittelt wurde. „Christofides’ Algorithmus ist der beste heute bekannte Approximationsalgorithmus für MinMTSP1 .“

(aus [7])

Der Satz hätte selbst dann Bestand, wenn die Messergebnisse der Testinstanzen von Random Insertion deutlich besser wären als die von Christofides, weil es sich bei Random Insertion nicht um einen Approximationsalgorithmus handelt. Dennoch fällt es nicht ganz leicht das bessere der beiden Verfahren zu bestimmen. 1

Mit MinMTSP ist das hier behandelte Problem MinTSP gemeint. M: metrisch, hier Voraussetzung.

43

Kapitel 5. Bewertung der Ergebnisse Die Performanz aller möglichen Testinstanzen der beiden Verfahren liegt im Mittel bei 1,1053 (Christofides) und 1,1105 (Random Insertion) und damit sehr nah beieinander. Bei Beschränkung der Instanzen auf diejenigen, auf die auch Christofides angewandt werden konnte, ergibt sich zwar ein Mittelwert von 1,0995 für Random Insertion und damit ein geringfügig besserer Schnitt als für Christofides; all diese Werte liegen jedoch derart nah beieinander, dass sich nur aufgrund dessen kein vernünftiges Urteil treffen lässt. Die Heuristik von Christofides hat jedoch zwei entscheidende Nachteile. 1. Ein Verfahren zu implementieren, das in der Lage ist ein gewichtsminimales perfektes Matching zu bestimmen stellt die anspruchsvollste Aufgabe bei der Implementierung der hier vorgestellten Verfahren dar. 2. Die Heuristik von Christofides stellt die mit Abstand langsamste der hier vorgestellten Verfahren dar. Punkt 2 lässt sich relativieren, wenn man berücksichtigt, dass zum einen Algorithmen existieren, die ein gewichtsminimales perfektes Matching in Zeit O(n3 ) bestimmen und zum anderen die hier verwendete Maguire/Goddyn-Implementierung nicht für so große Mengen von Knoten, wie sie hier vorkommen, geschrieben wurde und sich nicht so ganz nahtlos in die restliche Implementierung einbinden lässt. Wegen dieser Problematik der unbefriedigenden Implementierung von Edmonds’ Algorithmus sind die Laufzeiten von Christofides’ Heuristik, wie sie sich in Abbildung 4.11 darbieten, nur schwer zu beurteilen. Was jedoch bleibt ist das Wissen, dass Christofides’ Heuristik, selbst bei Verwendung eines approximierten Matchings, eine gegenüber Random Insertion erheblich längere Laufzeit aufweist, die Performanz jedoch allenfalls gleichauf liegt und sich somit allein mit dem einzigen Vorteil der Heuristik von Christofides gegenüber Random Insertion, nämlich der Gütegarantie von 23 , kaum argumentieren lässt, dass der Mehraufwand bei Implementierung und Anwendung von Christofides’ Heuristik gerechtfertigt ist. Das letzte Verfahren, der genetische Algorithmus, enttäuscht ebenfalls bei großen Instanzen und ist allenfalls geeignet für kleine Instanzen, hat dort allerdings wegen seines stochastischen Einflusses das Potential selbst die besten Lösungen der anderen Verfahren noch zu unterbieten und sogar die optimale Lösung zu finden.

44

Literaturverzeichnis [1] http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/. [2] http://de.wikipedia.org/wiki/MST-Heuristik. [3] http://www.math.sfu.ca/~goddyn/Courseware/Visual_Matching.html. [4] http://www.tsp.gatech.edu/concorde.html. [5] G. Ausiello, P. Crescenzi, G. Gambosi, V. Kann, A. Marchetti-Spaccamela, and M. Protasi. Complexity and Approximation. Springer, 1999. [6] William Cook and André Rohe. Computing minimum-weight perfect matchings, August 1998. [7] Prof. Dr. Heribert Vollmer. Skript zur Vorlesung - Komplexität von Algorithmen, Sommersemester 2005. [8] Stuart Russel and Peter Norvig. Künstliche Intelligenz: Ein moderner Ansatz. Pearson Education, Inc, publishing as Prentice Hall, 2. Auflage 2004 edition, 2003. [9] Angelika Steger. Diskrete Strukturen 1. Springer, 1. korrigierter Nachdruck 2002 edition, 2002. [10] Mirjam Wattenhofer and Roger Wattenhofer.

Fast and Simple Algorithms for

Weighted Perfect Mathing. In CTW on Graphs and Combinatorial Optimization (CTW), Milano, Italy), 2004.

45