46
Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

Route Planning

Vehicle navigation systems, Dijkstra’s algorithm, bidirectional

search, transit-node routing

Page 2: 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

– routing: determining a good route from a source to a destination

– guidance: providing visual and audio feedback on the route

Page 3: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

Guiding

• Top view, perspective view, overview• Schematic information on exit lanes• Spoken directions

Largely an HCI issue

Page 6: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

Routing• Based on Dijkstra’s shortest path algorithm• Many improvements to deal with huge networks• Improvements use preprocessing

Page 7: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

Routing• Based on Dijkstra’s shortest path algorithm• Many improvements to deal with huge networks• Improvements use preprocessing

Page 8: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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

8

14

7

14

Page 17: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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

8

14

7

14

Page 18: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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

8

14

7

14

Page 19: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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

8

13

7

13

Page 20: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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

8

13

7

13

Page 21: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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

8

13

7

13

Page 22: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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

8

9

7

13

Page 23: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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

8

9

7

13

Page 24: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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

8

9

7

13

Page 25: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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

8

9

7

13

Page 26: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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

8

9

7

13

Page 27: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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

8

9

7

13

Page 28: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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

8

9

7

13

Page 29: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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

8

9

7

13

shortest path tree

Page 30: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing
Page 37: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

V : nodes of the input graphT : transit nodes chosen

transit nodes

transit n

od

es

no

des o

f Vi access nodes of i

transit nodetable

access nodetable/list

Page 38: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

Choosing transit nodes

• Use grid-based partition and use intersections of the network and the grid

Page 41: Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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 Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing

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