Upcoming SlideShare
×

# Beating the Spread: Time-Optimal Point Meshing

367 views

Published on

We present NetMesh, a new algorithm that produces a conforming Delaunay mesh for point sets in any fixed dimension with guaranteed optimal mesh size and quality.
Our comparison based algorithm runs in time $O(n\log n + m)$, where $n$ is the input size and $m$ is the output size, and with constants depending only on the dimension and the desired element quality bounds.
It can terminate early in $O(n\log n)$ time returning a $O(n)$ size Voronoi diagram of a superset of $P$ with a relaxed quality bound, which again matches the known lower bounds.

The previous best results in the comparison model depended on the log of the <b>spread</b> of the input, the ratio of the largest to smallest pairwise distance among input points.
We reduce this dependence to $O(\log n)$ by using a sequence of $\epsilon$-nets to determine input insertion order in an incremental Voronoi diagram.
We generate a hierarchy of well-spaced meshes and use these to show that the complexity of the Voronoi diagram stays linear in the number of points throughout the construction.

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
367
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
2
0
Likes
0
Embeds 0
No embeds

No notes for slide

### Beating the Spread: Time-Optimal Point Meshing

1. 1. Beating the Spread:Time-Optimal Point Meshing Don Sheehy Carnegie Mellon (soon: INRIA) with Gary Miller and Todd Phillips at CMU
2. 2. Meshing Points 2 Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram n = |P |, m = |M |
3. 3. Meshing Points 2 Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram n = |P |, m = |M |
4. 4. Quality Meshes have cells with bounded 3aspect ratio.aspect ratio = R ≤τ r
5. 5. Quality Meshes have cells with bounded 3aspect ratio.aspect ratio = R ≤τ r
6. 6. Quality Meshes have cells with bounded 3aspect ratio.aspect ratio = R ≤τ r
7. 7. Quality Meshes have cells with bounded 3aspect ratio.aspect ratio = R ≤τ r τ ≥2+ε
8. 8. Prior Work 4
9. 9. Prior Work 4 Delaunay Refinement:
10. 10. Prior Work 4 Delaunay Refinement: Chew ‘89.......................................................................2D
11. 11. Prior Work 4 Delaunay Refinement: Chew ‘89.......................................................................2D Ruppert ’95...........................................Optimality in 2D
12. 12. Prior Work 4 Delaunay Refinement: Chew ‘89.......................................................................2D Ruppert ’95...........................................Optimality in 2D Shewchuck ‘98..........................................Ruppert in 3D
13. 13. Prior Work 4 Delaunay Refinement: Chew ‘89.......................................................................2D Ruppert ’95...........................................Optimality in 2D Shewchuck ‘98..........................................Ruppert in 3D Hudson - Miller - Phillips ‘06..........SVR O(n log Δ + m)
14. 14. Prior Work 4 Delaunay Refinement: Chew ‘89.......................................................................2D Ruppert ’95...........................................Optimality in 2D Shewchuck ‘98..........................................Ruppert in 3D Hudson - Miller - Phillips ‘06..........SVR O(n log Δ + m) Quadtree Methods:
15. 15. Prior Work 4 Delaunay Refinement: Chew ‘89.......................................................................2D Ruppert ’95...........................................Optimality in 2D Shewchuck ‘98..........................................Ruppert in 3D Hudson - Miller - Phillips ‘06..........SVR O(n log Δ + m) Quadtree Methods: Bern - Eppstein - Gilbert ’94......................QT meshing
16. 16. Prior Work 4 Delaunay Refinement: Chew ‘89.......................................................................2D Ruppert ’95...........................................Optimality in 2D Shewchuck ‘98..........................................Ruppert in 3D Hudson - Miller - Phillips ‘06..........SVR O(n log Δ + m) Quadtree Methods: Bern - Eppstein - Gilbert ’94......................QT meshing Bern - Eppstein - Teng ‘99.....................QTs in Parallel
17. 17. Prior Work 4 Delaunay Refinement: Chew ‘89.......................................................................2D Ruppert ’95...........................................Optimality in 2D Shewchuck ‘98..........................................Ruppert in 3D Hudson - Miller - Phillips ‘06..........SVR O(n log Δ + m) Quadtree Methods: Bern - Eppstein - Gilbert ’94......................QT meshing Bern - Eppstein - Teng ‘99.....................QTs in Parallel Hybrid Methods:
18. 18. Prior Work 4 Delaunay Refinement: Chew ‘89.......................................................................2D Ruppert ’95...........................................Optimality in 2D Shewchuck ‘98..........................................Ruppert in 3D Hudson - Miller - Phillips ‘06..........SVR O(n log Δ + m) Quadtree Methods: Bern - Eppstein - Gilbert ’94......................QT meshing Bern - Eppstein - Teng ‘99.....................QTs in Parallel Hybrid Methods: Har-Peled - Ungor ‘05...................O(n log n + m) in 2D
19. 19. Prior Work 4 Delaunay Refinement: Chew ‘89.......................................................................2D Ruppert ’95...........................................Optimality in 2D Shewchuck ‘98..........................................Ruppert in 3D Hudson - Miller - Phillips ‘06..........SVR O(n log Δ + m) Quadtree Methods: Bern - Eppstein - Gilbert ’94......................QT meshing Bern - Eppstein - Teng ‘99.....................QTs in Parallel Hybrid Methods: Har-Peled - Ungor ‘05...................O(n log n + m) in 2D
20. 20. Prior Work 4 Delaunay Refinement: Chew ‘89.......................................................................2D Ruppert ’95...........................................Optimality in 2D Shewchuck ‘98..........................................Ruppert in 3D Hudson - Miller - Phillips ‘06..........SVR O(n log Δ + m) Quadtree Methods: Bern - Eppstein - Gilbert ’94......................QT meshing Bern - Eppstein - Teng ‘99.....................QTs in Parallel Hybrid Methods: Har-Peled - Ungor ‘05...................O(n log n + m) in 2D Many Others
21. 21. Prior Work 4 Delaunay Refinement: Chew ‘89.......................................................................2D Ruppert ’95...........................................Optimality in 2D Shewchuck ‘98..........................................Ruppert in 3D Hudson - Miller - Phillips ‘06..........SVR O(n log Δ + m) Quadtree Methods: Bern - Eppstein - Gilbert ’94......................QT meshing Bern - Eppstein - Teng ‘99.....................QTs in Parallel Hybrid Methods: Har-Peled - Ungor ‘05...................O(n log n + m) in 2D Many Others Our Result O(n log n + m) for point sets in d dimensions
22. 22. Prior Work 4 Delaunay Refinement: Chew ‘89.......................................................................2D Ruppert ’95...........................................Optimality in 2D Shewchuck ‘98..........................................Ruppert in 3D Hudson - Miller - Phillips ‘06..........SVR O(n log Δ + m) Quadtree Methods: Bern - Eppstein - Gilbert ’94......................QT meshing Bern - Eppstein - Teng ‘99.....................QTs in Parallel Hybrid Methods: Har-Peled - Ungor ‘05...................O(n log n + m) in 2D Many Others Our Result O(n log n + m) for point sets in d dimensions Hides dimension terms
23. 23. Beating the spread. 5
24. 24. Beating the spread. 5 P Let s = |x − y| where (x, y) ∈ 2 is the closest pair.
25. 25. Beating the spread. 5 P Let s = |x − y| where (x, y) ∈ 2 is the closest pair. diameter(P ) The spread of P is the ratio ∆ = s .
26. 26. Beating the spread. 5 P Let s = |x − y| where (x, y) ∈ 2 is the closest pair. diameter(P ) The spread of P is the ratio ∆ = s . O(n log ∆ + m)
27. 27. Beating the spread. 5 P Let s = |x − y| where (x, y) ∈ 2 is the closest pair. diameter(P ) The spread of P is the ratio ∆ = s . O(n log ∆ + m) Point location
28. 28. Beating the spread. 5 P Let s = |x − y| where (x, y) ∈ 2 is the closest pair. diameter(P ) The spread of P is the ratio ∆ = s . O(n log ∆ + m) Point location Output sensitive
29. 29. Beating the spread. 5 P Let s = |x − y| where (x, y) ∈ 2 is the closest pair. diameter(P ) The spread of P is the ratio ∆ = s . O(n log ∆ + m) Point location Output sensitive For some point sets, m = Ω(n log ∆)
30. 30. Complexity: How big is the mesh? 6 1 m= Ω lfsP (x)d
31. 31. Complexity: How big is the mesh? 6 How many Steiner Points? 1 m= Ω lfsP (x)d
32. 32. Complexity: How big is the mesh? 6 How many Steiner Points? 1 m= Ω lfsP (x)d m = O(n) as long as there are no big empty annuli with 2 or more points inside [MPS08].
33. 33. Complexity: How big is the mesh? 6 How many Steiner Points? 1 m= Ω lfsP (x)d m = O(n) as long as there are no big empty annuli with 2 or more points inside [MPS08]. How many simplices?
34. 34. Complexity: How big is the mesh? 6 How many Steiner Points? 1 m= Ω lfsP (x)d m = O(n) as long as there are no big empty annuli with 2 or more points inside [MPS08]. How many simplices? Only O(m) simplices. d/2 Compare to m for general Delaunay triangulations. Constants depend on aspect ratio.
35. 35. Complexity: How hard is it to compute a mesh? 7
36. 36. Complexity: How hard is it to compute a mesh? 7 O(n log n + m)
37. 37. Complexity: How hard is it to compute a mesh? 7 O(n log n + m) Point Location
38. 38. Complexity: How hard is it to compute a mesh? 7 O(n log n + m) Point Location Output Sensitive
39. 39. Complexity: How hard is it to compute a mesh? 7 O(n log n + m) Point Location Output Sensitive This is optimal in the comparison model.
40. 40. Complexity: How hard is it to compute a mesh? 7 O(n log n + m) Point Location Output Sensitive This is optimal in the comparison model. O(n log n)
41. 41. Complexity: How hard is it to compute a mesh? 7 O(n log n + m) Point Location Output Sensitive This is optimal in the comparison model. O(n log n)Compute a hierarchical quality mesh.
42. 42. Complexity: How hard is it to compute a mesh? 7 O(n log n + m) Point Location Output Sensitive This is optimal in the comparison model. O(n log n)Compute a hierarchical quality mesh. Key fact: Size is O(n)
43. 43. Complexity: How hard is it to compute a mesh? 7 O(n log n + m) Point Location Output Sensitive This is optimal in the comparison model. O(n log n) + O(m)Compute a hierarchical quality mesh. Key fact: Size is O(n)
44. 44. Complexity: How hard is it to compute a mesh? 7 O(n log n + m) Point Location Output Sensitive This is optimal in the comparison model. O(n log n) + O(m)Compute a hierarchical quality mesh. Finishing post-process. (easy) Key fact: Size is O(n)
45. 45. The Delaunay Triangulation is the dual 8of the Voronoi Diagram. D-ball
46. 46. Quality Meshes have several 9nice properties.
47. 47. Quality Meshes have several 9nice properties.Delaunay balls have constant ply
48. 48. Quality Meshes have several 9nice properties.Delaunay balls have constant plyTotal number of faces is O(m)
49. 49. Quality Meshes have several 9nice properties.Delaunay balls have constant plyTotal number of faces is O(m)Intersection graph of Delaunay balls has constant degree
50. 50. Quality Meshes have several 9nice properties.Delaunay balls have constant plyTotal number of faces is O(m)Intersection graph of Delaunay balls has constant degreeInsertions only take constant time
51. 51. Quality Meshes have several 9nice properties.Delaunay balls have constant plyTotal number of faces is O(m)Intersection graph of Delaunay balls has constant degreeInsertions only take constant timeVoronoi Refinement: If some cell is skinny,add a Steiner point at its farthest vertex.
52. 52. We replace quality with hierarchical quality. 10
53. 53. We replace quality with hierarchical quality. 10
54. 54. We replace quality with hierarchical quality. 10
55. 55. We replace quality with hierarchical quality. 10
56. 56. We replace quality with hierarchical quality. 10Inside the cage: Old definition of quality.
57. 57. We replace quality with hierarchical quality. 10Inside the cage: Old definition of quality.Outside: Treat the whole cage as a single object.
58. 58. We replace quality with hierarchical quality. 10Inside the cage: Old definition of quality.Outside: Treat the whole cage as a single object.Has the same important properties as quality meshes: ply, degree,...
59. 59. The sparse meshing model: 11
60. 60. The sparse meshing model: 11 1 Build a Voronoi diagram incrementally.
61. 61. The sparse meshing model: 11 1 Build a Voronoi diagram incrementally. 2 Interleave input and Steiner point insertions.
62. 62. The sparse meshing model: 11 1 Build a Voronoi diagram incrementally. 2 Interleave input and Steiner point insertions. 3 Recover quality after each input point.
63. 63. The sparse meshing model: 11 This is how we avoid the worst-case Voronoi bounds. 1 Build a Voronoi diagram incrementally. 2 Interleave input and Steiner point insertions. 3 Recover quality after each input point.
64. 64. The sparse meshing model:The New Algorithm 11 1 Build a Voronoi diagram incrementally. 2 Interleave input and Steiner point insertions. 3 Recover quality after each input point.
65. 65. The sparse meshing model:The New Algorithm 11 1 Build a Voronoi diagram incrementally. 2 Interleave input and Steiner point insertions. 3 Recover quality after each input point. hierarchical quality
66. 66. The sparse meshing model:The New Algorithm 11 1 Build a Voronoi diagram incrementally. 2 Interleave input and Steiner point insertions. 3 Recover quality after each input point. hierarchical quality 4 Store uninserted input points in the D-Balls.
67. 67. The sparse meshing model:The New Algorithm 11 1 Build a Voronoi diagram incrementally. 2 Interleave input and Steiner point insertions. 3 Recover quality after each input point. hierarchical quality 4 Store uninserted input points in the D-Balls. 5 Order the input points using range space nets.
68. 68. Point Location in the D-Balls. 12 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates.
69. 69. Point Location in the D-Balls. 12 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates.
70. 70. Point Location in the D-Balls. 12 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates.
71. 71. Point Location in the D-Balls. 12 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates.
72. 72. Point Location in the D-Balls. 12 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates. It’s a history DAG!
73. 73. Range Nets 13
74. 74. Range Nets 13 Deﬁnition. A range space is a pair (X, R), where X is a set (the vertices) and R is a collection of subsets (the ranges).
75. 75. Range Nets 13 Deﬁnition. A range space is a pair (X, R), where X is a set (the vertices) and R is a collection of subsets (the ranges). For us X = P and R is the set of open balls.
76. 76. Range Nets 13 Deﬁnition. A range space is a pair (X, R), where X is a set (the vertices) and R is a collection of subsets (the ranges). For us X = P and R is the set of open balls. Deﬁnition. Given a range space (X, R), a set N ⊂ X is a range space ε-net if for all ranges r ∈ R that contain at least ε|X| vertices, r contains a vertex from N .
77. 77. Range Nets 13 Deﬁnition. A range space is a pair (X, R), where X is a set (the vertices) and R is a collection of subsets (the ranges). For us X = P and R is the set of open balls. Deﬁnition. Given a range space (X, R), a set N ⊂ X is a range space ε-net if for all ranges r ∈ R that contain at least ε|X| vertices, r contains a vertex from N . Theorem: [Chazelle & Matousek 96] For ε, d fixed constants, ε-nets of size O(1) can be computed in O(n) deterministic time.
78. 78. Ordering the inputs 1 14 For each D-Ball, select a 2d -net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat.
79. 79. Ordering the inputs 1 14 For each D-Ball, select a 2d -net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat.
80. 80. Ordering the inputs 1 14 For each D-Ball, select a 2d -net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat.
81. 81. Ordering the inputs 1 14 For each D-Ball, select a 2d -net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat.
82. 82. Ordering the inputs 1 14 For each D-Ball, select a 2d -net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat.
83. 83. Ordering the inputs 1 14 For each D-Ball, select a 2d -net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat. Lemma. Let M be a set of vertices. If an open ball B contains no points of M , then B is contained in the union of d D-balls of M .
84. 84. Ordering the inputs 1 14 For each D-Ball, select a 2d -net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat. max |B ∩ P | D-balls B Goes down by a factor of 2 each round. Lemma. Let M be a set of vertices. If an open ball B contains no points of M , then B is contained in the union of d D-balls of M .
85. 85. Ordering the inputs 1 14 For each D-Ball, select a 2d -net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat. max |B ∩ P | D-balls B Goes down by a factor of 2 each round. => log(n) Rounds Lemma. Let M be a set of vertices. If an open ball B contains no points of M , then B is contained in the union of d D-balls of M .
86. 86. Ordering the inputs 1 14 For each D-Ball, select a 2d -net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat. max |B ∩ P | D-balls B Goes down by a factor of 2 each round. => log(n) Rounds Lemma. Let M be a set of vertices. If an open ball B contains no points of M , then B is contained in the union of d D-balls of M . Note: After k = log 1 rounds, the intermediate mesh is a weak -net for the range space of Euclidean balls. Size: O 1 , Time: O(nk) = O(n log 1 ).
87. 87. To complete the analysis, we must show that thecost of a Round is O(n). 15log n rounds x O(n) time/round = O(n log n) Watch an uninserted point x. Claim: x only gets touched O(1) times per round.
88. 88. To complete the analysis, we must show that thecost of a Round is O(n). 15log n rounds x O(n) time/round = O(n log n) Watch an uninserted point x. Claim: x only gets touched O(1) times per round. x
89. 89. To complete the analysis, we must show that thecost of a Round is O(n). 15log n rounds x O(n) time/round = O(n log n) Watch an uninserted point x. Claim: x only gets touched O(1) times per round. x
90. 90. To complete the analysis, we must show that thecost of a Round is O(n). 15log n rounds x O(n) time/round = O(n log n) Watch an uninserted point x. y Claim: x only gets touched O(1) times per round. x
91. 91. To complete the analysis, we must show that thecost of a Round is O(n). 15log n rounds x O(n) time/round = O(n log n) Watch an uninserted point x. y Claim: x only gets touched O(1) times per round. x
92. 92. To complete the analysis, we must show that thecost of a Round is O(n). 15log n rounds x O(n) time/round = O(n log n) Watch an uninserted point x. y Claim: x only gets touched O(1) times per round. y touches x => y is “close” to x close = 2 hops among D-balls x
93. 93. To complete the analysis, we must show that thecost of a Round is O(n). 15log n rounds x O(n) time/round = O(n log n) Watch an uninserted point x. y Claim: x only gets touched O(1) times per round. y touches x => y is “close” to x close = 2 hops among D-balls x
94. 94. To complete the analysis, we must show that thecost of a Round is O(n). 15log n rounds x O(n) time/round = O(n log n) Watch an uninserted point x. y Claim: x only gets touched O(1) times per round. y touches x => y is “close” to x close = 2 hops among D-balls x Only O(1) D-balls are within 2 hops.
95. 95. To complete the analysis, we must show that thecost of a Round is O(n). 15log n rounds x O(n) time/round = O(n log n) Watch an uninserted point x. y Claim: x only gets touched O(1) times per round. y touches x => y is “close” to x close = 2 hops among D-balls x Only O(1) D-balls are within 2 hops. x
96. 96. To complete the analysis, we must show that thecost of a Round is O(n). 15log n rounds x O(n) time/round = O(n log n) Watch an uninserted point x. y Claim: x only gets touched O(1) times per round. y touches x => y is “close” to x close = 2 hops among D-balls x Only O(1) D-balls are within 2 hops. x
97. 97. To complete the analysis, we must show that thecost of a Round is O(n). 15log n rounds x O(n) time/round = O(n log n) Watch an uninserted point x. y Claim: x only gets touched O(1) times per round. y touches x => y is “close” to x close = 2 hops among D-balls x Only O(1) D-balls are within 2 hops. x
98. 98. To complete the analysis, we must show that thecost of a Round is O(n). 15log n rounds x O(n) time/round = O(n log n) Watch an uninserted point x. y Claim: x only gets touched O(1) times per round. y touches x => y is “close” to x close = 2 hops among D-balls x Only O(1) D-balls are within 2 hops. Only O(1) points are added x to any D-ball in a round.
99. 99. To complete the analysis, we must show that thecost of a Round is O(n). 15log n rounds x O(n) time/round = O(n log n) Watch an uninserted point x. y Claim: x only gets touched O(1) times per round. y touches x => y is “close” to x close = 2 hops among D-balls x Only O(1) D-balls are within 2 hops. Only O(1) points are added x to any D-ball in a round. O(n) total work per round.
100. 100. Meshing Points in (optimal) O(n log n + m) time. Thank you.