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 Delaunay triangulation
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 convex hull 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 algorithm : 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 randomized algorithm 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