Voronoi Diagrams, Delaunay Triangulations and Polytopes

Similar documents
Lecture 3 Randomized Algorithms

Lecture 1 Discrete Geometric Structures

Voronoi diagram and Delaunay triangulation

be a polytope. has such a representation iff it contains the origin in its interior. For a generic, sort the inequalities so that

Planar Graphs. 1 Graphs and maps. 1.1 Planarity and duality

Computational Geometry Lecture Duality of Points and Lines

Voronoi diagrams Delaunay Triangulations. Pierre Alliez Inria

Convex hulls of spheres and convex hulls of convex polytopes lying on parallel hyperplanes

COMP331/557. Chapter 2: The Geometry of Linear Programming. (Bertsimas & Tsitsiklis, Chapter 2)

Chapter 8. Voronoi Diagrams. 8.1 Post Oce Problem

In what follows, we will focus on Voronoi diagrams in Euclidean space. Later, we will generalize to other distance spaces.

Computational Geometry

Linear Programming in Small Dimensions

Convex Hulls in 3D. Definitions. Size of a Convex Hull in 3D. Collision detection: The smallest volume polyhedral that contains a set of points in 3D.

Voronoi Diagrams and Delaunay Triangulations. O Rourke, Chapter 5

Dirichlet Voronoi Diagrams and Delaunay Triangulations

Delaunay Triangulations

Computational Geometry Lecture Delaunay Triangulation

Convex Geometry arising in Optimization

Advanced Algorithms Computational Geometry Prof. Karen Daniels. Fall, 2012

CAD & Computational Geometry Course plan

Computational Geometry

CS 372: Computational Geometry Lecture 10 Linear Programming in Fixed Dimension

Delaunay Triangulation

maximize c, x subject to Ax b,

Delaunay Triangulations. Presented by Glenn Eguchi Computational Geometry October 11, 2001

arxiv: v1 [math.co] 12 Aug 2018

2 Delaunay Triangulations

Lecture 2 - Introduction to Polytopes

Combinatorial Geometry & Topology arising in Game Theory and Optimization

Polytopes Course Notes

Polar Duality and Farkas Lemma

Complexity of Delaunay triangulation for points on lower-dimensional polyhedra

Complexity of Delaunay Triangulation for Points on Lower-dimensional Polyhedra.

Mesh Generation. Jean-Daniel Boissonnat DataShape, INRIA

CS522: Advanced Algorithms

3. Voronoi Diagrams. 3.1 Definitions & Basic Properties. Examples :

Simplicial Complexes: Second Lecture

Voronoi Diagrams in the Plane. Chapter 5 of O Rourke text Chapter 7 and 9 of course text

Course 16 Geometric Data Structures for Computer Graphics. Voronoi Diagrams

Optimal detection of intersections between convex polyhedra

4 LINEAR PROGRAMMING (LP) E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

A Course in Convexity

CS 532: 3D Computer Vision 14 th Set of Notes

2D Geometry. Pierre Alliez Inria Sophia Antipolis

Mathematical and Algorithmic Foundations Linear Programming and Matchings

Mesh Generation through Delaunay Refinement

Shellings, the Euler-Poincaré Formula for Polytopes, Dehn-Sommerville Equations, the Upper Bound Theorem

Numerical Optimization

Rigidity of ball-polyhedra via truncated Voronoi and Delaunay complexes

Lifting Transform, Voronoi, Delaunay, Convex Hulls

An Introduction to Computational Geometry: Arrangements and Duality

A PROOF OF THE LOWER BOUND CONJECTURE FOR CONVEX POLYTOPES

Chapter 4 Concepts from Geometry

COMPUTATIONAL GEOMETRY

FACES OF CONVEX SETS

Math 5593 Linear Programming Lecture Notes

Detecting intersections between convex polyhedra

Hausdorff Approximation of 3D Convex Polytopes

Linear programming and duality theory

Voronoi Diagram. Xiao-Ming Fu

Surface Mesh Generation

POLYTOPES. Grünbaum and Shephard [40] remarked that there were three developments which foreshadowed the modern theory of convex polytopes.

Lecture 0: Reivew of some basic material

Discrete Optimization 2010 Lecture 5 Min-Cost Flows & Total Unimodularity

Quadratic and cubic b-splines by generalizing higher-order voronoi diagrams

Lecture 3. Corner Polyhedron, Intersection Cuts, Maximal Lattice-Free Convex Sets. Tepper School of Business Carnegie Mellon University, Pittsburgh

4.2 Simplicial Homology Groups

Lecture notes for Topology MMA100

arxiv: v1 [cs.cc] 30 Jun 2017

Automorphism Groups of Cyclic Polytopes

Tutorial 3 Comparing Biological Shapes Patrice Koehl and Joel Hass

However, this is not always true! For example, this fails if both A and B are closed and unbounded (find an example).

Math 414 Lecture 2 Everyone have a laptop?

Lecture 16: Voronoi Diagrams and Fortune s Algorithm

CREPANT RESOLUTIONS OF GORENSTEIN TORIC SINGULARITIES AND UPPER BOUND THEOREM. Dimitrios I. Dais

Midpoint Routing algorithms for Delaunay Triangulations

Tiling Three-Dimensional Space with Simplices. Shankar Krishnan AT&T Labs - Research

The Farthest Point Delaunay Triangulation Minimizes Angles

Simplicial Cells in Arrangements of Hyperplanes

CS133 Computational Geometry

G 6i try. On the Number of Minimal 1-Steiner Trees* Discrete Comput Geom 12:29-34 (1994)

Scientific Computing WS 2018/2019. Lecture 12. Jürgen Fuhrmann Lecture 12 Slide 1

Three-Dimensional α Shapes

The Construction of a Hyperbolic 4-Manifold with a Single Cusp, Following Kolpakov and Martelli. Christopher Abram

Monotone Paths in Geometric Triangulations

6.854J / J Advanced Algorithms Fall 2008

Estimating Geometry and Topology from Voronoi Diagrams

Computation of Voronoi Diagrams and Delaunay Triangulation via Parametric Linear Programming

DM545 Linear and Integer Programming. Lecture 2. The Simplex Method. Marco Chiarandini

Definitions. Topology/Geometry of Geodesics. Joseph D. Clinton. SNEC June Magnus J. Wenninger

10. Line Arrangements Lecture on Monday 2 nd November, 2009 by Michael Homann

Contents. Preface... VII. Part I Classical Topics Revisited

Figure 2.1: An example of a convex set and a nonconvex one.

4. Simplicial Complexes and Simplicial Homology

ACTUALLY DOING IT : an Introduction to Polyhedral Computation

Polyhedral Voronoi Diagrams of Polyhedra in Three Dimensions

Computational Geometry Exercise Duality

Crossing Families. Abstract

arxiv: v2 [math.co] 24 Aug 2016

Transcription:

Voronoi Diagrams, Delaunay Triangulations and Polytopes Jean-Daniel Boissonnat MPRI, Lecture 2 Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 1 / 43

Voronoi diagrams in nature Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 2 / 43

The solar system (Descartes) Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 3 / 43

Growth of merystem Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 4 / 43

Euclidean Voronoi diagrams Voronoi cell V(p i ) = {x : x p i x p j, j} Voronoi diagram (P) = { collection of all cells V(p i ), p i P } Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 5 / 43

Voronoi diagrams and polytopes Polytope The intersection of a finite collection of half-spaces : V = i I h + i Each Voronoi cell is a polytope The Voronoi diagram has the structure of a cell complex The Voronoi diagram of P is the projection of a polytope of R d+1 Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 6 / 43

Voronoi diagrams and polytopes Polytope The intersection of a finite collection of half-spaces : V = i I h + i Each Voronoi cell is a polytope The Voronoi diagram has the structure of a cell complex The Voronoi diagram of P is the projection of a polytope of R d+1 Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 6 / 43

Voronoi diagrams and polytopes Polytope The intersection of a finite collection of half-spaces : V = i I h + i Each Voronoi cell is a polytope The Voronoi diagram has the structure of a cell complex The Voronoi diagram of P is the projection of a polytope of R d+1 Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 6 / 43

Voronoi diagrams and polytopes Polytope The intersection of a finite collection of half-spaces : V = i I h + i Each Voronoi cell is a polytope The Voronoi diagram has the structure of a cell complex The Voronoi diagram of P is the projection of a polytope of R d+1 Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 6 / 43

Voronoi diagrams and polyhedra Vor(p 1,..., p n) is the minimization diagram of the n functions δ i(x) = (x p i) 2 arg min(δ i) = arg max(h i) where h pi (x) = 2 p i x p 2 i The minimization diagram of the δ i is also the maximization diagram of the affine functions h pi (x) The faces of Vor(P) are the projections of the faces of V(P) = i h + p i h + p i = {x : x d+1 > 2p i x p 2 i } Note! the graph of h pi (x) is the hyperplane tangent to Q : x d+1 = x 2 at (x, x 2 ) p i z = (x p i ) 2 Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 7 / 43

Voronoi diagrams and polyhedra Vor(p 1,..., p n) is the minimization diagram of the n functions δ i(x) = (x p i) 2 arg min(δ i) = arg max(h i) where h pi (x) = 2 p i x p 2 i The minimization diagram of the δ i is also the maximization diagram of the affine functions h pi (x) The faces of Vor(P) are the projections of the faces of V(P) = i h + p i h + p i = {x : x d+1 > 2p i x p 2 i } Note! the graph of h pi (x) is the hyperplane tangent to Q : x d+1 = x 2 at (x, x 2 ) p i z = (x p i ) 2 Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 7 / 43

Voronoi diagrams and polyhedra Vor(p 1,..., p n) is the minimization diagram of the n functions δ i(x) = (x p i) 2 arg min(δ i) = arg max(h i) where h pi (x) = 2 p i x p 2 i The minimization diagram of the δ i is also the maximization diagram of the affine functions h pi (x) The faces of Vor(P) are the projections of the faces of V(P) = i h + p i h + p i = {x : x d+1 > 2p i x p 2 i } Note! the graph of h pi (x) is the hyperplane tangent to Q : x d+1 = x 2 at (x, x 2 ) Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 7 / 43

Voronoi diagrams and polyhedra Vor(p 1,..., p n) is the minimization diagram of the n functions δ i(x) = (x p i) 2 arg min(δ i) = arg max(h i) where h pi (x) = 2 p i x p 2 i The minimization diagram of the δ i is also the maximization diagram of the affine functions h pi (x) The faces of Vor(P) are the projections of the faces of V(P) = i h + p i h + p i = {x : x d+1 > 2p i x p 2 i } Note! the graph of h pi (x) is the hyperplane tangent to Q : x d+1 = x 2 at (x, x 2 ) Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 7 / 43

Voronoi diagrams and polyhedra Vor(p 1,..., p n) is the minimization diagram of the n functions δ i(x) = (x p i) 2 arg min(δ i) = arg max(h i) where h pi (x) = 2 p i x p 2 i The minimization diagram of the δ i is also the maximization diagram of the affine functions h pi (x) The faces of Vor(P) are the projections of the faces of V(P) = i h + p i h + p i = {x : x d+1 > 2p i x p 2 i } Note! the graph of h pi (x) is the hyperplane tangent to Q : x d+1 = x 2 at (x, x 2 ) Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 7 / 43

Voronoi diagrams and polytopes Lifting map The faces of Vor(P) are the projection of the faces of the polytope V(P) = i h + p i where h pi is the hyperplane tangent to paraboloid Q at the lifted point (p i, p 2 i ) Corollaries The size of Vor(P) is the same as the size of V(P) Computing Vor(P) reduces to computing V(P) Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 8 / 43

Voronoi diagrams and polytopes Lifting map The faces of Vor(P) are the projection of the faces of the polytope V(P) = i h + p i where h pi is the hyperplane tangent to paraboloid Q at the lifted point (p i, p 2 i ) Corollaries The size of Vor(P) is the same as the size of V(P) Computing Vor(P) reduces to computing V(P) Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 8 / 43

Polytopes (convex polyhedra) Two ways of defining polytopes Convex hull of a finite set of points : V = conv(p) Intersection of a finite set of half-spaces : H = h H h + i Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 9 / 43

Facial structure of a polytope Supporting hyperplane h : H P P on one side of h Faces : P h, h supp. hyp. Dimension of a face : the dim. of its affine hull Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 10 / 43

General position Points in general position P is in general position iff no subset of k + 2 points lie in a k-flat If P is in general position, all faces of conv(p) are simplices Hyperplanes in general position H is in general position iff the intersection of any subset of d k hyperplanes intersect in a k-flat any k-face is the intersection of d k hyperplanes Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 11 / 43

General position Points in general position P is in general position iff no subset of k + 2 points lie in a k-flat If P is in general position, all faces of conv(p) are simplices Hyperplanes in general position H is in general position iff the intersection of any subset of d k hyperplanes intersect in a k-flat any k-face is the intersection of d k hyperplanes Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 11 / 43

General position Points in general position P is in general position iff no subset of k + 2 points lie in a k-flat If P is in general position, all faces of conv(p) are simplices Hyperplanes in general position H is in general position iff the intersection of any subset of d k hyperplanes intersect in a k-flat any k-face is the intersection of d k hyperplanes Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 11 / 43

Duality between points and hyperplanes hyperplane of R d h : x d = a x b point h = (a, b) R d point p = (p, p d ) R d hyperplane p R d = {(a, b) R d : b = p a p d } Duality preserves incidences : p h p d = a p b b = p a p d h p p h + p d > a p b b > p a p d h p + is an involution and thus is bijective : h = h and p = p Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 12 / 43

Duality between points and hyperplanes hyperplane of R d h : x d = a x b point h = (a, b) R d point p = (p, p d ) R d hyperplane p R d = {(a, b) R d : b = p a p d } Duality preserves incidences : p h p d = a p b b = p a p d h p p h + p d > a p b b > p a p d h p + is an involution and thus is bijective : h = h and p = p Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 12 / 43

Duality between polytopes Let h 1,..., h n be n hyperplanes of R d and let H = h + i h 3 h 1 h 2 * s h 3 h 2 h 1 A vertex s of H is the intersection of k d hyperplanes h 1,..., h k lying above all the other hyperplanes = s is a hyperplane that 1. contains h 1,..., h k 2. supports H = conv (h 1,..., h k ) General position s is the intersection of d hyperplanes s supports a (d 1)-simplex de H Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 13 / 43

More generally and under the general position assumption, Let f be a (d k)-face of H and aff(f ) = k i=1 h i p f h i p for i = 1,..., k h i p + for i = k + 1,..., n p support. hyp. of H = conv(h 1,..., h n ) p h 1,..., h k f = conv(h 1,..., h k ) is a (k 1) face of H Duality between H and H The correspondence between the faces of H and H is involutive and therefore bijective It reverses inclusions : f, g H, f g g f Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 14 / 43

More generally and under the general position assumption, Let f be a (d k)-face of H and aff(f ) = k i=1 h i p f h i p for i = 1,..., k h i p + for i = k + 1,..., n p support. hyp. of H = conv(h 1,..., h n ) p h 1,..., h k f = conv(h 1,..., h k ) is a (k 1) face of H Duality between H and H The correspondence between the faces of H and H is involutive and therefore bijective It reverses inclusions : f, g H, f g g f Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 14 / 43

Algorithmic consequences Depending on the application, the primal or the dual setting may be more appropriate We will bound the combinatorial complexity of the intersection of n upper half-spaces We will compute the convex hull of n points By duality, the results extend to the dual case Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 15 / 43

Euler formula for 3-polytopes The numbers of vertices s, edges a and facets f of a polytope of R 3 satisfy s a + f = 2 Schlegel diagram s = s a = a + 1 f = f + 1 s = s + 1 a a + 1 f = f Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 16 / 43

Euler formula for 3-polytopes : s a + f = 2 Incidences edges-facets 2a 3f = a 3s 6 f 2s 4 with equality when all facets are triangles Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 17 / 43

Beyond the 3rd dimension Upper bound theorem [McMullen 1970] If H is the intersection of n half-spaces of R d nb faces of H = Θ(n d 2 ) Hyperplanes in general position any k-face is the intersection of d k hyperplanes defining H all vertices of H are incident to d edges and have distinct x d the convex hull of k < d edges incident to a vertex p is a k-face of H Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 18 / 43

Beyond the 3rd dimension Upper bound theorem [McMullen 1970] If H is the intersection of n half-spaces of R d nb faces of H = Θ(n d 2 ) Hyperplanes in general position any k-face is the intersection of d k hyperplanes defining H all vertices of H are incident to d edges and have distinct x d the convex hull of k < d edges incident to a vertex p is a k-face of H Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 18 / 43

Proof of the upper bound theorem Bounding the number of vertices 1 d 2 edges incident to a vertex p are in h+ p : x d x d (p) or in h p p is a x d -max or x d -min vertex of at least one d -face of H 2 # vertices of H 2 # d -faces of H 2 2 A k-face is the intersection of d k hyperplanes defining H ( ) n # k-faces = = O(n d k ) d k # d 2 -faces = O(n d 2 ) Bounding the total number of faces The number of faces incident to p depends on d but not on n Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 19 / 43

Proof of the upper bound theorem Bounding the number of vertices 1 d 2 edges incident to a vertex p are in h+ p : x d x d (p) or in h p p is a x d -max or x d -min vertex of at least one d -face of H 2 # vertices of H 2 # d -faces of H 2 2 A k-face is the intersection of d k hyperplanes defining H ( ) n # k-faces = = O(n d k ) d k # d 2 -faces = O(n d 2 ) Bounding the total number of faces The number of faces incident to p depends on d but not on n Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 19 / 43

Proof of the upper bound theorem Bounding the number of vertices 1 d 2 edges incident to a vertex p are in h+ p : x d x d (p) or in h p p is a x d -max or x d -min vertex of at least one d -face of H 2 # vertices of H 2 # d -faces of H 2 2 A k-face is the intersection of d k hyperplanes defining H ( ) n # k-faces = = O(n d k ) d k # d 2 -faces = O(n d 2 ) Bounding the total number of faces The number of faces incident to p depends on d but not on n Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 19 / 43

Representation of a convex hull Adjacency graph (AG) of the facets In general position, all the facets are (d 1)-simplexes Vertex Face* v face neighbor(i) ccw(i) neighbor(cw(i)) Face Vertex* Face* vertex[d] neighbor[d] cw(i) f neighbor(ccw(i)) i Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 20 / 43

Incremental algorithm pi P i : set of the i points that have been inserted first s e conv(p i ) : convex hull at step i O conv(ei) t f = [p 1,..., p d ] is a red facet iff its supporting hyperplane separates p i from conv(p i ) orient(p 1,..., p d, p i ) orient(p 1,..., p d, O) < 0 orient(p 0, p 1,..., p d ) = 1 1... 1 p 0 p 1... p d = 1 1... 1 x 01 x 11... x d1...... x 0d x 1d... x dd Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 21 / 43

Update of conv(p i ) red facet = facet whose supporting hyperplane separates o and p i+1 horizon : (d 2)-faces shared by a blue and a red facet Update conv(p i ) : 1 find the red facets 2 remove them and create the new facets [p i+1, g], g horizon s O conv(ei) e t pi Complexity proportional to the number of red facets Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 22 / 43

Update of conv(p i ) red facet = facet whose supporting hyperplane separates o and p i+1 horizon : (d 2)-faces shared by a blue and a red facet Update conv(p i ) : 1 find the red facets 2 remove them and create the new facets [p i+1, g], g horizon s O conv(ei) e t pi Complexity proportional to the number of red facets Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 22 / 43

Complexity analysis update proportional to the number of red facets s pi # new facets = conv(i, d 1) = O(i d 1 2 ) fast locate : insert the points in lexicographic order and search a 1st red facet in star(p i 1 ) (which necessarily exists) O conv(ei) e t T(n, d) = O(n log n) + n i=1 = O(n log n + n d+1 2 ) i d 1 2 ) Worst-case optimal in even dimensions Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 23 / 43

Complexity analysis update proportional to the number of red facets s pi # new facets = conv(i, d 1) = O(i d 1 2 ) fast locate : insert the points in lexicographic order and search a 1st red facet in star(p i 1 ) (which necessarily exists) O conv(ei) e t T(n, d) = O(n log n) + n i=1 = O(n log n + n d+1 2 ) i d 1 2 ) Worst-case optimal in even dimensions Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 23 / 43

Lower bound y = x 2 conv({p i}) = tri({x i}) pi = (xi, x 2 i ) the orientation test reduces to 3 comparisons orient(p i, p j, p k ) = x i x j xi 2 xj 2 x i x k xi 2 xk 2 xi = (x i x j)(x j x k )(x k x i) = Lower bound : Ω(n log n) Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 24 / 43

Lower bound for the incremental algorithm No incremental algorithm can compute the convex hull of n points of R 3 in less than Ω(n 2 ) Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 25 / 43

Randomized incremental algorithm o : a point inside conv(p) P i : the set of the first i inserted points e pi conv(p i ) : convex hull at step i O conv(ei) Conflict graph bipartite graph {p j } {facets of conv(p i )} p j f j > i (p j not yet inserted) f op j Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 26 / 43

Randomized incremental algorithm o : a point inside conv(p) P i : the set of the first i inserted points e pi conv(p i ) : convex hull at step i O conv(ei) Conflict graph bipartite graph {p j } {facets of conv(p i )} p j f j > i (p j not yet inserted) f op j Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 26 / 43

Randomized analysis Hyp. : points are inserted in random order Notations R : random sample of size r of P F(R) = { subsets of d points of R} F 0 (R) = { elements of F(R) with 0 conflict in R} F 1 (R) = { elements of F(R) with 1 conflict in R} (i.e. conv(r)) C i (r, P) = E( F i (R) ) (expectation over all random samples R P of size r) Lemma C i (r, P) = O(r d 2 ), i = 1, 2 Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 27 / 43

Randomized analysis Hyp. : points are inserted in random order Notations R : random sample of size r of P F(R) = { subsets of d points of R} F 0 (R) = { elements of F(R) with 0 conflict in R} F 1 (R) = { elements of F(R) with 1 conflict in R} (i.e. conv(r)) C i (r, P) = E( F i (R) ) (expectation over all random samples R P of size r) Lemma C i (r, P) = O(r d 2 ), i = 1, 2 Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 27 / 43

Randomized analysis Hyp. : points are inserted in random order Notations R : random sample of size r of P F(R) = { subsets of d points of R} F 0 (R) = { elements of F(R) with 0 conflict in R} F 1 (R) = { elements of F(R) with 1 conflict in R} (i.e. conv(r)) C i (r, P) = E( F i (R) ) (expectation over all random samples R P of size r) Lemma C i (r, P) = O(r d 2 ), i = 1, 2 Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 27 / 43

Proof of the lemma : C 1 (r, P) = C 0 (r, P) = O(r d 2 ) R = R \ {p} f F 0 (R ) if f F 1 (R) and p f (proba = 1 r ) or f F 0 (R) and R the d vertices of f (proba = r d r ) Taking the expectation, C 0 (r 1, R) = 1 r F 1(R) + r d F 0 (R) r C 0 (r 1, P) = 1 r C 1(r, P) + r d C 0 (r, P) r C 1 (r, P) = d C 0 (r, P) r (C 0 (r, P) C 0 (r 1, P)) d C 0 (r, P) = O(r d 2 ) Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 28 / 43

Randomized analysis 1 Updating the convex hull + memory space Expected number N(i) of facets created at step i N(i) = f F(P) = d i O ( i d 2 ) = O(n d 2 1 ) proba(f F 0 (P i )) d i Expected total number of created facets = O(n d 2 ) O(n) if d = 2, 3 Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 29 / 43

Randomized analysis 1 Updating the convex hull + memory space Expected number N(i) of facets created at step i N(i) = f F(P) = d i O ( i d 2 ) = O(n d 2 1 ) proba(f F 0 (P i )) d i Expected total number of created facets = O(n d 2 ) O(n) if d = 2, 3 Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 29 / 43

Randomized analysis2 Updating the conflict graph Cost proportional to the number of faces of conv(p i ) in conflict with p i+1 and some p j, j > i N(i, j) = expected number of faces of conv(p i ) in conflict with p i+1 and p j, j > i P + i = P i {p i+1 } {p j } : a random subset of i + 2 points of P N(i, j) = f F(P) proba(f F 2 (P + i )) 2 (i + 1)(i + 2) = 2 C 2(i + 1) (i + 1)(i + 2) = O(i d 2 2 ) Expected total cost of updating the conflict graph n n n N(i, j) = (n i) O(i d 2 2 ) = O(n log n + n d 2 ) i=1 j=i+1 i=1 Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 30 / 43

Theorem The convex hull of n points of R d can be computed in time O(n log n + n d 2 ) using O(n d 2 ) space The same bounds hold for computing the intersection of n half-spaces of R d The randomized algorithm can be derandomized [Chazelle 1992] The same results hold for Voronoi diagrams provided that d d + 1 Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 31 / 43

Voronoi diagram and Delaunay triangulation Finite set of points P R d The Delaunay complex is the nerve of the Voronoi diagram It is not always embedded in R d Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 32 / 43

Empty circumballs An (open) d-ball B circumscribing a simplex σ P is called empty if 1 vert(σ) B 2 B P = Del(P) is the collection of simplices admitting an empty circumball Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 33 / 43

Point sets in general position wrt spheres P = {p 1, p 2... p n } is said to be in general position wrt spheres if d + 2 points of P lying on a same (d 1)-sphere Theorem [Delaunay 1936] If P is in general position wrt spheres, the natural mapping f : vert(delp) P provides a realization of Del(P) called the Delaunay triangulation of P. Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 34 / 43

Point sets in general position wrt spheres P = {p 1, p 2... p n } is said to be in general position wrt spheres if d + 2 points of P lying on a same (d 1)-sphere Theorem [Delaunay 1936] If P is in general position wrt spheres, the natural mapping f : vert(delp) P provides a realization of Del(P) called the Delaunay triangulation of P. Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 34 / 43

Proof of Delaunay s theorem 1 P h(σ) Linearization S(x) = x 2 2c x + s, s = c 2 r 2 σ { z < 2c x s (h S(x) < 0 S ) z = x 2 (P) ˆx = (x, x 2 ) h S Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 35 / 43

Proof of Delaunay s theorem 2 Proof of Delaunay s th. P general position wrt spheres ˆP in general position σ a simplex, S σ its circumscribing sphere σ Del(P) S σ empty i, ˆp i h + S σ ˆσ is a face of conv (ˆP) Del(P) = proj(conv (ˆP)) Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 36 / 43

Proof of Delaunay s theorem 2 Proof of Delaunay s th. P general position wrt spheres ˆP in general position σ a simplex, S σ its circumscribing sphere σ Del(P) S σ empty i, ˆp i h + S σ ˆσ is a face of conv (ˆP) Del(P) = proj(conv (ˆP)) Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 36 / 43

Duality V(P) = i h + p i D(P) = conv (ˆP) Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 37 / 43

Voronoi diagrams, Delaunay triangulations and polytopes If P is in general position wrt spheres : V(P) = h + p 1... h + p n duality D(P) = conv ({ˆp 1,..., ˆp n }) Voronoi Diagram of P nerve Delaunay Complex of P Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 38 / 43

Combinatorial complexity The combinatorial complexity of the Delaunay triangulation diagram of n points of R d is the same as the combinatorial complexity of a convex hull of n points of R d+1 Θ(n d 2 ) Quadratic in R 3 Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 39 / 43

Constructing Del(P), P = {p 1,..., p n } R d Algorithm 1 Lift the points of P onto the paraboloid x d+1 = x 2 of R d+1 : p i ˆp i = (p i, p 2 i ) 2 Compute conv({ˆp i }) 3 Project the lower hull conv ({ˆp i }) onto R d Complexity : Θ(n log n + n d+1 2 ) Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 40 / 43

Direct algorithm : insertion of a new point p i 1. Location : find all the d-simplices that conflict with p i i.e. whose circumscribing ball contains p i 2. Update : construct the new d-simplices p i p i T p i Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 41 / 43

Updating the adjacency graph We look at the d-simplices to be removed and at their neighbors Each d-simplex is considered d(d+1) 2 times Update cost = O(# created and deleted simplices ) = O(# created simplices) Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 42 / 43

Exercise : computing the DT of an ε-net Definition Let Ω be a bounded subset of R d and P a finite point set in Ω. P is called an (ε, η)-net of Ω if 1 Covering : p Ω, p P, p x ε 2 Packing : p, q P, p q η Questions 1 Show that (ε, ε)-nets exist 2 Show that any simplex with all its vertices at distance > ε from Ω has a circumradius ε 3 Show that the complexity of Del(P) is O(n) for fixed d 4 Improve the construction of Del(P) Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 43 / 43

Exercise : computing the DT of an ε-net Definition Let Ω be a bounded subset of R d and P a finite point set in Ω. P is called an (ε, η)-net of Ω if 1 Covering : p Ω, p P, p x ε 2 Packing : p, q P, p q η Questions 1 Show that (ε, ε)-nets exist 2 Show that any simplex with all its vertices at distance > ε from Ω has a circumradius ε 3 Show that the complexity of Del(P) is O(n) for fixed d 4 Improve the construction of Del(P) Computational Geometry Learning Voronoi, Delaunay & Polytopes MPRI, Lecture 2 43 / 43