Upcoming SlideShare
×

# A New Approach to Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

679 views

Published on

We describe a new algorithm for computing the Voronoi diagram of a set of \$n\$ points in constant-dimensional Euclidean space. The running time of our algorithm is \$O(f \log n \log \spread)\$ where \$f\$ is the output complexity of the Voronoi diagram and \$\spread\$ is the spread of the input, the ratio of largest to smallest pairwise distances. Despite the simplicity of the algorithm and its analysis, it improves on the state of the art for all inputs with polynomial spread and near-linear output size. The key idea is to first build the Voronoi diagram of a superset of the input points using ideas from Voronoi refinement mesh generation. Then, the extra points are removed in a straightforward way that allows the total work to be bounded in terms of the output complexity, yielding the output sensitive bound. The removal only involves local flips and is inspired by kinetic data structures.

1 Like
Statistics
Notes
• Full Name
Comment goes here.

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

Views
Total views
679
On SlideShare
0
From Embeds
0
Number of Embeds
71
Actions
Shares
0
0
0
Likes
1
Embeds 0
No embeds

No notes for slide

### A New Approach to Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

1. 1. A New Approach to Output-SensitiveVoronoi DiagramsandDelaunay TriangulationsDon SheehyINRIA Saclay, Francesoon: UConnJoint 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.Geographical Information Systems
11. 11. Voronoi Diagrams and Delaunaytriangulations are used everywhere.Geographical Information SystemsGraphics
12. 12. Voronoi Diagrams and Delaunaytriangulations are used everywhere.Geographical Information SystemsGraphicsTopological Data Analysis
13. 13. Voronoi Diagrams and Delaunaytriangulations are used everywhere.Geographical Information SystemsGraphicsTopological Data AnalysisMesh Generation
14. 14. Delaunay triangulations and Voronoidiagrams are projections of polyhedra.
15. 15. 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.(dual to Power diagrams)
16. 16. 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.(dual to Power diagrams)
17. 17. Weighted Voronoi Diagrams (aka Power Diagrams)
18. 18. Weighted Voronoi Diagrams (aka Power Diagrams)The diagrams remain piecewise linear.
19. 19. Weighted Voronoi Diagrams (aka Power Diagrams)The diagrams remain piecewise linear.Some points disappear.
20. 20. Weighted Voronoi Diagrams (aka Power Diagrams)The diagrams remain piecewise linear.Some points disappear.Circumballs are replaced by orthoballs.
21. 21. Weighted Voronoi Diagrams (aka Power Diagrams)The diagrams remain piecewise linear.Some points disappear.Circumballs are replaced by orthoballs.
22. 22. A brief history of Voronoi Diagram algorithms.(Convex Hull)
23. 23. A brief history of Voronoi Diagram algorithms.O(n log n + n d/2)Chazelle ’93(Convex Hull)
24. 24. A brief history of Voronoi Diagram algorithms.O(n log n + n d/2)Chazelle ’93(Convex Hull)Swart ’85Avis & Fukuda ’92O(nf)
25. 25. A brief history of Voronoi Diagram algorithms.O(n log n + n d/2)Chazelle ’93(Convex Hull)Swart ’85Avis & Fukuda ’92O(nf)O(n2+ f log n)Seidel ’86
26. 26. A brief history of Voronoi Diagram algorithms.O(n log n + n d/2)Chazelle ’93(Convex Hull)Swart ’85Avis & Fukuda ’92O(nf)O(n2+ f log n)Seidel ’86O(n2− 2d/2 +1 logO(1)n + f log n)Matousek andSchwartzkopf ’92
27. 27. A brief history of Voronoi Diagram algorithms.O(n log n + n d/2)Chazelle ’93(Convex Hull)Swart ’85Avis & Fukuda ’92O(nf)O(n2+ f log n)Seidel ’86O(n2− 2d/2 +1 logO(1)n + f log n)Matousek andSchwartzkopf ’92O(n log f + (nf)1− 1d/2 +1 logO(1)n)Chan’96
28. 28. A brief history of Voronoi Diagram algorithms.O(n log n + n d/2)Chazelle ’93(Convex Hull)Swart ’85Avis & Fukuda ’92O(nf)O(n2+ f log n)Seidel ’86O(n2− 2d/2 +1 logO(1)n + f log n)Matousek andSchwartzkopf ’92O(n log f + (nf)1− 1d/2 +1 logO(1)n)Chan’96O((n + (nf)1− 1d/2 + fn1− 2d/2 ) logO(1)n)Chan,Snoeyink,Yap ’97
29. 29. A brief history of Voronoi Diagram algorithms.O(n log n + n d/2)Chazelle ’93O(f log n log ∆)Miller and Sheehy(today’s talk)(Convex Hull)Swart ’85Avis & Fukuda ’92O(nf)O(n2+ f log n)Seidel ’86O(n2− 2d/2 +1 logO(1)n + f log n)Matousek andSchwartzkopf ’92O(n log f + (nf)1− 1d/2 +1 logO(1)n)Chan’96O((n + (nf)1− 1d/2 + fn1− 2d/2 ) logO(1)n)Chan,Snoeyink,Yap ’97
30. 30. Meshing PointsInput: P ⊂ RdOutput: M ⊃ P with a “nice” Voronoi diagramn = |P|, m = |M|
31. 31. Meshing PointsInput: P ⊂ RdOutput: M ⊃ P with a “nice” Voronoi diagramn = |P|, m = |M|
32. 32. Meshing PointsInput: P ⊂ RdOutput: M ⊃ P with a “nice” Voronoi diagramn = |P|, m = |M|
33. 33. Meshing PointsInput: P ⊂ RdOutput: M ⊃ P with a “nice” Voronoi diagramn = |P|, m = |M|
34. 34. Meshing PointsInput: P ⊂ RdOutput: M ⊃ P with a “nice” Voronoi diagramn = |P|, m = |M|Counterintuitive Fact about Meshing:It’s sometimes easier to build the Voronoi/Delaunayof a superset of the input, than of the input alone.
35. 35. Meshing Guarantees
36. 36. Meshing GuaranteesAspect Ratio (quality): vRvrvRvrv≤ τ
37. 37. Meshing GuaranteesAspect Ratio (quality):Cell Sizing:vRvrvRvrv≤ τlfs(x) := d(x, P {NN(x)})1Klfs(v) ≤ Rv ≤ Klfs(v)
38. 38. Meshing GuaranteesAspect Ratio (quality):Cell Sizing:Constant Local Complexity:vRvrvRvrv≤ τlfs(x) := d(x, P {NN(x)})Each cell has at most a constant number of faces.1Klfs(v) ≤ Rv ≤ Klfs(v)
39. 39. Meshing GuaranteesAspect Ratio (quality):Cell Sizing:Constant Local Complexity:Optimal Size:vRvrvRvrv≤ τlfs(x) := d(x, P {NN(x)})|M| = Θ(|Optimal|)Each cell has at most a constant number of faces.1Klfs(v) ≤ Rv ≤ Klfs(v)
40. 40. Meshing GuaranteesAspect Ratio (quality):Cell Sizing:Constant Local Complexity:Optimal Size:vRvrvRvrv≤ τlfs(x) := d(x, P {NN(x)})|M| = Θ(|Optimal|)Running time: O(n log n + |M|)Each cell has at most a constant number of faces.1Klfs(v) ≤ Rv ≤ Klfs(v)
41. 41. Mesh Generation in reverse?
42. 42. Mesh Generation in reverse?Build a quality mesh.
43. 43. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.
44. 44. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.
45. 45. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.Local changes areflips.
46. 46. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.Local changes areflips.
47. 47. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.Local changes areflips.
48. 48. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.Local changes areflips.
49. 49. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.Local changes areflips.
50. 50. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.Local changes areflips.
51. 51. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.Local changes areflips.
52. 52. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.Local changes areflips.
53. 53. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.Local changes areflips.
54. 54. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.Local changes areflips.
55. 55. Mesh Generation in reverse?Build a quality mesh.Increase the weightsof the input points.Update the structurefor each local change.Local changes areflips.
56. 56. The Algorithm
57. 57. The AlgorithmAdd a bounding box around the points.
58. 58. The AlgorithmAdd a bounding box around the points.Build a quality mesh of the points.
59. 59. The AlgorithmAdd a bounding box around the points.Build a quality mesh of the points.Keep potential flips on a heap ordered by flip time.
60. 60. The AlgorithmAdd 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)
61. 61. The AlgorithmAdd 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.
62. 62. The AlgorithmAdd 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)
63. 63. The AlgorithmAdd 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 andall incident Delaunay faces.
64. 64. Local changes are flips.
65. 65. Local changes are flips.
66. 66. Local changes are flips.
67. 67. Local changes are flips.
68. 68. Local changes are flips.
69. 69. Local changes are flips.
70. 70. Local changes are flips.
71. 71. Local changes are flips.Flips correspond to intersections of the Voronoi diagram of themesh and the Voronoi diagram of the input points.
72. 72. There are only log(spread) flips per face.
73. 73. There are only log(spread) flips per face.
74. 74. There are only log(spread) flips per face.
75. 75. A summary of the analysis.
76. 76. A summary of the analysis.Full dimensional mesh cells intersect output faces atmost log(spread) times.
77. 77. A summary of the analysis.Full dimensional mesh cells intersect output faces atmost log(spread) times.Since each mesh cell has only a constant number offaces, we only get O(f log(spread)) total flips.
78. 78. A summary of the analysis.Full dimensional mesh cells intersect output faces atmost log(spread) times.Since each mesh cell has only a constant number offaces, we only get O(f log(spread)) total flips.Each flip generates at most O(1) new flips on the heap.
79. 79. A summary of the analysis.Full dimensional mesh cells intersect output faces atmost log(spread) times.Since each mesh cell has only a constant number offaces, 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.
80. 80. A summary of the analysis.Full dimensional mesh cells intersect output faces atmost log(spread) times.Since each mesh cell has only a constant number offaces, 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)).
81. 81. Summary
82. 82. SummaryA new output-sensitive algorithm for Voronoi diagrams andDelaunay triangulations in d-dimensions.
83. 83. SummaryA new output-sensitive algorithm for Voronoi diagrams andDelaunay triangulations in d-dimensions.Start with a quality mesh and then remove the Steiner points.
84. 84. SummaryA new output-sensitive algorithm for Voronoi diagrams andDelaunay triangulations in d-dimensions.Start with a quality mesh and then remove the Steiner points.Use geometry to bound the combinatorial changes.
85. 85. SummaryA new output-sensitive algorithm for Voronoi diagrams andDelaunay triangulations in d-dimensions.Start with a quality mesh and then remove the Steiner points.Use geometry to bound the combinatorial changes.O(f log n log ∆)Running time:
86. 86. SummaryA new output-sensitive algorithm for Voronoi diagrams andDelaunay triangulations in d-dimensions.Start with a quality mesh and then remove the Steiner points.Use geometry to bound the combinatorial changes.O(f log n log ∆)Running time:Thank you.