Upcoming SlideShare
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Standard text messaging rates apply

# Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

364
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 …

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.

0 Likes
Statistics
Notes
• Full Name
Comment goes here.

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

• Be the first to like this

Views
Total Views
364
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
3
0
Likes
0
Embeds 0
No embeds

No notes for slide

### Transcript

• 1. An Output-Sensitive Algorithm for Voronoi Diagrams andDelaunay Triangulations Don Sheehy INRIA Saclay, France Joint work with Gary Miller at CMU
• 2. Voronoi Diagrams
• 3. Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p.
• 4. Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p.
• 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. 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. 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. 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. Voronoi Diagrams and Delaunaytriangulations are used everywhere.
• 10. Voronoi Diagrams and Delaunaytriangulations are used everywhere. Descartes 1644
• 11. Voronoi Diagrams and Delaunaytriangulations are used everywhere. Descartes 1644 Dirichlet 1850
• 12. Voronoi Diagrams and Delaunaytriangulations are used everywhere. Descartes 1644 Dirichlet 1850 Snow 1854 (probably a myth, but a fun one)
• 13. Voronoi Diagrams and Delaunaytriangulations are used everywhere. Descartes 1644 Dirichlet 1850 Snow 1854 (probably a myth, but a fun one) Voronoi 1908
• 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. 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. 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. 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. 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. Delaunay triangulations and Voronoidiagrams are projections of polyhedra.
• 20. Delaunay triangulations and Voronoidiagrams are projections of polyhedra.
• 21. Delaunay triangulations and Voronoidiagrams are projections of polyhedra.
• 22. Delaunay triangulations and Voronoidiagrams are projections of polyhedra.
• 23. Delaunay triangulations and Voronoidiagrams are projections of polyhedra.
• 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. 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. 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. 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. 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. Weighted Voronoi Diagrams
• 30. Weighted Voronoi Diagrams The diagrams remain piecewise linear.
• 31. Weighted Voronoi Diagrams The diagrams remain piecewise linear. Some points disappear.
• 32. Weighted Voronoi Diagrams The diagrams remain piecewise linear. Some points disappear. Circumballs are replaced by orthoballs.
• 33. Weighted Voronoi Diagrams The diagrams remain piecewise linear. Some points disappear. Circumballs are replaced by orthoballs.
• 34. (Convex Hull)A brief history of Voronoi Diagram algorithms.
• 35. (Convex Hull)A brief history of Voronoi Diagram algorithms. d/2 Chazelle O(n log n + n )
• 36. (Convex Hull)A brief history of Voronoi Diagram algorithms. d/2 Chazelle O(n log n + n ) Avis O(nf )
• 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. (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. (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. (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. (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. Mesh Generation
• 43. Mesh GenerationDecompose a domaininto simple elements.
• 44. Mesh GenerationDecompose a domaininto simple elements.
• 45. Mesh GenerationDecompose a domain Mesh Qualityinto simple elements. Radius/Edge < const
• 46. Mesh GenerationDecompose a domain Mesh Qualityinto simple elements. X ✓ X Radius/Edge < const
• 47. Mesh GenerationDecompose a domain Mesh Quality Conforming to Inputinto simple elements. X ✓ X Radius/Edge < const
• 48. Mesh GenerationDecompose a domain Mesh Quality Conforming to Inputinto simple elements. X ✓ X Radius/Edge < const
• 49. Mesh GenerationDecompose a domain Mesh Quality Conforming to Inputinto simple elements. X ✓ X Radius/Edge < const
• 50. Mesh GenerationDecompose a domain Mesh Quality Conforming to Inputinto simple elements. X ✓ X Radius/Edge < const
• 51. Mesh GenerationDecompose a domain Mesh Quality Conforming to Inputinto simple elements. X ✓ X Radius/Edge < const Voronoi Diagram
• 52. Mesh GenerationDecompose a domain Mesh Quality Conforming to Inputinto simple elements. X ✓ X Radius/Edge < const Voronoi Diagram OutRadius/InRadius < const
• 53. Mesh GenerationDecompose a domain Mesh Quality Conforming to Inputinto simple elements. X ✓ X Radius/Edge < const X ✓ Voronoi Diagram OutRadius/InRadius < const
• 54. Mesh GenerationDecompose a domain Mesh Quality Conforming to Inputinto simple elements. X ✓ X Radius/Edge < const X ✓ Voronoi Diagram OutRadius/InRadius < const
• 55. Meshing Points Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram n = |P |, m = |M |
• 56. Meshing Points Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram n = |P |, m = |M |
• 57. Meshing Points Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram n = |P |, m = |M |
• 58. Meshing Points Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram n = |P |, m = |M |
• 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. 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. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
• 62. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
• 63. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
• 64. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
• 65. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
• 66. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
• 67. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
• 68. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
• 69. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
• 70. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
• 71. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
• 72. Local changes are flips.
• 73. Local changes are flips.
• 74. Local changes are flips.
• 75. Local changes are flips.
• 76. Local changes are flips.
• 77. Local changes are flips.
• 78. Local changes are flips.
• 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. Computing the flip times only requires asingle determinant computation.
• 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. 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. 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. 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. The Algorithm
• 86. The Algorithm Add a bounding box around the points.
• 87. The Algorithm Add a bounding box around the points. Build a quality mesh of the points.
• 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. 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. 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. 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. 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. Flips happen at the intersections ofVoronoi diagrams.
• 94. There are only log(spread) flips per face.
• 95. There are only log(spread) flips per face.
• 96. There are only log(spread) flips per face.
• 97. A summary of the analysis.
• 98. A summary of the analysis. Full dimensional mesh cells intersect output faces at most log(spread) times.
• 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. 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. 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. 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. Summary
• 104. Summary A new output-sensitive algorithm for Voronoi diagrams and Delaunay triangulations in d-dimensions.
• 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. 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. 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. 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.