Voronoi Diagrams, Delaunay Triangulations and Polytopes
Jean-Daniel Boissonnat Geometrica, INRIA
http://www-sop.inria.fr/geometrica
Winter School, University of Nice Sophia Antipolis January 26-30, 2015
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 !
the graph ofhpi(x)is the hyperplane tangent toQ: xd+1=x2 at (x,x2)
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 !
the graph ofhpi(x)is the hyperplane tangent toQ: xd+1=x2 at (x,x2)
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
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∗+
I is aninvolutionand thus is bijective : h∗∗=handp∗∗=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) General position
sis the intersection ofdhyperplanes ⇒ s∗supports a(d−1)-simplex deH∗
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
It reverses inclusions : ∀f,g∈ H, f ⊂g ⇒ g∗⊂f∗
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 I the convex hull of k<d edges incident to a vertexp
is ak-face ofH
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 Adjacency graph(V,E)
V =set of(d−1)-faces (facets)
(f,f0)∈E iff f∩f0share a(d−2)-face
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(p0,p1, ...,pd) =
1 1 ... 1 p0 p1 ... pd
=
1 1 ... 1
x01 x11 ... xd1
... ... ... ... x0d x1d ... xdd
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)
Worst-case optimal inevendimensions
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 Conflict :†
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 Conflict :†
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
Ci(r,P) =O(rbd2c), i=1,2
Randomized analysis
Hyp. : points are inserted in random order Conflict :†
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)
= O(rbd2c)
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)
O(n)if d=2,3
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+))×
i+2 2
−1
=C2(i+1) 2
(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 simplicial map f :vert(DelP)→P
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 simplicial map 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)
Del(P) =proj(conv−(ˆ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
Θ(ndd2e) Quadratic inR3
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
4 Improve the construction ofDel(P)
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