Efficient Method for Maximizing Bichromatic Reverse Nearest Neighbor
Efficient Method for Maximizing Bichromatic Reverse Nearest Neighbor
description
Transcript of Efficient Method for Maximizing Bichromatic Reverse Nearest Neighbor
1
Efficient Method for Maximizing Bichromatic Reverse Nearest Neighbor
Raymond Chi-Wing Wong (Hong Kong University of Science and Technology)
M. Tamer Ozsu (University of Waterloo)Philip S. Yu (University of Illinois at Chicago)
Ada Wai-Chee Fu (Chinese University of Hong Kong)Lian Liu (Hong Kong University of Science and Technology)
Presented by Raymond Chi-Wing WongPresented by Raymond Chi-Wing Wong
2
Outline
1. Introduction Related work – Bichromatic Reverse
Nearest Neighbor
2. Problem - MaxBRNN3. Algorithm - MaxOverlap 4. Empirical Study5. Conclusion
3
1. Introduction
Bichromatic Reverse Nearest Neighbor (BRNN or RNN) Given
P and O are two sets of points in the same data space
Problem Given a point pP, a BRNN query finds all the
points oO whose nearest neighbor (NN) in P are p.
4
1. Introduction NN: Nearest neighborRNN: Reverse nearest neighbor
NN in P = p1
P = {p1, p2}
O = {o1, o2, o3 , o4, o5}
Convenience stores
Customers
p1
p2
o1
o2
o3
o4
o5
NN in P = p1
NN in P = p2
NN in P = p2
NN in P = p2
RNN = {o1, o2}
RNN = {o3, o4 , o5}
5
1. Introduction NN: Nearest neighborRNN: Reverse nearest neighbor
P = {p1, p2}
O = {o1, o2, o3 , o4, o5}
Convenience stores
Customers
p1
p2
o1
o2
o3
o4
o5
Suppose that we want to set upa new convenience store p
Where should we set up?
p
RNN = {o1, o2}
Placement 1
Placement 1 RNN = {o1, o2}
Influence value = 2
2
6
1. Introduction NN: Nearest neighborRNN: Reverse nearest neighbor
P = {p1, p2}
O = {o1, o2, o3 , o4, o5}
Convenience stores
Customers
p1
p2
o1
o2
o3
o4
o5
Suppose that we want to set upa new convenience store p
Where should we set up?
p
RNN = {o1, o2 , o3, o4 , o5}
Different placements of p may havedifferent RNN sets
Placement 2
Placement 1 RNN = {o1, o2}
Placement 2 RNN = {o1, o2 , o3, o4 , o5}
Which placement is better?
Placement 2
2
5
Influence value = 5
7
1. Introduction NN: Nearest neighborRNN: Reverse nearest neighbor
P = {p1, p2}
O = {o1, o2, o3 , o4, o5}
Convenience stores
Customers
p1
p2
o1
o2
o3
o4
o5
Suppose that we want to set upa new convenience store p
Where should we set up?
p
RNN = {o1, o2 , o3, o4 , o5}
Different placements of p may havethe same RNN set
Placement 3
Placement 1 RNN = {o1, o2}
Placement 2 RNN = {o1, o2 , o3, o4 , o5}
Placement 3 RNN = {o1, o2 , o3, o4 , o5}
2
5
5
Influence value = 5
8
1. Introduction NN: Nearest neighborRNN: Reverse nearest neighbor
P = {p1, p2}
O = {o1, o2, o3 , o4, o5}
Convenience stores
Customers
p1
p2
o1
o2
o3
o4
o5
Suppose that we want to set upa new convenience store p
Where should we set up?
Problem: We want to find a region R(or area) such that when p is placedin R, the influence value of p is maximized.
Placement 1 RNN = {o1, o2}
Placement 2 RNN = {o1, o2 , o3, o4 , o5}
Placement 3 RNN = {o1, o2 , o3, o4 , o5}
2
5
5
9
1. Introduction Related Work
Arrangement Running Time = O(|O| log |P| + |O|2 +2(|O|))
where (|O|) is a function on |O| and is (|O|)
Our Proposed Algorithm MaxOverlap Running Time = O(|O| log |P| + k2 |O| +k |O| log |O|)
where k << |O| Significant improvement
on Running Time Problem: We want to find a region R(or area) such that when p is placedin R, the influence value of p is maximized.
10
2. ProblemNN: Nearest neighborRNN: Reverse nearest neighbor
P = {p1, p2}
O = {o1, o2, o3 , o4, o5}
Convenience stores
Customers
p1
p2
o1
o2
o3
o4
o5
Problem: We want to find a region R(or area) such that when p is placedin R, the influence value of p is maximized.
p
RNN = {o1, o2 , o3, o4 , o5}
11
2. ProblemNN: Nearest neighborRNN: Reverse nearest neighbor
P = {p1, p2}
O = {o1, o2, o3 , o4, o5}
Convenience stores
Customers
p1
p2
o1
o2
o3
o4
o5
Problem: We want to find a region R(or area) such that when p is placedin R, the influence value of p is maximized.
Consistent region
For any two possible placements in this region, their RNN sets are the same
Influence value = 5
RNN = {o1, o2 , o3, o4 , o5}
p
12
2. ProblemNN: Nearest neighborRNN: Reverse nearest neighbor
P = {p1, p2}
O = {o1, o2, o3 , o4, o5}
Convenience stores
Customers
p1
p2
o1
o2
o3
o4
o5
Problem: We want to find a region R(or area) such that when p is placedin R, the influence value of p is maximized.
13
2. ProblemNN: Nearest neighborRNN: Reverse nearest neighbor
P = {p1, p2}
O = {o1, o2, o3 , o4, o5}
Convenience stores
Customers
p1
p2
o1
o2
o3
o4
o5
Problem: We want to find a region R(or area) such that when p is placedin R, the influence value of p is maximized.
p
RNN = {o1, o2}
14
2. ProblemNN: Nearest neighborRNN: Reverse nearest neighbor
P = {p1, p2}
O = {o1, o2, o3 , o4, o5}
Convenience stores
Customers
p1
p2
o1
o2
o3
o4
o5
Problem: We want to find a region R(or area) such that when p is placedin R, the influence value of p is maximized.
Non-Consistent region
RNN = {o1, o2 , o3, o4 , o5}
p
15
2. ProblemNN: Nearest neighborRNN: Reverse nearest neighbor
P = {p1, p2}
O = {o1, o2, o3 , o4, o5}
Convenience stores
Customers
p1
p2
o1
o2
o3
o4
o5
Problem: We want to find a region R(or area) such that when p is placedin R, the influence value of p is maximized.
Consistent region
16
2. ProblemNN: Nearest neighborRNN: Reverse nearest neighbor
P = {p1, p2}
O = {o1, o2, o3 , o4, o5}
Convenience stores
Customers
p1
p2
o1
o2
o3
o4
o5
Problem: We want to find a region R(or area) such that when p is placedin R, the influence value of p is maximized.
Consistent region
Many consistent regions!
Influence value = 5
17
2. ProblemNN: Nearest neighborRNN: Reverse nearest neighbor
P = {p1, p2}
O = {o1, o2, o3 , o4, o5}
Convenience stores
Customers
p1
p2
o1
o2
o3
o4
o5
Problem: We want to find a region R(or area) such that when p is placedin R, the influence value of p is maximized.
Maximal consistent regionThere does not exist another consistent region R’ where (1) R’ covers R and (2) the RNN sets of R and R’ are equal
Influence value = 5
18
2. ProblemNN: Nearest neighborRNN: Reverse nearest neighbor
P = {p1, p2}
O = {o1, o2, o3 , o4, o5}
Convenience stores
Customers
p1
p2
o1
o2
o3
o4
o5
Problem: We want to find a region R(or area) such that when p is placedin R, the influence value of p is maximized.
Maximal consistent regionThere does not exist another consistent region R’ where (1) R’ covers R and (2) the RNN sets of R and R’ are equal
Maximal consistent region
Influence value = 5
19
p1
p2
o1
o2
o3
o4
o5
Problem: We want to find a region R(or area) such that when p is placedin R, the influence value of p is maximized.
Maximal consistent region
2. Problem
Problem: We want to find a maximalconsistent region R such that when the influence value of R is maximized.
We call this problemMaximizing Bichromatic Reverse Nearest Neighbor(MaxBRNN)
20
p1
p2
o1
o2
o3
o4
o5
2. Problem
Problem: We want to find a maximalconsistent region R such that when the influence value of R is maximized.
We call this problemMaximizing Bichromatic Reverse Nearest Neighbor(MaxBRNN)
Two challenges:
Challenge 1: It is difficult to find a maximal consistent region
Challenge 2: We need to return the maximal consistent region with the greatest influence value
21
2. Problem
Problem: We want to find a maximalconsistent region R such that when the influence value of R is maximized.
We call this problemMaximizing Bichromatic Reverse Nearest Neighbor(MaxBRNN)
Two challenges:
Challenge 1: It is difficult to find a maximal consistent region
Challenge 2: We need to return the maximal consistent region with the greatest influence value
Nearest location circle (NLC)
P = {p1, p2}
O = {o1, o2}
Convenience stores
Customers
p1
p2
o1
o2
NN in P = p1Construct a circle centered at o1
with radius |p1, o1|
NN in P = p2
Construct a circle centered at o2
with radius |p2, o2|
22
2. Problem
Problem: We want to find a maximalconsistent region R such that when the influence value of R is maximized.
We call this problemMaximizing Bichromatic Reverse Nearest Neighbor(MaxBRNN)
Two challenges:
Challenge 1: It is difficult to find a maximal consistent region
Challenge 2: We need to return the maximal consistent region with the greatest influence value
Nearest location circle (NLC)
P = {p1, p2}
O = {o1, o2}
Convenience stores
Customers
p1
p2
o1
o2
A
23
2. Problem
Problem: We want to find a maximalconsistent region R such that when the influence value of R is maximized.
We call this problemMaximizing Bichromatic Reverse Nearest Neighbor(MaxBRNN)
Two challenges:
Challenge 1: It is difficult to find a maximal consistent region
Challenge 2: We need to return the maximal consistent region with the greatest influence value
Nearest location circle (NLC)
P = {p1, p2}
O = {o1, o2}
Convenience stores
Customers
p1
p2
o1
o2
AB
24
2. Problem
Problem: We want to find a maximalconsistent region R such that when the influence value of R is maximized.
We call this problemMaximizing Bichromatic Reverse Nearest Neighbor(MaxBRNN)
Two challenges:
Challenge 1: It is difficult to find a maximal consistent region
Challenge 2: We need to return the maximal consistent region with the greatest influence value
Nearest location circle (NLC)
P = {p1, p2}
O = {o1, o2}
Convenience stores
Customers
p1
p2
o1
o2
AB
C
25
2. Problem
Problem: We want to find a maximalconsistent region R such that when the influence value of R is maximized.
We call this problemMaximizing Bichromatic Reverse Nearest Neighbor(MaxBRNN)
Two challenges:
Challenge 1: It is difficult to find a maximal consistent region
Challenge 2: We need to return the maximal consistent region with the greatest influence value
Nearest location circle (NLC)
P = {p1, p2}
O = {o1, o2}
Convenience stores
Customers
p1
p2
o1
o2
AB
C
D
26
2. Problem
Problem: We want to find a maximalconsistent region R such that when the influence value of R is maximized.
We call this problemMaximizing Bichromatic Reverse Nearest Neighbor(MaxBRNN)
Two challenges:
Challenge 1: It is difficult to find a maximal consistent region
Challenge 2: We need to return the maximal consistent region with the greatest influence value
Nearest location circle (NLC)
P = {p1, p2}
O = {o1, o2}
Convenience stores
Customers
p1
p2
o1
o2
AB
C
D
RNN set = {o1, o2}
RNN set = {o1}
RNN set = {o2}
RNN set = {}
Four maximal consistent regions
Solution: Region A
21 1
0
Intersection between two NLCs
27
2. Problem
Problem: We want to find a maximalconsistent region R such that when the influence value of R is maximized.
We call this problemMaximizing Bichromatic Reverse Nearest Neighbor(MaxBRNN)
Two challenges:
Challenge 1: It is difficult to find a maximal consistent region
Challenge 2: We need to return the maximal consistent region with the greatest influence value
Nearest location circle (NLC)
p1
p2
o1
o2
AB
C
D
Four maximal consistent regions
Solution: Region A
Lemma: The solution of MaxBRNN can berepresented by an intersection ofmultiple nearest location circles.
Intersection between two NLCs
28
2. Problem
Problem: We want to find a maximalconsistent region R such that when the influence value of R is maximized.
We call this problemMaximizing Bichromatic Reverse Nearest Neighbor(MaxBRNN)
Two challenges:
Challenge 1: It is difficult to find a maximal consistent region
Challenge 2: We need to return the maximal consistent region with the greatest influence value
We propose an algorithm called MaxOverlap
29
3. Algorithm
Make use of the principle of region-to-point transformation
Optimal Region Search Problem
Optimal Point Search Problem
1. Search a limited number of points
2. Find the optimal point
This optimal point can be mapped to
the optimal region in Optimal Region
Search Problem
30
3. Algorithm
o1
o2
o3
o4
o5
o6p
5
p4
p3
p2
p1
P = {p1, p2 , p3 , p4 , p5}
O = {o1, o2, o3 , o4, o5 , o6}
Convenience stores
Customers
31
3. Algorithm
o1
o2
o3
o4
o5
o6p
5
p4
p3
p2
p1
32
3. Algorithm
o1
o2
o3
o4
o5
o6
The maixmal consistent region which maximizes the RNN set
NLC c1
NLC c2
NLC c3
Intersection of c1, c2 and c3
Intersection of c1, c2 and c3Solution
33
3. Algorithm
Algorithm MaxOverlap Three-Step Algorithm
34
3. Algorithm
o1
o2
o3
o4
o5
o6
Step 1 (Finding Intersection Point)
35
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
Step 1 (Finding Intersection Point)
36
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
Step 2 (Point Query)
Point query for q4
37
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
Step 2 (Point Query)
Point query for q4
Result for q4 = { }c1
38
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
Step 2 (Point Query)
Point query for q4
Result for q4 = { }c1 , c3
39
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
Step 2 (Point Query)
Point query for q3
Result for q4 = { }c1 , c3
40
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
Step 2 (Point Query)
Point query for q3
Result for q4 = { }c1 , c3
Result for q3 = { }c1
41
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
Step 2 (Point Query)
Point query for q3
Result for q4 = { }c1 , c3
Result for q3 = { }c1, c2
42
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
Step 2 (Point Query)
Point query for q3
Result for q4 = { }c1 , c3
Result for q3 = { }c1, c2, c3
43
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
Step 2 (Point Query)
Point query for q1
Result for q4 = { }c1 , c3
Result for q1 = { }c1, c2, c3
Result for q3 = { }c1, c2, c3
44
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
Step 2 (Point Query)
Result for q4 = { }c1 , c3
Result for q1 = { }c1, c2, c3
Result for q5 = { }c1, c2, c3
…
Point query for q5
Result for q3 = { }c1, c2, c3
45
Result for q3 = { }c1, c2, c3
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
Step 3 (Finding Maximum Size)
Result for q4 = { }c1 , c3
Result for q1 = { }c1, c2, c3
Result for q5 = { }c1, c2, c3
…
The intersection of c1, c2 and c3 corresponds to the solution.
Optimal Region Search Problem
Optimal Point Search Problem
46
3. Algorithm Theorem: The running time of
algorithm MaxOverlap is
O(|O| log |P| + k2|O| + k |O| log |O|)
where k is typically much smaller than |O|
47
3. Algorithm
Enhancement 1: We process the intersection points q in a pre-defined order
Enhancement 2: Step 2 and Step 3 can be combined We introduce a pruning technique
such that some intersection points will not be processed.
48
4. Empirical Study Synthetic Dataset
P: Gaussian distribution O: Zipfian distribution
Real Dataset Rtree Portal
http://www.rtreeportal.org/spatial.html CA (62,556) LB (53,145) GR (23,268) GM (36,334)
P: one of the above datasets O: one of the above datasets
49
4. Empirical Study Measurements
Execution Time Storage
Our proposed algorithms MaxOverlap-P
MaxOverlap with Pruning MaxOverlap-NP
MaxOverlap without pruning Comparison with adapted algorithms
Arrangement Buffer-Adapt
50
4. Empirical Study Small dataset
51
4. Empirical Study Large dataset
52
5. Conclusion
Problem MaxBRNN Maximizing Bichromatic Reverse
Nearest Neighbor Algorithm MaxOverlap
Theoretical Analysis of Running Time Significant Improvement on Running
Time Experiments
53
Q&A
54
1. Introduction Arrangement
Idea: search regions in the space There are an exponential number of
regions Our algorithm MaxOverlap
Idea: make use of the principle of region-to-point transformation
Optimal Region Search Problem
Optimal Point Search Problem
1. Search a limited number of points
2. Find the optimal point
This optimal point can be mapped to
the optimal region in Optimal Region
Search Problem
55
1. Introduction Related Work
We are studying problem MaxBRNN over the L2-norm (i.e., Euclidean distance)
Buffer Studies problem MaxBRNN over the L1-norm (i.e., Manhattan
distance) Buffer-Adapt
Heuristic algorithm over the L2-norm Our algorithm MaxOverlap runs faster than Buffer-
Adapt
56
1. Introduction Related Work
Buffer-Adapt Running Time = O(|O| log |P| + L2k |O| + L2 |O| log |O|)
where L > k
Our Proposed Algorithm MaxOverlap Running Time = O(|O| log |P| + k2 |O| +k |O| log |
O|)where k << |O|
Significant improvementon Running Time
Problem: We want to find a region R(or area) such that when p is placedin R, the influence value of p is maximized.
57
1. Introduction Applications
Traditional applications which exist in BRNN also applied to MaxBRNN
Service Location Planning Convenience store, supermarket, coffee shop, ATM,
wireless routers, … Profile-based Marketing Natural disaster (e.g., earthquake in China)
Place supply/service centers for rescue or relief jobs Big event (e.g., US presidential campaign)
Place police force for security Military
Place some temporary depots for gasoline and food
58
1. Introduction NN: Nearest neighborRNN: Reverse nearest neighbor
P = {p1, p2}
O = {o1, o2, o3 , o4, o5}
Convenience stores
Customers
p1
p2
o1
o2
o3
o4
o5
Suppose that we want to set upa new convenience store p
Where should we set up?
Problem: We want to find a region R(or area) such that when p is placedin R, the influence value of p is maximized.
Placement 1 RNN = {o1, o2}
Placement 2 RNN = {o1, o2 , o3, o4 , o5}
Placement 3 RNN = {o1, o2 , o3, o4 , o5}
2
5
5
There are many arbitrary regions!
Consistent region
Many consistent regions!
59
3. Algorithm
If the solution is the region with the influence value = 1, any one of NLCs is the solution
o2
o1p
1
p2o
3
p3
60
3. Algorithm
If the solution is the region with the influence value = 1, any one of NLCs is the solution
If the solution is the region with the influence value > 1, finding this solution is more
complicated
61
3. Algorithm
o1
o2
o3
o4
o5
o6
Intersection of c1, c2 and c3Solution
62
3. Algorithm
Step 1 (Finding Intersection Point) We find a set Q of all intersection points between the
boundaries of any two overlapping NLCs Step 2 (Point Query)
For each point q in Q, we perform a point query for q to find a set S of NLCs covering q
Step 3 (Finding Maximum Size) We choose set S with the largest size obtained in the above step
63
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
This region contains at least one intersection point (e.g., q1, q3 and q5)
Intersection point betweenthe boundaries of two NLCs
Observation 1
Intersection of c1, c2 and c3Solution
64
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
This region contains at least one intersection point (e.g., q1, q3 and q5)
Observation 1
Intersection of c1, c2 and c3Solution
Suppose we perform a point query for q1 to find all NLCs covering q1
Result = { }c1
65
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
This region contains at least one intersection point (e.g., q1, q3 and q5)
Observation 1
Intersection of c1, c2 and c3Solution
Suppose we perform a point query for q1 to find all NLCs covering q1
Result = { }c1, c2
66
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
This region contains at least one intersection point (e.g., q1, q3 and q5)
Observation 1
Intersection of c1, c2 and c3Solution
Suppose we perform a point query for q1 to find all NLCs covering q1
Result = { }c1, c2, c3
Same set of NLCs
67
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
This region contains at least one intersection point (e.g., q1, q3 and q5)
Observation 1
Intersection of c1, c2 and c3Solution
Suppose we perform a point query for q3 to find all NLCs covering q3
Result = { }c1
68
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
This region contains at least one intersection point (e.g., q1, q3 and q5)
Observation 1
Intersection of c1, c2 and c3Solution
Suppose we perform a point query for q3 to find all NLCs covering q3
Result = { }c1, c2
69
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
This region contains at least one intersection point (e.g., q1, q3 and q5)
Observation 1
Intersection of c1, c2 and c3Solution
Suppose we perform a point query for q3 to find all NLCs covering q3
Result = { }c1, c2, c3
Same set of NLCs
70
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
This region contains at least one intersection point (e.g., q1, q3 and q5)
Observation 1
Intersection of c1, c2 and c3Solution
Suppose we perform a point query for q5 to find all NLCs covering q5
Result = { }c1
71
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
This region contains at least one intersection point (e.g., q1, q3 and q5)
Observation 1
Intersection of c1, c2 and c3Solution
Suppose we perform a point query for q5 to find all NLCs covering q5
Result = { }c1, c2
72
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
This region contains at least one intersection point (e.g., q1, q3 and q5)
Observation 1
Intersection of c1, c2 and c3Solution
Suppose we perform a point query for q5 to find all NLCs covering q5
Result = { }c1, c2, c3
Same set of NLCs
Observation 2
The result of the point query foreach of these intersection pointscan be used to denote thefinal solution
73
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
This region contains at least one intersection point (e.g., q1, q3 and q5)
Observation 1
Observation 2
The result of the point query foreach of these intersection pointscan be used to denote thefinal solution
Optimal Region Search Problem
Optimal Point Search Problem
74
3. Algorithm
o1
o2
o3
o4
o5
o6
q8 q
9
q7
q6
q2
q3
q1
q5
q4
Intersection of c1, c2 and c3Solution
75
3. Algorithm
o1
o2
o3
o4
o5
o6
Intersection of c1, c2 and c3SolutionNLC L(c)
c1 c2, c3
c2 c1, c3
c3 c1, c2, c4
c4 c3
c5 c6
c6 c5
Overlap table2
2
3
1
1
1
c3 overlaps with more NLCs
We process c3 first becauseit is more likely that the solution involves c3
q3
q4
Point query for q4
Result for q4 = { }c1 , c3
Temp. Solution {c1, c3}
76
3. Algorithm
o1
o2
o3
o4
o5
o6
Intersection of c1, c2 and c3SolutionNLC L(c)
c1 c2, c3
c2 c1, c3
c3 c1, c2, c4
c4 c3
c5 c6
c6 c5
Overlap table2
2
3
1
1
1
c3 overlaps with more NLCs
We process c3 first becauseit is more likely that the solution involves c3
q3
q4
Result for q4 = { }c1 , c3
Temp. Solution {c1, c3}
Point query for q3
Result for q3 = { }c1, c2, c3
{c1, c2 , c3}
77
3. Algorithm
o1
o2
o3
o4
o5
o6
Intersection of c1, c2 and c3SolutionNLC L(c)
c1 c2, c3
c2 c1, c3
c3 c1, c2, c4
c4 c3
c5 c6
c6 c5
Overlap table2
2
3
1
1
1
c3 overlaps with more NLCs
We process c3 first becauseit is more likely that the solution involves c3
q3
q4
Result for q4 = { }c1 , c3
Temp. Solution {c1, c3}
Result for q3 = { }c1, c2, c3
{c1, c2 , c3}
q2
q1
Point query for q1
Result for q1 = { }c1, c2, c3
…
78
3. Algorithm
o1
o2
o3
o4
o5
o6
Intersection of c1, c2 and c3SolutionNLC L(c)
c1 c2, c3
c2 c1, c3
c3 c1, c2, c4
c4 c3
c5 c6
c6 c5
Overlap table2
2
3
1
1
1
q3
q4
Result for q4 = { }c1 , c3
Temp. Solution {c1, c3}
Result for q3 = { }c1, c2, c3
{c1, c2 , c3}
q2
q1
Result for q1 = { }c1, c2, c3
…
Suppose we have processed c1 and c2
79
3. Algorithm
o1
o2
o3
o4
o5
o6
Intersection of c1, c2 and c3SolutionNLC L(c)
c1 c2, c3
c2 c1, c3
c3 c1, c2, c4
c4 c3
c5 c6
c6 c5
Overlap table2
2
3
1
1
1
q3
q4
Result for q4 = { }c1 , c3
Temp. Solution {c1, c3}
Result for q3 = { }c1, c2, c3
{c1, c2 , c3}
q2
q1
Result for q1 = { }c1, c2, c3
…
Suppose we want to process c5
3
c5 overlaps at most 1 NLC
Any intersection points from c5 havethe influence value at most 2
Pruning: Since 2 < 3, we do NOT need to process c5.
Lemma: Let I be the influence value found so far.Consider an NLC c.If |L(c)|+1 < I, we do not need to process c.
80
4. Empirical Study
Nearest Location Circle (NLC) Construction Involve NN queries over P Build R*-tree on P
Step 2 Involve Point Queries over NLC Build R*-tree on all NLCs