Solutions of a Linear Program

Work in progress. This note is still being written and incomplete.

Consider a linear program in standard form: maximize cTxc^T x subject to Ax=bAx = b, x0x \ge 0, where AA is m×nm \times n with nmn \ge m and rank mm. Here mm is the number of constraints and nn is the number of variables.

A point xx is feasible iff it satisfies both Ax=bAx = b and x0x \ge 0.

A feasible xx is an extreme point iff the columns {ai:xi>0}\{a_i : x_i > 0\} of AA are linearly independent (proved below).

Basic Solution

Ax=bAx = b is mm equations in nn unknowns with n>mn > m, so it is underdetermined. Kill the extra nmn - m degrees of freedom by choosing nmn - m variables (non-basic) and fixing them at exactly 0. The remaining mm variables (basic) have columns forming a square m×mm \times m matrix BB; when BB is invertible, BxB=bB x_B = b has the unique solution xB=B1bx_B = B^{-1} b. Filling the non-basic entries back in with 0 gives the full vector, a basic solution. It has at most mm nonzero entries.

A basic solution is determined by which mm variables are chosen as basic.

Example: x1+x2+x3=4x_1 + x_2 + x_3 = 4, x1+2x2+x4=6x_1 + 2x_2 + x_4 = 6 (m=2m = 2, n=4n = 4, so 2 variables are set to 0).

  • Non-basic {x3,x4}\{x_3, x_4\}: solve x1+x2=4x_1 + x_2 = 4, x1+2x2=6x_1 + 2x_2 = 6 to get (2,2,0,0)(2, 2, 0, 0).
  • Non-basic {x2,x3}\{x_2, x_3\}: gives (4,0,0,2)(4, 0, 0, 2).
  • Non-basic {x1,x2}\{x_1, x_2\}: gives (0,0,4,6)(0, 0, 4, 6).

For a given LP, the maximum number of basic solutions is:

(nm)=n!m!(nm)!\binom{n}{m} = \frac{n!}{m!(n - m)!}

Basic Feasible Solution

A basic solution in which every variable is also 0\ge 0. Since the nmn - m non-basic variables are already 0, this just requires xB=B1b0x_B = B^{-1} b \ge 0.

The basic feasible solutions of the LP are exactly the extreme points of its convex hull.

Degeneracy

Degeneracy classifies a basic feasible solution by how many of its mm basic variables are nonzero.

  • Non-degenerate
    All mm basic variables are strictly positive, so the point has exactly mm nonzero entries.
  • Degenerate
    At least one basic variable equals 0, so the point has fewer than mm nonzero entries.

“Non-degenerate” and “degenerate” are two disjoint subclasses of the basic feasible solutions. A non-degenerate basic solution that had a negative basic variable would not be feasible and would not be called either.

A degenerate basic feasible solution can come from more than one basic set: different choices of the mm basic variables can produce the same point when some basic variables are 0.

Fundamental Theorem of Linear Programming

  • If a feasible solution exists, a basic feasible solution exists.
  • If an optimal feasible solution exists, an optimal basic feasible solution exists.

A basic feasible solution has at most mm nonzero variables and is an extreme point (corner) of the feasible region.

Basic feasible solutions are finite in number, at most (nm)\binom{n}{m}, one per choice of which mm variables may be nonzero. An optimum can therefore be found by checking finitely many corners instead of the whole continuous feasible region, and the simplex algorithm does exactly this, walking from corner to corner.

To see why it holds, start at any feasible xx. If it is not basic, the columns of AA for its nonzero entries are linearly dependent, so there is a direction dd with Ad=0Ad = 0. Moving to x±tdx \pm t d keeps Ax=bAx = b satisfied; increase tt until some variable hits 00, leaving fewer nonzeros. Repeating drives the point to a basic one. For the second statement, pick the sign of dd so cTxc^T x does not decrease, so the basic point reached is at least as good as the original optimum.

Written by September 13, 2026 5 min read
Was this helpful?