Upcoming SlideShare
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Standard text messaging rates apply

# On Nets and Meshes

674
views

Published on

What is the difference between a mesh and a net? …

What is the difference between a mesh and a net?
What is the difference between a metric space epsilon-net and a range space epsilon-net?
What is the difference between geometric divide-and-conquer and combinatorial divide-and-conquer?

In this talk, I will answer these questions and discuss how these different ideas come together to finally settle the question of how to compute conforming point set meshes in optimal time. The meshing problem is to discretize space into as few pieces as possible and yet still capture the underlying density of the input points. Meshes are fundamental in scientific computing, graphics, and more recently, topological data analysis.

This is joint work with Gary Miller and Todd Phillips

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

No notes for slide

### Transcript

• 1. Meshes and Nets Don SheehyJoint work with Gary Miller and Todd Phillips
• 2. Goals 2
• 3. Goals 2 A new meshing algorithm. O(n log n + m) - Optimal - Output-sensitive
• 4. Goals 2 A new meshing algorithm. O(n log n + m) - Optimal - Output-sensitive A more general view of the meshing problem.
• 5. Goals 2 A new meshing algorithm. O(n log n + m) - Optimal - Output-sensitive A more general view of the meshing problem. Some nice theory.
• 6. Meshing 3 Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram
• 7. Meshing 3 Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram
• 8. Meshing 3 Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram Why?
• 9. Meshing 3 Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram Why? - discretize space
• 10. Meshing 3 Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram Why? - discretize space - respect the input density
• 11. Meshing 3 Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram Why? - discretize space - respect the input density - applications: represent functions
• 12. Meshing 3 Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram Why? - discretize space - respect the input density - applications: represent functions - Finite Element Method
• 13. Meshing 3 Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram Why? - discretize space - respect the input density - applications: represent functions - Finite Element Method - Topological Data Analysis
• 14. Overview 4
• 15. Overview 4 Algorithm
• 16. Overview 4 Algorithm 1 Order the inputs
• 17. Overview 4 Algorithm 1 Order the inputs 2 Incremental Updates
• 18. Overview 4 Algorithm 1 Order the inputs 2 Incremental Updates 3 Refinement
• 19. Overview 4 Algorithm 1 Order the inputs 2 Incremental Updates 3 Refinement 4 Point Location
• 20. Overview 4 Algorithm 1 Order the inputs 2 Incremental Updates 3 Refinement 4 Point Location 5 Finishing
• 21. Overview 4 Algorithm Analysis 1 Order the inputs 2 Incremental Updates 3 Refinement 4 Point Location 5 Finishing
• 22. Overview 4 Algorithm Analysis 1 Order the inputs 1 Classic Mesh Size Analysis 2 Incremental Updates 3 Refinement 4 Point Location 5 Finishing
• 23. Overview 4 Algorithm Analysis 1 Order the inputs 1 Classic Mesh Size Analysis 2 Incremental Updates (with a twist) 3 Refinement 4 Point Location 5 Finishing
• 24. Overview 4 Algorithm Analysis 1 Order the inputs 1 Classic Mesh Size Analysis 2 Incremental Updates (with a twist) 3 Refinement 2 Hierarchical Quality 4 Point Location 5 Finishing
• 25. Overview 4 Algorithm Analysis 1 Order the inputs 1 Classic Mesh Size Analysis 2 Incremental Updates (with a twist) 3 Refinement 2 Hierarchical Quality 4 Point Location 3 Quality => low complexity 5 Finishing
• 26. Overview 4 Algorithm Analysis 1 Order the inputs 1 Classic Mesh Size Analysis 2 Incremental Updates (with a twist) 3 Refinement 2 Hierarchical Quality 4 Point Location 3 Quality => low complexity 5 Finishing 4 Range Space Nets
• 27. Overview 4 Algorithm Analysis 1 Order the inputs 1 Classic Mesh Size Analysis 2 Incremental Updates (with a twist) 3 Refinement 2 Hierarchical Quality 4 Point Location 3 Quality => low complexity 5 Finishing 4 Range Space Nets 5 Ball Cover Lemma
• 28. Overview 4 Algorithm Analysis 1 Order the inputs 1 Classic Mesh Size Analysis 2 Incremental Updates (with a twist) 3 Refinement 2 Hierarchical Quality 4 Point Location 3 Quality => low complexity 5 Finishing 4 Range Space Nets 5 Ball Cover Lemma 6 Amortize Point Location Cost
• 29. Metric Nets 5 “Nets catch everything that’s big.”
• 30. Metric Nets 5 “Nets catch everything that’s big.” Deﬁnition 1. Given a metric space X, a metric ε-net is a set N ⊂ X such that 1. x, y ∈ N ⇒ d(x, y) ≥ ε 2. x ∈ X ⇒ ∃y ∈ N : d(x, y) ≤ ε
• 31. Metric Nets 5 “Nets catch everything that’s big.” Deﬁnition 1. Given a metric space X, a metric ε-net is a set N ⊂ X such that 1. x, y ∈ N ⇒ d(x, y) ≥ ε Packing 2. x ∈ X ⇒ ∃y ∈ N : d(x, y) ≤ ε
• 32. Metric Nets 5 “Nets catch everything that’s big.” Deﬁnition 1. Given a metric space X, a metric ε-net is a set N ⊂ X such that 1. x, y ∈ N ⇒ d(x, y) ≥ ε Packing 2. x ∈ X ⇒ ∃y ∈ N : d(x, y) ≤ ε Covering
• 33. Metric Nets 5 “Nets catch everything that’s big.” Deﬁnition 1. Given a metric space X, a metric ε-net is a set N ⊂ X such that 1. x, y ∈ N ⇒ d(x, y) ≥ ε Packing 2. x ∈ X ⇒ ∃y ∈ N : d(x, y) ≤ ε Covering
• 34. Metric Nets 5 “Nets catch everything that’s big.” Deﬁnition 1. Given a metric space X, a metric ε-net is a set N ⊂ X such that 1. x, y ∈ N ⇒ d(x, y) ≥ ε Packing 2. x ∈ X ⇒ ∃y ∈ N : d(x, y) ≤ ε Covering Example: Bounded Euclidean Space
• 35. Metric Nets 5 “Nets catch everything that’s big.” Deﬁnition 1. Given a metric space X, a metric ε-net is a set N ⊂ X such that 1. x, y ∈ N ⇒ d(x, y) ≥ ε Packing 2. x ∈ X ⇒ ∃y ∈ N : d(x, y) ≤ ε Covering Example: Bounded Euclidean Space
• 36. Metric Nets 5 “Nets catch everything that’s big.” Deﬁnition 1. Given a metric space X, a metric ε-net is a set N ⊂ X such that 1. x, y ∈ N ⇒ d(x, y) ≥ ε Packing 2. x ∈ X ⇒ ∃y ∈ N : d(x, y) ≤ ε Covering Example: Bounded Euclidean Space Related to ball packing of radius ε/2.
• 37. Metric Nets 5 “Nets catch everything that’s big.” Deﬁnition 1. Given a metric space X, a metric ε-net is a set N ⊂ X such that 1. x, y ∈ N ⇒ d(x, y) ≥ ε Packing 2. x ∈ X ⇒ ∃y ∈ N : d(x, y) ≤ ε Covering Example: Bounded Euclidean Space Related to ball packing of radius ε/2.
• 38. Meshes as Metric Nets 6
• 39. Meshes as Metric Nets 6 The underlying metric is not Euclidean (but it’s close).
• 40. Meshes as Metric Nets 6 The underlying metric is not Euclidean (but it’s close). image source: Alice Project, INRIA
• 41. Meshes as Metric Nets 6 The underlying metric is not Euclidean (but it’s close). Metric is scaled according the the “feature size”. image source: Alice Project, INRIA
• 42. Meshes as Metric Nets 6 The underlying metric is not Euclidean (but it’s close). Metric is scaled according the the “feature size”. image source: Alice Project, INRIA
• 43. Meshes as Metric Nets 6 The underlying metric is not Euclidean (but it’s close). Metric is scaled according the the “feature size”. Quality = bounded aspect ratio image source: Alice Project, INRIA
• 44. The Greedy Net Algorithm and SVR 7
• 45. The Greedy Net Algorithm and SVR 7 Add the farthest point from the current set. Repeat.
• 46. The Greedy Net Algorithm and SVR 7 Add the farthest point from the current set. Repeat. Harder for infinite metric spaces. - Figure out the metric - Decide input or Steiner - Do point location work
• 47. The Greedy Net Algorithm and SVR 7 Add the farthest point from the current set. Repeat. Harder for infinite metric spaces. - Figure out the metric - Decide input or Steiner - Do point location work Sparse Voronoi Refinement [Hudson, Miller, Phillips 2006]
• 48. The Delaunay Triangulation is the dual 8of the Voronoi Diagram.
• 49. The Delaunay Triangulation is the dual 8of the Voronoi Diagram.
• 50. The Delaunay Triangulation is the dual 8of the Voronoi Diagram.
• 51. The Delaunay Triangulation is the dual 8of the Voronoi Diagram. D-ball
• 52. Quality Meshes 9 D-Balls are Constant Ply Total Complexity is linear in |M| No D-ball intersects more than O(1) others.
• 53. Point Location and Geometric D&C 10 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates. Lemma (HMP06). A point is touched at most a constant number of times before the radius of the largest D-ball containing it goes down by a factor of 2. Geometric Divide and Conquer: O(n log ∆)
• 54. Point Location and Geometric D&C 10 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates. Lemma (HMP06). A point is touched at most a constant number of times before the radius of the largest D-ball containing it goes down by a factor of 2. Geometric Divide and Conquer: O(n log ∆)
• 55. Point Location and Geometric D&C 10 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates. Lemma (HMP06). A point is touched at most a constant number of times before the radius of the largest D-ball containing it goes down by a factor of 2. Geometric Divide and Conquer: O(n log ∆)
• 56. Point Location and Geometric D&C 10 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates. Lemma (HMP06). A point is touched at most a constant number of times before the radius of the largest D-ball containing it goes down by a factor of 2. Geometric Divide and Conquer: O(n log ∆)
• 57. Point Location and Geometric D&C 10 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates. Lemma (HMP06). A point is touched at most a constant number of times before the radius of the largest D-ball containing it goes down by a factor of 2. Geometric Divide and Conquer: O(n log ∆)
• 58. We replace quality with hierarchical quality. 11
• 59. We replace quality with hierarchical quality. 11
• 60. We replace quality with hierarchical quality. 11
• 61. We replace quality with hierarchical quality. 11
• 62. We replace quality with hierarchical quality. 11 Inside the cage: Old definition of quality.
• 63. We replace quality with hierarchical quality. 11 Inside the cage: Old definition of quality. Outside: Treat the whole cage as a single object.
• 64. We replace quality with hierarchical quality. 11 Inside the cage: Old definition of quality. Outside: Treat the whole cage as a single object. All the same properties as quality meshes: ply, degree, etc.
• 65. With hierarchical meshes, we can add inputs 12in any order!
• 66. With hierarchical meshes, we can add inputs 12in any order!
• 67. With hierarchical meshes, we can add inputs 12in any order!
• 68. With hierarchical meshes, we can add inputs 12in any order! Goal: Combinatorial Divide and Conquer
• 69. With hierarchical meshes, we can add inputs 12in any order! Goal: Combinatorial Divide and Conquer Old: Progress was decreasing the radius by a factor of 2.
• 70. With hierarchical meshes, we can add inputs 12in any order! Goal: Combinatorial Divide and Conquer Old: Progress was decreasing the radius by a factor of 2. New: Decrease number of points in a ball by a factor of 2.
• 71. Range Nets 13 “Nets catch everything that’s big.”
• 72. Range Nets 13 “Nets catch everything that’s big.” 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).
• 73. Range Nets 13 “Nets catch everything that’s big.” 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.
• 74. Range Nets 13 “Nets catch everything that’s big.” 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 .
• 75. Range Nets 13 “Nets catch everything that’s big.” 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.
• 76. Ordering the inputs 14 For each D-Ball, select a 1/2d-net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat.
• 77. Ordering the inputs 14 For each D-Ball, select a 1/2d-net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat.
• 78. Ordering the inputs 14 For each D-Ball, select a 1/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 14 For each D-Ball, select a 1/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 14 For each D-Ball, select a 1/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 14 For each D-Ball, select a 1/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 .
• 82. Ordering the inputs 14 For each D-Ball, select a 1/2d-net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat. 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 .
• 83. The D-Ball Covering Lemma 15 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. The D-Ball Covering Lemma 15 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 . Proof is constructive using Carathéodory’s Theorem.
• 85. Amortized Cost of a Round is O(n) 16 Watch an uninserted point x. Claim: x only gets touched O(1) times per round.
• 86. Amortized Cost of a Round is O(n) 16 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. x
• 87. Amortized Cost of a Round is O(n) 16 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. x
• 88. Amortized Cost of a Round is O(n) 16 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y x
• 89. Amortized Cost of a Round is O(n) 16 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y x
• 90. Amortized Cost of a Round is O(n) 16 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y y touches x => y is “close” to x close = 2 hops among D-balls x
• 91. Amortized Cost of a Round is O(n) 16 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y y touches x => y is “close” to x close = 2 hops among D-balls x
• 92. Amortized Cost of a Round is O(n) 16 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y y touches x => y is “close” to x close = 2 hops among D-balls Only O(1) D-balls are within 2 hops. x
• 93. Amortized Cost of a Round is O(n) 16 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y y touches x => y is “close” to x close = 2 hops among D-balls Only O(1) D-balls are within 2 hops. x x
• 94. Amortized Cost of a Round is O(n) 16 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y y touches x => y is “close” to x close = 2 hops among D-balls Only O(1) D-balls are within 2 hops. x x
• 95. Amortized Cost of a Round is O(n) 16 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y y touches x => y is “close” to x close = 2 hops among D-balls Only O(1) D-balls are within 2 hops. x x
• 96. Amortized Cost of a Round is O(n) 16 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y y touches x => y is “close” to x close = 2 hops among D-balls Only O(1) D-balls are within 2 hops. x Only O(1) points are added x to any D-ball in a round.
• 97. Amortized Cost of a Round is O(n) 16 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y y touches x => y is “close” to x close = 2 hops among D-balls Only O(1) D-balls are within 2 hops. x Only O(1) points are added x to any D-ball in a round. O(n) total work per round.
• 98. Summary 17
• 99. Summary 17 Meshing
• 100. Summary 17 Meshing Metric Nets
• 101. Summary 17 Meshing Metric Nets Geometric D&C
• 102. Summary 17 Meshing Metric Nets Geometric D&C Range Nets
• 103. Summary 17 Meshing Metric Nets Geometric D&C Range Nets Ball Covering
• 104. Summary 17 Meshing Metric Nets Geometric D&C Range Nets Ball Covering Combinatorial D&C
• 105. Summary 17 Meshing Metric Nets Geometric D&C Range Nets Ball Covering Combinatorial D&C Amortized Point Location
• 106. Summary 17 Meshing Metric Nets Geometric D&C Range Nets Ball Covering Combinatorial D&C Amortized Point Location Finally, O(n log n + m) point meshing
• 107. Summary 17 Meshing Metric Nets Geometric D&C Range Nets Ball Covering Combinatorial D&C Amortized Point Location Finally, O(n log n + m) point meshing Thanks.
• 108. Thanks again.