420 likes | 615 Views
Monitoring Path Nearest Neighbor in Road Networks. Zaiben Chen et al. Presented by Lian Liu. INTRODUCTION. You’re traveling from s to t . Which gas station would you choose?. PROBLEM DEFINITION. Problem modeling Road networks a weighted undirected graph G(V, E)
E N D
Monitoring Path Nearest Neighbor in Road Networks Zaiben Chen et al. Presented by Lian Liu
INTRODUCTION • You’re traveling from s to t. Which gas station would you choose?
PROBLEM DEFINITION • Problem modeling • Road networks a weighted undirected graph G(V, E) • Sites a subset of nodes V’∈V, called objects
PROBLEM DEFINITION • k-Path Nearest Neighbor (k-PNN) • Input: s(starting node) and t (destination node) • Output: k objects that nearest to the shortest path between s and t
RELATED WORK • Dijkstra’s Shortest Path (bi-directional)
RELATED WORK • k-NN queries in Euclidean space • Distances between data points are measured by Euclidean distance metric • k-NN queries in road networks • Distances between data points are measured by network distance metric
RELATED WORK • In-Route Nearest Neighbor (IRNN) • Given shortest path (s, n2, n3, t), IRNN returns object B as 1st-PNN What’s the difference with our problem?
BASIC CONCEPTS • Distance metrics used in this paper • Euclidean distance: De(n1, n2) • Network distance: Dn(n1, n2) • Detour distance: Dd(n, p)
ALGORITHM • Task 1: Computing the shortest path between s and t, and find the k-PNN from the path (static) • searching phase • verification phase • Task 2: Monitoring k-PNN, no matter the user follows or deviates from the current shortest path (dynamic) • monitoring phase
ALGORITHM • Searching phase • Verification phase • Monitoring phase
SEARCHING PHASE • Searching phase: • Find the current shortest path SP(s, t) • Generate a set CS of candidate objects, which is a super set of the current k-PNN
SEARCHING PHASE • A brute-force solution: • Compute the shortest path SP(s, t) between s and t using Dijkstra’s algorithm • For each object o, compute it’s detour distance from SP(s, t), select the k objects with the smallest detour distances Problem: It’s too expensive! Do we have to compute the accurate detour distance?
SEARCHING PHASE • Upper bound of detour distance • UB(o, SP(s, t)) = min{c1, c2}
SEARCHING PHASE • Lower bound of detour distance • LB(o, SP(s, t))= (c1+c2-L)/2
SEARCHING PHASE • Alternately expand network in both directions. Once the two expansion trees meet, SP(s, t) is found • Whenever an expansion tree reach an object, update its detour distance upper/lower bound
SEARCHING PHASE • Keep on expanding, adding scanned objects into CS, until we can find an object o and an object set O={o1, o2, … ok} in CS, such that LB(o, SP(s, t))≥ max{UB(oi, SP(s, t))} • Return CS
ALGORITHM • Searching phase • Verification phase • Monitoring phase
VERIFICATION PHASE • Verification phase: • Compute accurate detour distance from SP(s, t) to all candidates in CS • Find the current k-PNN
VERIFICATION PHASE • Start Dijkstra’s network expansion from each candidate oi in CS • Once the expansion tree reaches SP(s, t), the detour distance Dd(oi, SP(s, t)) is found
VERIFICATION PHASE • Heuristic expansion: nodes with smaller detour distance lower bound are expanded with priority
ALGORITHM • Searching phase • Verification phase • Monitoring phase
MONITORING PHASE • Monitoring phase: • Dynamically refresh the current k-PNN when the user is traveling around • Case 1: the user follows the current shortest path • Case 2: the user deviates from the current shortest path
MONITORING PHASE • Following the shortest path • Key point: first we need to figure out some “important points”, at which we need to re-compute the k-PNN
MONITORING PHASE • Will the current k-PNN change before s’ passes through n2? When will it change? Update location of o2 d(o2)=|SP(o5, n5)|-|SP(o2, n2)|
MONITORING PHASE • Generally, oi’s update location can be computed by • d(oi)=|SP(oi+1, ni+1)|-|SP(oi, ni)| • However, sometimes we need to modify it, for example:
MONITORING PHASE • We actually maintain (k+1)-PNN in our algorithm • Always, we compute and store update points for all current k-PNN
MONITORING PHASE • When the user arrives at the update point of oi: • Re-compute detour distance of oi • Refresh the order of the current (k+1)-PNN • If the kth-PNN is not valid any longer • Re-compute the whole current (k+1)-PNN
MONITORING PHASE • Deviating from the shortest path • Key points: • When will the shortest path change? • Where are the update points? • Who will be the new candidates?
MONITORING PHASE • Split point: • |(s, f)|= ½(|SP(st, t)-|SP(s, t)|+|(s, st)|) We only focus on this interval
MONITORING PHASE • Two types of data:
MONITORING PHASE • For data object oi of type 1: • If oi is in the ithk-PNN • oi.updateLoc=pos(s’)+|(s’, oi)|-Dd((i-1)thPNN) • Otherwise • oi.updateLoc=pos(s’)+|(s’, oi)|-Dd(kthPNN)
MONITORING PHASE • For data object oi of type 2: • If oi is in the ithk-PNN • oi.updateLoc=pos(s’)+|(s’, st)|-Dd((i-1)thPNN) • Otherwise • oi.updateLoc=pos(s’)+|(s’, st)|-Dd(kthPNN)
MONITORING PHASE • Each time when we encounter an update point, we refresh the k-PNN
EXPERIMENTS • Testing platform • Java • Windows • Intel Core2 CPU (2.13GHZ) • 2GB memory
EXPERIMENTS • Data set
EXPERIMENTS • California road network
EXPERIMENTS • California road network
EXPERIMENTS • City of Oldenburg road network
EXPERIMENTS • City of Oldenburg road network
EXPERIMENTS • Performance of verification
SUMMARY • Problem: k-PNN • Find the static k-PNN • Dynamically refresh current k-PNN • Algorithm: • Searching phase • Verification phase • Monitoring phase • Experiments
Q & A • Thanks!