Route Planning in Road Networks

Similar documents
Dynamic Highway-Node Routing

Engineering Route Planning Algorithms

Accurate High-Performance Route Planning

Accurate High-Performance Route Planning

Highway Hierarchies Star

Engineering Route Planning Algorithms

Highway Hierarchies Hasten Exact Shortest Path Queries

Combining Hierarchical and Goal-Directed Speed-Up Techniques for Dijkstra s Algorithm

Experimental Study on Speed-Up Techniques for Timetable Information Systems

2) Multi-Criteria 1) Contraction Hierarchies 3) for Ride Sharing

SHARC: Fast and Robust Unidirectional Routing

Route Planning. Reach ArcFlags Transit Nodes Contraction Hierarchies Hub-based labelling. Tabulation Dijkstra Bidirectional A* Landmarks

Combining Hierarchical and Goal-Directed Speed-Up Techniques for Dijkstra s Algorithm

Computing Many-to-Many Shortest Paths Using Highway Hierarchies

Highway Hierarchies (Dominik Schultes) Presented by: Andre Rodriguez

Landmark-Based Routing in Dynamic Graphs

Point-to-Point Shortest Path Algorithms with Preprocessing

Contraction Hierarchies: Faster and Simpler Hierarchical Routing in Road Networks

Robust, Almost Constant Time Shortest-Path Queries in Road Networks

Reach for A : an Efficient Point-to-Point Shortest Path Algorithm

Engineering Highway Hierarchies

Dynamic Arc-Flags in Road Networks

Algorithm Engineering for Route Planning: An Update International Symposium on Algorithms and Computation 2011 Dorothea Wagner December 6, 2011

Time-Dependent Contraction Hierarchies

Highway Dimension and Provably Efficient Shortest Paths Algorithms

Using Multi-Level Graphs for Timetable Information. Frank Schulz, Dorothea Wagner, and Christos Zaroliagis

Time-Dependent Contraction Hierarchies and Approximation

R. Kalpana #1 P. Thambidurai *2. Puducherry, India. Karaikal, Puducherry, India

Experimental Study on Speed-Up Techniques for Timetable Information Systems

Car or Public Transport Two Worlds

Transit Nodes Lower Bounds and Refined Construction

Combining Speed-up Techniques for Shortest-Path Computations

Engineering shortest-path algorithms for dynamic networks

Highway Hierarchies Star

Mobile Route Planning

Advanced Route Planning in Transportation Networks

Shortest Paths: Basics. Algorithms and Networks 2016/2017 Johan M. M. van Rooij Hans L. Bodlaender

arxiv: v1 [cs.ds] 5 Oct 2010

Parallel Time-Dependent Contraction Hierarchies

Shortest Paths: Algorithms for standard variants. Algorithms and Networks 2017/2018 Johan M. M. van Rooij Hans L. Bodlaender

Graph Indexing of Road Networks for Shortest Path Queries with Label Restrictions

Customizable Route Planning

Engineering Multi-Level Overlay Graphs for Shortest-Path Queries

Route Planning in Road Networks with Turn Costs

Reach for A : Efficient Point-to-Point Shortest Path Algorithms

Route Planning with Flexible Objective Functions

Customizable Route Planning in Road Networks

Bidirectional search and Goal-directed Dijkstra

An Extended Shortest Path Problem with Switch Cost Between Arcs

Shortest-Path Indices: Establishing a Methodology for Shortest-Path Problems

I/O Efficieny of Highway Hierarchies

Multi-Hop Ride Sharing

Hierarchical Hub Labelings for Shortest Paths

Contraction Hierarchies briefly explained

Shortest Path Searching for Road Network using A* Algorithm

Collaboration with: Dieter Pfoser, Computer Technology Institute, Athens, Greece Peter Wagner, German Aerospace Center, Berlin, Germany

Customizable Contraction Hierarchies

Fast and Compact Oracles for Approximate Distances in Planar Graphs

Engineering Time-Expanded Graphs for Faster Timetable Information

A Goal-Directed Shortest Path Algorithm Using Precomputed Cluster Distances

Parallel Hierarchies for Solving Single Source Shortest Path Problem

Engineering Time-Expanded Graphs for Faster Timetable Information

Alternative Routes in Road Networks

Performance Analysis of Parallel Speedup Techniques for Shortest Path Queries in Networks of Random and Planar Types

Reach for A : Efficient Point-to-Point Shortest Path Algorithms

Speed-Up Techniques for Shortest-Path Computations

Bidirectional search and Goal-directed Dijkstra

Advanced Route Planning and Related Topics Freiburg Update

Understanding Subgoal Graphs by Augmenting Contraction Hierarchies

Engineering Multi-Level Overlay Graphs for Shortest-Path Queries

CS 512: Comments on Graph Search 16:198:512 Instructor: Wes Cowan

Robot Motion Planning

A Study of Different Parallel Implementations of Single Source Shortest Path Algorithms

Single-Pass List Partitioning

Studienarbeit Parallel Highway-Node Routing

Chapter 4. Greedy Algorithms. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

(notes modified from Noah Snavely, Spring 2009) Memory allocation

Hierarchical routing in traffic networks

Weighted Graph Algorithms Presented by Jason Yuan

Improving Jump Point Search

Feasibility Study: Subgoal Graphs on State Lattices

Partitioning Graphs to Speed Up Dijkstra s Algorithm

CSE373: Data Structures & Algorithms Lecture 17: Minimum Spanning Trees. Dan Grossman Fall 2013

PHAST: Hardware-Accelerated Shortest Path Trees

Route Planning in Transportation Networks

An Enhancement of Customizable Point-of-Interest Queries in Road Networks

Exploring Graph Partitioning for Shortest Path Queries on Road Networks

GRAPHS Lecture 19 CS2110 Spring 2013

Integrated mounting with flip screen Hands-free calling via Bluetooth Voice control LIVE Services: 1 year free

Hub Label Compression

Algorithms and Data Structures

Shortest path problems

GRAPHS Lecture 17 CS2110 Spring 2014

Network Analyst Creating Network Datasets. Jay Sandhu Frank Kish

Algorithmen II. Peter Sanders, Thomas Worsch, Simon Gog. Übungen: Demian Hespe, Yaroslav Akhremtsev

2.3 Optimal paths. Optimal (shortest or longest) paths have a wide range of applications:

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/27/17

Computer Networks. Routing

Forward Search in Contraction Hierarchies

Advanced Database Systems

Transcription:

Sanders/Schultes: Route Planning 1 Route Planning in Road Networks simple, flexible, efficient Peter Sanders Dominik Schultes Institut für Theoretische Informatik Algorithmik II Universität Karlsruhe (TH) http://algo2.iti.uka.de/schultes/hwy/ Göteborg, December 20, 2007

Sanders/Schultes: Route Planning 2 Task: Route Planning In a given road network, determine an optimal route from a given source to a given target? Applications: route planning systems in the internet, car navigation systems, traffic simulation, logistics optimisation

Sanders/Schultes: Route Planning 3 DIJKSTRA s Algorithm the classic solution [1959] O(nlogn+m) (with Fibonacci heaps) not practicable Dijkstra s t for large graphs (e.g. European road network: 18 000 000 nodes) bidirectional Dijkstra s t improves the running time, but still too slow

Sanders/Schultes: Route Planning 4 Speedup Techniques that are faster than Dijkstra s algorithm require additional data (e.g., node coordinates) AND / OR not always available! preprocess the graph and generate auxiliary data (e.g., signposts ) AND / OR can take a lot of time; assume many queries; assume static graph or require update operations! exploit special properties of the network (e.g., planar, hierarchical) fail when the given graph has not the desired properties! not a solution for general graphs, but can be very efficient for many practically relevant cases

Sanders/Schultes: Route Planning 5 Speedup Techniques that are faster than Dijkstra s algorithm require additional data (e.g., node coordinates) AND / OR not always available! preprocess the graph and generate auxiliary data (e.g., signposts ) AND / OR can take a lot of time; assume many queries; assume static graph or require update operations! exploit special properties of the network (e.g., planar, hierarchical) fail when the given graph has not the desired properties! not a solution for general graphs, but can be very efficient for many practically relevant cases

Sanders/Schultes: Route Planning 6 Goals fast queries accurate results scale invariant / support all types of queries fast preprocessing / deal with large networks low space consumption fast update operations simple

Sanders/Schultes: Route Planning 7 Overview HH Star goal directed [DIMACS 06] Transit Node Routing very fast queries [DIMACS 06, ALENEX 07, Science 07] Highway Hierarchies foundation [ESA 05, ESA 06] Hwy Node Routing allow edge weight changes [WEA 07] Many to Many compute distance tables [ALENEX 07]

Sanders/Schultes: Route Planning 8 Highway Hierarchies Construction: iteratively alternate between [ESA 05, ESA 06] removal of low degree nodes removal of edges that only appear on shortest paths close to source or target yields a hierarchy of highway networks in a sense, classify roads / junctions by importance

Sanders/Schultes: Route Planning 9 Highway Hierarchies foundation for our other methods directly allows point-to-point queries 13 min preprocessing 0.61 ms to determine the path length (0.80 ms to determine a complete path description) reasonable space consumption (48 bytes/node) can be reduced to 17 bytes/node s t

Sanders/Schultes: Route Planning 10 Highway Hierarchies Star joint work with D. Delling, D. Wagner [DIMACS Challenge 06] combination of highway hierarchies with goal-directed search slightly reduced query times (0.49 ms) more effective for approximate queries or when a distance metric instead of a travel time metric is used

Sanders/Schultes: Route Planning 11 Many-to-Many Shortest Paths joint work with S. Knopp, F. Schulz, D. Wagner [ALENEX 07] Given: graph G = (V,E) set of source nodes S V set of target nodes T V Task: compute S T distance table containing the shortest path distances e.g., 10 000 10 000 table in 23 seconds

Sanders/Schultes: Route Planning 12 Many-to-Many Shortest Paths Possible Application: Ride Sharing Distance Table 2 Distance Table 1

Sanders/Schultes: Route Planning 13 Transit-Node Routing [with H. Bast and S. Funke] s t

Sanders/Schultes: Route Planning 14 Example: X X Karlsruhe Copenhagen

Sanders/Schultes: Route Planning 15 Example: X X Karlsruhe Berlin

Sanders/Schultes: Route Planning 16 Example: X X Karlsruhe Vienna

Sanders/Schultes: Route Planning 17 Example: X X Karlsruhe Munich

Sanders/Schultes: Route Planning 18 Example: X X Karlsruhe Rome

Sanders/Schultes: Route Planning 19 Example: X X Karlsruhe Paris

Sanders/Schultes: Route Planning 20 Example: X X Karlsruhe London

Sanders/Schultes: Route Planning 21 Example: X X Karlsruhe Brussels

Sanders/Schultes: Route Planning 22 Example: X X Karlsruhe Copenhagen

Sanders/Schultes: Route Planning 23 Example: X X Karlsruhe Berlin

Sanders/Schultes: Route Planning 24 Example: X X Karlsruhe Vienna

Sanders/Schultes: Route Planning 25 Example: X X Karlsruhe Munich

Sanders/Schultes: Route Planning 26 Example: X X Karlsruhe Rome

Sanders/Schultes: Route Planning 27 Example: X X Karlsruhe Paris

Sanders/Schultes: Route Planning 28 Example: X X Karlsruhe London

Sanders/Schultes: Route Planning 29 Example: X X Karlsruhe Brussels

Sanders/Schultes: Route Planning 30 First Observation For long-distance travel: leave current location via one of only a few important traffic junctions, called access points ( we can afford to store all access points for each node) [in Europe: about 10 access points per node on average]

Sanders/Schultes: Route Planning 31 Example: X X Karlsruhe Berlin

Sanders/Schultes: Route Planning 32 Example: X X Karlsruhe Berlin

Sanders/Schultes: Route Planning 33 Example: X X Karlsruhe Berlin

Sanders/Schultes: Route Planning 34 Second Observation Each access point is relevant for several nodes. union of the access points of all nodes is small, called transit-node set ( we can afford to store the distances between all transit node pairs) [in Europe: about 10 000 transit nodes]

Sanders/Schultes: Route Planning 35 Transit-Node Routing Preprocessing: identify transit-node sett V compute complete T T distance table for each node: identify its access points (mapping A : V 2 T ), store the distances Query (source s and target t given): compute d top (s,t) := min{d(s,u)+d(u,v)+d(v,t) : u A(s),v A(t)}

Sanders/Schultes: Route Planning 36 Transit-Node Routing Locality Filter: local cases must be filtered ( special treatment) L : V V {true,false} L(s,t) implies d(s,t) = d top (s,t)

Sanders/Schultes: Route Planning 37 Example

Sanders/Schultes: Route Planning 38 Experimental Results [DIMACS Challenge 06, ALENEX 07, Science 07] joint work with H. Bast, S. Funke, D. Matijevic very fast queries (down to 4 µs, > 1 000 000 times faster than DIJKSTRA) more preprocessing time (1:15 h) and space (247 bytes/node) needed winner of the 9th DIMACS Implementation Challenge 2006 Scientific American 50 Award 2007

Sanders/Schultes: Route Planning 39 Open Questions How to determine the transit nodes? How to determine the access points efficiently? How to determine the locality filter? How to handle local queries?

Sanders/Schultes: Route Planning 40 Open Questions How to determine the transit nodes? How to determine the access points efficiently? How to determine the locality filter? How to handle local queries? Answer: Use other route planning techniques!

Sanders/Schultes: Route Planning 41 Highway-Node Routing [SS 07 ]

Sanders/Schultes: Route Planning 42 Outline 1. basic concepts: overlay graphs, covering nodes 2. lightweight, efficient static approach 3. dynamic version

Sanders/Schultes: Route Planning 43 1. Basic Concepts

Sanders/Schultes: Route Planning 44 Overlay Graph: Definition [Holzer, Schulz, Wagner, Weihe, Zaroliagis 2000 2007] graph G = (V,E) is given select node subset S V

Sanders/Schultes: Route Planning 45 Overlay Graph: Definition [Holzer, Schulz, Wagner, Weihe, Zaroliagis 2000 2007] graph G = (V,E) is given select node subset S V overlay graph G := (S,E ) determine edge set E s.t. shortest path distances are preserved

Sanders/Schultes: Route Planning 46 Minimal Overlay Graph [Holzer, Schulz, Wagner, Weihe, Zaroliagis 2000 2007] graph G = (V,E) is given select node subset S V minimal overlay graph G := (S,E ) where E := {(s,t) S S no inner node of the shortest s-t-path belongs to S}

Sanders/Schultes: Route Planning 47 Covering Nodes Definitions: covered branch: contains a node from S covered tree: all branches covered covering nodes: on each branch, the node u S closest to the root s s

Sanders/Schultes: Route Planning 48 Query: Intuition bidirectional perform search in G till search trees are covered by nodes in S t s

Sanders/Schultes: Route Planning 49 Query: Intuition bidirectional perform search in G till search trees are covered by nodes in S continue search only in G t s

Sanders/Schultes: Route Planning 50 Overlay Graph: Construction for each node u S perform a local search from u in G determine the covering nodes add an edge (u,v) to E for each covering node v v u v

Sanders/Schultes: Route Planning 51 Covering Nodes Conservative Approach: stop searching in G when all branches are covered big city long distance ferry s can be very inefficient

Sanders/Schultes: Route Planning 52 Covering Nodes Aggressive Approach: do not continue the search in G on covered branches s u v fast road slow road can be very inefficient

Sanders/Schultes: Route Planning 53 Covering Nodes Compromise: introduce parameter p do not continue the search in G on branches that already contain p nodes from S in addition: stop when all branches are covered p = 1 aggressive p = conservative works very well in practice

Sanders/Schultes: Route Planning 54 Reminder: Highway Hierarchies previous static route-planning approach [SS05 06] determines a hierarchical representation of nodes and edges

Sanders/Schultes: Route Planning 55 2. Static Highway-Node Routing G s 2 t 2 G Level 2 s 1 t 1 Level 1 s t Level 0

Sanders/Schultes: Route Planning 56 Static Highway-Node Routing extend ideas from multi-level overlay graphs [HolzerSchulzWagnerWeiheZaroliagis00 07] highway hierarchies [SS05 06] transit node routing [BastFunkeMatijevicSS06 07] use highway hierarchies to classify nodes by importance i.e., select node sets S 1 S 2 S 3... S L (crucial distinction from previous separator-based approach) construct multi-level overlay graph G 0 = G = (V,E),G 1 = (S 1,E 1 ),G 2 = (S 2,E 2 ),...,G L = (S L,E L ) (just iteratively construct overlay graphs)

Sanders/Schultes: Route Planning 57 Static Highway-Node Routing extend ideas from multi-level overlay graphs [HolzerSchulzWagnerWeiheZaroliagis00 07] highway hierarchies [SS05 06] transit node routing [BastFunkeMatijevicSS06 07] use highway hierarchies to classify nodes by importance i.e., select node sets S 1 S 2 S 3... S L 13 min (crucial distinction from previous separator-based approach) construct multi-level overlay graph 2 min G 0 = G = (V,E),G 1 = (S 1,E 1 ),G 2 = (S 2,E 2 ),...,G L = (S L,E L ) (just iteratively construct overlay graphs) (experiments with a European road network with 18 million nodes)

Sanders/Schultes: Route Planning 58 Query: Aggressive Variant node level l(u) := max{l u S l } ( forward search graph G := V, {(u,v) (u,v) S }) L i=l(u) E i ( backward search graphg := V, {(u,v) (v,u) S }) L i=l(u) E i perform one plain Dijkstra search in G and one in G G s 2 t 2 G Level 2 s 1 t 1 Level 1 s t Level 0

Sanders/Schultes: Route Planning 59 Proof of Correctness Level 2 Level 1 s s 1 s 2 t 2 t 1 t Level 0 d 0 (s,t) shortest path from s to t in G = G 0

Sanders/Schultes: Route Planning 60 Proof of Correctness Level 2 s s 1 s 2 t 2 t 1 d 1 (s 1,t 1 ) Level 1 s 1 s 2 t 2 t 1 t Level 0 d 0 (s 1,t 1 ) overlay graph G 1 preserves distance from s 1 S 1 to t 1 S 1

Sanders/Schultes: Route Planning 61 Proof of Correctness s s 2 t 2 d 2 (s 2,t 2 ) s 1 s 2 t 2 t 1 d 1 (s 2,t 2 ) Level 2 Level 1 s 1 s 2 t 2 t 1 t Level 0 overlay graph G 2 preserves distance from s 2 S 2 to t 2 S 2

Sanders/Schultes: Route Planning 62 Proof of Correctness G s 2 t 2 G Level 2 s 1 t 1 Level 1 s t Level 0 ( G := V, {(u,v) (u,v) S }) L i=l(u) E i ( G := V, {(u,v) (v,u) S }) L i=l(u) E i

Sanders/Schultes: Route Planning 63 Stall-on-Demand a node v can wake an already settled node u u can stall v i.e., search is not continued from v u s v fast road (if δ(u)+w(u,v) < δ(v)) slow road stalling can propagate to adjacent nodes does not invalidate correctness (only suboptimal paths are stalled)

Karlsruhe Bertinoro NO Stall-on-Demand search space size: 31 756

Karlsruhe Bertinoro Stall-on-Demand search space size: 1 179

Sanders/Schultes: Route Planning 66 Stall-on-Demand const NodeID index = isreached(searchid, v); if (edge.isdirected(1-dir) && index) { const PQData& data = pqdata(searchid, index); EdgeWeight vkey = data.stalled()? data.stallkey() : pqkey(searchid,index); if (vkey + edge.weight() < parentdist) { pqdata(searchid, parent.index).stallkey(vkey + edge.weight()); queue< pair<nodeid, EdgeWeight> > _stallqueue; _stallqueue.push(pair<nodeid,edgeweight>(parent.nodeid,vkey+edge.weight())); while (! _stallqueue.empty()) { u = _stallqueue.front().first; key = _stallqueue.front().second; _stallqueue.pop(); for (EdgeID e = _graph->firstedge(u); e < _graph->lastedge(u); e++) { const Edge& edge = _graph->edge(e); if (! edge.isdirected(searchid)) continue; NodeID index = isreached(searchid, edge.target()); if (index) { const EdgeWeight newkey = key + edge.weight(); if (newkey < pqkey(searchid, index)) { PQData& data = pqdata(searchid, index); if (! data.stalled()) { data.stallkey(newkey); _stallqueue.push(pair<nodeid,edgeweight>(edge.target(), newkey)); } } } } } return; } }

Example: Göteborg Karlsruhe Level 0 Level 1 Level 2 Level 3 Level 4 Level 5 Level 6 Level 7 Level 8

Example: Göteborg Karlsruhe Level 0 Level 1 Level 2 Level 3 Level 4 Level 5 Level 6 Level 7 Level 8

Example: Göteborg Karlsruhe Level 0 Level 1 Level 2 Level 3 Level 4 Level 5 Level 6 Level 7 Level 8

Example: Göteborg Karlsruhe Level 0 Level 1 Level 2 Level 3 Level 4 Level 5 Level 6 Level 7 Level 8

Example: Göteborg Karlsruhe Level 0 Level 1 Level 2 Level 3 Level 4 Level 5 Level 6 Level 7 Level 8

Example: Göteborg Karlsruhe Level 0 Level 1 Level 2 Level 3 Level 4 Level 5 Level 6 Level 7 Level 8

Example: Göteborg Karlsruhe Level 0 Level 1 Level 2 Level 3 Level 4 Level 5 Level 6 Level 7 Level 8

Example: Göteborg Karlsruhe Level 0 Level 1 Level 2 Level 3 Level 4 Level 5 Level 6 Level 7 Level 8

Sanders/Schultes: Route Planning 75 Local Queries Query Time [ms] 0 1 0 1 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

Sanders/Schultes: Route Planning 76 Per-Instance Worst-Case Guarantee # s-t-pairs 10 14 10 12 10 10 10 8 10 6 10 4 100 Europe 0 500 1000 1500 2000 Search Space Size max = 2 148 nodes

Sanders/Schultes: Route Planning 77 Memory Consumption / Query Time different trade-offs between memory consumption and query time for example: 9.5 bytes per node overhead 0.89 ms store complete multi-level overlay graph 0.7 bytes per node overhead 1.44 ms store only forward and backward search graphg andg ( G andg are independent of s and t) numbers refer to the Western European road network with 18 million nodes

Sanders/Schultes: Route Planning 78 3. Dynamic Highway-Node Routing

Sanders/Schultes: Route Planning 79 Dynamic Scenarios change entire cost function (e.g., use different speed profile) change a few edge weights (e.g., due to a traffic jam)

Sanders/Schultes: Route Planning 80 Constancy of Structure Assumption: structure of road network does not change (no new roads, road removal = set weight to ) not a significant restriction classification of nodes by importance might be slightly perturbed, but not completely changed (e.g., a sports car and a truck both prefer motorways) performance of our approach relies on that (not the correctness)

Sanders/Schultes: Route Planning 81 Dynamic Highway-Node Routing change entire cost function keep the node sets S 1 S 2 S 3... recompute the overlay graphs speed profile default fast car slow car slow truck distance constr. [min] 1:40 1:41 1:39 1:36 3:56 query [ms] 1.17 1.20 1.28 1.50 35.62 #settled nodes 1 414 1 444 1 507 1 667 7 057

Sanders/Schultes: Route Planning 82 Dynamic Highway-Node Routing change a few edge weights server scenario: if something changes, update the preprocessed data structures answer many subsequent queries very fast mobile scenario: if something changes, it does not pay to update the data structures perform single prudent query that takes changed situation into account

Sanders/Schultes: Route Planning 83 Dynamic Highway-Node Routing change a few edge weights, server scenario keep the node sets S 1 S 2 S 3... recompute only possibly affected parts of the overlay graphs the computation of the level-l overlay graph consists of S l local searches to determine the respective covering nodes if the initial local search from v S l has not touched a now modified edge (u,x), that local search need not be repeated we manage sets A l u = {v S l v s level-l preprocessing might be affected when an edge (u,x) changes}

Sanders/Schultes: Route Planning 84 Dynamic Highway-Node Routing change a few edge weights, server scenario Update Time [ms] 0.1 1 10 100 add traffic jam cancel traffic jam block road 0.1 1 10 100 any motorway national regional urban Road Type

Sanders/Schultes: Route Planning 85 Dynamic Highway-Node Routing change a few edge weights, mobile scenario 1. keep the node sets S 1 S 2 S 3... 2. keep the overlay graphs 3. C := all changed edges 4. use the sets A l u (considering edges in C ) to determine for each node v a reliable level r(v) 5. during a query, at node v do not use edges that have been created in some level > r(v) instead, downgrade the search to level r(v) (forward search only)

Sanders/Schultes: Route Planning 86 Dynamic Highway-Node Routing change a few edge weights, mobile scenario G s 2 t 2 G Level 2 s 1 s 2 x t 2 t 1 Level 1 s s 1 s 2 x t 2 t 1 t Level 0 reliable levels: r(x) = 0, r(s 2 ) = r(t 2 ) = 1

Sanders/Schultes: Route Planning 87 Level 0 Level 1 Level 2 Level 3 Level 4 Level 5 Level 6 Level 7

Sanders/Schultes: Route Planning 88 Dynamic Highway-Node Routing change a few edge weights, mobile scenario iterative variant (provided that only edge weight increases allowed) 1. keep everything (as before) 2. C := /0 3. use the sets A l u (considering edges in C ) to determine for each node v a reliable level r(v) (as before) 4. prudent query (as before) 5. if shortest path P does not contain a changed edge, we are done 6. otherwise: add changed edges on P to C, repeat from 3.

Sanders/Schultes: Route Planning 89 Dynamic Highway-Node Routing change a few edge weights, mobile scenario single pass iterative change set affected query time query time #iterations (motorway edges) queries [ms] [ms] avg max 1 0.4 % 2.3 1.5 1.0 2 10 5.8 % 8.5 1.7 1.1 3 100 40.0 % 47.1 3.6 1.4 5 1 000 83.7 % 246.3 25.3 2.7 9

Sanders/Schultes: Route Planning 90 Unidirectional Queries 1. keep everything (as before) 2. C := { some edge (t,x) } 3. use the sets A l u (considering edges in C ) to determine for each node v a reliable level r(v) (as before) 4. prudent query (as before)

Sanders/Schultes: Route Planning 91 Unidirectional Queries G s 2 t 2 Level 2 s 1 s 2 t 2 t 1 Level 1 s s 1 s 2 t 2 t 1 t Level 0 reliable levels: r(t 1 ) = 0, r(t 2 ) = 1

Sanders/Schultes: Route Planning 92 Highway-Node Routing: Summary efficient static approach fast preprocessing / fast queries 15 min / 0.9 ms outstandingly low memory requirements 0.7 bytes/node 1.4 ms can handle practically relevant dynamic scenarios change entire cost function typically < 2 minutes change a few edge weights update data structures 2 40 ms per changed edge OR iteratively bypass traffic jams e.g., 3.6 ms in case of 100 traffic jams numbers refer to the Western European road network with 18 million nodes and to our 2.0 GHz AMD Opteron machine

Sanders/Schultes: Route Planning 93 Work in Progress find simpler / better ways to determine the node sets S 1 S 2 S 3... parallelise the preprocessing implementation for a mobile device

Sanders/Schultes: Route Planning 94 Future Work handle a massive amount of updates deal with time-dependent scenarios (where edge weights depend on the time of day) allow multi-criteria optimisations

Sanders/Schultes: Route Planning 95 Commercial Usage no patents (applies to everything in this talk) several publications (http://algo2.iti.uka.de/schultes/hwy/) you can implement everything without asking for permission (but please tell us)

Sanders/Schultes: Route Planning 96 Industrial Cooperations we go for non-exclusive cooperations, various types come into question, e.g.: University Company informal ideas requirements, data contract implementation money contract man-power joint project man-power