Das Traveling Salesman Problem (TSP)

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Algorithmentheorie 08 – Dynamische Programmierung (1)
Simulationsansätze in der BWL: Erstellung eines eigenen Projekts
Christian Scheideler SS 2009
Man bestimme den „minimalen aufspannenden Baum“ des Graphen.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Genome Rearrangements
Polynomial Root Isolation
Schwierigkeit von Aufgabenstellungen
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
2. Kapitel: Komplexität und Komplexitätsklassen
Die 1-Baum-Relaxation des TSP mit der Subgradientenmethode
Wie lösen wir ILPs exakt?
Verifizieren versus Berechnen
Algorithmen und Komplexität
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Approximationsalgorithmen …liefern in polynomieller.
Klaus Volbert 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Sommersemester 2004.
Algorithmentheorie 6 – Greedy-Verfahren
Prof.Dr.S. Albers Prof. Dr. Th. Ottmann
Dynamische Programmierung (2) Matrixkettenprodukt
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Seminar parallele Programmierung SS 2003
Branch and Bound Das Verfahren zur Lösung von IP-Problemen
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Algorithmen und Komplexität
Christian Schindelhauer
Minimum Spanning Tree: MST
The Rectilinear Steiner Tree Problem is NP-complete
Kurt Mehlhorn Konstantinos Panagiotou
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Optimierungs- Algorithmen
Chromatische Zahl.
Effiziente Algorithmen
Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft zu kennen?] Kurt Mehlhorn Konstantinos Panagiotou.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Information und Kommunikation
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Informatik III Christian Schindelhauer Wintersemester 2006/07
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Analyse der Laufzeit von Algorithmen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
Optimierungs- Algorithmen
Der A*-Algorithmus.
WS03/041 Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
G.Heyer Algorithmen und Datenstrukturen 2 1 Dynamische Programmierung Das Prinzip „Teile und Herrsche“ diente als Grundlage für die Entwicklung vieler.
Gliederung der Vorlesung
Institut für Informationssysteme Technische Universität Braunschweig Institut für Informationssysteme Technische Universität Braunschweig Verdrängung von.
Das Problem des Handlungsreisenden
 Präsentation transkript:

Das Traveling Salesman Problem (TSP) Problembeschreibung: Gegeben sind n Städte und Abstände zwischen ihnen. Ein Handlungsreisender (traveling salesman) muss auf einer Tour all diese Städte einmal besuchen. Der Handlungsreisender startet und beendet die Tour in ein und derselben Stadt. Die Aufgabe besteht darin, eine Permutation (Reihenfolge) dieser Städte zu finden, welche die Gesamtlänge der Tour minimiert. Im Allgemeinen ist es unmöglich, alle Permutationen einer Tour zu berechnen. Betrachtet man z.B. eine Tour mit 12 Städten: Wenn eine Berechnung 0.01 sec CPU Zeit benötigt: 12! Berechnungen benötigen 4 790 016 sec ~ 55 Tage 11 h CPU Zeit

Das Traveling Salesman Problem (TSP) TSP ist eines der bekanntesten kombinatorischen Probleme. Es gibt viele verschiedene Algorithmen zur Lösung dieses Problems, aber alle Algorithmen benötigen eine Berechnungszeit, die exponentiell bezüglich der Problemgröße n wächst. Ob es einen besseren Algorithmus gibt, ist ein bis heute noch ungelöstes Problem. Es ist empfehlenswert, keine Zeit in die Suche eines besseren Algorithmus zu verwenden. Die Problemklasse P Die Problem Klassen N und NP werden in der Komplexitätstheorie (Teildisziplin der Mathematik) untersucht. Für Algorithmen zu kombinatorischen Problemen wird die Laufzeit der Algorithmen als Funktion der Größe n der Eingabe gemessen. Wenn die Laufzeit höchstens wie ein Polynom nk (für eine positive ganze Zahl k) wächst, dann gehört das Problem zu der Klasse P. P steht für die Problemklasse der in polynomialer Zeit mit einem deterministischen Algorithmus lösbaren Probleme.

Die Problemklasse NP Die Probleme der Klasse NP sind schwieriger. Für diese Probleme ist es nur möglich, eine Lösung zu erraten und in einer vernünftigen (polynomialen) Zeit zu entscheiden, ob diese Lösung korrekt, d.h. optimal, ist oder nicht. Solche Algorithmen werden nichtdeterministisch genannt. NP steht für die Problemklasse der in polynomialer Zeit mit einem nichtdeterministischen Algorithmus lösbaren Probleme. Die Klasse NP enthält eine große Menge praktischer Probleme, für die effiziente Algorithmen von vielen Forschern gesucht werden, aber keiner konnte bisher einen solchen Algorithmus finden. Für spezielle Probleme existieren trickreiche Algorithmen. Diese Lösungen haben oft nur theoretischen Wert und können nicht auf praktische, zusammengesetzte komplexe Aufgaben angewendet werden. In vielen praktischen Fällen ist es ausreichend, eine geeignete Lösung, nicht notwendig die beste zu wissen. Zum Beispiel existiert ein Algorithmus für das Problem TSP, der eine Tour in polynomialer Zeit berechnet ( n3 ), die höchstens 1,5 mal länger als die optimale Tour ist.

Der Branch & Bound Algorithmus Dieser Algorithmus setzt voraus, dass der Lösungsraum eine Baumstruktur hat, so dass eine vollständige Suche in der Menge aller Möglichkeiten effizient möglich ist. Jeder Knoten dieses Baumes hat eine untere Grenze (lower bound) für die Länge aller Touren, die sich unterhalb dieses Knotens befinden. Ein Knoten wird durch eine reduzierte Distanztabelle und die untere Grenze beschrieben. Der Eintrag -1 in der Distanztabelle bedeutet, dass die Kante unendliche Länge hat und deshalb für die Tour nicht in Frage kommt. Soweit es möglich ist, werden Kanten gespeichert, die in der zugehörigen Tour vorkommen.

Der Branch & Bound Algorithmus Der Schritt Beschränken 6 10 6 9 0 1 0 0 neue reduzierte Distanztabelle Um die untere Grenze für einen Knoten zu bestimmen, wird in jeder Zeile das Minimum berechnet. Diese Minimum wird von alle Elementen dieser Zeile subtrahiert. Das wird für alle Zeilen und Spalten ausgeführt. Diese Transformation ändert nicht die Lösung. Die untere Grenze ist die Summe dieser minimalen Einträge: Untere Grenze = (6 + 10 + 6 + 9) + (0 + 1 + 0 + 0) Die zu den Einträgen 0 gehörende Kanten werden weiter untersucht.

Branch & Bound Algorithmus für das TSP der Schritt Verzweigen Die Kante (5,1) hat in der reduzierten Distanztabelle die Länge 0. Knoten 1 Knoten 2 mit (5,1) Knoten 3 ohne (5,1) Diese Tabelle zum Knoten 2 hat an der Stelle (5,1) den Eintrag –1 (unendlich). Das verhindert, dass diese Kante in einer folgenden Teillösungen verwendet wird. Reduzierte Distanztabelle In dieser Tabelle ist die 5. Zeile und die 1. Spalte gestrichen, da die Kante (5,1) bereits ausgewählt ist und in den folgende Teillösungen nicht noch einmal vorkommen darf. Die Kante (5,1) wird in der Spalte successors der Tabelle Tree gespeichert.

Der Branch & Bound Algorithmus Knoten 1 Knoten 2 mit (5,1) Knoten 3 ohne (5,1) Knoten 6 mit (2,1) Knoten 7 ohne (2,1) Die Menge der entstehenden Daten kann enorm wachsen. In schlechtesten Fall werden ale Knoten verzweigt. Martin Aigner: Diskrete Mathematik. Vieweg Studium, 1996, S. 180-182. Uwe Schöning: Algorithmen - kurz gefasst. Spektrum Akademischer Verlag, 1997, S. 197-202.

Dynamische Programmierung für das TSP Um das Problem mit der Größe n zu lösen, zerlegt man das Problem in mehrere Teilprobleme mit kleinerer Größe. Alle Teilprobleme werden gelöst und in eine Tabelle ways geschrieben. Bellmannsches Optimalitätsprinzip: Eine optimale Lösung des Problems ist die Zusammensetzung von optimalen Lösungen aller Teilprobleme. Wenn eine optimale Tour in der Stadt 1 startet und zur Stadt k führt, dann muss die Tour vom k nach 1 zurück über alle Städte {2,...,n} \ {k} ebenfalls optimal sein.

Dynamische Programmierung für das TSP Bezeichnen wir mit g(i,S) die Länge der kürzesten Tour, die in der Stadt i beginnt, in der Stadt 1 endet und durch alle Städte der Menge S führt. Die Lösung des TSP ist offensichtlich g(1, {2,...,n}). { d(i,1), wenn S keine Stadt enthält, g(i,S) = min{ d(i,j) + g( j, S \ {j} ): jS }, wenn S wenigstens eine Stadt enthält. 1 i S Uwe Schöning: Algorithmen - kurz gefasst. Spektrum, Akademischer Verlag, 1997, S. 97-99.

Dynamische Programmierung für das TSP Für 10 Städte müssen alle Teilmengen von {2,3,...,10} erzeugt werden. Die Tabelle ways für alle Werte der Funktion g(i,S) hat 29 = 512 Zeilen 0-Menge S 1-Menge S (9 mal) g(10,{2,3,4,5}) 2-Menge S (36 mal) 3-Menge S (84 mal)

TSP als ein lineares Optimierungsproblem Kante (1,2) (1,3) (1,4) (2,3) (2,4) (3,4) 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 2 4 3 Integer-Variable x a b{0,1} für die Eckennummern a, b mit a<b Dieses Verfahren ist für höchsten 9 Städte praktikabel.

TSP als ein Lineares Optimierungsproblem Länge der Tour =  d(a,b) * x a b Jede Stadt muss besucht werden:  x a b = 2 für alle a. Elimination von Zyklen:   x a b  2 für alle S  {1,...,n}. (Mehrfache Zyklen) b: b  a a  S b  S a  S b  S

Hill Climbing für das TSP Lokale Suche: Interative Verbesserung einer Lösung durch Austauschen von 2 Kanten. x x x+1 x+1  1 1 y+1 y y+1 y Austausch für x + 1  y - 1: 1,..., x, x+1, x+2, ..., y, y+1,... 1,..., x, y, y-1, ..., x+1, y+1, ...

Hill Climbing für das TSP Globales Optimum Lokales Optimum Startlösung Das Problem des lokalen Optimums kann durch verschiedene Startlösungen vermieden werden.