Voronoi Diagrams, Delaunay Triangulations and Polytopes

Jean-Daniel Boissonnat Geometrica, INRIA http://www-sop.inria.fr/geometrica

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 1 / 1 Voronoi diagrams in nature

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 2 / 1 The solar system (Descartes)

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 3 / 1 Growth of merystem

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 4 / 1 Euclidean Voronoi diagrams

Voronoi cell V(pi) = x : x pi x pj , j { k − k ≤ k − k ∀ }

Voronoi diagram (P)= collection of all cells V(pi), pi P { ∈ }

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 5 / 1 Voronoi diagrams and polytopes

Polytope The intersection of a finite collection of half-spaces : = T h+ V i∈I i

Each Voronoi cell is a polytope

The Voronoi diagram has the structure of a cell complex

d+ The Voronoi diagram of P is the projection of a polytope of R 1

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 6 / 1 Voronoi diagrams and polytopes

Polytope The intersection of a finite collection of half-spaces : = T h+ V i∈I i

Each Voronoi cell is a polytope

The Voronoi diagram has the structure of a cell complex

d+ The Voronoi diagram of P is the projection of a polytope of R 1

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 6 / 1 Voronoi diagrams and polytopes

Polytope The intersection of a finite collection of half-spaces : = T h+ V i∈I i

Each Voronoi cell is a polytope

The Voronoi diagram has the structure of a cell complex

d+ The Voronoi diagram of P is the projection of a polytope of R 1

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 6 / 1 Voronoi diagrams and polytopes

Polytope The intersection of a finite collection of half-spaces : = T h+ V i∈I i

Each Voronoi cell is a polytope

The Voronoi diagram has the structure of a cell complex

d+ The Voronoi diagram of P is the projection of a polytope of R 1

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 6 / 1 Voronoi diagrams and polyhedra

Vor(p1,..., pn) is the minimization diagram 2 of the n functions δi(x) = (x − pi)

arg min(δi) = arg max(hi) 2 where hpi (x) = 2 pi · x − pi z = (x p )2 − i The minimization diagram of the δi is also pi the maximization diagram of the affine

functions hpi (x)

The faces of Vor(P) are the projections of T + the faces of V(P) = i hpi

+ 2 hpi = {x : xd+1 > 2pi · x − pi }

Note !

the graph of hpi (x) is the hyperplane tangent 2 2 to : xd+1 = x at (x, x ) Q

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 7 / 1 Voronoi diagrams and polyhedra

Vor(p1,..., pn) is the minimization diagram 2 of the n functions δi(x) = (x − pi)

arg min(δi) = arg max(hi) 2 where hpi (x) = 2 pi · x − pi z = (x p )2 − i The minimization diagram of the δi is also pi the maximization diagram of the affine

functions hpi (x)

The faces of Vor(P) are the projections of T + the faces of V(P) = i hpi

+ 2 hpi = {x : xd+1 > 2pi · x − pi }

Note !

the graph of hpi (x) is the hyperplane tangent 2 2 to : xd+1 = x at (x, x ) Q

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 7 / 1 Voronoi diagrams and polyhedra

Vor(p1,..., pn) is the minimization diagram 2 of the n functions δi(x) = (x − pi)

arg min(δi) = arg max(hi) 2 where hpi (x) = 2 pi · x − pi

The minimization diagram of the δi is also the maximization diagram of the affine

functions hpi (x)

The faces of Vor(P) are the projections of T + the faces of V(P) = i hpi

+ 2 hpi = {x : xd+1 > 2pi · x − pi }

Note !

the graph of hpi (x) is the hyperplane tangent 2 2 to : xd+1 = x at (x, x ) Q

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 7 / 1 Voronoi diagrams and polyhedra

Vor(p1,..., pn) is the minimization diagram 2 of the n functions δi(x) = (x − pi)

arg min(δi) = arg max(hi) 2 where hpi (x) = 2 pi · x − pi

The minimization diagram of the δi is also the maximization diagram of the affine

functions hpi (x)

The faces of Vor(P) are the projections of T + the faces of V(P) = i hpi

+ 2 hpi = {x : xd+1 > 2pi · x − pi }

Note !

the graph of hpi (x) is the hyperplane tangent 2 2 to : xd+1 = x at (x, x ) Q

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 7 / 1 Voronoi diagrams and polyhedra

Vor(p1,..., pn) is the minimization diagram 2 of the n functions δi(x) = (x − pi)

arg min(δi) = arg max(hi) 2 where hpi (x) = 2 pi · x − pi

The minimization diagram of the δi is also the maximization diagram of the affine

functions hpi (x)

The faces of Vor(P) are the projections of T + the faces of V(P) = i hpi

+ 2 hpi = {x : xd+1 > 2pi · x − pi }

Note !

the graph of hpi (x) is the hyperplane tangent 2 2 to : xd+1 = x at (x, x ) Q

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 7 / 1 Voronoi diagrams and polytopes

Lifting map The faces of Vor(P) are the projection of the faces of the polytope

(P) = T h+ V i pi

where hpi is the hyperplane tangent to paraboloid at the lifted 2 Q point (pi, pi )

Corollaries

I The size of Vor( ) is the same as the size of (P) P V I Computing Vor( ) reduces to computing (P) P V

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 8 / 1 Voronoi diagrams and polytopes

Lifting map The faces of Vor(P) are the projection of the faces of the polytope

(P) = T h+ V i pi

where hpi is the hyperplane tangent to paraboloid at the lifted 2 Q point (pi, pi )

Corollaries

I The size of Vor( ) is the same as the size of (P) P V I Computing Vor( ) reduces to computing (P) P V

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 8 / 1 Voronoi diagram and

d Finite set of points P R ∈

The Delaunay complex is the nerve of the Voronoi diagram

d It is not always embedded in R

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 9 / 1 Empty circumballs

An (open) d-ball B circumscribing a simplex σ is called empty if ⊂ P 1 vert(σ) ∂B ⊂ 2 B = ∩ P ∅

Del( ) is the collection of simplices admittingP an empty circumball

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 10 / 1 Point sets in general position wrt spheres

P = p1, p2 ... pn is said to be in general position wrt spheres if d +{ 2 points of}P lying on a same (d 1)-sphere 6 ∃ −

Theorem [Delaunay 1936] If P is in general position wrt spheres, the simplicial map

f : vert(DelP) P → provides a realization of Del(P) called the Delaunay triangulation of P.

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 11 / 1 Point sets in general position wrt spheres

P = p1, p2 ... pn is said to be in general position wrt spheres if d +{ 2 points of}P lying on a same (d 1)-sphere 6 ∃ −

Theorem [Delaunay 1936] If P is in general position wrt spheres, the simplicial map

f : vert(DelP) P → provides a realization of Del(P) called the Delaunay triangulation of P.

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 11 / 1 Proof of Delaunay’s theorem 1

P Linearization h(σ) S(x) = x2 2c x + s, s = c2 r2 − · −

 z < 2c x s (h−) S(x) < 0 · − S ⇔ z = x2 ( ) P σ ˆx = (x, x2) h− ⇔ ∈ S

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 12 / 1 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ˆ))

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 13 / 1 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ˆ))

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 13 / 1 Duality

+ − (P) = i h (P) = conv (Pˆ) V ∩ pi D

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 14 / 1 Voronoi diagrams, Delaunay triangulations and polytopes

If P is in general position wrt spheres :

+ + duality − (P) = h ... h (P) = conv ( pˆ1,..., pˆn ) V p1 ∩ ∩ pn −→ D { }

↑ ↓ Voronoi Diagram of P nerve Delaunay Complex of P −→

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 15 / 1 Combinatorial complexity

The combinatorial complexity of the Voronoi diagram of n points of Rd is the same as the combinatorial complexity of the intersection of n half-spaces of Rd+1 The combinatorial complexity of the Delaunay triangulation of n points of Rd is the same as the combinatorial complexity of the of n points of Rd+1 The two complexities are the same by duality

d 3 Θ(nd 2 e) Quadratic in R Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 16 / 1 d Constructing Del(P), P = p1, ..., pn R { } ⊂

Algorithm

2 d+1 1 Lift the points of P onto the paraboloid xd+1 = x of R : 2 pi pˆi = (pi, p ) → i 2 Compute conv( pˆi ) { } − d 3 Project the lower hull conv ( pˆi ) onto R { }

b d+1 c Complexity : Θ(n log n + n 2 )

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 17 / 1 Direct : insertion of a new point pi

1. Location : find all the d-simplices that conflict with pi i.e. whose circumscribing ball contains pi

2. Update : construct the new d-simplices

pi pi

T pi

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 18 / 1 Updating the adjacency graph

We look at the d-simplices to be removed and at their neighbors

d(d+1) Each d-simplex is considered 2 times ≤

Update cost = O(# created and deleted simplices ) = O(# created simplices)

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 19 / 1 Computing the convex hull of n points of Rd

Adjacency graph (AG) of the facets

In general position, all the facets are (d 1)-simplexes −

Adjacency graph (V, E)

V = set of (d 1)-faces (facets) − (f , f 0) E iff f f 0 share a (d 2)-face ∈ ∩ −

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 20 / 1 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 pi from conv( i) P orient(p1, ..., pd, pi) orient(p1, ..., pd, O) < 0 ⇐⇒ ×

1 1 ... 1

1 1 ... 1 x01 x11 ... xd1 orient(p p p ) = = 0, 1, ..., d . . . p0 p1 ... pd ......

x0d x1d ... xdd

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 21 / 1 Update of conv( i) P

red facet = facet whose supporting hyperplane separates o and pi+1 horizon: (d 2)-faces shared by a blue and a red facet −

pi Update conv( i) : P s 1 find the red facets e 2 remove them and create the new facets O [pi+1, g], g horizon conv(Ei) t ∀ ∈

Complexity proportional to the number of red facets

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 22 / 1 Update of conv( i) P

red facet = facet whose supporting hyperplane separates o and pi+1 horizon: (d 2)-faces shared by a blue and a red facet −

pi Update conv( i) : P s 1 find the red facets e 2 remove them and create the new facets O [pi+1, g], g horizon conv(Ei) t ∀ ∈

Complexity proportional to the number of red facets

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 22 / 1 Complexity analysis

update proportional to the number of pi red facets s

# new facets = conv(i, d 1) e b d−1 c | − | = O(i 2 ) O fast locate : insert the points in conv(Ei) t lexicographic order and search a 1st red facet in star(pi−1) (which necessarily exists)

n d−1 P b 2 c T(n, d) = O(n log n) + i=1 i ) d+1 = O(n log n + nb 2 c)

Worst-case optimal in even dimensions

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 23 / 1 Complexity analysis

update proportional to the number of pi red facets s

# new facets = conv(i, d 1) e b d−1 c | − | = O(i 2 ) O fast locate : insert the points in conv(Ei) t lexicographic order and search a 1st red facet in star(pi−1) (which necessarily exists)

n d−1 P b 2 c T(n, d) = O(n log n) + i=1 i ) d+1 = O(n log n + nb 2 c)

Worst-case optimal in even dimensions

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 23 / 1 Lower bound

y = x2 conv({pi}) =⇒ tri({xi})

the orientation test reduces to 3 2 pi = (xi, xi ) comparisons

xi − xj xi − xk orient(pi, pj, pk) = 2 2 2 2 xi − xj xi − xk

x i = (xi − xj)(xj − xk)(xk − xi)

= Lower bound : Ω(n log n) ⇒

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 24 / 1 Lower bound for the incremental algorithm

No incremental algorithm can compute the convex hull of n points of R3 in less than Ω(n2)

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 25 / 1 Randomized incremental algorithm

pi o : a point inside conv( )

P e i : the set of the first i inserted points P O conv( i) : convex hull at step i P conv(Ei)

Conflict graph

bipartite graph pj facets of conv( i) { } × { P }

pj f j > i (pj not yet inserted) f opj = † ⇐⇒ ∧ ∩ 6 ∅

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 26 / 1 Randomized incremental algorithm

pi o : a point inside conv( )

P e i : the set of the first i inserted points P O conv( i) : convex hull at step i P conv(Ei)

Conflict graph

bipartite graph pj facets of conv( i) { } × { P }

pj f j > i (pj not yet inserted) f opj = † ⇐⇒ ∧ ∩ 6 ∅

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 26 / 1 Randomized analysis

Hyp. : points are inserted in random order

Conflict : † Notations R : random sample of size r of P F(R) = subsets of d points of R { } F0(R) = elements of F(R) with 0 conflict in R { } (i.e. conv(R)) ∈ F1(R) = elements of F(R) with 1 conflict in R { } Ci(r, ) = E( Fi(R) ) P | | (expectation over all random samples R of size r) ⊂ P

Lemma

d Ci(r, ) = O(r 2 ), i = 1, 2 P b c

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 27 / 1 Randomized analysis

Hyp. : points are inserted in random order

Conflict : † Notations R : random sample of size r of P F(R) = subsets of d points of R { } F0(R) = elements of F(R) with 0 conflict in R { } (i.e. conv(R)) ∈ F1(R) = elements of F(R) with 1 conflict in R { } Ci(r, ) = E( Fi(R) ) P | | (expectation over all random samples R of size r) ⊂ P

Lemma

d Ci(r, ) = O(r 2 ), i = 1, 2 P b c

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 27 / 1 Randomized analysis

Hyp. : points are inserted in random order

Conflict : † Notations R : random sample of size r of P F(R) = subsets of d points of R { } F0(R) = elements of F(R) with 0 conflict in R { } (i.e. conv(R)) ∈ F1(R) = elements of F(R) with 1 conflict in R { } Ci(r, ) = E( Fi(R) ) P | | (expectation over all random samples R of size r) ⊂ P

Lemma

d Ci(r, ) = O(r 2 ), i = 1, 2 P b c

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 27 / 1 d Proof of the lemma : C1(r, ) = C0(r, ) = O(r 2 ) P P b c R0 = R p \{ }

0 1 f F0(R ) if f F1(R) and p f (proba = r ) ∈ ∈ 0† r−d or f F0(R) and R the d vertices of f (proba = ) ∈ 3 r

Taking the expectation,

1 r d C0(r 1, R) = F1(R) + − F0(R) − r | | r | | 1 r d C0(r 1, ) = C1(r, ) + − C0(r, ) − P r P r P C1(r, ) = d C0(r, ) r (C0(r, ) C0(r 1, )) P P − P − − P d C0(r, ) ≤ d P = O(rb 2 c)

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 28 / 1 Randomized analysis 1 Updating the convex hull + memory space

Expected number N(i) of facets created at step i X d N(i) = proba(f F0( i)) ∈ P × i f ∈F(P)

d  d  = O i 2 i b c d −1 = O(nb 2 c )

d Expected total number of created facets = O(nb 2 c) O(n) if d = 2, 3

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 29 / 1 Randomized analysis 1 Updating the convex hull + memory space

Expected number N(i) of facets created at step i X d N(i) = proba(f F0( i)) ∈ P × i f ∈F(P)

d  d  = O i 2 i b c d −1 = O(nb 2 c )

d Expected total number of created facets = O(nb 2 c) O(n) if d = 2, 3

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 29 / 1 Randomized analysis2 Updating the conflict graph

Cost proportional to the number of faces of conv( i) in conflict with pi+1 P and some pj, j > i

N(i, j) = expected number of faces of conv( i) in conflict with pi+1 and pj, j > i P

+ = i pi+1 pj : a random subset of i + 2 points of Pi P ∪ { } ∪ { } P  −1 X + i + 2 2 d −2 N(i, j) = proba(f ∈ F (P ))× = C (i+1) = O(ib 2 c ) 2 i 2 2 (i + 1)(i + 2) f ∈F(P)

Expected total cost of updating the conflict graph n n n X X X d −2 d N(i, j) = (n i) O(i 2 ) = O(n log n + n 2 ) − b c b c i=1 j=i+1 i=1

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 30 / 1 Theorem

d The convex hull of n points of R can be computed in time d d O(n log n + nb 2 c) using O(nb 2 c) space The same bounds hold for computing the intersection of n d half-spaces of R The can be derandomized [Chazelle 1992]

The same results hold for Voronoi diagrams provided that d d + 1 →

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 31 / 1 A Primer on Polytopes (convex polyhedra)

Two ways of defining polytopes

Convex hull of a finite set of points: = conv(P) V

+ Intersection of a finite set of half-spaces: = h∈H h H ∩ i

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 32 / 1 Facial structure of a polytope

Supporting hyperplane h : H = ∩on P one 6 ∅ side of h P Faces: h, h supp. hyp. P ∩ Dimension of a face: the dim. of its affine hull

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 33 / 1 General position

Points in general position

I 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

I 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 ⇒ −

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 34 / 1 General position

Points in general position

I 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

I 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 ⇒ −

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 34 / 1 Duality between points and hyperplanes

d 0 ∗ d hyperplane of R h : xd = a · x − b −→ point h = (a, b) ∈ R

0 d ∗ d point p = (p , pd) ∈ R −→ hyperplane p ⊂ R d 0 = {(a, b) ∈ R : b = p · a − pd}

Duality

I preserves incidences:

0 0 ∗ ∗ p h pd = a p b b = p a pd h p ∈ + ⇐⇒ · 0 − ⇐⇒ 0 · − ⇐⇒ ∗ ∈ ∗+ p h pd > a p b b > p a pd h p ∈ ⇐⇒ · − ⇐⇒ · − ⇐⇒ ∈

∗∗ ∗∗ I is an involution and thus is bijective : h = h and p = p

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 35 / 1 Duality between points and hyperplanes

d 0 ∗ d hyperplane of R h : xd = a · x − b −→ point h = (a, b) ∈ R

0 d ∗ d point p = (p , pd) ∈ R −→ hyperplane p ⊂ R d 0 = {(a, b) ∈ R : b = p · a − pd}

Duality

I preserves incidences:

0 0 ∗ ∗ p h pd = a p b b = p a pd h p ∈ + ⇐⇒ · 0 − ⇐⇒ 0 · − ⇐⇒ ∗ ∈ ∗+ p h pd > a p b b > p a pd h p ∈ ⇐⇒ · − ⇐⇒ · − ⇐⇒ ∈

∗∗ ∗∗ I is an involution and thus is bijective : h = h and p = p

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 35 / 1 Duality between polytopes

d + Let h1,..., hn be n hyperplanes of R and let = hi H ∩

h3

h3∗ h1 h2 * h1∗ ss h2∗

A vertex s of is ¯the intersection of k d hyperplanes h1,..., hk lying above all the other hyperplanesH ≥

∗ ∗ ∗ = s is a hyperplane that 1. contains h1 ,..., hk ⇒ 2. supports ∗= conv−(h∗,..., h∗) H 1 k General position s is the intersection of d hyperplanes s∗ supports a (d 1)-simplex de ∗ ⇒ − H

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 36 / 1 More generally and under the general position assumption, k Let f be a (d k)-face of and aff(f ) = hi − H ∩i=1 ∗ ∗ p ∈ f ⇔ hi ∈ p for i = 1,..., k ∗ ∗+ hi ∈ p for i = k + 1,..., n

∗ ∗ ∗ ∗ ⇔ p support. hyp. of H = conv(h1 ,..., hn ) ∗ ∗ ∗ p 3 h1 ,..., hk

∗ ∗ ∗ ∗ ⇔ f = conv(h1 ,..., hk ) is a (k − 1) − face of H

Duality between and ∗ H H The correspondence between the faces of and ∗ is involutive and therefore bijective H H It reverses inclusions : f , g , f g g∗ f ∗ ∀ ∈ H ⊂ ⇒ ⊂

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 37 / 1 More generally and under the general position assumption, k Let f be a (d k)-face of and aff(f ) = hi − H ∩i=1 ∗ ∗ p ∈ f ⇔ hi ∈ p for i = 1,..., k ∗ ∗+ hi ∈ p for i = k + 1,..., n

∗ ∗ ∗ ∗ ⇔ p support. hyp. of H = conv(h1 ,..., hn ) ∗ ∗ ∗ p 3 h1 ,..., hk

∗ ∗ ∗ ∗ ⇔ f = conv(h1 ,..., hk ) is a (k − 1) − face of H

Duality between and ∗ H H The correspondence between the faces of and ∗ is involutive and therefore bijective H H It reverses inclusions : f , g , f g g∗ f ∗ ∀ ∈ H ⊂ ⇒ ⊂

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 37 / 1 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

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 38 / 1 Euler formula for 3-polytopes

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

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 39 / 1 Euler formula for 3-polytopes : s a + f = 2 −

Incidences edges-facets

a 3s 6 2a 3f = ≤ − ≥ ⇒ f 2s 4 ≤ − with equality when all facets are triangles

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 40 / 1 Beyond the 3rd dimension

Upper bound theorem [McMullen 1970] d If is the intersection of n half-spaces of R H d nb faces of = Θ(n 2 ) H b c

Hyperplanes in general position

I any k-face is the intersection of d k hyperplanes defining − H I all vertices of are incident to d edges and have distinct xd H

I the convex hull of k < d edges incident to a vertex p is a k-face of H

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 41 / 1 Beyond the 3rd dimension

Upper bound theorem [McMullen 1970] d If is the intersection of n half-spaces of R H d nb faces of = Θ(n 2 ) H b c

Hyperplanes in general position

I any k-face is the intersection of d k hyperplanes defining − H I all vertices of are incident to d edges and have distinct xd H

I the convex hull of k < d edges incident to a vertex p is a k-face of H

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 41 / 1 Proof of the upper bound theorem

Bounding the number of vertices

1 d + − 2 edges incident to a vertex p are in hp : xd xd(p) or in hp ≥ d e d ≥ ⇒ p is a xd-max or xd-min vertex of at least one d 2 e-face of H d ⇒ # vertices of H ≤ 2×# d 2 e-faces of H

2 A k-face is the intersection of d k hyperplanes defining − H  n  ⇒ # k-faces = = O(nd−k) d − k d d b 2 c ⇒ # d 2 e-faces = O(n )

Bounding the total number of faces The number of faces incident to p depends on d but not on n

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 42 / 1 Proof of the upper bound theorem

Bounding the number of vertices

1 d + − 2 edges incident to a vertex p are in hp : xd xd(p) or in hp ≥ d e d ≥ ⇒ p is a xd-max or xd-min vertex of at least one d 2 e-face of H d ⇒ # vertices of H ≤ 2×# d 2 e-faces of H

2 A k-face is the intersection of d k hyperplanes defining − H  n  ⇒ # k-faces = = O(nd−k) d − k d d b 2 c ⇒ # d 2 e-faces = O(n )

Bounding the total number of faces The number of faces incident to p depends on d but not on n

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 42 / 1 Proof of the upper bound theorem

Bounding the number of vertices

1 d + − 2 edges incident to a vertex p are in hp : xd xd(p) or in hp ≥ d e d ≥ ⇒ p is a xd-max or xd-min vertex of at least one d 2 e-face of H d ⇒ # vertices of H ≤ 2×# d 2 e-faces of H

2 A k-face is the intersection of d k hyperplanes defining − H  n  ⇒ # k-faces = = O(nd−k) d − k d d b 2 c ⇒ # d 2 e-faces = O(n )

Bounding the total number of faces The number of faces incident to p depends on d but not on n

Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 42 / 1