In
mathematical optimization
Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criterion, from some set of available alternatives. It is generally divided into two subfi ...
, the revised simplex method is a variant of
George Dantzig
George Bernard Dantzig (; November 8, 1914 – May 13, 2005) was an American mathematical scientist who made contributions to industrial engineering, operations research, computer science, economics, and statistics.
Dantzig is known for his de ...
's
simplex method
In mathematical optimization, Dantzig's simplex algorithm (or simplex method) is a popular algorithm for linear programming.
The name of the algorithm is derived from the concept of a simplex and was suggested by T. S. Motzkin. Simplices are no ...
for
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 relationships. Linear programming is ...
.
The revised simplex method is mathematically equivalent to the standard simplex method but differs in implementation. Instead of maintaining a tableau which explicitly represents the constraints adjusted to a set of basic variables, it maintains a representation of a
basis
Basis may refer to:
Finance and accounting
*Adjusted basis, the net cost of an asset after adjusting for various tax-related items
*Basis point, 0.01%, often used in the context of interest rates
* Basis trading, a trading strategy consisting o ...
of the
matrix
Matrix most commonly refers to:
* ''The Matrix'' (franchise), an American media franchise
** '' The Matrix'', a 1999 science-fiction action film
** "The Matrix", a fictional setting, a virtual reality environment, within ''The Matrix'' (franchi ...
representing the constraints. The matrix-oriented approach allows for greater computational efficiency by enabling sparse matrix operations.
Problem formulation
For the rest of the discussion, it is assumed that a linear programming problem has been converted into the following standard form:
:
where . Without loss of generality, it is assumed that the constraint matrix has full row rank and that the problem is feasible, i.e., there is at least one such that . If is rank-deficient, either there are redundant constraints, or the problem is infeasible. Both situations can be handled by a presolve step.
Algorithmic description
Optimality conditions
For linear programming, the
Karush–Kuhn–Tucker conditions
In mathematical optimization, the Karush–Kuhn–Tucker (KKT) conditions, also known as the Kuhn–Tucker conditions, are first derivative tests (sometimes called first-order necessary conditions) for a solution in nonlinear programming to be ...
are both
necessary and sufficient
In logic and mathematics, necessity and sufficiency are terms used to describe a conditional or implicational relationship between two statements. For example, in the conditional statement: "If then ", is necessary for , because the truth of ...
for optimality. The KKT conditions of a linear programming problem in the standard form is
:
where and are the
Lagrange multiplier
In mathematical optimization, the method of Lagrange multipliers is a strategy for finding the local maxima and minima of a function subject to equality constraints (i.e., subject to the condition that one or more equations have to be satisfied ...
s associated with the constraints and , respectively. The last condition, which is equivalent to for all , is called the ''complementary slackness condition''.
By what is sometimes known as the ''fundamental theorem of linear programming'', a vertex of the feasible polytope can be identified by being a basis of chosen from the latter's columns. Since has full rank, is nonsingular. Without loss of generality, assume that . Then is given by
:
where . Partition and accordingly into
:
To satisfy the complementary slackness condition, let . It follows that
:
which implies that
:
If at this point, the KKT conditions are satisfied, and thus is optimal.
Pivot operation
If the KKT conditions are violated, a ''pivot operation'' consisting of introducing a column of into the basis at the expense of an existing column in is performed. In the absence of
degeneracy, a pivot operation always results in a strict decrease in . Therefore, if the problem is bounded, the revised simplex method must terminate at an optimal vertex after repeated pivot operations because there are only a finite number of vertices.
Select an index such that as the ''entering index''. The corresponding column of , , will be moved into the basis, and will be allowed to increase from zero. It can be shown that
:
i.e., every unit increase in results in a decrease by in . Since
:
must be correspondingly decreased by subject to . Let . If , no matter how much is increased, will stay nonnegative. Hence, can be arbitrarily decreased, and thus the problem is unbounded. Otherwise, select an index as the ''leaving index''. This choice effectively increases from zero until is reduced to zero while maintaining feasibility. The pivot operation concludes with replacing with in the basis.
Numerical example
Consider a linear program where
:
Let
:
initially, which corresponds to a feasible vertex . At this moment,
:
Choose as the entering index. Then , which means a unit increase in results in and being decreased by and , respectively. Therefore, is increased to , at which point is reduced to zero, and becomes the leaving index.
After the pivot operation,
:
Correspondingly,
:
A positive indicates that is now optimal.
Practical issues
Degeneracy
Because the revised simplex method is mathematically equivalent to the simplex method, it also suffers from degeneracy, where a pivot operation does not result in a decrease in , and a chain of pivot operations causes the basis to cycle. A perturbation or lexicographic strategy can be used to prevent cycling and guarantee termination.
Basis representation
Two types of
linear systems
In systems theory, a linear system is a mathematical model of a system based on the use of a linear operator.
Linear systems typically exhibit features and properties that are much simpler than the nonlinear case.
As a mathematical abstraction o ...
involving are present in the revised simplex method:
:
Instead of refactorizing , usually an
LU factorization
In numerical analysis and linear algebra, lower–upper (LU) decomposition or factorization factors a matrix as the product of a lower triangular matrix and an upper triangular matrix (see matrix decomposition). The product sometimes includes a pe ...
is directly updated after each pivot operation, for which purpose there exist several strategies such as the Forrest−Tomlin and Bartels−Golub methods. However, the amount of data representing the updates as well as numerical errors builds up over time and makes periodic refactorization necessary.
Notes and references
Notes
References
Bibliography
*
*
{{Mathematical programming
Exchange algorithms
Linear programming