Definitions
Preliminaries: equational form with linearly-independent rows
For the definitions below, we first present the linear program in the so-called ''equational form'': :maximize :subject to and where: * and are vectors of size ''n'' (the number of variables); * is a vector of size ''m'' (the number of constraints); * is an ''m''-by-''n'' matrix; * means that all variables are non-negative. Any linear program can be converted into an equational form by adding slack variables. As a preliminary clean-up step, we verify that: * The system has at least one solution (otherwise the whole LP has no solution and there is nothing more to do); * All ''m'' rows of the matrix are linearly independent, i.e., its rank is ''m'' (otherwise we can just delete redundant rows without changing the LP).Feasible solution
A feasible solution of the LP is any vector such that . We assume that there is at least one feasible solution. If ''m'' = ''n'', then there is only one feasible solution. Typically ''m'' < ''n'', so the system has many solutions; each such solution is called a feasible solution of the LP.Basis
A basis of the LP is aBasic feasible solution
Given a basis ''B'', we say that a feasible solution is a basic feasible solution with basis B if all its non-zero variables are indexed by ''B'', that is, for all .Properties
1. A BFS is determined only by the constraints of the LP (the matrix and the vector ); it does not depend on the optimization objective. 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 is basic if-and-only-if the columns of the matrix are linearly independent, where ''K'' is the set of indices of the non-zero elements of . 4. Each basis determines a unique BFS: for each basis ''B'' of ''m'' indices, there is at most one BFS with basis ''B''. This is because must satisfy the constraint , and by definition of basis the matrix is non-singular, so the constraint has a unique solution:The opposite is not true: each BFS can come from many different bases. If the unique solution of satisfies the non-negativity constraints , then ''B'' is called a feasible basis. 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
Examples
Consider a linear program with the following constraints: The matrix ''A'' is: 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 is non-singular. The unique BFS corresponding to this basis is .Geometric interpretation
Basic feasible solutions for the dual problem
As mentioned above, every basis ''B'' defines a unique basic feasible solution . In a similar way, each basis defines a solution to theFinding an optimal BFS
There are several methods for finding a BFS that is also optimal.Using the simplex algorithm
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 is the vector of ''m'' basic variables, is the vector of ''n'' non-basic variables, and is the maximization objective. Since non-basic variables equal 0, the current BFS is , and the current maximization objective is . If all coefficients in are negative, then is an optimal solution, since all variables (including all non-basic variables) must be at least 0, so the second line implies . If some coefficients in are positive, then it may be possible to increase the maximization target. For example, if is non-basic and its coefficient in is positive, then increasing it above 0 may make larger. If it is possible to do so without violating other constraints, then the increased variable becomes basic (it "enters the basis"), while some basic variable is decreased to 0 to keep the equality constraints and thus becomes non-basic (it "exits the basis"). If this process is done carefully, then it is possible to guarantee that increases until it reaches an optimal BFS.Converting any optimal solution to an optimal BFS
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''.Finding a basis that is both primal-optimal and dual-optimal
A basis ''B'' of the LP is called dual-optimal if the solution is an optimal solution to the dual linear program, that is, it minimizes . In general, a primal-optimal basis is not necessarily dual-optimal, and a dual-optimal basis is not necessarily primal-optimal (in fact, the solution of a primal-optimal basis may even be unfeasible for the dual, and vice versa). If both is an optimal BFS of the primal LP, and is an optimal BFS of the dual LP, then the basis ''B'' is called PD-optimal. Every LP with an optimal solution has a PD-optimal basis, and it is found by the Simplex algorithm. However, its run-time is exponential in the worst case.External links
References
{{reflist Linear programming