1 / 32

Highway Hierarchien

Highway Hierarchien. Exakte kürzeste Pfade in sehr großen Straßennetzwerken. Seminar: Indizieren und Anfragen von Graphen in Datenbanken Vortragender: Andreas Wickert. Übersicht. Einleitung Der Dijkstra-Algorithmus Voraussetzungen Komponenten und Parameter Ablauf Beispiel

demi
Download Presentation

Highway Hierarchien

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Highway Hierarchien Exakte kürzeste Pfade in sehr großen Straßennetzwerken Seminar: Indizieren und Anfragen von Graphen in Datenbanken Vortragender: Andreas Wickert

  2. Übersicht • Einleitung • Der Dijkstra-Algorithmus • Voraussetzungen • Komponenten und Parameter • Ablauf • Beispiel • Highway Hierarchien • Motivation • Idee • Konstruktion • Begriffe • Anfragen • Fazit • Quellen Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  3. Einleitung • Kürzeste Pfade finden ist ein altes Problem • Wichtig für Navigationssysteme und Internet-Applikationen • Route:Berlin-München?Wahrscheinlich über eine Autobahn(Abbildung aus [6]) Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  4. Lösungsansätze • Lösung von Dijkstra • Für Single-Source Shortest Paths Problems • Besser: Highway Hierarchien von Dominik Schultes und Peter Sanders • Hierarchien für Straßennetzwerke automatisch bestimmen Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  5. Der Dijkstra-Algorithmus –Voraussetzungen • Graph mit den Eigenschaften: • Gerichtet • Gewichtet • Keine negativ-gewichteten Kanten • Berechnung kürzester Pfade zu allen von einem Startknoten s0 aus erreichbaren Knoten Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  6. Dijkstra – Komponenten und Parameter • Min-Prioritäts-Warteschlange Q • Enthält zu Beginn alle Knoten des Graphen • s0 hat Wert = 0 (Entfernung von s0 zu s0) • Alle anderen Knoten haben Wert  • Menge von Knoten: S • Nachbarn der Knoten in dieser Menge sind besucht worden • Parameter für Algorithmus: • Graph • s0 • Gewichtsfunktion w Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  7. Dijkstra – Pseudocode DIJKSTRA(G,w,s0) //G=Graph,w=Ziel,s0=Start • Initialisiere Suche (G, s0) • Menge S ist leer • Alle Knoten von G in die Queue Q einfügen • WHILE Q nicht leer • Extract-Min(Q)//liefert Knoten u • Füge u zu S hinzu • FOR jeden Knoten v aus der Adj[u]* • RELAX(u,v,w) *Adj[u] = alle Knoten, die in der Adjazenzliste bei u eingetragen sind Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  8. Dijkstra – Laufzeit • Alle Knoten werden am Anfang in die Queue eingefügt: Insert = O(V) • Die WHILE-Schleife wird ebenfalls nur |V|-mal durchlaufen • Der worst case bei Array-Datenstruktur für Extract-Min benötigt O(V) • Die FOR-Schleife wird für jede Kante einmal durchlaufen (|E|) • Totale Laufzeit: O(V2 + E) = O(V2) Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  9. Dijkstra – Beispiel – Schritt 1 Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  10. Dijkstra – Beispiel – Schritt 2 Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  11. Dijkstra – Beispiel – Schritt 3 Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  12. Dijkstra – Beispiel – Schritt 4 Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  13. Dijkstra – Beispiel – Schritt 5 Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  14. Dijkstra – Beispiel – Schritt 6 Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  15. Dijkstra – Beispiel – Schritt 7 Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  16. Dijkstra – Beispiel – Schritt 8 Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  17. Dijkstra – Beispiel – Schritt 9 ... Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  18. BESSER: HIGHWAY HIERARCHIEN Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  19. Motivation Gute Algorithmen sind bisher entweder • sehr rechenintensiv oder • schnell und ungenau Ziel: Suche beschleunigen und Qualität erhöhen Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  20. Idee • Straßen in Hierarchien einteilen: • Autobahn (sehr hohe Priorität) • Schnellstraße • Bundesstraße • ... • Spielstraße • Feldweg (sehr geringe Priorität) Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  21. Naive Idee • Suche nach einer sinnvollen/ angemessenen Autobahn • Fahre auf der Autobahn bis zu einer dem Zielort nahen Ausfahrt • Suche das Ziel ab der Ausfahrt Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  22. Vor- und Nachteile dieser Taktik • Pro: • Schneller auf der Autobahn um Städte herum • Straßen mit geringerer Priorität können bei der Suche ignoriert werden • Kontra: • Eventuell werden Abkürzungen übersehen bzw. außer acht gelassen (durch Ignorieren) • Manchmal ist man auf einer Bundesstraße effektiv schneller als auf einer Autobahn Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  23. Highway Hierarchien – Ansatz • automatische Bestimmung der Hierarchien • nicht Bezeichnung der Straße als Grundlage, sondern die tatsächlich kürzesten bzw. schnellsten Wege Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  24. Highway Hierarchien – Konstruktion • Lokale Suche für alle Knoten • Einschränkung der Suche durch vorher festgelegten Parameter H (Nachbarschaft) • Ausdünnen: • entferne isolierte Knoten • Pfade, dessen Knoten vi nur deg(vi)=2 haben, werden als eine Kante betrachtet (Linien) • Ausgedünnter Graph bildet neues Level • Lokale Suche auf neuem Level... Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  25. Beispiel – H-Nachbarschaft für H=5 (Abbildung aus [2]) Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  26. Beispiel – Linie Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  27. Begriffe – Komponente • Formal im Paper [2] • Komponenten können nicht über horizontale Kanten gewechselt werden • Beispiele (von [6]): A100 in Berlin A44 (Aachen-Kassel) Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  28. Begriffe – horizotale/vertikale Kanten • Horizontale Kanten • Verbinden Knoten miteinander, die auf einem Level und in einer Komponente liegen • Eine horizontale Kante kann auf mehreren Levels enthalten sein • Vertikale Kanten • Verbinden zwei oder mehrere Instanzen des selben Knotens auf unterschiedlichen Levels • Haben Gewicht von 0 • Ermöglichen den Wechsel zwischen Levels Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  29. Anfragen • Ähnlich einer bidirektionalen Dijkstra-Suche • Suche hält erst, wenn beide Suchen terminiert sind • Vergleich der Fronten-Treffer und Auswahl des tatsächlich kürzesten bzw. schnellsten Pfades • Start- bzw. Zielknoten liegen jeweils auf Level 0 • Entweder Verwendung horizontaler oder vertikaler Kanten • Dabei Favorisierung vertikaler Kanten, die auf höhere Level führen Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  30. Anfragen – Restriktionen • Nutze keine horizontale Kante, wenn diese die Nachbarschaft des Knotens verlässt. • Eine Komponente wird nie über eine horizontale Kante erreicht. Anfrage-Beispiel: Siehe Applet [5] Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  31. Fazit • Suchgeschwindigkeit gesteigert durch ausgedünnte (nahezu planare) Netzwerke • Besseres Ergebnis aufgrund automatisch erzeugter Hierarchie • Aufwändiges Preprocessing zahlt sich später aus • Kaum Unterschied in der Suchzeit zwischen Anfragen mit großem Abstand und Anfragen mit kleinem Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

  32. Quellen • Cormen, Leiserson, Riverst, and Stein. Dijkstra’s Algorithm. The MIT Press, 2nd ed., 4th print. edition, 2003. • D. Schultes. Fast and exact shortest path queries using highway hierarchies. Master’s thesis, Universität des Saarlandes, July 2005, http://algo2.iti.uka.de/schultes/hwy/hwyHierarchies.pdf. • Peter Sanders and Dominik Schultes. Highway hierarchies hasten exact shortest path queries. European Symposium on Algorithms, pages 568–579, 2005. • Peter Sanders and Dominik Schultes. Engineering Fast Route Planning Algorithms. Springer-Verlag Berlin Heidelberg, http://algo2.iti.uka.de/schultes/hwy/weaOverview.pdf, 2007. • Dominik Schultes. Highway hierarchies demo - (2008-01-06) –http://algo2.iti.unikarlsruhe.de/schultes/hwy/demo/hhclientde.jar. • Google Maps, http://maps.google.de (2008-02-16). Indizieren u. Anfragen v. Graphen i. Datenbanken – Highway Hierarchien – Andreas Wickert

More Related