Wegsuchealgorithmen in Routenplanungssystemen Vortrag von Markus Schäfer Projektgruppe Intelligente Datenbanken 8.7.2003.

Slides:



Advertisements
Ähnliche Präsentationen
Vortrag von Stephanie Weirauch Jens Pleger Peter Jancke Frank Wejmelka
Advertisements

Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Algorithm Engineering
Minimum Spanning Tree: MST
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Zerlegung von Graphen.
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Frozen Development in Graph Coloring
Suche in Texten (Stringsuche )
Kapitel 6. Suchverfahren
Übung 6.6Schranken 1.Angenommen, Ihr Algorithmus habe einen Aufwand von g(n) = 5n 3 + n für alle n a)Geben sie eine obere Schranke O(g(n)) an. b)Beweisen.
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken IX Christian Schindelhauer
Klaus Volbert 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Sommersemester 2004.
Anwendung und Visual Basic
Genetische Algorithmen
Informierte Suche.
Übung 6.1Turing-Maschine 1.Machen Sie sich mit der Funktionsweise des Busy Beaver-Programms vertraut Vollziehen sie die 11 Schritte der ersten Turing-Tabelle.
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
PG 478 – Open Graph Drawing Framework Thema: Compounds & Force-Directed Francois Bertault & Mirka Miller – An Algorithm for Drawing Compound Graphs [1999]
Algorithmen und Komplexität
Schiller-Gymnasium Hof Manuel Friedrich OStR,
Minimum Spanning Tree: MST
Kürzeste Wege in Straßennetzwerken Problemstellung –von einem Start zu einem Ziel (point-to-point) –(un)gerichteter Graph, Kantenkosten = Reisezeiten.
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Khatuna Khvedelidze Teona Khizanishvili
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
Effiziente Algorithmen
Diskrete Mathematik II
Diskrete Mathematik II
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
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
Animation von Dijkstra
Animation von Dijkstra
Jan Hinzmann – – GIS Praxis II – Slide 1/10 Der Algorithmus von Dijkstra (Berechnung kürzester Wege in bewerteten Graphen) GIS Praxis II, Jan Hinzmann,
PHP: Operatoren und Kontrollstrukturen
Analyse der Laufzeit von Algorithmen
Vom graphischen Differenzieren
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VIII Christian Schindelhauer
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.
GIS-Seminar WS00/01 Routen- und Tourenplanung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
Diskrete Mathe II Übung IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 2 Gruppeneinteilung Gruppe A: Mo 12:00 – 12:45 Uhr –bis einschließlich.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung der Algorithmus von Floyd.
Der A*-Algorithmus.
Institut für Informationssysteme Technische Universität Braunschweig Institut für Informationssysteme Technische Universität Braunschweig Verdrängung von.
Programmiersprachen II Graph_Algorithmen Gewichtete Graphen - Minimum Spanning Tree und shortest path aus Implementierungssicht Prof. Dr. Reiner Güttler.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Rechen- und Kommunikationszentrum (RZ) Selektionsstrategien auf Graphstrukturen Sven Porsche Seminarvorträge Aachen.
Der Algorithmus nach Dijkstra
Computing orthogonal drawings with the minimum number of bends
 Präsentation transkript:

Wegsuchealgorithmen in Routenplanungssystemen Vortrag von Markus Schäfer Projektgruppe Intelligente Datenbanken

Gliederung 1.Worum es heute geht – Routenplanung 2.Motivation und Ziel 3.Straßenkarten 4.Algorithmen 1.Iterative Breitensuche 2.Dijkstras Algorithmus 3.Bewertungsfunktionen 4.A* 5.Experimentelle Analyse der Laufzeit 1.Synthetischer Graph 2.Minneapolis 6.Zusammenfassung

Worum es heute geht - Routenplanung Das heutige Verkehrsaufkommen verlangt ein effizientes Management des Verkehrs. Eine Studie in den USA hat abgeschätzt, daß sich durch geschickte Routenplanung 6% der Fahrzeiten vermeiden lassen könnten. Routenplanungssysteme bestehen aus drei Einheiten: Routenberechnung, Routenbewertung und Routendarstellung Wir beschäftigen uns heute aber nur mit der Routenberechnung (in Folge auch Wegsuche genannt).

Motivation und Ziel Traditionelle Wegsuche-Algorithmen berechnen mehr Wege als für unsere Zielsetzung notwendig sind. Sie sind auch nicht an dynamische Kantenkosten (Verkehrsstau) angepasst. Außerdem nehmen sie häufig an, daß die Daten im Hauptspeicher bearbeitet werden; das tatsächliche Datenaufkommen ist aber so groß, daß es sinnvoll nur mit Hilfe von Datenbankmanagmentsystemen verwaltet werden kann.

Straßenkarten Wir wollen die Straßenkarten durch einen Graph charakterisieren, dessen Kanten sowohl statische als auch dynamische Attribute besitzen. Die Attribute können nun durch drei verschiedene Verteilungen kategorisiert werden: gleichmäßig, leicht-variiert und unregelmäßig Die Algorithmen lassen sich in drei Klassen einteilen: alle-Paare-Probleme, einzel-Quelle-Probleme und einzel-Paar-Probleme

Algorithmen Im folgenden werden drei Algorithmen vorgestellt, die jeweils die jeweils eine Klasse repräsentieren: Iterative Breitensuche (alle-Paare-Wegsuche), Dijkstras Algorithmus (einzel-Quelle-Wegsuche) und A* (einzel-Paar-Wegsuche) Ziel der Algorithmen ist es zu einem Paar (Quelle, Ziel) den schnellsten Weg zu suchen. Da dynamische Attribute vorliegen, können wir nicht einfach alle kürzesten Wege vorausberechnen und speichern.

Algorithmen – Iterative Breitensuche Procedure Iterative(N,E,s,d) { foreach u in N do { C(s,u)=∞; C(u,u)=0; path(u,v):=null } frontierSet:=[s]; while not_empty(frontierSet) do { foreach u in frontierSet do { frontierSet:=frontierSet-[u]; fetch(u.adjacencyList); foreach in u.adjacencyList { if C(s,v)>C(s,u)+C(u,v) then { C(s,v):=C(s,u)+C(u,v); path(s,v):=path(s,u)+edge((u,v); if not_in(v,frontierSet) then frontierSet:=frontierSet+[v]; }}}}}

Algorithmen – Dijkstras Algorithmus Procedure Dijkstra(N,E,s,d) { foreach u in N do {C(s,u)=∞; C(u,u)=0; path(u,v):=null;} frontierSet:=[s]; exploredSet:=emptySet; while not_empty(frontierSet) do { select u from frontierSet with minimum C(s,u); frontierSet:=frontierSet-[u]; exploredSet:=exploredSet+[u] if (u=d) then terminate else { fetch(u.adjacencyList); foreach in u.adjacencyList if C(s,v)>C(s,u)+C(u,v) then { C(s,v):=C(s,u)+C(u,v); path(s,v):=path(s,u)+(u,v); if not_in(v,frontierSet ∪ exploredSet) then frontierSet:=frontierSet+[v] }}}}

Algorithmen – Bewertungsfunktionen Bewertungsfunktionen benutzen wir um auszusuchen, welcher der vielversprechendste Knoten im aktuellen Rechenschritt ist. Wir betrachten zwei Bewertungsfunktionen: Euklidische Distanz: Manhattan Distanz:

Algorithmen – A* Procedure A*(N,E,s,d,f) { foreach u in N do { C(s,u)=∞; C(u,u)=0; path(u,v):=null;} frontierSet:=[s]; exploredSet:=emptySet; while not_empty(frontierSet) do { select u from frontierSet with min(C(s,u)+f(u,d)); frontierSet:=frontierSet-[u]; exploredSet:=exploredSet+[u]; if (u=d) then terminate else { fetch(u.adjacencyList); foreach in u.adjacencyList { if C(s,v)>C(s,u)+C(u,v) then { C(s,v):=C(s,u)+C(u,v); path(s,v):=path(s,u)+(u,v); if not_in(v,frontierSet) then frontierSet:=frontierSet+[v]; }}}}}

Experimentelle Analyse der Laufzeit – Synthetischer Graph 1/5 Zum Vergleichen von A* mit den anderen Algorithmen, wollen wir nun die Laufzeit der Algorithmen auf einem künstlichen Graph untersuchen: -Rechteckiger ungerichteter Graph -Jeder Knoten hat 4 Nachbarn (außer den Randknoten) -Wir betrachten drei verschiedene Quelle-Ziel-Paare:

Experimentelle Analyse der Laufzeit – Synthetischer Graph 2/5 Wir untersuchen die drei im ersten Teil vorgestellten Algorithmen und wählen die Manhattan-Distanz als Bewertungsfunktion für A* Für unser Testgraph gibt es nun drei Variable Parameter: - Größe des Graphen: 10*10, 20*20, 30*30 - Pfadlänge - Kostenmodell: gleichmäßig – Jeder Kante wird der Wert 1 als Kosten zugewiesen leicht-variiert – Jeder Kante wird 1+0,2*U[0,1] zugewiesen unregelmäßig – Den Kanten [(i,1),(i+1,1)] und [(k,i),(k,i+1)] werden kleine Kosten zugewiesen

Experimentelle Analyse der Laufzeit – Synthetischer Graph 3/5 Auswirkungen der Größe des Graphen Es wurde der diagonale Pfad ausgewählt, um das worst-case Verhalten zu untersuchen Die Größe des Graphen beeinflusst die Laufzeit von A* und Dijkstra linear Die Breitensuche wächst nur sublinear mit der Graphengröße

Experimentelle Analyse der Laufzeit – Synthetischer Graph 4/5 Auswirkungen der Pfadlänge Für horizontale Pfade ist A* besser als die anderen beiden Algorithmen, ansonsten die Breitensuche Bei A* und Dijkstra steigt die Ausführungszeit mit der Pfadlänge Die Laufzeit verschlechtert sich bei A* am stärksten mit der Pfadlänge

Experimentelle Analyse der Laufzeit – Synthetischer Graph 5/5 Auswirkungen des Kostenmodels Da A* und Dijkstra die Kantenkosten in ihre Berechnung einbeziehen, reagieren sie auf unterschiedliche Kostenmodelle. Aber auch die Breitensuche verhält sich je nach Kostenmodell unter- schiedlich.

Experimentelle Analyse der Laufzeit – Minneapolis 1/2 Als nächsten Schritt wollen wir jetzt die Laufzeit der Algorithmen an einem konkreten Fallbeispiel untersuchen. Wir benutzen einen Ausschnitt einer tatsächlichen Straßenkarte, die die Autobahnen und Schnellstraßen von Minneapolis zeigt Sie hat: 1089 Knoten 3300 Kanten (Straßensegmente) und deckt eine Fläche von 20 Quadratmeilen ab

Experimentelle Analyse der Laufzeit – Minneapolis 2/2 Der Graph ist ein wenig größer als der synthetische 30*30 Graph (1089 gegenüber 900 Knoten) Wir wollen vier Pfade betrachten: 2 diagonale:A nach B C nach D 2 kurze:D nach G E nach F Die Ergebnisse decken sich mit den Ergebnissen auf den künstlichen Graphen

Zusammenfassung Wir haben gesehen, daß aus verschiedenen Gründen der A*-Algorithmus für unsere Anwendung ein sehr aussichtsvoller Kandidat ist: Er arbeitet auf kurzen Wegen schneller als die anderen Algorithmen und in der Anwendung werden die meisten Weganfragen nicht quer über den ganzen Graphen gestellt Beim unregelmäßigen Kostenmodell, welches wir in der Praxis erwarten, ist er der optimalste Algorithmus Außerdem haben wir gesehen, daß der Algorithmus von Dijkstra in der Praxis nicht so große Bedeutung hat