Download - On Nets and Meshes

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


Top Related