Upcoming SlideShare
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

# Now you can save presentations on your phone or tablet

### Available for both IPhone and Android

Standard text messaging rates apply

# Beating the Spread: Time-Optimal Point Meshing

• 191 views
Published

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

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.

• Comment goes here.
Are you sure you want to
Be the first to comment
Be the first to like this

Total Views
191
On SlideShare
0
From Embeds
0
Number of Embeds
1

Shares
1
0
Likes
0

No embeds

### Report content

No notes for slide

### Transcript

• 1. Beating the Spread:Time-Optimal Point Meshing Don Sheehy Carnegie Mellon (soon: INRIA) with Gary Miller and Todd Phillips at CMU
• 2. Meshing Points 2 Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram n = |P |, m = |M |
• 3. Meshing Points 2 Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram n = |P |, m = |M |
• 4. Quality Meshes have cells with bounded 3aspect ratio.aspect ratio = R ≤τ r
• 5. Quality Meshes have cells with bounded 3aspect ratio.aspect ratio = R ≤τ r
• 6. Quality Meshes have cells with bounded 3aspect ratio.aspect ratio = R ≤τ r
• 7. Quality Meshes have cells with bounded 3aspect ratio.aspect ratio = R ≤τ r τ ≥2+ε
• 8. Prior Work 4
• 9. Prior Work 4 Delaunay Refinement:
• 10. Prior Work 4 Delaunay Refinement: Chew ‘89.......................................................................2D
• 11. Prior Work 4 Delaunay Refinement: Chew ‘89.......................................................................2D Ruppert ’95...........................................Optimality in 2D
• 12. Prior Work 4 Delaunay Refinement: Chew ‘89.......................................................................2D Ruppert ’95...........................................Optimality in 2D Shewchuck ‘98..........................................Ruppert in 3D
• 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Beating the spread. 5
• 24. Beating the spread. 5 P Let s = |x − y| where (x, y) ∈ 2 is the closest pair.
• 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. 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. 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. 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. 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. Complexity: How big is the mesh? 6 1 m= Ω lfsP (x)d
• 31. Complexity: How big is the mesh? 6 How many Steiner Points? 1 m= Ω lfsP (x)d
• 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. 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. 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. Complexity: How hard is it to compute a mesh? 7
• 36. Complexity: How hard is it to compute a mesh? 7 O(n log n + m)
• 37. Complexity: How hard is it to compute a mesh? 7 O(n log n + m) Point Location
• 38. Complexity: How hard is it to compute a mesh? 7 O(n log n + m) Point Location Output Sensitive
• 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. 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. 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. 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. 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. 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. The Delaunay Triangulation is the dual 8of the Voronoi Diagram. D-ball
• 46. Quality Meshes have several 9nice properties.
• 47. Quality Meshes have several 9nice properties.Delaunay balls have constant ply
• 48. Quality Meshes have several 9nice properties.Delaunay balls have constant plyTotal number of faces is O(m)
• 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. 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. 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. We replace quality with hierarchical quality. 10
• 53. We replace quality with hierarchical quality. 10
• 54. We replace quality with hierarchical quality. 10
• 55. We replace quality with hierarchical quality. 10
• 56. We replace quality with hierarchical quality. 10Inside the cage: Old definition of quality.
• 57. We replace quality with hierarchical quality. 10Inside the cage: Old definition of quality.Outside: Treat the whole cage as a single object.
• 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. The sparse meshing model: 11
• 60. The sparse meshing model: 11 1 Build a Voronoi diagram incrementally.
• 61. The sparse meshing model: 11 1 Build a Voronoi diagram incrementally. 2 Interleave input and Steiner point insertions.
• 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. 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. 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. 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. 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. 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. Point Location in the D-Balls. 12 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates.
• 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. Point Location in the D-Balls. 12 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates.
• 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. 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. Range Nets 13
• 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Meshing Points in (optimal) O(n log n + m) time. Thank you.