Präsentation herunterladen
Veröffentlicht von:Lewenhart Muhlestein Geändert vor über 11 Jahren
1
Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
GIS Seminar WS 02/03 Christian Siemes
2
Ü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
3
Problemvorstellung 1 2 3 4 5 20 10 15
4
Problemvorstellung 1 2 3 4 5 20 10 15 Startknoten Zielknoten
5
Problemvorstellung 1 2 3 4 1 2 3 4 5 20 10 15 kürzester Weg 5 20 10 15
Startknoten Zielknoten
6
Problemvorstellung Laufzeit Bestimmende Faktoren
Anzahl der untersuchten Knoten im Graphen Rechenzeit für jeden Knoten
7
Datenstrukturen Graph G Suchbaum T Liste OPEN G(N)
Kosten des Pfades von S bis N N ist der aktuell betrachtete Knoten
8
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
9
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
10
Dijkstra-Algorithmus
OPEN G(N) S Z 1 2 3 4 5 20 10 15
11
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
12
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
13
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
14
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
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
16
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
17
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
18
Dijkstra-Algorithmus
Schleife Wiederhole die Schleife S Z 1 2 3 4 5 20 10 15 T OPEN G(N)
19
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)
20
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
21
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
22
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
23
Spezialisierung zu Algorithmus A
Problem Dijkstra-Algorithmus sucht in allen Richtungen Idee Suche bevorzugt in Richtung des Zielknotens S Z Gerichtete Suche Ungerichtete Suche
24
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
25
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.
26
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*.
27
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
28
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)
29
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.
30
Eigenschaften von A* 4 2 Z 1 S H(2)=6 3 OPEN 7 F(3)=7+1=8 H(3)=1
31
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
32
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
33
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)
34
Vergleich mit anderen Algorithmen
Beispiele für die Größenordnung der Graphen:
35
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
36
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)
37
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
38
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
39
Vielen Dank für die Aufmerksamkeit!
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.