Convex Hulls, Voronoi Diagrams and Delaunay Triangulations
Total Page:16
File Type:pdf, Size:1020Kb
Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Jean-Daniel Boissonnat Winter School on Algorithmic Geometry ENS-Lyon January 2010 Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Convex hull conv( ) P P Smallest convex set that contains a finite set of points P Set of all possible convex combinations of points in P P λ p , λ 0, P λ = 1 i i i ≥ i i We call polytope the convex hull of a finite set of points Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Simplex The convex hull of k + 1 points that are affinely independent is called a k-simplex 1-simplex = line segment 2-simplex = triangle 3-simplex = tetrahedron Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Facial structure of a polytope Supporting hyperplane H C = and C is entirely contained in one of the\ two6 half-spaces; defined by H Faces The faces of a P are the polytopes P h, h support. hyp. \ The face complex The faces of P form a cell complex C I f C, f is a convex polytope 8 2 I f C, f g g C 2 ⊂ ) 2 I f ; g C, either f g = or f g C 8 2 \ ; \ 2 Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations General position A point set is said to be in general position iff no subset of k + 2 pointsP lie in a k-flat If is in general position, all the faces of conv( ) are simplices P P The boundary of conv( ) is a simplicial complex P Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Intersection of n half-spaces Two ways of defining polyhedra Convex hull of n points Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Two ways of defining polyhedra Convex hull of n points Intersection of n half-spaces Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Duality between points and hyperplanes 0 d ∗ d hyperplane h : xd = a · x − b of R −! point h = (a; b) 2 R 0 d ∗ d point p = (p ; pd ) 2 R −! hyperplane p ⊂ R d 0 = f(a; b) 2 R : b = p · a − pd g The mapping ∗ I preserves incidences: 0 0 ∗ ∗ p 2 h () pd = a · p − b () b = p · a − pd () h 2 p + 0 0 ∗ ∗+ p 2 h () pd > a · p − b () b > p · a − pd () h 2 p ∗∗ ∗∗ I is an involution and thus is bijective : h = h and p = p Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Duality between polytopes d + Let h1;:::; hn be n hyperplanes de R and let P = h \ i h3 h3∗ h1 h2 * h1∗ ss h2∗ A vertex s of P is ¯the intersection of k d hyperplanes h1;:::; hk lying above all the other hyperplanes ≥ ∗ ∗ ∗ = s is a hyperplane h1;:::; hk ) 3 ∗ − ∗ ∗ supporting P =conv (h1;:::; hk ) General position : s is the intersection of d hyperplanes = s∗ is a (d 1)-face (simplex) de P∗ ) − Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Duality between P and P∗ I We have defined an involutive correspondence between the faces of P and P∗ s.t. f ; g P; f g g∗ f ∗ 8 2 ⊂ ) ⊂ I As a consequence, computing P reduces to computing a lower convex hull More generally and under the general position assumption, if f is a (d k)-face of P, f = k h − \i=1 i ∗ ∗ p 2 f , hi 2 p for i = 1;:::; k ∗ ∗+ hi 2 p for i = k + 1;:::; n ∗ ∗ ∗ ∗ , p support: hyp: of P = conv(h1 ;:::; hn ) ∗ ∗ 3 h1 ;:::; hk ∗ ∗ ∗ ∗ , f = conv(h1 ;:::; hk ) is a (k − 1) − face of P Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations More generally and under the general position assumption, if f is a (d k)-face of P, f = k h − \i=1 i ∗ ∗ p 2 f , hi 2 p for i = 1;:::; k ∗ ∗+ hi 2 p for i = k + 1;:::; n ∗ ∗ ∗ ∗ , p support: hyp: of P = conv(h1 ;:::; hn ) ∗ ∗ 3 h1 ;:::; hk ∗ ∗ ∗ ∗ , f = conv(h1 ;:::; hk ) is a (k − 1) − face of P Duality between P and P∗ I We have defined an involutive correspondence between the faces of P and P∗ s.t. f ; g P; f g g∗ f ∗ 8 2 ⊂ ) ⊂ I As a consequence, computing P reduces to computing a lower convex hull Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Euler’s formula The numbers of vertices s, edges a and facets f of a polytope of R3 satisfy s a + f = 2 − Schlegel diagram s = s0 s0 = s + 1 a0 = a + 1 a0 = a + 1 f 0 = f + 1 f 0 = f Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Euler formula : s a + f = 2 − Incidences edges-facets a 3s 6 2a 3f = ≤ − ≥ ) f 2s 4 ≤ − with equality when all facet are triangles Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations General position all vertices of P are incident to d edges (in the worst-case) and have distinct xd the convex hull of k < d edges incident to a vertex p is a ) k-face of P any k-face is the intersection of d k hyperplanes defining ) P − Beyond the 3rd dimension Upper bound theorem [McMullen 1970] If P is the intersection of n half-spaces of Rd d nb faces of P = Θ(nb 2 c) Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Beyond the 3rd dimension Upper bound theorem [McMullen 1970] If P is the intersection of n half-spaces of Rd d nb faces of P = Θ(nb 2 c) General position all vertices of P are incident to d edges (in the worst-case) and have distinct xd the convex hull of k < d edges incident to a vertex p is a ) k-face of P any k-face is the intersection of d k hyperplanes defining ) P − Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Proof of the upper bound th. d + 1. 2 edges incident to a vertex p are in hp : xd xd (p) ≥ d e − ≥ or in hp p is a x -max or x -min vertex of at least one d -face of P ) d d d 2 e # vertices of P 2 # d -faces of P ) ≤ × d 2 e 2.A k-face is the intersection of d k hyperplanes defining P − n # k-faces = = O(nd−k ) ) d k d −b d c # -faces = O(n 2 ) ) d 2 e 3. The number of faces incident to p depends on d but not on n Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Representation of a convex hull Adjacency graph (AG) of the facets In general position, all the facets are (d 1)-simplexes − Vertex neighbor(cw(i)) ccw(i) Face* v face neighbor(i) Face f Vertex* vertex[d] cw(i) i Face* neighbor[d] neighbor(ccw(i)) Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Incremental algorithm pi s : set of the i points that have been i e insertedP first O conv( i ) : convex hull at step i P conv(Ei) t f = [p1; :::; pd ] is a red facet iff its supporting hyperplane separates p from conv( ) i Pi orient(p ; :::; p ; p ) orient(p ; :::; p ; O) < 0 () 1 d i × 1 d 1 1 ::: 1 x0 x1 ::: xd orient(p0; p1; :::; pd ) = y0 y1 ::: yd z0 z1 ::: zd Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Correctness I The AG of the red facets is connected I The new faces are all obtained as above Update of conv( i ) P pi s e I Locate : traverse AG to find the red facets and the O (d 2)-faces on the horizon V conv(Ei) t − I Update: replace the red facets by the facets conv(p ; e), e V i 2 Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Update of conv( i ) P pi s e I Locate : traverse AG to find the red facets and the O (d 2)-faces on the horizon V conv(Ei) t − I Update: replace the red facets by the facets conv(p ; e), e V i 2 Correctness I The AG of the red facets is connected I The new faces are all obtained as above Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Optimal in even dimensions Can be improved to O(n log n) when d = 3 d The expected complexity can be improved to O(n log n + nb 2 c) by inserting the points in random order (see course 3) The randomized algorithm can be derandomized [Chazelle 1992] Complexity analysis pi I update proportionnal to the number of s red facets e b d−1 c I # new facets = O(n 2 ) O I fast locate : insert the points in lexicographic order and attach a facet to conv(Ei) t each point Pn T (n; d) = O(n log n) + i=1 conv(i; d 1) jd−1 − j d+1 = O(n log n + n n 2 ) = O(n log n + n 2 ) × b c b c Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Complexity analysis pi I update proportionnal to the number of s red facets e b d−1 c I # new facets = O(n 2 ) O I fast locate : insert the points in lexicographic order and attach a facet to conv(Ei) t each point Pn T (n; d) = O(n log n) + i=1 conv(i; d 1) jd−1 − j d+1 = O(n log n + n n 2 ) = O(n log n + n 2 ) × b c b c Optimal in even dimensions Can be improved to O(n log n) when d = 3 d The expected complexity can be improved to O(n log n + nb 2 c) by inserting the points in random order (see course 3) The randomized algorithm can be derandomized [Chazelle 1992] Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Delaunay Triangulations Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and Delaunay Triangulations Simplicial complex A finite collection of simplices C called the faces of C such that I f C, f is a simplex 8 2 I f C, f g g C 2 ⊂ ) 2 I f ; g C, either f g = or f g C 8 2 \ ; \ 2 Simplex The convex hull of k + 1 points that are affinely independent is called a k-simplex 1-simplex = line segment, 2-simplex = triangle, 3-simplex = tetrahedron Winter School on Algorithmic Geometry Convex Hulls, Voronoi Diagrams and