Successfully reported this slideshow.
Upcoming SlideShare
×

# Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

766 views

Published on

Voronoi diagrams and their duals, Delaunay triangulations, are used in many areas of computing and the sciences.  Starting in 3-dimensions, there is a substantial (i.e. polynomial) difference between the best case and the worst case complexity of these objects when starting with n points.  This motivates the search for algorithms that are output-senstiive rather than relying only on worst-case guarantees.  In this talk, I will describe a simple, new algorithm for computing Voronoi diagrams in d-dimensions that runs in O(f log n log spread) time, where f is the output size and the spread of the input points is the ratio of the diameter to the closest pair distance.  For a wide range of inputs, this is the best known algorithm.  The algorithm is novel in the that it turns the classic algorithm of Delaunay refinement for mesh generation on its head, working backwards from a quality mesh to the Delaunay triangulation of the input.  Along the way, we will see instances of several other classic problems for which no higher-dimensional results are known, including kinetic convex hulls and splitting Delaunay triangulations.

• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

### Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

1. 1. An Output-Sensitive Algorithm for Voronoi Diagrams andDelaunay Triangulations Don Sheehy INRIA Saclay, France Joint work with Gary Miller at CMU
2. 2. Voronoi Diagrams
3. 3. Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p.
4. 4. Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p.
5. 5. Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p. The Voronoi diagram is dual to the Delaunay triangulation.
6. 6. Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p. The Voronoi diagram is dual to the Delaunay triangulation.
7. 7. Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p. The Voronoi diagram is dual to the Delaunay triangulation.
8. 8. Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p. The Voronoi diagram is dual to the Delaunay triangulation. Voronoi k-face Delaunay (d-k)-face
9. 9. Voronoi Diagrams and Delaunaytriangulations are used everywhere.
10. 10. Voronoi Diagrams and Delaunaytriangulations are used everywhere. Descartes 1644
11. 11. Voronoi Diagrams and Delaunaytriangulations are used everywhere. Descartes 1644 Dirichlet 1850
12. 12. Voronoi Diagrams and Delaunaytriangulations are used everywhere. Descartes 1644 Dirichlet 1850 Snow 1854 (probably a myth, but a fun one)
13. 13. Voronoi Diagrams and Delaunaytriangulations are used everywhere. Descartes 1644 Dirichlet 1850 Snow 1854 (probably a myth, but a fun one) Voronoi 1908
14. 14. Voronoi Diagrams and Delaunaytriangulations are used everywhere. Descartes 1644 Dirichlet 1850 Snow 1854 (probably a myth, but a fun one) Voronoi 1908 Thiessen 1911 (meteorology)
15. 15. Voronoi Diagrams and Delaunaytriangulations are used everywhere. Descartes 1644 Dirichlet 1850 Snow 1854 (probably a myth, but a fun one) Voronoi 1908 Thiessen 1911 (meteorology) Geographical Information Systems
16. 16. Voronoi Diagrams and Delaunaytriangulations are used everywhere. Descartes 1644 Dirichlet 1850 Snow 1854 (probably a myth, but a fun one) Voronoi 1908 Thiessen 1911 (meteorology) Geographical Information Systems Graphics
17. 17. Voronoi Diagrams and Delaunaytriangulations are used everywhere. Descartes 1644 Dirichlet 1850 Snow 1854 (probably a myth, but a fun one) Voronoi 1908 Thiessen 1911 (meteorology) Geographical Information Systems Graphics Topological Data Analysis
18. 18. Voronoi Diagrams and Delaunaytriangulations are used everywhere. Descartes 1644 Dirichlet 1850 Snow 1854 (probably a myth, but a fun one) Voronoi 1908 Thiessen 1911 (meteorology) Geographical Information Systems Graphics Topological Data Analysis Mesh Generation
19. 19. Delaunay triangulations and Voronoidiagrams are projections of polyhedra.
20. 20. Delaunay triangulations and Voronoidiagrams are projections of polyhedra.
21. 21. Delaunay triangulations and Voronoidiagrams are projections of polyhedra.
22. 22. Delaunay triangulations and Voronoidiagrams are projections of polyhedra.
23. 23. Delaunay triangulations and Voronoidiagrams are projections of polyhedra.
24. 24. Delaunay triangulations and Voronoidiagrams are projections of polyhedra.Parabolic lifting into d+1 dimensions.The Delaunay triangulation is the projection of lower hull.Other liftings yield weighted Delaunay triangulations.
25. 25. Delaunay triangulations and Voronoidiagrams are projections of polyhedra.Parabolic lifting into d+1 dimensions.The Delaunay triangulation is the projection of lower hull.Other liftings yield weighted Delaunay triangulations.
26. 26. Delaunay triangulations and Voronoidiagrams are projections of polyhedra.Parabolic lifting into d+1 dimensions.The Delaunay triangulation is the projection of lower hull.Other liftings yield weighted Delaunay triangulations.
27. 27. Delaunay triangulations and Voronoidiagrams are projections of polyhedra.Parabolic lifting into d+1 dimensions.The Delaunay triangulation is the projection of lower hull.Other liftings yield weighted Delaunay triangulations.
28. 28. Delaunay triangulations and Voronoidiagrams are projections of polyhedra.Parabolic lifting into d+1 dimensions.The Delaunay triangulation is the projection of lower hull.Other liftings yield weighted Delaunay triangulations.
29. 29. Weighted Voronoi Diagrams
30. 30. Weighted Voronoi Diagrams The diagrams remain piecewise linear.
31. 31. Weighted Voronoi Diagrams The diagrams remain piecewise linear. Some points disappear.
32. 32. Weighted Voronoi Diagrams The diagrams remain piecewise linear. Some points disappear. Circumballs are replaced by orthoballs.
33. 33. Weighted Voronoi Diagrams The diagrams remain piecewise linear. Some points disappear. Circumballs are replaced by orthoballs.
34. 34. (Convex Hull)A brief history of Voronoi Diagram algorithms.
35. 35. (Convex Hull)A brief history of Voronoi Diagram algorithms. d/2 Chazelle O(n log n + n )
36. 36. (Convex Hull)A brief history of Voronoi Diagram algorithms. d/2 Chazelle O(n log n + n ) Avis O(nf )
37. 37. (Convex Hull)A brief history of Voronoi Diagram algorithms. d/2 Chazelle O(n log n + n ) Avis O(nf ) 2 Seidel O(n + f log n)
38. 38. (Convex Hull)A brief history of Voronoi Diagram algorithms. d/2 Chazelle O(n log n + n ) Avis O(nf ) 2 Seidel O(n + f log n) Matousek and 2− 2 O(1) Schwartzkopf O(n d/2 +1 log n + f log n)
39. 39. (Convex Hull)A brief history of Voronoi Diagram algorithms. d/2 Chazelle O(n log n + n ) Avis O(nf ) 2 Seidel O(n + f log n) Matousek and 2− 2 O(1) Schwartzkopf O(n d/2 +1 log n + f log n) 1 1− O(1) Chan O(n log f + (nf ) d/2 +1 log n)
40. 40. (Convex Hull)A brief history of Voronoi Diagram algorithms. d/2 Chazelle O(n log n + n ) Avis O(nf ) 2 Seidel O(n + f log n) Matousek and 2− 2 O(1) Schwartzkopf O(n d/2 +1 log n + f log n) 1 1− O(1) Chan O(n log f + (nf ) d/2 +1 log n) Chan, 1 2 1− 1− O(1) Snoeyink, O((n + (nf ) d/2 + fn d/2 ) log n) Yap
41. 41. (Convex Hull)A brief history of Voronoi Diagram algorithms. d/2 Chazelle O(n log n + n ) Avis O(nf ) 2 Seidel O(n + f log n) Matousek and 2− 2 O(1) Schwartzkopf O(n d/2 +1 log n + f log n) 1 1− O(1) Chan O(n log f + (nf ) d/2 +1 log n) Chan, 1 2 1− 1− O(1) Snoeyink, O((n + (nf ) d/2 + fn d/2 ) log n) Yap Miller and Sheehy O(f log n log ∆) (today’s talk)
42. 42. Mesh Generation
43. 43. Mesh GenerationDecompose a domaininto simple elements.
44. 44. Mesh GenerationDecompose a domaininto simple elements.
45. 45. Mesh GenerationDecompose a domain Mesh Qualityinto simple elements. Radius/Edge < const
46. 46. Mesh GenerationDecompose a domain Mesh Qualityinto simple elements. X ✓ X Radius/Edge < const
47. 47. Mesh GenerationDecompose a domain Mesh Quality Conforming to Inputinto simple elements. X ✓ X Radius/Edge < const
48. 48. Mesh GenerationDecompose a domain Mesh Quality Conforming to Inputinto simple elements. X ✓ X Radius/Edge < const
49. 49. Mesh GenerationDecompose a domain Mesh Quality Conforming to Inputinto simple elements. X ✓ X Radius/Edge < const
50. 50. Mesh GenerationDecompose a domain Mesh Quality Conforming to Inputinto simple elements. X ✓ X Radius/Edge < const
51. 51. Mesh GenerationDecompose a domain Mesh Quality Conforming to Inputinto simple elements. X ✓ X Radius/Edge < const Voronoi Diagram
52. 52. Mesh GenerationDecompose a domain Mesh Quality Conforming to Inputinto simple elements. X ✓ X Radius/Edge < const Voronoi Diagram OutRadius/InRadius < const
53. 53. Mesh GenerationDecompose a domain Mesh Quality Conforming to Inputinto simple elements. X ✓ X Radius/Edge < const X ✓ Voronoi Diagram OutRadius/InRadius < const
54. 54. Mesh GenerationDecompose a domain Mesh Quality Conforming to Inputinto simple elements. X ✓ X Radius/Edge < const X ✓ Voronoi Diagram OutRadius/InRadius < const
55. 55. Meshing Points Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram n = |P |, m = |M |
56. 56. Meshing Points Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram n = |P |, m = |M |
57. 57. Meshing Points Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram n = |P |, m = |M |
58. 58. Meshing Points Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram n = |P |, m = |M |
59. 59. Meshing Points Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram n = |P |, m = |M | Counterintuitive Fact about Meshing: It’s sometimes easier to build the Voronoi/Delaunay of a superset of the input, than of the input alone.
60. 60. Meshing Guarantees Aspect Ratio (quality): v Rv Rv rv ≤τ rv Cell Sizing: lfs(x) := d(x, P {NN(x)}) 1 lfs(v) ≤ Rv ≤ Klfs(v) K Constant Local Complexity: Each cell has at most a constant number of faces. Optimality and Running time: |M | = Θ(|Optimal|) Running time: O(n log n + |M |)
61. 61. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
62. 62. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
63. 63. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
64. 64. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
65. 65. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
66. 66. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
67. 67. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
68. 68. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
69. 69. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
70. 70. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
71. 71. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
72. 72. Local changes are flips.
73. 73. Local changes are flips.
74. 74. Local changes are flips.
75. 75. Local changes are flips.
76. 76. Local changes are flips.
77. 77. Local changes are flips.
78. 78. Local changes are flips.
79. 79. Local changes are flips. Flips correspond to intersections of the Voronoi diagram of the mesh and the Voronoi diagram of the input points.
80. 80. Computing the flip times only requires asingle determinant computation.
81. 81. Computing the flip times only requires asingle determinant computation.   p1 ··· pd+2 d+2 points cospherical iff det  1 ··· 1 =0 2 2 p1 ··· pd+2
82. 82. Computing the flip times only requires asingle determinant computation.   p1 ··· pd+2 d+2 points cospherical iff det  1 ··· 1 =0 2 2 p1 ··· pd+2 d+2 weighted points on a common orthosphere iff   p1 ··· pd+2 det  1 ··· 1 =0 p1 2 − w 1 · · · pd+2 2 − wd+2
83. 83. Computing the flip times only requires asingle determinant computation.   p1 ··· pd+2 d+2 points cospherical iff det  1 ··· 1 =0 2 2 p1 ··· pd+2 d+2 weighted points on a common orthosphere iff   p1 ··· pd+2 det  1 ··· 1 =0 p1 2 − w 1 · · · pd+2 2 − wd+2 t if pi ∈ P Define wi = 0 otherwise
84. 84. Computing the flip times only requires asingle determinant computation.   p1 ··· pd+2 d+2 points cospherical iff det  1 ··· 1 =0 2 2 p1 ··· pd+2 d+2 weighted points on a common orthosphere iff   p1 ··· pd+2 det  1 ··· 1 =0 p1 2 − w 1 · · · pd+2 2 − wd+2 t if pi ∈ P Define wi = 0 otherwise   p1 ··· pd+2 So, det  1 ··· 1  is linear in t. p1 2 − w 1 ··· pd+2 2 − wd+2
85. 85. The Algorithm
86. 86. The Algorithm Add a bounding box around the points.
87. 87. The Algorithm Add a bounding box around the points. Build a quality mesh of the points.
88. 88. The Algorithm Add a bounding box around the points. Build a quality mesh of the points. Keep potential flips on a heap ordered by flip time.
89. 89. The Algorithm Add a bounding box around the points. Build a quality mesh of the points. Keep potential flips on a heap ordered by flip time. (flip time is the weight of the input points when the flip happens)
90. 90. The Algorithm Add a bounding box around the points. Build a quality mesh of the points. Keep potential flips on a heap ordered by flip time. (flip time is the weight of the input points when the flip happens) Repeatedly pop a flip, attempt to do it, and update.
91. 91. The Algorithm Add a bounding box around the points. Build a quality mesh of the points. Keep potential flips on a heap ordered by flip time. (flip time is the weight of the input points when the flip happens) Repeatedly pop a flip, attempt to do it, and update. (at most O(1) new potential flips are added to the heap)
92. 92. The Algorithm Add a bounding box around the points. Build a quality mesh of the points. Keep potential flips on a heap ordered by flip time. (flip time is the weight of the input points when the flip happens) Repeatedly pop a flip, attempt to do it, and update. (at most O(1) new potential flips are added to the heap) When the heap is empty, remove the bounding box and all incident Delaunay faces.
93. 93. Flips happen at the intersections ofVoronoi diagrams.
94. 94. There are only log(spread) flips per face.
95. 95. There are only log(spread) flips per face.
96. 96. There are only log(spread) flips per face.
97. 97. A summary of the analysis.
98. 98. A summary of the analysis. Full dimensional mesh cells intersect output faces at most log(spread) times.
99. 99. A summary of the analysis. Full dimensional mesh cells intersect output faces at most log(spread) times. Since each mesh cell has only a constant number of faces, we only get O(f log(spread)) total flips.
100. 100. A summary of the analysis. Full dimensional mesh cells intersect output faces at most log(spread) times. Since each mesh cell has only a constant number of faces, we only get O(f log(spread)) total flips. Each flip generates at most O(1) new flips on the heap.
101. 101. A summary of the analysis. Full dimensional mesh cells intersect output faces at most log(spread) times. Since each mesh cell has only a constant number of faces, we only get O(f log(spread)) total flips. Each flip generates at most O(1) new flips on the heap. The heap operations require O(log n) time each.
102. 102. A summary of the analysis. Full dimensional mesh cells intersect output faces at most log(spread) times. Since each mesh cell has only a constant number of faces, we only get O(f log(spread)) total flips. Each flip generates at most O(1) new flips on the heap. The heap operations require O(log n) time each. Total running time is O(f log n log (spread)).
103. 103. Summary
104. 104. Summary A new output-sensitive algorithm for Voronoi diagrams and Delaunay triangulations in d-dimensions.
105. 105. Summary A new output-sensitive algorithm for Voronoi diagrams and Delaunay triangulations in d-dimensions. Start with a quality mesh and then remove the Steiner points.
106. 106. Summary A new output-sensitive algorithm for Voronoi diagrams and Delaunay triangulations in d-dimensions. Start with a quality mesh and then remove the Steiner points. Use geometry to bound the combinatorial changes.
107. 107. Summary A new output-sensitive algorithm for Voronoi diagrams and Delaunay triangulations in d-dimensions. Start with a quality mesh and then remove the Steiner points. Use geometry to bound the combinatorial changes. Running time: O(f log n log ∆)
108. 108. Summary A new output-sensitive algorithm for Voronoi diagrams and Delaunay triangulations in d-dimensions. Start with a quality mesh and then remove the Steiner points. Use geometry to bound the combinatorial changes. Running time: O(f log n log ∆) Thank you.