Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

108
An Output-Sensitive Algorithm for Voronoi Diagrams and Delaunay Triangulations Don Sheehy INRIA Saclay, France Joint work with Gary Miller at CMU

description

Voronoi diagrams and their duals, Delaunay triangulations, are used in many areas of computing and the sciences.  Starting in 3-dimensions, there is a substantial (i.e. polynomial) difference between the best case and the worst case complexity of these objects when starting with n points.  This motivates the search for algorithms that are output-senstiive rather than relying only on worst-case guarantees.  In this talk, I will describe a simple, new algorithm for computing Voronoi diagrams in d-dimensions that runs in O(f log n log spread) time, where f is the output size and the spread of the input points is the ratio of the diameter to the closest pair distance.  For a wide range of inputs, this is the best known algorithm.  The algorithm is novel in the that it turns the classic algorithm of Delaunay refinement for mesh generation on its head, working backwards from a quality mesh to the Delaunay triangulation of the input.  Along the way, we will see instances of several other classic problems for which no higher-dimensional results are known, including kinetic convex hulls and splitting Delaunay triangulations.

Transcript of Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Page 1: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

An Output-Sensitive Algorithm for

Voronoi Diagrams and

Delaunay Triangulations

Don SheehyINRIA Saclay, France

Joint work with Gary Miller at CMU

Page 2: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Voronoi Diagrams

Page 3: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p.

Page 4: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p.

Page 5: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p.

The Voronoi diagram is dual to the Delaunay triangulation.

Page 6: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p.

The Voronoi diagram is dual to the Delaunay triangulation.

Page 7: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p.

The Voronoi diagram is dual to the Delaunay triangulation.

Page 8: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Voronoi DiagramsThe Voronoi cell of p is the set of reverse nearest neighbors of p.

The Voronoi diagram is dual to the Delaunay triangulation.

Voronoi k-face Delaunay (d-k)-face

Page 9: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Voronoi Diagrams and Delaunay triangulations are used everywhere.

Page 10: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Voronoi Diagrams and Delaunay triangulations are used everywhere.

Descartes 1644

Page 11: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Voronoi Diagrams and Delaunay triangulations are used everywhere.

Descartes 1644Dirichlet 1850

Page 12: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Voronoi Diagrams and Delaunay triangulations are used everywhere.

Descartes 1644Dirichlet 1850Snow 1854 (probably a myth, but a fun one)

Page 13: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Voronoi Diagrams and Delaunay triangulations are used everywhere.

Descartes 1644Dirichlet 1850Snow 1854 (probably a myth, but a fun one)Voronoi 1908

Page 14: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Voronoi Diagrams and Delaunay triangulations are used everywhere.

Descartes 1644Dirichlet 1850Snow 1854 (probably a myth, but a fun one)Voronoi 1908Thiessen 1911 (meteorology)

Page 15: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Voronoi Diagrams and Delaunay triangulations are used everywhere.

Descartes 1644Dirichlet 1850Snow 1854 (probably a myth, but a fun one)Voronoi 1908Thiessen 1911 (meteorology)

Geographical Information Systems

Page 16: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Voronoi Diagrams and Delaunay triangulations are used everywhere.

Descartes 1644Dirichlet 1850Snow 1854 (probably a myth, but a fun one)Voronoi 1908Thiessen 1911 (meteorology)

Geographical Information SystemsGraphics

Page 17: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Voronoi Diagrams and Delaunay triangulations are used everywhere.

Descartes 1644Dirichlet 1850Snow 1854 (probably a myth, but a fun one)Voronoi 1908Thiessen 1911 (meteorology)

Geographical Information SystemsGraphicsTopological Data Analysis

Page 18: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Voronoi Diagrams and Delaunay triangulations are used everywhere.

Descartes 1644Dirichlet 1850Snow 1854 (probably a myth, but a fun one)Voronoi 1908Thiessen 1911 (meteorology)

Geographical Information SystemsGraphicsTopological Data AnalysisMesh Generation

Page 19: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Delaunay triangulations and Voronoi diagrams are projections of polyhedra.

Page 20: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Delaunay triangulations and Voronoi diagrams are projections of polyhedra.

Page 21: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Delaunay triangulations and Voronoi diagrams are projections of polyhedra.

Page 22: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Delaunay triangulations and Voronoi diagrams are projections of polyhedra.

Page 23: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Delaunay triangulations and Voronoi diagrams are projections of polyhedra.

Page 24: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Delaunay triangulations and Voronoi diagrams are projections of polyhedra.

Parabolic lifting into d+1 dimensions.

The Delaunay triangulation is the projection of lower hull.

Other liftings yield weighted Delaunay triangulations.

Page 25: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Delaunay triangulations and Voronoi diagrams are projections of polyhedra.

Parabolic lifting into d+1 dimensions.

The Delaunay triangulation is the projection of lower hull.

Other liftings yield weighted Delaunay triangulations.

Page 26: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Delaunay triangulations and Voronoi diagrams are projections of polyhedra.

Parabolic lifting into d+1 dimensions.

The Delaunay triangulation is the projection of lower hull.

Other liftings yield weighted Delaunay triangulations.

Page 27: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Delaunay triangulations and Voronoi diagrams are projections of polyhedra.

Parabolic lifting into d+1 dimensions.

The Delaunay triangulation is the projection of lower hull.

Other liftings yield weighted Delaunay triangulations.

Page 28: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Delaunay triangulations and Voronoi diagrams are projections of polyhedra.

Parabolic lifting into d+1 dimensions.

The Delaunay triangulation is the projection of lower hull.

Other liftings yield weighted Delaunay triangulations.

Page 29: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Weighted Voronoi Diagrams

Page 30: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Weighted Voronoi Diagrams

The diagrams remain piecewise linear.

Page 31: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Weighted Voronoi Diagrams

The diagrams remain piecewise linear.Some points disappear.

Page 32: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Weighted Voronoi Diagrams

The diagrams remain piecewise linear.Some points disappear.Circumballs are replaced by orthoballs.

Page 33: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Weighted Voronoi Diagrams

The diagrams remain piecewise linear.Some points disappear.Circumballs are replaced by orthoballs.

Page 34: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

A brief history of Voronoi Diagram algorithms.(Convex Hull)

Page 35: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

A brief history of Voronoi Diagram algorithms.

O(n log n+ n!d/2")Chazelle

(Convex Hull)

Page 36: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

A brief history of Voronoi Diagram algorithms.

O(n log n+ n!d/2")Chazelle

Avis O(nf)

(Convex Hull)

Page 37: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

A brief history of Voronoi Diagram algorithms.

O(n log n+ n!d/2")Chazelle

O(n2 + f log n)Seidel

Avis O(nf)

(Convex Hull)

Page 38: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

A brief history of Voronoi Diagram algorithms.

O(n log n+ n!d/2")Chazelle

O(n2 + f log n)Seidel

O(n2! 2!d/2"+1 logO(1) n+ f log n)

Matousek and Schwartzkopf

Avis O(nf)

(Convex Hull)

Page 39: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

A brief history of Voronoi Diagram algorithms.

O(n log n+ n!d/2")Chazelle

O(n2 + f log n)Seidel

O(n2! 2!d/2"+1 logO(1) n+ f log n)

Matousek and Schwartzkopf

O(n log f + (nf)1!1

!d/2"+1 logO(1) n)Chan

Avis O(nf)

(Convex Hull)

Page 40: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

A brief history of Voronoi Diagram algorithms.

O(n log n+ n!d/2")Chazelle

O(n2 + f log n)Seidel

O(n2! 2!d/2"+1 logO(1) n+ f log n)

Matousek and Schwartzkopf

O(n log f + (nf)1!1

!d/2"+1 logO(1) n)Chan

O((n+ (nf)1!1

!d/2" + fn1! 2

!d/2" ) logO(1) n)Chan, Snoeyink, Yap

Avis O(nf)

(Convex Hull)

Page 41: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

A brief history of Voronoi Diagram algorithms.

O(n log n+ n!d/2")Chazelle

O(n2 + f log n)Seidel

O(n2! 2!d/2"+1 logO(1) n+ f log n)

Matousek and Schwartzkopf

O(n log f + (nf)1!1

!d/2"+1 logO(1) n)Chan

O((n+ (nf)1!1

!d/2" + fn1! 2

!d/2" ) logO(1) n)Chan, Snoeyink, Yap

O(f log n log!)Miller and Sheehy(today’s talk)

Avis O(nf)

(Convex Hull)

Page 42: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation

Page 43: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh GenerationDecompose a domain into simple elements.

Page 44: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh GenerationDecompose a domain into simple elements.

Page 45: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation

Mesh Quality

Radius/Edge < const

Decompose a domain into simple elements.

Page 46: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation

X X✓

Mesh Quality

Radius/Edge < const

Decompose a domain into simple elements.

Page 47: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation

X X✓

Mesh Quality

Radius/Edge < const

Conforming to InputDecompose a domain into simple elements.

Page 48: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation

X X✓

Mesh Quality

Radius/Edge < const

Conforming to InputDecompose a domain into simple elements.

Page 49: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation

X X✓

Mesh Quality

Radius/Edge < const

Conforming to InputDecompose a domain into simple elements.

Page 50: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation

X X✓

Mesh Quality

Radius/Edge < const

Conforming to InputDecompose a domain into simple elements.

Page 51: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation

X X✓

Mesh Quality

Radius/Edge < const

Conforming to InputDecompose a domain into simple elements.

Voronoi Diagram

Page 52: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation

X X✓

Mesh Quality

Radius/Edge < const

OutRadius/InRadius < const

Conforming to InputDecompose a domain into simple elements.

Voronoi Diagram

Page 53: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation

X X✓

✓X

Mesh Quality

Radius/Edge < const

OutRadius/InRadius < const

Conforming to InputDecompose a domain into simple elements.

Voronoi Diagram

Page 54: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation

X X✓

✓X

Mesh Quality

Radius/Edge < const

OutRadius/InRadius < const

Conforming to InputDecompose a domain into simple elements.

Voronoi Diagram

Page 55: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Meshing PointsInput: P ! Rd

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

n = |P |,m = |M |

Page 56: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Meshing PointsInput: P ! Rd

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

n = |P |,m = |M |

Page 57: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Meshing PointsInput: P ! Rd

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

n = |P |,m = |M |

Page 58: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Meshing PointsInput: P ! Rd

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

n = |P |,m = |M |

Page 59: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Meshing PointsInput: P ! Rd

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

n = |P |,m = |M |

Counterintuitive Fact about Meshing:It’s sometimes easier to build the Voronoi/Delaunay of a superset of the input, than of the input alone.

Page 60: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Meshing Guarantees

Aspect Ratio (quality):

Cell Sizing:

Constant Local Complexity:

Optimality and Running time:

vRv

rvRv

rv! !

lfs(x) := d(x, P \ {NN(x)})

|M | = !(|Optimal|)

Running time: O(n log n+ |M |)

Each cell has at most a constant number of faces.

1

Klfs(v) ! Rv ! Klfs(v)

Page 61: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation in reverse?

Build a quality mesh.

Increase the weights of the input points.

Update the structure for each local change.

Page 62: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation in reverse?

Build a quality mesh.

Increase the weights of the input points.

Update the structure for each local change.

Page 63: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation in reverse?

Build a quality mesh.

Increase the weights of the input points.

Update the structure for each local change.

Page 64: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation in reverse?

Build a quality mesh.

Increase the weights of the input points.

Update the structure for each local change.

Page 65: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation in reverse?

Build a quality mesh.

Increase the weights of the input points.

Update the structure for each local change.

Page 66: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation in reverse?

Build a quality mesh.

Increase the weights of the input points.

Update the structure for each local change.

Page 67: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation in reverse?

Build a quality mesh.

Increase the weights of the input points.

Update the structure for each local change.

Page 68: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation in reverse?

Build a quality mesh.

Increase the weights of the input points.

Update the structure for each local change.

Page 69: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation in reverse?

Build a quality mesh.

Increase the weights of the input points.

Update the structure for each local change.

Page 70: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation in reverse?

Build a quality mesh.

Increase the weights of the input points.

Update the structure for each local change.

Page 71: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Mesh Generation in reverse?

Build a quality mesh.

Increase the weights of the input points.

Update the structure for each local change.

Page 72: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Local changes are flips.

Page 73: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Local changes are flips.

Page 74: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Local changes are flips.

Page 75: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Local changes are flips.

Page 76: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Local changes are flips.

Page 77: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Local changes are flips.

Page 78: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Local changes are flips.

Page 79: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Local changes are flips.

Flips correspond to intersections of the Voronoi diagram of the mesh and the Voronoi diagram of the input points.

Page 80: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Computing the flip times only requires a single determinant computation.

Page 81: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Computing the flip times only requires a single determinant computation.

det

!

"

p1 · · · pd+2

1 · · · 1

!p1!2 · · · !pd+2!2

#

$ = 0d+2 points cospherical iff

Page 82: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Computing the flip times only requires a single determinant computation.

det

!

"

p1 · · · pd+2

1 · · · 1

!p1!2 · · · !pd+2!2

#

$ = 0d+2 points cospherical iff

det

!

"

p1 · · · pd+2

1 · · · 1

!p1!2 " w1 · · · !pd+2!2 " wd+2

#

$ = 0

d+2 weighted points on a common orthosphere iff

Page 83: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Computing the flip times only requires a single determinant computation.

wi =

!

t if pi ! P

0 otherwiseDefine

det

!

"

p1 · · · pd+2

1 · · · 1

!p1!2 · · · !pd+2!2

#

$ = 0d+2 points cospherical iff

det

!

"

p1 · · · pd+2

1 · · · 1

!p1!2 " w1 · · · !pd+2!2 " wd+2

#

$ = 0

d+2 weighted points on a common orthosphere iff

Page 84: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Computing the flip times only requires a single determinant computation.

wi =

!

t if pi ! P

0 otherwiseDefine

det

!

"

p1 · · · pd+2

1 · · · 1

!p1!2 " w1 · · · !pd+2!2 " wd+2

#

$So, is linear in t.

det

!

"

p1 · · · pd+2

1 · · · 1

!p1!2 · · · !pd+2!2

#

$ = 0d+2 points cospherical iff

det

!

"

p1 · · · pd+2

1 · · · 1

!p1!2 " w1 · · · !pd+2!2 " wd+2

#

$ = 0

d+2 weighted points on a common orthosphere iff

Page 85: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

The Algorithm

Page 86: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

The Algorithm

Add a bounding box around the points.

Page 87: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

The Algorithm

Add a bounding box around the points.

Build a quality mesh of the points.

Page 88: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

The Algorithm

Add a bounding box around the points.

Build a quality mesh of the points.

Keep potential flips on a heap ordered by flip time.

Page 89: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

The Algorithm

Add a bounding box around the points.

Build a quality mesh of the points.

Keep potential flips on a heap ordered by flip time. (flip time is the weight of the input points when the flip happens)

Page 90: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

The Algorithm

Add a bounding box around the points.

Build a quality mesh of the points.

Keep potential flips on a heap ordered by flip time. (flip time is the weight of the input points when the flip happens)

Repeatedly pop a flip, attempt to do it, and update.

Page 91: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

The Algorithm

Add a bounding box around the points.

Build a quality mesh of the points.

Keep potential flips on a heap ordered by flip time. (flip time is the weight of the input points when the flip happens)

Repeatedly pop a flip, attempt to do it, and update.(at most O(1) new potential flips are added to the heap)

Page 92: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

The Algorithm

Add a bounding box around the points.

Build a quality mesh of the points.

Keep potential flips on a heap ordered by flip time. (flip time is the weight of the input points when the flip happens)

Repeatedly pop a flip, attempt to do it, and update.(at most O(1) new potential flips are added to the heap)

When the heap is empty, remove the bounding box and all incident Delaunay faces.

Page 93: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Flips happen at the intersections of Voronoi diagrams.

Page 94: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

There are only log(spread) flips per face.

Page 95: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

There are only log(spread) flips per face.

Page 96: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

There are only log(spread) flips per face.

Page 97: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

A summary of the analysis.

Page 98: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

A summary of the analysis.

Full dimensional mesh cells intersect output faces at most log(spread) times.

Page 99: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

A summary of the analysis.

Full dimensional mesh cells intersect output faces at most log(spread) times.

Since each mesh cell has only a constant number of faces, we only get O(f log(spread)) total flips.

Page 100: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

A summary of the analysis.

Full dimensional mesh cells intersect output faces at most log(spread) times.

Since each mesh cell has only a constant number of faces, we only get O(f log(spread)) total flips.

Each flip generates at most O(1) new flips on the heap.

Page 101: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

A summary of the analysis.

Full dimensional mesh cells intersect output faces at most log(spread) times.

Since each mesh cell has only a constant number of faces, we only get O(f log(spread)) total flips.

Each flip generates at most O(1) new flips on the heap.

The heap operations require O(log n) time each.

Page 102: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

A summary of the analysis.

Full dimensional mesh cells intersect output faces at most log(spread) times.

Since each mesh cell has only a constant number of faces, we only get O(f log(spread)) total flips.

Each flip generates at most O(1) new flips on the heap.

The heap operations require O(log n) time each.

Total running time is O(f log n log (spread)).

Page 103: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Summary

Page 104: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Summary

A new output-sensitive algorithm for Voronoi diagrams and Delaunay triangulations in d-dimensions.

Page 105: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Summary

A new output-sensitive algorithm for Voronoi diagrams and Delaunay triangulations in d-dimensions.

Start with a quality mesh and then remove the Steiner points.

Page 106: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Summary

A new output-sensitive algorithm for Voronoi diagrams and Delaunay triangulations in d-dimensions.

Start with a quality mesh and then remove the Steiner points.

Use geometry to bound the combinatorial changes.

Page 107: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Summary

A new output-sensitive algorithm for Voronoi diagrams and Delaunay triangulations in d-dimensions.

Start with a quality mesh and then remove the Steiner points.

Use geometry to bound the combinatorial changes.

O(f log n log!)Running time:

Page 108: Output-Sensitive Voronoi Diagrams and Delaunay Triangulations

Summary

A new output-sensitive algorithm for Voronoi diagrams and Delaunay triangulations in d-dimensions.

Start with a quality mesh and then remove the Steiner points.

Use geometry to bound the combinatorial changes.

O(f log n log!)Running time:

Thank you.