100
Beating the Spread: Time-Optimal Point Meshing Don Sheehy Carnegie Mellon (soon: INRIA) with Gary Miller and Todd Phillips at CMU

Beating the Spread: Time-Optimal Point Meshing

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Beating the Spread: Time-Optimal Point Meshing

Beating the Spread:Time-Optimal Point Meshing

Don SheehyCarnegie Mellon

(soon: INRIA)

with Gary Miller and Todd Phillips at CMU

Page 2: Beating the Spread: Time-Optimal Point Meshing

Meshing Points 2Input: P ! Rd

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

n = |P |,m = |M |

Page 3: Beating the Spread: Time-Optimal Point Meshing

Meshing Points 2Input: P ! Rd

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

n = |P |,m = |M |

Page 4: Beating the Spread: Time-Optimal Point Meshing

Quality Meshes have cells with bounded aspect ratio.

3

Rr

aspect ratio = ! !

Page 5: Beating the Spread: Time-Optimal Point Meshing

Quality Meshes have cells with bounded aspect ratio.

3

Rr

aspect ratio = ! !

Page 6: Beating the Spread: Time-Optimal Point Meshing

Quality Meshes have cells with bounded aspect ratio.

3

Rr

aspect ratio = ! !

Page 7: Beating the Spread: Time-Optimal Point Meshing

Quality Meshes have cells with bounded aspect ratio.

3

Rr

aspect ratio = ! !

! ! 2 + "

Page 8: Beating the Spread: Time-Optimal Point Meshing

Prior Work 4

Page 9: Beating the Spread: Time-Optimal Point Meshing

Prior Work 4Delaunay Refinement:

Page 10: Beating the Spread: Time-Optimal Point Meshing

Prior Work 4Delaunay Refinement: Chew ‘89.......................................................................2D

Page 11: Beating the Spread: Time-Optimal Point Meshing

Prior Work 4Delaunay Refinement: Chew ‘89.......................................................................2D Ruppert ’95...........................................Optimality in 2D

Page 12: Beating the Spread: Time-Optimal Point Meshing

Prior Work 4Delaunay Refinement: Chew ‘89.......................................................................2D Ruppert ’95...........................................Optimality in 2D Shewchuck ‘98..........................................Ruppert in 3D

Page 13: Beating the Spread: Time-Optimal Point Meshing

Prior Work 4Delaunay Refinement: Chew ‘89.......................................................................2D Ruppert ’95...........................................Optimality in 2D Shewchuck ‘98..........................................Ruppert in 3D Hudson - Miller - Phillips ‘06..........SVR O(n log Δ + m)

Page 14: Beating the Spread: Time-Optimal Point Meshing

Prior Work 4Delaunay 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:

Page 15: Beating the Spread: Time-Optimal Point Meshing

Prior Work 4Delaunay 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

Page 16: Beating the Spread: Time-Optimal Point Meshing

Prior Work 4Delaunay 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

Page 17: Beating the Spread: Time-Optimal Point Meshing

Prior Work 4Delaunay 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:

Page 18: Beating the Spread: Time-Optimal Point Meshing

Prior Work 4Delaunay 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

Page 19: Beating the Spread: Time-Optimal Point Meshing

Prior Work 4Delaunay 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

Page 20: Beating the Spread: Time-Optimal Point Meshing

Prior Work 4Delaunay 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

Page 21: Beating the Spread: Time-Optimal Point Meshing

Prior Work 4Delaunay 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

Page 22: Beating the Spread: Time-Optimal Point Meshing

Prior Work 4Delaunay 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

Page 23: Beating the Spread: Time-Optimal Point Meshing

Beating the spread. 5

Page 24: Beating the Spread: Time-Optimal Point Meshing

Beating the spread. 5Let s = |x! y| where (x, y) "

!

P

2

"

is the closest pair.

Page 25: Beating the Spread: Time-Optimal Point Meshing

Beating the spread. 5Let s = |x! y| where (x, y) "

!

P

2

"

is the closest pair.

The spread of P is the ratio ! =diameter(P )

s.

Page 26: Beating the Spread: Time-Optimal Point Meshing

Beating the spread. 5Let s = |x! y| where (x, y) "

!

P

2

"

is the closest pair.

O(n log!+m)

The spread of P is the ratio ! =diameter(P )

s.

Page 27: Beating the Spread: Time-Optimal Point Meshing

Beating the spread. 5Let s = |x! y| where (x, y) "

!

P

2

"

is the closest pair.

O(n log!+m)

Point location

The spread of P is the ratio ! =diameter(P )

s.

Page 28: Beating the Spread: Time-Optimal Point Meshing

Beating the spread. 5Let s = |x! y| where (x, y) "

!

P

2

"

is the closest pair.

O(n log!+m)

Point location Output sensitive

The spread of P is the ratio ! =diameter(P )

s.

Page 29: Beating the Spread: Time-Optimal Point Meshing

Beating the spread. 5Let s = |x! y| where (x, y) "

!

P

2

"

is the closest pair.

O(n log!+m)

m = !(n log")For some point sets,

Point location Output sensitive

The spread of P is the ratio ! =diameter(P )

s.

Page 30: Beating the Spread: Time-Optimal Point Meshing

Complexity: How big is the mesh?

6

m =

!!

1

lfsP (x)d

Page 31: Beating the Spread: Time-Optimal Point Meshing

Complexity: How big is the mesh?

6How many Steiner Points?

m =

!!

1

lfsP (x)d

Page 32: Beating the Spread: Time-Optimal Point Meshing

Complexity: How big is the mesh?

6How many Steiner Points?

m = O(n) as long as there are no big empty annuli with 2 or more points inside [MPS08].

m =

!!

1

lfsP (x)d

Page 33: Beating the Spread: Time-Optimal Point Meshing

Complexity: How big is the mesh?

6How many Steiner Points?

m = O(n) as long as there are no big empty annuli with 2 or more points inside [MPS08].

How many simplices?

m =

!!

1

lfsP (x)d

Page 34: Beating the Spread: Time-Optimal Point Meshing

Complexity: How big is the mesh?

6How many Steiner Points?

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.Compare to for general Delaunay triangulations.Constants depend on aspect ratio.

m!d/2"

m =

!!

1

lfsP (x)d

Page 35: Beating the Spread: Time-Optimal Point Meshing

Complexity: How hard is it to compute a mesh? 7

Page 36: Beating the Spread: Time-Optimal Point Meshing

Complexity: How hard is it to compute a mesh? 7

O(n log n+m)

Page 37: Beating the Spread: Time-Optimal Point Meshing

Complexity: How hard is it to compute a mesh? 7

Point Location

O(n log n+m)

Page 38: Beating the Spread: Time-Optimal Point Meshing

Complexity: How hard is it to compute a mesh? 7

Point Location Output Sensitive

O(n log n+m)

Page 39: Beating the Spread: Time-Optimal Point Meshing

Complexity: How hard is it to compute a mesh? 7

This is optimal in the comparison model.

Point Location Output Sensitive

O(n log n+m)

Page 40: Beating the Spread: Time-Optimal Point Meshing

Complexity: How hard is it to compute a mesh? 7

This is optimal in the comparison model.

Point Location Output Sensitive

O(n log n)

O(n log n+m)

Page 41: Beating the Spread: Time-Optimal Point Meshing

Complexity: How hard is it to compute a mesh? 7

This is optimal in the comparison model.

Point Location Output Sensitive

Compute a hierarchical quality mesh.

O(n log n)

O(n log n+m)

Page 42: Beating the Spread: Time-Optimal Point Meshing

Complexity: How hard is it to compute a mesh? 7

This is optimal in the comparison model.

Point Location Output Sensitive

Compute a hierarchical quality mesh.

Key fact: Size is O(n)

O(n log n)

O(n log n+m)

Page 43: Beating the Spread: Time-Optimal Point Meshing

Complexity: How hard is it to compute a mesh? 7

This is optimal in the comparison model.

Point Location Output Sensitive

Compute a hierarchical quality mesh.

+

Key fact: Size is O(n)

O(m)O(n log n)

O(n log n+m)

Page 44: Beating the Spread: Time-Optimal Point Meshing

Complexity: How hard is it to compute a mesh? 7

This is optimal in the comparison model.

Point Location Output Sensitive

Finishing post-process.(easy)

Compute a hierarchical quality mesh.

+

Key fact: Size is O(n)

O(m)O(n log n)

O(n log n+m)

Page 45: Beating the Spread: Time-Optimal Point Meshing

The Delaunay Triangulation is the dual of the Voronoi Diagram.

8

D-ball

Page 46: Beating the Spread: Time-Optimal Point Meshing

Quality Meshes have severalnice properties.

9

Page 47: Beating the Spread: Time-Optimal Point Meshing

Quality Meshes have severalnice properties.

9

Delaunay balls have constant ply

Page 48: Beating the Spread: Time-Optimal Point Meshing

Quality Meshes have severalnice properties.

9

Delaunay balls have constant ply

Total number of faces is O(m)

Page 49: Beating the Spread: Time-Optimal Point Meshing

Quality Meshes have severalnice properties.

9

Delaunay balls have constant ply

Total number of faces is O(m)

Intersection graph of Delaunay balls has constant degree

Page 50: Beating the Spread: Time-Optimal Point Meshing

Quality Meshes have severalnice properties.

9

Delaunay balls have constant ply

Total number of faces is O(m)

Intersection graph of Delaunay balls has constant degree

Insertions only take constant time

Page 51: Beating the Spread: Time-Optimal Point Meshing

Quality Meshes have severalnice properties.

9

Voronoi Refinement: If some cell is skinny, add a Steiner point at its farthest vertex.

Delaunay balls have constant ply

Total number of faces is O(m)

Intersection graph of Delaunay balls has constant degree

Insertions only take constant time

Page 52: Beating the Spread: Time-Optimal Point Meshing

We replace quality with hierarchical quality. 10

Page 53: Beating the Spread: Time-Optimal Point Meshing

We replace quality with hierarchical quality. 10

Page 54: Beating the Spread: Time-Optimal Point Meshing

We replace quality with hierarchical quality. 10

Page 55: Beating the Spread: Time-Optimal Point Meshing

We replace quality with hierarchical quality. 10

Page 56: Beating the Spread: Time-Optimal Point Meshing

We replace quality with hierarchical quality. 10

Inside the cage: Old definition of quality.

Page 57: Beating the Spread: Time-Optimal Point Meshing

We replace quality with hierarchical quality. 10

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

Page 58: Beating the Spread: Time-Optimal Point Meshing

We replace quality with hierarchical quality. 10

Inside 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,...

Page 59: Beating the Spread: Time-Optimal Point Meshing

The sparse meshing model: 11

Page 60: Beating the Spread: Time-Optimal Point Meshing

The sparse meshing model: 11

1 Build a Voronoi diagram incrementally.

Page 61: Beating the Spread: Time-Optimal Point Meshing

The sparse meshing model: 11

1 Build a Voronoi diagram incrementally.

2 Interleave input and Steiner point insertions.

Page 62: Beating the Spread: Time-Optimal Point Meshing

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.

Page 63: Beating the Spread: Time-Optimal Point Meshing

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.

This is how we avoid the worst-case Voronoi bounds.

Page 64: Beating the Spread: Time-Optimal Point Meshing

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.

The New Algorithm

Page 65: Beating the Spread: Time-Optimal Point Meshing

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.

hierarchical quality

The New Algorithm

Page 66: Beating the Spread: Time-Optimal Point Meshing

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.

4 Store uninserted input points in the D-Balls.

hierarchical quality

The New Algorithm

Page 67: Beating the Spread: Time-Optimal Point Meshing

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.

4 Store uninserted input points in the D-Balls.

5 Order the input points using range space nets.

hierarchical quality

The New Algorithm

Page 68: Beating the Spread: Time-Optimal Point Meshing

Point Location in the D-Balls. 12Idea: Store the uninserted points in the D-balls.

When the balls change, make local updates.

Page 69: Beating the Spread: Time-Optimal Point Meshing

Point Location in the D-Balls. 12Idea: Store the uninserted points in the D-balls.

When the balls change, make local updates.

Page 70: Beating the Spread: Time-Optimal Point Meshing

Point Location in the D-Balls. 12Idea: Store the uninserted points in the D-balls.

When the balls change, make local updates.

Page 71: Beating the Spread: Time-Optimal Point Meshing

Point Location in the D-Balls. 12Idea: Store the uninserted points in the D-balls.

When the balls change, make local updates.

Page 72: Beating the Spread: Time-Optimal Point Meshing

Point Location in the D-Balls. 12Idea: Store the uninserted points in the D-balls.

When the balls change, make local updates.

It’s a history DAG!

Page 73: Beating the Spread: Time-Optimal Point Meshing

Range Nets 13

Page 74: Beating the Spread: Time-Optimal Point Meshing

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

Page 75: Beating the Spread: Time-Optimal Point Meshing

Range Nets 13Definition. 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.

Page 76: Beating the Spread: Time-Optimal Point Meshing

Range Nets 13Definition. 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.

Page 77: Beating the Spread: Time-Optimal Point Meshing

Range Nets 13Definition. 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.

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

Page 78: Beating the Spread: Time-Optimal Point Meshing

Ordering the inputs 14For each D-Ball, select a -net of the points it contains.Take the union of these nets and call it a round.Insert these.Repeat.

1

2d

Page 79: Beating the Spread: Time-Optimal Point Meshing

Ordering the inputs 14For each D-Ball, select a -net of the points it contains.Take the union of these nets and call it a round.Insert these.Repeat.

1

2d

Page 80: Beating the Spread: Time-Optimal Point Meshing

Ordering the inputs 14For each D-Ball, select a -net of the points it contains.Take the union of these nets and call it a round.Insert these.Repeat.

1

2d

Page 81: Beating the Spread: Time-Optimal Point Meshing

Ordering the inputs 14For each D-Ball, select a -net of the points it contains.Take the union of these nets and call it a round.Insert these.Repeat.

1

2d

Page 82: Beating the Spread: Time-Optimal Point Meshing

Ordering the inputs 14For each D-Ball, select a -net of the points it contains.Take the union of these nets and call it a round.Insert these.Repeat.

1

2d

Page 83: Beating the Spread: Time-Optimal Point Meshing

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 .

Ordering the inputs 14For each D-Ball, select a -net of the points it contains.Take the union of these nets and call it a round.Insert these.Repeat.

1

2d

Page 84: Beating the Spread: Time-Optimal Point Meshing

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 .

Ordering the inputs 14

max

D-balls B|B ! P |

Goes down by a factorof 2 each round.

For each D-Ball, select a -net of the points it contains.Take the union of these nets and call it a round.Insert these.Repeat.

1

2d

Page 85: Beating the Spread: Time-Optimal Point Meshing

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 .

Ordering the inputs 14

=> log(n) Rounds

max

D-balls B|B ! P |

Goes down by a factorof 2 each round.

For each D-Ball, select a -net of the points it contains.Take the union of these nets and call it a round.Insert these.Repeat.

1

2d

Page 86: Beating the Spread: Time-Optimal Point Meshing

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 .

Ordering the inputs 14

=> log(n) Rounds

max

D-balls B|B ! P |

Goes down by a factorof 2 each round.

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

!).

For each D-Ball, select a -net of the points it contains.Take the union of these nets and call it a round.Insert these.Repeat.

1

2d

Page 87: Beating the Spread: Time-Optimal Point Meshing

To complete the analysis, we must show that thecost of a Round is O(n).

15

Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

log n rounds x O(n) time/round = O(n log n)

Page 88: Beating the Spread: Time-Optimal Point Meshing

To complete the analysis, we must show that thecost of a Round is O(n).

15

Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

x

log n rounds x O(n) time/round = O(n log n)

Page 89: Beating the Spread: Time-Optimal Point Meshing

To complete the analysis, we must show that thecost of a Round is O(n).

15

Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

x

log n rounds x O(n) time/round = O(n log n)

Page 90: Beating the Spread: Time-Optimal Point Meshing

To complete the analysis, we must show that thecost of a Round is O(n).

15

Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

x

y

log n rounds x O(n) time/round = O(n log n)

Page 91: Beating the Spread: Time-Optimal Point Meshing

To complete the analysis, we must show that thecost of a Round is O(n).

15

Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

x

y

log n rounds x O(n) time/round = O(n log n)

Page 92: Beating the Spread: Time-Optimal Point Meshing

To complete the analysis, we must show that thecost of a Round is O(n).

15

Watch 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

log n rounds x O(n) time/round = O(n log n)

Page 93: Beating the Spread: Time-Optimal Point Meshing

To complete the analysis, we must show that thecost of a Round is O(n).

15

Watch 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

log n rounds x O(n) time/round = O(n log n)

Page 94: Beating the Spread: Time-Optimal Point Meshing

To complete the analysis, we must show that thecost of a Round is O(n).

15

Watch 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

log n rounds x O(n) time/round = O(n log n)

Page 95: Beating the Spread: Time-Optimal Point Meshing

To complete the analysis, we must show that thecost of a Round is O(n).

15

Watch 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

log n rounds x O(n) time/round = O(n log n)

Page 96: Beating the Spread: Time-Optimal Point Meshing

To complete the analysis, we must show that thecost of a Round is O(n).

15

Watch 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

log n rounds x O(n) time/round = O(n log n)

Page 97: Beating the Spread: Time-Optimal Point Meshing

To complete the analysis, we must show that thecost of a Round is O(n).

15

Watch 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

log n rounds x O(n) time/round = O(n log n)

Page 98: Beating the Spread: Time-Optimal Point Meshing

To complete the analysis, we must show that thecost of a Round is O(n).

15

Watch 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

log n rounds x O(n) time/round = O(n log n)

Page 99: Beating the Spread: Time-Optimal Point Meshing

To complete the analysis, we must show that thecost of a Round is O(n).

15

Watch 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

log n rounds x O(n) time/round = O(n log n)

Page 100: Beating the Spread: Time-Optimal Point Meshing

Thank you.

Meshing Points in (optimal) O(n log n + m) time.