Download presentation
Presentation is loading. Please wait.
Published byRebecca Malone Modified over 9 years ago
1
Zaiben Chen et al. Presented by Lian Liu
2
You’re traveling from s to t. Which gas station would you choose?
3
Problem modeling Road networks a weighted undirected graph G(V, E) Sites a subset of nodes V’ ∈ V, called objects
4
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
Dijkstra’s Shortest Path (bi-directional)
6
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
In-Route Nearest Neighbor (IRNN) Given shortest path (s, n 2, n 3, t), IRNN returns object B as 1 st -PNN What’s the difference with our problem?
8
Distance metrics used in this paper Euclidean distance: D e (n 1, n 2 ) Network distance: D n (n 1, n 2 ) Detour distance: D d (n, p)
9
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
Searching phase Verification phase Monitoring phase
11
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
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
Upper bound of detour distance UB(o, SP(s, t)) = min{c 1, c 2 }
14
Lower bound of detour distance LB(o, SP(s, t))= (c 1 +c 2 -L)/2
15
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
Keep on expanding, adding scanned objects into CS, until we can find an object o and an object set O={o 1, o 2, … o k } in CS, such that LB(o, SP(s, t))≥ max{UB(o i, SP(s, t))} Return CS
17
Searching phase Verification phase Monitoring phase
18
Verification phase : Compute accurate detour distance from SP(s, t) to all candidates in CS Find the current k-PNN
19
Start Dijkstra’s network expansion from each candidate o i in CS Once the expansion tree reaches SP(s, t), the detour distance D d (o i, SP(s, t)) is found
20
Heuristic expansion: nodes with smaller detour distance lower bound are expanded with priority
21
Searching phase Verification phase Monitoring phase
22
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
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
Will the current k-PNN change before s’ passes through n 2 ? When will it change? d(o 2 )=|SP(o 5, n 5 )|-|SP(o 2, n 2 )| Update location of o 2
25
Generally, o i ’s update location can be computed by d(o i )=|SP(o i+1, n i+1 )|-|SP(o i, n i )| However, sometimes we need to modify it, for example:
26
We actually maintain (k+1)-PNN in our algorithm Always, we compute and store update points for all current k-PNN
27
When the user arrives at the update point of o i : Re-compute detour distance of oi Refresh the order of the current (k+1)-PNN If the k th -PNN is not valid any longer Re-compute the whole current (k+1)-PNN
28
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
Split point : |(s, f)|= ½(|SP(s t, t)-|SP(s, t)|+|(s, s t )|) We only focus on this interval
30
Two types of data:
31
For data object o i of type 1 : If o i is in the i th k-PNN o i.updateLoc=pos(s’)+|(s’, o i )|-D d ((i-1) th PNN) Otherwise o i.updateLoc=pos(s’)+|(s’, o i )|-D d (k th PNN)
32
For data object o i of type 2 : If o i is in the i th k-PNN o i.updateLoc=pos(s’)+|(s’, s t )|-D d ((i-1) th PNN) Otherwise o i.updateLoc=pos(s’)+|(s’, s t )|-D d (k th PNN)
33
Each time when we encounter an update point, we refresh the k-PNN
34
Testing platform Java Windows Intel Core2 CPU (2.13GHZ) 2GB memory
35
Data set
36
California road network
38
City of Oldenburg road network
40
Performance of verification
41
Problem : k-PNN Find the static k-PNN Dynamically refresh current k-PNN Algorithm : Searching phase Verification phase Monitoring phase Experiments
42
Thanks!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.