Efficiently navigating a random Delaunay triangulation Nicolas Broutin, Olivier Devillers, Ross Hemsley
The Delaunay Triangulation Take some points (Assume no 4 points on circle, or 3 points on line)
The Delaunay Triangulation Add all triangles having empty circumcircles
The Delaunay Triangulation Result: Delaunay Triangulation
The Delaunay Triangulation Useful for Interpolation Surface Reconstruction Routing ... Easily extends to higher dimensions
The Problem: Point Location
Input: Delaunay Triangulation
Input: Delaunay Triangulation , Point
Output: Triangle containing point
A Possible Solution (1) Choose arbitrary start vertex
A Possible Solution (2) Move to neighbour that is closest to destination
A Possible Solution (2) Move to neighbour that is closest to destination...
A Possible Solution (2) Move to neighbour that is closest to destination...
A Possible Solution (2) Move to neighbour that is closest to destination...
A Possible Solution (3) Terminate when we cannot advance
Call this: Vertex Walk - No (non-trivial) analysis - Very effective in practice Idea: Analyse for n random points in unit disc? Conjecture: Θ( | zq |√ n ) (expectation for random z, q )
Why is it tricky to analyse? Next step depends non-trivially on previous steps.
Our Contribution: A similar algorithm can give the properties we want
Introducing Cone Walk “Search Cone” “Search Disc”
Far from destination ⇒ cones do not intersect R i q Z i ⇒ progress for each step is iid r.v
R i q Z i How does this relate to Delaunay... ?
Lemma Always a path from Z i to Z i +1 in DT ∩ search disc.
Lemma Always a path from Z i to Z i +1 in DT ∩ search disc. Proof By ‘growing circles’
Lemma Always a path from Z i to Z i +1 in DT ∩ search disc. Proof By ‘growing circles’
Lemma Always a path from Z i to Z i +1 in DT ∩ search disc. Proof By ‘growing circles’
Lemma Always a path from Z i to Z i +1 in DT ∩ search disc. Proof By ‘growing circles’
Cone Walk on the Delaunay Triangulation q Algorithm gives a path, like vertex walk
Vertex Walk Cone Walk Competitve No Yes ( < 3.7) O p ( √ n log log n ) Worst case complexity O ( n ) No ⋆ Memoryless Yes [see paper] O p ( | zq |√ n log log n + 5 | zq | log 6 n ) � Worst Complexity ∀ z, q O ( n ) O p ( | zq |√ n + 5 | zq | log 6 n ) � Vertices on Path ∀ z, q O ( n ) All bounds are best known bounds For n uniform points in a unit disc
Vertex Walk Cone Walk Competitve No Yes ( < 3.7) O p ( √ n log log n ) Worst case complexity O ( n ) No ⋆ Memoryless Yes [see paper] O p ( | zq |√ n log log n + 5 | zq | log 6 n ) � Worst Complexity ∀ z, q O ( n ) O p ( | zq |√ n + 5 | zq | log 6 n ) � Vertices on Path ∀ z, q O ( n ) All bounds are best known bounds For n uniform points in a unit disc
Bounding Vertices Accessed Assume: - Know behaviour within discs - Pointset has no border - Planar Poisson process (intensity 1) [random points with average density 1 on R 2 ]
Bounding Vertices Accessed q Consider some walk z
Bounding Vertices Accessed q Consider some walk z It accesses all points in discs
Bounding Vertices Accessed q Consider some walk z It accesses all points in discs + 1-neighbourhood
Bounding Vertices Accessed q Consider some walk Outputs path z It accesses all points in discs + 1-neighbourhood
Bounding Vertices Accessed q z
Bounding Vertices Accessed q z
Bounding Vertices Accessed Crossing Edges + Accessed ≤ Blue
Bounding Vertices Accessed How many crossing edges? x
Bounding Vertices Accessed How many crossing edges? Wheel [Devroye et al.]
Bounding Vertices Accessed How many crossing edges? x in 1-neighbourhood ⇒ ≥ 1 × empty (because of Delaunay property)
Bounding Vertices Accessed How many crossing edges? | xW | � − π 32 | xW | 2 � P ( x a border point ) = 24 exp [we assume input is R 2 for now]
Bounding Vertices Accessed How many crossing edges? � E [# border points ] = P ( x a border point ) λ ( dx ) R 2 \ W | xW | � − π 32 | xW | 2 � P ( x a border point ) = 24 exp [we assume input is R 2 for now]
Bounding Vertices Accessed Slivnyak-Mecke Formula How many crossing edges? � E [# border points ] = P ( x a border point ) λ ( dx ) R 2 \ W | xW | � − π 32 | xW | 2 � P ( x a border point ) = 24 exp [we assume input is R 2 for now]
Bounding Vertices Accessed How many crossing edges? � − π � 32 | xW | 2 � E [# border points ] = 24 exp λ ( dx ) R 2 \ W | xW | � − π 32 | xW | 2 � P ( x a border point ) = 24 exp [we assume input is R 2 for now]
Bounding Vertices Accessed How many crossing edges? � − π � 32 | xW | 2 � E [# border points ] = 24 exp λ ( dx ) R 2 \ W | xW | ∞ � − π � 32 i 2 � � ≤ 24 exp λ ( dx ) U 1 U i i =0 U 2 � − π 32 | xW | 2 � P ( x a border point ) = 24 exp [we assume input is R 2 for now]
Bounding Vertices Accessed How many crossing edges? � − π � 32 | xW | 2 � E [# border points ] = 24 exp λ ( dx ) R 2 \ W | xW | ∞ � − π � 32 i 2 � � ≤ 24 exp λ ( dx ) U 1 U i i =0 ∞ − π � 32 i 2 � � ≤ λ ( U i ) 24 exp i =0 U 2 � − π 32 | xW | 2 � P ( x a border point ) = 24 exp [we assume input is R 2 for now]
Bounding Vertices Accessed How many crossing edges? � − π � 32 | xW | 2 � E [# border points ] = 24 exp λ ( dx ) R 2 \ W | xW | ∞ � − π � 32 i 2 � � ≤ 24 exp λ ( dx ) U 1 U i i =0 ∞ − π � 32 i 2 � � ≤ λ ( U i ) 24 exp i =0 U 2 ∞ κ − 1 − π � − π 32 | xW | 2 � P ( x a border point ) = 24 exp � 32 i 2 � � � ≤ 24 π (2( R j + i ) + 1) exp [we assume input is R 2 for now] i =0 j =0
Bounding Vertices Accessed How many crossing edges? | zq | , log 6 n � � E [# border points ] ≤ C · max
Bounding Vertices Accessed How many crossing edges? | zq | , log 6 n � � E [# border points ] ≤ C · max Recall q z
Bounding Vertices Accessed How many crossing edges? | zq | , log 6 n � � E [# border points ] ≤ C · max Recall q z
Bounding Vertices Accessed How many crossing edges? | zq | , log 6 n � � E [# border points ] ≤ C · max Recall q z Euler Relation: � � # crossing ≤ 3 × border + blue
Bounding Vertices Accessed From expectation to concentration
Bounding Vertices Accessed From expectation to concentration Recall: � # border = 1 { x a border point } x ∈ X
Bounding Vertices Accessed From expectation to concentration Sum of dependent r.v’s Recall: � # border = 1 { x a border point } x ∈ X
Bounding Vertices Accessed From expectation to concentration Sum of dependent r.v’s Recall: � # border = 1 { x a border point } x ∈ X 2 t 2 � � �� P (# border points ≥ E [# border points ] + t ) ≤ E exp − χ · | X ∩ W ∂ |
Bounding Vertices Accessed From expectation to concentration Sum of dependent r.v’s Recall: � # border = 1 { x a border point } x ∈ X Janson 2 t 2 � � �� P (# border points ≥ E [# border points ] + t ) ≤ E exp − χ · | X ∩ W ∂ |
Bounding Vertices Accessed From expectation to concentration Sum of dependent r.v’s Recall: � # border = 1 { x a border point } x ∈ X Janson 2 t 2 � � �� P (# border points ≥ E [# border points ] + t ) ≤ E exp − χ · | X ∩ W ∂ | max. # overlapping ‘wheels’
Bounding Vertices Accessed From expectation to concentration Sum of dependent r.v’s Recall: � # border = 1 { x a border point } x ∈ X Janson 2 t 2 � � �� P (# border points ≥ E [# border points ] + t ) ≤ E exp − χ · | X ∩ W ∂ | max. # overlapping ‘wheels’ Special region with ‘all’ border points
Bounding Vertices Accessed Bounding the worst case (in brief)
Bounding Vertices Accessed Bounding the worst case (in brief) 1) At most n 4 walks on n points
Bounding Vertices Accessed Bounding the worst case (in brief) 1) At most n 4 walks on n points 2) Generate ‘small’ sample containing them all
Bounding Vertices Accessed Bounding the worst case (in brief) 1) At most n 4 walks on n points 2) Generate ‘small’ sample containing them all 2) Concentration inequalities overwhelm sample size
Thanks
Contributes O ( | pq |√ n ) q p | pq | 1 D
Recommend
More recommend