Algorithmen für Routenplanung 12. Sitzung, Sommersemester 2013 Julian Dibbelt 17. Juni 2013

Ähnliche Dokumente
Algorithmen für Routenplanung 14. Vorlesung, Sommersemester 2012 Daniel Delling 18. Juni 2012

Algorithmen für Routenplanung Vorlesung 10

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

Fortgeschrittene Routenplanung. Transportnetzen. Advanced Route Planning in Transportation Networks

Algorithmen für Routenplanung 2. Vorlesung, Sommersemester 2014 Andreas Gemsa 20. April 2014

Schnelle und genaue Routenplanung

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

Genauer Hochleistungs-Routenplaner

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

Algorithmen für Routenplanung

Praktikum Routenplanung Vorbesprechung, Wintersemester 2012/2013 Moritz Baum, Julian Dibbelt, Thomas Pajor, Ben Strasser 17.

Algorithmen für Routenplanung 10. Vorlesung, Sommersemester 2016 Ben Strasser 25. Mai 2016

Algorithmen II Vorlesung am

Algorithmen für Routenplanung

Highway Hierarchies. Kristian Dannowski, Matthias Hoeschel

Dijkstra: Laufzeit. Insgesamt: T Dijkstra = O m T decreasekey (n)+n (T deletemin (n)+t insert (n))

2. Übungsblatt zu Algorithmen II im WS 2016/2017

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Algorithmen für Routenplanung

Datenstrukturen & Algorithmen

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Kombinatorische Optimierung

Grundlagen: Algorithmen und Datenstrukturen

Kapitel 4: Netzplantechnik Gliederung der Vorlesung

Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege

Algorithmen II Vorlesung am

Informatik II, SS 2014

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

Single Source Sortest Path Negative Kreise All-Pair Shortest Path Problem Minimum Mean Cycle Zusammenfassung. Shortest Paths

Algorithmen & Komplexität

Vorlesung Datenstrukturen

Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time

Christian Schulz und Johannes Singler

Rolf Wanka Sommersemester Vorlesung

Klausur Algorithmen und Datenstrukturen

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem

Klausur Theoretische Informatik I WS 2004/2005

9. Übung Algorithmen I

Algorithmen und Datenstrukturen

Einleitung. Komplexe Anfragen. Suche ist teuer. VA-File Verfeinerungen. A0-Algo. GeVAS. Schluß. Folie 2. Einleitung. Suche ist teuer.

Das Heiratsproblem. Definition Matching

Algorithmen für Routenplanung

Anwendungen des Fréchet-Abstandes Das Constrained Free Space Diagram zur Analyse von Körperbewegungen

Vorlesung 2 KÜRZESTE WEGE

Dynamisches Huffman-Verfahren

4 Greedy-Algorithmen (gierige Algorithmen)

14. Rot-Schwarz-Bäume

Zweizusammenhang und starker Zusammenhang

Algorithmen II Vorlesung am

Projekt 1: Constraint-Satisfaction-Probleme Abgabe: 7. Juni 2009

ADS: Algorithmen und Datenstrukturen 2

13 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

Algorithmen und Datenstrukturen 2

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Identifizierung negativer Zyklen in gerichteten Graphen

Das Briefträgerproblem

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

Algorithmen II Vorlesung am

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

Teil III. Komplexitätstheorie

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

Customization (Zuschneiden)

Lösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013

Informatik II, SS 2014

Über die Berechnung der Optimalwertfunktion in zeitabhängigen Netzwerken

ADS: Algorithmen und Datenstrukturen 2

Organic Computing: Peer-to-Peer-Netzwerke

Vorlesung 4 BETWEENNESS CENTRALITY

Kombinatorische Optimierung

Algorithmen und Datenstrukturen Balancierte Suchbäume

Mobile Objekte Indexstrukturen

Toleranzbasierte Algorithmen für das Travelling Salesman Problem. Gerold Jäger

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

Algorithmen und Datenstrukturen 2

11.1 Grundlagen - Denitionen

Datenstrukturen. Mariano Zelke. Sommersemester 2012

15. Elementare Graphalgorithmen

Kapitel 5: Dynamisches Programmieren Gliederung

Algorithmen und Datenstrukturen in der Bioinformatik Viertes Übungsblatt WS 05/06 Musterlösung

Routing Algorithmen. Begriffe, Definitionen

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

9. Heuristische Suche

Informatik II, SS 2014

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

Informatik II Vorlesung am D-BAUG der ETH Zürich

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

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Algorithmische Methoden zur Netzwerkanalyse

Grundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen

Minimal spannende Bäume

4. Kreis- und Wegeprobleme Abstände in Graphen

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20

Klausur Algorithmen und Datenstrukturen II 10. August 2015

Transkript:

Algorithmen für Routenplanung 12. Sitzung, Sommersemester 2013 Julian Dibbelt 17. Juni 2013 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Diskussion Stoff bisher Problemtransformation auf Graph + Dijkstra Vorberechnungstechniken (point-to-point) Weitere Anfrageszenarien: one-to-all, many-to-many, POIs Turn-Costs Alternativrouten (fast optimal, hinreichend unterschiedlich) Folie 2 17. Juni 2013

Diskussion Stoff bisher Problemtransformation auf Graph + Dijkstra Vorberechnungstechniken (point-to-point) Weitere Anfrageszenarien: one-to-all, many-to-many, POIs Turn-Costs Alternativrouten (fast optimal, hinreichend unterschiedlich) Was fehlt noch für Einsatz in Produktion? Folie 2 17. Juni 2013

Diskussion Stoff bisher Problemtransformation auf Graph + Dijkstra Vorberechnungstechniken (point-to-point) Weitere Anfrageszenarien: one-to-all, many-to-many, POIs Turn-Costs Alternativrouten (fast optimal, hinreichend unterschiedlich) Was fehlt noch für Einsatz in Produktion? Berücksichtigung von (aktuellen) Staus Implementation auf Mobilgeräten Berücksichtigung von historischem Wissen über Staus Was ist eigentlich mit Bus+Bahn? Folie 2 17. Juni 2013

Dynamische Szenarien Szenario: Unfall auf einer Straße Reisezeit ändert sich auf dieser Straße berechne schnellsten Weg bezüglich der aktualisierten Reisezeiten Folie 3 17. Juni 2013

Herausforderung Hauptproblem: Kantengewichte ändern sich Vorberechnung basiert auf ursprünglichen Kantengewichten komplette Vorberechnung für jeden Stau wenig sinnvoll Folie 4 17. Juni 2013

Herausforderung Hauptproblem: Kantengewichte ändern sich Vorberechnung basiert auf ursprünglichen Kantengewichten komplette Vorberechnung für jeden Stau wenig sinnvoll Serverszenario: identifiziere den Teil der beeinträchtigten Vorberechnung aktualisiere diesen Teil Folie 4 17. Juni 2013

Herausforderung Hauptproblem: Kantengewichte ändern sich Vorberechnung basiert auf ursprünglichen Kantengewichten komplette Vorberechnung für jeden Stau wenig sinnvoll Serverszenario: identifiziere den Teil der beeinträchtigten Vorberechnung aktualisiere diesen Teil mobiles Szenario: robuste Vorberechnung immer noch korrekt, wenn Kantengewichte sich erhöhen dadurch eventuell Anfragen langsamer oder passe Query an, so dass Vorberechnung nicht aktualisiert werden muss Folie 4 17. Juni 2013

Landmarken [Goldberg, Harrelson 05] Vorberechnung: wähle eine Hand voll ( 16) Knoten als Landmarken berechne Abstände von und zu allen Landmarken Anfrage: benutze Landmarken und Dreiecksungleichung um eine untere Schranke für den Abstand zum Ziel zu bestimmen d(s, t) d(l 1, t) d(l 1, s) d(s, t) d(s, L 2 ) d(t, L 2 ) verändert Reihenfolge der besuchten Knoten Folie 5 17. Juni 2013

Serverszenario Beobachtung: Landmarkenwahl ist Heuristik, also nicht ändern Distanzen von und zu Landmarken sind nicht korrekt Vorgehen: aktualisiere diese Distanzen benutze dafür dynamisierte Dijkstra-Variante, die nur betroffene Teilbäume (jeder Landmarke) neuberechnet dann Anfragen korrekt und (in etwa) so schnell wie bei kompletter neuer Vorberechnung Folie 6 17. Juni 2013

Mobiles Szenario Beobachtung: Korrektheit von ALT basiert darauf, dass reduzierten Kantengewichte größer gleich 0 sind len π (u, v) = len(u, v) π(u) + π(v) 0 durch Erhöhen der Kantengewichte wird dies nicht verletzt durch Staus können Reisezeiten nicht unter Initialwert fallen Folie 7 17. Juni 2013

Mobiles Szenario Beobachtung: Korrektheit von ALT basiert darauf, dass reduzierten Kantengewichte größer gleich 0 sind len π (u, v) = len(u, v) π(u) + π(v) 0 durch Erhöhen der Kantengewichte wird dies nicht verletzt durch Staus können Reisezeiten nicht unter Initialwert fallen Idee: Vorberechnung auf staufreiem Graphen Suchanfragen ohne Aktualisierung korrekt aber eventuell langsamere Anfragezeiten Folie 7 17. Juni 2013

Beispiel

Beispiel

Aktualisierung der Vorberechnung Aktualisieren von 32 kürzeste-wege Bäumen für 16 Landmarken: Edge Category Update Time [ms] random motorway national road local road urban street 0.01 0.1 1 10 100 10 3 10 4 low pert. high pert. Folie 9 17. Juni 2013

No-update Variante: Typ des Updates Zufallsanfragen nach 1 000 updates erhöhe Kantengewicht um x2 (x10 in Klammern) verschiedene Straßenkategorien affected 16 landmarks 32 landmarks road type queries search space search space no updates 0.0 % 74 699 (74 699) 40 945 (40 945) all 7.5 % 74 700 (77 759) 41 044 (43 919) urban 0.8 % 74 796 (74 859) 40 996 (41 120) local 1.5 % 74 659 (74 669) 40 949 (40 995) national 28.1 % 74 920 (75 777) 41 251 (42 279) motorway 95.3 % 97 249 (265 472) 59 550 (224 268) Beobachtung: nur Autobahnen haben Einfluß auf Suchraumgröße Folie 10 17. Juni 2013

No-update Variante: Anzahl Updates Zufallsanfragen nach Autobahn updates (x2, x10 in Klammern) verschiedene Anzahl Updates affected 16 landmarks 32 landmarks updates queries search space search space 0 0.0 % 74 699 (74 699) 40 945 (40 945) 100 39.9 % 75 691 (91 610) 41 725 (56 349) 200 64.7 % 78 533 (107 084) 44 220 (69 906) 500 87.1 % 86 284 (165 022) 50 007 (124 712) 1 000 95.3 % 97 249 (265 472) 59 550 (224 268) 2 000 97.8 % 154 112 (572 961) 115 111 (531 801) 5 000 99.1 % 320 624 (1 286 317) 279 758 (1 247 628) 10 000 99.5 % 595 740 (2 048 455) 553 590 (1 991 297) Beobachtung: 1000 gut verkraftbar Folie 11 17. Juni 2013

Customizable Route Planning Idee: partitioniere Graphen Berechne Distanzen zwischen Randknoten in jeder Zelle Overlay Graph: Randknoten Cliquen in jeder Zelle Schnittkanten s t Suchgraph: Start- und Zielzelle......plus Overlaygraph. (bidirektionaler) Dijkstra Optimierung: multiple Level Folie 12 17. Juni 2013

Update der Vorberechnung Beobachtung: Shortcuts (Cliquenkanten) können invalidiert werden Shortcuts repräsentieren Pfade innerhalb der Zelle Update: identifiziere Zelle in der die aktualisierte Kante liegt für jedes Level der Multi-Level Partition wiederhole (bottom-up) Preprocessing für diese Zellen dauert weniger als 10 ms Folie 13 17. Juni 2013

Mobiles Szenario Beobachtung: Update invalidiert Zellen-Overlay erhöht meistens nur einige Overlay-Gewichte restliche Overlay-Kanten bleiben korrekt Query: Suche muss bei invalidierten Zellen absteigen jeder Abstieg erhöht Suchraum um ca. 50% Optimierung: markiere invalidierte Zellen (ohne Overlay zu aktualisieren) führe Anfrage aus (ohne Abstieg) wenn der Pfad nicht die aktualiesierte Kante enhält fertig sonst Suche mit Abstieg Folie 14 17. Juni 2013

Contraction Hierarchies preprocessing: ordne Knoten nach Wichtigkeit bearbeite in der Reihenfolge füge Shortcuts hinzu Levelzuordnung (ca. 150 in Strassennetzwerken) level 5 2 1 3 5 4 1 3 2 3 7 4 4 2 5 1 6 Folie 15 17. Juni 2013

Update der Vorberechnung I Beobachtung: Knotenordnung ist heuristik also behalte Ordnung bei geänderte Kante (u, v) kann zu Shortcuts beitragen aber auch Teil von Zeugensuchen gewesen sein Frage: welche Knoten müssen neu kontrahiert werden (mit Zeugensuche) Folie 16 17. Juni 2013

Update der Vorberechnung II Idee: wiederhole Kontraktion für Knotenmenge U füge alle aufwärts erreichbaren Knoten von u, v zu U speicher für jede Kante e auf welchen Zeugensuchen sie benutzt wurde. Die zugehörigen Knoten speicher in A e. Kann einfach während Vorberechnung gespeichert werden. füge alle aufwärts erreichbaren Knoten von A e (und aller A f für alle Shortcuts f, die e enthalten) zu U wiederhole Kontraktion für alle Knoten U bezüglich Originalordnung Beobachtung: erhöht Speicherverbrauch von CH deutlich Updatezeit abhängig von Art der Kante Folie 17 17. Juni 2013

Mobiles Szenario Beobachtung: Kontraktion von Knoten zu teuer Folie 18 17. Juni 2013

Mobiles Szenario Beobachtung: Kontraktion von Knoten zu teuer Idee: identiziere Knotenmenge U wie zuvor erlaube Abstieg an Kanten (u, v) mit u, v U iterativer Ansatz (wie bei CRP) auch hier möglich Folie 18 17. Juni 2013

Weitere Techniken Arc-Flags: Aktualisierung aller Bäume nötig momentan keine vernünftige Update-Routine vorhanden Transit-Node Routing schwierig Tabellen und Access-Nodes können sich ändern HubLabels halte CH vor nach Update: aktualisierung alles Labels nicht getestet: nicht alle Labels müssen aktualisiert werden Folie 19 17. Juni 2013

Zusammenfassung Stau erhöht Kantengewicht temporär Anpassung Landmarken, CRP trivial Anpassung CH machbar sehr schwierig bei anderen Techniken Anmerkungen Mobil: nur nahe Staus beachten? viele Staus verhersehbar Folie 20 17. Juni 2013

Literatur I Dynamische Szenarien: Daniel Delling, Dorothea Wagner Landmark-Based Routing in Dynamic Graphs In: Proceedings of the 6th Workshop on Experimental Algorithms (WEA 07), 2007 Robert Geisberger, Peter Sanders, Dominik Schultes, Christian Vetter Exact Routing in Large Road Networks Using Contraction Hierarchies In: Transportation Science, 2012 Daniel Delling, Andrew V. Goldberg, Thomas Pajor, Renato Werneck Customizable Route Planning In: Proceedings of the 10th International Symposium on Experimental Algorithms (SEA 11), 2011 Folie 21 17. Juni 2013

Diskussion Wie historische Daten einbeziehen? Folie 22 17. Juni 2013

Zeitabhängiges Szenario Szenario: Historische Daten für Verkehrssituation verfügbar Verkehrssituation vorhersagbar Berechne schnellsten Weg bezüglich der erwarteten Verkehrssituation (zu einem gegebenen Startzeitpunkt) Folie 23 17. Juni 2013

Herausforderung Hauptproblem: Kürzester Weg hängt von Abfahrtszeitpunkt ab Eingabegröße steigt massiv an Folie 24 17. Juni 2013

Herausforderung Hauptproblem: Kürzester Weg hängt von Abfahrtszeitpunkt ab Eingabegröße steigt massiv an Vorgehen: Modellierung Anpassung Dijkstra Anpassung Beschleunigungstechniken Folie 24 17. Juni 2013

Herausforderung Hauptproblem: Kürzester Weg hängt von Abfahrtszeitpunkt ab Eingabegröße steigt massiv an Vorgehen: Modellierung Anpassung Dijkstra Anpassung Beschleunigungstechniken Heute: Modellierung und Dijkstra Folie 24 17. Juni 2013

Zeitabhängige Straßennetzwerke Eingabe: Durchschnittliche Reisezeit zu bestimmten Zeitpunkten Jeden Wochentag verschieden Sonderfälle: Urlaubszeit Somit an jeder Kante: Periodische stückweise lineare Funktion Definiert durch Stützpunkte Interpoliere linear zwischen Stützpunkten travel time departure Folie 25 17. Juni 2013

FIFO-Eigenschaft Definition Sei f : R + 0 R+ 0 eine Funktion. f erfüllt die FIFO-Eigenschaft, wenn für jedes ε > 0 und alle τ R + 0 gilt, dass f (τ) ε + f (τ + ε). Diskussion Interpretation: Warten/Später ankommen lohnt sich nie Kürzeste Wege auf Graphen mit non-fifo Funktionen zu finden ist NP-schwer. (wenn warten an Knoten nicht erlaubt ist) Sicherstellen, dass Funktionen FIFO-Eigenschaft erfüllen. Folie 26 17. Juni 2013

Diskussion Eigenschaften: Topologie ändert sich nicht Kanten gemischt zeitabhängig und konstant variable (!) Anzahl Interpolationspunkte pro Kante Folie 27 17. Juni 2013

Diskussion Eigenschaften: Topologie ändert sich nicht Kanten gemischt zeitabhängig und konstant variable (!) Anzahl Interpolationspunkte pro Kante Beobachtungen: FIFO gilt auf allen Kanten später wichtig Folie 27 17. Juni 2013

Datenstruktur 8:00-2 9:00-5 10:00-2 1 2 6:00-3 8:00-5 12:00-4 18:00-5 20:00-3 0 2 1 1 3 8:00-1 10:00-4 12:00-1 Folie 28 17. Juni 2013

Datenstruktur 8:00-2 9:00-5 10:00-2 1 2 firstedge targetnode firstpoint 0 2 3 4 6 1 3 2 3 2 0 0 5 6 9 12 13 14 6:00-3 8:00-5 12:00-4 18:00-5 20:00-3 0 2 1 1 3 8:00-1 10:00-4 12:00-1 time weight 6 8 12 18 20 3 5 4 5 3 0 2 8 9 10 2 5 2 8 10 12 1 4 1 0 0 1 1 Folie 28 17. Juni 2013

Datenstruktur sourcenode lowerbound 3 1 0 3 1 2 3 1 0 2 2 1 8:00-2 9:00-5 10:00-2 1 2 firstinedge 0 1 2 4 6 firstoutedge 0 2 3 4 6 targetnode 1 3 2 3 2 0 firstpoint 0 5 6 9 12 13 14 6:00-3 8:00-5 12:00-4 18:00-5 20:00-3 0 2 1 1 3 8:00-1 10:00-4 12:00-1 time weight 6 8 12 18 20 3 5 4 5 3 0 2 8 9 10 2 5 2 8 10 12 1 4 1 0 0 1 1 Folie 28 17. Juni 2013

Anfrageszenarien Zeit-Anfrage: finde kürzesten Weg für Abfahrtszeit τ analog zu Dijkstra? Folie 29 17. Juni 2013

Anfrageszenarien Zeit-Anfrage: finde kürzesten Weg für Abfahrtszeit τ analog zu Dijkstra? Profil-Anfrage: finde kürzesten Weg für alle Abfahrtszeitpunkte analog zu Dijkstra? Folie 29 17. Juni 2013

Zeit-Anfragen 1 2 3 4 5 6 7 8 9 10 Time-Dijkstra(G = (V, E),s,τ) d τ [s] = 0 Q.clear(), Q.add(s, 0) while!q.empty() do u Q.deleteMin() for all edges e = (u, v) E do if d τ [u] + len(e, τ + d τ [u]) < d τ [v] then d τ [v] d τ [u] + len(e, τ + d τ [u]) p τ [v] u if v Q then Q.decreaseKey(v, d τ [v]) else Q.insert(v, d τ [v]) Folie 30 17. Juni 2013

Diskussion Zeit-Anfragen Beobachtung: Nur ein Unterschied zu Dijkstra Auswertung der Kanten Folie 31 17. Juni 2013

Diskussion Zeit-Anfragen Beobachtung: Nur ein Unterschied zu Dijkstra Auswertung der Kanten non-fifo Netzwerke: Im Kreis fahren kann sich lohnen NP-schwer (wenn warten an Knoten nicht erlaubt ist) Transportnetzwerke sind FIFO modellierbar (notfalls Multikanten) Folie 31 17. Juni 2013

Profil-Anfragen 1 2 3 4 5 6 7 8 9 Profile-Search(G = (V, E),s) d [s] = 0 Q.clear(), Q.add(s, 0) while!q.empty() do u Q.deleteMin() for all edges e = (u, v) E do if d [u] len(e) d [v] then d [v] min(d [u] len(e), d [v]) if v Q then Q.decreaseKey(v, d[v]) else Q.insert(v, d[v]) Folie 32 17. Juni 2013

Diskussion Profile-Anfragen Beobachtungen: Operationen auf Funktionen Priorität im Prinzip frei wählbar (d[u] ist das Minimum der Funktion d [u]) Knoten können mehrfach besucht werden label-correcting Herausforderungen: Wie effizient berechnen (Linken)? Wie effizient Minimum bilden? Folie 33 17. Juni 2013

Operationen Funktion gegeben durch: Menge von Interpolationspunkten I f := {(t f 1, w f 1 ),..., (t f k, w f k )} 3 Operationen notwendig: Auswertung Linken Minimumsbildung Folie 34 17. Juni 2013

Auswertung Evaluation von f (τ): Suche Punkte mit t i τ und t i+1 τ dann Evaluation durch travel time f (τ) = w i + (τ t i ) wi+1 w i t i+1 t i departure Folie 35 17. Juni 2013

Auswertung Evaluation von f (τ): Suche Punkte mit t i τ und t i+1 τ dann Evaluation durch travel time f (τ) = w i + (τ t i ) wi+1 w i t i+1 t i departure Problem: Finden von t i und t i+1 Theoretisch: Lineare Suche: O( I ) Binäre Suche: O(log 2 I ) Praktisch: I < 30 lineare Suche Sonst: Lineare Suche mit Startpunkt τ Π I wobei Π die Periodendauer ist Folie 35 17. Juni 2013

Linken Definition Seien f : R + 0 R+ 0 und g : R+ 0 zwei Funktionen die die FIFO-Eigenschaft erfüllen. Die Linkoperation f g ist dann definiert durch f g := f + g (id +f ) Oder (f g)(τ) := f (τ) + g(τ + f (τ)) Folie 36 17. Juni 2013

Linken Linken zweier Funktionen f und g 32 u 7:00 8:00 v w 16 12 7:00 8:00 16 11 7:00 8:00 Folie 37 17. Juni 2013

Linken Linken zweier Funktionen f und g 32 u 7:00 8:00 v w 16 12 7:00 8:00 16 11 7:00 8:00 Folie 37 17. Juni 2013

Linken Linken zweier Funktionen f und g f g enthält auf jeden Fall { ( t f 1, w f 1 + g(t f 1 + w f 1 )),..., ( t f l, w f l + g(t f l + w f l )) } 32 24 7:00 8:00 u v w 16 12 7:00 8:00 16 11 7:00 7:12 8:00 Folie 37 17. Juni 2013

Linken Linken zweier Funktionen f und g f g enthält auf jeden Fall { ( t f 1, w f 1 + g(t f 1 + w f 1 )),..., ( t f l, w f l + g(t f l + w f l )) } 32 24 7:00 8:00 u v w 16 12 7:00 8:00 16 11 7:00 8:00 8:16 Folie 37 17. Juni 2013

Linken Linken zweier Funktionen f und g f g enthält auf jeden Fall { ( t f 1, w f 1 + g(t f 1 + w f 1 )),..., ( t f l, w f l + g(t f l + w f l )) } 32 24 7:00 8:00 u v w 16 12 7:00 8:00 16 11 7:00 8:00 8:16 Folie 37 17. Juni 2013

Linken Linken zweier Funktionen f und g f g enthält auf jeden Fall { ( t f 1, w f 1 + g(t f 1 + w f 1 )),..., ( t f l, w f l + g(t f l + w f l )) } 32 24 7:00 7:45 8:00 u v w 16 12 7:00 7:45 8:00 16 11 7:00 8:00 8:16 Folie 37 17. Juni 2013

Linken Linken zweier Funktionen f und g f g enthält auf jeden Fall { ( t1 f, w 1 f + g(t 1 f + w 1 f )),..., ( tl f, w l f + g(tl f + wl f )) } Zusätzliche Interpolationspunkte an t 1 j mit f (t 1 j ) + t 1 j = t g j 32 24 u 7:00 7:45 8:00 v w 16 12 7:00 8:00 16 11 7:00 8:00 8:16 Folie 37 17. Juni 2013

Linken Linken zweier Funktionen f und g f g enthält auf jeden Fall { ( t1 f, w 1 f + g(t 1 f + w 1 f )),..., ( tl f, w l f + g(tl f + wl f )) } Zusätzliche Interpolationspunkte an t 1 j mit f (t 1 j ) + t 1 j = t g j Füge (t 1 j, f (t 1 j ) + w g j ) für alle Punkte von g zu f g 32 24 u 7:00 7:45 8:00 v w 16 12 7:00 8:00 16 11 7:00 8:00 8:16 Folie 37 17. Juni 2013

Linken Linken zweier Funktionen f und g f g enthält auf jeden Fall { ( t1 f, w 1 f + g(t 1 f + w 1 f )),..., ( tl f, w l f + g(tl f + wl f )) } Zusätzliche Interpolationspunkte an t 1 j mit f (t 1 j ) + t 1 j = t g j Füge (t 1 j, f (t 1 j ) + w g j ) für alle Punkte von g zu f g Durch linearen Sweeping- Algorithmus implementierbar u 32 24 7:00 7:45 8:00 v w 16 12 7:00 8:00 16 11 7:00 8:00 8:16 Folie 37 17. Juni 2013

Diskussion Linken Laufzeit Sweep Algorithmus O( I f + I g ) Zum Vergleich: Zeitunabhängig O(1) Folie 38 17. Juni 2013

Diskussion Linken Laufzeit Sweep Algorithmus O( I f + I g ) Zum Vergleich: Zeitunabhängig O(1) Speicherverbrauch Gelinkte Funktion hat I f + I g Interpolationspunkte Folie 38 17. Juni 2013

Diskussion Linken Laufzeit Sweep Algorithmus O( I f + I g ) Zum Vergleich: Zeitunabhängig O(1) Speicherverbrauch Gelinkte Funktion hat I f + I g Interpolationspunkte Problem: Während Profilsuche kann ein Pfad mehreren Tausend Kanten entsprechen Folie 38 17. Juni 2013

Diskussion Linken Laufzeit Sweep Algorithmus O( I f + I g ) Zum Vergleich: Zeitunabhängig O(1) Speicherverbrauch Gelinkte Funktion hat I f + I g Interpolationspunkte Problem: Während Profilsuche kann ein Pfad mehreren Tausend Kanten entsprechen Shortcuts... Folie 38 17. Juni 2013

Merge von Funktionen Minimum zweier Funktionen f und g Für alle (ti f, w i f f ): behalte Punkt, wenn wi < g(ti f ) Für alle (t g j, w g j ): behalte Punkt, wenn w g j < f (t g j ) Schnittpunkte müssen ebenfalls eingefügt werden travel time departure time Folie 39 17. Juni 2013

Merge von Funktionen Minimum zweier Funktionen f und g Für alle (ti f, w i f f ): behalte Punkt, wenn wi < g(ti f ) Für alle (t g j, w g j ): behalte Punkt, wenn w g j < f (t g j ) Schnittpunkte müssen ebenfalls eingefügt werden Vorgehen: Linearer sweep über die Stützstellen Evaluiere, welcher Abschnitt oben Checke ob Schnittpunkt existiert Vorsicht bei der Numerik travel time departure time Folie 39 17. Juni 2013

Diskussion Merge Laufzeit Sweep Algorithmus O( I f + I g ) Zum Vergleich: Zeitunabhängig: O(1) Folie 40 17. Juni 2013

Diskussion Merge Laufzeit Sweep Algorithmus O( I f + I g ) Zum Vergleich: Zeitunabhängig: O(1) Speicherverbrauch Minimum-Funktion kann mehr als I f + I g Interpolationspunkte enthalten Folie 40 17. Juni 2013

Diskussion Merge Laufzeit Sweep Algorithmus O( I f + I g ) Zum Vergleich: Zeitunabhängig: O(1) Speicherverbrauch Minimum-Funktion kann mehr als I f + I g Interpolationspunkte enthalten Problem: Während Profilsuche werden Funktionen gemergt Laufzeit der Profilsuchen wird durch diese Operationen (link + merge) dominiert Folie 40 17. Juni 2013

Eingabe Netzwerk Deutschland V 4.7 Mio., E 10.8 Mio. 5 Verkehrszenarien: Montag: 8% Kanten zeitabhängig Dienstag - Donnerstag: 8% Freitag: 7% Samstag: 5% Sonntag: 3% Folie 41 17. Juni 2013

Grad der Zeitabhängigkeit #delete mins slow-down time [ms] slow-down kein 2,239,500 0.00% 1219.4 0.00% Montag 2,377,830 6.18% 1553.5 27.40% DiDo 2,305,440 2.94% 1502.9 23.25% Freitag 2,340,360 4.50% 1517.2 24.42% Samstag 2,329,250 4.01% 1470.4 20.59% Sonntag 2,348,470 4.87% 1464.4 20.09% Beobachtung: kaum Veränderung in Suchraum Anfragen etwas langsamer durch Auswertung Folie 42 17. Juni 2013

Profilsuchen Beobachtung: Nicht durchführbar auf Europa-Instanz durch zu großen Speicherbedarf (> 32 GiB RAM) Interpoliert: Suchraum steigt um ca. 10% Suchzeiten um einen Faktor von bis zu 2 500 über Dijkstra inpraktikabel Folie 43 17. Juni 2013

Zusammenfassung Zeitabhängige Netzwerke (Basics) Funktionen statt Konstanten an Kanten Operationen werden teurer O(log I ) für Auswertung O( I f + I g ) für Linken und Minimum Speicherverbrauch explodiert Zeitanfragen: Normaler Dijkstra Kaum langsamer (lediglich Auswertung) Profilanfragen nicht zu handhaben Folie 44 17. Juni 2013

Literatur II Zeitabhänige Routenplanung Daniel Delling: Engineering and Augmenting Route Planning Algorithms Ph.D. Thesis, Universität Karlsruhe (TH), 2009. Folie 45 17. Juni 2013

Nächste Termine Mittwoch, 19.6.2013 Montag, 24.6.2013 Folie 46 17. Juni 2013