Consider a linear program in standard form: maximize subject to , , where is with and rank . Here is the number of constraints and is the number of variables.
A point is feasible iff it satisfies both and .
A feasible is an extreme point iff the columns of are linearly independent (proved below).
Basic Solution
is equations in unknowns with , so it is underdetermined. Kill the extra degrees of freedom by choosing variables (non-basic) and fixing them at exactly 0. The remaining variables (basic) have columns forming a square matrix ; when is invertible, has the unique solution . Filling the non-basic entries back in with 0 gives the full vector, a basic solution. It has at most nonzero entries.
A basic solution is determined by which variables are chosen as basic.
Example: , (, , so 2 variables are set to 0).
- Non-basic : solve , to get .
- Non-basic : gives .
- Non-basic : gives .
For a given LP, the maximum number of basic solutions is:
Basic Feasible Solution
A basic solution in which every variable is also . Since the non-basic variables are already 0, this just requires .
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 basic variables are nonzero.
- Non-degenerate
All basic variables are strictly positive, so the point has exactly nonzero entries. - Degenerate
At least one basic variable equals 0, so the point has fewer than 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 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 nonzero variables and is an extreme point (corner) of the feasible region.
Basic feasible solutions are finite in number, at most , one per choice of which 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 . If it is not basic, the columns of for its nonzero entries are linearly dependent, so there is a direction with . Moving to keeps satisfied; increase until some variable hits , leaving fewer nonzeros. Repeating drives the point to a basic one. For the second statement, pick the sign of so does not decrease, so the basic point reached is at least as good as the original optimum.