Das Problem des Handlungsreisenden

Slides:



Advertisements
Ähnliche Präsentationen
Christian Scheideler SS 2009
Advertisements

Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
ADS Vorlesung Prof. Dr. W. Conen, FH Gelsenkirchen
Die 1-Baum-Relaxation des TSP mit der Subgradientenmethode
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Approximationsalgorithmen …liefern in polynomieller.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Seminar parallele Programmierung SS 2003
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Algorithmen und Komplexität
Minimum Spanning Tree: MST
Vortrag über Graphen Von Jörg Hendricks.
Effiziente Algorithmen
Chromatische Zahl.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Christian Scheideler Institut für Informatik Universität Paderborn
Jamshid Azizi: Folie Isomorphietest Jamshid Azizi
Kapitel 8: Graphalgorithmen 8. 1 Grundlagen 8
Kapitel 8: Graphalgorithmen 8. 1 Grundlagen 8
Das Traveling Salesman Problem (TSP)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms.
Analyse der Laufzeit von Algorithmen
Bipartite Graphen Der Satz von König.
Minimal spannende Bäume
Anwendung der Ellipsoidmethode in der Kombinatorischen Optimierung
Gliederung der Vorlesung
Binärbäume.
Suchen und Sortieren.
Philip Schill Erik Kurrat Simon Walther
Seminar im Fach Geoinformation IV
Eine Näherungslösung für das Problem des Handlungsreisenden
Lösung der Aufgabe 1: Die Erweiterung des Diagramms auf „Winged Egde“ besteht in zwei Beziehungen, nr-Kante und vl-Kante, zwischen der Klasse Kante. Jede.
Musterlösung zur Klausur "Diskrete Mathematik" vom
Geometrisch-topologische Konsistenz in Geo-Informationssystemen
Referenten: Moritz S., Ina B. und Sebastian R.
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
Laufzeitverhalten beim Sortieren
Algorithmen für Geographische Informationssysteme
Algorithmen.
Technische Informatik II
Übungen Übungsanmeldung Übungskorrektur
Wiederholung Breitensuche BFS mit Startknoten s Tiefensuche
Graphen.
TexPoint fonts used in EMF.
Lösung Aufgabe 1 Teilaufgabe a)
Algorithmen und Datenstrukturen
Komplexität und Berechenbarkeit
Pflichtteil 2016 Aufgabe 6: Gegeben ist die Gerade
Das Vektorprodukt Wir definieren erneut eine Multiplikation zwischen zwei Vektoren, das Vektorprodukt, nicht zu verwechseln mit dem Skalarprodukt. Schreibe.
Wahlteil 2016 – Aufgabe B 1 Aufgabe B 1.1 In einem Koordinatensystem beschreiben die Punkte
3. Die Datenstruktur Graph 3.3 Durchlaufen von Graphen
3. Die Datenstruktur Graph 3.1 Einfache Graphen
Abiturprüfung Mathematik 2015 Baden-Württemberg Allgemeinbildende Gymnasien Wahlteil Analytische Geometrie / Stochastik Aufgabe B 2.1 und B Lösungen.
DB2 – SS 2019 von Baum allgemein bis B*-Baum
Algorithmen und Datenstrukturen
DB2 – SS 2019 von Baum allgemein bis B*-Baum
 Präsentation transkript:

Das Problem des Handlungsreisenden

Das Problem des Handlungsreisenden Gegeben ist eine endliche Menge von Städten (Knoten), die untereinander paarweise durch Flugrouten (Kanten) verbunden sind. Das Problem des Handlungsreisenden besteht darin, eine kürzestmögliche Rundreise durch alle Städte zu finden. Ein naiver Algorithmus bei n Knoten besteht darin, einen Knoten festzuhalten, alle Vertauschungen der übrigen n-1 Knoten zu durchlaufen und jeweils die Länge der Rundreise zu bestimmen. Dabei kann man auf die Hälfte der Vertauschungen verzichten, weil eine Rundreise in beide Richtungen gleich lang ist. Der Gesamtaufwand beträgt (n-1)! · n : 2 = n! : 2 denn es gibt (n-1)! Vertauschungen der übrigen Knoten und man muss jedesmal n Kanten summieren. Da man Konstanten in der O-Schreibweise weglässt, beträgt der Aufwand O(n!).

Beispiel Dieser Graph ist nicht vollständig, das heißt es sind nicht alle Eckenpaare miteinander verbunden. Das kann man sich zunutze machen, weil dadurch weniger Vertauschungen zu überprüfen sind. Dennoch bleibt der Aufwand hoch, die richtige Rundreise zu finden.

Beurteilung des Aufwands Im Experiment haben wir gesehen, dass unser naiver Algorithmus sehr schnell sehr aufwendig wird und schon bei 20 Knoten nicht mehr praktikabel ist. Wir könnten den naiven Algorithmus weiter verbessern, indem wir Vertauschungen, bei denen schon nach wenigen Kanten die bisher kürzeste Länge überschritten ist, nicht weiter verfolgen. Aber selbst die besten bekannten Verbesserungen haben den überexponentiellen Aufwand O(n!) nur auf exponentiellen Aufwand O(n2·2n) gesenkt, was immer noch bei vergleichsweise kleinen n undurchführbar wird. Die Theoretische Informatik lehrt, dass das Problem des Handlungsreisenden NP-vollständig ist. Die Frage, ob es für solche Probleme einen Algorithmus mit polynomiellem Aufwand gibt (kurz: „P = NP?“), ist eines der sieben mathematischen Leitprobleme des 21. Jahrhunderts. Für seine Lösung gibt es ein Preisgeld von einer Million US-Dollar.

Aufwand anderer Graphenalgorithmen Im Vergleich zum Problem des Handlungsreisenden sind andere uns bekannte Graphenprobleme sehr schnell zu lösen. Wir gehen aus von einem Graphen mit n Knoten und k Kanten. Die Tiefensuche berührt jede Kante zweimal. Ihr Aufwand ist also O(2k) = O(k). Das ist linearer Aufwand bei einem Graphen mit wenigen Kanten. Ein Graph hat maximal n·(n-1):2 Kanten, also weniger als n2. Für einem beliebigen Graphen ist darum der Aufwand der Tiefensuche O(n2). Der Aufwand ist somit quadratisch in der Anzahl der Knoten, also auf alle Fälle polynomiell. Die Breitensuche berührt jede Kante einmal. Ihr Aufwand ist darum ebenfalls O(k).

Der minimale Spannbaum Ein minimaler Spannbaum ist ein Teilgraph, der alle Knoten verbindet, aber dafür eine kleinstmögliche Summe von Kantenbewertungen braucht. Es gibt mehrere Algorithmen, wie man einen minimalen Spannbaum eines zusammenhängenden Graphen bestimmt. Wir verwenden den Algorithmus von Kruskal: Sortiere alle Kanten von der kürzesten zur längsten. Streiche alle Kanten aus dem Graphen. Füge nach und nach die kürzesten Kanten wieder in den Graphen ein. Eine Kante darf dabei jedoch nur eingefügt werden, wenn sie mit den bisherigen Kanten keinen Kreis bildet. Höre auf, sobald alle Knoten verbunden sind.

Beispiel 1 7 7 9 4 3 3 4 7 10 7 6 7 6 7 4 11 5 3 3 12 9 6 6 3 3 6 4 4 2 8 7 6 9 7 7 5 6 11 9 6 8 8 3 4 4 11 15 10 Die Kante der Länge 5, drei Kanten der Länge 6 und zwei Kanten der Länge 7 dürfen wir nicht mehr verwenden, da wir sonst Kreise schließen. Gleiches gilt für alle Kanten ab Länge 8.

Aufwand des Algorithmus von Kruskal Aus der Q11 wissen wir, dass das Sortieren der Kanten den Aufwand O(k · log k) hat. (Es kann zum Beispiel dadurch geschehen, dass wir die Kanten in einen AVL-Baum einfügen und dann der Reihenfolge nach auslesen.) Die weiteren Schritte des Algorithmus von Kruskal sind linear in der Anzahl der Kanten, also O(k). Der Gesamtaufwand ist darum O(k · log k). Wenn wir wieder k mit n2 abschätzen, können wir den Aufwand auch in der Knotenzahl n ausdrücken als O(k · log k) = O(n2 · log n2) = O(n2 · 2 · log n) = O(n2 · log n)