On Nets and Meshes

909 views

Published on

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 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
909
On SlideShare
0
From Embeds
0
Number of Embeds
28
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

On Nets and Meshes

  1. 1. Meshes and Nets Don SheehyJoint work with Gary Miller and Todd Phillips
  2. 2. Goals 2
  3. 3. Goals 2 A new meshing algorithm. O(n log n + m) - Optimal - Output-sensitive
  4. 4. Goals 2 A new meshing algorithm. O(n log n + m) - Optimal - Output-sensitive A more general view of the meshing problem.
  5. 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. 6. Meshing 3 Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram
  7. 7. Meshing 3 Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram
  8. 8. Meshing 3 Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram Why?
  9. 9. Meshing 3 Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram Why? - discretize space
  10. 10. Meshing 3 Input: P ⊂ Rd Output: M ⊃ P with a “nice” Voronoi diagram Why? - discretize space - respect the input density
  11. 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. 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. 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. 14. Overview 4
  15. 15. Overview 4 Algorithm
  16. 16. Overview 4 Algorithm 1 Order the inputs
  17. 17. Overview 4 Algorithm 1 Order the inputs 2 Incremental Updates
  18. 18. Overview 4 Algorithm 1 Order the inputs 2 Incremental Updates 3 Refinement
  19. 19. Overview 4 Algorithm 1 Order the inputs 2 Incremental Updates 3 Refinement 4 Point Location
  20. 20. Overview 4 Algorithm 1 Order the inputs 2 Incremental Updates 3 Refinement 4 Point Location 5 Finishing
  21. 21. Overview 4 Algorithm Analysis 1 Order the inputs 2 Incremental Updates 3 Refinement 4 Point Location 5 Finishing
  22. 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. 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. 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. 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. 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. 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. 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. 29. Metric Nets 5 “Nets catch everything that’s big.”
  30. 30. Metric Nets 5 “Nets catch everything that’s big.” Definition 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. 31. Metric Nets 5 “Nets catch everything that’s big.” Definition 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. 32. Metric Nets 5 “Nets catch everything that’s big.” Definition 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. 33. Metric Nets 5 “Nets catch everything that’s big.” Definition 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. 34. Metric Nets 5 “Nets catch everything that’s big.” Definition 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. 35. Metric Nets 5 “Nets catch everything that’s big.” Definition 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. 36. Metric Nets 5 “Nets catch everything that’s big.” Definition 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. 37. Metric Nets 5 “Nets catch everything that’s big.” Definition 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. 38. Meshes as Metric Nets 6
  39. 39. Meshes as Metric Nets 6 The underlying metric is not Euclidean (but it’s close).
  40. 40. Meshes as Metric Nets 6 The underlying metric is not Euclidean (but it’s close). image source: Alice Project, INRIA
  41. 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. 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. 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. 44. The Greedy Net Algorithm and SVR 7
  45. 45. The Greedy Net Algorithm and SVR 7 Add the farthest point from the current set. Repeat.
  46. 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. 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. 48. The Delaunay Triangulation is the dual 8of the Voronoi Diagram.
  49. 49. The Delaunay Triangulation is the dual 8of the Voronoi Diagram.
  50. 50. The Delaunay Triangulation is the dual 8of the Voronoi Diagram.
  51. 51. The Delaunay Triangulation is the dual 8of the Voronoi Diagram. D-ball
  52. 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. 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. 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. 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. 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. 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. 58. We replace quality with hierarchical quality. 11
  59. 59. We replace quality with hierarchical quality. 11
  60. 60. We replace quality with hierarchical quality. 11
  61. 61. We replace quality with hierarchical quality. 11
  62. 62. We replace quality with hierarchical quality. 11 Inside the cage: Old definition of quality.
  63. 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. 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. 65. With hierarchical meshes, we can add inputs 12in any order!
  66. 66. With hierarchical meshes, we can add inputs 12in any order!
  67. 67. With hierarchical meshes, we can add inputs 12in any order!
  68. 68. With hierarchical meshes, we can add inputs 12in any order! Goal: Combinatorial Divide and Conquer
  69. 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. 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. 71. Range Nets 13 “Nets catch everything that’s big.”
  72. 72. Range Nets 13 “Nets catch everything that’s big.” 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).
  73. 73. Range Nets 13 “Nets catch everything that’s big.” 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.
  74. 74. Range Nets 13 “Nets catch everything that’s big.” 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 .
  75. 75. Range Nets 13 “Nets catch everything that’s big.” 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.
  76. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 98. Summary 17
  99. 99. Summary 17 Meshing
  100. 100. Summary 17 Meshing Metric Nets
  101. 101. Summary 17 Meshing Metric Nets Geometric D&C
  102. 102. Summary 17 Meshing Metric Nets Geometric D&C Range Nets
  103. 103. Summary 17 Meshing Metric Nets Geometric D&C Range Nets Ball Covering
  104. 104. Summary 17 Meshing Metric Nets Geometric D&C Range Nets Ball Covering Combinatorial D&C
  105. 105. Summary 17 Meshing Metric Nets Geometric D&C Range Nets Ball Covering Combinatorial D&C Amortized Point Location
  106. 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. 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. 108. Thanks again.

×