Geometric Travel Planning Stefan Edelkamp (University of Dortmund, Germany) Shahid Jabbar (University of Freiburg, Germany) Thomas Willhalm (Universtiy of Karlsruhe, Germany) Geometric Travel Planning 1 The big question .. What are we doing here ? The Problemo Digital maps available in the market are very expensive. Most of those maps do not allow updates. Not possible to have timed queries. The travel time can change drastically during different kinds of days like, workdays and holidays … Can even change during different times of a day like, from 8 to 9 AM as compared to 10 to 11 PM. Geometric Travel Planning 2 The big question .. What are we doing here ? The Solution Why not people make their own maps that they can query and update ? But how ? How to collect the data ? How to process that data ? Global Positioning System (GPS) Receiver + Computational Geometry Geometric Travel Planning 3 Data Collection What about the cost of collecting the data ? We say …. You only need some Bananas. Geometric Travel Planning 4 Data Collection Geometric Travel Planning 5 Data format <longitude>, <latitude>, <date>, <time> 48.0070783, 7.8189867, 20030409, 100156 48.0071067, 7.8190150, 20030409, 100158 48.0071850, 7.8191400, 20030409, 100200 48.0071650, 7.8191817, 20030409, 100202 48.0071433, 7.8191867, 20030409, 100204 48.0071383, 7.8191883, 20030409, 100206 48.0071333, 7.8191917, 20030409, 100208 48.0071317, 7.8191917, 20030409, 100212 Geometric Travel Planning 6 Not everything that glitters is Gold. Filtering + Rounding Kalman Filter GPS Information + Speed-o-meter reading as the inertial information => removes the outliers Douglas-Peuker Line Simplification Algorithm Simplifies a polyline by removing the waving affect. Remove all the points that are more than Θ distance away from the straight line between the extreme points Geometric Travel Planning 7 Geometric Rounding Douglas-Peucker’s algorithm results using Hersberger and Snoeyink variant #points Θ=10-7 10-6 10-5 10-4 10-3 1,277 766 558 243 77 22 1,706 2,365 1,540 2,083 1,162 1,394 433 376 117 28 25 7 50,000 48,432 42,218 17,853 4,385 1,185 Geometric Travel Planning 8 Lets sweeeeep … Graph Construction •We have multiple traces. •We need to convert them into a graph to be able to apply different graph algorithms e.g. shortest path searching •Seems very simple, just convert: Point Vertex Segment Edge Some of them might be intersecting Road crossings!!! •Bentley - Ottmann Line Segment Intersection Algorithm. Geometric Travel Planning 9 Where am I ? I am at hotel building and I want to go to the Cinema. Pity!!! I have no existing trace that pass through the hotel building. What to do ? Hmmmm …interesting problem How about going to the nearest place that is in my existing traces ? Geometric Travel Planning 10 Where am I ? Sounds good .. But how to find that nearest place ? Voronoi Diagram to the rescue!!! Geometric Travel Planning 11 Node localization Results # points Naive Searching ConstrucSearching # queries Time tion Time Time (sec) (sec) 1,277 1,277 0.10 0.30 12.60 1,706 1,706 0.24 0.54 24.29 2,365 2,365 0.33 1.14 43.3 50,000 50,000 13.73 14.26 >10,000 Geometric Travel Planning 12 My floppy is too small … how can I carry this file ? Graph Compression Geometric Travel Planning 13 My floppy is too small … how can I carry this file ? Graph Compression (contd…) Geometric Travel Planning 14 My floppy is too small … how can I carry this file ? Graph Compression Problem: The original layout is destroyed => Restricted to perform the search only on intersection points + start/end points of traces Shortest path only in terms of intersection points + start/end points of traces. Solution: A compression algorithm that can retain the original layout of the graph also. Geometric Travel Planning 15 My floppy is too small … how can I carry this file ? Graph Compression (contd…) Algorithm Hide the original edges Delete the new edge Geometric Travel Planning 16 My floppy is too small … how can I carry this file ? Graph Compression (contd…) Results of Graph Compression # Nodes # Compressed Nodes Time (sec) 1,473 199 0.01 1,777 74 0.02 2,481 130 0.03 54,267 4,391 0.59 Geometric Travel Planning 17 I have to reach the Cinema ASAP .. What to do ? Search Dijkstra – Single-Source shortest path. A* - Goal directed Dijkstra Geometric Travel Planning 18 I have to reach the Cinema ASAP .. What to do ? Search (results) Search Sweep #Points Time Expansions Time (sec) (sec) Dijkstra 50,000 A* 50,000 Geometric Travel Planning 11.13 0.27 44,009 11.13 0.20 18,775 19 I have to reach Cinema ASAP .. What to do ? Search (results) Number of queries is much more than the updates. How about pre-computing some information ? How about running All-pairs shortest path algorithm and saving all the paths: Nope … O(n²) space Geometric Travel Planning 20 Accelerating Search Bounding-Box pruning With every edge, save a bounding box that contains at least the nodes that are reachable from the source node, on a shortest path using that edge. 1 1 1 1 1 _/8 1 t 1 1 1 1 1 1 1 _/2 1 _/2 2 _/2 _/2 s 2 1 1 1 9,24 Geometric Travel Planning 21 Accelerating Search Bounding-Box pruning In Dijkstra u DeleteMin(PQ) forall v \in adjacent_edges(u) If t \in BB(u,v) ..... ..... Endif endfor Geometric Travel Planning 22 Accelerating Search Bounding-Box pruning Results of 200 queries #Nodes Time + Expansions + 199 0.34 6,596 0.60 19,595 4,391 8.11 65,726 12.88 217,430 Geometric Travel Planning Time Expansions – – 23 GPS-ROUTE Architecture Geometric Travel Planning 24 Summary Presented Map generation from GPS traces. Geometric-, Graph- and AI-Algorithms Running GPS Route Planning System Available Visualisation with Vega Future: Dynamic Updates Handling of large data sets Geometric Travel Planning 25