Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Vortrag von Stephanie Weirauch Jens Pleger Peter Jancke Frank Wejmelka
Berechne den optimalen (kürzesten, schnellsten) Weg
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
Suche in Texten (Stringsuche )
3. Kapitel: Komplexität und Komplexitätsklassen
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken X Christian Schindelhauer
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Approximationsalgorithmen …liefern in polynomieller.
Informierte Suche.
Sortierverfahren Richard Göbel.
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmen und Datenstrukturen
Minimum Spanning Tree: MST
Vortrag über Graphen Von Jörg Hendricks.
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
Splay Trees Von Projdakov Benjamin.
2. Die rekursive Datenstruktur Baum 2
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Diskrete Mathematik II
Diskrete Mathematik II
Diskrete Mathematik II
Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Jan Hinzmann – – GIS Praxis II – Slide 1/10 Der Algorithmus von Dijkstra (Berechnung kürzester Wege in bewerteten Graphen) GIS Praxis II, Jan Hinzmann,
Graphen und Bäume.
Informatik Datenstruktur Graph 3.3 Durchlaufen von Graphen
Komplexität von Algorithmen
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
Minimal spannende Bäume
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung der Algorithmus von Floyd Foliendesign:
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung der Algorithmus von Floyd.
Graph – basierte Routenplanung versus Geometrische Routenplanung
Binärer Baum, Binärer Suchbaum I
Der A*-Algorithmus.
Gliederung der Vorlesung
Binärbäume.
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
Rechen- und Kommunikationszentrum (RZ) Selektionsstrategien auf Graphstrukturen Sven Porsche Seminarvorträge Aachen.
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
Der Dijkstra-Algorithmus
3. Die Datenstruktur Graph 3.3 Durchlaufen von Graphen
 Präsentation transkript:

Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung GIS Seminar WS 02/03 Christian Siemes

Übersicht Wiederholung Ableitung des A*-Algorithmus Dijkstra-Algorithmus Ableitung des A*-Algorithmus Wichtigste Eigenschaften Adaption auf die Routenplanung Vergleich mit Floyd-Algorithmus und Dijkstra-Algorithmus

Problemvorstellung 1 2 3 4 5 20 10 15

Problemvorstellung 1 2 3 4 5 20 10 15 Startknoten Zielknoten

Problemvorstellung 1 2 3 4 1 2 3 4 5 20 10 15 kürzester Weg 5 20 10 15 Startknoten Zielknoten

Problemvorstellung Laufzeit Bestimmende Faktoren Anzahl der untersuchten Knoten im Graphen Rechenzeit für jeden Knoten

Datenstrukturen Graph G Suchbaum T Liste OPEN G(N) Kosten des Pfades von S bis N N ist der aktuell betrachtete Knoten

Dijkstra-Algorithmus Initialisieren OPEN und T schaffen S auf OPEN setzen mit G(N) = 0 10 S Z 1 2 3 4 5 20 15 OPEN G(N) T 1

Dijkstra-Algorithmus Schleife Falls OPEN leer, beende die Schleife 10 1 T OPEN G(N) 3 S 1 1 5 5 20 4 2 Z 15

Dijkstra-Algorithmus OPEN G(N) S Z 1 2 3 4 5 20 10 15

Dijkstra-Algorithmus Schleife Falls OPEN leer, beende die Schleife Entferne den ersten Knoten aus OPEN und setze ihn in T 10 1 T OPEN G(N) 3 S 1 1 5 5 20 4 2 Z 15

Dijkstra-Algorithmus Schleife Falls OPEN leer, beende die Schleife Entferne den ersten Knoten aus OPEN und setze ihn in T 10 1 T OPEN G(N) 3 S 1 1 5 5 20 4 2 Z 15

Dijkstra-Algorithmus Schleife Falls OPEN leer, beende die Schleife Entferne den ersten Knoten aus OPEN und setze ihn in T Falls Z gefunden, rekonstruiere Pfad und beende die Schleife 10 1 T OPEN G(N) 3 S 1 1 5 5 20 4 2 Z 15

Dijkstra-Algorithmus Schleife Falls Z gefunden, rekonstruiere Pfad und beende die Schleife Falls Z nicht gefunden, setze alle Nachfolger auf OPEN und berechne deren Kosten G(N) 10 1 T OPEN G(N) 3 S 1 1 5 5 20 4 2 Z 15

Dijkstra-Algorithmus Schleife Falls Z gefunden, rekonstruiere Pfad und beende die Schleife Falls Z nicht gefunden, setze alle Nachfolger auf OPEN und berechne deren Kosten G(N) 10 1 T OPEN G(N) 3 S 1 1 2 20 5 5 20 3 10 4 2 Z 15

Dijkstra-Algorithmus Schleife Falls Z gefunden, rekonstruiere Pfad und beende die Schleife Falls Z nicht gefunden, setze alle Nachfolger auf OPEN und berechne deren Kosten G(N) Ordne OPEN bezüglich G(N) aufsteigend 10 1 T OPEN G(N) 3 S 1 1 2 20 5 5 20 3 10 4 2 Z 15

Dijkstra-Algorithmus Schleife Falls Z gefunden, rekonstruiere Pfad und beende die Schleife Falls Z nicht gefunden, setze alle Nachfolger auf OPEN und berechne deren Kosten G(N) Ordne OPEN bezüglich G(N) aufsteigend 10 1 T OPEN G(N) 3 S 1 1 3 10 5 5 20 2 20 4 2 Z 15

Dijkstra-Algorithmus Schleife Wiederhole die Schleife S Z 1 2 3 4 5 20 10 15 T OPEN G(N)

Dijkstra-Algorithmus Z 1 2 3 4 5 20 10 15 T OPEN G(N) S Z 1 2 3 4 5 20 10 15 T OPEN G(N)

Dijkstra-Algorithmus Z 1 2 3 4 5 20 10 15 T OPEN G(N) S Z 1 2 3 4 5 20 10 15 T OPEN G(N) 11

Dijkstra-Algorithmus Z 1 2 3 4 5 20 10 15 T OPEN G(N) 11 S Z 1 2 3 4 5 20 10 15 T OPEN G(N) 11

Dijkstra-Algorithmus Z 1 2 3 4 5 20 10 15 T OPEN G(N) 11 S Z 1 2 3 4 5 20 10 15 T OPEN G(N) 1 3 4 G(4) = 11

Spezialisierung zu Algorithmus A Problem Dijkstra-Algorithmus sucht in allen Richtungen Idee Suche bevorzugt in Richtung des Zielknotens S Z Gerichtete Suche Ungerichtete Suche

Spezialisierung zu Algorithmus A Problem Dijkstra-Algorithmus sucht in allen Richtungen Idee Suche bevorzugt in Richtung des Zielknotens Umsetzung Abschätzung der Kosten von N zu Z: H(N) F(N) = G(N) + H(N) berechnen und OPEN bezüglich F(N) aufsteigend sortieren

Spezialisierung zu Algorithmus A G(N) N S 10 1 3 H(N) 1 5 20 5 4 Z 2 15 F(N) schätzt die Kosten, die der kürzeste Pfad von S zu Z, der zwangsweise über N führt, besitzt.

Algorithmus A* Notation G(N), H(N) (geschätzte Kosten) G*(N), H*(N) (wirkliche Kosten) Gilt H(N)  H*(N), dann findet Algorithmus A immer den kürzesten Pfad zum Zielknoten. Algorithmus A wird zu Algorithmus A*.

Eigenschaften von A* Definition Eigenschaft 4 Eigenschaft 6 Ein Algorithmus ist zulässig, wenn er immer den kürzesten Pfad vom Startkonten zum Zielkonten findet, wenn dieser existiert. Eigenschaft 4 A* ist zulässig. Eigenschaft 6 A1 und A2 sind zwei Versionen von A* A2 ist besser informiert als A1, falls H1(N) < H2(N) A2 erkundet höchstens die gleiche Anzahl von Knoten wie A1

Eigenschaften von A* Nj H(Nj) C(Nj ,Nk) Nk H(Nk) Monotonie-Einschränkung C(Nj ,Nk) H(Nj) - H(Nk), bzw. H(Nk) + C(Nj ,Nk) H(Nj)

Eigenschaften von A* Eigenschaft 7 Ist die Monotonie-Einschränkung erfüllt, dann hat der A*-Algorithmus den kürzesten Pfad zu jedem Knoten gefunden, der zur Erkundung ausgewählt wird.

Eigenschaften von A* 4 2 Z 1 S H(2)=6 3 OPEN 7 F(3)=7+1=8 H(3)=1

Eigenschaften von A* 4 2 Z 1 S H(2)=6 3 OPEN 7 F(2)=3+6=9 H(3)=1 Widerspruch! C(2,3)=2  H(6)-H(3)=5

Adaption des A*-Algorithmus auf die Routenplanung Graph besitzt Geometrie H(N)  H*(N) muss erfüllt sein. Luftlinie von N zu Z * höchste Geschwindigkeit

Adaption des A*-Algorithmus auf die Routenplanung Luftlinie = euklidischen Abstand eukl(N) = Wurzel [(xZ - xN)² + (yZ - yN)²] Höchste Geschwindigkeit = maximale im Graph vorkommende Geschwindigkeit Vmax H(N) = Vmax * eukl(N)

Vergleich mit anderen Algorithmen Beispiele für die Größenordnung der Graphen:

Laufzeit und Speicherplatz ( n ... Anzahl der Knoten e ... Anzahl der Kanten) Floyd-Algorithmus einmal ausführen, um alle kürzesten Wege im Graphen zu finden Anwenden, wenn viele kürzeste Wege im Graphen gesucht werden

Dijkstra-Alogrithmus Unterschied zum A*-Algorithmus Dijkstra-Algorithmus: F(N) = G(N) A*-Algorithmus: F(N) = G(N) + H(N) Speicherplatz ist für beide Algorithmen gleich Laufzeitunterschiede wegen H(N)

Dijkstra-Alogrithmus Empirische Untersuchungen von Stephan Hasselberg haben ergeben: A*-Algorithmus untersucht 2 bis 5 mal weniger Knoten Vorteil wird nahezu aufgehoben wegen H(N) Bei großen geometrischen Distanzen zwischen S und Z wird H(N) so rechenintensiv, dass der Dijkstra-Algorithmus schneller ist

Schlussbemerkung War alles umsonst? Overdo-Faktor: F(N) = G(N) + fOV * H(N) mit fOV > 1 Bei guter Wahl maximale Fehler in Grenzen durchschnittliche Fehler klein

Vielen Dank für die Aufmerksamkeit!