Successfully reported this slideshow.
An Output-Sensitive Algorithm for     Voronoi Diagrams               andDelaunay Triangulations           Don Sheehy      ...
Voronoi Diagrams
Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p.
Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p.
Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p.    The Voronoi diagram is dual to the ...
Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p.    The Voronoi diagram is dual to the ...
Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p.    The Voronoi diagram is dual to the ...
Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p.    The Voronoi diagram is dual to the ...
Voronoi Diagrams and Delaunaytriangulations are used everywhere.
Voronoi Diagrams and Delaunaytriangulations are used everywhere.  Descartes 1644
Voronoi Diagrams and Delaunaytriangulations are used everywhere.  Descartes 1644  Dirichlet 1850
Voronoi Diagrams and Delaunaytriangulations are used everywhere.  Descartes 1644  Dirichlet 1850  Snow 1854 (probably a my...
Voronoi Diagrams and Delaunaytriangulations are used everywhere.  Descartes 1644  Dirichlet 1850  Snow 1854 (probably a my...
Voronoi Diagrams and Delaunaytriangulations are used everywhere.  Descartes 1644  Dirichlet 1850  Snow 1854 (probably a my...
Voronoi Diagrams and Delaunaytriangulations are used everywhere.  Descartes 1644  Dirichlet 1850  Snow 1854 (probably a my...
Voronoi Diagrams and Delaunaytriangulations are used everywhere.  Descartes 1644  Dirichlet 1850  Snow 1854 (probably a my...
Voronoi Diagrams and Delaunaytriangulations are used everywhere.  Descartes 1644  Dirichlet 1850  Snow 1854 (probably a my...
Voronoi Diagrams and Delaunaytriangulations are used everywhere.  Descartes 1644  Dirichlet 1850  Snow 1854 (probably a my...
Delaunay triangulations and Voronoidiagrams are projections of polyhedra.
Delaunay triangulations and Voronoidiagrams are projections of polyhedra.
Delaunay triangulations and Voronoidiagrams are projections of polyhedra.
Delaunay triangulations and Voronoidiagrams are projections of polyhedra.
Delaunay triangulations and Voronoidiagrams are projections of polyhedra.
Delaunay triangulations and Voronoidiagrams are projections of polyhedra.Parabolic lifting into d+1 dimensions.The Delauna...
Delaunay triangulations and Voronoidiagrams are projections of polyhedra.Parabolic lifting into d+1 dimensions.The Delauna...
Delaunay triangulations and Voronoidiagrams are projections of polyhedra.Parabolic lifting into d+1 dimensions.The Delauna...
Delaunay triangulations and Voronoidiagrams are projections of polyhedra.Parabolic lifting into d+1 dimensions.The Delauna...
Delaunay triangulations and Voronoidiagrams are projections of polyhedra.Parabolic lifting into d+1 dimensions.The Delauna...
Weighted Voronoi Diagrams
Weighted Voronoi Diagrams  The diagrams remain piecewise linear.
Weighted Voronoi Diagrams  The diagrams remain piecewise linear.  Some points disappear.
Weighted Voronoi Diagrams  The diagrams remain piecewise linear.  Some points disappear.  Circumballs are replaced by orth...
Weighted Voronoi Diagrams  The diagrams remain piecewise linear.  Some points disappear.  Circumballs are replaced by orth...
(Convex Hull)A brief history of Voronoi Diagram algorithms.
(Convex Hull)A brief history of Voronoi Diagram algorithms.                            d/2 Chazelle   O(n log n + n       ...
(Convex Hull)A brief history of Voronoi Diagram algorithms.                            d/2 Chazelle   O(n log n + n       ...
(Convex Hull)A brief history of Voronoi Diagram algorithms.                            d/2 Chazelle   O(n log n + n       ...
(Convex Hull)A brief history of Voronoi Diagram algorithms.                                 d/2 Chazelle     O(n log n + n...
(Convex Hull)A brief history of Voronoi Diagram algorithms.                                 d/2 Chazelle     O(n log n + n...
(Convex Hull)A brief history of Voronoi Diagram algorithms.                                 d/2 Chazelle     O(n log n + n...
(Convex Hull)A brief history of Voronoi Diagram algorithms.                                     d/2 Chazelle        O(n lo...
Mesh Generation
Mesh GenerationDecompose a domaininto simple elements.
Mesh GenerationDecompose a domaininto simple elements.
Mesh GenerationDecompose a domain                          Mesh Qualityinto simple elements.                        Radius...
Mesh GenerationDecompose a domain                            Mesh Qualityinto simple elements.                        X   ...
Mesh GenerationDecompose a domain                            Mesh Quality       Conforming to Inputinto simple elements.  ...
Mesh GenerationDecompose a domain                            Mesh Quality       Conforming to Inputinto simple elements.  ...
Mesh GenerationDecompose a domain                            Mesh Quality       Conforming to Inputinto simple elements.  ...
Mesh GenerationDecompose a domain                            Mesh Quality       Conforming to Inputinto simple elements.  ...
Mesh GenerationDecompose a domain                            Mesh Quality       Conforming to Inputinto simple elements.  ...
Mesh GenerationDecompose a domain                              Mesh Quality           Conforming to Inputinto simple eleme...
Mesh GenerationDecompose a domain                              Mesh Quality           Conforming to Inputinto simple eleme...
Mesh GenerationDecompose a domain                              Mesh Quality           Conforming to Inputinto simple eleme...
Meshing Points   Input: P ⊂ Rd   Output: M ⊃ P with a “nice” Voronoi diagram   n = |P |, m = |M |
Meshing Points   Input: P ⊂ Rd   Output: M ⊃ P with a “nice” Voronoi diagram   n = |P |, m = |M |
Meshing Points   Input: P ⊂ Rd   Output: M ⊃ P with a “nice” Voronoi diagram   n = |P |, m = |M |
Meshing Points   Input: P ⊂ Rd   Output: M ⊃ P with a “nice” Voronoi diagram   n = |P |, m = |M |
Meshing Points   Input: P ⊂ Rd   Output: M ⊃ P with a “nice” Voronoi diagram   n = |P |, m = |M |            Counterintuit...
Meshing Guarantees    Aspect Ratio (quality):             v                                                  Rv           ...
Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local...
Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local...
Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local...
Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local...
Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local...
Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local...
Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local...
Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local...
Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local...
Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local...
Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local...
Local changes are flips.
Local changes are flips.
Local changes are flips.
Local changes are flips.
Local changes are flips.
Local changes are flips.
Local changes are flips.
Local changes are flips. Flips correspond to intersections of the Voronoi diagram of the mesh and the Voronoi diagram of t...
Computing the flip times only requires asingle determinant computation.
Computing the flip times only requires asingle determinant computation.                                                 ...
Computing the flip times only requires asingle determinant computation.                                                 ...
Computing the flip times only requires asingle determinant computation.                                                 ...
Computing the flip times only requires asingle determinant computation.                                                 ...
The Algorithm
The Algorithm   Add a bounding box around the points.
The Algorithm   Add a bounding box around the points.   Build a quality mesh of the points.
The Algorithm   Add a bounding box around the points.   Build a quality mesh of the points.   Keep potential flips on a he...
The Algorithm   Add a bounding box around the points.   Build a quality mesh of the points.   Keep potential flips on a he...
The Algorithm   Add a bounding box around the points.   Build a quality mesh of the points.   Keep potential flips on a he...
The Algorithm   Add a bounding box around the points.   Build a quality mesh of the points.   Keep potential flips on a he...
The Algorithm   Add a bounding box around the points.   Build a quality mesh of the points.   Keep potential flips on a he...
Flips happen at the intersections ofVoronoi diagrams.
There are only log(spread) flips per face.
There are only log(spread) flips per face.
There are only log(spread) flips per face.
A summary of the analysis.
A summary of the analysis.   Full dimensional mesh cells intersect output faces at   most log(spread) times.
A summary of the analysis.   Full dimensional mesh cells intersect output faces at   most log(spread) times.   Since each ...
A summary of the analysis.   Full dimensional mesh cells intersect output faces at   most log(spread) times.   Since each ...
A summary of the analysis.   Full dimensional mesh cells intersect output faces at   most log(spread) times.   Since each ...
A summary of the analysis.   Full dimensional mesh cells intersect output faces at   most log(spread) times.   Since each ...
Summary
Summary A new output-sensitive algorithm for Voronoi diagrams and Delaunay triangulations in d-dimensions.
Summary A new output-sensitive algorithm for Voronoi diagrams and Delaunay triangulations in d-dimensions. Start with a qu...
Summary A new output-sensitive algorithm for Voronoi diagrams and Delaunay triangulations in d-dimensions. Start with a qu...
Summary A new output-sensitive algorithm for Voronoi diagrams and Delaunay triangulations in d-dimensions. Start with a qu...
Summary A new output-sensitive algorithm for Voronoi diagrams and Delaunay triangulations in d-dimensions. Start with a qu...
Upcoming SlideShare
Loading in …5
×

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.

  • 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.

×