Basic Feasible Solution
   HOME

TheInfoList



OR:

In the theory of
linear programming Linear programming (LP), also called linear optimization, is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements are represented by linear function#As a polynomial function, li ...
, a basic feasible solution (BFS) is a solution with a minimal set of non-zero variables. Geometrically, each BFS corresponds to a corner 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 some BFS to another until an optimal one is found.


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 \mathbf \mathbf :subject to A\mathbf = \mathbf and \mathbf \ge 0 where: * \mathbf and \mathbf are vectors of size ''n'' (the number of variables); * \mathbf is a vector of size ''m'' (the number of constraints); * A is an ''m''-by-''n'' matrix; * \mathbf \ge 0 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 A\mathbf = \mathbf 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 A 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 \mathbf \ge 0 such that A\mathbf = \mathbf. 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 A\mathbf = \mathbf has many solutions; each such solution is called a feasible solution of the LP.


Basis

A basis of the LP is a
nonsingular In linear algebra, an -by- square matrix is called invertible (also nonsingular or nondegenerate), if there exists an -by- square matrix such that :\mathbf = \mathbf = \mathbf_n \ where denotes the -by- identity matrix and the multiplicati ...
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 A_B the square ''m''-by-''m'' matrix made of the ''m'' columns of A indexed by ''B''. If A_B is
nonsingular In linear algebra, an -by- square matrix is called invertible (also nonsingular or nondegenerate), if there exists an -by- square matrix such that :\mathbf = \mathbf = \mathbf_n \ where denotes the -by- identity matrix and the multiplicati ...
, the columns indexed by ''B'' are a basis of the column space of A. In this case, we call ''B'' a basis of the LP. Since the rank of A is ''m'', it has at least one basis; since A has ''n'' columns, it has at most \binom bases.


Basic feasible solution

Given a basis ''B'', we say that a feasible solution \mathbf is a basic feasible solution with basis B if all its non-zero variables are indexed by ''B'', that is, for all j\not\in B: ~~ x_j = 0.


Properties

1. A BFS is determined only by the constraints of the LP (the matrix A and the vector \mathbf); 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 \mathbf is basic if-and-only-if the columns of the matrix A_K are linearly independent, where ''K'' is the set of indices of the non-zero elements of \mathbf. 4. Each basis determines a unique BFS: for each basis ''B'' of ''m'' indices, there is at most one BFS \mathbf with basis ''B''. This is because \mathbf must satisfy the constraint A_B \mathbf = b, and by definition of basis the matrix A_B is non-singular, so the constraint has a unique solution:
\mathbf = ^\cdot b
The opposite is not true: each BFS can come from many different bases. If the unique solution of \mathbf = ^\cdot b satisfies the non-negativity constraints \mathbf \geq 0, 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
Bauer maximum principle Bauer's maximum principle is the following theorem in mathematical optimization: ::Any function that is convex and continuous, and defined on a set that is convex and compact, attains its maximum at some extreme point of that set. It is attribute ...
: 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, an optimal solution to any LP can be found in finite time by just evaluating the objective function in all \binomBFS-s. This is not the most efficient way to solve an LP; the simplex algorithm examines the BFS-s in a much more efficient way.


Examples

Consider a linear program with the following constraints: \begin x_1 + 5 x_2 + 3 x_3 + 4 x_4 + 6 x_5 &= 14 \\ x_2 + 3 x_3 + 5 x_4 + 6 x_5 &= 7 \\ \forall i\in\: x_i&\geq 0 \end The matrix ''A'' is: A = \begin 1 & 5 & 3 & 4 & 6 \\ 0 & 1 & 3 & 5 & 6 \end ~~~~~ \mathbf = (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 A_B = \begin 5 & 4 \\ 1 & 5 \end is non-singular. The unique BFS corresponding to this basis is x_B = (0~~2~~0~~1~~0) .


Geometric interpretation

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 A convex polytope is a special case of a polytope, having the additional property that it is also a convex set contained in the n-dimensional Euclidean space \mathbb^n. Most texts. use the term "polytope" for a bounded convex polytope, and the wo ...
. Each BFS corresponds to a vertex of this polytope.


Basic feasible solutions for the dual problem

As mentioned above, every basis ''B'' defines a unique basic feasible solution \mathbf = ^\cdot b . In a similar way, each basis defines a solution to the
dual linear program The dual of a given linear program (LP) is another LP that is derived from the original (the primal) LP in the following schematic way: * Each variable in the primal LP becomes a constraint in the dual LP; * Each constraint in the primal LP becomes ...
: :minimize \mathbf \mathbf :subject to A^T\mathbf \geq \mathbf. The solution is \mathbf = ^\cdot c.


Finding 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:\begin x_B &= p + Q x_N \\ z &= z_0 + r^T x_N \endwhere x_B is the vector of ''m'' basic variables, x_N is the vector of ''n'' non-basic variables, and z is the maximization objective. Since non-basic variables equal 0, the current BFS is p, and the current maximization objective is z_0. If all coefficients in r are negative, then z_0 is an optimal solution, since all variables (including all non-basic variables) must be at least 0, so the second line implies z\leq z_0. If some coefficients in r are positive, then it may be possible to increase the maximization target. For example, if x_5 is non-basic and its coefficient in r is positive, then increasing it above 0 may make z 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 z 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 \mathbf = ^\cdot c is an optimal solution to the dual linear program, that is, it minimizes \mathbf \mathbf. 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 \mathbf = ^\cdot b is an optimal BFS of the primal LP, and \mathbf = ^\cdot c 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.
Nimrod Megiddo , birth_date = , birth_place = , death_date = , death_place = , citizenship = , field = Operations researchAlgorithms ComplexityMachine learning Game theory , workplaces = IBM Research ...
proved the following theorems: * There exists a
strongly polynomial time In computer science, the time complexity is the computational complexity that describes the amount of computer time it takes to run an algorithm. Time complexity is commonly estimated by counting the number of elementary operations performed by ...
algorithm that inputs an optimal solution to the primal LP ''and'' an optimal solution to the dual LP, and returns an optimal basis. * If there exists a
strongly polynomial time In computer science, the time complexity is the computational complexity that describes the amount of computer time it takes to run an algorithm. Time complexity is commonly estimated by counting the number of elementary operations performed by ...
algorithm that inputs an optimal solution to ''only'' the primal LP (or only the dual LP) and returns an optimal basis, then there exists a strongly-polynomial time algorithm for solving any linear program (the latter is a famous open problem). Megiddo's algorithms can be executed using a tableau, just like the simplex algorithm.


External links


How to move from an optimal feasible solution to an optimal basic feasible solution
Paul Robin, Operations Research Stack Exchange.


References

{{reflist Linear programming