Title: Stefan Edelkamp (University of Dortmund, Germany)
1Geometric Travel Planning
- Stefan Edelkamp (University of Dortmund, Germany)
- Shahid Jabbar (University of Freiburg, Germany)
- Thomas Willhalm (Universtiy of Karlsruhe, Germany)
2The 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.
3The 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
4Data Collection
What about the cost of collecting the data ?
We say .
You only need some Bananas.
5Data Collection
6Data format
- ltlongitudegt, ltlatitudegt, ltdategt, lttimegt
- 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
7Not everything that glitters is Gold.Filtering
Rounding
- Kalman Filter
- GPS Information Speed-o-meter reading as the
inertial information gt removes the outliers - Douglas-Peuker Line Simplification Algorithm
- Simplifies a polyline by removing the waving
affect. - Remove all the points that are more than T
distance away from the straight line between the
extreme points
8Geometric Rounding Douglas-Peuckers algorithm
resultsusing Hersberger and Snoeyink variant
points T10-7 10-6 10-5 10-4 10-3
1,277 766 558 243 77 22
1,706 1,540 1,162 433 117 25
2,365 2,083 1,394 376 28 7
50,000 48,432 42,218 17,853 4,385 1,185
9Lets sweeeeep Graph Construction
- 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
- Bentley - Ottmann Line Segment Intersection
Algorithm.
10Where 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 ?
11Where am I ?
- Sounds good .. But how to find that nearest place
?
- Voronoi Diagram to the rescue!!!
12Node localizationResults
points queries Construc-tion Time Searching Time (sec) Naive Searching Time (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 gt10,000
13My floppy is too small how can I carry this
file ?Graph Compression
14My floppy is too small how can I carry this
file ?Graph Compression (contd)
15My floppy is too small how can I carry this
file ?Graph Compression
- Problem
- The original layout is destroyed
- gt
- 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.
16My floppy is too small how can I carry this
file ?Graph Compression (contd) Algorithm
17My 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
18I have to reach the Cinema ASAP .. What to do
?Search
- Dijkstra Single-Source shortest path.
- A - Goal directed Dijkstra
19I have to reach the Cinema ASAP .. What to do
?Search (results)
Points Sweep Time (sec) SearchTime (sec) Expansions
Dijkstra 50,000 11.13 0.27 44,009
A 50,000 11.13 0.20 18,775
20I 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
21Accelerating SearchBounding-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
1
1
1
2
9,24
22Accelerating SearchBounding-Box pruning
- In Dijkstra
- u ? DeleteMin(PQ)
- forall v \in adjacent_edges(u)
- If t \in BB(u,v)
- .....
- .....
- Endif
- endfor
23Accelerating SearchBounding-Box pruningResults
of 200 queries
Nodes Time Expansions Time Expansions
199 0.34 6,596 0.60 19,595
4,391 8.11 65,726 12.88 217,430
24GPS-ROUTE Architecture
25Summary
- 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