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

Ähnliche Dokumente
Schnelle und genaue Routenplanung

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

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

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

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

Fortgeschrittene Routenplanung. Transportnetzen. Advanced Route Planning in Transportation Networks

9. Übung Algorithmen I

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

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

Algorithmen II Vorlesung am

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

Algorithmen für Routenplanung

Kombinatorische Optimierung

4. Kreis- und Wegeprobleme Abstände in Graphen

Highway Hierarchies. Kristian Dannowski, Matthias Hoeschel

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

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

Uberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale Roboter 1

16. All Pairs Shortest Path (ASPS)

Vorlesung 4 BETWEENNESS CENTRALITY

Lokalisierung von inneren und äußeren Grenzen in Sensornetzwerken

Maximale s t-flüsse in Planaren Graphen

Maximale s t-flüsse in Planaren Graphen

Algorithmische Methoden zur Netzwerkanalyse

Algorithmen II Vorlesung am

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

Vorlesung : Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

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

Einführung in Heuristische Suche

MASTER THESIS. Ontology-Based Route Queries with Time Windows. Tobias Faaß. 17. Juni 2015

Vorlesung Programmieren

9 Türme von Hanoi Bewege Stapel von links nach rechts. In jedem Zug darf genau ein Ring bewegt werden. Es darf nie ein größerer auf einen kleine

Routing Algorithmen. Begriffe, Definitionen

MB2-ALG, SS15 Seite 1 Hauptklausur, geschrieben am

Algorithmische Bioinformatik 1

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

PSE: Programmabha ngigkeitsgraphen

Algorithmen für Routenplanung

Informatik I WS 07/08 Tutorium 24

Polygontriangulierung

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

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

Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Query Transformation based on XSLT

Einführung in die Informatik 1

Christian Schulz und Johannes Singler

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Fortgeschrittene Netzwerk- und Graph-Algorithmen

1 2 3 Bewege Stapel von links nach rechts. In jedem Zug darf genau ein Ring bewegt werden. Es darf nie ein größerer auf einen kleineren Ring gelegt we

Definition. Gnutella. Gnutella. Kriterien für P2P-Netzwerke. Gnutella = +

Übung zu Drahtlose Kommunikation. 9. Übung

Hauptdiplomklausur Informatik März 2002: Internet Protokolle

Datenstrukturen & Algorithmen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Theoretische Grundlagen der Informatik

ADS: Algorithmen und Datenstrukturen 2

Softwaretechnik 1 Tutorium

RO-Tutorien 3 / 6 / 12

Grundbegriffe der Informatik Tutorium 2

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

Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:

Dienstkonzept und Routing-Algorithmen für Mehrpunktkommunikation (Multicast) Prof. B. Plattner ETH Zürich

Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9

Randomisierte Algorithmen 2. Erste Beispiele

Ausgewählte Kapitel eingebetteter Systeme

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

Informatik B von Adrian Neumann

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

Transaction Validation for XML Documents based on XPath

Optimization techniques for large-scale traceroute measurements

Programmieren lernen mit Groovy Rekursion Rekursion und Iteration

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

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108

3. Musterlösung. Problem 1: Boruvka MST

Grundlagen verteilter Systeme

SolarWinds Engineer s Toolset

Das Briefträgerproblem

Algorithmen und Datenstrukturen

Drafting behind Akamai

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Theoretische Grundlagen der Informatik

Kombinatorische Optimierung

Lookup Performanz von Verteilten Hashtabellen

Kapitel 12: Schnelles Bestimmen der Frequent Itemsets

ODBC-Treiber Programmübersicht

Datenstrukturen & Algorithmen

Algorithmen und Datenstrukturen 2

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Programmieren in natürlicher Sprache: Alice-Kontrollstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

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

Tutorübung zur Vorlesung Grundlagen Rechnernetze und Verteilte Systeme Übungsblatt 7 (3. Juni 7. Juni 2013)

Routing im Internet Wie findet ein IP Paket den Weg zum Zielrechner?

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

Beispielbild. Georouting. Jakob Pfender Institut für Informatik

Transkript:

Algorithmen für Routenplanung 8. Sitzung, Sommersemester 2012 Thomas Pajor 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

Letztes Mal Contraction Hierarchies Hub-Labeling level 5 2 1 3 5 4 1 3 2 3 7 4 4 2 5 1 6

access node s t distances between transit nodes access node

Beobachtung: wenn man weit weg fährt, fährt man immer an bestimmten Punkten vorbei hier: von Karlsruhe aus, an drei relevanten Stellen Karlsruhe nach... Kopenhagen

Beobachtung: wenn man weit weg fährt, fährt man immer an bestimmten Punkten vorbei hier: von Karlsruhe aus, an drei relevanten Stellen Karlsruhe nach... Berlin

Beobachtung: wenn man weit weg fährt, fährt man immer an bestimmten Punkten vorbei hier: von Karlsruhe aus, an drei relevanten Stellen Karlsruhe nach... Wien

Beobachtung: wenn man weit weg fährt, fährt man immer an bestimmten Punkten vorbei hier: von Karlsruhe aus, an drei relevanten Stellen Karlsruhe nach... München

Beobachtung: wenn man weit weg fährt, fährt man immer an bestimmten Punkten vorbei hier: von Karlsruhe aus, an drei relevanten Stellen Karlsruhe nach... Rom

Beobachtung: wenn man weit weg fährt, fährt man immer an bestimmten Punkten vorbei hier: von Karlsruhe aus, an drei relevanten Stellen Karlsruhe nach... Paris

Beobachtung: wenn man weit weg fährt, fährt man immer an bestimmten Punkten vorbei hier: von Karlsruhe aus, an drei relevanten Stellen Karlsruhe nach... London

Beobachtung: wenn man weit weg fährt, fährt man immer an bestimmten Punkten vorbei hier: von Karlsruhe aus, an drei relevanten Stellen Karlsruhe nach... Brüssel

Beobachtung: wenn man weit weg fährt, fährt man immer an bestimmten Punkten vorbei hier: von Karlsruhe aus, an drei relevanten Stellen Karlsruhe nach... Kopenhagen

Beobachtung: wenn man weit weg fährt, fährt man immer an bestimmten Punkten vorbei hier: von Karlsruhe aus, an drei relevanten Stellen Karlsruhe nach... Berlin

Beobachtung: wenn man weit weg fährt, fährt man immer an bestimmten Punkten vorbei hier: von Karlsruhe aus, an drei relevanten Stellen Karlsruhe nach... Wien

Beobachtung: wenn man weit weg fährt, fährt man immer an bestimmten Punkten vorbei hier: von Karlsruhe aus, an drei relevanten Stellen Karlsruhe nach... München

Beobachtung: wenn man weit weg fährt, fährt man immer an bestimmten Punkten vorbei hier: von Karlsruhe aus, an drei relevanten Stellen Karlsruhe nach... Rom

Beobachtung: wenn man weit weg fährt, fährt man immer an bestimmten Punkten vorbei hier: von Karlsruhe aus, an drei relevanten Stellen Karlsruhe nach... Paris

Beobachtung: wenn man weit weg fährt, fährt man immer an bestimmten Punkten vorbei hier: von Karlsruhe aus, an drei relevanten Stellen Karlsruhe nach... London

Beobachtung: wenn man weit weg fährt, fährt man immer an bestimmten Punkten vorbei hier: von Karlsruhe aus, an drei relevanten Stellen Karlsruhe nach... Brüssel

Ziel: reduziere Anfragen auf Table-Lookups

Ziel: reduziere Anfragen auf Table-Lookups Idee: identifiziere wichtige Knoten vollständige Distanztabellen zwischen diesen Knoten

Ziel: reduziere Anfragen auf Table-Lookups Idee: identifiziere wichtige Knoten vollständige Distanztabellen zwischen diesen Knoten Probleme: Speicherverbrauch nahe Anfragen?

Gegeben: L + 1 Mengen von transit nodes V =: T 0 T 1 T L

Gegeben: L + 1 Mengen von transit nodes V =: T 0 T 1 T L Betrachte für jeden Level l mit 0 l L: access mapping A l : V 2 T l mapt Knoten auf access nodes

Gegeben: L + 1 Mengen von transit nodes V =: T 0 T 1 T L Betrachte für jeden Level l mit 0 l L: access mapping A l : V 2 T l mapt Knoten auf access nodes locality filter L l : V V {true, false} gibt an, ob d(s, t) nicht mit Transit-Knoten der Level l berechnet werden kann

Gegeben: L + 1 Mengen von transit nodes V =: T 0 T 1 T L Betrachte für jeden Level l mit 0 l L: access mapping A l : V 2 T l mapt Knoten auf access nodes locality filter L l : V V {true, false} gibt an, ob d(s, t) nicht mit Transit-Knoten der Level l berechnet werden kann Distanztabelle D l : T l T l R + 0 { } Abstände zwischen Transit-Knoten auf Level l bis auf solche, die mit höheren Leveln berechnet werden können

Gegeben: L + 1 Mengen von transit nodes V =: T 0 T 1 T L Betrachte für jeden Level l mit 0 l L: access mapping A l : V 2 T l mapt Knoten auf access nodes locality filter L l : V V {true, false} gibt an, ob d(s, t) nicht mit Transit-Knoten der Level l berechnet werden kann Distanztabelle D l : T l T l R + 0 { } Abstände zwischen Transit-Knoten auf Level l bis auf solche, die mit höheren Leveln berechnet werden können d l : V V R + 0 { } gibt Abstand zwischen zwei Knoten auf einem Level an, also Abstand zu access nodes und zwischen Transit-Knoten auf Level l

Gegeben: L + 1 Mengen von transit nodes V =: T 0 T 1 T L Betrachte für jeden Level l mit 0 l L: access mapping A l : V 2 T l mapt Knoten auf access nodes locality filter L l : V V {true, false} gibt an, ob d(s, t) nicht mit Transit-Knoten der Level l berechnet werden kann Distanztabelle D l : T l T l R + 0 { } Abstände zwischen Transit-Knoten auf Level l bis auf solche, die mit höheren Leveln berechnet werden können d l : V V R + 0 { } gibt Abstand zwischen zwei Knoten auf einem Level an, also Abstand zu access nodes und zwischen Transit-Knoten auf Level l d l : V V R + 0 { } gibt Abstand an, der mit Hilfe aller Level l berechnet werden kann

Eigenschaften Bemerkungen: In der Distanztabelle werden nur relevante Informationen abgelegt { dl (s, t) wenn d D l (s, t) := l (s, t) < d l+1 (s, t) sonst d l gibt die Distanz in dem entsprechenden Level an d l (s, t) := min u A (s) v A (t) d l gibt die Distanz aller Level l an {d(s, u) + D l (u, v) + d(v, t)} d l (s, t) := min k l d k(s, t)

TNR Anfragen TNR-Query(s,t) 1 d = 2 for l = L down to 0 do 3 d := min{d, d l (s, t)} 4 if L l (s, t) then break 5 return d Bemerkungen: speichere in D l nur nicht- -Einträge (Hash-Tabelle) benutze CH (oder bel. andere Technik) für Level 0 Anfragen

Access-Nodes berechnen Vorgehen: lokale Suche, bis Transit-Knoten des Levels alle Zweige abdecken s

Access-Nodes berechnen Vorgehen: lokale Suche, bis Transit-Knoten des Levels alle Zweige abdecken s Beschleunigung: prune an Transit-Knoten (breche Zweig bei Transit-Knoten ab) dünne dann später mit Hilfe der Distanz-Tabelle wieder aus

Runterpropagieren von ANs: Idee: Access-Nodes können propagiert werden A l (u) := A l (v) v A l 1 (u) kann auf mehrere Level verallgemeinert werden können mit Distanztabellen wieder ausgedünnt werden u

Distanztabellen Vorgehen: benutze Many-to-Many Ansatz (später mehr Details dazu!) Problem: wir speichern d l (u, v) in D l (u, v) nur, wenn d l (u, v) < d l+1 (u, v) gilt Anzahl Transit Knoten auf niederigem Level hoch ineffizient Lösungen: gehe top-down vor, dann ist d l+1 (u, v) verfügbar breche Suchen an hochleveligen Transit-Knoten ab

Locality Filter Vorgehen: speicher für jeden Knoten den (euklidischen) Abstand zum am weitesten entfernten lokalen Knoten ab, also K (u) und K (u) für jeden Level, also K l (u), K l (u) geht während Vorberechnung locality filter schlägt zu, wenn s t < K k (s) + K k (t) k l u t s dadurch manchmal falscher Alarm

2 Varianten HNR level economical TNR level HNR level generous TNR level 6 3 4 3 3 L1 2 2 2 1 0 L2 economical: speicher keine transit knoten für level 1, benutze CH oberster locality filter auf level der transit Knoten 1 1 0 0 L2 L1 generous: mehr transit nodes locality filter auf unterstem Level höherer Platzverbrauch, schneller 1 0

Pfadentpackung analog zu Contraction Hierarchies interpretiere jeden Eintrag als Shortcut speichere für jeden Eintrag den Pfad, den er repräsentiert rekursiv

Vergleich zu CH Gemeinsamkeiten: Level-Einteilung Pfadentpackung ähnlich TNR basiert auf CH Unterschiede: weniger level Suche durch Table-Lookups ersetzt Locality Filter nötig Shortcuts Tabellen-Einträgen

Experimente Eingaben: Straßennetzwerke Europa: 18 Mio. Knoten, 42 Mio. Kanten USA: 22 Mio. Knoten, 56 Mio. Kanten Evaluation: Vorberechnung in Minuten und zusätzliche Bytes pro Knoten durchschnittlicher Suchraum (#abgearbeitete Knoten) und Suchzeiten (in ms) von 1 000 000 Zufallsanfragen

TNR: Vorberechnung level 3 level 2 overhead time variant T 3 A 3 T 2 D 2 A 2 [B/node] [h] Europe eco 9 355 11.4 151 450 0.15% 5.3 99 0:25 gen 9 458 11.3 293 209 0.14% 4.4 226 1:15 USA (Tiger) eco 6 449 6.8 218 153 0.20% 5.2 121 0:38 gen 10 261 6.1 449 945 0.08% 4.5 257 1:25

TNR: Anfragen level 2 [%] level 3 [%] (level 1 [%]) metric variant wrong cont d wrong cont d query time Europe eco 0.57 3.36 0.0051 0.1364 11.0µs time 0.0016 0.0180 gen 0.25 1.55 4.3µs (0.00019) (0.0180) USA (Tiger) eco 0.37 2.44 0.0045 0.1130 9.5µs time 0.0010 0.0124 gen 0.10 0.87 3.3µs (0.00009) (0.0124)

Übersicht: bisherige Techniken Vorberechnung Anfrage Zeit Platz Such Zeit [h:m] [byte/n] raum [ms] Beschl. Dijkstra 0:00 0.0 9 114 385 5 591.6000 1 ALT-16 1:25 128.0 74 669 53.6000 104 Arc-Flags (128) 17:08 10.0 2 764 0.8000 6 988 MLD-3 < 0:01 1.7 6 074 0.9100 6 143 CH 0:02-3.0 284 0.0900 62 128 eco TNR 0:25 120.0 N/A 0.0110 ca. 500 000 gen TNR 1:15 247.0 N/A 0.0043 ca. 1 300 000 HL 6:12 967.1 N/A 0.0002 ca. 22 000 000

Dijkstra Rank Query Time [µs] 10 100 5 50 economical generous 10 100 5 50 2 5 2 6 2 7 2 8 2 9 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 Dijkstra Rank

Zusammenfassung Transit-Node Routing ersetzt Suche (fast) komplett durch Table-Lookups 3 Zutaten: Distanztabelle Access-Nodes Locality-Filter Suchzeit von unter 5 µs

Ende Literatur (Transit-Node Routing): Peter Sanders and Dominik Schultes: Robust, Almost Constant Time Shortest-Path Queries in Road Networks In: The Shortest Path Problem: Ninth DIMACS Implementation Challenge, 2009 Dominik Schultes: Route Planning in Road Networks Ph.D. Thesis, Universität Karlsruhe (TH), 2009.

Nächste Termine Mittwoch, 30.5.2012 (Thomas) Montag, 4.6.2012 (Daniel) Mittwoch, 6.6.2012 (Daniel)