18.9  Polytopes

There are two ways to pin down a convex set with finitely many numbers. One lists finitely many points and takes their convex hull; the other lists finitely many linear inequalities and takes their common solutions. A triangle can be given either way, by its three corners or by its three sides. This section proves that for bounded sets the two descriptions always describe the same sets, which is the Minkowski–Weyl theorem. On the way it locates the optima of Section 6’s linear programs over bounded regions: they occur at corners, and a corner of {x:Ax≤b} can be recognized by a rank condition on the constraints that hold with equality there. The other direction of the theorem comes from Fourier–Motzkin elimination, an algorithm for projecting a system of inequalities that works the way Gaussian elimination does for equations.

Throughout, the field is R and the space is Rn with n≥1 and the dot product. An inequality between vectors is meant entrywise: Ax≤b says that (Ax)i≤bi for every i. For A∈Mm×n(R) we write a1⊤,…,am⊤ for its rows, so that Ax≤b is the list of m inequalities ai⊤x≤bi.

18.9.1. Two finite descriptions

The first description already appeared in Section 8, just after Proposition 18.8.2.

A polytope is the convex hull of finitely many points; a polyhedron is the solution set of finitely many linear inequalities.

Definition 18.9.1 (Polytope)

A polytope in Rn is a set of the form conv{v1,…,vk} for finitely many points v1,…,vk∈Rn, k≥0.

Definition 18.9.2 (Polyhedron)

A polyhedron in Rn is a set of the form P={x∈Rn:Ax≤b} for some m≥0, A∈Mm×n(R), and b∈Rm; that is, the intersection of finitely many sets {x:ai⊤x≤bi}. An extreme point of a polyhedron or of a polytope (Definition 18.8.1) is called a vertex.

In words: a polytope is built from the inside, by mixing finitely many given points; a polyhedron is carved from the outside, by finitely many cuts. When ai≠0, the set {x:ai⊤x≤bi} is a closed half-space, bounded by the hyperplane ai⊤x=bi (Definition 5.5.2). A zero row ai=0 is allowed and harmless: the condition 0≤bi either holds for every x or for none. An equation a⊤x=β is allowed too, as the two inequalities a⊤x≤β and −a⊤x≤−β. By Theorem 18.1.3, the polytope conv{v1,…,vk} is the set of all ∑jtjvj with every tj≥0 and ∑jtj=1.

Some examples, simplest first.

  1. The empty set and a point are both. ∅=conv∅, and ∅={x:0≤−1} with the single zero row. A point v=conv{v} is the solution set of the 2n inequalities xi≤vi and −xi≤−vi.
  2. All of Rn is a polyhedron, with m=0 (or with the one row 0≤0). So is a closed half-space. Neither is a polytope, because a polytope is bounded: if ‖vj‖≤R for every j, then ‖∑jtjvj‖≤∑jtj‖vj‖≤R.
  3. The triangle T⊆R2 with corners (0,0),(3,0),(0,3) is conv{(0,0),(3,0),(0,3)}, and it is the polyhedron {x1≥0, x2≥0, x1+x2≤3}. That the two descriptions agree is not a definition but a fact; the worked example in the section on Fourier–Motzkin elimination below derives each from the other.
  4. The cube B∞=[−1,1]n is the polyhedron given by the 2n inequalities ±xi≤1, and by Section 8 it is the hull of its 2n sign vectors (Example (The diamond, the cube, and the sphere) and Theorem 18.8.5). So it is both.

A nonexample by minimal change. Replace the cube’s square B∞⊆R2 by the disk B2. It is still compact and convex, still the unit ball of a norm, and still the solution set of inequalities a⊤x≤1, one for every unit vector a: by Theorem 11.1.5, a⊤x≤‖x‖≤1 on the disk, and a point with ‖x‖>1 violates the inequality for a=x/‖x‖. What fails is the word finitely. The disk is not a polytope: by Proposition 18.8.2 a polytope has finitely many extreme points, while the disk has a whole circle of them (Example (The diamond, the cube, and the sphere)). We will see after the Minkowski–Weyl theorem that it is not a polyhedron either.

Why these definitions. Both allow only finite data, and that is the point: finitely many inequalities can be checked, finitely many points can be listed, and the whole theory of this section is about moving between two finite lists. An infinite family of inequalities describes every closed convex set, by the separation theorem (Theorem 18.3.2), so dropping “finitely many” would make the second definition say nothing new.

Section 1 already showed that every polyhedron is convex and closed; we record it for citation.

Proposition 18.9.1 (Polyhedra Are Closed and Convex)

Every polyhedron P={x:Ax≤b} is convex and closed.

Proof. With the linear functional φi(x)=ai⊤x, each set {x:ai⊤x≤bi}={φi≤bi} is closed by Proposition 18.1.6 (c), and convex by Proposition 18.1.1 (b), as the preimage of the interval (−∞,bi] under φi. So their intersection P is closed by Proposition 18.1.6 (b) and convex by Proposition 18.1.1 (a).

Warning. A polyhedron need not have any vertices, even when it is not empty. The strip {x∈R2:−1≤x1+x2≤1} is a closed convex set with no extreme points at all: every point x of it is the midpoint of x±(1,−1), which lie in it. Minkowski’s theorem (Theorem 18.8.5) does not apply because the strip is unbounded, and in the language of the next theorem, its constraint rows ±(1,1) have rank 1<2.

18.9.2. Vertices are basic feasible points

Section 8 showed that a linear function on a nonempty compact convex set attains its maximum at an extreme point (Corollary 18.8.6). For a linear program over a bounded region {x:Ax≤b}, that shrinks the search to the vertices. To make it a finite search we need a way to recognize a vertex from the data A,b, and a proof that there are finitely many.

Stand at a point x of P and look at the inequalities that are tight there. Each tight inequality ai⊤x=bi confines x to a hyperplane. If the tight rows are rich enough to pin x down, there is no room to move in any direction, and x should be a corner. If not, there should be a direction along which one can move both ways without leaving P.

Definition 18.9.3 (Active Set, Basic Feasible Point)

Let P={x∈Rn:Ax≤b} and x∈P. The active set of x is I(x)={i:ai⊤x=bi}, the indices of the inequalities that hold with equality at x. The point x is a basic feasible point of the system if among the active rows {ai:i∈I(x)} there are n linearly independent ones.

Equivalently, the matrix AI(x) formed by the active rows has a row space of dimension n, that is, rank n (Theorem 3.5.5); by Theorem 3.5.7 this says that its null space is {0}, which means that x is the only solution of the equations ai⊤y=bi, i∈I(x). The word “feasible” records that x lies in P; a solution of n independent equations ai⊤y=bi that violates some other inequality is a basic point but not a basic feasible one. Note that the definition depends on the system Ax≤b, not only on the set P; the theorem shows that the resulting notion depends only on P.

Theorem 18.9.2 (Vertices Are Basic Feasible Points)

Let P={x∈Rn:Ax≤b} and x∈P. Then x is a vertex of P if and only if x is a basic feasible point.

Idea. Both directions are about the directions u with ai⊤u=0 for every active i, the directions along which every tight constraint stays tight. If the active rows have rank n, the only such direction is 0, and an averaging argument pins down any segment through x. If their rank is less than n, a nonzero such u exists by rank–nullity, and a short step ±εu keeps the tight constraints tight and, because there are finitely many, keeps the slack ones slack.

Proof. Write I=I(x) and let AI be the matrix of active rows (empty if I=∅).

(⇐) Suppose AI has rank n, and let x=12(y+z) with y,z∈P. For i∈I, bi=ai⊤x=12ai⊤y+12ai⊤z, with ai⊤y≤bi and ai⊤z≤bi; if either were strict, the average would be less than bi. So ai⊤y=bi=ai⊤x, that is, AI(y−x)=0. Since AI has n columns and rank n, its null space is {0} by Theorem 3.5.7, so y=x, and then z=2x−y=x. By Lemma 18.8.1, x is a vertex.

(⇒) Suppose AI has rank less than n (this includes I=∅). By Theorem 3.5.7 its null space is nonzero; choose u≠0 with ai⊤u=0 for every i∈I. For i∉I, the slack bi−ai⊤x is positive. Let ε>0 be smaller than (bi−ai⊤x)/|ai⊤u| for every i∉I with ai⊤u≠0; there are finitely many such i, so such an ε exists, and if there are none, take ε=1. Then for i∈I, ai⊤(x±εu)=bi, and for i∉I, ai⊤(x±εu)≤ai⊤x+ε|ai⊤u|≤bi. So x±εu∈P, they differ because u≠0, and x is their midpoint. Hence x is not a vertex. This proves the theorem.

The payoff is finiteness.

Corollary 18.9.3 (A Polyhedron Has Finitely Many Vertices)

Let P={x∈Rn:Ax≤b} with A∈Mm×n(R). Every vertex of P is the unique solution of AJx=bJ for some set J of n row indices with AJ invertible. In particular P has at most (mn) vertices.

Idea. By the theorem, n independent active rows pin a vertex down, so a vertex is determined by which n rows those are.

Proof. Let x be a vertex. By Theorem 18.9.2, some n active rows, with index set J⊆I(x), are linearly independent. The n×n matrix AJ then has independent rows, so its rank is n (Theorem 3.5.5), its null space is {0} (Theorem 3.5.7), and it is invertible (Theorem 3.4.4 (b)). As J⊆I(x), AJx=bJ, so x=AJ−1bJ is determined by J. Different vertices therefore come from different sets J, and there are (mn) sets of n indices.

This gives the finite recipe for a vertex list: for each choice of n rows with AJ invertible, solve AJx=bJ and keep the solution if it satisfies the remaining inequalities.

Example (The vertices of a quadrilateral)

Find the vertices of P={x∈R2:x1≥0, x2≥0, x1+2x2≤4, 3x1+x2≤6}, and the maximum of φ(x)=x1+x2 over P.

Solution. Number the constraints (1) −x1≤0, (2) −x2≤0, (3) x1+2x2≤4, (4) 3x1+x2≤6. Any two of the four rows are linearly independent, so each of the (42)=6 pairs gives one basic point. We solve each pair as equations and test the other two inequalities. pairbasic pointother constraints(1),(2)(0,0)0≤4, 0≤6: feasible(1),(3)(0,2)−2≤0, 2≤6: feasible(1),(4)(0,6)12≤4 fails(2),(3)(4,0)12≤6 fails(2),(4)(2,0)−2≤0, 2≤4: feasible(3),(4)(85,65)−85≤0, −65≤0: feasible For the last pair, subtracting (3) from twice (4) gives 5x1=8, so x1=85 and x2=6−3x1=65; check 85+125=4. By Theorem 18.9.2 the vertices are the four feasible basic points (0,0), (0,2), (2,0), and (85,65), and P is a quadrilateral. The two infeasible basic points are where two of the lines cross outside P.

P is bounded, since 0≤x1≤2 and 0≤x2≤2 on it, so it is compact (Proposition 18.9.1, Corollary 16.2.5) and nonempty. By Corollary 18.8.6 the maximum of φ is attained at a vertex. The values are 0,2,2,145, so the maximum is 145, at (85,65).

Quick check. A polyhedron in R2 is given by m=5 inequalities. What is the largest number of vertices the corollary allows? Could a polyhedron in R3 given by m=2 inequalities have a vertex?

Solution. At most (52)=10. In R3 a vertex needs 3 linearly independent active rows, and there are only 2 rows in all, so no: the rank of the active rows is at most 2<3, and by Theorem 18.9.2 such a polyhedron has no vertices. Geometrically, the intersection of two half-spaces in R3 always contains a whole line through each of its points.

The recipe is honest but slow: (mn) grows very fast. The simplex method, the classical algorithm for linear programs, uses the same theorem more cleverly. It moves from a vertex to a neighboring vertex, one sharing n−1 of its independent active constraints, along an edge on which the objective improves, and stops at a vertex where no edge improves it.

18.9.3. Fourier–Motzkin elimination

Now the other direction. Given a polytope conv{v1,…,vk}, how do we find inequalities for it? The hull is the set of x for which there exist weights t≥0 with ∑jtj=1 and x=∑jtjvj. The conditions on the pair (x,t) are linear inequalities, so the set of pairs is a polyhedron in Rn+k, and the polytope is its image under the projection that forgets t. So we need to know that a projection of a polyhedron is a polyhedron, and a way to compute it. For equations, eliminating a variable is Gaussian elimination. For inequalities the device is to pair every upper bound on the variable with every lower bound.

Write a point of Rn+1 as (x,s) with x∈Rn and s∈R, and let π(x,s)=x.

Lemma 18.9.4 (Fourier–Motzkin Elimination)

Let P={(x,s)∈Rn×R:ai⊤x+cis≤bi for i=1,…,m}. Split the indices by the sign of the coefficient of s: I+={i:ci>0}, I−={i:ci<0}, I0={i:ci=0}. Then π(P) is the set of x∈Rn satisfying ai⊤x≤bifor i∈I0,(ciaj−cjai)⊤x≤cibj−cjbifor i∈I+, j∈I−. In particular π(P) is a polyhedron, and if every bi=0, every right-hand side above is 0.

Idea. For fixed x, each row with ci>0 is an upper bound on s, each row with ci<0 is a lower bound, and a row with ci=0 does not mention s. A number s satisfying all of them exists exactly when every lower bound is at most every upper bound, and those comparisons are the new rows. Each new row is the combination ci⋅(row j)+(−cj)⋅(row i), with both multipliers positive and chosen to cancel s.

Proof. Let Q be the set described by the new rows. For i∈I+ and j∈I−, put Ui(x)=bi−ai⊤xci,Lj(x)=bj−aj⊤xcj. Dividing row i by ci>0 shows that it says s≤Ui(x), and dividing row j by cj<0, which reverses the inequality, shows that it says s≥Lj(x). Multiplying Lj(x)≤Ui(x) by the positive number −cicj and rearranging gives exactly the new row for the pair (i,j): Lj(x)≤Ui(x)⟺(ciaj−cjai)⊤x≤cibj−cjbi.

(⊆) If (x,s)∈P, then Lj(x)≤s≤Ui(x) for every pair, and the rows in I0 hold since they do not involve s. So x∈Q.

(⊇) Let x∈Q. If I−≠∅, let s=maxj∈I−Lj(x); if I−=∅ and I+≠∅, let s=mini∈I+Ui(x); if both are empty, let s=0. In each case Lj(x)≤s≤Ui(x) for all j∈I− and i∈I+: in the first case because every Lj(x)≤s by the choice of s, and s=Lj0(x)≤Ui(x) for every i since x∈Q; the second case is the same with the roles exchanged. The rows in I0 hold because x∈Q. So (x,s)∈P and x∈π(P).

The last sentence is visible: the new right-hand sides are bi and cibj−cjbi.

As an algorithm:

Algorithm. Fourier–Motzkin elimination of one variable. Input: a system of m inequalities ai⊤x+cis≤bi in the unknowns x∈Rn and s∈R.

  1. Sort the rows into I+ (ci>0), I− (ci<0) and I0 (ci=0).
  2. Copy every row of I0, without its s term.
  3. For every pair i∈I+, j∈I−, write down the row ci⋅(row j)+(−cj)⋅(row i), which is (ciaj−cjai)⊤x≤cibj−cjbi.
  4. (Optional.) Delete every new row of the form 0≤β with β≥0, which every x satisfies. A row 0≤β with β<0 means the projection is empty.

Output: |I0|+|I+||I−| inequalities in x alone, at most, whose solution set is the projection of the input’s solution set. To eliminate several variables, repeat.

When the variable to be eliminated appears in an equation with a nonzero coefficient, there is a shortcut: solve the equation for it and substitute into the other rows. The projection is unchanged, since the equation determines the eliminated variable from the others, and substitution is exactly Gaussian elimination.

Example (A triangle, both ways)

Let Q=conv{(0,0),(3,0),(0,3),(1,1)}⊆R2. Find a system of inequalities describing Q, and then recover the vertices of Q from it.

Solution. From points to inequalities. By Theorem 18.1.3, x∈Q if and only if there are t1,…,t4≥0 with ∑jtj=1 and x=t1(0,0)+t2(3,0)+t3(0,3)+t4(1,1), that is, x1=3t2+t4,x2=3t3+t4. Three equations involve the weights, so we substitute three of them away and keep s=t4: t2=13(x1−s), t3=13(x2−s), and t1=1−t2−t3−s=1−13(x1+x2+s). The four conditions tj≥0, each multiplied by 3 where needed, become a system in (x1,x2,s): (1)  x1+x2+s≤3,(2)  −x1+s≤0,(3)  −x2+s≤0,(4)  −s≤0. Run the algorithm on s. The coefficients of s are 1,1,1,−1, so I+={1,2,3}, I−={4}, and I0=∅. Each pair (i,4) has ci=1 and −c4=1, so the new row is row i plus row 4, which just deletes the s: x1+x2≤3,−x1≤0,−x2≤0. By Lemma 18.9.4, Q={x1≥0, x2≥0, x1+x2≤3}, the triangle T of the examples above. The generator (1,1) left no trace, as it should: it lies inside the triangle.

From inequalities to vertices. The three rows (−1,0), (0,−1), (1,1) are pairwise independent, so each of the (32)=3 pairs gives a basic point: (0,0), (0,3), and (3,0). Each satisfies the third inequality, so all three are vertices by Theorem 18.9.2. At (1,1) no constraint is active, so I=∅ and it is not a vertex, which matches Proposition 18.8.2: the extreme points of the hull are among the four generators, and (1,1) is not one of them.

Warning. Fourier–Motzkin does not return a minimal description. Eliminating s from −x1+s≤0, s≤1, −s≤0, and x1−s≤1 pairs two upper bounds with two lower bounds, and gives −x1≤0, x1≤2, and twice the useless row 0≤1. Even without trivial rows, the output can contain inequalities implied by the others. A single step can turn m rows into as many as (m/2)2, and eliminating many variables compounds this, so the method is a proof device and a hand tool for small systems, not an efficient algorithm.

18.9.4. The Minkowski–Weyl theorem

Cones get the same treatment. Section 5 wrote cone(v1,…,vk) for the set of all nonnegative combinations ∑jcjvj, cj≥0, a convex cone (Definition 18.5.1), and called such cones finitely generated; we allow k=0, with cone()={0}. The inequality side is a homogeneous system.

Definition 18.9.4 (Polyhedral Cone)

A polyhedral cone in Rn is a set of the form C={x∈Rn:Ax≤0} for some m≥0 and A∈Mm×n(R).

A polyhedral cone is a polyhedron, and it is a convex cone: it contains 0, and if Au≤0, Av≤0, and a,b≥0, then A(au+bv)=aAu+bAv≤0. By Proposition 18.9.1 it is closed, while for finitely generated cones closedness took the work of Theorem 18.5.4.

Theorem 18.9.5 (Minkowski–Weyl Theorem)
  • (a) A subset of Rn is a polytope if and only if it is a bounded polyhedron.
  • (b) A subset of Rn is a finitely generated cone if and only if it is a polyhedral cone.

Idea. Four implications, two tools.

① Bounded polyhedron ⇒ polytope. This is Section 8 plus the vertex theorem: a bounded polyhedron is compact, so it is the hull of its vertices by Minkowski’s theorem, and it has finitely many vertices.

② Polyhedral cone ⇒ finitely generated. Cut the cone with the cube [−1,1]n. The result is a bounded polyhedron, hence by ① the hull of finitely many points, and scaling those points generates the cone.

③ Polytope ⇒ polyhedron, and ④ finitely generated ⇒ polyhedral. Write the set as the projection of a polyhedron in a bigger space, with the weights as extra coordinates, and eliminate the weights one at a time by Fourier–Motzkin. For a cone all right-hand sides are 0 and stay 0.

Proof. ① A bounded polyhedron is a polytope. Let P={x:Ax≤b} be bounded. If P=∅, then P=conv∅. Otherwise P is closed and convex by Proposition 18.9.1, and bounded, so it is compact by Corollary 16.2.5. By Theorem 18.8.5, P=conv(extP), and extP is finite by Corollary 18.9.3. So P is a polytope.

② A polyhedral cone is finitely generated. Let C={x:Ax≤0}, and let P=C∩[−1,1]n, the polyhedron given by the rows of A together with the 2n rows ±xi≤1. It is bounded and contains 0, so by ① P=conv{v1,…,vk}, where v1,…,vk are its vertices; in particular every vj∈P⊆C. We claim C=cone(v1,…,vk). If c≥0, then A∑jcjvj=∑jcjAvj≤0, since each Avj≤0 and each cj≥0; so every such combination lies in C. Conversely let x∈C. If x=0, take all cj=0. Otherwise put r=‖x‖∞>0. Then A(x/r)=1rAx≤0 and every entry of x/r lies in [−1,1], so x/r∈P, say x/r=∑jtjvj with tj≥0. Then x=∑j(rtj)vj with rtj≥0.

③ A polytope is a bounded polyhedron. Let Q=conv{v1,…,vk}, and let V have columns vj. It is bounded, as in example 2 after Definition 18.9.2. By Theorem 18.1.3, Q is the image, under the map (x,t)↦x that forgets the last k coordinates, of P^={(x,t)∈Rn×Rk: x−Vt≤0,  −x+Vt≤0,−t≤0,  1⊤t≤1,  −1⊤t≤−1}, a polyhedron in Rn+k. Forgetting the last k coordinates is forgetting one coordinate k times in a row, and by Lemma 18.9.4 each step takes a polyhedron to a polyhedron. So Q is a polyhedron.

④ A finitely generated cone is polyhedral. Let C=cone(v1,…,vk)={Vc:c≥0}, where V has columns vj. It is the image under the same map of {(x,c):x−Vc≤0, −x+Vc≤0, −c≤0}, whose right-hand sides are all 0. By the last sentence of Lemma 18.9.4, eliminating the k coordinates of c one at a time keeps every right-hand side 0, and the rows copied from I0 keep theirs as well. So C={x:Bx≤0} for the matrix B of the final rows (if no rows remain, C=Rn={x:0≤0}). This completes the proof.

Two consequences show what the theorem is for. First, the intersection of two polytopes is a polytope. By (a) each is a bounded polyhedron; putting the two systems of inequalities together describes the intersection, which is therefore a bounded polyhedron, hence a polytope by (a) again. From the point description alone this is not obvious at all: the corners of the intersection are, in general, new points found nowhere in the two lists. Second, (b) gives a new proof of Theorem 18.5.4, since every polyhedral cone is closed. In that proof the difficulty of Section 5 has moved into Fourier–Motzkin elimination. The same elimination shows that a linear image M(C) of a polyhedral cone C={x:Ax≤0} is polyhedral: it is the image, under the map forgetting x, of {(y,x):y−Mx≤0, −y+Mx≤0, Ax≤0}, and the argument of ④ applies. So a linear image of a polyhedral cone is closed, and a closed convex cone with a nonclosed linear image, like the one in Section 5, can never be polyhedral.

The disk B2 is not a polyhedron. If it were, it would be a bounded polyhedron, hence a polytope by (a), and it is not one.

18.9.5. The cube and the cross-polytope

The two unit balls with corners from Section 8 are the standard example of the theorem, and they illustrate a duality between the two descriptions.

Example (The cube and the cross-polytope)

For n≥1, describe B∞ and B1 both as polytopes and as polyhedra, and find their vertices from the inequalities by Theorem 18.9.2.

Solution. The cube. B∞ is the polyhedron given by the 2n rows ei⊤x≤1 and −ei⊤x≤1. At a point x of it, the active rows are ei for each i with xi=1 and −ei for each i with xi=−1; they are distinct standard vectors up to sign, so they are linearly independent, and their number is the rank. The rank is n exactly when every |xi|=1. So the vertices are the 2n sign vectors, as Example (The diamond, the cube, and the sphere) found directly, and B∞ is their hull.

The cross-polytope. By Example (The diamond, the cube, and the sphere) and Theorem 18.8.5, B1=conv{±e1,…,±en}. For its inequalities, let s run over the 2n sign vectors. For every s, s⊤x=∑isixi≤∑i|xi|=‖x‖1, with equality when si=1 for xi≥0 and si=−1 for xi<0. So ‖x‖1=maxss⊤x, and B1={x∈Rn:s⊤x≤1 for every sign vector s}, a polyhedron with 2n rows. At e1, the active rows are the s with s1=1. They have rank n: they include 1, and for each j≥2 the vector 1−2ej, so their span contains 12(1−(1−2ej))=ej for j≥2 and then e1=1−∑j≥2ej. The same holds at every ±ei. Every other point x of B1 has active rows of rank less than n. If ‖x‖1<1, no row is active. If ‖x‖1=1, then x has two nonzero entries xi,xj with i≠j, since a point with one nonzero entry and ‖x‖1=1 is some ±ei; let σi,σj∈{±1} be their signs. An active s has ∑kskxk=∑k|xk| with each skxk≤|xk|, so skxk=|xk| for every k, and in particular si=σi, sj=σj. Hence u=σiei−σjej≠0 has s⊤u=σi2−σj2=0 for every active s, and the matrix of active rows has rank less than n by Theorem 3.5.7. By Theorem 18.9.2, the vertices are exactly the 2n points ±ei.

Duality. The rows of the cube are ±ei, which are the vertices of the cross-polytope; the rows of the cross-polytope are the sign vectors, which are the vertices of the cube. In R3, the cube has 8 vertices and 6 inequalities, the octahedron 6 vertices and 8 inequalities. This exchange is the polytope form of the fact that ‖⋅‖1 and ‖⋅‖∞ are dual norms (Definition 18.4.4): the maximum of y⊤x over x∈B1 is ‖y‖∞, and over x∈B∞ it is ‖y‖1.

18.9.6. Exercises

A. Check your understanding

Exercise (A1)
  • (a) State the definitions of a polytope and of a polyhedron in Rn.
  • (b) True or false: every polyhedron is a polytope. Justify your answer.
  • (c) True or false: the intersection of two polytopes in Rn is a polytope. Justify your answer.
  • (d) State the criterion of Theorem 18.9.2 for a point of {x:Ax≤b} to be a vertex.
  • (e) True or false: every inequality produced by Fourier–Motzkin elimination (Lemma 18.9.4) is needed to describe the projection. Justify your answer.

Solution.

  • (a) A polytope is the convex hull of finitely many points of Rn. A polyhedron is a set {x∈Rn:Ax≤b} for some A∈Mm×n(R) and b∈Rm, that is, an intersection of finitely many sets {x:ai⊤x≤bi}.

  • (b) False. The half-plane {x2≥0}⊆R2 is a polyhedron, with one row, but it is unbounded, while every polytope is bounded.

  • (c) True. By Theorem 18.9.5 (a), each is a bounded polyhedron. Listing both systems of inequalities together describes the intersection, which is therefore a polyhedron, and it is bounded because it lies inside one of the two. By Theorem 18.9.5 (a) again, it is a polytope.

  • (d) A point x with Ax≤b is a vertex if and only if the rows ai with ai⊤x=bi include n linearly independent ones.

  • (e) False. In the warning after Example (A triangle, both ways), two of the four output rows are 0≤1, which every point satisfies.

B. Practice

Exercise (B1: Vertices of a pentagon)

Find all vertices of P={x∈R2:x1≥0, x2≥0, x1+x2≤4, x1−x2≤2, −x1+2x2≤5}, and the maximum of 2x1+3x2 over P. Hence write P as a polytope.

Solution. Number the rows (1) −x1≤0, (2) −x2≤0, (3) x1+x2≤4, (4) x1−x2≤2, (5) −x1+2x2≤5. Any two rows are independent (no two are multiples of each other), so each of the (52)=10 pairs gives one basic point. pairpointverdict(1),(2)(0,0)feasible(1),(3)(0,4)(5):8≤5 fails(1),(4)(0,−2)(2) fails(1),(5)(0,52)feasible(2),(3)(4,0)(4):4≤2 fails(2),(4)(2,0)feasible(2),(5)(−5,0)(1) fails(3),(4)(3,1)feasible(3),(5)(1,3)feasible(4),(5)(9,7)(3):16≤4 fails For instance, (3) and (4) added give 2x1=6, so x=(3,1); (3) and (5) added give 3x2=9, so x=(1,3); (4) and (5) added give x2=7, then x1=9. For the feasible points, the checks are routine: at (0,52), 0+52≤4 and −52≤2; at (2,0), 2≤4 and −2≤5; at (3,1), −3+2≤5; at (1,3), 1−3≤2. By Theorem 18.9.2 the vertices are (0,0), (2,0), (3,1), (1,3), (0,52).

P is bounded, since 0≤x1,x2≤4 on it by rows (1) to (3), and nonempty. So by Corollary 18.8.6 the maximum of 2x1+3x2 is attained at a vertex. The values are 0,4,9,11,152, so the maximum is 11, at (1,3). By the proof of Theorem 18.9.5 (a), P=conv{(0,0),(2,0),(3,1),(1,3),(0,52)}.

Exercise (B2: Inequalities for a quadrilateral)

Use Fourier–Motzkin elimination to find a system of inequalities describing the quadrilateral Q=conv{(0,0),(2,0),(2,1),(0,2)}. Hence find the vertices of Q.

Hint: substitute away t1,t2,t4 and keep s=t3, the weight of (2,1).

Solution. x∈Q if and only if there are t1,…,t4≥0 with ∑tj=1, x1=2t2+2t3, and x2=t3+2t4. With s=t3: t2=12(x1−2s), t4=12(x2−s), and t1=1−t2−s−t4=1−12x1−12x2+12s. The conditions 2t1≥0, 2t2≥0, 2t4≥0, t3≥0 read (1)  x1+x2−s≤2,(2)  −x1+2s≤0,(3)  −x2+s≤0,(4)  −s≤0. The coefficients of s are −1,2,1,−1, so I+={2,3} and I−={1,4}. The four pairs give: (2),(1): 2⋅(1)+1⋅(2)= x1+2x2≤4,(2),(4): 2⋅(4)+1⋅(2)= −x1≤0,(3),(1): 1⋅(1)+1⋅(3)= x1≤2,(3),(4): 1⋅(4)+1⋅(3)= −x2≤0. So Q={0≤x1≤2, x2≥0, x1+2x2≤4} by Lemma 18.9.4. Its rows are (−1,0),(1,0),(0,−1),(1,2). The pair ±(1,0) is dependent; the other five pairs give the basic points (0,0), (0,2), (2,0), (2,1), and (4,0) (from x2=0, x1+2x2=4), and the last violates x1≤2. So by Theorem 18.9.2 the vertices are the four given points, and none of them was redundant.

Exercise (B3: Which of these are vertices?)

Let P={x∈R3:x≥0, x1+x2+x3≤3, x1+x2≤2}. Determine which of the following points are vertices of P. Justify your answer.

  • (a) (0,2,1)
  • (b) (1,1,1)
  • (c) (0,0,3)
  • (d) (3,0,0)
  • (e) (1,0,0)

Solution. We use Theorem 18.9.2: check that the point lies in P, list its active rows, and compute their rank. The rows are −e1,−e2,−e3, (1,1,1), and (1,1,0).

  • (a) (0,2,1)∈P: the entries are ≥0, 0+2+1=3≤3, 0+2≤2. Active: −e1, (1,1,1), (1,1,0). Their span contains (1,1,1)−(1,1,0)=e3, e1, and (1,1,0)−e1=e2, so it is R3. Rank 3: a vertex.

  • (b) (1,1,1)∈P, with active rows (1,1,1) and (1,1,0) only. Rank 2<3: not a vertex. Indeed it is the midpoint of (0,2,1) and (2,0,1), both in P.

  • (c) (0,0,3)∈P, with active rows −e1, −e2, (1,1,1), which are independent (the third has a nonzero third entry, the first two do not). Rank 3: a vertex.

  • (d) (3,0,0)∉P, since 3+0=3>2. It is a basic point, the solution of x2=0, x3=0, x1+x2+x3=3, but not a feasible one: not a vertex.

  • (e) (1,0,0)∈P, with active rows −e2 and −e3 only. Rank 2<3: not a vertex. It is the midpoint of (0,0,0) and (2,0,0).

C. Going deeper

Exercise (C1: Unbounded polyhedra)

Let P={x∈Rn:Ax≤b} be a nonempty polyhedron, and let C={(x,t)∈Rn×R:Ax−tb≤0, −t≤0}.

  • (a) Prove that x∈P if and only if (x,1)∈C.
  • (b) By Theorem 18.9.5 (b), C is generated by finitely many vectors (wj,tj), j=1,…,k. Prove that every tj≥0, and that P=conv{wj/tj:tj>0}+{∑tj=0cjwj:cj≥0}, the set of sums of a point of the polytope and a point of the cone. So every nonempty polyhedron is a polytope plus a finitely generated cone.
  • (c) Check the statement for P={x∈R2:x1≥0, 0≤x2≤1}, with the polytope conv{(0,0),(0,1)} and the cone generated by e1.

Solution.

  • (a) (x,1)∈C says Ax−b≤0 and −1≤0, which is x∈P.

  • (b) Each generator lies in C, so −tj≤0. Split the indices into J+={j:tj>0} and J0={j:tj=0}.

    (⊆) Let x∈P. By (a), (x,1)=∑jcj(wj,tj) with cj≥0. The last coordinate gives 1=∑j∈J+cjtj, so J+≠∅, and x=∑j∈J+(cjtj)wjtj+∑j∈J0cjwj, where the weights cjtj are nonnegative and add up to 1. So x lies in the right-hand side.

    (⊇) Let x=∑j∈J+sjwj/tj+∑j∈J0cjwj with sj≥0, ∑sj=1, and cj≥0. Then (x,1)=∑j∈J+sjtj(wj,tj)+∑j∈J0cj(wj,0), a nonnegative combination of generators, so (x,1)∈C and x∈P by (a).

  • (c) A point (0,u)+ce1 with 0≤u≤1 and c≥0 is (c,u), which satisfies x1≥0 and 0≤x2≤1. Conversely (x1,x2)∈P is (0,x2)+x1e1 with (0,x2)∈conv{(0,0),(0,1)} and x1≥0. So P=conv{(0,0),(0,1)}+{ce1:c≥0}.
Exercise (C2: Linear images of polyhedra)

Let M∈Mp×n(R).

  • (a) Prove that if P⊆Rn is a polyhedron, then M(P)={Mx:x∈P} is a polyhedron in Rp, and that if P is a polyhedral cone, so is M(P).
  • (b) Prove that if Q is a polytope, then M(Q) is a polytope, directly from Definition 18.9.1.
  • (c) Deduce that a linear image of a polyhedral cone is closed. Why does this not contradict the existence of a closed convex cone with a nonclosed linear image?

Solution.

  • (a) Let P={x:Ax≤b}. Then y∈M(P) if and only if there is x with (y,x) in P^={(y,x)∈Rp×Rn:y−Mx≤0, −y+Mx≤0, Ax≤b}, a polyhedron in Rp+n. So M(P) is the image of P^ under the map forgetting the last n coordinates, and n applications of Lemma 18.9.4 show that it is a polyhedron. If b=0, every right-hand side in P^ is 0, and stays 0 under elimination, so M(P) is a polyhedral cone.

  • (b) If Q=conv{v1,…,vk}, then by Theorem 18.1.3 and linearity, M(∑jtjvj)=∑jtjMvj, so M(Q)=conv{Mv1,…,Mvk}, a polytope.

  • (c) By (a), the image of a polyhedral cone is a polyhedral cone, which is closed by Proposition 18.9.1. So a closed convex cone whose linear image is not closed cannot be polyhedral; by Theorem 18.9.5 (b), it cannot be finitely generated either. This is consistent with Section 5, where closedness was proved only for finitely generated cones.

Exercise (C3: Vertices in standard form)

Let A∈Mm×n(R) have columns c1,…,cn, let b∈Rm, and let P={x∈Rn:Ax=b, x≥0}, the feasible region of a linear program in standard form.

  • (a) Prove that x∈P is a vertex of P if and only if the columns cj with xj>0 are linearly independent.
  • (b) Deduce that a vertex of P has at most rankA positive entries.
  • (c) Find the vertices of P={x∈R3:x1+x2+x3=1, x≥0}, the standard triangle.

Solution.

  • (a) Write P as a polyhedron with the rows Ax≤b, −Ax≤−b, and −ej⊤x≤0. At x∈P, every row of ±A is active, and −ej is active exactly when xj=0. Let S={j:xj>0}. By Theorem 18.9.2, x is a vertex if and only if the active rows have rank n, that is (Theorem 3.5.7), if and only if the only u with Au=0 and uj=0 for all j∉S is u=0. For such u, Au=∑j∈Sujcj. So the condition says that ∑j∈Sujcj=0 forces every uj=0, which is the linear independence of {cj:j∈S}.

  • (b) The columns cj lie in col(A), of dimension rankA, and an independent list in it has at most rankA vectors by Theorem 1.6.3 (a). By (a), a vertex has at most that many positive entries.

  • (c) Here A=(1 1 1), of rank 1. By (b) a vertex has at most one positive entry, and since the entries add up to 1, exactly one, equal to 1. Conversely ej∈P, and its one positive entry corresponds to the column (1)≠0, an independent list. So the vertices are e1,e2,e3.

Found a typo or a mistake? Report it, or read this page’s source

The text of this book is licensed under CC BY-NC-SA 4.0.