In the theory of linear programming, a basic feasible solution (BFS) is a solution with a minimal set of non-zero variables. Geometrically, each BFS corresponds to a vertex of the polyhedron of feasible solutions. If there exists an optimal solution, then there exists an optimal BFS. Hence, to find an optimal solution, it is sufficient to consider the BFS-s. This fact is used by the simplex algorithm, which essentially travels from one BFS to another until an optimal solution is found.
For the definitions below, we first present the linear program in the so-called equational form:
maximize
subject to
Ax=b
x\ge0
cT |
x
b
A
x\ge0
Any linear program can be converted into an equational form by adding slack variables.
As a preliminary clean-up step, we verify that:
Ax=b
A
A feasible solution of the LP is any vector
x\ge0
Ax=b
Ax=b
A basis of the LP is a nonsingular submatrix of A, with all m rows and only m<n columns.
Sometimes, the term basis is used not for the submatrix itself, but for the set of indices of its columns. Let B be a subset of m indices from . Denote by
AB
A
AB
A
Since the rank of
A
A
\binom{n}{m}
Given a basis B, we say that a feasible solution
x
j\not\inB:~~xj=0
1. A BFS is determined only by the constraints of the LP (the matrix
A
b
2. By definition, a BFS has at most m non-zero variables and at least n-m zero variables. A BFS can have less than m non-zero variables; in that case, it can have many different bases, all of which contain the indices of its non-zero variables.
3. A feasible solution
x
AK
x
4. Each basis determines a unique BFS: for each basis B of m indices, there is at most one BFS
xB |
xB |
AB
xB |
=b
AB
The opposite is not true: each BFS can come from many different bases. If the unique solution of
xB =
-1 {A B} ⋅ b
xB |
=
-1 | |
{A | |
B} |
⋅ b
xB |
\geq0
5. If a linear program has an optimal solution (i.e., it has a feasible solution, and the set of feasible solutions is bounded), then it has an optimal BFS. This is a consequence of the Bauer maximum principle: the objective of a linear program is convex; the set of feasible solutions is convex (it is an intersection of hyperspaces); therefore the objective attains its maximum in an extreme point of the set of feasible solutions.
Since the number of BFS-s is finite and bounded by
\binom{n}{m}
\binom{n}{m}
Consider a linear program with the following constraints:
\begin{align}x1+5x2+3x3+4x4+6x5&=14 \\ x2+3x3+5x4+6x5&=7 \\ \foralli\in\{1,\ldots,5\}:xi&\geq0 \end{align}
The matrix A is:
A=\begin{pmatrix}1&5&3&4&6 \ 0&1&3&5&6 \end{pmatrix} ~~~~~ b=(14~~7)
Here, m=2 and there are 10 subsets of 2 indices, however, not all of them are bases: the set is not a basis since columns 3 and 5 are linearly dependent.
The set B= is a basis, since the matrix
AB=\begin{pmatrix}5&4 \ 1&5\end{pmatrix}
The unique BFS corresponding to this basis is
xB=(0~~2~~0~~1~~0)
The set of all feasible solutions is an intersection of hyperspaces. Therefore, it is a convex polyhedron. If it is bounded, then it is a convex polytope. Each BFS corresponds to a vertex of this polytope.
As mentioned above, every basis B defines a unique basic feasible solution
xB |
=
-1 | |
{A | |
B} |
⋅ b
minimize
subject to
ATy\geqc
yB |
=
-1 | |
{A | |
B} |
⋅ c
There are several methods for finding a BFS that is also optimal.
In practice, the easiest way to find an optimal BFS is to use the simplex algorithm. It keeps, at each point of its execution, a "current basis" B (a subset of m out of n variables), a "current BFS", and a "current tableau". The tableau is a representation of the linear program where the basic variables are expressed in terms of the non-basic ones:where
xB
xN
z
p
z0
If all coefficients in
r
z0
z\leqz0
If some coefficients in
r
x5
r
z
If this process is done carefully, then it is possible to guarantee that
z
In the worst case, the simplex algorithm may require exponentially many steps to complete. There are algorithms for solving an LP in weakly-polynomial time, such as the ellipsoid method; however, they usually return optimal solutions that are not basic.
However, Given any optimal solution to the LP, it is easy to find an optimal feasible solution that is also basic.
A basis B of the LP is called dual-optimal if the solution
yB |
=
-1 | |
{A | |
B} |
⋅ c
If both
xB |
=
-1 | |
{A | |
B} |
⋅ b
yB |
=
-1 | |
{A | |
B} |
⋅ c
Megiddo's algorithms can be executed using a tableau, just like the simplex algorithm.