0% found this document useful (0 votes)
49 views9 pages

Simplex Algorithm

Uploaded by

Med Almkhaifi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
49 views9 pages

Simplex Algorithm

Uploaded by

Med Almkhaifi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 9

Simplex algorithm

This article is about the linear programming algorithm.


For the non-linear optimization heuristic, see Nelder–
Mead method.

In mathematical optimization, Dantzig's simplex algo-


rithm (or simplex method) is a popular algorithm for
linear programming.[1]
The name of the algorithm is derived from the concept
of a simplex and was suggested by T. S. Motzkin.[2] Sim-
plices are not actually used in the method, but one in-
terpretation of it is that it operates on simplicial cones,
and these become proper simplices with an additional
constraint.[3][4][5][6] The simplicial cones in question are
the corners (i.e., the neighborhoods of the vertices) of
a geometric object called a polytope. The shape of this
polytope is defined by the constraints applied to the ob-
jective function.
Polyhedron of simplex algorithm in 3D

1 Overview
Subject to
Further information: Linear programming Ax ≤ b, xi ≥ 0
The simplex algorithm operates on linear programs in
with x = (x1 , . . . , xn ) the variables of the problem, c
Optimal = (c1 , . . . , cn ) are the coefficients of the objective func-
solution tion, A is a p×n matrix, and b = (b1 , . . . , bp ) constants
with bj ≥ 0 . There is a straightforward process to con-
vert any linear program into one in standard form so this
results in no loss of generality.
In geometric terms, the feasible region defined by all val-
ues of x such that

Ax ≤ b, xi ≥ 0
Starting
vertex
is a (possibly unbounded) convex polytope. There is a
A system of linear inequalities defines a polytope as a feasible simple characterization of the extreme points or vertices
region. The simplex algorithm begins at a starting vertex and of this polytope, namely an element x = (x1 , . . . , xn ) of
moves along the edges of the polytope until it reaches the vertex the feasible region is an extreme point if and only if the
of the optimum solution. subset of column vectors Ai corresponding to the nonzero
entries of x (xi ̸= 0) are linearly independent.[7] In this
standard form: context such a point is known as a basic feasible solution
(BFS).
Maximize It can be shown that for a linear program in standard form,
if the objective function has a maximum value on the fea-
cT · x sible region then it has this value on (at least) one of the

1
2 3 STANDARD FORM

extreme points.[8] This in itself reduces the problem to After Dantzig included an objective function as part of
a finite computation since there is a finite number of ex- his formulation during mid-1947, the problem was math-
treme points, but the number of extreme points is unman- ematically more tractable. Dantzig realized that one of
ageably large for all but the smallest linear programs.[9] the unsolved problems that he mistook as homework in
It can also be shown that if an extreme point is not a his professor Jerzy Neyman's class (and actually later
maximum point of the objective function then there is an solved), was applicable to finding an algorithm for linear
edge containing the point so that the objective function programs. This problem involved finding the existence
is strictly increasing on the edge moving away from the of Lagrange multipliers for general linear programs over
a continuum of variables, each bounded between zero
point.[10] If the edge is finite then the edge connects to
another extreme point where the objective function has and one, and satisfying linear constraints expressed in the
form of Lebesgue integrals. Dantzig later published his
a greater value, otherwise the objective function is un-
bounded above on the edge and the linear program has “homework” as a thesis to earn his doctorate. The col-
umn geometry used in this thesis gave Dantzig insight that
no solution. The simplex algorithm applies this insight
by walking along edges of the polytope to extreme points made him believe that the Simplex method would be very
efficient.[16]
with greater and greater objective values. This contin-
ues until the maximum value is reached or an unbounded
edge is visited, concluding that the problem has no solu-
tion. The algorithm always terminates because the num- 3 Standard form
ber of vertices in the polytope is finite; moreover since
we jump between vertices always in the same direction The transformation of a linear program to one in standard
(that of the objective function), we hope that the number form may be accomplished as follows.[17] First, for each
of vertices visited will be small.[10] variable with a lower bound other than 0, a new variable is
The solution of a linear program is accomplished in two introduced representing the difference between the vari-
steps. In the first step, known as Phase I, a starting ex- able and bound. The original variable can then be elimi-
treme point is found. Depending on the nature of the nated by substitution. For example, given the constraint
program this may be trivial, but in general it can be solved
by applying the simplex algorithm to a modified version
of the original program. The possible results of Phase I x1 ≥ 5
are either that a basic feasible solution is found or that
a new variable, y1 , is introduced with
the feasible region is empty. In the latter case the linear
program is called infeasible. In the second step, Phase II,
the simplex algorithm is applied using the basic feasible
y1 = x1 − 5
solution found in Phase I as a starting point. The possible
results from Phase II are either an optimum basic feasible x1 = y1 + 5
solution or an infinite edge on which the objective func- The second equation may be used to eliminate x1 from
tion is unbounded below.[11][12][13] the linear program. In this way, all lower bound con-
straints may be changed to non-negativity restrictions.
Second, for each remaining inequality constraint, a new
2 History variable, called a slack variable, is introduced to change
the constraint to an equality constraint. This variable rep-
George Dantzig worked on planning methods for the US resents the difference between the two sides of the in-
Army Air Force during World War II using a desk calcu- equality and is assumed to be nonnegative. For example,
lator. During 1946 his colleague challenged him to mech- the inequalities
anize the planning process in order to entice him into not
taking another job. Dantzig formulated the problem as
linear inequalities inspired by the work of Wassily Leon- x2 + 2x3 ≤ 3
tief, however, at that time he didn't include an objective as −x4 + 3x5 ≥ 2
part of his formulation. Without an objective, a vast num-
ber of solutions can be feasible, and therefore to find the are replaced with
“best” feasible solution, military-specified “ground rules”
must be used that describe how goals can be achieved as
opposed to specifying a goal itself. Dantzig’s core in- x2 + 2x3 + s1 = 3
sight was to realize that most such ground rules can be −x4 + 3x5 − s2 = 2
translated into a linear objective function that needs to s1 , s2 ≥ 0
be maximized.[14] Development of the simplex method
was evolutionary and happened over a period of about a It is much easier to perform algebraic manipulation on
year.[15] inequalities in this form. In inequalities where ≥ appears
3

such as the second one, some authors refer to the variable of the variable represented by a 1 in its column is equal
introduced as a surplus variable. to the b value at that row.
Third, each unrestricted variable is eliminated from the Conversely, given a basic feasible solution, the columns
linear program. This can be done in two ways, one is by corresponding to the nonzero variables can be expanded
solving for the variable in one of the equations in which it to a nonsingular matrix. If the corresponding tableau is
appears and then eliminating the variable by substitution. multiplied by the inverse of this matrix then the result is
The other is to replace the variable with the difference of a tableau in canonical form.[20]
two restricted variables. For example, if z1 is unrestricted Let
then write

[ ]
1 −cTB −cTD 0
z1 = z1+ − z1− 0 I D b
z1+ , z1− ≥ 0
be a tableau in canonical form. Additional row-addition
The equation may be used to eliminate z1 from the linear transformations can be applied to remove the coefficients
program. cT
When this process is complete the feasible region will be B from the objective function. This process is called pric-
in the form ing out and results in a canonical tableau

[ ]
1 0 −c̄TD zB
Ax = b, xi ≥ 0 0 I D b
It is also useful to assume that the rank of A is the number where zB is the value of the objective function at the
of rows. This results in no loss of generality since other- corresponding basic feasible solution. The updated co-
wise either the system Ax = b has redundant equations efficients, also known as relative cost coefficients, are the
which can be dropped, or the system is inconsistent and rates of change of the objective function with respect to
the linear program has no solution.[18] the nonbasic variables.[12]

4 Simplex tableau 5 Pivot operations


A linear program in standard form can be represented as The geometrical operation of moving from a basic feasi-
a tableau of the form ble solution to an adjacent basic feasible solution is imple-
mented as a pivot operation. First, a nonzero pivot element
[ ] is selected in a nonbasic column. The row containing this
1 −cT 0 element is multiplied by its reciprocal to change this el-
0 A b ement to 1, and then multiples of the row are added to
the other rows to change the other entries in the column
The first row defines the objective function and the re-
to 0. The result is that, if the pivot element is in row r,
maining rows specify the constraints. (Note, different au-
then the column becomes the r-th column of the iden-
thors use different conventions as to the exact layout.) If
tity matrix. The variable for this column is now a basic
the columns of A can be rearranged so that it contains the
variable, replacing the variable which corresponded to the
identity matrix of order p (the number of rows in A) then
[19] r-th column of the identity matrix before the operation.
the tableau is said to be in canonical form. The vari-
In effect, the variable corresponding to the pivot column
ables corresponding to the columns of the identity matrix
enters the set of basic variables and is called the entering
are called basic variables while the remaining variables
variable, and the variable being replaced leaves the set
are called nonbasic or free variables. If the values of the
of basic variables and is called the leaving variable. The
nonbasic variables are set to 0, then the values of the basic
tableau is still in canonical form but with the set of basic
variables are easily obtained as entries in b and this solu-
variables changed by one element.[11][12]
tion is a basic feasible solution. The algebraic interpre-
tation here is that the coefficients of the linear equation
represented by each row are either 0 , 1 , or some other
number. Each row will have 1 column with value 1 , p−1 6 Algorithm
columns with coefficients 0 , and the remaining columns
with some other coefficients (these other variables repre- Let a linear program be given by a canonical tableau.
sent our non-basic variables). By setting the values of the The simplex algorithm proceeds by performing succes-
non-basic variables we ensure in each row that the value sive pivot operations which each give an improved basic
4 6 ALGORITHM

feasible solution; the choice of pivot element at each step which the minimum is achieved then a dropping variable
is largely determined by the requirement that this pivot choice rule[23] can be used to make the determination.
improve the solution.

6.3 Example
6.1 Entering variable selection
See also: Revised simplex algorithm § Numerical
Since the entering variable will, in general, increase from example
0 to a positive number, the value of the objective function
will decrease if the derivative of the objective function Consider the linear program
with respect to this variable is negative. Equivalently, the
value of the objective function is decreased if the pivot
Minimize
column is selected so that the corresponding entry in the
objective row of the tableau is positive. Z = −2x − 3y − 4z
If there is more than one column so that the entry in the
Subject to
objective row is positive then the choice of which one to
add to the set of basic variables is somewhat arbitrary and 3x + 2y + z ≤ 10
several entering variable choice rules[21] such as Devex al-
2x + 5y + 3z ≤ 15
gorithm[22] have been developed.
x, y, z ≥ 0
If all the entries in the objective row are less than or equal
to 0 then no choice of entering variable can be made and With the addition of slack variables s and t, this is repre-
the solution is in fact optimal. It is easily seen to be opti- sented by the canonical tableau
mal since the objective row now corresponds to an equa-
tion of the form
 
1 2 3 4 0 0 0
0 3 2 1 1 0 10
z(x) = zB +variables nonbasic to corresponding terms nonnegative 0 2 5 3 0 1 15
Note that by changing the entering variable choice rule so where columns 5 and 6 represent the basic variables s and
that it selects a column where the entry in the objective t and the corresponding basic feasible solution is
row is negative, the algorithm is changed so that it finds
the maximum of the objective function rather than the
minimum. x = y = z = 0, s = 10, t = 15.

Columns 2, 3, and 4 can be selected as pivot columns, for


6.2 Leaving variable selection this example column 4 is selected. The values of z result-
ing from the choice of rows 2 and 3 as pivot rows are 10/1
Once the pivot column has been selected, the choice of = 10 and 15/3 = 5 respectively. Of these the minimum is
pivot row is largely determined by the requirement that 5, so row 3 must be the pivot row. Performing the pivot
the resulting solution be feasible. First, only positive en- produces
tries in the pivot column are considered since this guar-
antees that the value of the entering variable will be non-  
negative. If there are no positive entries in the pivot col- 3 −2 −11 0 0 −4 −60
umn then the entering variable can take any nonnegative 0 7 1 0 3 −1 15 
value with the solution remaining feasible. In this case 0 2 5 3 0 1 15
the objective function is unbounded below and there is
no minimum. Now columns 4 and 5 represent the basic variables z and
s and the corresponding basic feasible solution is
Next, the pivot row must be selected so that all the other
basic variables remain positive. A calculation shows that
this occurs when the resulting value of the entering vari- x = y = t = 0, z = 5, s = 5.
able is at a minimum. In other words, if the pivot column
is c, then the pivot row r is chosen so that For the next step, there are no positive entries in the ob-
jective row and in fact

br /arc
Z = −60+2x+11y+4t
3 = −20 + 2x+11y+4t
3
is the minimum over all r so that arc > 0. This is called the
[21]
minimum ratio test. If there is more than one row for so the minimum value of Z is −20.
5

7 Finding an initial canonical


 
tableau 1 0 0 0 0 −1 −1 0
0 1 2 3 4 0 0 0
 
In general, a linear program will not be given in canon-  0 0 3 2 1 1 0 10
ical form and an equivalent canonical tableau must be 0 0 2 5 3 0 1 15
found before the simplex algorithm can start. This can
Note that the equation defining the original objective
be accomplished by the introduction of artificial vari-
function is retained in anticipation of Phase II.
ables. Columns of the identity matrix are added as col-
umn vectors for these variables. If the b value for a con- After pricing out this becomes
straint equation is negative, the equation is negated be-
fore adding the identity matrix columns. This does not  
change the set of feasible solutions or the optimal solu- 1 0 5 7 4 0 0 25
tion, and it ensures that the slack variables will constitute 
0 1 2 3 4 0 0 0 

an initial feasible solution. The new tableau is in canon-  0 0 3 2 1 1 0 10
ical form but it is not equivalent to the original problem. 0 0 2 5 3 0 1 15
So a new objective function, equal to the sum of the ar-
tificial variables, is introduced and the simplex algorithm Select column 5 as a pivot column, so the pivot row must
is applied to find the minimum; the modified linear pro- be row 4, and the updated tableau is
gram is called the Phase I problem.[24]
 
The simplex algorithm applied to the Phase I problem 3 0 7 1 0 0 −4 15
must terminate with a minimum value for the new objec- 0 3 −2 −11 0 0 −4 −60
 
tive function since, being the sum of nonnegative vari- 0 0 7 1 0 3 −1 15 
ables, its value is bounded below by 0. If the minimum is 0 0 2 5 3 0 1 15
0 then the artificial variables can be eliminated from the
resulting canonical tableau producing a canonical tableau Now select column 3 as a pivot column, for which row 3
equivalent to the original problem. The simplex algo- must be the pivot row, to get
rithm can then be applied to find the solution; this step
is called Phase II. If the minimum is positive then there  
is no feasible solution for the Phase I problem where the 1 0 0 0 0 −1 −1 0
artificial variables are all zero. This implies that the fea- 0 7 0 −25 0 2 −10 −130

sible region for the original problem is empty, and so the  0 0 7 1 0 3 −1 15 
original problem has no solution. [11][12][25] 0 0 0 11 7 −2 3 25

The artificial variables are now 0 and they may be


7.1 Example dropped giving a canonical tableau equivalent to the orig-
inal problem:
Consider the linear program
 
7 0 −25 0 −130
Minimize 0 7 1 0 15 
Z = −2x − 3y − 4z 0 0 11 7 25

This is, fortuitously, already optimal and the optimum


Subject to value for the original linear program is −130/7.
3x + 2y + z = 10
2x + 5y + 3z = 15 8 Advanced topics
x, y, z ≥ 0
8.1 Implementation
This is represented by the (non-canonical) tableau
Main article: Revised simplex algorithm
 
1 2 3 4 0
0 3 2 1 10 The tableau form used above to describe the algorithm
0 2 5 3 15 lends itself to an immediate implementation in which the
tableau is maintained as a rectangular (m + 1)-by-(m + n
Introduce artificial variables u and v and objective func- + 1) array. It is straightforward to avoid storing the m ex-
tion W = u + v, giving a new tableau plicit columns of the identity matrix that will occur within
6 10 LINEAR-FRACTIONAL PROGRAMMING

the tableau by virtue of B being a subset of the columns such as Fourier–Motzkin elimination. However, in 1972,
of [A, I]. This implementation is referred to as the "stan- Klee and Minty[33] gave an example, the Klee-Minty
dard simplex algorithm”. The storage and computation cube, showing that the worst-case complexity of simplex
overhead are such that the standard simplex method is a method as formulated by Dantzig is exponential time.
prohibitively expensive approach to solving large linear Since then, for almost every variation on the method, it
programming problems. has been shown that there is a family of linear programs
In each simplex iteration, the only data required are the for which it performs badly. It is an open question if
first row of the tableau, the (pivotal) column of the tableau there is a variation with polynomial time, or even sub-
exponential worst-case complexity.[34][35]
corresponding to the entering variable and the right-hand-
side. The latter can be updated using the pivotal column Analyzing and quantifying the observation that the sim-
and the first row of the tableau can be updated using the plex algorithm is efficient in practice, even though it has
(pivotal) row corresponding to the leaving variable. Both exponential worst-case complexity, has led to the devel-
the pivotal column and pivotal row may be computed di- opment of other measures of complexity. The simplex
rectly using the solutions of linear systems of equations algorithm has polynomial-time average-case complexity
involving the matrix B and a matrix-vector product us- under various probability distributions, with the precise
ing A. These observations motivate the "revised simplex average-case performance of the simplex algorithm de-
algorithm", for which implementations are distinguished pending on the choice of a probability distribution for
by their invertible representation of B.[26] the random matrices.[35][36] Another approach to study-
In large linear-programming problems A is typically a ing "typical phenoma" uses Baire category theory from
sparse matrix and, when the resulting sparsity of B general topology, and to show that (topologically) “most”
is exploited when maintaining its invertible representa- matrices can be solved by the simplex algorithm in a poly-
tion, the revised simplex algorithm is a much more ef- nomial number of steps. Another method to analyze the
ficient than the standard simplex method. Commer- performance of the simplex algorithm studies the behav-
cial simplex solvers are based on the revised simplex ior of worst-case scenarios under small perturbation – are
algorithm.[25][26][27][28][29] worst-case scenarios stable under a small change (in the
sense of structural stability), or do they become tractable?
Formally, this method uses random problems to which is
8.2 Degeneracy: stalling and cycling added a Gaussian random vector ("smoothed complex-
ity").[37]
If the values of all basic variables are strictly positive,
then a pivot must result in an improvement in the objec-
tive value. When this is always the case no set of ba- 9 Other algorithms
sic variables occurs twice and the simplex algorithm must
terminate after a finite number of steps. Basic feasible so-
lutions where at least one of the basic variables is zero are Other algorithms for solving linear-programming prob-
lems are described in the linear-programming arti-
called degenerate and may result in pivots for which there
is no improvement in the objective value. In this case cle. Another basis-exchange pivoting algorithm is the
there is no actual change in the solution but only a change criss-cross algorithm.[38][39] There are polynomial-time
in the set of basic variables. When several such pivots algorithms for linear programming that use interior
occur in succession, there is no improvement; in large point methods: these include Khachiyan's ellipsoidal al-
industrial applications, degeneracy is common and such gorithm, Karmarkar's projective algorithm, and path-
"stalling" is notable. Worse than stalling is the possibil- following algorithms.[13]
ity the same set of basic variables occurs twice, in which
case, the deterministic pivoting rules of the simplex al-
gorithm will produce an infinite loop, or “cycle”. While 10 Linear-fractional programming
degeneracy is the rule in practice and stalling is common,
cycling is rare in practice. A discussion of an example
Main article: Linear-fractional programming
of practical cycling occurs in Padberg.[25] Bland’s rule
prevents cycling and thus guarantees that the simplex al-
Linear–fractional programming (LFP) is a generalization
gorithm always terminates.[25][30][31] Another pivoting al-
of linear programming (LP). In LP the objective func-
gorithm, the criss-cross algorithm never cycles on linear
programs.[32] tion is a linear function, while the objective function of
a linear–fractional program is a ratio of two linear func-
tions. In other words, a linear program is a fractional–
8.3 Efficiency linear program in which the denominator is the constant
function having the value one everywhere. A linear–
The simplex method is remarkably efficient in prac- fractional program can be solved by a variant of the
tice and was a great improvement over earlier methods simplex algorithm[40][41][42][43] or by the criss-cross algo-
7

rithm.[44] [14] “Reminiscences about the origins of linear programming”


(PDF). Operations Research Letter. 1 (2): 43–48. April
1982. doi:10.1016/0167-6377(82)90043-8.
11 See also [15] Albers and Reid (1986). “An Interview with George B.
Dantzig: The Father of Linear Programming”. College
• Criss-cross algorithm Mathematics Journal: 292–314.

[16] Dantzig, George (May 1987). “Origins of the sim-


• Cutting-plane method
plex method” (PDF). A history of scientific computing.
• Devex algorithm doi:10.1145/87252.88081. ISBN 0-201-50814-1.

[17] Murty (1983, Section 2.2)


• Fourier–Motzkin elimination
[18] Murty (1983, p. 173)
• Karmarkar’s algorithm
[19] Murty (1983, section 2.3.2)
• Nelder–Mead simplicial heuristic
[20] Murty (1983, section 3.12)
• Pivoting rule of Bland, which avoids cycling
[21] Murty (1983, p. 66)

[22] Harris, Paula MJ. “Pivot selection methods of the Devex


12 Notes LP code.” Mathematical programming 5.1 (1973): 1–28

[23] Murty (1983, p. 67)


[1] Murty, Katta G. Linear programming. John Wiley & Sons
Inc.1, 2000. [24] Murty (1983, p. 60)

[2] Murty (1983, Comment 2.2) [25] M. Padberg, Linear Optimization and Extensions, Second
Edition, Springer-Verlag, 1999.
[3] Murty (1983, Note 3.9)
[26] George B. Dantzig and Mukund N. Thapa. 2003. Linear
[4] Stone, Richard E.; Tovey, Craig A. (1991). “The simplex Programming 2: Theory and Extensions. Springer-Verlag.
and projective scaling algorithms as iteratively reweighted
least squares methods”. SIAM Review. 33 (2): 220–237. [27] Dmitris Alevras and Manfred W. Padberg, Linear Opti-
doi:10.1137/1033049. JSTOR 2031142. MR 1124362. mization and Extensions: Problems and Extensions, Uni-
versitext, Springer-Verlag, 2001. (Problems from Pad-
[5] Stone, Richard E.; Tovey, Craig A. (1991). “Erratum: berg with solutions.)
The simplex and projective scaling algorithms as itera-
tively reweighted least squares methods”. SIAM Review. [28] Maros, István; Mitra, Gautam (1996). “Simplex algo-
33 (3): 461. doi:10.1137/1033100. JSTOR 2031443. rithms”. In J. E. Beasley. Advances in linear and integer
MR 1124362. programming. Oxford Science. pp. 1–46. MR 1438309.

[6] Strang, Gilbert (1 June 1987). “Karmarkar’s algorithm [29] Maros, István (2003). Computational techniques of the
and its place in applied mathematics”. The Mathemat- simplex method. International Series in Operations Re-
ical Intelligencer. New York: Springer. 9 (2): 4– search & Management Science. 61. Boston, MA: Kluwer
10. doi:10.1007/BF03025891. ISSN 0343-6993. MR Academic Publishers. pp. xx+325. ISBN 1-4020-7332-
'''883185'''. 1. MR 1960274.

[30] Bland, Robert G. (May 1977). “New finite pivoting rules


[7] Murty (1983, Theorem 3.1)
for the simplex method”. Mathematics of Operations Re-
[8] Murty (1983, Theorem 3.3) search. 2 (2): 103–107. doi:10.1287/moor.2.2.103.
JSTOR 3689647. MR 459599.
[9] Murty (1983, p. 143, Section 3.13)
[31] Murty (1983, p. 79)
[10] Murty (1983, p. 137, Section 3.8)
[32] There are abstract optimization problems, called oriented
[11] George B. Dantzig and Mukund N. Thapa. 1997. Linear matroid programs, on which Bland’s rule cycles (incor-
programming 1: Introduction. Springer-Verlag. rectly) while the criss-cross algorithm terminates cor-
rectly.
[12] Evar D. Nering and Albert W. Tucker, 1993, Linear Pro-
grams and Related Problems, Academic Press. (elemen- [33] Klee, Victor; Minty, George J. (1972). “How good is
tary) the simplex algorithm?". In Shisha, Oved. Inequali-
ties III (Proceedings of the Third Symposium on Inequal-
[13] Robert J. Vanderbei, Linear Programming: Foundations ities held at the University of California, Los Angeles,
and Extensions, 3rd ed., International Series in Operations Calif., September 1–9, 1969, dedicated to the memory of
Research & Management Science, Vol. 114, Springer Theodore S. Motzkin). New York-London: Academic
Verlag, 2008. ISBN 978-0-387-74387-5. Press. pp. 159–175. MR 332165.
8 15 EXTERNAL LINKS

[34] Christos H. Papadimitriou and Kenneth Steiglitz, Combi- 0-471-09725-X. MR 720547.


natorial Optimization: Algorithms and Complexity, Cor-
rected republication with a new preface, Dover. (com-
puter science)
14 Further reading
[35] Alexander Schrijver, Theory of Linear and Integer Pro-
gramming. John Wiley & sons, 1998, ISBN 0-471- These introductions are written for students of computer
98232-6 (mathematical)
science and operations research:
[36] The simplex algorithm takes on average D steps for a cube.
Borgwardt (1987): Borgwardt, Karl-Heinz (1987). The • Thomas H. Cormen, Charles E. Leiserson, Ronald
simplex method: A probabilistic analysis. Algorithms and L. Rivest, and Clifford Stein. Introduction to Algo-
Combinatorics (Study and Research Texts). 1. Berlin:
rithms, Second Edition. MIT Press and McGraw-
Springer-Verlag. pp. xii+268. ISBN 3-540-17096-0.
MR 868467.
Hill, 2001. ISBN 0-262-03293-7. Section 29.3:
The simplex algorithm, pp. 790–804.
[37] Spielman, Daniel; Teng, Shang-Hua (2001). “Smoothed
analysis of algorithms: why the simplex algorithm usu- • Frederick S. Hillier and Gerald J. Lieberman:
ally takes polynomial time”. Proceedings of the Thirty- Introduction to Operations Research, 8th edition.
Third Annual ACM Symposium on Theory of Comput- McGraw-Hill. ISBN 0-07-123828-X
ing. ACM. pp. 296–305. arXiv:cs/0111050 .
doi:10.1145/380752.380813. ISBN 978-1-58113-349-3. • Rardin, Ronald L. (1997). Optimization in opera-
tions research. Prentice Hall. p. 919. ISBN 0-02-
[38] Terlaky, Tamás; Zhang, Shu Zhong (1993). “Pivot 398415-5.
rules for linear programming: A Survey on recent the-
oretical developments”. Annals of Operations Research.
Springer Netherlands. 46–47 (1): 203–233. CiteSeerX
10.1.1.36.7658 . doi:10.1007/BF02096264. ISSN
15 External links
0254-5330. MR 1260019.
• An Introduction to Linear Programming and the
[39] Fukuda, Komei; Terlaky, Tamás (1997). Thomas M. Simplex Algorithm by Spyros Reveliotis of the
Liebling and Dominique de Werra, eds. “Criss-cross Georgia Institute of Technology.
methods: A fresh view on pivot algorithms”. Math-
ematical Programming: Series B. 79 (1—3). Amster- • Greenberg, Harvey J., Klee-Minty Polytope Shows
dam: North-Holland Publishing Co. pp. 369–395. Exponential Time Complexity of Simplex Method
doi:10.1007/BF02614325. MR 1464775. University of Colorado at Denver (1997) PDF
[40] Murty (1983, Chapter 3.20 (pp. 160–164) and pp. 168 download
and 179)
• Simplex Method A tutorial for Simplex Method
[41] Chapter five: Craven, B. D. (1988). Fractional program- with examples (also two-phase and M-method).
ming. Sigma Series in Applied Mathematics. 4. Berlin:
Heldermann Verlag. p. 145. ISBN 3-88538-404-3. MR • Example of Simplex Procedure for a Standard Lin-
949209. ear Programming Problem by Thomas McFarland
of the University of Wisconsin-Whitewater.
[42] Kruk, Serge; Wolkowicz, Henry (1999). “Pseudolin-
ear programming”. SIAM Review. 41 (4): 795–805. • PHPSimplex: online tool to solve Linear Program-
doi:10.1137/S0036144598335259. JSTOR 2653207. ming Problems by Daniel Izquierdo and Juan José
MR 1723002.
Ruiz of the University of Málaga (UMA, Spain)
[43] Mathis, Frank H.; Mathis, Lenora Jane (1995). “A non-
linear programming algorithm for hospital management”. • simplex-m Online Simplex Solver
SIAM Review. 37 (2): 230–234. doi:10.1137/1037046.
JSTOR 2132826. MR 1343214.

[44] Illés, Tibor; Szirmai, Ákos; Terlaky, Tamás (1999). “The


finite criss-cross method for hyperbolic programming”.
European Journal of Operational Research. 114 (1): 198–
214. doi:10.1016/S0377-2217(98)00049-6. ISSN 0377-
2217. PDF preprint.

13 References
• Murty, Katta G. (1983). Linear programming. New
York: John Wiley & Sons, Inc. pp. xix+482. ISBN
9

16 Text and image sources, contributors, and licenses


16.1 Text
• Simplex algorithm Source: https://en.wikipedia.org/wiki/Simplex_algorithm?oldid=782008716 Contributors: Heron, Michael Hardy,
Hike395, Barak~enwiki, Charles Matthews, Dcoetzee, Viz, Jitse Niesen, Abhishek, Phil Boswell, Pfortuny, Jaredwf, Sanders muc, Al-
tenmann, Enochlau, Giftlite, BenFrantzDale, Nerd65536, KeithTyler, Shahab, NathanHurst, Discospinster, Paul August, C S, Dungodung,
Mdd, HasharBot~enwiki, MoraSique, Aegis Maelstrom, Forderud, Kenyon, Oleg Alexandrov, Myleslong, Oliphaunt, Ruud Koot, Jacj, Mag-
ister Mathematicae, Qwertyus, Rjwilmsi, Koavf, Baryonic Being, Mathbot, Nihiltres, New Thought, Nimur, Predictor, Chobot, YurikBot,
Wavelength, RobotE, RussBot, Tong~enwiki, Petter Strandmark, WAS 4.250, Arthur Rubin, JoanneB, Reject, SmackBot, RDBury, Nums-
gil, CrazyTerabyte, Lubos, Adpete, Nbarth, Mcaruso, Jjbeard~enwiki, Rrburke, Brian Parker, Epachamo, Nmnogueira, Tbbooher~enwiki,
Nat2, Jim.belk, Denshade, Yoderj, Cjohnzen, CRGreathouse, Stebulus, Cydebot, Sytelus, Wikid77, Headbomb, Pjvpjv, VictorAnyakin,
Apavlo, Smartcat, Nyq, David Eppstein, Edurant, DirkOliverTheis, J.delanoy, Xyz9000, LordAnubisBOT, K.menin, WebHamster, JonM-
cLoone, Bahram.zahir, Mehmetgencer, Epistemenical, Tomerfiliba, Akhram, Cnsdtzsf, Madmax.ptz, AlnoktaBOT, Afluent Rider, JayC,
Gerdemb, Bob the third, Finity, Tutor dave, SieBot, Marton78, Rgrimson, Paolo.dL, Alexey.salnikov, Ctxppc, Svick, Mghunt, Pecondon,
Johnuniq, XLinkBot, Addbot, Sandskies, MrOllie, Abovechief, Lightbot, Vasiľ, Luckas-bot, Yobot, AnomieBOT, Angeljon121, Bright-
galrs, Twri, LilHelpa, Gsmgm, Xqbot, Isheden, Raulshc, Guillorama, LukeOrland, Kxx, Jajhall, Alexeicolin, Kreisaisjelis, Citation bot 1,
Wingandaprayer, Kiefer.Wolfowitz, Duoduoduo, DARTH SIDIOUS 2, TryamMan, EmausBot, Look2See1, Inframaut, AsceticRose, Ri-
cardogobbo, AManWithNoPlan, Furries, Zfeinst, ClueBot NG, Aadornellesf, Sleight, Kasirbot, Nullzero, Helpful Pixie Bot, Simplexsolver,
BG19bot, Halilsen, Toffanin, Qx2020, AK456, Pintoch, Lanjagudda, Heinzerich~enwiki, William Di Luigi, Hermann Döppes, Mhauwe,
Slgonzalez, Wellset, Monkbot, Loraof, Kenbkop, The Quixotic Potato, Chandhooguy, Xmoshen and Anonymous: 161

16.2 Images
• File:Lock-green.svg Source: https://upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg License: CC0 Contributors: en:File:
Free-to-read_lock_75.svg Original artist: User:Trappist the monk
• File:Max_paraboloid.svg Source: https://upload.wikimedia.org/wikipedia/commons/7/72/Max_paraboloid.svg License: CC BY-SA 4.0
Contributors: Own work Original artist: IkamusumeFan
• File:Simplex-description-en.svg Source: https://upload.wikimedia.org/wikipedia/commons/e/ef/Simplex-description-en.svg License:
CC BY-SA 3.0 Contributors: https://commons.wikimedia.org/wiki/File:Simplex_description.png Original artist: Victor Treushchenko
• File:Simplex-method-3-dimensions.png Source: https://upload.wikimedia.org/wikipedia/commons/d/d4/
Simplex-method-3-dimensions.png License: CC-BY-SA-3.0 Contributors: Created using gimp based on Image:Elongated_pentagonal_
orthocupolarotunda.png. Original artist: User:Sdo
• File:Wikibooks-logo-en-noslogan.svg Source: https://upload.wikimedia.org/wikipedia/commons/d/df/Wikibooks-logo-en-noslogan.
svg License: CC BY-SA 3.0 Contributors: Own work Original artist: User:Bastique, User:Ramac et al.

16.3 Content license


• Creative Commons Attribution-Share Alike 3.0

You might also like