1 / 42

Monitoring Path Nearest Neighbor in Road Networks

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)

lona
Download Presentation

Monitoring Path Nearest Neighbor in Road Networks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Monitoring Path Nearest Neighbor in Road Networks Zaiben Chen et al. Presented by Lian Liu

  2. INTRODUCTION • You’re traveling from s to t. Which gas station would you choose?

  3. PROBLEM DEFINITION • Problem modeling • Road networks  a weighted undirected graph G(V, E) • Sites  a subset of nodes V’∈V, called objects

  4. 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

  5. RELATED WORK • Dijkstra’s Shortest Path (bi-directional)

  6. 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

  7. 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?

  8. BASIC CONCEPTS • Distance metrics used in this paper • Euclidean distance: De(n1, n2) • Network distance: Dn(n1, n2) • Detour distance: Dd(n, p)

  9. 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

  10. ALGORITHM • Searching phase • Verification phase • Monitoring phase

  11. 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

  12. 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?

  13. SEARCHING PHASE • Upper bound of detour distance • UB(o, SP(s, t)) = min{c1, c2}

  14. SEARCHING PHASE • Lower bound of detour distance • LB(o, SP(s, t))= (c1+c2-L)/2

  15. 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

  16. 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

  17. ALGORITHM • Searching phase • Verification phase • Monitoring phase

  18. VERIFICATION PHASE • Verification phase: • Compute accurate detour distance from SP(s, t) to all candidates in CS • Find the current k-PNN

  19. 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

  20. VERIFICATION PHASE • Heuristic expansion: nodes with smaller detour distance lower bound are expanded with priority

  21. ALGORITHM • Searching phase • Verification phase • Monitoring phase

  22. 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

  23. 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

  24. 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)|

  25. 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:

  26. MONITORING PHASE • We actually maintain (k+1)-PNN in our algorithm • Always, we compute and store update points for all current k-PNN

  27. 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

  28. 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?

  29. MONITORING PHASE • Split point: • |(s, f)|= ½(|SP(st, t)-|SP(s, t)|+|(s, st)|) We only focus on this interval

  30. MONITORING PHASE • Two types of data:

  31. 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)

  32. 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)

  33. MONITORING PHASE • Each time when we encounter an update point, we refresh the k-PNN

  34. EXPERIMENTS • Testing platform • Java • Windows • Intel Core2 CPU (2.13GHZ) • 2GB memory

  35. EXPERIMENTS • Data set

  36. EXPERIMENTS • California road network

  37. EXPERIMENTS • California road network

  38. EXPERIMENTS • City of Oldenburg road network

  39. EXPERIMENTS • City of Oldenburg road network

  40. EXPERIMENTS • Performance of verification

  41. SUMMARY • Problem: k-PNN • Find the static k-PNN • Dynamically refresh current k-PNN • Algorithm: • Searching phase • Verification phase • Monitoring phase • Experiments

  42. Q & A • Thanks!

More Related