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

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

Embed Size (px)

Citation preview

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

Grundlagen des A*-Algorithmusund

Anwendung in der Routenplanung

GIS Seminar WS 02/03

Christian Siemes

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

Übersicht

• Wiederholung– Dijkstra-Algorithmus

• Ableitung des A*-Algorithmus– Wichtigste Eigenschaften

• Adaption auf die Routenplanung• Vergleich mit Floyd-Algorithmus und

Dijkstra-Algorithmus

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

Problemvorstellung

1

2

3

4

5120

10

5

15

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

Problemvorstellung

Startknoten

Zielknoten

1

2

3

4

5120

10

5

15

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

1

2

3

4

5120

10

5

15

Problemvorstellung

Startknoten

Zielknoten

1

2

3

4

5120

10

5

15

kürzester Weg

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

Problemvorstellung

• Laufzeit

• Bestimmende Faktoren– Anzahl der untersuchten Knoten im Graphen– Rechenzeit für jeden Knoten

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

Datenstrukturen

• Graph G• Suchbaum T• Liste OPEN

• G(N)– Kosten des Pfades von S bis N– N ist der aktuell betrachtete Knoten

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

Dijkstra-Algorithmus

• Initialisieren– OPEN und T schaffen– S auf OPEN setzen mit G(N) = 0

10S

Z

1

2

3

4

51

205

15

OPEN G(N)T1 0

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

Dijkstra-Algorithmus

• Schleife– Falls OPEN leer, beende die Schleife

S

Z

1

2

3

4

51

20

10

5

15

T OPEN G(N)1 0

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

Dijkstra-Algorithmus

OPEN G(N)

S

Z

1

2

3

4

51

20

10

5

15

5

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

Dijkstra-Algorithmus

• Schleife– Falls OPEN leer, beende die Schleife

S

Z

1

2

3

4

51

20

10

5

15

T OPEN G(N)1 0

– Entferne den ersten Knoten aus OPEN und setze ihn in T

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

Dijkstra-Algorithmus

• Schleife– Falls OPEN leer, beende die Schleife

S

Z

1

2

3

4

51

20

10

5

15

T1

OPEN G(N)

– Entferne den ersten Knoten aus OPEN und setze ihn in T

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

Dijkstra-Algorithmus

S

Z

1

2

3

4

51

20

10

5

15

T1

OPEN G(N)

• 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

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

Dijkstra-Algorithmus

S

Z

1

2

3

4

51

20

10

5

15

T1

OPEN G(N)

• 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)

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

Dijkstra-Algorithmus

S

Z

1

2

3

4

51

20

10

5

15

T1

OPEN G(N)2 203 10

• 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)

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

Dijkstra-Algorithmus

– Ordne OPEN bezüglich G(N) aufsteigend

S

Z

1

2

3

4

51

20

10

5

15

T1

OPEN G(N)2 203 10

• 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)

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

Dijkstra-Algorithmus

S

Z

1

2

3

4

51

20

10

5

15

T1

OPEN G(N)

210320

– Ordne OPEN bezüglich G(N) aufsteigend

• 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)

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

Dijkstra-Algorithmus

• Schleife– Wiederhole die Schleife

S

Z

1

2

3

4

51

20

10

5

15

T1

OPEN G(N)

210320

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

Dijkstra-Algorithmus

S

Z

1

2

3

4

51

20

10

5

15

T1

OPEN G(N)

210320

S

Z

1

2

3

4

51

20

10

5

15

T1

OPEN G(N)2 20

3

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

Dijkstra-Algorithmus

S

Z

1

2

3

4

51

20

10

5

15

T1

OPEN G(N)2 20

3

S

Z

1

2

3

4

51

20

10

5

15

T1

OPEN G(N)2 15

34 11

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

Dijkstra-Algorithmus

S

Z

1

2

3

4

51

20

10

5

15

T1

OPEN G(N)4 11

32 15

S

Z

1

2

3

4

51

20

10

5

15

T1

OPEN G(N)2 15

34 11

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

Dijkstra-Algorithmus

S

Z

1

2

3

4

51

20

10

5

15

T1

OPEN G(N)4 11

32 15

S

Z

1

2

3

4

51

20

10

5

15

T1

OPEN G(N)

3

2 15

4

1

3

4 G(4) = 11

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

Spezialisierungzu Algorithmus A

• Problem– Dijkstra-Algorithmus sucht in allen Richtungen

• Idee– Suche bevorzugt in Richtung des Zielknotens

SS Z Z

Gerichtete Suche Ungerichtete Suche

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

Spezialisierungzu 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

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

Spezialisierungzu Algorithmus A

• F(N) schätzt die Kosten,

die der kürzeste Pfad von S zu Z,

der zwangsweise über N führt, besitzt.

1

2

3

4

5120

10

5

15

S

Z

NG(N)

H(N)

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

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*.

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

Eigenschaften von A*

DefinitionEin Algorithmus ist zulässig, wenn er immer den kürzesten Pfad vom Startkonten zum Zielkonten findet, wenn dieser existiert.

Eigenschaft 4A* 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

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

Eigenschaften von A*

Nj

Nk

C(Nj ,Nk)

H(Nk)

H(Nj)

Monotonie-Einschränkung C(Nj ,Nk) H(Nj) - H(Nk), bzw.

H(Nk) + C(Nj ,Nk) H(Nj)

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

Eigenschaften von A*

Eigenschaft 7Ist 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.

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

Eigenschaften von A*

1

H(2)=6

3

4

3

22

7

4

H(3)=1S

Z

OPEN

F(2)=3+6=9

F(3)=7+1=8

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

Eigenschaften von A*

1

H(2)=6

3

4

3

22

7

4

H(3)=1S

Z

Widerspruch!C(2,3)=2 H(6)-H(3)=5

OPEN

F(2)=3+6=9

F(4)=11

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

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

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

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)

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

Vergleich mit anderen Algorithmen

• Beispiele für die Größenordnung der Graphen:

# Knoten # Kanten Köln 31.011 67.490 NRW 457.124 1.046.087 Kalifornien 1.580.305 3.934.788

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

Laufzeit und Speicherplatz

Floyd Dijkstra A* Speicherplatz O(n²) O(n + e) O(n + e)

Laufzeit O(n³) O(e+n log n) O(e+n log n)

( 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

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

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)

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

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

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

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

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

Vielen Dank für die Aufmerksamkeit!