SLIDE 1 Efficiently navigating a random Delaunay triangulation
Nicolas Broutin, Olivier Devillers, Ross Hemsley
SLIDE 2 The Delaunay Triangulation
Take some points
(Assume no 4 points on circle, or 3 points on line)
SLIDE 3
The Delaunay Triangulation
Add all triangles having empty circumcircles
SLIDE 4
The Delaunay Triangulation
Result: Delaunay Triangulation
SLIDE 5
The Delaunay Triangulation
Useful for Interpolation Surface Reconstruction Routing ... Easily extends to higher dimensions
SLIDE 6
The Problem: Point Location
SLIDE 7
Input: Delaunay Triangulation
SLIDE 8
Input: Delaunay Triangulation, Point
SLIDE 9
Output: Triangle containing point
SLIDE 10
A Possible Solution
(1) Choose arbitrary start vertex
SLIDE 11
A Possible Solution
(2) Move to neighbour that is closest to destination
SLIDE 12
A Possible Solution
(2) Move to neighbour that is closest to destination...
SLIDE 13
A Possible Solution
(2) Move to neighbour that is closest to destination...
SLIDE 14
A Possible Solution
(2) Move to neighbour that is closest to destination...
SLIDE 15
A Possible Solution
(3) Terminate when we cannot advance
SLIDE 16
- No (non-trivial) analysis
- Very effective in practice
Idea: Analyse for n random points in unit disc?
Vertex Walk Call this:
Conjecture: Θ(|zq|√n ) (expectation for random z, q)
SLIDE 17
Why is it tricky to analyse?
Next step depends non-trivially on previous steps.
SLIDE 18
A similar algorithm can give the properties we want
Our Contribution:
SLIDE 19
Introducing Cone Walk
“Search Cone” “Search Disc”
SLIDE 20
Zi q Ri Far from destination ⇒ cones do not intersect ⇒ progress for each step is iid r.v
SLIDE 21
Zi q Ri How does this relate to Delaunay... ?
SLIDE 22
Lemma Always a path from Zi to Zi+1 in DT ∩ search disc.
SLIDE 23
Lemma Always a path from Zi to Zi+1 in DT ∩ search disc. Proof By ‘growing circles’
SLIDE 24
Lemma Always a path from Zi to Zi+1 in DT ∩ search disc. Proof By ‘growing circles’
SLIDE 25
Lemma Always a path from Zi to Zi+1 in DT ∩ search disc. Proof By ‘growing circles’
SLIDE 26
Lemma Always a path from Zi to Zi+1 in DT ∩ search disc. Proof By ‘growing circles’
SLIDE 27
q Cone Walk on the Delaunay Triangulation
Algorithm gives a path, like vertex walk
SLIDE 28 Vertex Walk Cone Walk
Competitve Worst case complexity Memoryless Worst Complexity ∀z, q No Yes (< 3.7) Yes No⋆ O(n) Op(|zq|√n log log n + 5
O(n) Op(√n log log n)
All bounds are best known bounds For n uniform points in a unit disc
[see paper] Vertices on Path ∀z, q O(n) Op(|zq|√n + 5
SLIDE 29 Vertex Walk Cone Walk
Competitve Worst case complexity Memoryless Worst Complexity ∀z, q No Yes (< 3.7) Yes No⋆ O(n) Op(|zq|√n log log n + 5
O(n) Op(√n log log n)
All bounds are best known bounds For n uniform points in a unit disc
[see paper] Vertices on Path ∀z, q O(n) Op(|zq|√n + 5
SLIDE 30 Bounding Vertices Accessed
- Know behaviour within discs
- Pointset has no border
- Planar Poisson process (intensity 1)
Assume: [random points with average density 1 on R2]
SLIDE 31
Bounding Vertices Accessed q z Consider some walk
SLIDE 32
Bounding Vertices Accessed q z Consider some walk It accesses all points in discs
SLIDE 33
Bounding Vertices Accessed q z Consider some walk It accesses all points in discs + 1-neighbourhood
SLIDE 34
Bounding Vertices Accessed q z Consider some walk It accesses all points in discs + 1-neighbourhood Outputs path
SLIDE 35
Bounding Vertices Accessed q z
SLIDE 36
Bounding Vertices Accessed q z
SLIDE 37
Bounding Vertices Accessed
Accessed ≤ Blue Crossing Edges +
SLIDE 38
Bounding Vertices Accessed
How many crossing edges?
x
SLIDE 39
Bounding Vertices Accessed
How many crossing edges? Wheel [Devroye et al.]
SLIDE 40 Bounding Vertices Accessed
How many crossing edges? in 1-neighbourhood ⇒ ≥ 1 ×
x
empty
(because of Delaunay property)
SLIDE 41 Bounding Vertices Accessed
How many crossing edges?
P(x a border point) = 24 exp
32|xW|2
[we assume input is R2 for now]
|xW|
SLIDE 42 Bounding Vertices Accessed
How many crossing edges?
P(x a border point) = 24 exp
32|xW|2
[we assume input is R2 for now]
|xW|
E[#border points] =
P(x a border point) λ(dx)
SLIDE 43 Bounding Vertices Accessed
How many crossing edges?
P(x a border point) = 24 exp
32|xW|2
[we assume input is R2 for now]
|xW|
E[#border points] =
P(x a border point) λ(dx) Slivnyak-Mecke Formula
SLIDE 44 Bounding Vertices Accessed
How many crossing edges?
P(x a border point) = 24 exp
32|xW|2
[we assume input is R2 for now]
|xW|
E[#border points] =
24 exp
32|xW|2 λ(dx)
SLIDE 45 Bounding Vertices Accessed
How many crossing edges?
P(x a border point) = 24 exp
32|xW|2
[we assume input is R2 for now]
|xW|
E[#border points] =
24 exp
32|xW|2 λ(dx) ≤
∞
24 exp
32i2 λ(dx) U1 U2
SLIDE 46 Bounding Vertices Accessed
How many crossing edges?
P(x a border point) = 24 exp
32|xW|2
[we assume input is R2 for now]
|xW|
E[#border points] =
24 exp
32|xW|2 λ(dx) ≤
∞
24 exp
32i2 λ(dx) U1 U2 ≤
∞
λ(Ui) 24 exp
32i2
SLIDE 47 Bounding Vertices Accessed
How many crossing edges?
P(x a border point) = 24 exp
32|xW|2
[we assume input is R2 for now]
|xW|
E[#border points] =
24 exp
32|xW|2 λ(dx) ≤
∞
24 exp
32i2 λ(dx) U1 U2 ≤
∞
λ(Ui) 24 exp
32i2 ≤ 24
∞
κ−1
π(2(Rj + i) + 1) exp
32i2
SLIDE 48 Bounding Vertices Accessed
How many crossing edges?
E[#border points] ≤ C · max
SLIDE 49 Bounding Vertices Accessed
How many crossing edges?
E[#border points] ≤ C · max
q
Recall
SLIDE 50 Bounding Vertices Accessed
How many crossing edges?
E[#border points] ≤ C · max
q
Recall
SLIDE 51 Bounding Vertices Accessed
How many crossing edges?
E[#border points] ≤ C · max
q
Recall Euler Relation: crossing 3 ×
# ≤
SLIDE 52
Bounding Vertices Accessed From expectation to concentration
SLIDE 53 Bounding Vertices Accessed
From expectation to concentration Recall: # border =
1{x a border point}
SLIDE 54 Bounding Vertices Accessed
From expectation to concentration Recall: # border =
1{x a border point} Sum of dependent r.v’s
SLIDE 55 Bounding Vertices Accessed
From expectation to concentration Recall: # border =
1{x a border point} Sum of dependent r.v’s
P(#border points ≥ E[#border points] + t) ≤ E
2t2 χ · |X ∩ W ∂|
SLIDE 56 Bounding Vertices Accessed
From expectation to concentration Recall: # border =
1{x a border point} Sum of dependent r.v’s Janson
P(#border points ≥ E[#border points] + t) ≤ E
2t2 χ · |X ∩ W ∂|
SLIDE 57 Bounding Vertices Accessed
From expectation to concentration Recall: # border =
1{x a border point} Sum of dependent r.v’s Janson
P(#border points ≥ E[#border points] + t) ≤ E
2t2 χ · |X ∩ W ∂|
- max. # overlapping ‘wheels’
SLIDE 58 Bounding Vertices Accessed
From expectation to concentration Recall: # border =
1{x a border point} Sum of dependent r.v’s Janson
P(#border points ≥ E[#border points] + t) ≤ E
2t2 χ · |X ∩ W ∂|
- max. # overlapping ‘wheels’
Special region with ‘all’ border points
SLIDE 59
Bounding Vertices Accessed
Bounding the worst case (in brief)
SLIDE 60
Bounding Vertices Accessed
Bounding the worst case (in brief) 1) At most n4 walks on n points
SLIDE 61
Bounding Vertices Accessed
Bounding the worst case (in brief) 1) At most n4 walks on n points 2) Generate ‘small’ sample containing them all
SLIDE 62
Bounding Vertices Accessed
Bounding the worst case (in brief) 1) At most n4 walks on n points 2) Generate ‘small’ sample containing them all 2) Concentration inequalities overwhelm sample size
SLIDE 63
Thanks
SLIDE 64
D 1 p q |pq| Contributes O(|pq|√n )