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

Route Planning

  • Upload
    saxton

  • View
    54

  • Download
    0

Embed Size (px)

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 Presentation

Citation preview

Page 1: Route Planning

Route PlanningVehicle navigation systems,

Dijkstra’s algorithm, bidirectional search, transit-node routing

Page 2: Route Planning

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

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

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

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

Largely an HCI issue

Page 6: Route Planning

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

Page 7: Route Planning

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

Page 8: Route Planning

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
Page 37: Route Planning

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

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

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

Choosing transit nodes• Use grid-based

partition and use intersections of the network and the grid

Page 41: Route Planning

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

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

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

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

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

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