presentation by maks ovsjanikov -...
TRANSCRIPT
![Page 1: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/1.jpg)
1-1
S. Har-Peled’s notes, Chapters 6 and 7
Approximate Voronoi Diagrams
CS468, Mon. Oct. 30th, 2006
Presentation by Maks Ovsjanikov
![Page 2: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/2.jpg)
2-1
Outline
• Preliminaries
• Problem Statement
• ANN using PLEB
• Bounds and Improvements
– Near Linear Space
– Linear Space
• ANN in Rd using compressed quad-trees
(Previous Lecture)}
![Page 3: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/3.jpg)
3-1
Preliminaries
u
v
![Page 4: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/4.jpg)
3-2
Preliminaries
u
vd(u, v)
![Page 5: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/5.jpg)
3-3
Preliminaries
u
v
q
d(u, v)
d(q, u)
d(q, v)
![Page 6: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/6.jpg)
3-4
Preliminaries
u
v
q
d(u, v)
d(q, u)
d(q, v) ≥ d(u,v)ε
≥ d(u,v)ε
![Page 7: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/7.jpg)
3-5
Preliminaries
u
v
q
d(u, v)
d(q, u)
d(q, v)
d(q, u) ≥ d(u,v)ε
d(q, v) ≥ d(u,v)ε
=⇒ d(q, v)
d(q, u)≤ 1 + ε
≥ d(u,v)ε
≥ d(u,v)ε
![Page 8: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/8.jpg)
3-6
Preliminaries
u
v
q
d(u, v)
d(q, u)
d(q, v)
d(q, u) ≥ d(u,v)ε
d(q, v) ≥ d(u,v)ε
=⇒ d(q, v)
d(q, u)≤ 1 + ε
≥ d(u,v)ε
≥ d(u,v)ε
q′
d(q′, u) = αd(u, v)
d(q′, v) = (1 + α)d(u, v)= (1 + 1
α)d(u, v)
![Page 9: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/9.jpg)
4-1
d(q, u) ≥ d(u,v)ε
d(q, v) ≥ d(u,v)ε
=⇒ d(q, v)
d(q, u)≤ 1 + ε
Preliminaries
Holds in any metric space:
![Page 10: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/10.jpg)
4-2
d(q, u) ≥ d(u,v)ε
d(q, v) ≥ d(u,v)ε
=⇒ d(q, v)
d(q, u)≤ 1 + ε
Preliminaries
d(q, u) = αd(u, v)
d(q, v) ≤ d(q, u) + d(u, v) = (1 + 1α)d(q, u)
=⇒ d(q,v)d(q,u) ≤ (1 + 1
α) ≤ (1 + ε) if α ≥ 1ε
Holds in any metric space:
![Page 11: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/11.jpg)
4-3
d(q, u) ≥ d(u,v)ε
d(q, v) ≥ d(u,v)ε
=⇒ d(q, v)
d(q, u)≤ 1 + ε
Preliminaries
d(q, u) = αd(u, v)
d(q, v) ≤ d(q, u) + d(u, v) = (1 + 1α)d(q, u)
=⇒ d(q,v)d(q,u) ≤ (1 + 1
α) ≤ (1 + ε) if α ≥ 1ε
Holds in any metric space:
Similarly:
d(q, v) = αd(u, v)
=⇒ d(q,u)d(q,v) ≤ (1 + 1
α) ≤ (1 + ε) if α ≥ 1ε
![Page 12: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/12.jpg)
4-4
d(q, u) ≥ d(u,v)ε
d(q, v) ≥ d(u,v)ε
=⇒ d(q, v)
d(q, u)≤ 1 + ε
Preliminaries
Moral:
Any of the far away points is a (1 + ε) closest neighbor
![Page 13: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/13.jpg)
5-1
Problem Statement:
For a given ε, find a (1 + ε) Aproximate Voronoi Diagram:
Partition of space into regions with one representative ri per region, such thatfor any point q in region i, ri is a (1 + ε) nearest neighbor of q
![Page 14: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/14.jpg)
5-2
Problem Statement:
For a given ε, find a (1 + ε) Aproximate Voronoi Diagram:
Partition of space into regions with one representative ri per region, such thatfor any point q in region i, ri is a (1 + ε) nearest neighbor of q
![Page 15: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/15.jpg)
5-3
Problem Statement:
For a given ε, find a (1 + ε) Aproximate Voronoi Diagram:
Partition of space into regions with one representative ri per region, such thatfor any point q in region i, ri is a (1 + ε) nearest neighbor of q
Constraints:
• bounded construction time and space (complexity)
• Cover all space
• sub-linear (1+ε) NN queries
![Page 16: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/16.jpg)
6-1
ANN using PLEBReduce (1 + ε)-ANN queries to target ball queries
![Page 17: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/17.jpg)
6-2
ANN using PLEBReduce (1 + ε)-ANN queries to target ball queries
1) Construct balls of radius (1 + ε)i around each point, for i = 1..∞
![Page 18: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/18.jpg)
6-3
ANN using PLEBReduce (1 + ε)-ANN queries to target ball queries
1) Construct balls of radius (1 + ε)i around each point, for i = 1..∞
![Page 19: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/19.jpg)
6-4
ANN using PLEBReduce (1 + ε)-ANN queries to target ball queries
1) Construct balls of radius (1 + ε)i around each point, for i = 1..∞
![Page 20: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/20.jpg)
6-5
ANN using PLEBReduce (1 + ε)-ANN queries to target ball queries
1) Construct balls of radius (1 + ε)i around each point, for i = 1..∞
![Page 21: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/21.jpg)
6-6
ANN using PLEBReduce (1 + ε)-ANN queries to target ball queries
1) Construct balls of radius (1 + ε)i around each point, for i = 1..∞
![Page 22: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/22.jpg)
6-7
ANN using PLEBReduce (1 + ε)-ANN queries to target ball queries
1) Construct balls of radius (1 + ε)i around each point, for i = 1..∞
![Page 23: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/23.jpg)
6-8
ANN using PLEBReduce (1 + ε)-ANN queries to target ball queries
1) Construct balls of radius (1 + ε)i around each point, for i = 1..∞
![Page 24: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/24.jpg)
6-9
ANN using PLEBReduce (1 + ε)-ANN queries to target ball queries
1) Construct balls of radius (1 + ε)i around each point, for i = 1..∞
![Page 25: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/25.jpg)
6-10
ANN using PLEBReduce (1 + ε)-ANN queries to target ball queries
q
For any query point q, return the center p of the smallest ball that contains it:d(q, n) > (1 + ε)i−1, and d(q, p) ≤ (1 + ε)i < (1 + ε) · d(q, n)
=⇒ always get a (1 + ε)-Nearest Neighbor
(1 + ε)5
> (1 + ε)4
![Page 26: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/26.jpg)
6-11
ANN using PLEBReduce (1 + ε)-ANN queries to target ball queries
Problems:
• Unbounded Number of Balls
• Not clear how to preform target ball queries efficiently
– Partition the space into regions of influence
![Page 27: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/27.jpg)
7-1
Bounding the number of balls
Intuition:* For a given pair u and v, we only care if min d(q, {u, v}) ∈ [d(u,v)
ε+2 , d(u,v)ε ]
![Page 28: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/28.jpg)
7-2
Bounding the number of balls
Intuition:* For a given pair u and v, we only care if min d(q, {u, v}) ∈ [d(u,v)
ε+2 , d(u,v)ε ]
• if min d(q, {u, v}) > d(u,v)ε =⇒ either u or v are (1 + ε) NN
![Page 29: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/29.jpg)
7-3
Bounding the number of balls
Intuition:* For a given pair u and v, we only care if min d(q, {u, v}) ∈ [d(u,v)
ε+2 , d(u,v)ε ]
* Do not need to grow balls of radius smaller than d(u,v)4 or larger than 2d(u,v)
ε
• if min d(q, {u, v}) > d(u,v)ε =⇒ either u or v are (1 + ε) NN
• if min d(q, {u, v}) < d(u,v)ε+2 =⇒ q has a unique (1 + ε) NN
u
v
d(q, u) < d(u,v)ε+2
qd(q, v) > (1− 1
ε+2)d(u, v)
> (ε + 1)d(q, u)
![Page 30: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/30.jpg)
7-4
Bounding the number of balls
Intuition:* For a given pair u and v, we only care if min d(q, {u, v}) ∈ [d(u,v)
ε+2 , d(u,v)ε ]
* Do not need to grow balls of radius smaller than d(u,v)4 or larger than 2d(u,v)
ε
• if min d(q, {u, v}) > d(u,v)ε =⇒ either u or v are (1 + ε) NN
• if min d(q, {u, v}) < d(u,v)ε+2 =⇒ q has a unique (1 + ε) NN
u
v
d(q, u) < d(u,v)ε+2
qd(q, v) > (1− 1
ε+2)d(u, v)
> (ε + 1)d(q, u)
Method 1:
for every pair of points {u, v}, construct enough balls to cover [d(u,v)4 , 2d(u,v)
ε ] on u, v
![Page 31: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/31.jpg)
7-5
Bounding the number of balls
Intuition:* For a given pair u and v, we only care if min d(q, {u, v}) ∈ [d(u,v)
ε+2 , d(u,v)ε ]
* Do not need to grow balls of radius smaller than d(u,v)4 or larger than 2d(u,v)
ε
• if min d(q, {u, v}) > d(u,v)ε =⇒ either u or v are (1 + ε) NN
• if min d(q, {u, v}) < d(u,v)ε+2 =⇒ q has a unique (1 + ε) NN
u
v
d(q, u) < d(u,v)ε+2
qd(q, v) > (1− 1
ε+2)d(u, v)
> (ε + 1)d(q, u)
Method 1:
for every pair of points {u, v}, construct enough balls to cover [d(u,v)4 , 2d(u,v)
ε ] on u, v
Overall: O(n2 logε+1(2Cε − C
4 )) = O(n2 log(7Cε )
log(ε+1)) = O(n21ε log(1
ε)) balls
Note: log(1 + ε) = ε− ε2/2 + ε3/3− .... = O(ε) in most cases
![Page 32: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/32.jpg)
8-1
Bounding the number of balls
Interval Near-Neighbor data structuregiven a range of distances [a, b], and a set of points P , answers:
1. dP (q) > b
2. dP (q) < a with a witness
3. otherwise, finds a point p ∈ P , s.t. dP (q) ≤ d(p, q) ≤ (1 + ε)dP (q)
![Page 33: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/33.jpg)
8-2
Bounding the number of balls
Interval Near-Neighbor data structuregiven a range of distances [a, b], and a set of points P , answers:
1. dP (q) > b
2. dP (q) < a with a witness
3. otherwise, finds a point p ∈ P , s.t. dP (q) ≤ d(p, q) ≤ (1 + ε)dP (q)
Can be realized by a set of balls of radius a(1 + ε)i for i = 0...M − 1, where M = dlog1+ε(b/a)e and aball of radius b around every point in P
![Page 34: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/34.jpg)
8-3
Bounding the number of balls
Interval Near-Neighbor data structuregiven a range of distances [a, b], and a set of points P , answers:
1. dP (q) > b
2. dP (q) < a with a witness
3. otherwise, finds a point p ∈ P , s.t. dP (q) ≤ d(p, q) ≤ (1 + ε)dP (q)
Can be realized by a set of balls of radius a(1 + ε)i for i = 0...M − 1, where M = dlog1+ε(b/a)e and aball of radius b around every point in P
Contains O(n1ε log(b/a)) balls. Takes at most 2 target ball queries if 1 or 2 hold, and
* O(log(M)) = O(log log(b/a)ε ) otherwise
![Page 35: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/35.jpg)
9-1
Bounding the number of balls
A data structure to answer (1 + ε)-ANN queries on general points
(Sariel Har-Peled: A Replacement for Voronoi Diagrams of Near Linear Size. FOCS 2001: 94-103)
Build a tree, with an Interval Near Neighbor structure associated with each node
![Page 36: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/36.jpg)
9-2
Bounding the number of balls
A data structure to answer (1 + ε)-ANN queries on general points
(Sariel Har-Peled: A Replacement for Voronoi Diagrams of Near Linear Size. FOCS 2001: 94-103)
Build a tree, with an Interval Near Neighbor structure associated with each node
![Page 37: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/37.jpg)
9-3
Bounding the number of balls
A data structure to answer (1 + ε)-ANN queries on general points
(Sariel Har-Peled: A Replacement for Voronoi Diagrams of Near Linear Size. FOCS 2001: 94-103)
Build a tree, with an Interval Near Neighbor structure associated with each node
Recursively find min r suchthat there are dn/2e connectedcomponents
10
7
I(P, r, 2c̄µnr/ε, ε/4), r = 10, n = 6
I(P, r, 2c̄µnr/ε, ε/4), r = 7, n = 3
![Page 38: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/38.jpg)
9-4
Bounding the number of balls
A data structure to answer (1 + ε)-ANN queries on general points
(Sariel Har-Peled: A Replacement for Voronoi Diagrams of Near Linear Size. FOCS 2001: 94-103)
Build a tree, with an Interval Near Neighbor structure associated with each node
Recursively find min r suchthat there are dn/2e connectedcomponents
10
7
I(P, r, 2c̄µnr/ε, ε/4), r = 10, n = 6
I(P, r, 2c̄µnr/ε, ε/4), r = 7, n = 3
12
I(P, r, 2c̄µnr/ε, ε/4), r = 12, n = 3
For each component finda representative and recur-sively build the outer tree
![Page 39: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/39.jpg)
10-1
Bounding the number of balls
A data structure to answer (1 + ε)-ANN queries on general points
(Sariel Har-Peled: A Replacement for Voronoi Diagrams of Near Linear Size. FOCS 2001: 94-103)
I(P, r, 2c̄µnr/ε, ε/4), r = 10, n = 6
I(P, r, 2c̄µnr/ε, ε/4), r = 7, n = 3
I(P, r, 2c̄µnr/ε, ε/4), r = 12, n = 3
Given a query point q:
1) q is outside R descend into the outer tree
q
![Page 40: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/40.jpg)
10-2
Bounding the number of balls
A data structure to answer (1 + ε)-ANN queries on general points
(Sariel Har-Peled: A Replacement for Voronoi Diagrams of Near Linear Size. FOCS 2001: 94-103)
I(P, r, 2c̄µnr/ε, ε/4), r = 10, n = 6
I(P, r, 2c̄µnr/ε, ε/4), r = 7, n = 3
I(P, r, 2c̄µnr/ε, ε/4), r = 12, n = 3
Given a query point q:
2) if q is inside r descend into the cluster
q
![Page 41: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/41.jpg)
10-3
Bounding the number of balls
A data structure to answer (1 + ε)-ANN queries on general points
(Sariel Har-Peled: A Replacement for Voronoi Diagrams of Near Linear Size. FOCS 2001: 94-103)
I(P, r, 2c̄µnr/ε, ε/4), r = 10, n = 6
I(P, r, 2c̄µnr/ε, ε/4), r = 7, n = 3
I(P, r, 2c̄µnr/ε, ε/4), r = 12, n = 3
Given a query point q:
3) otherwise I will return a(1 + ε
4)-NN
q
![Page 42: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/42.jpg)
10-4
Bounding the number of balls
A data structure to answer (1 + ε)-ANN queries on general points
(Sariel Har-Peled: A Replacement for Voronoi Diagrams of Near Linear Size. FOCS 2001: 94-103)
I(P, r, 2c̄µnr/ε, ε/4), r = 10, n = 6
I(P, r, 2c̄µnr/ε, ε/4), r = 7, n = 3
I(P, r, 2c̄µnr/ε, ε/4), r = 12, n = 3
Given a query point q:
Because of rounding up, after each step, continue on set containing ≤ n/2 + 1 points=⇒ number of steps ≤ log3/2 n
![Page 43: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/43.jpg)
11-1
Bounding the number of balls
I(P, r, 2c̄µnr/ε, ε/4), r = 10, n = 6
I(P, r, 2c̄µnr/ε, ε/4), r = 7, n = 3
I(P, r, 2c̄µnr/ε, ε/4), r = 12, n = 3
1) q is outside R descend into the outer tree
2) if q is inside r descend into the cluster
3) otherwise I will return a(1 + ε
4)-NN
Note that:
• last step is always 3)
• no error is incurred in 2)
• diameter of a cluster ≤ 2nr =⇒ error in 1) is at most (1 + εc̄µ)
Thus, overall error is bounded by:
(1+ε
4)
log3/2 n∏i=1
(1+ε
c̄µ) ≤ exp(
ε
4)
log3/2 n∏i=1
exp(ε
c̄µ) ≤ exp
ε
4+
log3/2 n∑i=1
ε
c̄µ
≤ exp (ε/2) ≤ (1+ε)
if µ = dlog3/2 ne, c̄ = 4 and ε < 1
![Page 44: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/44.jpg)
12-1
Bounding the number of balls
I(P, r, 2c̄µnr/ε, ε/4), r = 10, n = 6
I(P, r, 2c̄µnr/ε, ε/4), r = 7, n = 3
I(P, r, 2c̄µnr/ε, ε/4), r = 12, n = 3
(Sariel Har-Peled: A Replacement for Voronoi Diagrams of Near Linear Size. FOCS 2001: 94-103)
Overall Number of Balls:
Since
• the depth of the tree is at most log3/2 n
• each node ν has I(Pν, r, 2c̄µnr/ε, ε/4) with M = n log n balls
we get an immediate bound ofO(M log M) = O(n log(n) log(n log n)) = O(n log2 n)
![Page 45: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/45.jpg)
12-2
Bounding the number of balls
I(P, r, 2c̄µnr/ε, ε/4), r = 10, n = 6
I(P, r, 2c̄µnr/ε, ε/4), r = 7, n = 3
I(P, r, 2c̄µnr/ε, ε/4), r = 12, n = 3
Overall Number of Balls:
Since
• the depth of the tree is at most log3/2 n
• each node ν has I(Pν, r, 2c̄µnr/ε, ε/4) with M = n log n balls
we get an immediate bound ofO(M log M) = O(n log(n) log(n log n)) = O(n log2 n)
However, can achieve O(n log n) by considering the connection with the Cluster Tree
S. Sen, N. Sharma, Y. Sabharwal: Nearest Neighbors Search using Point Location in Balls with applications to approximateVoronoi Decompositions Journal of Computer and System Sciences, Volume 72(6) , September 2006, Pages 955-977.
2
1
3
4
5
6
![Page 46: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/46.jpg)
12-3
Bounding the number of balls
I(P, r, 2c̄µnr/ε, ε/4), r = 10, n = 6
I(P, r, 2c̄µnr/ε, ε/4), r = 7, n = 3
I(P, r, 2c̄µnr/ε, ε/4), r = 12, n = 3
Overall Number of Balls:
Since
• the depth of the tree is at most log3/2 n
• each node ν has I(Pν, r, 2c̄µnr/ε, ε/4) with M = n log n balls
we get an immediate bound ofO(M log M) = O(n log(n) log(n log n)) = O(n log2 n)
However, can achieve O(n log n) by considering the connection with the Cluster Tree
S. Sen, N. Sharma, Y. Sabharwal: Nearest Neighbors Search using Point Location in Balls with applications to approximateVoronoi Decompositions Journal of Computer and System Sciences, Volume 72(6) , September 2006, Pages 955-977.
2
1
3
4
5
6
![Page 47: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/47.jpg)
12-4
Bounding the number of balls
I(P, r, 2c̄µnr/ε, ε/4), r = 10, n = 6
I(P, r, 2c̄µnr/ε, ε/4), r = 7, n = 3
I(P, r, 2c̄µnr/ε, ε/4), r = 12, n = 3
Overall Number of Balls:
Since
• the depth of the tree is at most log3/2 n
• each node ν has I(Pν, r, 2c̄µnr/ε, ε/4) with M = n log n balls
we get an immediate bound ofO(M log M) = O(n log(n) log(n log n)) = O(n log2 n)
However, can achieve O(n log n) by considering the connection with the Cluster Tree
1
2
3
4
5
6
2
1
3
4
5
6
![Page 48: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/48.jpg)
12-5
Bounding the number of balls
I(P, r, 2c̄µnr/ε, ε/4), r = 10, n = 6
I(P, r, 2c̄µnr/ε, ε/4), r = 7, n = 3
I(P, r, 2c̄µnr/ε, ε/4), r = 12, n = 3
Overall Number of Balls:
Since
• the depth of the tree is at most log3/2 n
• each node ν has I(Pν, r, 2c̄µnr/ε, ε/4) with M = n log n balls
we get an immediate bound ofO(M log M) = O(n log(n) log(n log n)) = O(n log2 n)
However, can achieve O(n log n) by considering the connection with the Cluster Tree
1
2
3
4
5
6
rloss(p) = radius of the ball around p, when pceases to be a root
rloss(2)2
1
3
4
5
6
![Page 49: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/49.jpg)
13-1
1
2
3
4
5
6
Bounding the number of ballsI(P, r, 2c̄µnr/ε, ε/4), r = 10, n = 6
I(P, r, 2c̄µnr/ε, ε/4), r = 7, n = 3I(P, r, 2c̄µnr/ε, ε/4), r = 12, n = 3
Apart from the outer trees, going downthe (1 + ε) ANN tree is equivalent todisconnecting edges of the MST tree
q
2
1
3
4
5
6The subtrees of a node are disjoint in edges
=⇒ can charge at least 1 edge to each child.
Namely: if nν is the number of children of ν
|Pν| = O(nν) and∑
ν∈D nν = O(n)
Thus, total number of balls:∑ν∈D
O(nν
εlog
µnν
ε
)= O
(n
εlog
n log n
ε
)= O
(n
εlog
n
ε
)
![Page 50: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/50.jpg)
14-1
Construction Time
Construction time will be dominated by constructing the tree D
Can be constructed directly from the cluster tree but this takes time O(n2) time
![Page 51: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/51.jpg)
14-2
Construction Time
Construction time will be dominated by constructing the tree D
Can be constructed directly from the cluster tree but this takes time O(n2) time
In Rd the cluster tree can be (2n− 2)-approximated by a HST in O(n log n) time:
1. construct a 2-spanner of P of size O(n) in O(n log n) time
2. construct an HST that (n− 1) approximates the spanner in O(n log n) time
![Page 52: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/52.jpg)
14-3
Construction Time
Construction time will be dominated by constructing the tree D
Can be constructed directly from the cluster tree but this takes time O(n2) time
In Rd the cluster tree can be (2n− 2)-approximated by a HST in O(n log n) time:
1. construct a 2-spanner of P of size O(n) in O(n log n) time
2. construct an HST that (n− 1) approximates the spanner in O(n log n) time
Only possible in Rd, in general no HST can be computed in subquadratic time
2
1
3
4
5
6
![Page 53: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/53.jpg)
14-4
Construction Time
Construction time will be dominated by constructing the tree D
Can be constructed directly from the cluster tree but this takes time O(n2) time
In Rd the cluster tree can be (2n− 2)-approximated by a HST in O(n log n) time:
1. construct a 2-spanner of P of size O(n) in O(n log n) time
2. construct an HST that (n− 1) approximates the spanner in O(n log n) time
Only possible in Rd, in general no HST can be computed in subquadratic time
2
1
3
4
5
6
24
6
9
12
18
1 2 3 4 5 61
2
3
4
1.5
![Page 54: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/54.jpg)
15-1
Construction Time
In Rd the cluster tree can be (2n− 2)-approximated by a HST in O(n log n) time:
1. construct a 2-spanner of P of size O(n) in O(n log n) time
2. construct an HST that (n− 1) approximates the spanner in O(n log n) time
24
6
9
12
18
1 2 3 4 5 6
To compensate for the approximation factor, grow more balls:Instead of I(P, r, 2c̄µnr/ε, ε/4) construct I(P, r/(2n), 2c̄µnr/ε, ε/4)
![Page 55: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/55.jpg)
15-2
Construction Time
In Rd the cluster tree can be (2n− 2)-approximated by a HST in O(n log n) time:
1. construct a 2-spanner of P of size O(n) in O(n log n) time
2. construct an HST that (n− 1) approximates the spanner in O(n log n) time
24
6
9
12
18
1 2 3 4 5 6
To compensate for the approximation factor, grow more balls:Instead of I(P, r, 2c̄µnr/ε, ε/4) construct I(P, r/(2n), 2c̄µnr/ε, ε/4)
Instead of O(nε log b
a) = O(nε log n) will have:
O(nε log nr
rn
) = O(nε log n2) = O(n
ε log n) balls at every node
![Page 56: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/56.jpg)
15-3
Construction Time
In Rd the cluster tree can be (2n− 2)-approximated by a HST in O(n log n) time:
1. construct a 2-spanner of P of size O(n) in O(n log n) time
2. construct an HST that (n− 1) approximates the spanner in O(n log n) time
24
6
9
12
18
1 2 3 4 5 6
To compensate for the approximation factor, grow more balls:Instead of I(P, r, 2c̄µnr/ε, ε/4) construct I(P, r/(2n), 2c̄µnr/ε, ε/4)
Instead of O(nε log b
a) = O(nε log n) will have:
O(nε log nr
rn
) = O(nε log n2) = O(n
ε log n) balls at every node
Same asymptotic space and time complexity
![Page 57: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/57.jpg)
16-1
Answering ANN queries
Haven’t made our life easier, since answering target ball queries is a difficult problem
![Page 58: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/58.jpg)
16-2
Answering ANN queries
Haven’t made our life easier, since answering target ball queries is a difficult problem
Don’t need exact balls
(1 + ε) ball
r
(1 + ε)r
b≈ is (1 + ε) approximation of b = b(p, r), if
b ⊆ b≈ ⊆ b(p, r(1 + ε)
![Page 59: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/59.jpg)
16-3
Answering ANN queries
Haven’t made our life easier, since answering target ball queries is a difficult problem
Don’t need exact balls
(1 + ε) ball
r
(1 + ε)r
b≈ is (1 + ε) approximation of b = b(p, r), if
b ⊆ b≈ ⊆ b(p, r(1 + ε)
![Page 60: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/60.jpg)
16-4
Answering ANN queries
Haven’t made our life easier, since answering target ball queries is a difficult problem
Don’t need exact balls
(1 + ε) ball
r
(1 + ε)r
b≈ is (1 + ε) approximation of b = b(p, r), if
b ⊆ b≈ ⊆ b(p, r(1 + ε)
![Page 61: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/61.jpg)
16-5
Answering ANN queries
Haven’t made our life easier, since answering target ball queries is a difficult problem
Don’t need exact balls
(1 + ε) ball
r
(1 + ε)r
b≈ is (1 + ε) approximation of b = b(p, r), if
b ⊆ b≈ ⊆ b(p, r(1 + ε)
Consider Interval Near Neighbor structure on approximate balls:
If I≈(P, r, R, ε/16) is a (1 + ε/16) approximation to I(P, r, R, ε/16)
If for point q, I≈(P, r, R, ε/16) returns a ball (p, α), α ∈ [r, R] =⇒ p is (1 + ε/4)-ANN to q:
r(1 + ε/16)i ≤ dP (q) ≤ d(p, q) ≤ r(1 + ε/16)i+1(1 + ε/16) ≤ (1 + ε/4)r
![Page 62: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/62.jpg)
17-1
Fast ANN in Rd
For a given ball, b(p, r), construct a grid centered at p, with cell-size 2i, s.t.√
d2i ≤ (εr)16
Call, b≈ the set of cells that intersect b(p, r)
The distance between 2 points in a d-dimensional cell of size α is at most√∑d
i=1 α2 =√
dα
b≈ is a (1 + ε/16) approximate ball, and contains O(
rd
(εr)d
)= O
(1ε
d)
cells
![Page 63: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/63.jpg)
17-2
Fast ANN in Rd
For a given ball, b(p, r), construct a grid centered at p, with cell-size 2i, s.t.√
d2i ≤ (εr)16
Call, b≈ the set of cells that intersect b(p, r)
The distance between 2 points in a d-dimensional cell of size α is at most√∑d
i=1 α2 =√
dα
b≈ is a (1 + ε/16) approximate ball, and contains O(
rd
(εr)d
)= O
(1ε
d)
cells
![Page 64: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/64.jpg)
18-1
Fast ANN in Rd
• Fix the origin, and construct grid-cells from there
• If there are 2 cells with the same size, pick the one, corresponding to the smallest ball
• Thus construct an approximate I-(1 + ε/16) data structure C
![Page 65: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/65.jpg)
18-2
Fast ANN in Rd
• Fix the origin, and construct grid-cells from there
• If there are 2 cells with the same size, pick the one, corresponding to the smallest ball
• Thus construct an approximate I-(1 + ε/16) data structure C
Finding the smallest ball containing q ⇐⇒ finding the smallest grid-cell containing q
![Page 66: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/66.jpg)
18-3
Fast ANN in Rd
• Fix the origin, and construct grid-cells from there
• If there are 2 cells with the same size, pick the one, corresponding to the smallest ball
• Thus construct an approximate I-(1 + ε/16) data structure C
Finding the smallest ball containing q ⇐⇒ finding the smallest grid-cell containing q
Encode all the cells of C into a compressed quad-tree, such that each cell appears as a node
• Construction takes O(|C| log |C|) time
• Finding the appropriate node in C takes O(log |C|) time
• If information about smallest ball is propagated down the tree, answering a query takes O(log |C|)
![Page 67: Presentation by Maks Ovsjanikov - graphics.stanford.edugraphics.stanford.edu/courses/cs468-06-fall/Slides/maks.pdf · 1-1 S. Har-Peled’s notes, Chapters 6 and 7 Approximate Voronoi](https://reader036.vdocuments.net/reader036/viewer/2022071213/604187705f3821501d1ddb73/html5/thumbnails/67.jpg)
18-4
Fast ANN in Rd
• Fix the origin, and construct grid-cells from there
• If there are 2 cells with the same size, pick the one, corresponding to the smallest ball
• Thus construct an approximate I-(1 + ε/16) data structure C
Finding the smallest ball containing q ⇐⇒ finding the smallest grid-cell containing q
Encode all the cells of C into a compressed quad-tree, such that each cell appears as a node
• Construction takes O(|C| log |C|) time
• Finding the appropriate node in C takes O(log |C|) time
• If information about smallest ball is propagated down the tree, answering a query takes O(log |C|)
Recall that we had a data structure with O(nε log n
ε ) balls. Each ball is approximated by O( 1εd
) cells⇒ The overall complexity of the quad-tree is O(N), where N = O( n
εd+1 log nε ).
By noticing that there are many balls of similar sizes, we reduce the complexity to:
• Construction: O(nε−d log2(n/ε) time
• Storage: O(nε−d log(n/ε) space
• Point location query: O(log(n/ε))