Trends: Spatio-temporal graphs
Introduction to Spatial Computing
Navigation Systems• Historical
Navigation is a core human activity for ages! Trade-routes, Routes for Armed-Forces
• Recent Consumer Platforms Devices: Phone Apps, In-vehicle, “GPS”, … WWW: Google Maps, MapQuest, …
• Services • Display map around current location• Compute the shortest route to a destination• Help drivers follow selected route
Background: Traditional Roadmaps
Source: Google Maps
Dinky town Roadmap Corresponding Digital Representation
Intersection between 5th Ave SE and 4th St
Intersection between 5th Ave SE and 5th St
5th Ave SE edge
Attributes of 5th Ave SE road segment between N4 and N7
N7 N4
US Road Network only few Gigabytes
Upcoming Temporally Detailed (TD) Roadmaps Contains typical travel-time under
traffic equilibrium conditions Per 5 minute speed/travel time values 100 million road segments in US Data size can reach items NAVTEQ’s highly compressed weekly speed
profile data
Source: ESRI and NAVTEQ
TD ROADMAP BASED ROUTING SERVICES
Traditional routing query “Find shortest path between UMN and Airport”
Additional features enabled by TD roadmaps At what departure time? Non-rush hour choice ≠ Rush hour choice Preference metric?
COMPARE TD ROADMAP WITH TRADITIONAL ROADMAP
Pilot study done by Microsoft in Beijing using 30,000 taxis
How much travel time can be saved using TD roadmaps ?
We can save on avg 20% in
travel time by considering the dynamic congestion patterns.
Jing Yuan, Yu Zheng, Chengyang Zhang, Wenlei Xie, Xing Xie, and Yan Huang, T-Drive: Driving Directions Based on Taxi Trajectories, in ACM SIGSPATIAL GIS 2010,
Best paper runner up
Challenges of TD Roadmap based Routing Services Challenge 1: Candidate routes should be evaluated from the
perspective of a traveler
Compare routes for 5:00pm departure• I-35W• Hiawatha Route
Legend: A-I-D: UMN-I35W-Airport A-H-D: UMN-Hiawatha-Airport
Digital Road Map
Path Cost from Traveler Pers.
Cost at 5:00pmSnapshot
A-I-D 27 mins 20 minsA-H-D 25 mins 25 mins
Candidate routes should be evaluated from the perspective of a travelers
Compare routes for 5:00pm departure• I-35W• Hiawatha Route
Legend: A-I-D: UMN-I35W-Airport A-H-D: UMN-Hiawatha-Airport
Digital Road Map
Path Cost from Traveler Pers.
5:00PM Snapshot
A-I-D 27 mins 20 minsA-H-D 25 mins 25 mins
Challenges of TD Roadmap based Routing Services
Candidate routes should be evaluated from the perspective of a travelers
Compare routes for 5:00pm departure• I-35W• Hiawatha Route
Legend: A-I-D: UMN-I35W-Airport A-H-D: UMN-Hiawatha-Airport
Digital Road Map
Path Cost from Traveler Pers.
5:00PM Snapshot
A-I-D 27 mins 20 minsA-H-D 25 mins 25 mins
Challenges of TD Roadmap based Routing Services
Candidate routes should be evaluated from the perspective of a travelers
Compare routes for 5:00pm departure• I-35W• Hiawatha Route
Legend: A-I-D: UMN-I35W-Airport A-H-D: UMN-Hiawatha-Airport
Digital Road Map
Path Cost from Traveler Pers.
5:00PM Snapshot
A-I-D 27 mins 20 mins
A-H-D 25 mins 25 mins
Challenges of TD Roadmap based Routing Services
Candidate routes should be evaluated from the perspective of a travelers
Compare routes for 5:00pm departure• I-35W• Hiawatha Route
Legend: A-I-D: UMN-I35W-Airport A-H-D: UMN-Hiawatha-Airport
Digital Road Map
Path Cost from Traveler Pers.
5:00PM Snapshot
A-I-D 27 mins 20 minsA-H-D 25 mins 25 mins
Challenges of TD Roadmap based Routing Services
Modelling Traveler’s Frame of Reference: Time Expanded Graphs
Modelling Traveler’s Frame of Reference: Time Aggregated Graphs
[2 2 2 1]
[1 1 2 2]
[1 1 2 1]
[3 1 1 1]
A D
C
B
Modelling Traveler’s Frame of Reference: Time Aggregated Graphs
[2 2 2 1]
[1 1 2 2]
[1 1 2 1]
[3 1 1 1]
A D
C
B
Arrival Time Transformati
on
T = 0 1 2 3 ….
[2 3 4 4]
[1 2 4 5]
[1 2 4 4]
[3 2 3 4]
A D
C
B+ + + +
Sample Query: All start-time Lagrangian Shortest Path (ALSP) Problem Input
A temporally detailed roadmap G = (V,E); V set of nodes, E set of edges A source, destination pair A discrete departure-time interval
Output A set of routes between source and destination. Each route is associated with a set of departure-time instants .
Objective Each route is shortest (as experienced by traveler) for its .
All start-time Lagrangian Shortest Path (ALSP) Problem
Query Input: Temporally Detailed Roadmap Source: UMN (Point A) Destination: MSP Airport (Point B) Departure-time: 7:30am -- 9:15am
Desired Output: I-35 W (7:30am--8:30am) Hiawatha Ave (8:45am--9:15am) Or a best departure-time and its
corresponding route
Time Preferred Route7:30am Via I-35W7:45am Via I-35W8:00am Via I-35W8:15am Via I-35W8:30am Via I-35W
8:45am Via Hiawatha Ave9:00am Via Hiawatha Ave9:15am Via Hiawatha Ave
Problem Instance
Source: Bing Maps
Challenges of a Naïve Approach
Naïve Approach Re-compute shortest paths for all times Performs redundant work, e.g. between 7:30– 8:30am
How can we reduce the redundant work? Can we skip some departure-times?
Can we Close nodes for multiple departure-times? Invalidates the assumptions of Dynamic Programming!
Source: Bing Maps
Concept of Critical-time-point based Approaches
Critical-time-point:Departure-times at which the ranking among candidate routes change e.g. 7:30am (trivially) and 8:45am.
Observation: Between any two critical-time-points ranking is stationary, i.e., dynamic programming is applicable.
Critical-Time-Point
Source: Bing Maps
Basic Computation Unit (one ALSP Iteration):Compute a shortest path for one departure-time Forecast a lower bound on next critical-time-
point
Implementation Sketch:Compute successive “Basic Computation Units” until the next lower bound forecasted is out of input departure-time interval
How to Compute Critical-time-points? (1/2)
Basic Framework of a Critical-time-point Approach: Step 1: Model the cost of candidates.
Each candidate path is associated with a cost-function. This cost function is put in the temporally-detailed priority
queue. Step 2: Enumerate candidates.
Use a expand and refine strategy (similar to Dijkstra’s)
How to Compute Critical-time-points? (2/2)
Temporally-Detailed Priority Queues
TraditionalPriority Queues
Temporally-Detailed Priority Queues
Set of Scalar Values Set of Time Series
8
12
3010
17 206
1418
9
3 4 1112
4 5 6 7
8 9 1516
Ordering: Increasing or decreasing of scalar values
Ordering: Based on values of at particular index
3 4 11124 5 6 78 9 1516
=1
689
101217….
Temporally-Detailed Priority Queues
TraditionalPriority Queues
Temporally-Detailed Priority Queues
Operations on elements: Extract Min(), Insert(), Decrease Key(, new value), etc.
Operations on elements: Extract-Dominant-TS(), Insert-TS(), Update-TS(, new value), Delete-TS()Forecast-End-of-Dominance-Time-interval()
89101217….
6 3 4 1112
4 5 6 78 9 1516
Forecast-End-of-Dominance-Time-Interval() Operation
3 4 1112
4 5 6 78 9 1516
Returns t=2
ExtractDTS() operation
Called before Extract-Dominant-TS() (or ExtractDTS()) Operation Returns 1+maximum time for the current Extract-Min holds its validity
4 5 6 78 9 1516
3 4 1112T= 0 1 2 3
Forecast-End-of-Dominance-Time-Interval operation(t_pr) (ForecastEDT() for short)
Proposition A: If set and then for
Key Properties:
Proposition A: All the ExtractDTS()s performed on the TD priority queue hold their validity (i.e. are min) for all time
points between and min{forecastEDT()s}
Step 1: Modeling Cost of Paths and Computing Critical-time-points
Journey departing from C at t=0,1,2.. Would reach D at t=3,4,5..
Path functions represent the arrival time at the end-node of path as function of departure-time at the start-node
Step 2: Enumerating Candidate paths (1/2)
Put Partial paths in a TDPQ with t_pr = 0
(1) Extract-Min (2) ForecastEDT() returns 2 (B closed) (3) Insert(S-B-C) and Insert(S-B-D)
Source: SDestination: DLambda = {0 ,1, 2, 3}
(1) ExtractMin (2) ForecastEDT() returns 2 (C closed) (3) Insert(S-B-C) and Insert(S-B-C-D)
Proposition A: We have shortest path from S to B for times t=0,1
Proposition A: We have shortest path from S to C for times t=0,1
Enumerating Candidate paths (2/2)Source: SDestination: DLambda = {0 ,1, 2, 3}
Continue until destination is not expanded. Maintain min of ForecastEDT()s
Using Proposition A we know the path to Destination is optimal for times between current-time and min of “ForecastEDT()s”
Restart exploration for time = min{ForecastEDT()}
Challenge of Non-FIFO behavior
Waiting can leading to quicker paths!!!
*Flight schedule between Minneapolis and Austin (TX)
Violates the no wait assumption of Dijkstra/A*
Handling Non-FIFO Behavior (Earliest Arrival Time Series Transformation)
Observation:
Earliest arrival time series is FIFO in nature.
Time aggregated Graph
Time aggregated Graph with Earliest arrival time series
Observation:
Earliest arrival time series is FIFO in nature.