Algorithmen für Routenplanung 11. Vorlesung, Sommersemester 2012 Daniel Delling 6. Juni 2012



Ähnliche Dokumente
Algorithmen für Routenplanung 7. Vorlesung, Sommersemester 2012 Daniel Delling 16. Mai 2012

Algorithmen für Routenplanung Vorlesung 6

Algorithmen für Routenplanung 6. Vorlesung, Sommersemester 2010 Daniel Delling 17. Mai 2010

Algorithmen für Routenplanung 8. Sitzung, Sommersemester 2012 Thomas Pajor 21. Mai 2012

Algorithmen für Routenplanung 12. Sitzung, Sommersemester 2014 Prof. Christos Zaroliagis 26. Mai 2014

Algorithmen für Routenplanung 11. Sitzung, Sommersemester 2013 Julian Dibbelt 10. Juni 2013

Algorithmen für Routenplanung 10. Sitzung, Sommersemester 2014 Ben Strasser 21. Mai 2014

Algorithmen und Datenstrukturen 2

Konzepte der Informatik

Algorithmen für Routenplanung 7. Sitzung, Sommersemester 2010 Thomas Pajor 28. Mai 2010

Algorithmische Methoden für schwere Optimierungsprobleme

Algorithmen für Routenplanung 10. Sitzung, Sommersemester 2012 Daniel Delling 4. Juni 2012

Algorithmen II Vorlesung am

Algorithmen für Routenplanung 7. Vorlesung, Sommersemester 2015 Ben Strasser 18. Mai 2014

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

1 topologisches Sortieren

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Kapitel 6: Graphalgorithmen Gliederung

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Semestralklausur zur Vorlesung. Web Mining. Prof. J. Fürnkranz Technische Universität Darmstadt Sommersemester 2004 Termin:

Praktikum Routenplanung Vorbesprechung, Wintersemester 2013/2014 Moritz Baum, Julian Dibbelt, Ben Strasser 21. Oktober 2013

Erstellen von x-y-diagrammen in OpenOffice.calc

SQL-Injection. Seite 1 / 16

Algorithmen für Routenplanung

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Kombinatorische Optimierung

Kürzeste und Schnellste Wege

AutoSPARQL. Let Users Query Your Knowledge Base

Laborübung - Task-Manager (Verwalten von Prozessen) in Windows 7

Algorithmen für Routenplanung 8. Sitzung, Sommersemester 2013 Julian Dibbelt 22. Mai 2013

SS 2005 FAU Erlangen Eine Wegeplanungs-Strategie. Jeremy Constantin, Michael Horn, Björn Gmeiner

Algorithmen für Routenplanung 12. Sitzung, Sommersemester 2011 Reinhard Bauer, Thomas Pajor 6. Juni 2011

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Algorithmen für Routenplanung 13. Vorlesung, Sommersemester 2012 Daniel Delling 13. Juni 2012

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Wie Google Webseiten bewertet. François Bry

Datenbanken Microsoft Access 2010

Information Systems Engineering Seminar

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

Synchronisations- Assistent

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

Transaction Validation for XML Documents based on XPath

Datenstrukturen & Algorithmen

Graphen: Datenstrukturen und Algorithmen

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Praktikum Routenplanung Themenvorstellung & Gruppeneinteilung, Wintersemester 2015/2016 Moritz Baum, Ben Strasser, Tobias Zündorf 19.

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Statistische Untersuchungen zu endlichen Funktionsgraphen

Updatehinweise für die Version forma 5.5.5

Operator-Kostenmodelle für Fortschrittsschätzung und Opt. Datenbanksystemen

User Manual Data 24. Login und Layout

Kompetitive Analysen von Online-Algorithmen

Wasserfall-Ansätze zur Bildsegmentierung

Informatik-Sommercamp Mastermind mit dem Android SDK

Primzahlen und RSA-Verschlüsselung

Clustering (hierarchische Algorithmen)

Datenexport aus JS - Software

Grundlagen der Künstlichen Intelligenz

Effiziente Administration Ihrer Netzwerkumgebung

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

4D Server v12 64-bit Version BETA VERSION

Print2CAD 2017, 8th Generation. Netzwerkversionen

Umzug der Datenbank Firebird auf MS SQL Server

Theoretische Grundlagen der Informatik

Laborübung - Task Manager (Verwalten von Prozessen) in Windows Vista

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

Well-Balanced. Performance Tuning

SJ OFFICE - Update 3.0

Stackelberg Scheduling Strategien

WS 2013/14. Diskrete Strukturen

Grundlagen der Theoretischen Informatik, SoSe 2008

Informationsblatt Induktionsbeweis

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube Konstanz

Benutzerhandbuch - Elterliche Kontrolle

Softwareentwicklungspraktikum Sommersemester Grobentwurf

Neuheiten PROfirst KALKULATION Version 8. SQL ist sehr schnell. Neuheiten PROfirst KALKULATION Version 8 1/7

Fortgeschrittene Routenplanung. Transportnetzen. Advanced Route Planning in Transportation Networks

Netzwerkversion PVG.view

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Kopplung von Datenbanken

Die Komplexitätsklassen P und NP

16. All Pairs Shortest Path (ASPS)

NanoTrader Neue KontoLeiste

PostgreSQL in großen Installationen

Algorithmen für Routenplanung 18. Sitzung, Sommersemester 2015 Moritz Baum 13. Juli 2015

Anmerkungen zur Übergangsprüfung

Laborübung - Task Manager (Verwalten von Prozessen) in Windows XP

1.5 Umsatzsteuervoranmeldung

Abfragen: Grundbausteine

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP

Highway Hierarchies. Kristian Dannowski, Matthias Hoeschel

Grundlagen der Künstlichen Intelligenz

U08 Entwurfsmuster (II)

Wie findet das Navi den Weg?

DB Restore mit SQL Server7

Anleitung über den Umgang mit Schildern

Transkript:

Algorithmen für Routenplanung 11. Vorlesung, Sommersemester 2012 Daniel Delling 6. Juni 2012 MICROSOFT RESEARCH SILICON VALLEY KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Letztes Mal Beschleunigung von one-to-all Anfragen PHAST anstatt Dijkstra Vorteil: Ausnutzung von moderner Hardware Architektur Folie 2 6. Juni 2012

Anfrageszenarien Punkt-zu-Punkt zwei Punkte kürzester Weg wird für Routenplanung benutzt Beschleunigungstechniken HubLabels 10M schneller One-to-Many ein (variierender Knoten) und eine (feste) Menge Distanz zu allen Knoten in der Menge wichtig für POI One-to-All ein Knoten Distanzen zu allen Knoten wird für Vorberechnung benutzt PHAST 500 schneller (auf GPU) nutzt Hardware aus Many-to-Many zwei Mengen Distanztabelle wichtig für Vehicle Routing Folie 3 6. Juni 2012

Das One-to-Many Problem Problem Definition: Eingabe: eine Knoten s und eine Menge T Ausgabe: Distanz von s zu allen t T Annahme: wir fiieren T und variieren s offensichtliche Lösungen: Dijkstras Algorithmus (mit Stoppkriterium) Performance stark abhängig von T und Verteilung von T T p2p Anfragen (mit HL) Performance stark abhängig von T benutze PHAST (kein Stoppkriterium!) Overkill (vor allem für kleine T ) Folie 4 6. Juni 2012

Erste Ideen Vorschläge? Folie 5 6. Juni 2012

Ungerichtete Bidir. Techniken Definition: σ (s, t): Suchraum der Vorwärtssuche von s nach t σ (s, t) analog eine bidirektionale Suche ist Ziel-unabhängig, gdw. (s, t 1, t 2 ) V 3 : σ (s, t 1 ) = σ (s, t 2 ) (s 1, s 2, t) V 3 : σ (s 1, t) = σ (s 2, t) und Beispiele: Bidirektionaler Dijkstra ohne Stoppkriterium, lass laufen bis Queues leer sind Folie 6 6. Juni 2012

Hierarchische Techniken Beobachtung: suchen nur aufwärts sind nicht zielgerichtet somit: Bidirektionaler Dijkstra Reach Contraction Hierarchies 6 5 2 3 2 s 1 ohne Stoppkriterium, lass laufen bis Queues leer sind HL node order 8 2 4 3 1 2 3 t 5 Folie 7 6. Juni 2012

Vorgehen Idee: führe T Rückwärtssuchen aus speicher für jedes besuchte u die Abstände zu allen t T verwalte temporäres Distanzarray D T führe Vorwärtssuche aus aktualisiere Einträge in D T Problem: verwalten der Suchräume? Folie 8 6. Juni 2012

Schneiden der Suchräume während Rückwärtssuchen: breche nicht ab für jedes erreichte u: füge Element (u, t, d(u, t)) in einen Vektor ein Kompression: sortiere Einträge nach u speichere für jeden Knoten u einen Bucket β(u) mit allen (t, d(u, t)) ab mittels Adjazenzarray p 4 p 1 p 2 s während Vorwärtssuche: breche nicht ab für jedes erreichte u: durchsuche Bucket β(u) aktualisiere Distanzarray p 3 p 5 Folie 9 6. Juni 2012

RPHAST Beobachtung: Idee: Sweep über den Graphen ist der Flaschenhals etrahiere relevanten Teil des Graphen (Ziel Selektion) Aufwärtssuche im vollen Graphen Sweep auf etrahiertem Graphen s T Startknoten kann im ganzem Graphen liegen Grösse des etrahierten Graphen hängt von Verteilung und Anzahl T ab kann wie PHAST parallelisiert werden GPU implementation möglich Folie 10 6. Juni 2012

Eperimente I input: Westeuropa (18M Knoten), T = 2 14 Query Time [ms] 0.1 1 10 100 1000 Dijkstra RPHAST query HL RPHAST select PHAST BCH query BCH select BHL query BHL select 0.1 1 10 100 1000 2 14 2 15 2 16 2 17 2 18 2 19 2 20 2 21 2 22 2 23 2 24 Ball Size Folie 11 6. Juni 2012

Eperimente II input: Westeuropa (18M Knoten), T = 2 18 Query Time [ms] 0.1 1 10 100 1000 10000 Dijkstra RPHAST query HL RPHAST selection PHAST BCH query BCH selection BHL query BHL selection 0.1 1 10 100 1000 10000 2 18 2 19 2 20 2 21 2 22 2 23 2 24 Ball Size Folie 12 6. Juni 2012

Many-to-Many Kürzeste Wege Gegeben: Graph Knotenmengen S, T V Gesucht: Distanzmatri D T Anwendungen: vehicle routing traveling salesman S Lösung: S one-to-many Anfragen speicher Distanzen in der Tabelle RPHAST kann multiples Setup (SSE) nutzen Folie 13 6. Juni 2012

Eperimente I input: Westeuropa (18M Knoten), S = T = 2 10 Query Time [s] 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 HL BCH BHL RPHAST SSE RPHAST 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 2 10 2 11 2 12 2 13 2 14 2 15 2 16 2 17 2 18 2 19 2 20 2 21 2 22 2 23 2 24 Ball Size Beobachtung: alle Techniken unter einer Sekunde Folie 14 6. Juni 2012

Eperimente II input: Westeuropa (18M Knoten), S = T = 2 12 Query Time [s] 0 1 2 3 4 5 6 HL BCH BHL RPHAST SSE RPHAST 0 1 2 3 4 5 6 2 12 2 13 2 14 2 15 2 16 2 17 2 18 2 19 2 20 2 21 2 22 2 23 2 24 Ball Size Beobachtung: SSE PHAST am schnellsten Folie 15 6. Juni 2012

Eperimente III input: Westeuropa (18M Knoten), S = T = 2 14 Query Time [s] 0 20 40 60 80 100 HL BCH BHL RPHAST SSE RPHAST 0 20 40 60 80 100 2 14 2 15 2 16 2 17 2 18 2 19 2 20 2 21 2 22 2 23 2 24 Ball Size Beobachtung: SSE PHAST am schnellsten Folie 16 6. Juni 2012

Nächster POI Szenario: Zielknoten sind POIs finde k nächste POIs von einem Startknoten s Lösung: wie one-to-many ordne die buckets pro Knoten auch nach aufsteigender Distanz in jedem Bucket müssen nur die k nächsten POIs durchsucht werden Laufzeit für POI Query nicht abhängig von Anzahl POIs im System Laufzeit: Suchraum k p 4 p 1 p 2 s p 3 p 5 Folie 17 6. Juni 2012

Bester Via Knoten Szenario: Zielknoten sind POIs finde k best Via Knoten POIs von einem Startknoten s zu einem Startknoten t minimiere dist(s, p) dist(p, t) über alle POIs p Lösung: Vorwärts- und Rückwartssuche von jedem POI speicher Kreuzprodukt der beiden Suchräume mit Distanz durch den POI Such von s und t: evaluiere jedes Paar Laufzeit: Suchraum 2 k p 1 s p 2 p 3 t Folie 18 6. Juni 2012

Aufgabenstellung Beobachtung: Queries sind schnell genug Visualisierung und Netzwerklatenz der Flaschenhals schwieriger und hoch optimierter Code Können wir Geschwindigkeit gegen einfachere Bedienbarkeit eintauschen? Idee: Implementier Routenplanung direkt in SQL auch die Erweiterungen Folie 19 6. Juni 2012

Location Services in SQL Vorteile: einfach zu nutzen Daten meist eh schon in SQL skalieren einfach (bestehende Datenbanksysteme, Cloud SQL) auch für Nicht-Routing-Eperten zu nutzen Eternal Memory Implementation frei Nachteile: SQL viel langsamer als optimierter C Code keine aufwändigen Datenstrukturen (Graph, Priority Queue) Dijkstra-basierte Techniken sind keine Option Folie 20 6. Juni 2012

Ideensammlung Welcher Ansatz? keine Priority Queue? keine Graphdatenstruktur? Idee: Hub Labeling Folie 21 6. Juni 2012

Hub Labeling Vorberechung: für jeden Knoten u, berechne zwei Label L f (u), L b (u) ein Label ist eine Menge von Knoten (Hubs) und Distanzen dist(u, v) für jeden Hub v L f (u) dist(v, u) für jeden Hub v L b (u) die Label müssen die cover property einhalten: s, t, L f (s) L b (t) überdeckt den kürzesten s t Pfad s s t Anfrage: finde Knoten v L f (s) L b (t)...... der dist(s, v) dist(v, t) minimiert Beobachtungen: Label der Grösse 70 für Europe sehr schnelle Queryzeiten Set operationen t Folie 22 6. Juni 2012

Speichern der Label Idee: berechne Label mit C (wie bei HubLabels) aber speicher die Label direkt in der Datenbank ein Vorwärtslabel von Knoten v mit k Hubs: erzeugt k Triples (v, u, d(v, u)) in Tabelle forward Rückwärtslabel genauso in backward ungefähr 1.35 Milliarden Zeilen pro Tabelle (ca. 19 GB pro Richtung) indiziere nach node (primary) und hub (secondary) L f (1) 1,0 4,1 5,2 7,3 L b (2) 2,0 6,1 7,4 Folie 23 6. Juni 2012 forward node hub dist 1 1 0 1 4 1 1 5 2 1 7 3 2 14 2... backward node hub dist 1 1 0 1 4 4 2 2 0 2 6 1 2 7 4...

SQL Query 1 2 3 4 5 6 7 Algorithm 1: SQL_DIST Input: source s V, target t V SELECT MIN(forward.distbackward.dist) FROM forward,backward WHERE forward.node = s AND backward.node = t AND forward.hub = backward.hub Bemerkung: berechnet nur die Distanz s t Folie 24 6. Juni 2012

Pfadentpackung Idee: 2 Phasen speicher jeden Shortcut aus G eplizit (als Sequenz von Kanten IDs) in Tabelle shortcuts ca. 5 GB in Tabelle Phase 1: erzeuge Pfad in G durch Hubs auf dem Pfad erweitere Tabellen forward und backward um 2 Spalten: Parent und Shortcut erhöht Speicherverbrauch der Tabelle von 19 auf 32 GB Phase 2: erzeuge Pfad in G durch matchen von G mit shortcuts Folie 25 6. Juni 2012

Ergebnisse Setup: MS SQL Server 2008 R2 mit Daten auf HDD, kalter Cache query time [ms] 0 50 100 150 200 path retrieval compact path distance only eternal 0 50 100 150 200 10 1 10 2 10 3 10 4 10 5 10 6 number of queries Beobachtung: Nicht schnell genug Folie 26 6. Juni 2012

Ergebnisse (SSD) Setup: MS SQL Server 2008 R2 mit Daten auf SSD, kalter Cache query time [ms] 0 5 10 15 20 25 path retrieval compact path distance only eternal 0 5 10 15 20 25 10 1 10 2 10 3 10 4 10 5 10 6 number of queries Beobachtung: SSD macht Queries schnell genug Folie 27 6. Juni 2012

Lokale Anfrage Setup: Anfragen mit verschiedenem Rank, 10000 Anfragen, kalter Cache query time [ms] 0 2 4 6 8 10 path retrieval compact path distance only eternal 0 2 4 6 8 10 2 10 2 12 2 14 2 16 2 18 2 20 2 22 2 24 ball size Beobachtung: praisrelevante Anfragen sehr schnell Folie 28 6. Juni 2012

POI Anfragen in SQL Idee: Query: etrahiere die Rückwartslabel aus backward speicher sie in neuer Tabelle poilab indiziere nach hub und dist iteriert über alle ausgehenden Hubs für jeden Hub werden nur die (k) nächsten POIs betrachtet p 4 Antwort: die k insgesamt nächsten POIs p 1 p 2 s p 3 p 5 Folie 29 6. Juni 2012

Ergebnisse POI Setup: verschiedene Anzahl POIs, zufällig gewählt query time [ms] 0.1 1 10 100 closest 16 closest C oracle 0.1 1 10 100 2 0 2 2 2 4 2 6 2 8 2 10 2 12 2 14 2 16 2 18 number of candidates eternes Punkt-zu-Punkt Orakel: skaliert schlecht SQL Anfragen unabhängig von Anzahl POIs weitere Constraints einfach ( jetzt geöffnet ) Folie 30 6. Juni 2012

Demo Folie 31 6. Juni 2012

Zusammenfassung one-to-many shortest paths many-to-many POI Anfragen bester Via Knoten Anfragen Location Services in SQL Folie 32 6. Juni 2012

Ende Literatur: Sebastian Knopp, Peter Sanders, Dominik Schultes, Frank Schulz, and Dorothea Wagner: Computing Many-to-Many Shortest Paths Using Highway Hierarchies In: Proceedings of the 9th Workshop on Algorithm Engineering and Eperiments (ALENEX 07), pages 36-45, 2007. Daniel Delling, Andrew V. Goldberg, Renato F. Werneck Faster Batched Shortest Paths in Road Networks In: Proceedings of the 11th Workshop on Algorithmic Approaches for Transportation Modeling, Optimization, and Systems (ATMOS 11), pages 52-63, 2011 Ittai Abraham, Daniel Delling, Andrew V. Goldberg, Renato F. Werneck HLDB: Location-Based Services in Databases bald verfügbar Folie 33 6. Juni 2012

Nächste Termine Montag, 11.6.2012 Mittwoch, 13.6.2012 Montag, 18.6.2012 Mittwoch, 20.6.2012 Folie 34 6. Juni 2012