On Nets and Meshes

108
Meshes and Nets Don Sheehy Joint work with Gary Miller and Todd Phillips

description

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

Transcript of On Nets and Meshes

Page 1: On Nets and Meshes

Meshes and NetsDon Sheehy

Joint work with Gary Miller and Todd Phillips

Page 2: On Nets and Meshes

Goals 2

Page 3: On Nets and Meshes

Goals 2

A new meshing algorithm.

O(n log n+m) - Optimal- Output-sensitive

Page 4: On Nets and Meshes

Goals 2

A new meshing algorithm.

O(n log n+m) - Optimal- Output-sensitive

A more general view of the meshing problem.

Page 5: On Nets and Meshes

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.

Page 6: On Nets and Meshes

Meshing 3Input: P ! Rd

Output: M " P with a “nice” Voronoi diagram

Page 7: On Nets and Meshes

Meshing 3Input: P ! Rd

Output: M " P with a “nice” Voronoi diagram

Page 8: On Nets and Meshes

Meshing 3Input: P ! Rd

Output: M " P with a “nice” Voronoi diagram

Why?

Page 9: On Nets and Meshes

Meshing 3Input: P ! Rd

Output: M " P with a “nice” Voronoi diagram

Why?- discretize space

Page 10: On Nets and Meshes

Meshing 3Input: P ! Rd

Output: M " P with a “nice” Voronoi diagram

Why?- discretize space- respect the input density

Page 11: On Nets and Meshes

Meshing 3Input: P ! Rd

Output: M " P with a “nice” Voronoi diagram

Why?- discretize space- respect the input density- applications: represent functions

Page 12: On Nets and Meshes

Meshing 3Input: P ! Rd

Output: M " P with a “nice” Voronoi diagram

Why?- discretize space- respect the input density- applications: represent functions- Finite Element Method

Page 13: On Nets and Meshes

Meshing 3Input: 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

Page 14: On Nets and Meshes

Overview 4

Page 15: On Nets and Meshes

Overview 4

Algorithm

Page 16: On Nets and Meshes

Overview 4

Algorithm

1 Order the inputs

Page 17: On Nets and Meshes

Overview 4

Algorithm

1 Order the inputs2 Incremental Updates

Page 18: On Nets and Meshes

Overview 4

Algorithm

1 Order the inputs2 Incremental Updates3 Refinement

Page 19: On Nets and Meshes

Overview 4

Algorithm

1 Order the inputs2 Incremental Updates3 Refinement4 Point Location

Page 20: On Nets and Meshes

Overview 4

Algorithm

1 Order the inputs2 Incremental Updates3 Refinement4 Point Location5 Finishing

Page 21: On Nets and Meshes

Overview 4

Algorithm

1 Order the inputs2 Incremental Updates3 Refinement4 Point Location5 Finishing

Analysis

Page 22: On Nets and Meshes

Overview 4

Algorithm

1 Order the inputs2 Incremental Updates3 Refinement4 Point Location5 Finishing

Analysis

1 Classic Mesh Size Analysis

Page 23: On Nets and Meshes

Overview 4

Algorithm

1 Order the inputs2 Incremental Updates3 Refinement4 Point Location5 Finishing

Analysis

1 Classic Mesh Size Analysis (with a twist)

Page 24: On Nets and Meshes

Overview 4

Algorithm

1 Order the inputs2 Incremental Updates3 Refinement4 Point Location5 Finishing

Analysis

1 Classic Mesh Size Analysis (with a twist)

2 Hierarchical Quality

Page 25: On Nets and Meshes

Overview 4

Algorithm

1 Order the inputs2 Incremental Updates3 Refinement4 Point Location5 Finishing

Analysis

1 Classic Mesh Size Analysis (with a twist)

2 Hierarchical Quality3 Quality => low complexity

Page 26: On Nets and Meshes

Overview 4

Algorithm

1 Order the inputs2 Incremental Updates3 Refinement4 Point Location5 Finishing

Analysis

1 Classic Mesh Size Analysis (with a twist)

2 Hierarchical Quality3 Quality => low complexity4 Range Space Nets

Page 27: On Nets and Meshes

Overview 4

Algorithm

1 Order the inputs2 Incremental Updates3 Refinement4 Point Location5 Finishing

Analysis

1 Classic Mesh Size Analysis (with a twist)

2 Hierarchical Quality3 Quality => low complexity4 Range Space Nets5 Ball Cover Lemma

Page 28: On Nets and Meshes

Overview 4

Algorithm

1 Order the inputs2 Incremental Updates3 Refinement4 Point Location5 Finishing

Analysis

1 Classic Mesh Size Analysis (with a twist)

2 Hierarchical Quality3 Quality => low complexity4 Range Space Nets5 Ball Cover Lemma6 Amortize Point Location Cost

Page 29: On Nets and Meshes

Metric Nets 5“Nets catch everything that’s big.”

Page 30: On Nets and Meshes

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) & !

Page 31: On Nets and Meshes

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) & !

Packing

Page 32: On Nets and Meshes

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) & !

Packing

Covering

Page 33: On Nets and Meshes

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) & !

Packing

Covering

Page 34: On Nets and Meshes

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) & !

Packing

Covering

Example: Bounded Euclidean Space

Page 35: On Nets and Meshes

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) & !

Packing

Covering

Example: Bounded Euclidean Space

Page 36: On Nets and Meshes

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) & !

Packing

Covering

Example: Bounded Euclidean Space

Related to ball packing of radius ε/2.

Page 37: On Nets and Meshes

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) & !

Packing

Covering

Example: Bounded Euclidean Space

Related to ball packing of radius ε/2.

Page 38: On Nets and Meshes

Meshes as Metric Nets 6

Page 39: On Nets and Meshes

Meshes as Metric Nets 6

The underlying metric is not Euclidean (but it’s close).

Page 40: On Nets and Meshes

Meshes as Metric Nets 6

The underlying metric is not Euclidean (but it’s close).

image source: Alice Project, INRIA

Page 41: On Nets and Meshes

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

Page 42: On Nets and Meshes

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

Page 43: On Nets and Meshes

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 ratioimage source: Alice Project, INRIA

Page 44: On Nets and Meshes

The Greedy Net Algorithm and SVR 7

Page 45: On Nets and Meshes

The Greedy Net Algorithm and SVR 7Add the farthest point from the current set.Repeat.

Page 46: On Nets and Meshes

The Greedy Net Algorithm and SVR 7Add 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

Page 47: On Nets and Meshes

The Greedy Net Algorithm and SVR 7Add 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]

Page 48: On Nets and Meshes

The Delaunay Triangulation is the dual of the Voronoi Diagram.

8

Page 49: On Nets and Meshes

The Delaunay Triangulation is the dual of the Voronoi Diagram.

8

Page 50: On Nets and Meshes

The Delaunay Triangulation is the dual of the Voronoi Diagram.

8

Page 51: On Nets and Meshes

The Delaunay Triangulation is the dual of the Voronoi Diagram.

8

D-ball

Page 52: On Nets and Meshes

Quality Meshes 9

D-Balls are Constant Ply

Total Complexity is linear in |M|

No D-ball intersects more than O(1) others.

Page 53: On Nets and Meshes

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 mosta constant number of times before the radius ofthe largest D-ball containing it goes down by afactor of 2.

Geometric Divide and Conquer: O(n log!)

Page 54: On Nets and Meshes

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 mosta constant number of times before the radius ofthe largest D-ball containing it goes down by afactor of 2.

Geometric Divide and Conquer: O(n log!)

Page 55: On Nets and Meshes

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 mosta constant number of times before the radius ofthe largest D-ball containing it goes down by afactor of 2.

Geometric Divide and Conquer: O(n log!)

Page 56: On Nets and Meshes

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 mosta constant number of times before the radius ofthe largest D-ball containing it goes down by afactor of 2.

Geometric Divide and Conquer: O(n log!)

Page 57: On Nets and Meshes

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 mosta constant number of times before the radius ofthe largest D-ball containing it goes down by afactor of 2.

Geometric Divide and Conquer: O(n log!)

Page 58: On Nets and Meshes

We replace quality with hierarchical quality. 11

Page 59: On Nets and Meshes

We replace quality with hierarchical quality. 11

Page 60: On Nets and Meshes

We replace quality with hierarchical quality. 11

Page 61: On Nets and Meshes

We replace quality with hierarchical quality. 11

Page 62: On Nets and Meshes

We replace quality with hierarchical quality. 11

Inside the cage: Old definition of quality.

Page 63: On Nets and Meshes

We replace quality with hierarchical quality. 11

Inside the cage: Old definition of quality.Outside: Treat the whole cage as a single object.

Page 64: On Nets and Meshes

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.

Page 65: On Nets and Meshes

With hierarchical meshes, we can add inputs in any order!

12

Page 66: On Nets and Meshes

With hierarchical meshes, we can add inputs in any order!

12

Page 67: On Nets and Meshes

With hierarchical meshes, we can add inputs in any order!

12

Page 68: On Nets and Meshes

With hierarchical meshes, we can add inputs in any order!

12

Goal: Combinatorial Divide and Conquer

Page 69: On Nets and Meshes

With hierarchical meshes, we can add inputs in any order!

12

Goal: Combinatorial Divide and Conquer

Old: Progress was decreasing the radius by a factor of 2.

Page 70: On Nets and Meshes

With hierarchical meshes, we can add inputs in any order!

12

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.

Page 71: On Nets and Meshes

Range Nets 13“Nets catch everything that’s big.”

Page 72: On Nets and Meshes

Range Nets 13

Definition. A range space is a pair (X,R),where X is a set (the vertices) and R is acollection of subsets (the ranges).

“Nets catch everything that’s big.”

Page 73: On Nets and Meshes

Range Nets 13

Definition. A range space is a pair (X,R),where X is a set (the vertices) and R is acollection of subsets (the ranges).

For us X = P and R is the set of open balls.

“Nets catch everything that’s big.”

Page 74: On Nets and Meshes

Range Nets 13

Definition. A range space is a pair (X,R),where X is a set (the vertices) and R is acollection of subsets (the ranges).

Definition. Given a range space (X,R),a set N ! X is a range space !-net iffor all ranges r " R that contain at least!|X| vertices, r contains a vertex from N .

For us X = P and R is the set of open balls.

“Nets catch everything that’s big.”

Page 75: On Nets and Meshes

Range Nets 13

Definition. A range space is a pair (X,R),where X is a set (the vertices) and R is acollection of subsets (the ranges).

Definition. Given a range space (X,R),a set N ! X is a range space !-net iffor all ranges r " R that contain at least!|X| vertices, r contains a vertex from N .

For us X = P and R is the set of open balls.

“Nets catch everything that’s big.”

Theorem: [Chazelle & Matousek 96] For ε, d fixed constants, ε-nets of size O(1) can be computed in O(n) deterministic time.

Page 76: On Nets and Meshes

Ordering the inputs 14For 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.

Page 77: On Nets and Meshes

Ordering the inputs 14For 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.

Page 78: On Nets and Meshes

Ordering the inputs 14For 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.

Page 79: On Nets and Meshes

Ordering the inputs 14For 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.

Page 80: On Nets and Meshes

Ordering the inputs 14For 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.

Page 81: On Nets and Meshes

Ordering the inputs 14For 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 Bcontains no points of M , then B is contained in theunion of d D-balls of M .

Page 82: On Nets and Meshes

Ordering the inputs 14For 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 Bcontains no points of M , then B is contained in theunion of d D-balls of M .

log(n) Rounds

Page 83: On Nets and Meshes

The D-Ball Covering Lemma 15

Lemma. Let M be a set of vertices. If an open ball Bcontains no points of M , then B is contained in theunion of d D-balls of M .

Page 84: On Nets and Meshes

The D-Ball Covering Lemma 15

Lemma. Let M be a set of vertices. If an open ball Bcontains no points of M , then B is contained in theunion of d D-balls of M .

Proof is constructive using Carathéodory’s Theorem.

Page 85: On Nets and Meshes

Amortized Cost of a Round is O(n) 16Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

Page 86: On Nets and Meshes

Amortized Cost of a Round is O(n) 16Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

x

Page 87: On Nets and Meshes

Amortized Cost of a Round is O(n) 16Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

x

Page 88: On Nets and Meshes

Amortized Cost of a Round is O(n) 16Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

x

y

Page 89: On Nets and Meshes

Amortized Cost of a Round is O(n) 16Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

x

y

Page 90: On Nets and Meshes

Amortized Cost of a Round is O(n) 16Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

y touches x => y is “close” to xclose = 2 hops among D-balls

x

y

Page 91: On Nets and Meshes

Amortized Cost of a Round is O(n) 16Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

y touches x => y is “close” to xclose = 2 hops among D-balls

x

y

Page 92: On Nets and Meshes

Amortized Cost of a Round is O(n) 16Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

y touches x => y is “close” to xclose = 2 hops among D-balls

Only O(1) D-balls are within 2 hops.x

y

Page 93: On Nets and Meshes

Amortized Cost of a Round is O(n) 16Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

y touches x => y is “close” to xclose = 2 hops among D-balls

Only O(1) D-balls are within 2 hops.x

y

x

Page 94: On Nets and Meshes

Amortized Cost of a Round is O(n) 16Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

y touches x => y is “close” to xclose = 2 hops among D-balls

Only O(1) D-balls are within 2 hops.x

y

x

Page 95: On Nets and Meshes

Amortized Cost of a Round is O(n) 16Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

y touches x => y is “close” to xclose = 2 hops among D-balls

Only O(1) D-balls are within 2 hops.x

y

x

Page 96: On Nets and Meshes

Amortized Cost of a Round is O(n) 16Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

y touches x => y is “close” to xclose = 2 hops among D-balls

Only O(1) D-balls are within 2 hops.x

y

Only O(1) points are added to any D-ball in a round.

x

Page 97: On Nets and Meshes

Amortized Cost of a Round is O(n) 16Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

y touches x => y is “close” to xclose = 2 hops among D-balls

Only O(1) D-balls are within 2 hops.x

y

Only O(1) points are added to any D-ball in a round.

O(n) total work per round.

x

Page 98: On Nets and Meshes

Summary 17

Page 99: On Nets and Meshes

Summary 17Meshing

Page 100: On Nets and Meshes

Summary 17Meshing

Metric Nets

Page 101: On Nets and Meshes

Summary 17Meshing

Metric NetsGeometric D&C

Page 102: On Nets and Meshes

Summary 17Meshing

Metric NetsGeometric D&C

Range Nets

Page 103: On Nets and Meshes

Summary 17Meshing

Metric NetsGeometric D&C

Range NetsBall Covering

Page 104: On Nets and Meshes

Summary 17Meshing

Metric NetsGeometric D&C

Range NetsBall Covering

Combinatorial D&C

Page 105: On Nets and Meshes

Summary 17Meshing

Metric NetsGeometric D&C

Range NetsBall Covering

Combinatorial D&CAmortized Point Location

Page 106: On Nets and Meshes

Summary 17Meshing

Metric NetsGeometric D&C

Range NetsBall Covering

Combinatorial D&CAmortized Point Location

Finally, O(n log n + m) point meshing

Page 107: On Nets and Meshes

Summary 17Meshing

Metric NetsGeometric D&C

Range NetsBall Covering

Combinatorial D&CAmortized Point Location

Finally, O(n log n + m) point meshing

Thanks.

Page 108: On Nets and Meshes

Thanks again.