Your SlideShare is downloading. ×
  • Like
Beating the Spread: Time-Optimal Point Meshing
Upcoming SlideShare
Loading in...5
×

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

Text the download link to your phone

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.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

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

Actions

Shares
Downloads
1
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    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 Definition. 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 Definition. 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 Definition. 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. Definition. 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 Definition. 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. Definition. 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.