Voronoi Diagrams, Delaunay Triangulations and Polytopes
Jean-Daniel Boissonnat
MPRI, Lecture 2
Voronoi diagrams in nature
The solar system (Descartes)
Growth of merystem
Euclidean Voronoi diagrams
Voronoi cell V(pi) ={x:kx−pik ≤ kx−pjk, ∀j}
Voronoi diagram(P) ={collection of all cellsV(pi),pi ∈P}
Voronoi diagrams and polytopes
Polytope
The intersection of a finite collection of half-spaces : V =T
i∈I h+i
Each Voronoi cell is a polytope
The Voronoi diagram has the structure of acellcomplex
The Voronoi diagram ofPis the projection of a polytope ofRd+1
Voronoi diagrams and polytopes
Polytope
The intersection of a finite collection of half-spaces : V =T
i∈I h+i
Each Voronoi cell is a polytope
The Voronoi diagram has the structure of acellcomplex
The Voronoi diagram ofPis the projection of a polytope ofRd+1
Voronoi diagrams and polytopes
Polytope
The intersection of a finite collection of half-spaces : V =T
i∈I h+i
Each Voronoi cell is a polytope
The Voronoi diagram has the structure of acellcomplex
The Voronoi diagram ofPis the projection of a polytope ofRd+1
Voronoi diagrams and polytopes
Polytope
The intersection of a finite collection of half-spaces : V =T
i∈I h+i
Each Voronoi cell is a polytope
The Voronoi diagram has the structure of acellcomplex
The Voronoi diagram ofPis the projection of a polytope ofRd+1
Voronoi diagrams and polyhedra
Vor(p1, . . . ,pn)is theminimization diagram of thenfunctionsδi(x) = (x−pi)2
arg min(δi) =arg max(hi) wherehpi(x) =2pi·x−p2i
The minimization diagram of theδiis also the maximization diagram of theaffine functionshpi(x)
The faces of Vor(P)are the projections of the faces ofV(P) =T
i h+pi h+pi ={x:xd+1>2pi·x−p2i}
pi
z= (x−pi)2
Note !
Voronoi diagrams and polyhedra
Vor(p1, . . . ,pn)is theminimization diagram of thenfunctionsδi(x) = (x−pi)2
arg min(δi) =arg max(hi) wherehpi(x) =2pi·x−p2i
The minimization diagram of theδiis also the maximization diagram of theaffine functionshpi(x)
The faces of Vor(P)are the projections of the faces ofV(P) =T
i h+pi h+pi ={x:xd+1>2pi·x−p2i}
pi
z= (x−pi)2
Note !
Voronoi diagrams and polyhedra
Vor(p1, . . . ,pn)is theminimization diagram of thenfunctionsδi(x) = (x−pi)2
arg min(δi) =arg max(hi) wherehpi(x) =2pi·x−p2i
The minimization diagram of theδiis also the maximization diagram of theaffine functionshpi(x)
The faces of Vor(P)are the projections of the faces ofV(P) =T
i h+pi h+pi ={x:xd+1>2pi·x−p2i}
Note !
Voronoi diagrams and polyhedra
Vor(p1, . . . ,pn)is theminimization diagram of thenfunctionsδi(x) = (x−pi)2
arg min(δi) =arg max(hi) wherehpi(x) =2pi·x−p2i
The minimization diagram of theδiis also the maximization diagram of theaffine functionshpi(x)
The faces of Vor(P)are the projections of the faces ofV(P) =T
i h+pi
h+pi ={x:xd+1>2pi·x−p2i}
Note !
Voronoi diagrams and polyhedra
Vor(p1, . . . ,pn)is theminimization diagram of thenfunctionsδi(x) = (x−pi)2
arg min(δi) =arg max(hi) wherehpi(x) =2pi·x−p2i
The minimization diagram of theδiis also the maximization diagram of theaffine functionshpi(x)
The faces of Vor(P)are the projections of the faces ofV(P) =T
i h+pi
h+pi ={x:xd+1>2pi·x−p2i}
Note !
Voronoi diagrams and polytopes
Lifting map
The faces ofVor(P)are the projection of the faces of the polytope V(P) =T
i h+pi
wherehpi is the hyperplane tangent to paraboloidQat the lifted point(pi,p2i)
Corollaries
I The size ofVor(P)is the same as the size ofV(P)
I ComputingVor(P)reduces to computingV(P)
Voronoi diagrams and polytopes
Lifting map
The faces ofVor(P)are the projection of the faces of the polytope V(P) =T
i h+pi
wherehpi is the hyperplane tangent to paraboloidQat the lifted point(pi,p2i)
Corollaries
I The size ofVor(P)is the same as the size ofV(P)
I ComputingVor(P)reduces to computingV(P)
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∈Hh+i
Facial structure of a polytope
Supporting hyperplaneh: H∩ P 6=∅
P on one side ofh Faces:P ∩h,hsupp. hyp.
Dimension of a face: the dim. of its affine hull
General position
Points in general position
I Pis in general position iff no subset ofk+2points lie in ak-flat
⇒ IfPis in general position, all faces ofconv(P)are simplices Hyperplanes in general position
I His in general position iff the intersection of any subset ofd−k hyperplanes intersect in ak-flat
⇒ anyk-face is the intersection ofd−khyperplanes
General position
Points in general position
I Pis in general position iff no subset ofk+2points lie in ak-flat
⇒ IfPis in general position, all faces ofconv(P)are simplices
Hyperplanes in general position
I His in general position iff the intersection of any subset ofd−k hyperplanes intersect in ak-flat
⇒ anyk-face is the intersection ofd−khyperplanes
General position
Points in general position
I Pis in general position iff no subset ofk+2points lie in ak-flat
⇒ IfPis in general position, all faces ofconv(P)are simplices
Hyperplanes in general position
I His in general position iff the intersection of any subset ofd−k hyperplanes intersect in ak-flat
⇒ anyk-face is the intersection ofd−khyperplanes
Duality between points and hyperplanes
hyperplane ofRd h:xd =a·x0−b −→ point h∗= (a,b)∈Rd
point p= (p0,pd)∈Rd −→ hyperplane p∗⊂Rd
={(a,b)∈Rd:b=p0·a−pd}
Duality
I preserves incidences:
p∈h ⇐⇒ pd =a·p0−b⇐⇒b=p0·a−pd⇐⇒h∗ ∈p∗ p∈h+ ⇐⇒ pd >a·p0−b⇐⇒b>p0·a−pd⇐⇒h∗ ∈p∗+
Duality between points and hyperplanes
hyperplane ofRd h:xd =a·x0−b −→ point h∗= (a,b)∈Rd
point p= (p0,pd)∈Rd −→ hyperplane p∗⊂Rd
={(a,b)∈Rd:b=p0·a−pd}
Duality
I preserves incidences:
p∈h ⇐⇒ pd =a·p0−b⇐⇒b=p0·a−pd⇐⇒h∗ ∈p∗ p∈h+ ⇐⇒ pd >a·p0−b⇐⇒b>p0·a−pd⇐⇒h∗ ∈p∗+
Duality between polytopes
Leth1, . . . ,hn benhyperplanes ofRdand letH=∩h+i
ss
h1
h2 *
h3
h∗3
h∗2 h∗1
A vertexsofHis ¯the intersection ofk≥d hyperplanesh1, . . . ,hklying above all the other hyperplanes
=⇒s∗is a hyperplane that 1. containsh∗1, . . . ,h∗k
2. supports H∗= conv−(h∗1, . . . ,h∗k)
More generally and under the general position assumption, Letf be a(d−k)-face ofH and aff(f) =∩ki=1hi
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∗3h∗1, . . . ,h∗k
⇔ f∗=conv(h∗1, . . . ,h∗k) is a (k−1)−face of H∗
Duality between HandH∗
The correspondence between the faces ofHandH∗ isinvolutive and therefore bijective
More generally and under the general position assumption, Letf be a(d−k)-face ofH and aff(f) =∩ki=1hi
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∗3h∗1, . . . ,h∗k
⇔ f∗=conv(h∗1, . . . ,h∗k) is a (k−1)−face of H∗
Duality between HandH∗
The correspondence between the faces ofHandH∗ isinvolutive and therefore bijective
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 ofn upper half-spaces
We will compute the convex hull ofnpoints By duality, the results extend to the dual case
Euler formula for 3-polytopes
The numbers of verticess, edgesaand facetsf of a polytope ofR3 satisfy
s−a+f =2 Schlegel diagram
s=s0 a0=a+ 1
f0=f+ 1 a0=a+ 1 f0=f s0=s+ 1
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
Beyond the 3rd dimension
Upper bound theorem [McMullen 1970]
IfHis the intersection ofnhalf-spaces ofRd nb faces of H= Θ(nbd2c)
Hyperplanes in general position
I anyk-face is the intersection ofd−khyperplanes definingH
I all vertices ofHare incident todedges and have distinctxd
the convex hull of < edges incident to a vertex
Beyond the 3rd dimension
Upper bound theorem [McMullen 1970]
IfHis the intersection ofnhalf-spaces ofRd nb faces of H= Θ(nbd2c)
Hyperplanes in general position
I anyk-face is the intersection ofd−khyperplanes definingH
I all vertices ofHare incident todedges and have distinctxd
the convex hull of < edges incident to a vertex
Proof of the upper bound theorem
Bounding the number of vertices
1 ≥ dd2eedges incident to a vertexpare inh+p :xd≥xd(p)or inh−p
⇒ pis axd-max orxd-min vertex of at least onedd2e-face ofH
⇒ # vertices ofH ≤2×#dd2e-faces ofH
2 Ak-face is the intersection ofd−khyperplanes definingH
⇒ #k-faces= n
d−k
=O(nd−k)
⇒ #dd2e-faces=O(nbd2c)
Bounding the total number of faces
The number of faces incident topdepends ondbut not onn
Proof of the upper bound theorem
Bounding the number of vertices
1 ≥ dd2eedges incident to a vertexpare inh+p :xd≥xd(p)or inh−p
⇒ pis axd-max orxd-min vertex of at least onedd2e-face ofH
⇒ # vertices ofH ≤2×#dd2e-faces ofH
2 Ak-face is the intersection ofd−khyperplanes definingH
⇒ #k-faces= n
d−k
=O(nd−k)
⇒ #dd2e-faces=O(nbd2c)
Bounding the total number of faces
The number of faces incident topdepends ondbut not onn
Proof of the upper bound theorem
Bounding the number of vertices
1 ≥ dd2eedges incident to a vertexpare inh+p :xd≥xd(p)or inh−p
⇒ pis axd-max orxd-min vertex of at least onedd2e-face ofH
⇒ # vertices ofH ≤2×#dd2e-faces ofH
2 Ak-face is the intersection ofd−khyperplanes definingH
⇒ #k-faces= n
d−k
=O(nd−k)
⇒ #dd2e-faces=O(nbd2c)
Bounding the total number of faces
The number of faces incident topdepends ondbut not onn
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 Face
Vertex* vertex[d]
Face* neighbor[d]
i f
neighbor(ccw(i)) cw(i)
neighbor(i) ccw(i)
neighbor(cw(i))
Incremental algorithm
Pi : set of theipoints that have been inserted first
conv(Pi): convex hull at stepi O
pi
conv(Ei) e s
t
f = [p1, ...,pd]is aredfacet iff its supporting hyperplane separatespi fromconv(Pi)
⇐⇒orient(p1, ...,pd,pi)×orient(p1, ...,pd,O)<0
orient(p ,p , ...,p ) =
1 1 ... 1 =
1 1 ... 1
x01 x11 ... xd1
.. .. ..
Update of conv( P
i)
redfacet = facet whose supporting hyperplane separates oandpi+1
horizon:(d−2)-faces shared by a blue and a red facet Updateconv(Pi):
1 find the red facets
2 remove them and create the new facets
[pi+1,g],∀g∈horizon
O
pi
conv(Ei) e s
t
Complexity
proportional to the number of red facets
Update of conv( P
i)
redfacet = facet whose supporting hyperplane separates oandpi+1
horizon:(d−2)-faces shared by a blue and a red facet Updateconv(Pi):
1 find the red facets
2 remove them and create the new facets
[pi+1,g],∀g∈horizon
O
pi
conv(Ei) e s
t
Complexity
proportional to the number of red facets
Complexity analysis
updateproportional to the number of red facets
# new facets=|conv(i,d−1)|
=O(ibd−12 c)
fast locate :insert the points in lexicographic order and search a 1st red facet instar(pi−1) (which necessarily exists)
O
pi
conv(Ei) e s
t
T(n,d) =O(nlogn) +Pn
i=1ibd−12 c)
=O(nlogn+nbd+12 c)
Complexity analysis
updateproportional to the number of red facets
# new facets=|conv(i,d−1)|
=O(ibd−12 c)
fast locate :insert the points in lexicographic order and search a 1st red facet instar(pi−1) (which necessarily exists)
O
pi
conv(Ei) e s
t
T(n,d) =O(nlogn) +Pn
i=1ibd−12 c)
=O(nlogn+nbd+12 c)
Lower bound
xi pi= (xi, x2i)
y=x2 conv({pi}) =⇒tri({xi})
the orientation test reduces to 3 comparisons
orient(pi,pj,pk) =
xi−xj xi−xk
x2i −x2j x2i −x2k
= (xi−xj)(xj−xk)(xk−xi)
=⇒Lower bound :Ω(nlogn)
Lower bound for the incremental algorithm
No incremental algorithm can compute the convex hull ofnpoints ofR3 in less thanΩ(n2)
Randomized incremental algorithm
o: a point insideconv(P)
Pi : the set of the firstiinserted points
conv(Pi): convex hull at stepi O
pi
conv(Ei) e
Conflict graph
bipartite graph{pj} × {facets ofconv(Pi)}
pj†f ⇐⇒ j>i (pj not yet inserted) ∧ f∩opj 6=∅
Randomized incremental algorithm
o: a point insideconv(P)
Pi : the set of the firstiinserted points
conv(Pi): convex hull at stepi O
pi
conv(Ei) e
Conflict graph
bipartite graph{pj} × {facets ofconv(Pi)}
pj†f ⇐⇒ j>i (pj not yet inserted) ∧ f∩opj 6=∅
Randomized analysis
Hyp. : points are inserted in random order NotationsR: random sample of sizer ofP F(R) ={subsets ofdpoints ofR}
F0(R) ={elements ofF(R)with0conflict inR}
(i.e.∈ conv(R)) F1(R) ={elements ofF(R)with1conflict inR}
Ci(r,P) =E(|Fi(R)|)
(expectation over all random samplesR⊂ P of sizer)
Lemma
Randomized analysis
Hyp. : points are inserted in random order NotationsR: random sample of sizer ofP F(R) ={subsets ofdpoints ofR}
F0(R) ={elements ofF(R)with0conflict inR}
(i.e.∈ conv(R)) F1(R) ={elements ofF(R)with1conflict inR}
Ci(r,P) =E(|Fi(R)|)
(expectation over all random samplesR⊂ P of sizer)
Lemma
Randomized analysis
Hyp. : points are inserted in random order NotationsR: random sample of sizer ofP F(R) ={subsets ofdpoints ofR}
F0(R) ={elements ofF(R)with0conflict inR}
(i.e.∈ conv(R)) F1(R) ={elements ofF(R)with1conflict inR}
Ci(r,P) =E(|Fi(R)|)
(expectation over all random samplesR⊂ P of sizer)
Lemma
Proof of the lemma : C
1(r, P ) = C
0(r, P ) = O(r b
d2c )
R0 =R\ {p}
f ∈F0(R0)if f ∈F1(R)andp†f (proba= 1r) or f ∈F0(R)andR0 3thedvertices off (proba= r−dr ) Taking the expectation,
C0(r−1,R) = 1
r |F1(R)|+ r−d
r |F0(R)| C0(r−1,P) = 1
r C1(r,P) +r−d
r C0(r,P)
C1(r,P) = d C0(r,P)−r (C0(r,P)−C0(r−1,P))
≤ d C0(r,P)
Randomized analysis 1
Updating the convex hull + memory space
Expected numberN(i)of facets created at stepi N(i) = X
f∈F(P)
proba(f ∈F0(Pi))×d i
= d i O
ibd2c
= O(nbd2c−1)
Expected total number of created facets =O(nbd2c)
Randomized analysis 1
Updating the convex hull + memory space
Expected numberN(i)of facets created at stepi N(i) = X
f∈F(P)
proba(f ∈F0(Pi))×d i
= d i O
ibd2c
= O(nbd2c−1)
Expected total number of created facets =O(nbd2c)
Randomized analysis2
Updating the conflict graph
Cost proportional to the number of faces ofconv(Pi)in conflict withpi+1 and somepj,j>i
N(i,j) =expected number of faces ofconv(Pi)in conflict withpi+1 andpj,j>i Pi+=Pi∪ {pi+1} ∪ {pj}: a random subset ofi+2points ofP
N(i,j) = X
f∈F(P)
proba(f ∈F2(Pi+))× 2
(i+1)(i+2)= 2C2(i+1)
(i+1)(i+2) =O(ibd2c−2)
Expected total cost of updating the conflict graph
n
X
n
X N(i,j) =
n
X(n−i)O(ibd2c−2) =O(nlogn+nbd2c)
Theorem
The convex hull ofnpoints ofRd can be computed in time O(nlogn+nbd2c)usingO(nbd2c)space
The same bounds hold for computing theintersection ofn half-spacesofRd
The randomized algorithm can bederandomized
[Chazelle 1992]
The same results hold forVoronoi diagramsprovided that d→d+1
Voronoi diagram and Delaunay triangulation
Finite set of pointsP∈Rd
The Delaunay complex is the nerve of the Voronoi diagram
Empty circumballs
An (open)d-ballBcircumscribing a simplexσ⊂ P is calledemptyif
1 vert(σ)⊂∂B
2 B∩ P =∅
Del(P)is the collection of simplices admitting an empty circumball
Point sets in general position wrt spheres
P={p1,p2. . .pn}is said to be in general position wrt spheres if 6 ∃d+2points ofPlying on a same(d−1)-sphere
Theorem [Delaunay 1936]
IfPis in general position wrt spheres, the natural mapping f :vert(DelP)→P
provides a realization ofDel(P)called the Delaunay triangulation ofP.
Point sets in general position wrt spheres
P={p1,p2. . .pn}is said to be in general position wrt spheres if 6 ∃d+2points ofPlying on a same(d−1)-sphere
Theorem [Delaunay 1936]
IfPis in general position wrt spheres, the natural mapping f :vert(DelP)→P
provides a realization ofDel(P)called the Delaunay triangulation ofP.
Proof of Delaunay’s theorem 1
σ h(σ)
P
Linearization
S(x) =x2−2c·x+s, s=c2−r2
S(x)<0⇔
z<2c·x−s (h−S )
z=x2 (P)
⇔ˆx= (x,x2)∈h−S
Proof of Delaunay’s theorem 2
Proof of Delaunay’s th.
Pgeneral position wrt spheres
⇔Pˆ in general position σa simplex,Sσits circumscribing sphere
σ∈Del(P)⇔Sσ empty
⇔ ∀i, ˆpi∈h+Sσ
⇔σˆis a face ofconv−(ˆP)
Proof of Delaunay’s theorem 2
Proof of Delaunay’s th.
Pgeneral position wrt spheres
⇔Pˆ in general position σa simplex,Sσits circumscribing sphere
σ∈Del(P)⇔Sσ empty
⇔ ∀i, ˆpi∈h+Sσ
⇔σˆis a face ofconv−(ˆP)
Duality
V(P) =∩ih+p
i D(P) =conv−(ˆP)
Voronoi diagrams, Delaunay triangulations and polytopes
IfPis in general position wrt spheres :
V(P) =h+p
1∩. . .∩h+p
n
duality
−→ D(P) =conv−({ˆp1, . . . ,ˆpn})
↑ ↓
Voronoi DiagramofP nerve−→ Delaunay ComplexofP
Combinatorial complexity
The combinatorial complexity of the Delaunay triangulation diagram of npoints ofRd is the same as the combinatorial complexity of a convex hull ofnpoints ofRd+1
Constructing Del(P), P = { p
1, ..., p
n} ⊂ R
dAlgorithm
1 Lift the points ofPonto the paraboloidxd+1=x2ofRd+1: pi→ˆpi= (pi,p2i)
2 Computeconv({ˆpi})
3 Project the lower hullconv−({ˆpi})ontoRd
Complexity :Θ(nlogn+nbd+12 c)
Direct algorithm : insertion of a new point p
i1. Location : find all thed-simplices that conflict withpi i.e. whose circumscribing ball containspi
2. Update :construct the newd-simplices
T
pi
pi pi
Updating the adjacency graph
We look at thed-simplices to be removed and at their neighbors
Eachd-simplex is considered≤ d(d+1)2 times
Update cost=O(# created and deleted simplices)
=O(# created simplices)
Exercise : computing the DT of an ε-net
DefinitionLetΩbe a bounded subset ofRdandPa finite point set inΩ.Pis called an(ε, η)-net ofΩif
1 Covering: ∀p∈Ω, ∃p∈P, kp−xk ≤ε
2 Packing: ∀p,q∈P,kp−qk ≥η
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 ofDel(P)isO(n)for fixedd
Exercise : computing the DT of an ε-net
DefinitionLetΩbe a bounded subset ofRdandPa finite point set inΩ.Pis called an(ε, η)-net ofΩif
1 Covering: ∀p∈Ω, ∃p∈P, kp−xk ≤ε
2 Packing: ∀p,q∈P,kp−qk ≥η
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 ofDel(P)isO(n)for fixedd