Correspondence Between BFS and Vertices

Establish the fundamental theorem of linear programming: a point in a standard-form polyhedron is a vertex if and only if it is a basic feasible solution. Practice translating between bases, BFSs, and vertices, and use the correspondence to count and enumerate vertices.

Step 1 of 157%

Tutorial

The Correspondence Theorem

Consider a polyhedron in standard form

P={xRn:Ax=b, x0},P = \{ \mathbf{x} \in \mathbb{R}^n : A\mathbf{x} = \mathbf{b},\ \mathbf{x} \geq \mathbf{0} \},

where AA is an m×nm \times n matrix with full row rank and mnm \leq n.

The fundamental result of linear programming is the following correspondence:

A point xP\mathbf{x}^* \in P is a vertex of PP if and only if x\mathbf{x}^* is a basic feasible solution.

Recall how a BFS is built. We select mm linearly independent columns of AA — this set of column indices is the basis BB. The variables indexed by BB are the basic variables xB\mathbf{x}_B; the remaining nmn - m are non-basic. Setting the non-basic variables to zero and solving ABxB=bA_B \mathbf{x}_B = \mathbf{b} yields a candidate point. If xB0\mathbf{x}_B \geq \mathbf{0}, the candidate is a basic feasible solution, and the correspondence theorem guarantees it is a vertex of PP.

To illustrate, consider the single-constraint system

x1+x2+s1=4,x1,x2,s10.x_1 + x_2 + s_1 = 4, \qquad x_1, x_2, s_1 \geq 0.

Here n=3n = 3 and m=1m = 1, so each basis consists of one column. The (31)=3\binom{3}{1} = 3 choices give:

  • B={s1}B = \{s_1\}: set x1=x2=0x_1 = x_2 = 0, so s1=4s_1 = 4. BFS (0,0,4)(0, 0, 4), corresponding to the vertex (x1,x2)=(0,0)(x_1, x_2) = (0, 0).
  • B={x1}B = \{x_1\}: set x2=s1=0x_2 = s_1 = 0, so x1=4x_1 = 4. BFS (4,0,0)(4, 0, 0), corresponding to the vertex (4,0)(4, 0).
  • B={x2}B = \{x_2\}: set x1=s1=0x_1 = s_1 = 0, so x2=4x_2 = 4. BFS (0,4,0)(0, 4, 0), corresponding to the vertex (0,4)(0, 4).

Each basic feasible solution is a vertex of the triangle {x1+x24, x1,x20}\{x_1 + x_2 \leq 4,\ x_1, x_2 \geq 0\}, and every vertex of the triangle is a BFS.

navigate · Enter open · Esc close · ⌘K/Ctrl K toggle