22.3  Convex Polyhedra, Geometrically

Chapter 18 built the theory of convex sets and proved its main theorems: that a compact convex set is the hull of its extreme points, that a bounded polyhedron and a polytope are the same thing, and that a feasible, bounded linear program and its dual have the same optimal value. This section proves none of that again. It reads those theorems as statements about the geometry of a solid with flat sides: what its faces are, how they fit together, and what a linear program looks like when the objective is a family of parallel hyperplanes sliding across it. Everything here is a corollary of Chapter 18 or a short argument on top of it, and every citation points back there.

Throughout, the field is R and the space is Rn with the dot product, as in Chapter 18. A polyhedron is a set P={x∈Rn:Ax≤b} (Definition 18.9.2), with A∈Mm×n(R) whose rows we write a1⊤,…,am⊤, so that Ax≤b is the list of inequalities ai⊤x≤bi. A vertex of P is an extreme point of it (Definition 18.8.1), and extP is the set of them. We use Chapters 16 and 18’s topological words — closed, bounded, compact — only inside the results we cite; nothing here develops them further.

22.3.1. Faces, cut by a supporting hyperplane

A cube has six square sides, twelve edges and eight corners, and each of them is the part of the cube touched by a plane that has the whole cube on one side. That is the picture to formalize. The tool is Chapter 18’s supporting hyperplane (Theorem 18.3.6): a hyperplane through a point of a convex set with the set in one of its closed half-spaces.

A face of a polyhedron is the part of it touched by a hyperplane that does not cut into it.

Definition 22.3.1 (Face of a Polyhedron)

Let P⊆Rn be a polyhedron. A face of P is a set of the form F={x∈P:c⊤x=β} for some c∈Rn and β∈R such that c⊤x≤β for every x∈P. A face other than P itself is called proper.

Clause by clause. The pair (c,β) must be a valid inequality for P: the whole polyhedron lies in the closed half-space {c⊤x≤β}. The face is then what the boundary hyperplane {c⊤x=β} actually touches. Note that c is allowed to be 0.

Two faces come free. Taking c=0 and β=0 makes the inequality 0≤0, valid everywhere, and F=P: the whole polyhedron is a face of itself. Taking c=0 and β=1 makes the inequality 0≤1, again valid, and F=∅: the empty set is a face. These two are the degenerate cases, and they are kept because the theorems below are cleaner with them than without.

Chapter 18 §08 already has a notion of face for an arbitrary convex set, Definition 18.8.2: a convex subset F⊆C that swallows every segment of C passing through it at an inner point. The two agree here in one direction at once.

Remark. Every face in the sense of Definition 22.3.1 is a face in the sense of Definition 18.8.2. That is exactly Proposition 18.8.4 (a), applied with w=c and α=β, since on Rn the inner product ⟨c,x⟩ is c⊤x. So everything Chapter 18 proves about faces applies to ours; in particular Lemma 18.8.3 gives extF=F∩extP. The converse — that every face of a polyhedron in Chapter 18’s sense is cut out by a supporting hyperplane — is also true, and Exercise (C2: The two notions of face agree for a polyhedron) proves it. It uses flatness: the same exercise ends with a round convex set having a one-point face in the sense of Definition 18.8.2 that no supporting hyperplane isolates, so the converse fails for general convex sets.

Examples, in R2, with P the triangle {x1≥0, x2≥0, x1+x2≤3} of Chapter 18 §09.

  1. c=(1,1), β=3. The inequality is valid by the third row, and the face is the slanted edge from (3,0) to (0,3).
  2. c=(1,0), β=3. Valid, since x1≤x1+x2≤3 on P. The face is the single point (3,0): the hyperplane x1=3 touches the triangle at one corner.
  3. c=(−1,0), β=0. Valid by the first row, and the face is the vertical edge {0}×[0,3].
  4. c=(1,1), β=4. Valid, but never attained: the face is ∅.

A non-example by minimal change. In example 1 replace β=3 by β=2. The set {x∈P:x1+x2=2} is still a segment inside P, still convex, and still a slice by a hyperplane. What fails is the one clause the definition insists on: x1+x2≤2 is not valid for P, since (3,0)∈P violates it. The hyperplane cuts through the triangle instead of resting against it, and the slice is not a face. It also fails Definition 18.8.2: the segment from (0,0) to (3,0) passes through (2,0) at an inner point but is not contained in the slice.

The reason faces are useful is that there are only finitely many of them, and each is again a polyhedron described by the same rows, some of them turned into equations.

Proposition 22.3.1 (Faces Are Polyhedra, and There Are Finitely Many)

Let P={x∈Rn:Ax≤b} with m rows. For J⊆{1,…,m} put PJ={x∈P:ai⊤x=bi for every i∈J}. Then:

  • (a) every PJ is a face of P, and it is a polyhedron;
  • (b) every non-empty face of P equals PJ for some J;
  • (c) consequently P has at most 2m non-empty faces, and every face of P is a polyhedron.

Idea. For (a), add up the rows indexed by J: the sum ∑i∈Jai⊤x is at most ∑i∈Jbi on P, and a sum of numbers each at most its bound hits the total bound only if every one of them does. So one valid inequality encodes all of J at once.

For (b), let F be a non-empty face and let J collect the rows that are tight at every point of F. Certainly F⊆PJ. For the other inclusion we need a point x∗ of F at which every row outside J is slack; averaging finitely many points of F, one per slack row, produces it. Then, given y∈PJ with c⊤y<β, step from x∗ away from y. The rows in J are equations satisfied by both points, so they survive the step exactly; the rows outside J have room at x∗, so they survive a short step. But the step raises c⊤x above β, which no point of P may do.

Proof.

  • (a) Put c=∑i∈Jai and β=∑i∈Jbi, with the empty sums 0 and 0. For x∈P, c⊤x=∑i∈Jai⊤x≤∑i∈Jbi=β, so the inequality is valid. If x∈P and c⊤x=β, then ∑i∈J(bi−ai⊤x)=0 is a sum of non-negative numbers, so each is zero and x∈PJ; conversely every x∈PJ has c⊤x=β. Hence PJ={x∈P:c⊤x=β} is a face. It is a polyhedron because each equation ai⊤x=bi is the pair of inequalities ai⊤x≤bi and −ai⊤x≤−bi, so PJ is cut out by m+|J| inequalities.

  • (b) Let F={x∈P:c⊤x=β} be non-empty, with c⊤x≤β on P. Put J={i:ai⊤x=bi for every x∈F}. Then F⊆PJ by the definition of J, and it remains to prove PJ⊆F.

    First note that F is convex: it is the intersection of the convex set P (Proposition 18.9.1) with the solution set of a linear equation, which is convex as the preimage of a point under x↦c⊤x (Proposition 18.1.1 (b)); an intersection of convex sets is convex by Proposition 18.1.1 (a).

    Step 1: a point of F with every row outside J slack. For each i∉J choose, by the definition of J, a point xi∈F with ai⊤xi<bi. If J={1,…,m} let x∗ be any point of F. Otherwise let k≥1 be the number of indices outside J and let x∗=1k∑i∉Jxi, which lies in F by convexity. For each i∉J, every term of ai⊤x∗=1k∑j∉Jai⊤xj is at most bi and the term j=i is strictly less, so ai⊤x∗<bi.

    Step 2: the step away from y. Let y∈PJ and suppose, for a contradiction, that c⊤y<β. For t>0 put zt=x∗+t(x∗−y). For i∈J we have ai⊤x∗=bi, because x∗∈F⊆PJ, and ai⊤y=bi, because y∈PJ; hence ai⊤zt=bi+t(bi−bi)=bi≤bi. For i∉J put δ=mini∉J(bi−ai⊤x∗)>0 and M=maxi∉J|ai⊤x∗−ai⊤y|; both are minima and maxima of finitely many numbers. Choose t>0 with tM<δ, which is possible (any t will do if M=0). Then for i∉J, ai⊤zt=ai⊤x∗+t(ai⊤x∗−ai⊤y)≤ai⊤x∗+tM<ai⊤x∗+δ≤bi. So zt∈P. But c⊤zt=c⊤x∗+t(c⊤x∗−c⊤y)=β+t(β−c⊤y)>β, since t>0 and β−c⊤y>0. This contradicts the validity of c⊤x≤β on P. Hence c⊤y=β and y∈F, so PJ⊆F and F=PJ.

  • (c) There are 2m subsets J, so by (b) at most that many non-empty faces. Each of them is a polyhedron by (a), and the empty face is the polyhedron {x:0≤−1}. This proves the proposition.

The map J↦PJ is onto the non-empty faces but is very far from injective: adding to J a row that is already tight everywhere on PJ changes nothing, and adding two incompatible rows gives ∅.

Warning. A row of the system need not be a side of the solid. In P={x∈R2:x1≤1, x2≤1, x1+x2≤3} the third row is implied by the first two, since x1+x2≤2 on P. It defines no face except the empty one: P{3}={x∈P:x1+x2=3}=∅. So a polyhedron with m rows can have far fewer than m sides, and counting rows is not counting geometry. Conversely, Definition 22.3.1 never mentions the rows at all, which is why Proposition 22.3.1 has to prove that the faces can be read off them.

22.3.2. Vertices, edges, facets

A non-empty face F is a non-empty convex set, so it has a dimension: dim⁡F=dim⁡affF, as in Chapter 18 §01, and affF is the flat p+U of Proposition 18.1.4 — a flat in the sense of Definition 22.2.1. The graded vocabulary follows.

Definition 22.3.2 (Edge, Facet)

Let P⊆Rn be a non-empty polyhedron. A face of P of dimension 1 is an edge; a face of dimension dim⁡P−1 is a facet. A face of dimension 0 is a single point, and the next proposition shows that these are exactly the vertices.

Proposition 22.3.2 (Three Descriptions of a Corner)

Let P={x∈Rn:Ax≤b} and v∈P. The following are equivalent.

  • (a) v is a vertex of P, that is, an extreme point.
  • (b) {v} is a face of P.
  • (c) Among the rows active at v there are n linearly independent ones, that is, v is a basic feasible point.

Idea.

  • (a) and (c) are Theorem 18.9.2, already proved. A one-point face is an extreme point by Proposition 18.8.4 (b). For the remaining implication, take J to be the active set: if the active rows have rank n, the system AJx=bJ has v as its only solution, so PJ={v}, and Proposition 22.3.1 makes that a face.

Proof.

  • (a) ⇔ (c) is Theorem 18.9.2.

  • (b) ⇒ (a). Write {v}={x∈P:c⊤x=β} with c⊤x≤β on P. By Proposition 18.8.4 (b), applied with w=c and α=β, v∈extP.

  • (c) ⇒ (b). Let I=I(v) be the active set and AI the matrix of active rows, of rank n by hypothesis. Its null space is {0} by Theorem 3.5.7, so AIx=bI has at most one solution; since v is one, it is the only one. Hence PI={x∈P:AIx=bI}={v}, and PI is a face by Proposition 22.3.1 (a). This proves the equivalence.

So a corner of a polyhedron can be recognized three ways: by convexity (it is not an average), by geometry (a hyperplane touches P there and nowhere else), or by algebra (enough constraints are tight). The three are used interchangeably from here on.

Bounded polyhedra are the ones with enough corners to rebuild them. This is the bounded half of the Minkowski–Weyl theorem, and it is the sentence this whole section is arranged around.

Theorem 22.3.3 (A Bounded Polyhedron Is the Hull of Its Vertices)

Let P⊆Rn be a bounded polyhedron. Then extP is finite and P=conv(extP). Conversely, every polytope is a bounded polyhedron.

Proof. If P=∅, both sides are ∅ and extP=∅. Otherwise P is closed and convex by Proposition 18.9.1, and bounded by hypothesis, 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. The converse is Theorem 18.9.5 (a).

The same theorem applied to a face is what makes an edge a segment between two corners — the statement that lets one speak of walking along the edges of a solid.

Proposition 22.3.4 (An Edge Joins Two Vertices)

Let P⊆Rn be a bounded polyhedron and F an edge of P. Then F=[v,w] for two distinct vertices v,w of P.

Idea. An edge is itself a bounded polyhedron, so it is the hull of its own vertices; those are vertices of P because a face passes extremeness upwards. Being 1-dimensional, it sits on a line, and the hull of finitely many points of a line is the segment between the outermost two.

Proof. By Proposition 22.3.1, F is a polyhedron, and it is bounded because F⊆P. By Theorem 22.3.3, F=conv(extF) with extF finite, and F≠∅ since it has a dimension. By the remark after Definition 22.3.1, F is a face of P in the sense of Definition 18.8.2, so Lemma 18.8.3 gives extF=F∩extP: every vertex of F is a vertex of P.

Fix p∈F. By Proposition 18.1.4, affF=p+U with U=span{x−p:x∈F}, and dim⁡U=dim⁡F=1, so U=span(u) for some u≠0. Every point of F lies in affF, hence is p+tu for exactly one t∈R, the map t↦p+tu being injective because u≠0. Let t1≤⋯≤tk be the parameters of the points of extF, a non-empty finite list. A convex combination ∑jsj(p+tju) equals p+(∑jsjtj)u, and ∑jsjtj lies in [t1,tk]; conversely each t∈[t1,tk] is (1−λ)t1+λtk for some λ∈[0,1]. Hence, writing [v,w] for the segment of Chapter 18 §01, F={p+tu:t1≤t≤tk}=[v,w],v=p+t1u,  w=p+tku. If t1=tk then F is a single point and dim⁡F=0, contrary to hypothesis; so v≠w, and both are vertices of P. This proves the proposition.

22.3.3. Two face lattices, computed

Faces are ordered by inclusion, and the resulting picture — which face lies in which — is the face lattice of the polyhedron. It is the combinatorial skeleton of the solid. Here it is in full for the two standard examples.

Example (The faces of a cube)

Let B∞=[−1,1]n, described by the 2n rows ei⊤x≤1 and −ei⊤x≤1. Find all faces of B∞ and their dimensions.

Solution. By Proposition 22.3.1 (b) every non-empty face is some PJ. A set J of rows says, for each coordinate i, either nothing, or xi=1, or xi=−1, or both; the last makes PJ=∅. So the non-empty faces are indexed by sign vectors s∈{−1,0,1}n: Fs={x∈B∞:xi=si for every i with si≠0}. Each Fs is non-empty: the point with xi=si where si≠0 and xi=0 elsewhere lies in it. Distinct sign vectors give distinct faces, because si=±1 exactly when the coordinate xi is constantly ±1 on Fs. So B∞ has exactly 3n non-empty faces, one for each sign vector, together with ∅.

Let Z={i:si=0} and z=|Z|. Then affFs is the flat {x:xi=si for i∉Z}, a coset of span{ei:i∈Z}: it contains Fs, and conversely Fs contains the point p with pi=si for i∉Z and pi=0 for i∈Z, together with p+ei for every i∈Z, whose differences from p span span{ei:i∈Z}. By Proposition 18.1.4, dim⁡Fs=z.

So the faces of dimension k are the sign vectors with exactly k zeros, and there are (nk)2n−k of them. For n=3: 8 vertices (k=0), 12 edges (k=1), 6 facets (k=2) and the cube itself, and 8+12+6+1=27=33. Every vertex is a sign vector ±1 in each coordinate, matching what Example (The cube and the cross-polytope) found by the rank test.

Here is the resulting lattice for the square B∞⊆R2, with ∅ at the bottom and the square at the top, and a line drawn when the lower face is contained in the upper one.

Diagram. Labels: (-1,-1), (1,-1), (-1,1), (1,1), x_2 = -1, x_1 = -1, x_1 = 1, x_2 = 1, B_infty, The face lattice of the square: one empty face, four vertices,\\ four edges, and the square itself. Nine non-empty faces, 3^2
Example (The faces of a simplex)

Let Δn={t∈Rn:ti≥0, ∑iti=1} be the standard simplex (Definition 18.1.2), described by the n rows −ti≤0 together with 1⊤t≤1 and −1⊤t≤−1. Find all faces of Δn.

Solution. The last two rows are tight at every point of Δn, so including them in J changes nothing. A face is therefore PJ for J determined by a set S⊆{1,…,n} of coordinates forced to zero: FS={t∈Δn:ti=0 for every i∈S}. Write T={1,…,n}∖S. If T=∅ the conditions t=0 and ∑iti=1 clash, so FS=∅. If T≠∅, then FS consists of the vectors t≥0 supported in T with ∑i∈Tti=1, which by Theorem 18.1.3 is exactly conv{ei:i∈T}, a copy of Δ|T|. Its dimension is |T|−1, by the computation of dim⁡Δk after Proposition 18.1.4. Distinct non-empty T give distinct faces, since ei∈FS exactly for i∈T.

So the non-empty faces of Δn are indexed by the non-empty subsets T⊆{1,…,n}, and there are 2n−1 of them: n vertices, (n2) edges, and so on up to Δn itself. For n=4, the tetrahedron Δ4⊆R4 of dimension 3 has 4+6+4+1=15=24−1 non-empty faces.

The contrast is the point. The cube’s lattice is the set of sign vectors; that of the simplex is the set of non-empty subsets. A cube in dimension n has 2n vertices and 2n facets; a simplex has n vertices and n facets. The cube’s corners grow exponentially with n, those of the simplex only linearly.

Quick check. How many faces does a triangle in R2 have, counting the empty face and the triangle itself?

Solution. Eight: ∅, three vertices, three edges, and the triangle. Count directly from Proposition 22.3.1 (b), writing the triangle as the polyhedron cut out by its three sides: P∅ is the triangle, each single row gives one side, each pair of rows gives the corner where those two sides meet, and all three rows together give ∅. That is 1+3+3 non-empty faces, plus ∅. The count matches Example (The faces of a simplex) with n=3, whose 23−1=7 non-empty faces are indexed by the non-empty subsets of the three corners.

22.3.4. A linear program, seen

Fix c∈Rn with c≠0. The level sets {x:c⊤x=γ} of the objective are parallel affine hyperplanes, one for each γ, and they sweep across Rn as γ grows, moving in the direction c. Maximizing c⊤x over a polyhedron P means pushing the sweeping hyperplane as far as it will go while still touching P. Two things can happen: it escapes to infinity, and the program is unbounded; or there is a last hyperplane that touches, and what it touches is a face.

Proposition 22.3.5 (The Optimal Set Is a Face)

Let P⊆Rn be a polyhedron, c∈Rn, and suppose c⊤x attains a maximum γ⋆ on P. Then the set F⋆ of maximizers is a non-empty face of P. If P is bounded, F⋆ contains a vertex of P.

Proof. By the definition of a maximum, c⊤x≤γ⋆ for every x∈P, and F⋆={x∈P:c⊤x=γ⋆} is non-empty. That is Definition 22.3.1 verbatim, so F⋆ is a face.

Suppose P is bounded. Then F⋆⊆P is a bounded polyhedron by Proposition 22.3.1, and non-empty, so extF⋆≠∅ by Theorem 22.3.3 (a non-empty set is not the hull of the empty set). By the remark after Definition 22.3.1 and Lemma 18.8.3, extF⋆=F⋆∩extP, so any point of extF⋆ is a vertex of P lying in F⋆.

The last sentence is Corollary 18.8.6 read geometrically, and it says a little more than that corollary: not only is some maximizer a vertex, but the whole set of maximizers is a face — a single vertex when the optimum is unique, and otherwise an edge or a larger face, up to all of P when c=0. A linear program with a non-unique optimum has a positive-dimensional optimal face, and every point of it is optimal.

An algorithm now suggests itself: start at a vertex, and as long as some edge leaving it increases the objective, walk along that edge to the vertex at its other end (Proposition 22.3.4 guarantees there is one, when P is bounded). That is the idea of the simplex method, sketched in Chapter 18 §09 after Corollary 18.9.3. No algorithm is developed here or anywhere in this book: Chapter 24 is where this book’s algorithms live, and it treats the numerical linear algebra of elimination, least squares and eigenvalues, not linear programming. What this section supplies is the geometry an algorithm would exploit.

Example (A linear program and its picture)

Maximize 3x1+2x2 over P={x∈R2:x1≥0, x2≥0, x1+x2≤5, 2x1+x2≤8}. Find the vertices, the optimum, the optimal face, and the dual optimal solution.

Solution. Number the rows (1) −x1≤0, (2) −x2≤0, (3) x1+x2≤5, (4) 2x1+x2≤8. No two rows are multiples of each other, so each of the (42)=6 pairs gives one basic point, which we test against the other two rows: pairbasic pointverdict(1),(2)(0,0)feasible(1),(3)(0,5)(4):5≤8: feasible(1),(4)(0,8)(3):8≤5 fails(2),(3)(5,0)(4):10≤8 fails(2),(4)(4,0)(3):4≤5: feasible(3),(4)(3,2)feasible For the last pair, subtracting (3) from (4) gives x1=3, hence x2=2. By Proposition 22.3.2 the vertices are (0,0), (0,5), (4,0) and (3,2). P is bounded, since 0≤x1,x2≤5 on it, so by Theorem 22.3.3 it is the quadrilateral conv{(0,0),(4,0),(3,2),(0,5)}.

The objective takes the value 0 at (0,0), 10 at (0,5), 12 at (4,0) and 13 at (3,2), so by Proposition 22.3.5 the maximum is 13, at x⋆=(3,2), and the optimal face is {x∈P:3x1+2x2=13}. Since only one vertex achieves 13 and the face is the hull of its vertices, the optimal face is the single point {(3,2)}: the optimum is unique.

The rows active at x⋆ are (3) and (4), with outer normals a3=(1,1) and a4=(2,1). And c=(3,2)=1⋅(1,1)+1⋅(2,1)=1⋅a3+1⋅a4, so y=(1,1) is a candidate for the dual. In the notation of Definition 18.6.2, with A the rows (1,1) and (2,1) and b=(5,8), the dual asks to minimize 5y1+8y2 subject to y1+2y2≥3, y1+y2≥2, y≥0. At y=(1,1) both constraints are equalities and the value is 5+8=13, which matches. By Corollary 18.6.2 (a), x⋆ and y are both optimal, and no further checking is needed.

Diagram. Labels: x_1, x_2, mathbf a_4, mathbf c, mathbf a_3, x_1 + x_2 = 5, 2x_1 + x_2 = 8, 3x_1 + 2x_2 = 13, mathbf x^star, The feasible quadrilateral, the level line of the objective through\\ the optimum, and the two active outer normals whose non-negative\\ combination is mathbf c = mathbf a_3 + mathbf a_4

22.3.5. What the dual variables are, geometrically

The example ended with an identity worth isolating: the objective vector was a non-negative combination of the outer normals of the constraints active at the optimum, and the coefficients were the dual optimal solution. That is the geometric content of duality, and Chapter 18 has already done all the work.

Recall Chapter 18 §06’s pair of programs, with A∈Mm×n(R), b∈Rm, c∈Rn: (P)maximize c⊤x  subject to Ax≤b, x≥0;(D)minimize b⊤y  subject to A⊤y≥c, y≥0. The feasible region of (P) is the polyhedron with the m rows ai⊤x≤bi and the n rows (−ej)⊤x≤0. The outer normal of a row is the vector on its left-hand side: ai for the i-th constraint and −ej for the sign constraint on xj.

Proposition 22.3.6 (Dual Variables Are the Weights of the Active Normals)

Let x⋆ be an optimal solution of (P). Then there are y∈Rm and s∈Rn with y≥0 and s≥0 such that c=∑i=1myiai+∑j=1nsj(−ej), where yi=0 whenever ai⊤x⋆<bi, and sj=0 whenever xj⋆>0. That is, c is a non-negative combination of the outer normals of the constraints active at x⋆, and the weights are an optimal solution of (D).

Idea. Strong duality hands over an optimal y for (D); the slack s=A⊤y−c is non-negative because y is dual feasible, and rearranging is the displayed identity. Complementary slackness is exactly the statement that the weights vanish on the inactive constraints.

Proof. Since x⋆ is feasible, (P) is feasible, and c⊤x≤c⊤x⋆ for every feasible x, so (P) is not unbounded. By Theorem 18.6.3 (b), (D) is therefore feasible, and by Theorem 18.6.3 (a) both programs have optimal solutions with equal optimal values; let y be an optimal solution of (D). Then y≥0 and A⊤y≥c, so s:=A⊤y−c≥0. Reading the j-th coordinate of A⊤y as ∑iyiaij, we get A⊤y=∑iyiai, and hence c=A⊤y−s=∑i=1myiai+∑j=1nsj(−ej). Both x⋆ and y are optimal, so Theorem 18.6.5 applies: its condition (i) says yi>0 forces (Ax⋆)i=bi, which is the contrapositive of “ai⊤x⋆<bi forces yi=0”; its condition (ii) says xj⋆>0 forces (A⊤y)j=cj, that is sj=0. This proves the proposition.

So a dual optimal solution is a certificate written in normals. The hyperplane {x:c⊤x=b⊤y} supports the feasible region at x⋆, by Theorem 18.6.1 and equality of the optimal values, and Proposition 22.3.6 says how its normal c is assembled from the normals of the facets meeting at x⋆. Increasing bi loosens the i-th constraint, and yi bounds the gain: the dual feasible region {y≥0:A⊤y≥c} does not mention b at all, so y stays dual feasible when bi is raised to bi+ε, and Theorem 18.6.1 then caps the objective of every point feasible for the loosened program at b⊤y+εyi, the old optimal value plus εyi. That yi is also the exact rate of gain, its shadow price in the economists’ phrase, says more, and this book does not prove it; nothing here uses it, and it can fail. Take n=1, m=2, A=(11), b=(1,1) and c=1, so that (P) maximizes x subject to x≤1 written twice and x≥0. Its optimum is 1, and y=(1,0) is dual feasible with b⊤y=1, hence dual optimal by Corollary 18.6.2 (a); but raising b1 leaves the second copy binding and the optimum at 1, a gain of 0 against y1=1. The same pair shows which half of complementary slackness is available: Theorem 18.6.5 (i) says yi>0 forces row i tight, so a constraint slack at the optimum has yi=0, and that is what Proposition 22.3.6 records. The converse is the trap — here y2=0 while row 2 is tight.

22.3.6. Polyhedra without corners

Boundedness is doing real work in Theorem 22.3.3, and the failures are worth seeing.

Example (A slab, and a quadrant)
  • (a) Find the faces of the slab S={x∈R3:0≤x3≤1}, and its vertices.
  • (b) Show that max{x1+x2:x∈Q} does not exist for the quadrant Q={x∈R2:x1≥0, x2≥0}, although Q has a vertex.

Solution.

  • (a) S has the two rows −x3≤0 and x3≤1. By Proposition 22.3.1 the non-empty faces are among P∅=S, P{1}={x3=0}, P{2}={x3=1} and P{1,2}=∅. So there are three non-empty faces: S and two parallel planes, of dimensions 3, 2, 2. There is no face of dimension 0 or 1. In particular S has no vertices: at any x∈S the active rows are among ±e3, of rank at most 1<3, so Theorem 18.9.2 denies a vertex. Hence conv(extS)=conv∅=∅≠S, and Theorem 18.8.5 indeed needs compactness. Note also that max{−x3:x∈S}=0 is attained, on the whole face {x3=0}, which contains no vertex: the last sentence of Proposition 22.3.5 needs boundedness too.

  • (b) The point (0,0) is a vertex of Q: the two active rows −e1,−e2 are independent, so Theorem 18.9.2 applies. It is the only one, since at any other point of Q at most one row is active. But (t,t)∈Q for every t≥0 and x1+x2=2t there, so the objective is unbounded above and no maximum exists. A polyhedron can have corners and still have no optimum.

Warning. “Vertex” and “corner of the picture” can both be empty words for an unbounded polyhedron. The slab above is a perfectly ordinary convex solid, closed, with a genuine boundary, and it has no vertices, no edges, and no bounded face. Nothing in this section rebuilds it from finitely many points, and nothing should: by Theorem 18.9.5 (a) a polyhedron is a polytope exactly when it is bounded. The general finite description of an unbounded polyhedron needs directions as well as points — every non-empty polyhedron is a polytope plus a finitely generated cone — which Chapter 18 derives from Theorem 18.9.5 (b) in Exercise (C1: Unbounded polyhedra), and which is not pursued here.

22.3.7. Exercises

A. Check your understanding

Exercise (A1)
  • (a) State Definition 22.3.1, and say which pair (c,β) exhibits P itself as a face and which exhibits ∅.
  • (b) True or false: a polyhedron given by m inequalities in Rn has exactly 2m non-empty faces. Justify your answer.
  • (c) Give the three equivalent descriptions of a vertex from Proposition 22.3.2.
  • (d) True or false: if a linear program over a bounded non-empty polyhedron has two distinct optimal solutions, it has infinitely many. Justify your answer.
  • (e) How many faces of dimension 2 does the cube [−1,1]4 have?

Solution.

  • (a) A face of a polyhedron P is a set {x∈P:c⊤x=β} for some c,β with c⊤x≤β valid on all of P. The pair (0,0) gives F=P; the pair (0,1) gives F=∅.

  • (b) False; 2m is only an upper bound (Proposition 22.3.1 (c)). The map J↦PJ need not be injective, and some PJ may be empty. The warning after that proposition has m=3 rows in R2 and only four non-empty faces: the polyhedron, two edges and one vertex.

  • (c) v∈P is a vertex when: it is an extreme point of P; or {v} is a face of P; or among the rows active at v there are n linearly independent ones.

  • (d) True. The optimal set is a face (Proposition 22.3.5), hence convex, so it contains the whole segment joining the two optimal points, and a segment with distinct ends has infinitely many points.

  • (e) By Example (The faces of a cube) with n=4, k=2: (42)24−2=6⋅4=24.

B. Practice

Exercise (B1: Vertices and faces of a region)

Let P={x∈R2:x1≥0, x2≥0, x1+2x2≤8, 2x1+x2≤10}. Find all vertices of P, list all of its faces, and maximize x1+3x2 over P.

Solution. Number the rows (1) −x1≤0, (2) −x2≤0, (3) x1+2x2≤8, (4) 2x1+x2≤10. No two are multiples, so each of the six pairs gives a basic point: pairpointverdict(1),(2)(0,0)feasible(1),(3)(0,4)(4):4≤10: feasible(1),(4)(0,10)(3):20≤8 fails(2),(3)(8,0)(4):16≤10 fails(2),(4)(5,0)(3):5≤8: feasible(3),(4)(4,2)feasible For the last pair, twice (3) minus (4) gives 3x2=6, so x2=2 and x1=8−4=4. By Proposition 22.3.2 the vertices are (0,0), (0,4), (5,0) and (4,2), so P is a quadrilateral, not a pentagon; two of the six basic points are infeasible. P is bounded (0≤x1≤5, 0≤x2≤4 on it), so P=conv{(0,0),(5,0),(4,2),(0,4)} by Theorem 22.3.3.

By Proposition 22.3.1 (b) every non-empty face is some PJ. The four singletons give the four edges, computed directly: P{1}={x1=0, 0≤x2≤4}; P{2}={x2=0, 0≤x1≤5}; P{3}={x1+2x2=8}∩P, where x1=8−2x2≥0 gives x2≤4 and 2x1+x2=16−3x2≤10 gives x2≥2, a segment from (4,2) to (0,4); and P{4}={2x1+x2=10}∩P, which in the same way is the segment from (4,2) to (5,0). The six pairs give P{1,2}={(0,0)}, P{1,3}={(0,4)}, P{2,4}={(5,0)}, P{3,4}={(4,2)}, and P{1,4}=P{2,3}=∅, the two infeasible basic points; every J with three or more rows gives ∅, since no point of P has three rows active. So P has ten faces in all: ∅, four vertices, four edges and P itself.

The objective x1+3x2 takes the values 0, 5, 10, 12 at (0,0), (5,0), (4,2), (0,4). By Proposition 22.3.5 the maximum is 12, attained at (0,4) alone.

Exercise (B2: Reading the dual off the normals)

For the program of Exercise (B1: Vertices and faces of a region) with objective x1+3x2, use Proposition 22.3.6 to write c=(1,3) as a non-negative combination of the outer normals of the constraints active at the optimum, and check the resulting dual solution against Corollary 18.6.2.

Solution. The optimum is x⋆=(0,4). The active rows there are (1), with outer normal −e1=(−1,0), and (3), with outer normal a3=(1,2). In the notation of Definition 18.6.2 the rows of A are (3) and (4) in that order, so the weight on a3 is y1. Writing c=y1a3+s1(−e1) with a3=(1,2): (1,3)=y1(1,2)+s1(−1,0) gives 2y1=3, so y1=32, and 1=32−s1, so s1=12. Both are non-negative, as Proposition 22.3.6 requires. Row (4) is inactive at x⋆, so its weight is y2=0; and x2⋆=4>0, so the slack on the second sign constraint is s2=0.

So A has rows (1,2) and (2,1), with b=(8,10) and c=(1,3). The dual solution read off is y=(32,0), which satisfies y≥0 and A⊤y=32(1,2)=(32,3)≥(1,3)=c, so it is dual feasible, with value b⊤y=8⋅32=12. Since the primal value at (0,4) is also 12, Corollary 18.6.2 (a) confirms that both are optimal.

Exercise (B3: Faces of the cross-polytope)

Let B1={x∈Rn:s⊤x≤1 for every sign vector s∈{−1,1}n}, the cross-polytope of Example (The cube and the cross-polytope). Determine the face PJ for J a single sign vector s, and its dimension. How many facets does B1 have?

Solution. For a single sign vector s, P{s}={x∈B1:s⊤x=1}. Now s⊤x=∑isixi≤∑i|xi|=‖x‖1, term by term, so equality holds exactly when sixi=|xi| for every i; and ‖x‖1=maxss⊤x≤1 on B1, as Example (The cube and the cross-polytope) records. So s⊤x=1 forces ‖x‖1=1 and sixi=|xi|≥0 for every i; conversely those conditions give s⊤x=‖x‖1=1. Writing x=∑ixiei with xi=si|xi|, we get P{s}={∑iti(siei):ti≥0, ∑iti=1}=conv{s1e1,…,snen}, using Theorem 18.1.3. This is a copy of Δn, of dimension n−1 by the computation after Proposition 18.1.4. Since dim⁡B1=n — it contains 0 and every ±ei, and the differences ei−0 span Rn, so Proposition 18.1.4 gives affB1=Rn — each P{s} is a facet. Distinct s give distinct facets, since s is recovered from P{s} by the signs of the vertices siei.

There are no others. Every non-empty face is PJ for a set J of sign vectors, by Proposition 22.3.1 (b), and if s≠s′ both lie in J then PJ⊆P{s}∩P{s′}. A point of that intersection has xi=si|xi|=si′|xi|, so xi=0 whenever si≠si′; hence the intersection is conv{siei:si=si′}, of dimension at most n−2, since at least one index is missing. So B1 has exactly 2n facets: in Rn it has 2n vertices and 2n facets, exactly the reverse of the cube.

C. Going deeper

Exercise (C1: A face of a face)

Let P be a polyhedron and F a face of P.

  • (a) Prove that every face of F is a face of P.
  • (b) Deduce that the faces of P contained in a fixed face F are exactly the faces of F.

Hint: for (a), use Proposition 22.3.1 to write both F and the face of F in the form PJ.

Solution.

  • (a) We may assume the face G of F is non-empty, since ∅ is a face of P. Fix a system Ax≤b with P={x:Ax≤b} and rows ai⊤x≤bi, i=1,…,m. By Proposition 22.3.1 (b), F=PJ for some J. By part (a) of the same proposition, F is cut out by the m original rows together with the rows −ai⊤x≤−bi for i∈J. By (b) applied to F with this system, G=FK for some set K of those rows; since the rows −ai⊤x≤−bi with i∈J are tight everywhere on F, including them in K changes nothing, so we may take K⊆{1,…,m}. Then G={x∈F:ai⊤x=bi for i∈K}={x∈P:ai⊤x=bi for i∈J∪K}=PJ∪K, which is a face of P by Proposition 22.3.1 (a).

  • (b) By (a), every face of F is a face of P, and it is contained in F. Conversely let G be a face of P with G⊆F, say G={x∈P:c⊤x=β} with c⊤x≤β on P. Then c⊤x≤β holds in particular on F⊆P, and {x∈F:c⊤x=β}={x∈P:c⊤x=β}∩F=G∩F=G, so G is a face of F.

Exercise (C2: The two notions of face agree for a polyhedron)

Let P={x∈Rn:Ax≤b} and let F⊆P be a non-empty face in the sense of Definition 18.8.2: F is convex, and whenever ty+(1−t)z∈F with y,z∈P and 0<t<1, both y and z lie in F.

  • (a) Let J={i:ai⊤x=bi for every x∈F}. Prove that F=PJ.
  • (b) Deduce that F is a face in the sense of Definition 22.3.1, so the two notions agree for polyhedra.

Hint: for (a), Step 1 of the proof of Proposition 22.3.1 produces a point of F at which every row outside J is slack; use it as the midpoint of a short segment.

Solution.

  • (a) F⊆PJ by the definition of J. For the reverse inclusion, note first that F is convex, so Step 1 of the proof of Proposition 22.3.1 applies verbatim and yields x∗∈F with ai⊤x∗<bi for every i∉J.

    Let y∈PJ. If y=x∗ we are done, so assume y≠x∗ and put zt=x∗+t(x∗−y) for t>0. Exactly as in Step 2 of that proof, ai⊤zt=bi for i∈J and, for small enough t>0, ai⊤zt<bi for i∉J; so zt∈P. Fix such a t. Then x∗=t1+ty+11+tzt, a combination with positive coefficients adding to 1: indeed the right side is ty+x∗+tx∗−ty1+t=x∗. Both y and zt lie in P and x∗∈F, so the face property of Definition 18.8.2 forces y∈F. Hence PJ⊆F and F=PJ.

  • (b) By Proposition 22.3.1 (a), PJ is a face in the sense of Definition 22.3.1. Together with the remark after Definition 22.3.1, which gives the other direction for every face, the two notions coincide on polyhedra.

They do not coincide for general convex sets, and one round set shows it. Let D={x∈R2:‖x‖≤1}, let q=(2,0), let C=conv(D∪{q}), and put p=(12,32), so that ‖p‖=1 and ⟨p,q⟩=1. Since D is convex, Theorem 18.1.3 writes every point of C as (1−s)d+sq with d∈D and s∈[0,1], whence ⟨p,(1−s)d+sq⟩=(1−s)⟨p,d⟩+s≤(1−s)‖d‖+s≤1, the first inequality by Theorem 11.1.5. Equality with s<1 forces ⟨p,d⟩=‖d‖=1, hence (p,d) dependent and d=p; so {x∈C:⟨p,x⟩=1}=[p,q]. Now {p} is a face of C in the sense of Definition 18.8.2: if p=ty+(1−t)z with y,z∈C and 0<t<1, then 1=t⟨p,y⟩+(1−t)⟨p,z⟩, and both inner products are at most 1, so both equal 1 and y=p+a(q−p), z=p+b(q−p) with a,b∈[0,1]; then ta+(1−t)b=0 forces a=b=0. But no supporting hyperplane isolates p. If ⟨c,x⟩≤β on C with ⟨c,p⟩=β, then c≠0, since c=0 gives the face C or ∅; testing the inequality at the point c/‖c‖ of D gives ‖c‖≤β=⟨c,p⟩≤‖c‖, so equality holds in Theorem 11.1.5 and c=‖c‖p, β=‖c‖. Then ⟨c,q⟩=‖c‖⟨p,q⟩=β, so q lies in the face too, and the face is not {p}.

Exercise (C3: The optimal face has no better vertex outside it)

Let P⊆Rn be a non-empty bounded polyhedron, c∈Rn, and let F⋆ be the optimal face of Proposition 22.3.5.

  • (a) Prove that F⋆=conv(F⋆∩extP).
  • (b) Deduce that the optimal value of the program equals max{c⊤v:v∈extP}, a maximum over a finite set, and that this finite maximum is attained exactly at the vertices lying in F⋆.

Solution.

  • (a) F⋆ is a non-empty bounded polyhedron by Proposition 22.3.1, so Theorem 22.3.3 gives F⋆=conv(extF⋆). By the remark after Definition 22.3.1, F⋆ is a face of P in the sense of Definition 18.8.2, so Lemma 18.8.3 gives extF⋆=F⋆∩extP. Substituting proves (a).

  • (b) By Corollary 18.9.3, extP is finite, and it is non-empty by Theorem 22.3.3 since P≠∅. Write γ⋆ for the optimal value. Every vertex lies in P, so c⊤v≤γ⋆ for v∈extP; and by (a) F⋆ contains a vertex, at which c⊤v=γ⋆. So the finite maximum equals γ⋆. A vertex v attains it exactly when c⊤v=γ⋆, which is exactly the condition v∈F⋆ defining the optimal face.

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.