route planning
DESCRIPTION
Route Planning. Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing. Vehicle navigation systems. Main tasks: positioning : locating the vehicle using GPS and/or dead reckoning with distance and heading sensors - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/1.jpg)
Route PlanningVehicle navigation systems,
Dijkstra’s algorithm, bidirectional search, transit-node routing
![Page 2: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/2.jpg)
Vehicle navigation systems• Main tasks:
– positioning: locating the vehicle using GPS and/or dead reckoning with distance and heading sensors
– routing: determining a good route from a source to a destination
– guidance: providing visual and audio feedback on the route
![Page 3: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/3.jpg)
Positioning• GPS: works well, except in “urban
canyons”• Urban canyons can give gross
errors in position due to reflections from buildings
• Urban canyons can give loss of signal
• Especially problematic when driving out of parking garages
![Page 4: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/4.jpg)
Positioning• Dead reckoning: determine position from last known
position using distance and heading sensors (relative position)
• Use map matching: the shape of the route taken and where it matches on the map, to correct dead reckoning
![Page 5: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/5.jpg)
Guiding• Top view, perspective view, overview• Schematic information on exit lanes• Spoken directions
Largely an HCI issue
![Page 6: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/6.jpg)
Routing• Based on Dijkstra’s shortest path algorithm• Many improvements to deal with huge networks• Improvements use preprocessing
![Page 7: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/7.jpg)
Routing• Based on Dijkstra’s shortest path algorithm• Many improvements to deal with huge networks• Improvements use preprocessing
![Page 8: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/8.jpg)
Routing
Bidirectional search (from Bayreuth and from Erlangen)
• Based on Dijkstra’s shortest path algorithm• Many improvements to deal with huge networks• Improvements use preprocessing
![Page 9: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/9.jpg)
Routing
Bidirectional search (from Bayreuth and from Erlangen)
• Based on Dijkstra’s shortest path algorithm• Many improvements to deal with huge networks• Improvements use preprocessing
![Page 10: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/10.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
![Page 11: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/11.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
![Page 12: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/12.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
![Page 13: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/13.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
5
10
![Page 14: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/14.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
5
10
![Page 15: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/15.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
5
10
![Page 16: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/16.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
5
814
7
14
![Page 17: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/17.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
5
814
7
14
![Page 18: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/18.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
5
814
7
14
![Page 19: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/19.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
5
813
7
13
![Page 20: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/20.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
5
813
7
13
![Page 21: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/21.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
5
813
7
13
![Page 22: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/22.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
5
89
7
13
![Page 23: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/23.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
5
89
7
13
![Page 24: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/24.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
5
89
7
13
![Page 25: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/25.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
5
89
7
13
![Page 26: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/26.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
5
89
7
13
![Page 27: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/27.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
5
89
7
13
![Page 28: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/28.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
5
89
7
13
![Page 29: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/29.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a
graph with n nodes and m edges
1069
1
32
5
4
97
2
2
6
0
5
89
7
13
shortest path tree
![Page 30: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/30.jpg)
Routing• Dijkstra’s algorithm takes O(n + m log m) time for a graph
with n nodes and m edges– Every node is handled only once– Its outgoing edges are considered only then– Considering an edge may lower the cost of its destination node– Nodes are stored by distance in a Fibonacci heap (it allows for a
very efficient decrease-value operation)
• Road networks have m = O(n), so it takes O(n log n) time
![Page 31: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/31.jpg)
Routing• Very fast shortest path queries are needed in vehicle
navigation systems and by Google Maps• Idea: pre-compute the shortest path for every pair of
nodes and store it in a table
X much too much storage needed• Need other ways to answer shortest path queries faster
– Highway hierarchies– Transit-node routing
![Page 32: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/32.jpg)
Transit-Node Routing• For a real road network, there exists a relatively small
set of nodes, such that any shortest path of sufficient length will pass at least one of them
• For the Netherlands, every shortest path of at least 100 km will use a highway, so we can take all highway exits
![Page 33: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/33.jpg)
Highways and other major roads; every shortest path in the original road network of at least 60 km will use a highway or other major road
60 km
![Page 34: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/34.jpg)
Transit-Node Routing• This relatively small set of nodes is called the set of
transit nodes
• Furthermore, for every node, there are (typically) only few nodes that are the first transit nodes encountered when going far enough (access nodes)
• For the USA, the road network has 24 million nodes and 58 million edges
• Transit-node routing uses 10,000 transit nodes and for each node there are ~10 access nodes
![Page 35: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/35.jpg)
Transit-Node Routing• Store all distances between two transit nodes in a table• For every node, store the distance to its ~10 access
nodes in a table
• Use table look-up to determine shortest paths, if the distance between source and target is large enough– for the source and target, get the access nodes and distances– for every pair [access node of source, access node of target],
determine a candidate path length by 3 table look-ups
• If the distance is small, just run Dijkstra bidirectional
![Page 36: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/36.jpg)
![Page 37: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/37.jpg)
V : nodes of the input graphT : transit nodes chosen
transit nodes
transit nodes
nodes of Vi access nodes of i
transit nodetable
access nodetable/list
![Page 38: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/38.jpg)
Transit-Node Routing• Trade-off:
many transit nodes: fast query time, large storage requirements, high preprocessing time
few transit nodes: slower query time, smaller storage requirements, lower preprocessing time
• Reported (road network USA):query time: 5 – 63 sstorage: 21 – 244 bytes/nodepreprocessing: 59 – 1200 minutes
![Page 39: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/39.jpg)
Transit-Node Routing• Need (for preprocessing):
– a way to choose transit-nodes– a way to determine access nodes– a way to compute the transit node table and access node table
• Need (at query time):– a way to decide if a query is local ( use Dijkstra)
or not ( use table look-up)– a way to retrieve the shortest path itself
![Page 40: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/40.jpg)
Choosing transit nodes• Use grid-based
partition and use intersections of the network and the grid
![Page 41: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/41.jpg)
Choosing transit nodes• Use grid-based
partition and use intersections of the network and the grid
• Select nodes from Vinner based on whether they lie on some shortest path from a node in C to Vouter
C
inner
outer
![Page 42: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/42.jpg)
Choosing transit nodes• Consider every center square C• Use 5 x 5 squares to define Vinner
• Use 9 x 9 squares to define Vouter
• Consider all paths from some node in C to some node in Vouter
• All nodes of Vinner on such a path will go in the set of transit nodes (eventually united over all C)
• Run Dijkstra from every node in C until all nodes in Vouter are settled
![Page 43: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/43.jpg)
Choosing transit nodes• Given s and t, if they are more than 4 grid cells apart
(horizontally or vertically), their shortest path must contain a transit node
• This provides an easy test for locality of any query (later, during query time)
![Page 44: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/44.jpg)
Computing access nodes• For each transit node u, run Dijkstra until all shortest
paths from u pass another transit node• Every node v in the shortest path tree from u before
another transit node is reached gets u as one of its access nodes
u
vshortest path tree from u
![Page 45: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/45.jpg)
Computing the tables• The access node table is automatically computed when
the access nodes are determined• Distances between “near” transit nodes are also
computed transit node graph• Dijkstra on the transit node graph gives the transit node
table
![Page 46: Route Planning](https://reader034.vdocuments.mx/reader034/viewer/2022051002/56816092550346895dcfb5d0/html5/thumbnails/46.jpg)
Summary• Vehicle navigation systems rely on positioning, routing,
and guidance• Route planning relies on Dijkstra’s algorithm and
techniques to speed up queries, like preprocessing using the transit nodes idea