140 likes | 335 Views
Routenplanung. Erweiterungen und Verfeinerungen des Algorithmus von Dijkstra. 12. 9. 8. 5. Referent: Christian Nitsche. 3. S. S. 4. 1. 2. 10. 7. Betreuung: Prof.Dr.Plümer Dipl.Ing Fuhlbrügge. Einleitung Dijkstra Erweiterungen. Gliederung 1. Motivation
E N D
Routenplanung Erweiterungen und Verfeinerungen des Algorithmus von Dijkstra 12 9 8 5 Referent: Christian Nitsche 3 S S 4 1 2 10 7 Betreuung: Prof.Dr.Plümer Dipl.Ing Fuhlbrügge
Einleitung • Dijkstra • Erweiterungen Gliederung 1. Motivation 2. Der Algorithmus nach Dijkstra 3. Erweiterungen des Dijkstra Algorithmus
Einleitung • Dijkstra • Erweiterungen Motivation Wie komme ich am schnellsten von a nach b ? oder anders : Wie finde ich den kürzesten Weg zwischen zwei Knoten in einem gewichteten Graphen ? Problem tritt in vielen praktischen Anwendungen auf ( Projektmanagement, DNA Sequenzierung, Transportprobleme, Routenplanung )
Einleitung • Dijkstra • Algorithmus • Beispiel • Erweiterungen Der Algorithmus von Dijkstra Problemstellung in der Sprache der Graphentheorie: Finde für einen Startknoten „s“ und einen Endknoten „e“ eines gewichteten Graphen „G“ mit der Knotenmenge „V“, der Kantenmenge „E“ und der Kostenfunktion „k“ ( definiert auf Kanten), einen Weg zwischen „s“ und „e“ mit minimalen Kosten. - kürzeste Wege in Graphen lassen sich mit Hilfe des Dijkstra Algorithmus ( 1959 ) finden.
Einleitung • Dijkstra • Algorithmus • Beispiel • Erweiterungen E.W.Dijkstra • 1951 Examen in Mathematik und Physik • 1956 Doktor in theoretischer Physik • Tätigkeiten u.a. an Uni Leyden und Amsterdam
Einleitung • Dijkstra • Algorithmus • Beispiel • Erweiterungen Vorraussetzungen und Eigenschaften des Dijkstra Algorithmus - Graph mit nicht negativen Bewertungen ist für die Routenplanung geeignet ( Bellman – Ford – Algorithmus ) - worst case Laufzeit: O( E + V log V ) V = Knotenmenge , E = Kantenmenge )
12 9 8 5 3 S 4 2 1 10 7 Ziel Start • Einleitung • Dijkstra • Algorithmus • Beispiel • Erweiterungen Beispiel eines Dijkstra Algorithmus 8 6 15 18 21 4 11
Einleitung • Dijkstra • Erweiterungen • beidseitig • HISPA • A*Algorithmus Probleme des Algorithmus bei der Routenplanung - kürzeste Strecke ist nicht unbedingt die schnellste Strecke Hierarchie / Gis Datenbanken - bei Routenplanung große Graphen ( viele Knoten und Kanten ) hohe Laufzeiten Erweiterungen des Algorithmus - beidseitiger Dijkstra - heuristische Verfahren ( HISPA heuristic ) - A* Algorithmus
12 9 8 5 3 S1 4 2 1 10 7 Ziel Start • Einleitung • Dijkstra • Erweiterungen • beidseitig • HISPA • A*Algorithmus • Erweiterungen des Dijkstra Algorithmus • Beidseitiger Dijkstra Algorithmus S2 - worst case: keine Verbesserung
Einleitung • Dijkstra • Erweiterungen • beidseitig • HISPA • A*Algorithmus • HISPA Heuristik ( Hierarchical shortest path ) • sucht kürzeste Wege von zwei Endknoten zu Knoten der obersten Hierarchieebene ( benutzerabhängig ) in einem Kreis mit gegebenen Radius. • diese Wege werden als Kanten entspr. Länge zur obersten Hierarchieebene hinzugefügt • auf dieser Ebene wird kürzester Weg bestimmt
12 9 8 5 3 S S 4 2 1 10 7 Ziel Start • Einleitung • Dijkstra • Erweiterungen • beidseitig • HISPA • A*Algorithmus • HISPA Heuristik ( Hierarchical shortest path )
lange Suche in falsche Richtung wird vermieden • Einleitung • Dijkstra • Erweiterungen • beidseitig • HISPA • A*Algorithmus • A* - Algorithmus • Verwendung einer Entfernungsschätzung von Start zu Ziel ( future cost ), mit Hilfe geometrischer Informationen • Beachtung von kürzesten Wegen und der Entfernung vom Startknoten zum Zielknoten - Laufzeit hängt von der Güte der Schätzfunktion ab ( je genauer die Entfernungsbestimmung, desto besser das Ergebnis ) - Modifikation: beidseitige Variante, analog zu Dijkstra - beidseitig
Vielen Dank für die Aufmerksamkeit
Routenplanung Erweiterungen und Verfeinerungen des Algorithmus von Dijkstra 12 9 8 5 3 S S 4 1 2 10 7