Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung

Ähnliche Präsentationen


Präsentation zum Thema: "Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung"—  Präsentation transkript:

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!


Herunterladen ppt "Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung"

Ähnliche Präsentationen


Google-Anzeigen