Click here to load reader

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

  • View
    216

  • Download
    0

Embed Size (px)

Text of Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search,...

  • Slide 1
  • Route Planning Vehicle navigation systems, Dijkstras algorithm, bidirectional search, transit-node routing
  • Slide 2
  • 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
  • Slide 3
  • 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
  • Slide 4
  • 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
  • Slide 5
  • Guiding Top view, perspective view, overview Schematic information on exit lanes Spoken directions Largely an HCI issue
  • Slide 6
  • Routing Based on Dijkstras shortest path algorithm Many improvements to deal with huge networks Improvements use preprocessing
  • Slide 7
  • Routing Based on Dijkstras shortest path algorithm Many improvements to deal with huge networks Improvements use preprocessing
  • Slide 8
  • Routing Bidirectional search (from Bayreuth and from Erlangen) Based on Dijkstras shortest path algorithm Many improvements to deal with huge networks Improvements use preprocessing
  • Slide 9
  • Routing Bidirectional search (from Bayreuth and from Erlangen) Based on Dijkstras shortest path algorithm Many improvements to deal with huge networks Improvements use preprocessing
  • Slide 10
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6
  • Slide 11
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0
  • Slide 12
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0
  • Slide 13
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0 5
  • Slide 14
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0 5
  • Slide 15
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0 5
  • Slide 16
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0 5 8 14 7
  • Slide 17
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0 5 8 14 7
  • Slide 18
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0 5 8 14 7
  • Slide 19
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0 5 8 13 7
  • Slide 20
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0 5 8 13 7
  • Slide 21
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0 5 8 13 7
  • Slide 22
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0 5 8 9 7 13
  • Slide 23
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0 5 8 9 7 13
  • Slide 24
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0 5 8 9 7 13
  • Slide 25
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0 5 8 9 7 13
  • Slide 26
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0 5 8 9 7 13
  • Slide 27
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0 5 8 9 7 13
  • Slide 28
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0 5 8 9 7 13
  • Slide 29
  • Routing Dijkstras algorithm takes O(n + m log m) time for a graph with n nodes and m edges 10 6 9 1 3 2 5 4 9 7 2 2 6 0 5 8 9 7 13 shortest path tree
  • Slide 30
  • Routing Dijkstras 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
  • Slide 31
  • 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
  • Slide 32
  • Highway Hierarchies Improvement for large road networks of a factor 1000 or more Based on the idea: if an edge e lies on a shortest path between s and t, but not close to s and not close to t, then it is generally important s t these edges seem generally important shortest path
  • Slide 33
  • 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
  • Slide 34
  • 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
  • Slide 35
  • 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
  • Slide 36
  • 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
  • Slide 37
  • Slide 38
  • V : nodes of the input graph T : transit nodes chosen transit nodes nodes of V i access nodes of i transit node table access node table/list
  • Slide 39
  • 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 s storage: 21 244 bytes/node preprocessing: 59 1200 minutes
  • Slide 40
  • 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
  • Slide 41
  • Choosing transit nodes Use grid-based partition and use intersections of the network and the grid
  • Slide 42
  • Choosing transit nodes Use grid-based partition and use intersections of the network and the grid Select nodes from V inner based on whether they lie on some shortest path from a node in C to V outer C inner outer
  • Slide 43
  • Choosing transit nodes Consider every center square C Use 5 x 5 squares to define V inner Use 9 x 9 squares to define V outer Consider all paths from some node in C to some node in V outer All nodes of V inner 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 V outer are settled
  • Slide 44
  • 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)
  • Slide 45
  • 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 v shortest path tree from u
  • Slide 46
  • 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
  • Slide 47
  • Summary Vehicle navigation systems rely on positioning, routing, and guidance Route planning relies on Dijkstras algorithm and techniques to speed up queries, like preprocessing using the transit nodes idea