Content deleted Content added
m convert special characters found by Wikipedia:Typo Team/moss (via WP:JWB) |
|||
(25 intermediate revisions by 16 users not shown) | |||
Line 1:
In [[mathematical optimization]], the '''revised simplex method''' 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 (linear algebra)|basis]] of the [[Matrix (mathematics)|matrix]] representing the constraints. The matrix-oriented approach allows for greater computational efficiency by enabling sparse matrix operations.{{sfn|Morgan|1997|loc=§2}}
Line 8:
\begin{array}{rl}
\text{minimize} & \boldsymbol{c}^{\mathrm{T}} \boldsymbol{x} \\
\text{subject to} & \boldsymbol{Ax} = \boldsymbol{b}
\end{array}
</math>
where {{math|'''''A''''' ∈
==Algorithmic description==
Line 20:
\begin{align}
\boldsymbol{Ax} & = \boldsymbol{b}, \\
\boldsymbol{A}^{\mathrm{T}} \boldsymbol{\lambda} + \boldsymbol{s} & = \boldsymbol{c}
\boldsymbol{x} & \ge \boldsymbol{0}, \\
\boldsymbol{s} & \ge \boldsymbol{0}, \\
Line 29:
where {{math|'''''λ'''''}} and {{math|'''''s'''''}} are the [[Lagrange multiplier]]s associated with the constraints {{math|'''''Ax''''' {{=}} '''''b'''''}} and {{math|'''''x''''' ≥ '''0'''}}, respectively.{{sfn|Nocedal|Wright|2006|p=358|loc=Eq. 13.4}} The last condition, which is equivalent to {{math|''s<sub>i</sub>x<sub>i</sub>'' {{=}} 0}} for all {{math|1 < ''i'' < ''n''}}, is called the ''complementary slackness condition''.
By what is sometimes known as the ''fundamental theorem of linear programming'', a vertex {{math|'''''x'''''}} of the feasible polytope can be identified by
:<math>
Line 64:
:<math>
\begin{align}
\boldsymbol{B}^{\mathrm{T}} \boldsymbol{\lambda} & = \boldsymbol{c_B}
\boldsymbol{N}^{\mathrm{T}} \boldsymbol{\lambda} + \boldsymbol{s_N} & = \boldsymbol{c_N},
\end{align}
Line 73:
:<math>
\begin{align}
\boldsymbol{\lambda} & = (\boldsymbol{B}^{
\boldsymbol{s_N} & = \boldsymbol{c_N} - \boldsymbol{N}^{\mathrm{T}} \boldsymbol{\lambda}.
\end{align}
Line 85:
Select an index {{math|''m'' < ''q'' ≤ ''n''}} such that {{math|''s<sub>q</sub>'' < 0}} as the ''entering index''. The corresponding column of {{math|'''''A'''''}}, {{math|'''''A'''<sub>q</sub>''}}, will be moved into the basis, and {{math|''x<sub>q</sub>''}} will be allowed to increase from zero. It can be shown that
:<math>\frac{\partial (\boldsymbol{c}^{\mathrm{T}} \boldsymbol{x})}{\partial x_q} = s_q
i.e., every unit increase in {{math|''x<sub>q</sub>''}}
:<math>\boldsymbol{B x_B} + \boldsymbol{A}_q x_q = \boldsymbol{b}
{{math|'''''x<sub>B</sub>'''''}} must be correspondingly decreased by {{math|Δ'''''x<sub>B</sub>''''' {{=}} '''''B'''''<sup>−1</sup>'''''A'''<sub>q</sub>x<sub>q</sub>''}} subject to {{math|'''''x<sub>B</sub>''''' − Δ'''''x<sub>B</sub>''''' ≥ '''0'''}}. Let {{math|'''''d''''' {{=}} '''''B'''''<sup>−1</sup>'''''A'''<sub>q</sub>''}}. If {{math|'''''d''''' ≤ '''0'''}}, no matter how much {{math|''x<sub>q</sub>''}} is increased, {{math|'''''x<sub>B</sub>''''' − Δ'''''x<sub>B</sub>'''''}} will stay nonnegative. Hence, {{math|'''''c'''''<sup>T</sup>'''''x'''''}} can be arbitrarily decreased, and thus the problem is unbounded. Otherwise, select an index {{math|''p'' {{=}} argmin<sub>1≤''i''≤''m''</sub> {{(}}''x<sub>i</sub>''/''d<sub>i</sub>'' {{!}} ''d<sub>i</sub>'' > 0{{)}}}} as the ''leaving index''. This choice effectively increases {{math|''x<sub>q</sub>''}} from zero until {{math|''x<sub>p</sub>''}} is reduced to zero while maintaining feasibility. The pivot operation concludes with replacing {{math|'''''A'''<sub>p</sub>''}} with {{math|'''''A'''<sub>q</sub>''}} in the basis.
Line 102:
\begin{bmatrix}
-2 & -3 & -4 & 0 & 0
\end{bmatrix}^{\mathrm{T}}
\boldsymbol{A} & =
\begin{bmatrix}
3 & 2 & 1 & 1 & 0 \\
2 & 5 & 3 & 0 & 1
\end{bmatrix}
\boldsymbol{b} & =
\begin{bmatrix}
10 \\
15
\end{bmatrix}
\end{align}
</math>
Line 123:
\begin{bmatrix}
\boldsymbol{A}_4 & \boldsymbol{A}_5
\end{bmatrix}
\boldsymbol{N} & =
\begin{bmatrix}
Line 131:
</math>
initially, which corresponds to a feasible vertex {{math|'''''x''''' {{=}}
:<math>
Line 137:
\boldsymbol{\lambda} & =
\begin{bmatrix}
\end{bmatrix}^{\mathrm{T}}
\boldsymbol{s_N} & =
\begin{bmatrix}
-
\end{bmatrix}^{\mathrm{T}}
\end{align}
</math>
Choose {{math|''q'' {{=}} 3}} as the entering index. Then {{math|'''''d''''' {{=}}
After the pivot operation,
Line 155:
\begin{bmatrix}
\boldsymbol{A}_3 & \boldsymbol{A}_4
\end{bmatrix}
\boldsymbol{N} & =
\begin{bmatrix}
\boldsymbol{A}_1 & \boldsymbol{A}_2 & \boldsymbol{A}_5
\end{bmatrix}
\end{align}
</math>
Line 170:
\begin{bmatrix}
0 & 0 & 5 & 5 & 0
\end{bmatrix}^{\mathrm{T}}
\boldsymbol{\lambda} & =
\begin{bmatrix}
0 & -4/3
\end{bmatrix}^{\mathrm{T}}
\boldsymbol{s_N} & =
\begin{bmatrix}
2/3 & 11/3 & 4/3
\end{bmatrix}^{\
\end{align}
</math>
Line 186:
==Practical issues==
===Degeneracy===
{{seealso|Simplex method#Degeneracy:
Because the revised simplex method is mathematically equivalent to the simplex method, it also suffers from degeneracy, where a pivot operation does not
===Basis representation===
Two types of [[System of linear equations|linear systems]] involving
:<math>
\begin{align}
\boldsymbol{B
\boldsymbol{B}^{\mathrm{T}} \boldsymbol{
\end{align}
</math>
Instead of refactorizing
==Notes and references==
Line 218:
|year=1997
|url=http://www.cise.ufl.edu/research/sparse/Morgan/index.htm
|archive-url=https://web.archive.org/web/20110807134509/http://www.cise.ufl.edu/research/sparse/Morgan/index.htm
|archive-date=7 August 2011
}}
* {{cite book
|last1=Nocedal
Line 237 ⟶ 239:
|___location=New York, NY, USA
|isbn=978-0-387-30303-1
|url=
}}
{{refend}}
Line 246 ⟶ 248:
[[Category:Exchange algorithms]]
[[Category:Linear programming]]
|