Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Polytopes may be defined as the convex hull of finitely many points in n-dimensional space ℝn. They are fundamental objects in computational geometry. When studying polytopes, it soon becomes apparent that the proof of seemingly obvious properties often requires further clarification of the basic underlying geometric structures. An example of this is the major result that polytopes can also be represented as the intersection of finitely many affine half-spaces.

In this chapter the geometric foundations of polytopes and unbounded polyhedra will be presented from a computational viewpoint.

1 Definitions and Fundamental Properties

Definition 3.1

A set P⊆ℝn is a polytope if it can be expressed as the convex hull of finitely many points. A k-dimensional polytope is called a k-polytope. The convex hull of k+1 affinely independent points is a k-simplex.

A 0-dimensional polytope is just a point, a 1-polytope is a line segment and the 2-dimensional polytopes are precisely the convex polygons. We adopt the convention that the empty set is a polytope of dimension −1. See Fig. 3.1 for some examples.

Fig. 3.1
figure 1

Every 2-simplex is a triangle and every 3-simplex in ℝ3 is a (generally irregular) tetrahedron. The right hand picture shows a 3-polytope in ℝ3

From an analytical viewpoint, a polytope is a closed and bounded, and hence compact, subset of ℝn. Polytopes in lower dimensions illustrate neither the diversity of polytopes nor the depth of higher dimensional polytope theory.

We now introduce the reader to some examples of polytopes which will be useful in the following sections.

The standard cube C n is the convex hull of the 2n points which have ±1-coordinates. If we denote the standard basis vectors in ℝn by e (1),…,e (n), then we can express the cross-polytope as the convex hull of the 2n points ±e (1),…,±e (n). The 3-dimensional cross-polytope is the regular octahedron.

The cyclic polytopes form an important class of polytopes with extremal properties. These properties will be discussed in further detail in Section 3.5.

Definition 3.2

The moment curve μ n in ℝn is defined as

$$\mu_n:\mathbb{R}\to\mathbb{R}^n ,\quad \tau\mapsto \bigl(\tau, \tau^2, \ldots, \tau^n\bigr)^T . $$

A polytope Z⊆ℝn is called cyclic if Z is the convex hull of points of the moment curve.

For n=2 the moment curve is the standard parabola τ↦(τ,τ 2)T. Any cyclic 2-polytope that is defined as the convex hull of m≥3 points is a convex m-gon. This is independent of the specific choice of the m points on the curve μ 2.

It is easy to verify that the image of a polytope under an affine transformation is again a polytope (of the same dimension).

Definition 3.3

An affine automorphism of a polytope P⊆ℝn is an affine transformation of ℝn that maps P onto itself.

The set of all affine automorphisms of a polytope is a group with respect to composition. The size of this automorphism group is a measure of the regularity of the polytope.

Exercise 3.4

  1. (a)

    Show that for any two points p,q∈ℝn with ±1-coordinates there exists an affine transformation of ℝn which leaves the standard cube fixed and maps p to q.

  2. (b)

     Compute the number of affine automorphisms of the standard cube. [Hint: Make use of Theorem 2.7.]

1.1 The Faces of a Polytope

Based on the concept of supporting hyperplanes (as introduced in Section 2.3.2 or in Appendix B) we define the faces of a polytope.

Definition 3.5

Let P⊆ℝn be an n-polytope. The intersection PH of P with a supporting hyperplane H is called a proper face of P. A face of dimension k is called a k-face. A 0-face is called a vertex, a 1-face an edge, an (n−2)-face a ridge and an (n−1)-face is called a facet. Additionally, there are two non-proper faces: the empty set and P itself.

Definition 3.5 was stated for full-dimensional polytopes. The terms translate immediately to arbitrary k-polytopes P⊆ℝn for k<n if they are interpreted with respect to the affine hull \(\operatorname {aff}P\) of P. An example illustrating the faces of a polytope is given in Fig. 3.2.

Fig. 3.2
figure 2

A cube in ℝ3 has 8 vertices, 12 edges (which are also ridges in dimension 3) and 6 facets

Theorem 3.6

The number of faces of a polytope is finite. Faces of polytopes are polytopes themselves.

Proof

Let \(P = \operatorname {conv}U\) for a finite set U. For both claims it suffices to show that every proper face of P is the convex hull of a subset of U. Let H be a supporting hyperplane of P and let U′ :=UH. The oriented homogeneous coordinates of H are [a 0:…:a n ] and we assume without loss of generality that PH +. We will show that \(H \cap P = \operatorname {conv}U'\). The inclusion “⊇” is clear.

For the reverse inclusion consider a point \(p = (p_{1}, \ldots, p_{n})^{T} \in P\setminus \operatorname {conv}U'\). There exist u (1),…,u (k)U such that p=λ (1) u (1)+…+λ (k) u (k) with λ (j)≥0 and ∑λ (j)=1. Here we can assume that u (1)UU′ and λ (1)>0. We have to show that \(p\not\in H\). We have

where the last equation follows from \(\sum_{j=1}^{k} \lambda^{(j)}=1\). But by our assumption we have that \(a_{0}+\sum_{i=1}^{n}a_{i}u^{(1)}_{i}>0\) and \(a_{0}+\sum_{i=1}^{n}a_{i}u^{(j)}_{i}\ge0\) for all j∈{2,…,n}. Since λ (1)>0, this implies \(a_{0}+\sum_{i=1}^{n} a_{i}p_{i}>0\) or, in other words, \(p \in H^{+}_{\circ}\). □

1.2 First Consequences of the Separating Hyperplane Theorem

As the Separating Hyperplane Theorem 2.14 is an important key to the study of the structure of polytopes, we shall begin by studying its implications.

Theorem 3.7

The boundary of a full-dimensional polytope P⊆ℝn is the union of all of its proper faces.

Proof

Clearly the union of all proper faces of P is contained in the boundary of P. The reverse inclusion is implied by Corollary 2.15, which states that every boundary point intersects at least one supporting hyperplane. □

Theorem 3.8

Every polytope is the convex hull of its vertices.

Proof

Let \(P = \operatorname {conv}U\) for a finite set U. After successively removing all points of U that can be expressed as a convex combination of other points in U, we obtain a subset V={v (1),…,v (k)} that satisfies \(P = \operatorname {conv}V\) and which is minimal with respect to containment.

We now show that every remaining point is a vertex of P. It suffices to show this for v (1). Since V was chosen to be minimal, v (1) is not contained in the convex hull of the other points. By Theorem 2.14 there exists an affine hyperplane H that separates v (1) and \(\operatorname {conv}\{v^{(2)},\dots,v^{(k)}\}\). We set H=[a 0:…:a n ] and assume that \(v^{(1)} \in H^{-}_{\circ}\). Using the notation \(\mu \mathrel {\mathop {:}}=a_{0}+\sum_{i=1}^{n}a_{i}v^{(1)}_{i}\), the hyperplane K which is parallel to H and contains v (1) has the oriented homogeneous coordinates [a 0μ:a 1:…:a n ]; see Fig. 3.3. The inequality μ<0 implies \(\{v^{(2)},\dots,v^{(k)}\}\subseteq \operatorname {int}K^{+}\) and since v (1)K we have that K is a supporting hyperplane to P. Now let pPK. Since p is a convex combination of the points v (j), i.e., \(p=\sum_{j=1}^{k}\lambda^{(j)}v^{(j)}\) for appropriate λ (j)≥0 with \(\sum_{j=1}^{k} \lambda^{(j)}=1\), we have

Since λ (j)≥0 and \(a_{0}-\mu+\sum_{i=1}^{n} a_{i}v^{(j)}_{i}>0\) for all j≥2, we have λ (2)=…=λ (k)=0 and also λ (1)=1. This means that p=v (1) and therefore that v (1) is a vertex of P.

Fig. 3.3
figure 3

Separation of the point v (1) from \(\operatorname {conv}(V \setminus\{ v^{(1)}\})\) by H and a parallel supporting hyperplane K

 □

An immediate consequence of the above theorem is that the containment-minimal set V of points that generate P is uniquely determined.

1.3 The Outer Description of a Polytope

The representation of a polytope as the convex hull of a finite point set is called the \(\mathcal {V}\) -representation or inner description. The following two central theorems state that every polytope can be equivalently described as the bounded intersection of finitely many closed half-spaces (the \(\mathcal {H}\) -representation or outer description). The prefixes \(\mathcal {V}\)- and \(\mathcal {H}\)- derive from the terms “vertices” and “hyperplanes”.

Theorem 3.9

Let P⊆ℝn be an n-polytope, {F 1,…,F m } the set of its facets, H i  the supporting hyperplane to P at F i and \(H_{i}^{+}\) the half-space containing P. Then we have

$$P = \bigcap_{i=1}^m H_i^{+} . $$

Thus every polytope is the intersection of a finite set of closed half-spaces.

Proof

The inclusion “⊆” is clear. For the inclusion “⊇” we show that every point outside of P is not contained in the intersection \(\bigcap_{i=1}^{m} H_{i}^{+}\). For the following we fix a point \(p\not\in P\).

We study the set {G 1,…,G k } of all faces of P of dimension ≤n−2. Let q be a point in the interior of P which is not contained in the set \(\bigcup_{i=1}^{k} \operatorname {aff}(G_{i}\cup\{p\})\). Such a point exists since the interior of an n-polytope has dimension n and can therefore not be covered by a finite number of affine subspaces of dimension ≤n−1 (see Fig. 3.4). The segment [p,q] intersects the boundary of P in a uniquely determined point z which, by Theorem 3.7, is contained in a proper face of P. By the choice of q it is guaranteed that z is not contained in a face of dimension j<n−1. This implies that there exists an i∈{1,…,m} with zF i . So we have zH i and \(q \in H_{i}^{+}\), but \(p \in H_{i}^{-}\setminus H_{i}\), i.e., \(p \not\in\bigcap_{i=1}^{m} H_{i}^{+}\).

Fig. 3.4
figure 4

The point q is not contained in the affine hull of p with any face of dimension ≤n−2 (here n=2)

 □

When, as in Theorem 3.9, the polytope P⊆ℝn is full-dimensional, the affine span of every facet F defines a hyperplane H. Assuming that H has the form H=[a 0:⋯:a n ] and PH +, every positive multiple of (a 1,…,a n )T is called an inner normal vector of F and every negative multiple of (a 1,…,a n )T is called an outer normal vector of F. If dimP<n, then for any facet F, there exist infinitely many affine hyperplanes of ℝn that contain F.

We can now refine Theorem 3.7, which states that the boundary of a polytope is the union of its facets.

Theorem 3.10

If the intersection P of a finite number of closed affine half-spaces inn is bounded, then P is a polytope.

Proof

The proof is completed by induction over the dimension n of the space. The statement is clear for dimension ≤1 . So let n≥2 and

$$P = \bigcap_{i=1}^m H_i^{+} $$

be the bounded intersection of a finite number of affine half-spaces in ℝn. Let F j  :=H j P, j∈{1,…,m}. Then F j is a bounded intersection of half-spaces in the hyperplane H j . Since H j can be identified with an affine space of dimension n−1, we know by the inductive hypothesis that F j is a polytope in H j and therefore also a polytope in ℝn. Let V j be the set of vertices of F j and \(V = \bigcup_{j=1}^{m} V_{j}\).

It suffices to show that \(P = \operatorname {conv}V\). The inclusion “⊇” is clear since VP and P is convex. For the reverse inclusion consider a point qP. If q is a boundary point of P, then there exists a j∈{1,…,m} with qF j . The point q is therefore a convex combination of V j which in particular implies that \(q \in \operatorname {conv}V\). If q is contained in the interior of P, then q is contained in a segment, [r,s], formed by the intersection of a line with P. Since r and s are on the boundary of P they are contained in \(\operatorname {conv}V\) and thus \(q \in \operatorname {conv}V\). □

Example 3.11

The hyperplanes that define facets of the standard cube C n are precisely \(H_{i} = [1:h^{(i)}_{1}:\dots:h^{(i)}_{n}]\) for i∈{1,…,2n} with

$$h^{(i)}_k = \begin{cases} 1 & \mbox{if $i=k$} ,\\ -1 & \mbox{if $i=k+n$} ,\\ 0 & \mbox{otherwise} \end{cases} $$

for k∈{1,…,n}.

Computing the \(\mathcal {H}\)-representation when given the \(\mathcal {V}\)-representation of a polytope and vice versa is a major topic of computational geometry and will be discussed in Chapter 5.

Exercise 3.12

Show that the intersection of a polytope with an arbitrary affine subspace is a polytope.

Exercise 3.13

For a polytope P show that:

  1. (a)

    The intersection of a set of faces of P is a face of P.

  2. (b)

    Every ridge of P is the intersection of exactly two facets of P.

  3. (c)

    If G is a face of P and F is a face of G, then F is a face of P.

2 The Face Lattice of a Polytope

Containment defines a partial order on the set \(\mathcal {F}(P)\) of all faces of a polytope P. Theorem 3.6 tells us that this set is finite, i.e., \((\mathcal {F}(P),\subseteq)\) is a finite partially ordered set (or poset). As a purely combinatorial object this poset is an important interface between the analytically focused general complexity theory and discrete geometry.

Exercise 3.14

Show that \((\mathcal {F}(P),\subseteq)\) satisfies the following conditions:

  1. (a)

    There exists a uniquely determined smallest and largest face of P.

  2. (b)

    For two arbitrary faces \(F,G\in \mathcal {F}(P)\) there exists a uniquely determined smallest face FG such that FFG and GFG.

  3. (c)

    For two arbitrary faces \(F,G\in \mathcal {F}(P)\) there exists a uniquely determined largest face FG such that FFG and GFG.

The properties described in Exercise 3.14 show that \((\mathcal {F}(P),\subseteq)\) is a lattice, called the face lattice of P.

Definition 3.15

A combinatorial isomorphism of two polytopes is a (poset-)isomorphism of the face lattices. If there exists such a combinatorial isomorphism, we call the two polytopes combinatorially equivalent. The combinatorial type of a polytope is the isomorphism type of its face lattice.

Exercise 3.16

Show that every affine transformation of a polytope P to a polytope Q induces an isomorphism from \(\mathcal {F}(P)\) to \(\mathcal {F}(Q)\).

Exercise 3.17

Give an example of two combinatorially equivalent polytopes such that there does not exist an affine transformation that maps one to the other.

Theorem 3.18

Let F and G be faces of P such that FG. Then

$$\mathcal {F}(F,G)\mathrel {\mathop {:}}=\bigl\{F'\in \mathcal {F}(P):F\subseteq F' \subseteq G \bigr\} $$

with the partial order induced by containment, is isomorphic to the face lattice of a polytope of dimension dimG−dimF−1.

Proof

Since Theorem 3.6 established that every face of a polytope is a polytope itself, we can assume without loss of generality that G=P. Let P be full-dimensional. We choose F as a proper face since otherwise there is nothing left to show.

Let V be the vertex set of P and V(F)=FV the vertex set of the face F. Choose a supporting hyperplane H to P with F=PH. We assume that H has the oriented homogeneous coordinates [a 0:…:a n ] and that PH + holds. For every sufficiently small ϵ>0 we have that the hyperplane H(ϵ)=[a 0ϵ:a 1:…:a n ], which is parallel to H, separates the vertex set V(F) from its complement: \(V(F)\subseteq \operatorname {int}H(\epsilon)^{-}\) and \(V\setminus V(F)\subseteq \operatorname {int}H(\epsilon)^{+}\). See Fig. 3.5.

Fig. 3.5
figure 5

Two examples of polytopes PH(ϵ) for dimF∈{0,1}. (Notation as in the proof of Theorem 3.18.) The polytope P is a bipyramid over a pentagon

Let x be a point in the relative interior of F. The hyperplane H(ϵ) contains an interior point, y say, of P. Now let A be an (n−dimF)-dimensional affine subspace containing x and y but no point in \(\operatorname {aff}F\) other than x. That is, \(\operatorname {aff}F\) and A are complementary affine subspaces meeting at x. Then AH(ϵ) is an affine subspace of dimension n−dimF−1 which is affinely generated by the set

$$P(F,A,\epsilon)\mathrel {\mathop {:}}=P\cap A\cap H(\epsilon), $$

which by Theorem 3.10 is a polytope. The map

$$\alpha: \mathcal {F}(F,P)\to \mathcal {F}\bigl(P(F,A,\epsilon)\bigr) : F'\mapsto F'\cap A\cap H(\epsilon) $$

respects containment and is bijective since \(\alpha^{-1}(F'\cap A\cap H(\epsilon))=\operatorname {aff}((F'\cap A\cap H(\epsilon ))\cup F)\cap P=\operatorname {aff}(F')\cap P=F'\). Since \(\mathcal {F}(F,P)\) does not depend on x,y,A or ϵ we have that the combinatorial type of the polytope P(F,A,ϵ) is independent of x,y,A and ϵ. □

Given a face F of P we call the polytope P(F,A,ϵ) a face figure of F. An implication of Theorem 3.18 is the fact that \(\mathcal {F}(F,G)\), for dimG−dimF=2, is always the face lattice of a segment, i.e., there exist exactly two faces E 1 and E 2 of dimension dimF+1 which lie between F and G. This property is called the diamond property of \(\mathcal {F}(P)\); see Fig. 3.6. For a bipyramid over a pentagon, Fig. 3.5 shows the (pentagonal) face figure of a vertex, also called a vertex figure; the shaded heptagon corresponds to the face figure of an edge, which is a segment, as discussed above.

Fig. 3.6
figure 6

The diamond property of the face lattice. The faces E 1,E 2,F,G satisfy E 1E 2=G and E 1E 2=F

Let P⊆ℝn be an n-polytope and let f k (P) be the number of k-dimensional faces of P. Then f(P) :=(f 0(P),f 1(P),…,f n−1(P)) is called the f-vector of P. The f-vector is clearly a combinatorial invariant since it only depends on the combinatorial type of P. An interesting—and very complicated—task is to determine which n-tuples of natural numbers can be f-vectors of n-polytopes.

Exercise 3.19

Compute the f-vector of the n-dimensional standard cube C n and describe its face lattice.

One may ask what “typical” polytopes look like. A more rigorous statement of this naive question can be formulated in several ways using stochastic terms. As an example, we will study the convex hulls of random points on the unit sphere in Section 3.6. In many cases the term “typical” corresponds to “general position”.

Exercise 3.20

Let K⊆ℝn be a full-dimensional convex set. Show that a finite set X of uniformly distributed random points from K is almost certainly in general position, i.e. the probability of n+1 of these points being affinely independent is 1. In particular this implies that every proper face of \(\operatorname {conv}X\) is a simplex.

The last property inspires the following definition.

Definition 3.21

A polytope P is called simplicial if all proper faces of P are simplices. It is called simple if the face figure of every proper face of P is a simplex.

The cross polytopes \(\operatorname {conv}\{\pm e^{(1)},\dots,\pm e^{(n)}\}\) are simplicial, while the cubes C n are simple. The relationship between these two properties, simplicial and simple, will be clarified in Section 3.3.

Exercise 3.22

Show that a polytope is both simplicial and simple if and only if it is a simplex or a polygon.

Exercise 3.23

Let P be an n-polytope with vertex set V and edge set E. The graph Γ(P) is the abstract graph (V,E) with natural incidence. Show:

  1. (a)

    The graph Γ(P) is connected.

  2. (b)

    Every vertex is incident with at least n edges.

  3. (c)

    The n-polytope P is simple if and only if every vertex is incident with exactly n edges.

3 Polarity and Duality

In the following section we introduce the concept of polarity. Given a polytope P which contains the origin in its interior, we assign to P a polar polytope P such that every k-face of P corresponds to an (nk−1)-face of P . In particular, we have that f ni−1(P)=f i (P ).

Example 3.24

For the standard cube C 3=[−1,1]3 in ℝ3 we have f 0(C 3)=8, f 1(C 3)=12, f 2(C 3)=6. For the three-dimensional cross-polytope (the octahedron) \(Q=\operatorname {conv}\{\pm e^{(i)} :1 \le i \le3 \}\) (where e (i) denotes the i-th standard basis vector), we have f 0(Q)=6, f 1(Q)=12, f 2(Q)=8 (see Fig. 3.7).

Fig. 3.7
figure 7

The cube [−1,1]3 and octahedron \(\operatorname {conv}\{e^{(i)}:1 \le i \le3\}\)

We will see in Example 3.30 that Q is the polar polytope of C 3.

As in Section 2.3.1, let 〈⋅,⋅〉 denote the Euclidean scalar product and let ∥⋅∥ with ∥x∥:=〈x,x1/2 be the Euclidean norm.

Definition 3.25

For X⊆ℝn the polar set X is defined as

$$X^{\circ} = \bigl\{y \in\mathbb{R}^n:\langle x, y \rangle \le1 \mbox{ for all } x \in X \bigr\} . $$

Exercise 3.26

Show that XY implies Y X for X,Y⊆ℝn.

Proposition 3.27

Let X⊆ℝn. Then X is closed and convex and 0∈X .

Proof

Clearly 0∈X . Let x∈ℝn∖{0}, then

$$\{x\}^{\circ} = \bigl\{y\in\mathbb{R}^n:\langle x,y\rangle \le 1 \bigr\} = [1:-x_1:\dots:-x_n]^{+} $$

is a closed affine half-space and {0}=ℝn. The intersection X =⋂ xX {x} of closed and convex sets is again closed and convex. □

Theorem 3.28

If P⊆ℝn is an n-polytope with \(0 \in \operatorname {int}P\), then P is also an n-polytope with \(0 \in \operatorname {int}P\). We have

$$ P^{\circ} = \bigcap _{v\in V} \bigl\{y\in\mathbb{R}^n:\langle v,y\rangle \le1 \bigr\} = \bigcap_{v\in V} [1:-v_1: \dots :-v_n]^{+} , $$
(3.1)

where V is the vertex set of P.

Proof

Since P is bounded, we have that P is contained in an open ball B(0,ρ) with center 0 and radius ρ. For all x∈ℝn with ∥x∥≤1/ρ the Cauchy–Schwarz inequality gives

$$\bigl|\langle x, y\rangle\bigr| \le \|x\| \, \|y\| \le \frac {1}{\rho} \|y\| \le 1 \quad \mbox{for all } y \in P , $$

and thus the ball B(0,1/ρ) is contained in P . As a consequence, P is full-dimensional. Since P contains a ball B(0,ρ′) we can analogously deduce that P is bounded.

Equation (3.1) remains to be proven. The inclusion “⊆” follows immediately from Definition 3.25. For the reverse inclusion “⊇” consider a point y that is not contained in P . An arbitrary point xP can be expressed as a convex combination \(\sum_{i=1}^{k}\lambda^{(i)}v^{(i)}\) of vertices of P. Clearly we have

$$\langle x,y\rangle = \sum_{i=1}^k \lambda^{(i)}\bigl\langle v^{(i)},y\bigr\rangle \le \max \bigl\{\bigl\langle v^{(i)},y\bigr\rangle:1\le i\le k \bigr\} , $$

where the last inequality follows from \(\sum_{i=1}^{k}\lambda^{(i)}=1\). If 〈x,y〉>1 then there exists a vertex v (i) such that 〈v (i),y〉>1, which proves the statement. □

Theorem 3.29

For an n-polytope P⊆ℝn with \(0 \in \operatorname {int}P\) we have:

  1. (a)

    (P )=P.

  2. (b)

    For every boundary point p of P the affine hyperplane

    $$H = \bigl\{x \in\mathbb{R}^n:\langle p,x \rangle= 1 \bigr\} $$

    is a supporting hyperplane to P .

Proof

(a) The definition of polarity implies immediately that P⊆(P ). For the reverse direction let \(P = \bigcap_{i=1}^{m} H_{i}^{+}\) and let x be a point not contained in P. Then there exists an i∈{1,…,m} with \(x \not\in H_{i}^{+}\). By the Separation Theorem 2.14 there exists a v∈ℝn with 〈v,x〉>1. Since 〈v,y〉≤1 for all \(y \in H_{i}^{+}\), we have vP and since 〈v,x〉>1 we have \(x \not\in(P^{\circ})^{\circ}\).

(b) For every pP∖{0}, H +=[1:−p 1:…:−p n ]+ is a half-space which contains the polytope P . If p is a boundary point of P then, by Theorem 3.7, it belongs to a face of P and there exists a vector x∈ℝn such that the hyperplane H′={y∈ℝn:〈x,y〉=1} supports P and contains the point p. We now have xP and xH such that H intersects the polytope P and thus H is a supporting hyperplane to P . □

Example 3.30

The description of the hyperplanes that define the facets of the standard cube C n in Example 3.11 shows that C n is polar to the n-dimensional cross-polytope.

Lemma 3.31

Let P⊆ℝn be an n-polytope with \(0 \in \operatorname {int}P\). For every proper face F of P the face

$$F^* \mathrel {\mathop {:}}=\bigl\{x \in P^{\circ}:\langle x,y \rangle=1 \mbox{ \textit{for all} } y \in F \bigr\} \subsetneq F^{\circ} $$

is a proper face of P .

Proof

For every pF, Theorem 3.29b implies that the hyperplane H={x∈ℝn:〈p,x〉=1} is a supporting hyperplane of P , and thus P H is a face of P . Since F is the convex hull of a finite number of points, we can express F as an intersection of a finite number of such faces of P . Hence F is a face of P . By construction the face F is contained in the set F . □

Lemma 3.31 induces a map ϕ:FF from the set of all proper faces of P to the set of all proper faces of P , with ϕ(P)=∅ and ϕ(∅)=P .

Theorem 3.32

Let P⊆ℝn be an n-polytope with \(0 \in \operatorname {int}P\). The map ϕ is bijective and for all k∈{0,…,n−1} it maps the k-faces of P to the (nk−1)-faces of P . Furthermore ϕ is containment-reversing, i.e., FG implies G F .

Proof

Exercise 3.26 implies that ϕ is containment-reversing.

Since the map ϕ can also be applied to the faces of P , in order to prove bijectivity we know by Theorem 3.29a that it suffices to show that ϕ(ϕ(F))=F for every face F of P. For the non-proper faces this is satisfied by definition. For every proper face F we have by definition that

$$\phi\bigl(\phi(F)\bigr) = \bigl\{x \in\mathbb{R}^n :\langle x,y \rangle = 1 \mbox{ for all } y \in\phi(F) \bigr\} $$

with

$$\phi(F) = \bigl\{y \in P^{\circ}:\langle x,y \rangle= 1 \text { for all } x \in F \bigr\} , $$

and thus Fϕ(ϕ(F)).

For the reverse inclusion, consider a point pP with \(p \not\in F\). If we denote by H=[1:−h 1:…:−h n ] a supporting hyperplane to P that contains F, then \(p \in\nobreak H^{+}_{\circ}\) and hence 〈p,h〉<1. Notice the first coordinate of H equals 1 (up to scaling by a positive real number) as the origin is an interior point of P. Since hϕ(F) it then follows that \(p \not\in\phi(\phi(F))\).

Our dimension statement remains to be proven. For non-proper faces it is clearly satisfied. Every proper k-face F contains k+1 affinely independent points such that ϕ(F) is contained in the intersection of k+1 hyperplanes whose equations are linearly independent. This implies dimϕ(F)≤nk−1, but since Fϕ(ϕ(F)), this must be an equality. □

A bijection that reverses the order relation of a lattice or poset is called an anti-isomorphism.

Corollary 3.33

Let P⊆ℝn be an n-polytope with \(0 \in \operatorname {int}P\). The polytope P is simplicial if and only if the polar polytope P is simple.

Example 3.34

Let \(P = \operatorname {conv}\{p^{(1)}, \ldots, p^{(4)} \} \subseteq\mathbb{R}^{2}\) be the quadrangle depicted in Fig. 3.8. Then the polar polytope \(P^{\circ} = \bigcap_{i=1}^{4} \{x \in \mathbb{R}^{2} :\langle p^{(i)},x \rangle\le1 \}\) is the dashed quadrangle. The segment [0,p (i)] is perpendicular to the line

$$H_i \mathrel {\mathop {:}}=\bigl\{x \in\mathbb{R}^2 :\bigl\langle p^{(i)},x \bigr\rangle= 1 \bigr\}=\operatorname {aff}\bigl(\bigl\{p^{(i)} \bigr\}^*\bigr) . $$

For i∈{1,2}, p (i) lies on the unit circle \(\mathbb{S}^{1}\) such that the line H i is tangent to the unit circle. The point p (3) lies outside of the unit circle such that H 3 intersects the interior of the unit circle. The fourth point p (4) lies in the interior of the unit circle such that H 4 lies completely outside of the unit circle. The distance from the origin to the line H i is always the reciprocal of the distance between 0 and p (i).

Fig. 3.8
figure 8

A polytope \(P = \operatorname {conv}\{p^{(1)}, \ldots, p^{(4)}\}\) and its polar polytope

In this section we often assumed that the polytope P contained the origin as an interior point. By restricting to \(\operatorname {aff}P\), and via a suitable translation, we can without any loss of generality always assume this to be the case, i.e., every polytope has an affine image which satisfies this condition. This implies that for every polytope P there exists a polytope P′ whose face lattice \(\mathcal {F}(P')\) is anti-isomorphic to \(\mathcal {F}(P)\). Such a polytope is said to be dual to P.

4 Polyhedra

Polytopes are the elementary building blocks of computational geometry, but it is often more natural to study a wider class of objects: polyhedra. This will be of particular importance in Chapter 4, as well as other chapters, when we discuss linear programming.

Definition 3.35

A set P⊆ℝn is called a polyhedron if it can be represented as the intersection of a finite number of closed affine half-spaces.

Thus, a polytope is a bounded polyhedron. In general we cannot describe a polyhedron as the convex hull of a finite number of points. The most basic example of this is a single half-space. Nevertheless, the differences between polytopes and unbounded polyhedra are manageable.

To do this we distinguish between two kinds of unbounded polyhedra: A polyhedron P either contains an affine line or it does not. In the latter case we call P pointed. First assume that \(P=H_{1}^{+} \cap\dots\cap H_{k}^{+}\) is pointed. Then nk and H 1∩⋯∩H k is either empty or contains exactly one point. Without loss of generality we may assume that the first n hyperplanes intersect in a point, z. If \(H_{i}^{+}\) has homogeneous coordinates \([h_{0}^{(i)}:\dots:h_{n}^{(i)}]^{+}\) this means that

$$z = \bigl[h_0^{(1)}:\dots:h_n^{(1)}\bigr] \cap \dots \cap \bigl[h_0^{(n)}:\dots:h_n^{(n)}\bigr] . $$

The point z may or may not be contained in P. To get a clearer image of P we apply an affine transformation to P which transforms each hyperplane H i to the coordinate hyperplane E i =[0:…:0:1:0:…:0]={x∈ℝn:x i =0} for 1≤in. In this way, z will automatically be mapped to the origin. The affine transformation described above can be represented most conveniently by the (n+1)×(n+1)-matrix

which operates on the left, as usual. That T indeed has all the properties required is a consequence of Exercise 2.17. By our choice of coordinates, E 1,…,E n are oriented so that \(E_{1}^{+} \cap\dots\cap E_{n}^{+}\) is the positive orthant. Hence the transformed polyhedron [T]P is contained in the positive orthant. Now consider a further projective transformation, defined by the non-negative matrix

The map [B] is not an affine transformation. It maps the ideal hyperplane [1:0:…:0] to the projective hyperplane [1:−1:…:−1] so that the coordinate hyperplanes stay fixed. Furthermore the image of the positive orthant under the map [B] is the n-simplex

$$E_1^{+} \cap\dots\cap E_n^{+}\cap[1:-1:\dots:-1]^{+} . $$

In particular, the image [BT]P is a bounded polyhedron, i.e., a polytope. We have now proved the following theorem.

Theorem 3.36

Every pointed polyhedron is projectively equivalent to a polytope.

Pointed polyhedra can be imagined as polytopes with a specific proper face that has been moved to the ideal hyperplane. For an example computation, see Section 3.6.3 below.

Note that the image of a polyhedron under a projective transformation is not necessarily a polyhedron. However, the following case, which is most relevant for us, does not have this problem.

Exercise 3.37

Let \(P\subseteq\mathbb{R}_{\ge0}^{n}\) be a polyhedron in the positive orthant and [A] the projective transformation to a matrix \(A\in \operatorname {GL}_{n+1}\mathbb{R}\) with non-negative coefficients. Show that the image [A]P is again a polyhedron.

We still need to consider the case where P is not pointed. In this case we choose an affine subspace A of ℝn which is contained in P and which is maximal with respect to dimension. The linear subspace L of ℝn which is parallel to A is called the lineality space of P. Let p be an arbitrary point of P and A′ be the affine orthogonal complement of A that contains p. The intersection PA′ is a polyhedron which contains no affine line and is therefore pointed.

Definition 3.38

For X,Y⊆ℝn, the Minkowski sum of X and Y is defined as

$$x + y = \{x + y :x \in X, \, y \in Y \} . $$

The Minkowski sum is called direct if x+y=v+w with x,vX and y,wY implies x=v and y=w.

Using this notation, the lineality space, as defined above, gives us a direct Minkowski sum P=(PA′)+L, establishing the following lemma.

Lemma 3.39

Every polyhedron can be expressed as the direct Minkowski sum of a pointed polyhedron and a linear subspace.

In this decomposition it is possible that the pointed polyhedron or the lineality space is just a single point. In those cases the decomposition as a Minkowski sum is trivial.

In summary, we can say that statements about polyhedra can be traced back to statements about polytopes. As an example of this consider the generalization of Theorem 3.8 which is discussed in Exercise 3.41. However, first consider two further definitions.

Definition 3.40

Let A⊆ℝn. A positive combination of A is a linear combination \(\sum_{i=1}^{m} \lambda^{(i)} a^{(i)}\) with a (i)A and λ (i)≥0 for all i. The set of all positive combinations of A is called the positive hull of A, which we denote by \(\operatorname {pos}A\).

The positive hull of a set A is a convex cone in the sense that \(\operatorname {pos}A\) is convex and that a+b and λa are contained in \(\operatorname {pos}A\) for \(a, b \in \operatorname {pos}A\) and λ≥0 (see Fig. 3.9). In a convex cone K we call a half-line x+ℝ≥0 y∂K with xK and y∈ℝn∖{0} a ray of K.

Fig. 3.9
figure 9

The positive hull of a finite point set

Exercise 3.41

Every polyhedron P⊆ℝn can be expressed as a Minkowski sum

$$P = \operatorname {conv}V + \operatorname {pos}R $$

for finite sets V and R.

Exercise 3.42

Show that the cone \(\operatorname {pos}R\) in Exercise 3.41 is uniquely determined. Is the polytope \(\operatorname {conv}V\) also unique, in general?

The cone \(\operatorname {pos}R\) in the preceding exercises is called the recession cone of the polyhedron P.

Exercise 3.43

The product

$$\bigl\{(p,q)\in\mathbb{R}^{n+n'}:p\in P,\, q\in Q \bigr\} $$

of two polyhedra P⊆ℝn and Q⊆ℝn is a polyhedron.

5 The Combinatorics of Polytopes

As mentioned in Chapter 1, computational problems often require the transformation from a \(\mathcal {V}\)-representation to an \(\mathcal {H}\)-representation and vice versa. Before we study explicit algorithms for this task in Chapter 5, it is necessary to improve our understanding of the combinatorial structure of polytopes.

To be able to discuss the complexity of an algorithm it is necessary to first determine how large the output of an algorithm may be in relation to its input. For convex-hull-algorithms, i.e., methods to compute the facets of a convex hull of a given point set, we have to answer the question of how many facets an n-dimensional polytope with m vertices may have. The reverse question, how many vertices an n-polytope with m facets can have, is equivalent by polarization. As before, let f k (P) denote the number of k-dimensional faces of an n-polytope P for −1≤kn. In particular we have f −1(P)=f n (P)=1.

The Upper-bound Theorem, a fundamental result in polytope theory, states that the cyclic polytopes from Definition 3.2 are extremal in the following sense. Let Z n (m) denote a cyclic polytope in ℝn formed by the convex hull of m points on the moment curve. This notation purposefully neglects which m points define the cyclic polytope. At the end of this section this simplification will be justified (in Exercises 3.49–3.51) by the statement that two such cyclic polytopes are combinatorially equivalent.

Theorem 3.44

(Upper-bound Theorem, McMullen 1970)

An n-dimensional polytope with m vertices has at most as many k-faces as a cyclic polytope Z n (m) for all k∈{−1,…,n}.

In Exercises 3.49–3.51 we will compute the number of facets of cyclic polytopes. This yields the following explicit upper bound.

Corollary 3.45

The number of facets of an n-dimensional polytope with m vertices is bounded by

$$\begin{cases} \frac{m}{m-\frac{n}{2}} \binom{m-\frac{n}{2}}{m-n} & \mbox{\textit{if} $n$ \textit{is even}} , \\[6pt] 2\binom{m-\frac{n+1}{2}}{m-n} & \mbox{\textit{if} $n$ \textit{is odd}}. \end{cases} $$

When we switch to the dual picture we obtain the same upper bound for the number of vertices of an n-polytope with m facets.

We will not fully prove Theorem 3.44 in this section. Instead we give a proof for an upper bound which has the right order of magnitude for the number of facets.

Theorem 3.46

An n-polytope with m vertices has at most \(2 \binom{m}{\lfloor n/2 \rfloor}\) facets and in total not more than \(2^{n+1} \binom{m}{\lfloor n/2 \rfloor}\) faces. For fixed n, both numbers have the same order of magnitude O(m n/2⌋).

We will prove this statement first for simplicial polytopes and then we deduce the non-simplicial case as a corollary.

Lemma 3.47

For a simplicial n-polytope P we have:

  1. (a)

    \((n-k)f_{k}(P) \le\binom{n}{k+1} f_{n-1}(P)\) for k∈{−1,…,n};

  2. (b)

    nf 0(P)+(n−1)f 1(P)+…+2f n−2(P)≤(2n−2)f n−1(P);

  3. (c)

    f n−1(P)≤2f n/2⌋−1(P).

Proof

For the first statement we count the number of k-faces that are incident to a given facet of P and vice versa. By our assumption every facet is an (n−1)-simplex which contains exactly \(\binom{n}{k+1}\) k-faces. On the other hand we have that the face figure of a k-face is an (nk−1)-polytope that has at least nk facets. This implies the first statement. The second statement follows from the first by summation over k from 0 to n−2.

For the third statement, we consider the dual polytope P′ which is by Corollary 3.33 simple. We have to show that f 0(P′)≤2f n/2⌉(P′).

Now we will limit the number of vertices of P′ with respect to the number of ⌈n/2⌉-faces. After an affine transformation we can assume without loss of generality that no two edges of P′ have the same x n -coordinate. In the following we imagine that the n-coordinate is “pointing upwards”.

Consider a vertex v and the n edges incident with v. Then there are at least ⌈n/2⌉ edges that point downwards or at least ⌈n/2⌉ edges that point upwards. In the first case we have that every ⌈n/2⌉-tuple of upward pointing edges determines a ⌈n/2⌉-face for which v is the lowest vertex. In the second case we have that each ⌈n/2⌉-tuple of downward pointing edges determines a ⌈n/2⌉-face for which v is the highest vertex. Since the lowest and highest vertex for each face are unique, there are at most twice as many vertices as there are ⌈n/2⌉-faces. □

Lemma 3.48

For each n-polytope P there exists an n-dimensional simplicial polytope Q with the same number of vertices as P such that f k (Q)≥f k (P) for 1≤kn.

Proof

We can assume that P⊆ℝn. Our goal is to obtain the polytope Q from P by slightly moving all the vertices.

For the perturbation of one vertex v we employ the following operation. Pick an affine hyperplane H which strictly separates v from all the other vertices of P. We may orient H so that \(H^{-}_{\circ}\) contains v. Now choose a point \(v'\in \operatorname {int}P\cap H^{-}_{\circ}\) which is not contained in a hyperplane spanned by any n+1 vertices of P. Replacing v by v′ we obtain the polytope

$$P' = \operatorname {conv}\bigl( \{w:w \mbox{ vertex of } P \mbox{ distinct from } v \}\cup\bigl\{v'\bigr\} \bigr) , $$

which is contained in P. We want to show that P′ has at least as many faces of each dimension as P. To this end we will describe an injective map ι from the faces of P to the faces of P′.

Let F be a proper face of P and let A be an affine hyperplane supporting P with AP=F. Notice that, as P contains P′, the hyperplane A does not separate P′. If F does not contain the vertex v then we set ι(F)=AP′=AP=F, and this is a face of P′.

It remains to consider the case when F contains v. If F is a simplex, then

$$\iota(F) = \operatorname {conv}\bigl( \{w:w \mbox{ vertex of } F \mbox{ distinct from } v \}\cup\bigl\{v'\bigr\} \bigr) $$

is a face of P′. We may then assume that F is not a simplex. As v′ is not contained in F in this case it follows that ι(F)=AP′ is a face of P′ of the same dimension as F. This yields a dimension-preserving map ι from the face lattice of P to the face lattice of P′. It is easy to see that ι is injective.

To construct the polytope Q we pick a linear ordering v (1),…,v (m) of the vertices of P. Inductively perturbing the vertices in this order gives a sequence of n-dimensional polytopes P (1),…,P (m) all of which have precisely m vertices. Setting P (0)=P and Q=P (m) we have

$$f_k(P) \le f_k\bigl(P^{(i)}\bigr) \le f_k(Q) $$

for 1≤im and 1≤kn. Moreover, our procedure guarantees that the vertices of Q are in general position and therefore Q is simplicial. □

Proof of Theorem 3.46

By Lemma 3.48 it suffices to consider simplicial polytopes P. Since the number of (⌊n/2⌋−1)-faces clearly satisfies

$$f_{\lfloor n/2\rfloor-1}(P) \le \binom{m}{\lfloor n/2 \rfloor} , $$

Lemma 3.47c implies

$$f_{n-1}(P) \le 2 \binom{m}{\lfloor n/2 \rfloor} $$

and using Lemma 3.47b we obtain

$$f_0(P) + f_1(P) + \dots+ f_n(P) \le 2^{n+1} \binom{m}{\lfloor n/2 \rfloor} . $$

 □

To conclude this section we will study the cyclic polytopes introduced in Definition 3.2. As mentioned in Theorem 3.44, these polytopes maximize the f-vector of all polytopes.

Exercise 3.49

Show that each set of n points on the moment curve in ℝn are affinely independent. This implies that cyclic polytopes are simplicial.

As a result of the following exercise (and Exercise 3.55) we know that two cyclic polytopes of the same dimension and the same number of vertices are combinatorially equivalent. This justifies the notation Z n (m).

Exercise 3.50

(Gale Evenness Condition)

Let V be the vertex set of a cyclic polytope in ℝn with the induced order ≺ with respect to the moment curve, i.e., x(τ 1)≺x(τ 2) if and only if τ 1<τ 2. Let U={v (1),…,v (n)}⊆V be an n-tuple of vertices of P, where v (1)v (2)≺⋯≺v (n). Show that \(\operatorname {conv}U\) is a facet of P if and only if for every two vertices u,vVU we have that the number of vertices v (i)U with uv (i)v is even.

Exercise 3.51

Show, using the evenness criterion from the previous exercise, that the following holds for the number f n,m of facets of a cyclic polytope Z n (m):

$$ f_{n,m} = \begin{cases} \frac{m}{m-\frac{n}{2}} \binom{m-\frac{n}{2}}{m-n} & \mbox{if $n$ is even}, \\[6pt] 2\binom{m-\frac{n+1}{2}}{m-n} & \mbox{if $n$ is odd}. \end{cases} $$
(3.2)

Exercise 3.52

Compute the group of combinatorial automorphisms of each cyclic polytope.

In the remainder of this section we will discuss the relationship between the number of faces of varying dimensions of polytopes. These relations are essential for a deeper understanding of the combinatorics of polytopes (such as the proof of the exact statement of the Upper-bound Theorem).

The entries of the f-vector of a polytope are not independent of each other. This is easy to see for simple n-polytopes. Here, every vertex is incident with exactly n edges and conversely, every edge is incident with exactly two vertices. This implies 2f 1=nf 0. Since f 1 is an even number, this implies that every simple polytope of odd dimension has an even number of vertices. In the dual picture this means that each simplicial polytope of odd dimension has an even number of facets. Theorem 3.54 sharpens this statement. First we look at a famous result that holds for arbitrary polytopes.

Theorem 3.53

(Euler’s formula)

The f-vector of a non-empty polytope P of dimension n satisfies the following equation

$$\sum_{k=-1}^{n} (-1)^k f_k(P) = 0 . $$

Euler’s formula implies that for two-dimensional polytopes the number of vertices and edges in a polygon is the same.

For three-dimensional polytopes we obtain the classical formula for the Euler characteristic:

$$ f_0(P) - f_1(P) + f_2(P) = f_{-1}(P)+f_3(P) = 2 . $$
(3.3)

Proof

We prove Euler’s formula by induction over the dimension n of the polytope.

For n=1 each polytope has exactly two proper faces, i.e., its vertices, such that

$$\sum_{k=-1}^1 (-1)^k f_k(P) = 1 -2 +1 = 0 . $$

So let P be an n-polytope and let m=f 0(P) be the number of vertices of P. After a suitable affine transformation we can assume without loss of generality that no two vertices have the same x n -coordinates. Let v (1),…,v (m) be the vertex set of P, ordered increasingly by their x n -coordinate. Furthermore, let H 1,…,H 2m−1 be horizontal (i.e., orthogonal to the x n -axis) affine hyperplanes such that v (i)H 2i−1, 1≤im, and such that v (i) is the only vertex that is located between H 2i−2 and H 2i . For a face F of P we define

$$\chi_j(F) = \begin{cases} 1 & \mbox{if $H_{j} \cap \operatorname {relint}F \neq\emptyset$} , \\ 0 & \mbox{otherwise} \end{cases} $$

for 1≤j≤2m−1.

Now we fix a face F and denote by v (l) the vertex with minimal x n -coordinate. Similarly v (u) is the vertex with maximal x n -coordinate. The horizontal hyperplanes that intersect the interior of F lie strictly between the hyperplanes H 2l−1 and H 2u−1. If dimF≥1 then we have lu and the number of hyperplanes with even index that intersect \(\operatorname {relint}F\) exceeds the number of hyperplanes with odd index that intersect \(\operatorname {relint}F\) by one. That is,

$$\sum_{j=2}^{2m-2} (-1)^j \chi_j(F) = 1 . $$

Summing this equation over the set \(\mathcal {F}_{k}(P)\) of k-faces of P yields

$$f_k(P) = \sum_{F \in \mathcal {F}_k(P)} \sum _{j=2}^{2m-2}(-1)^j \chi_j(F) . $$

The alternating sum over all k≥1 yields

$$ \sum_{k=1}^{n} (-1)^k f_k(P) = \sum_{j=2}^{2m-2}(-1)^j \sum_{k=1}^{n} (-1)^k \sum _{F \in \mathcal {F}_k(P)} \chi_j(F) . $$
(3.4)

For 2≤j≤2m−2, P j  :=PH j has dimension n−1, so that by the induction hypothesis we have

$$ \sum_{k=0}^{n-1} (-1)^k f_k(P_j) = 1 . $$
(3.5)

We distinguish between two cases:

j even: :

Each (k−1)-face of P j is the intersection of a k-face of P with the hyperplane H j such that

$$f_{k-1}(P_j) = \sum_{F \in \mathcal {F}_k(P)} \chi_j(F) , \quad\mbox{for } 1 \le k \le n . $$

Substituting this into (3.5) yields

$$ \sum_{k=1}^n (-1)^{k-1} \sum_{F \in \mathcal {F}_k(P)} \chi_j(F) = 1 . $$
(3.6)
j odd: :

Each (k−1)-face of P j is the intersection of a k-face of P with H j , with the exception of the vertex v ((j+1)/2) which is contained in H j . We therefore have

In this case, substituting into (3.5) yields

$$ \sum_{k=1}^n (-1)^{k-1} \sum_{F \in \mathcal {F}_k(P)} \chi_j(F) = 0 . $$
(3.7)

Multiplying (3.6) and (3.7) by (−1)j+1 and substituting into (3.4) yields

 □

From this we can deduce, with a clever summation, a previously mentioned, far-reaching generalization of the relation 2f 1=nf 0 for simple polytopes. For the proof we refer to Ziegler [99, §8.3].

Theorem 3.54

(Dehn–Sommerville equations)

The f-vector of a simple n-polytope P satisfies the linear equations

$$\sum_{j=0}^k (-1)^j \binom{n-j}{n-k} f_j(P) = f_k(P) , \quad \mbox{\textit{for} } k \in\{0,\dots,n\} . $$

Through duality we obtain a corresponding statement for simplicial polytopes.

6 Inspection Using polymake

We want to study some concrete examples of polytopes, most of the characteristics of which can be obtained using the results discussed above. Here, and in the following, we use the software polymake, which is briefly introduced in Appendix D.1. The shell-based interface uses a dialect of Perl.

6.1 Cyclic Polytopes

We study cyclic 4-polytopes Z 4(7) with 7 vertices. The polymake function cyclic generates cyclic polytopes which can then be further examined. Each line starting with “polytope >” contains one command.

figure a

VERTICES, DIM, F_VECTOR and VERTICES_IN_FACETS are examples of properties of a polymake object. Each line of the property VERTICES contains the oriented homogeneous coordinates of a vertex. The vertices are implicitly enumerated, starting with 0, but the order is not relevant here. The output of VERTICES_IN_FACETS refers to this enumeration: Every line of the output matrix corresponds to a facet and every column to a vertex, where the order of the columns corresponds to the order of the vertices in the VERTICES section. A 1 at position (i,j) indicates that the i-th facet is incident with the j-th vertex. If the dense() command is omitted in the polymake-command line, we get the entire list of vertices for each facet.

In the dense output of VERTICES_IN_FACETS we can immediately verify Gale’s evenness criterion from Exercise 3.50: In each line we have an even number of 1s between two 0s. The matrix with coefficients in {0,1} coded in the property VERTICES_IN_FACETS is called the incidence matrix with respect to the given order of vertices and facets.

The remaining two commands print the dimension and the f-vector of Z 4(7). In particular, we see that this polytope has seven vertices, 21 edges, 28 ridges and 14 facets.

The homogeneous coordinates of the facets can be obtained using the command

figure b

in the same order as for the property VERTICES_IN_FACETS. The output (which is suppressed here) looks similar to that in Section 5.4.

6.2 Random Polytopes

The function rand_sphere produces n-polytopes as convex hulls of random points selected from a uniform distribution on the unit sphere \(\mathbb {S}^{n-1}\). By Exercise 3.20 these points are almost certainly in general position so that the convex hull is simplicial.

figure c

By the Dehn–Sommerville equations we know that the complete f-vector of a simplicial 3-polytope is determined by the number of vertices. We have f 2=2f 0−4 and f 1=f 0+f 2−2=3f 0−6. Figure 3.10 depicts some random polytopes.

Fig. 3.10
figure 10

The convex hulls of 8, 100 and 1000 random points on \(\mathbb {S}^{2}\)

6.3 Projective Transformations

We now want to show how to use polymake to projectively transform an unbounded but pointed polyhedron into a polytope. This is an example of the procedure described in Theorem 3.36. Let us begin by defining an unbounded polyhedron as the Minkowski sum of a polytope (which is the convex hull of eight points) and one infinite ray.

figure d

Again we use homogeneous coordinates, and the unique ray is represented by the vector (0,0,0,1)T listed first. It is easy to verify that $P satisfies our conditions.

figure e

The first step is to set up an affine transformation which sends our polyhedron into the positive orthant. To this end we list which facet is incident with which vertex.

figure f

In our input above the POINTS defining $P were, in fact, a non-redundant description. Hence the row numbers correspond to our input. For instance:

figure g

We see that the facets numbered 0, 3 and 4 are incident with the vertex numbered 5. Our polyhedron is full-dimensional and hence those three facets must have linearly independent facet normal vectors. Therefore we can use vertex number 5 as our point z in the construction described in Section 3.4. In this way we form the matrix T as follows.

figure h

Notice that the operator/concatenates matrices row-wise. Similarly, the matrix B can be built from standard constructions using row and column concatenations, the latter being expressed via |.

figure i

To transform our polytope we have to take into account that polymake uses row vectors to represent the points, and thus transformations operate on the right. We can use the matrices constructed above if we transpose.

figure j

The vertices of the transformed polytope $Q are as follows.

figure k

Observe that the vertex numbered 5, which is the image of the point z under the transformation, is the origin. All the vertices are contained in the positive orthant.

7 Exercises

Exercise 3.55

Show that two polytopes are combinatorially equivalent if and only if there exists an ordering of their vertices and facets such that their corresponding incidence matrices are equal.

A polytope is called cubical if all of its proper faces are combinatorially equivalent to cubes. For cubical polytopes there is a statement which is analogous to Lemma 3.47. This is an observation of Gil Kalai.

Exercise 3.56

Show that the following inequality holds for the f-vector of a cubical polytope

$$f_1+2f_2+2^2f_3+ \cdots+2^{n-2}f_{n-1} \le \binom{f_0}{2}. $$

Exercise 3.57

Show that, given an arbitrary full-dimensional polyhedron P⊆ℝn with outer description \(P=\bigcap_{i=1}^{m} H_{i}^{+}\), there exists a family of indices i 0,i 1,…,i n such that \(Q=H_{i_{0}}^{+} \cap\dots\cap H_{i_{n}}^{+}\) is projectively equivalent to an n-simplex. If we additionally assume that P is a polytope, can we always choose the hyperplanes in such a way that Q is also a polytope?

Exercise 3.58

Let π:ℝn+1→ℝn be the linear projection to the first n coordinates. Show that the image of a polytope under π is again a polytope.

Exercise 3.59

Let P be an n-polytope. Show that there exists for every k-face G of P a family of facets F 1,…,F nk such that

$$G_1 \supsetneq G_2 \supsetneq \dots \supsetneq G_{n-k} = G $$

holds for G i  :=F 1∩…∩F i .

Exercise 3.60

The Minkowski-sum [p (1),q (1)]+…+[p (k),q (k)] of a finite number of line segments with p (i),q (i)∈ℝn is a zonotope. Show that the zonotopes generated by k segments are exactly the images of the standard cube [−1,1]k under affine maps.

Exercise 3.61

Which among the polyhedra in the following list are projectively equivalent?

  1. (a)

    \(\operatorname {conv}\{(0, 0, 0)^{T}\} + \operatorname {pos}\{(1, 0, 0)^{T}, (0, 1, 0)^{T}, (0, 0, 1)^{T}\}\)

  2. (b)

    \(\operatorname {conv}\{(0, 0, 0)^{T}, (1, 0, 0)^{T}, (0, 1, 0)^{T}\} + \operatorname {pos}\{(1, 1, 1)^{T}\}\)

  3. (c)

    \(\operatorname {conv}\{(1, 0, 0)^{T}, (0, 1, 0)^{T}, (0, 0, 1)^{T}, (a, b, c)^{T}\}\) for a,b,c arbitrary real numbers (i.e., this is an infinite set of polyhedra)

  4. (d)

    \(\operatorname {conv}\{(1, 0, 0)^{T}, (0, 1, 0)^{T}, (0, 0, 1)^{T}, (2, 1, 1)^{T}, (1, 2, 1)^{T}, (1, 1, 2)^{T}\}\)

8 Remarks

The content of this chapter forms part of the standard material for polytopes and polyhedra, see the monographs of Boissonnat and Yvinec [15], Brøndsted [16], Grünbaum [56] and Ziegler [99]. The Upper-bound Theorem was proved by McMullen [78]. Further proofs can be found in the books of Mulmuley [80] and Ziegler [99]. As a general reference we recommend the Handbook of Discrete and Computational Geometry [49].

The term polyhedron is not always used in the same way as we have defined it in this book. In particular topologists often use this term to describe a simplicial or polyhedral complex embedded in ℝn; it may also describe a triangulated manifold.

The set of vertices and edges of a 3-dimensional polytope can be interpreted as the set of vertices and edges of a planar graph on a sphere. Hence (3.3) is a special case of Euler’s formula for planar graphs, see [2, Chapter 11]. In fact, Euler’s formula generalizes to cell complexes. We will see a glimpse of this in Section 13.1 at the very end of this book.

Concerning the graph Γ(P) of an n-polytope P introduced in Exercise 3.23, Warren M. Hirsch conjectured in 1957 that any two vertices of P can be connected by a path in Γ(P) of at most mn edges, where m is the number of facets. This famous conjecture, the Hirsch conjecture, was disproved by Santos in 2010 [90].