Monitoring Path Nearest Neighbor in Road Networks

42
Zaiben Chen et al. Zaiben Chen et al. Presented by Lian Liu Presented by Lian Liu

description

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) - PowerPoint PPT Presentation

Transcript of Monitoring Path Nearest Neighbor in Road Networks

Page 1: Monitoring Path Nearest Neighbor in Road Networks

Zaiben Chen et al.Zaiben Chen et al.

Presented by Lian LiuPresented by Lian Liu

Page 2: Monitoring Path Nearest Neighbor in Road Networks

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

Page 3: Monitoring Path Nearest Neighbor in Road Networks

Problem modelingRoad networks a weighted undirected graph G(V, E)Sites a subset of nodes V’∈V, called objects

Page 4: Monitoring Path Nearest Neighbor in Road Networks

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

Page 5: Monitoring Path Nearest Neighbor in Road Networks

Dijkstra’s Shortest Path (bi-directional)

Page 6: Monitoring Path Nearest Neighbor in Road Networks

k-NN queries in Euclidean spaceDistances between data points are measured by Euclidean distance metric

k-NN queries in road networksDistances between data points are measured by network distance metric

Page 7: Monitoring Path Nearest Neighbor in Road Networks

In-Route Nearest Neighbor (IRNN)Given shortest path (s, n2, n3, t), IRNN returns object B as 1st-PNNWhat’s the

difference with our problem?

Page 8: Monitoring Path Nearest Neighbor in Road Networks

Distance metrics used in this paperEuclidean distance: De(n1, n2)

Network distance: Dn(n1, n2)

Detour distance: Dd(n, p)

Page 9: Monitoring Path Nearest Neighbor in Road Networks

Task 1: Computing the shortest path between s and t, and find the k-PNN from the path (static)searching phaseverification phase

Task 2: Monitoring k-PNN, no matter the user follows or deviates from the current shortest path (dynamic)monitoring phase

Page 10: Monitoring Path Nearest Neighbor in Road Networks

Searching phaseVerification phaseMonitoring phase

Page 11: Monitoring Path Nearest Neighbor in Road Networks

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

Page 12: Monitoring Path Nearest Neighbor in Road Networks

A brute-force solution:Compute the shortest path SP(s, t) between s and t using Dijkstra’s algorithmFor 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?

Page 13: Monitoring Path Nearest Neighbor in Road Networks

Upper bound of detour distanceUB(o, SP(s, t)) = min{c1, c2}

Page 14: Monitoring Path Nearest Neighbor in Road Networks

Lower bound of detour distanceLB(o, SP(s, t))= (c1+c2-L)/2

Page 15: Monitoring Path Nearest Neighbor in Road Networks

Alternately expand network in both directions. Once the two expansion trees meet, SP(s, t) is foundWhenever an expansion tree reach an object, update its detour distance upper/lower bound

Page 16: Monitoring Path Nearest Neighbor in Road Networks

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

Page 17: Monitoring Path Nearest Neighbor in Road Networks

Searching phaseVerification phaseMonitoring phase

Page 18: Monitoring Path Nearest Neighbor in Road Networks

Verification phase:Compute accurate detour distance from SP(s, t) to all candidates in CSFind the current k-PNN

Page 19: Monitoring Path Nearest Neighbor in Road Networks

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

Page 20: Monitoring Path Nearest Neighbor in Road Networks

Heuristic expansion: nodes with smaller detour distance lower bound are expanded with priority

Page 21: Monitoring Path Nearest Neighbor in Road Networks

Searching phaseVerification phaseMonitoring phase

Page 22: Monitoring Path Nearest Neighbor in Road Networks

Monitoring phase:Dynamically refresh the current k-PNN when the user is traveling around

Case 1: the user follows the current shortest pathCase 2: the user deviates from the current shortest path

Page 23: Monitoring Path Nearest Neighbor in Road Networks

Following the shortest pathKey point: first we need to figure out some “important points”, at which we need to re-compute the k-PNN

Page 24: Monitoring Path Nearest Neighbor in Road Networks

Will the current k-PNN change before s’ passes through n2? When will it change?

d(o2)=|SP(o5, n5)|-|SP(o2, n2)|

Update location of o2

Page 25: Monitoring Path Nearest Neighbor in Road Networks

Generally, oi’s update location can be computed byd(oi)=|SP(oi+1, ni+1)|-|SP(oi, ni)|

However, sometimes we need to modify it, for example:

Page 26: Monitoring Path Nearest Neighbor in Road Networks

We actually maintain (k+1)-PNN in our algorithmAlways, we compute and store update points for all current k-PNN

Page 27: Monitoring Path Nearest Neighbor in Road Networks

When the user arrives at the update point of oi:

Re-compute detour distance of oiRefresh the order of the current (k+1)-PNNIf the kth-PNN is not valid any longer

Re-compute the whole current (k+1)-PNN

Page 28: Monitoring Path Nearest Neighbor in Road Networks

Deviating from the shortest pathKey points:

When will the shortest path change?Where are the update points?Who will be the new candidates?

Page 29: Monitoring Path Nearest Neighbor in Road Networks

Split point:|(s, f)|= ½(|SP(st, t)-|SP(s, t)|+|(s, st)|)

We only focus on this interval

Page 30: Monitoring Path Nearest Neighbor in Road Networks

Two types of data:

Page 31: Monitoring Path Nearest Neighbor in Road Networks

For data object oi of type 1:

If oi is in the ith k-PNNoi.updateLoc=pos(s’)+|(s’, oi)|-Dd((i-1)thPNN)

Otherwiseoi.updateLoc=pos(s’)+|(s’, oi)|-Dd(kthPNN)

Page 32: Monitoring Path Nearest Neighbor in Road Networks

For data object oi of type 2:

If oi is in the ith k-PNNoi.updateLoc=pos(s’)+|(s’, st)|-Dd((i-1)thPNN)

Otherwiseoi.updateLoc=pos(s’)+|(s’, st)|-Dd(kthPNN)

Page 33: Monitoring Path Nearest Neighbor in Road Networks

Each time when we encounter an update point, we refresh the k-PNN

Page 34: Monitoring Path Nearest Neighbor in Road Networks

Testing platformJavaWindowsIntel Core2 CPU (2.13GHZ)2GB memory

Page 35: Monitoring Path Nearest Neighbor in Road Networks

Data set

Page 36: Monitoring Path Nearest Neighbor in Road Networks

California road network

Page 37: Monitoring Path Nearest Neighbor in Road Networks

California road network

Page 38: Monitoring Path Nearest Neighbor in Road Networks

City of Oldenburg road network

Page 39: Monitoring Path Nearest Neighbor in Road Networks

City of Oldenburg road network

Page 40: Monitoring Path Nearest Neighbor in Road Networks

Performance of verification

Page 41: Monitoring Path Nearest Neighbor in Road Networks

Problem: k-PNNFind the static k-PNNDynamically refresh current k-PNN

Algorithm:Searching phaseVerification phaseMonitoring phase

Experiments

Page 42: Monitoring Path Nearest Neighbor in Road Networks

Thanks!