Sei sulla pagina 1di 26

The Simplex Method (An Example Implementation)

Important feature of the initial simplex tableau: It displays a particular feasible solution of the problem:
Remembering that rows [1] [3] of that tableau correspond to the constraints,
12 x1 + 20 x2 + 25 x4
+ 15 x5 + s1
= 17280
10 x1 + 8 x2 + 16 x3
+ s2
= 11520
20 x1 + 20 x2 + 20 x3 + 20 x4 + 20 x5
+ s3 = 23040
setting variables x1, x2, x3, x4, x5 to zero,
the last column of the tableau displays the values of the remaining variables, that is, s1, s2, and s3.
x1 = x2 = x3 = x4 = x5 = 0;

s1 = 17280, s2 = 11520, s3 = 23040

Another feature is that it displays the objective function value of the indicated feasible solution:
Remembering that row [0] of the tableau corresponds to objective function,
Z - 55 x1 - 60 x2 - 35 x3 - 40 x4 - 20 x5 + 0 s1 + 0 s2 + 0 s3 = 0
since, x1 = x2 = x3 = x4 = x5 = 0, and the coefficients of s1, s2, and s3 are zero, this simply reads: Z=0
The tableau also indicates whether the current feasible solution and the objective value are optimal, and if not how to
generate a better feasible solution:
Rewrite the objective function equation corresponding to row [0] as,
Z = 0 + 55 x1 + 60 x2 + 35 x3 + 40 x4 + 20 x5 - 0 s1 - 0 s2 - 0 s3
Optimization Tools

4.1

LP - Simplex Method

and ask the following simple, but very critical question,


- Individually consider the variables set to zero (i.e. x1, x2, x3, x4, x5); Which one would improve the objective
value if increased from level 0?
The sign of the coefficients of these variables (negative signs in the first row of the tableau) point at the desirable
answer. In this case, increasing any one would lead to an increase and improvement in objective function value.
At this point, the variable to be increased (the candidate variable) can be selected arbitrarily from the available
set. However, only one variable should be selected for increase. Suppose x4 is selected.
The next important question how much to increase the candidate variable x4? Obviously, the more x4 increases, the
better is the objective function value. But, there are other considerations:
Rows [1] [3] of the tableau and the fact that x1, x2, x3, x5 are set to zero imply the following relationship between
the non-zero variables and the candidate variable.
25 x4 + s1 = 17280
+ s2 = 11520
20 x4 + s3 = 23040
-

Increasing x4 would not effect s2, but it would decrease s1 and s3.

Since all variables are to be nonnegative, this means we can only increase x4 to the point where one of the
current nonzero variables becomes zero.

The variable to reach zero first is determined by the variables current values and their rate of decrease.
That is, the ratio of the corresponding value in the last column of the tableau, to the corresponding value in the
candidate variable column of the tableau.

Optimization Tools

4.2

LP - Simplex Method

" 17280 23040 % 17280


min$$
,
'' =
= 691.2
25
20
25
#
&
-

In other words, the above ratio minimization tells us that,


i) s1 is the first variable to reach zero,
ii) x4 can only be increase to the value 691.2; beyond this value s1 would be negative, which is unwanted.

This analysis shows that the current solution is not optimal and that a better one can be obtained by increasing x4 to
691.2 and decreasing s1 to 0.
Next we update the current simplex tableau to reflect this new solution. The updating is based on a simple need:
- The fact that nonzero variables appeared in only a single constraint and with a unity coefficient made it possible
to read the previous solution directly from the tableau.
- The fact that nonzero variables had 0 coefficients in the objective function row made it possible to read the
objective value from the tableau and to conclude about optimality or non optimality of the previous solution.
- Accordingly, we would like the new nonzero variable, x4, to appear with a unity coefficient only in row [1] and
have 0 coefficient in all other rows.
- This is achieved through a the following set of elementary row operations.
i) Divide row [1] by 25.
ii) Multiply row [1] by - 20 and add to row [3].
iii) Multiply row [1] by 40 and add to row [0].
These elementary row operations will result in the following simplex tableau:

Optimization Tools

4.3

LP - Simplex Method

z
1
0
0
0

x1
- 35.8
0.48
10.0
10.4

x2
x3
- 28 - 35
0.8 0.0
8.0 16.0
4.0 20.0

x4
0
1
0
0

x5
4
0.6
0.0
8.0

s1
1.6
0.04
0.0
- 0.8

s2
0
0
1
0

s3
0 27648
0
691.2
0 11520
1
9216

This new simplex tableau displays the new current feasible solution:
Remembering that rows [1] [3] of that tableau correspond to the constraints,
0.48 x1 + 0.8 x2
+ x4 + 0.6 x5+ 0.04 s1
= 691.2
10 x1
+ 8 x2 + 16 x3
+ s2
= 11520
10.4 x1
+ 4 x2 + 20 x3
+ 8 x5 - 0.8 s1
+ s3 = 9216
setting variables x1, x2, x3, x5, s1, to zero, the last column of the tableau displays the values of the remaining
variables, that is, x4, s2, and s3.
x1 = x2 = x3 = x5 = s1 = 0;

x4 = 691.2, s2 = 11520, s3 = 9216

The new tableau also displays the objective value of this feasible solution:
Remembering that row [0] of the tableau corresponds to objective function,
Z - 35.8 x1- 28 x2 - 35 x3 + 0 x4 + 4 x5 + 1.6 s1 + 0 s2 + 0 s3 = 27648
since, x1 = x2 = x3 = x5 = s1 = 0, and the coefficients of x4, s2, and s3 are zero, this simply reads:

Z = 27648

The tableau also indicates whether the current feasible solution and the objective value are optimal, and if not how to
generate a better feasible solution:
Optimization Tools

4.4

LP - Simplex Method

Rewrite the objective function equation corresponding to row [0] as,


Z = 27648 + 35.8 x1 + 28 x2 + 35 x3 + 0 x4 - 4 x5 - 1.6 s1 + 0 s2 + 0 s3
and ask the same question,
- Individually consider the variables set to zero (i.e. x1, x2, x3, x5, s1). Which one would improve the objective
value if increased from level 0?
The sign of the coefficients of these variables (negative signs in the first row of the tableau) point at the answer.
Increasing x1 or x2 or x3 would lead to an increase and improvement in the objective value.
The new candidate variable can again be selected arbitrarily from the available set. Suppose x2 is selected.
The next question is how much to increase the candidate variable x2?
Obviously, the more x2 increases, the better is the objective function value. But, there are again other
considerations:
Rows [1] [3] of the tableau and the fact that x1, x3, x5, s1 are set to zero imply the following relationship between
the non-zero variables and the candidate.
0.8 x2 + x4 = 691.2
8 x2 + s2 = 11520
4 x2 + s3 = 9216
- Increasing x2 would decrease x4, s2 and s3.
- Since all variables are to be nonnegative, this means we can only increase x2 to the point where one of the
current nonzero variables becomes zero.
- Variable to reach zero first is determined by the variables current values and their rate of decrease.
Optimization Tools

4.5

LP - Simplex Method

That is, the ratio of the corresponding value in the last column, to the related value in the candidate variable
column of the tableau.
" 691.2 11520 9216 % 691.2
min$$
,
,
'=
= 864
8
4 '& 0.8
# 0.8
In other words, the above ratio minimization tells us that,
i) x4 is the first variable to reach zero,
ii) x2 can only be increase to the value 864; beyond this value x4 would be negative, which is unwanted.

This analysis shows that the current solution is not optimal and that a better one can be obtained by increasing x2 to
864 and decreasing x4 to 0.
Next we update the current simplex tableau to reflect this new solution. The updating is based on the following need:
- We would like the new nonzero variable, x2, to appear with a unity coefficient only in row [1] and have zero
coefficient in all other rows.
- This is achieved through the following set of elementary row operations.
i) Divide row [1] by 0.8.
ii) Multiply row [1] by - 8 and add to row [2].
iii) Multiply row [1] by - 4 and add to row [3].
iv) Multiply row [1] by 28 and add to row [0].
These elementary row operations will result in the following simplex tableau:

Optimization Tools

4.6

LP - Simplex Method

z
1
0
0
0

x1
- 19
0.6
5.2
8.0

x2
0
1
0
0

x3
- 35
0.0
16.0
20.0

x4
35
1.25
- 10.0
- 5.0

x5
s1
25
3
0.75 0.05
- 6.0 - 0.4
5.0 - 1.0

s2
0
0
1
0

s3
0
0
0
1

51840
864
4608
5760

This new simplex tableau displays the new current feasible solution:
Remembering that rows [1] to [3] of that tableau correspond to the constraints,
0.6 x1 + x2
+ 1.25 x4 + 0.75 x5 + 0.05 s1
= 864
5.2 x1
+ 16 x3 - 10.0 x4 - 6.0 x5 - 0.4 s1 + s2
= 4608
8.0 x1
+ 20 x3 - 5.0 x4
+ 5 x5
- s1
+ s3 = 5760
setting variables x1, x3, x4, x5, s1, to zero,
the last column of the tableau displays the values of the remaining variables, that is x2, s2, and s3.
x1 = x3 = x4 = x5 = s1 = 0;

x2 = 864, s2 = 4608, s3 = 5760

The new tableau also displays the objective value of this feasible solution:
Remembering that row [0] of the tableau corresponds to objective function,
Z - 19 x1 + 0 x2 - 35 x3 + 35 x4 + 25 x5 + 3 s1 + 0 s2 + 0 s3 = 51840
since, x1 = x3 = x4 = x5 = s1 = 0, and the coefficients of x2, s2, and s3 are zero, this simply reads:

Z = 51840

The tableau also indicates whether the current feasible solution and the objective value are optimal, and if not how to
generate a better feasible solution:
Rewrite the objective function equation corresponding to row [0] as,
Optimization Tools

4.7

LP - Simplex Method

Z = 51840 + 19 x1 + 0 x2 + 35 x3 - 35 x4 - 25 x5 - 3 s1 + 0 s2 + 0 s3
and ask the question,
- Individually consider the variables set to zero (i.e. x1, x3, x4, x5, s1). Which one would improve the objective
value if increased from level 0?
Sign of the coefficients of the variables (negative signs in the first row of the tableau) point at the answer. In this
case, increasing x1 or x3 would lead to an increase and improvement in the objective function value.
The new candidate variable can again be selected arbitrarily from the available set. Suppose x1 is selected.
The next question is how much to increase the candidate variable x1?
The more x1 increases, the better is the objective function value. But, there are again other considerations:
Rows [1] [3] of the tableau and the fact that x3, x4, x5, s1 are set to zero imply the following relationship between
the non-zero and the candidate variable.
0.6 x1 + x2 = 864
5.2 x1 + s2 = 4608
8.0 x1 + s3 = 5760
- Increasing x1 would decrease x2, s2 and s3.
- Since all variables are to be nonnegative, we can only increase x1 to the point where one of the current
nonzero variables becomes zero.
- Variable to reach zero first is determined by the variables current values and their rate of decrease.
- That is, the ratio of the corresponding value in the last column, to the corresponding value in the candidate
variable column of the tableau
Optimization Tools

4.8

LP - Simplex Method

" 864 4608 5760 % 5760


min$$
,
,
'' =
= 720
0.6
5.2
8
8
#
&
In other words, the above ratio minimization tells us that,
i) s3 is the first variable to reach zero,
ii) x1 can only be increase to the value 720; beyond this value s3 would be negative, which is unwanted.

This analysis shows that the current solution is not optimal and that a better one can be obtained by increasing x1 to
720 and decreasing s3 to 0.
Next we update the current simplex tableau to reflect this new solution. The updating is based on the following need:
- We would like the new nonzero variable, x1, to appear with a unity coefficient only in row [3] and have zero
coefficient in all other rows
- This is achieved through the following set of elementary row operations.
i) Divide row [3] by 8.
ii) Multiply row [3] by - 0.6 and add to row [1].
iii) Multiply row [3] by - 5.2 and add to row [2].
iv) Multiply row [3] by 19 and add to row [0].
These elementary row operations will result in the following simplex tableau:

Optimization Tools

4.9

LP - Simplex Method

z
1
0
0
0

x1
0
0
0
1

x2
0
1
0
0

x3
x4
12.5 23.125
- 1.5 1.625
3.0 - 6.75
2.5 -0. 625

x5
s1
36.875 0.625
0.375 0.125
- 9.25
0.25
0.625 -0. 125

s2
0
0
1
0

s3
2.375 65520
- 0.075
432
- 0.65
864
0.125
720

This new simplex tableau displays the new current feasible solution:
x3 = x4 = x5 = s1 = s3 = 0; x1 = 720, x2 = 432, s2 = 864
The new tableau also displays the objective value of this feasible solution:
Z = 65520
The tableau also indicates whether the current feasible solution and the objective value are optimal or not:
Rewrite the objective function equation corresponding to row [0] as,
Z = 65520 + 0x1 + 0x2 - 12.5x3 - 23.125x4 - 36.875x5 - 0.625s1 + 0s2 - 2.375s3
and ask the question,
- Individually consider the variables set to zero (i.e. x3, x4, x5, s1, s3).
objective value if increased from level 0?

Which

one

would

improve

the

The sign of the coefficients of these variables point at the answer. In this case, increasing none would lead to an
improvement in the objective function value.
So, the current solution must be optimal.
Optimization Tools

4.10

LP - Simplex Method

Important Definitions and Observations


4 feasibe solutions and their objective function values were generated and investigated for optimality.
i) x1 = x2 = x3 = x4 = x5 = 0; s1 = 17280, s2 = 11520, s3 =23040; z = 0
ii) x1 = x2 = x3 = x5 = s1 = 0; x4 = 691.2, s2 = 11520, s3 = 9216;
z = 27648
iii) x1 = x3 = x4 = x5 = s1 = 0; x2 = 864,
s2 = 4608,
s3 = 5760;
z = 51840
iv) x3 = x4 = x5 = s1 = s3 = 0; x1 = 720,
x2 = 432,
s2 = 864;
z = 65520
Each such generation/investigation is considered a simplex iteration. So, there were 4 iterations in the example,
ending up with an optimal solution and value.
In each feasible solution generated,
- 5 variables were set to zero,
- the values for the remaining 3 were computed to satisfy the 3 constraints.
In n variable, m constraint LP in standard form, a solution obtained by arbitrarily setting n-m of the variables
to zero and solving m equations for the remaining m variables, is called a basic solution.
In a basic solution the variables arbitrarily set to zero are called the non-basic variables (the independent
variables) and the m variables whose values are computed based on the m constraint equations are called the
basic variables (their vaues are dictated by the constraints).
A nonnegative basic solution is called a basic feasible solution.
The set of basic variables, B, is called a basis.
Two basis are said to be adjacent if they differ in only one element.
Optimization Tools

4.11

LP - Simplex Method

In any simplex iteration, once the nonbasic variables are set to zero, the determination of the values of the basic
variables is equivalet to solving a system of m equations (constraint equations) with m unknowns (basic variables).
Such a system will have a unique solution if and only if the constraint equations are linearly independent of one
another. So, linear independence of the m constraint equations (the rank of the coefficient matrix being m) is a
condition for the initiation of the simplex method.
In each iteration, a special structure in the tableau makes it possible to acquire the following directly from the current
tableau:
i) the values of the current basic variables,
ii) the objective function value of the current basic feasible solution,
iii) optimality / non optimality of the current basic feasible solution,
iv) how to generate a better basic feasible solution, in case of non optimality.
That special structure is in the parameters of the basic variables:
- Each basic variable appears in only one constr. row and with unity coef.
- All basic variables have zero coefficients in the objective function row.
The coefficients of the basic variables are non identical unit vectors and together with the coefficients of z
(which is another unit vector), they form an identity submatrix within the simplex tableau.
Such a simplex tableau (one having an imbedded identity matrix in the columns associated with the basic variables
and z) is called a simplex tableau in canonical form with respect to a given basis.
In each simplex iteration exactly one non basic variable is designated to enter the basis (the entering basic
variable) and exactly one basic variable is designated to leave the basis (the leaving basic variable).
Optimization Tools

4.12

LP - Simplex Method

The way to change the current basis to generate an adjacent basis is pointed by specific parameters in the current
simplex tableau:
- A nonbasic variable with a (-) coefficient in row [0] is set as the entering variable (its column is called the pivot
column);
- The basic variable associated with the row in which the minimum ratio (i.e. minimum among the ratios of the
entries in column n+1 to the respective entries in the pivot column) is detected, is designated as the leaving
basic variable (its row is called the pivot row).
- The cell uniquely identified by the pivot row and the pivot column is called the pivot cell.
- The necessary elementary row operations are defined and executed to place a unity in the pivot cell and zero
everywhere else in the pivot column.
In consecutive simplex iterations adjacent (and better) basis and their simplex tableau are generated. The elementary
row operations executed in each simplex iteration enable the generation of the next simplex tableau (the one in
canonical form with respect to the next and better basis).
Summary of The Example Implementation
Iteration I:

z
1
0
0
0
Optimization Tools

x1
- 55
12
10
20

x2
- 60
20
8
20

x3
- 35
0
16
20
4.13

x4
- 40
25
0
20

x5
- 20
15
0
20

s1
0
1
0
0

s2
0
0
1
0

s3
0
0
0
1

0
17280
11520
23040
LP - Simplex Method

Basis:
B1 = {s1, s2, s3}
Basic Feasible Solution: s1 = 17280, s2 = 11520, s3 = 23040;
x1 = x2 = x3 = x4 = x5 = 0
Objective Func. Value: z = 0
Optimality Reached?
No, since at least one negative coefficient in row [0]
Entering basic variable: x4
Leaving basic variable: s1
Iteration II:

z
1
0
0
0

x1
-35.8
0.48
10.0
10.4

x2
x3
- 28 - 35
0.8 0.0
8.0 16.0
4.0 20.0

x4
0
1
0
0

x5
4
0.6
0.0
8.0

s1
1.6
0.04
0.0
- 0.8

s2
0
0
1
0

s3
0
0
0
1

27648
691.2
11520
9216

Basis:
B2 = {x4, s2, s3}
Basic Feasible Solution: x4 = 691.2, s2 = 11520, s3 = 9216;
x1 = x2 = x3 = x5 = s1 = 0
Objective Func. Value: z = 27648
Optimality Reached?
No, since at least one negative coefficient in row [0]
Entering basic variable: x2
Leaving basic variable: x4
Optimization Tools

4.14

LP - Simplex Method

Iteration III:

z
1
0
0
0

x1
- 19
0.6
5.2
8.0

x2
0
1
0
0

x3
- 35
0.0
16.0
20.0

x4
x5
s1
35
25
3
1.25 0.75 0.05
-10.0 - 6.0 - 0.4
- 5.0 5.0 - 1.0

s2
0
0
1
0

s3
0
0
0
1

51840
864
4608
5760

Basis:
B3 = {x2, s2, s3}
Basic Feasible Solution: x2 = 864, s2 = 4608, s3 = 5760;
x1 = x3 = x 4 = x5 = s 1 = 0
Objective Func. Value: z = 51840
Optimality Reached?
No, since at least one negative coefficient in row [0]
Entering basic variable: x1
Leaving basic variable: s3
Iteration IV:
z
1
0
0
0
Optimization Tools

x1
0
0
0
1

x2
0
1
0
0

x3
x4
x5
s1
12.5 23.125 36.875 0.625
- 1.5 1.625 0.375 0.125
3.0 - 6.75 - 9.25 0.25
2.5 -0. 625 0.625 -0. 125
4.15

s2
0
0
1
0

s3
2.375
- 0.075
- 0.65
0.125

65520
432
864
720
LP - Simplex Method

Basis:
B4 = {x2, s2, x1}
Basic Feasible Solution: x2 = 432, s2 = 864, x1 = 720;
x3 = x4 = x5 = s1 = s3 =0
Objective Func. Value: z = 65520 (The Optimal Value)
Optimality Reached?
Yes, since there is no negative coefficient in row [0]
Entering basic variable: Leaving basic variable: Selection of Different Entering Basic Variables
In any simplex iteration, the entering basic variable could be any one of the current nonbasic variables which have a
negative coefficient in row [0].
The simplex arguments dictate that as long as a nonbasic variable with a negative coefficient is selected, the solution
obtained at the next iteration would have a better objective function value (the choice of the column just influences
the improvement rate per unit increase in the entering basic variable).
Note: Exacty one entering variable must be designated.
Selection of a different entering variable may effect the leaving basic variable. Depending on the choices of entering
basic variables, the intermediary basis generated during the iterations of the simplex method may change; however,
this will not effect the optimal value, neither the optimal solution(s).
Iteration I:

Optimization Tools

4.16

LP - Simplex Method


z
1
0
0
0

x1
- 55
12
10
20

x2
- 60
20
8
20

x3
- 35
0
16
20

x4
- 40
25
0
20

x5
- 20
15
0
20

s1
0
1
0
0

s2
0
0
1
0

s3
0
0
0
1

0
17280
11520
23040

Basis:
B1 = {s1, s2, s3}
Basic Feasible Solution: s1 = 17280, s2 = 11520, s3 = 23040;
x1 = x2 = x3 = x4 = x5 = 0
Objective Func. Value: z = 0
Optimality Reached?
No, since at least one negative coefficient in row [0]
Entering basic variable: x1
Leaving basic variable: s3
Iteration II:

z
1
0
0
0

x1
0

x2
-5

x3
20

x4
15

0
0
1

8
-2
1

- 12
6
1

13
- 10
1

x5
35
3
- 10
1

s1
0

s2
0

s3
2.75

63360

1
0
0

0
1
0

- 0.6
- 0.5
0.05

3456
0
1152

Basis:
B2 = {s1, s2, x1}
Basic Feasible Solution: s1 = 3456, s2 = 0, x1 = 1152;
Optimization Tools

4.17

LP - Simplex Method

x2 = x3 = x 4 = x5 = s 3 = 0
Objective Func. Value: z = 63360
Optimality Reached?
No, since at least one negative coefficient in row [0]
Entering basic variable: x2
Leaving basic variable: s1
Iteration III:
z
1
0
0
0

x1
0

x2
0

0
0
1

1
0
0

x3
12.5
- 1.5
3.0
2.5

x4
x5
s1
23.125 36.875 0.625
1.625
- 6.75
- 0.625

0.375 0.125
- 9.25
0.25
0.625 -0.125

s2
0

s3
2.375

0
1
0

-0.075
- 0.65
0.125

65520
432
864
720

Basis:
B3 = {x2, s2, x1}
Basic Feasible Solution: x2 = 432, s2 = 864, x1 = 720;
x3 = x4 = x 5 = s 1 = s 3 = 0
Objective Func. Value: z = 65520
Optimality Reached?
Yes, no negative coefficient in row [0]
Entering basic variable: Leaving basic variable: -

Optimization Tools

4.18

LP - Simplex Method

Degeneracy - Selection of Different Leaving Basic Variables


The rule to identify the leaving basic variable is quite well defined:
the basic variable, associated with the row in which the minimum ratio is detected, is designated as the leaving
basic variable.
The variable identified is the one that will reach zero first when the candidate variable is increased.
Consider what happens when there is more than one row of the simplex tableau corresponding to a minimum ratio.
In the last example the mimimum ratio is
min ( 17280 , 11520 , 23040 ) = 1152
12
10
20

More than one current basic variable is reaching zero at the same time, when the candidate variable is continously
increased.
Since the simplex rule dictates the departure of a single variable from the basis at any one iteration, the next basis
will contain one basic variable at level 0.
The issue of which one will remain in the basis and which will leave the basis, among the basic variables reaching
zero simultaneously, is settled by the selection of the pivot row.
This selection is arbitrary: any row corresponding to a minimum ratio (a basic variable reaching zero first), may be
selected as the pivot row.
In the example, row [3] has been selected as the pivot row (s3 has left the basis and s2 has remained in the basis at
level 0). Pivoting on row [2] (having s2 leaving the basis and s3 staying in the basis) would be equally correct.
Optimization Tools

4.19

LP - Simplex Method

Any basic solution, which has at least one basic variable at level 0 is called a degenerate basic solution; the
associated basis is called a degenerate basis.
s1 = 3456, s2 = 0, x1 = 1152; x2 = x3 = x4 = x5 = s3 = 0 is a degenerate basic solution
B = {s1, s2, x1} is a degenerate basis.
In case of degeneracy, the current basic solution and the objective value may remain unchanged from one iteration to
the next. For example, if the tableau of iteration II was as follows ( + 2 coefficient in cell [2, 2])

z
1
0
0
0

x1
0
0
0
1

x2
-5
8
2
1

x3
20
- 12
6
1

x4
15
13
- 10
1

x5
35
3
- 10
1

s1
0
1
0
0

s2
s3
0
2.75
0 - 0.6
1 - 0.5
0 0.05

63360
3456
0
1152

Basis:
B = {s1, s2, x1}
Basic Feasible Solution: s1 = 3456, s2 = 0, x1 = 1152;
x2 = x3 = x 4 = x5 = s 3 = 0
Objective Func. Value: z = 63360
Optimality Reached?
No, since at least one negative coefficient in row [0]
Entering basic variable: x2
Leaving basic variable: s2
Then, row [2] would be the pivot row and s2 the leaving basic variable.It would not be possible to increase the
entering basic variable, x2, from level 0, and the pivot operations would leave column [n+1] intact.
Optimization Tools

4.20

LP - Simplex Method

So, neither the solution, nor the objective value would change (the basis has changed, so has the rest of the tableau).
The new basis is also a degenerate basis; the iteration executed is called a degenerate iteration.

z
1
0
0
0

x1
0
0
0
1

x2
0
0
1
0

x3
35
- 36
3
-2

x4
x5
- 10
10
- 27 - 37
-5
-5
6
6

s1
0
1
0
0

s2
s3
2.5
1.50
- 4.0
1.4
0.5 - 0.25
- 0.5
0.3

63360
3456
0
1152

Basis:
B = {s1, x2, x1}
Basic Feasible Solution: s1 = 3456, x2 = 0, x1 = 1152;
x3 = x4 = x 5 = s 2 = s 3 = 0
Objective Func. Value: z = 63360
Optimality Reached?
No, since at least one negative coefficient in row [0]
Entering basic variable: x4
Leaving basic variable: x1
Depending on the coefficients in the pivot column, degeneracy may disappear from one iteration to the next, leading
to a new, non degenerate basis and solution and to a better objective function value. (This is what would happen if
we are to continue with the above tableau).
Degeneracy is a phenomenon that may unexpectedly arise, may linger on for a few iterations and may disappear. A
degenerate iteration has the undesirable property of leading to no change in current solution and objective value.

Optimization Tools

4.21

LP - Simplex Method

Unbounded Problem - Case Of Having No Leaving Basic Variable


What happens when there is no cell having a positive coefficient in the pivot column?
No current basic variable is moving towards zero when the candidate variable is continously increased (they are
either uneffected or increasing when the candidate is increased).
It is still desirable to increase the entering variable and there is nothing to stop us from increasing it without bound to
infinity: The objective value keeps improving as the candidate variable is increased, accordingly, the optimal value is
infinity and, there is no optimal solution.
Suppose the tableau generated at the third iteration was as follows (all 0 or negative coef. in column [3]):
There is nothing to stop increasing x3 to infinity (x2 is uneffected, s2 and s3 keep increasing with x3), while improving
the objective function value 35 units per unit change in x3.
z
1
0
0
0

x1
- 19
0.6
5.2
8.0

x2
0
1
0
0

x3
- 35
0.0
- 16.0
- 20.0

x4
x5
35
25
1.25 0.75
-10.0 -6.0
- 5.0 5.0

s1
3
0.05
- 0.4
- 1.0

s2
0
0
1
0

s3
0
0
0
1

51840
864
4608
5760

Basis:
B3 = {x2, s2, s3}
Basic Feasible Solution: x2 = 864, s2 = 4608, s3 = 5760;
x1 = x3 = x4 = x5 = s1 = 0
Objective Func. Value: z = 51840
Optimality Reached?
No, since at least one negative coefficient in row [0]
Entering basic variable: x3
Optimization Tools

4.22

LP - Simplex Method

Leaving basic variable:

none, implying that the problem is unbounded.

The fact that x1 is another candidate variable who has positive coefficients in its column, does not effect the
unboundedness conclusion. If column [1] were pivoted in this iteration, unboundedness would not be avoided, but
just faced in a later iteration.
Multiple Optimal Solutions
What happens when there is at least one nonbasic variable with 0 coefficient in row [0] at termination?
In this case, having that nonbasic variable enter the basis would change the current solution and basis, but not the
objective function value (by pivoting on that column, a different tableua and a different basic feasible solution would
be generated, but row [0] would not change because of the zero coefficient).
This is the case of having multiple optimal solutions. The new basic feasibe solution reached is just another optimal
basic feasible solution.
Suppose the tableau generated at the final iteration in the exampe is as follows. In this case, if we let x3 enter the
basis, through the minimum ratio test, row 2 would be selected as the pivot row.

z
1
0
0
0
Optimization Tools

x1
0
0
0
1

x2 x3
x4
x5
s1
0
0 23.125 36.875 0.625
1 - 1.5 1.625 0.375
0.125
0
3.0 - 6.75 - 9.25
0.25
0
2.5 -0. 625 0.625 -0. 125
4.23

s2
0
0
1
0

s3
2.375
- 0.075
- 0.65
0.125

65520
432
864
720
LP - Simplex Method

Basis:
B4 = {x2, s2, x1}
Basic Feasible Solution: x2 = 432, s2 = 864, x1 = 720;
x1 = x3 = x 4 = x5 = s 1 = 0
Objective Func. Value: z = 65520 (The Optimal Value)
Optimality Reached?
Yes, but continue pivoting with 0 coefficient in [0, 3]
Entering basic variable: x3
Leaving basic variable: s2
Then, elementary row operations would lead to the following. The solution reached is a different solution, having the
same (and optimal) objective value.
z
1
0
0
0

x1
0
0
0
1

x2
0
1
0
0

x3
0
0
1
0

x4
x5
s1
23.125 36.875 0.625
- 1.75 - 3.75 0.25
- 2.25 - 3.08 0.08
5.00
8.33 -0. 33

s2

s3
0
2.375
0.50 - 0.40
0.33 - 0.22
-0.83
0.67

65520
864
288
0

Basis:
B4 = {x2, x3, x1}
Basic Feasible Solution: x2 = 864, x3 = 288, x1 = 0;
x4 = x5 = s 1 = s 2 = s 3 = 0
Objective Func. Value: z = 65520 (The Optimal Value)
Optimality Reached?
Yes
Entering basic variable: Leaving basic variable: Optimization Tools

4.24

LP - Simplex Method

Convergence of the Simplex Method; Its Relation to Graphical Approach


Simplex Method is a clever tabular representation mechanism and a well defined set of elementary row
operations applied to the constraint equations & objective function of any given LP problem in standard form.
It is designed to accomplish the following functions:
i) generatebasic feasible solutions;
ii) conclude inconsistancy if no such feasible solution exists;
iii) check optimality or nonoptimality of the current basic feasibe solution;
iv) generate an adjacent (but always different and better) basic feasible solution if optimality is not yet attained;
v) stop if optimality is attained.
Since the number of basic feasible solutions is finite, and since a better, therefore different one is being generated at
every iteration, it must converge to an optimal solution in a finite number of iteration.
The finiteness of the number of basic feasible solutions can be explained as:
- Any basic feasible solution, corresponds to a unique basis,
- Any basis is a unique combination of m out of the n variables,
- There are at most K ways such combinations may be generated, and some of those may not correspond to basic
feasible solutions,
"n%
n!
$$ '' =
=K
m!(n
(
m)!
# m&
-

The maximum number of basic feasible solutions is bounded by K, which is finite number.

Optimization Tools

4.25

LP - Simplex Method

There is one slight flaw in this argument: In case of degeneracy, same objective function value may be generated in a
series of consequent degenerate iterations.
Since objective function value is not getting better, a previously generated basis (having the same objective function
value) may be generated again, leading to a phenomenon called cycling in iterations. In case of cycling the same
subset of basis will be generated again and again, destroying convergence and failing to discover an optimal basis.
Degeneracy is quite a common phenomenon; so the fact that it may lead to cycling seems like a serious flaw, both
theoretically and practically. This is not the case: Even though the possibility of cycling exists under degeneracy, in
almost all real life problems of any size, degeneracy does not cause cycling. It arises, lingers on for a few iterations
and disappears. It is possible to refine simplex so that the possibility of cycling is eliminated.
For any L.P. problem in standard form, it can be shown that there is a one-to-one correspondance between the basic
feasible solutions of the constraint equations and extreme point solutions of the convex polytope defining the
feasible region.
Simplex Method can be regarded as algebraically accomplishing what the graphical solution procedure accomplishes
geometrically and visually:
i) generate extreme point feasible solutions,
ii) conclude inconsistancy if no such extreme point feasibe solution exists,
iii) check optimality of various extreme point feasible solutions (by pushing the objective function line through the
feasible region),
iv) move to an adjacent (always different & better) extreme point solution, if optimality is not yet attained.
v) stop at the extreme point which just touches (tangent to) objective function; optimality is attained.

Optimization Tools

4.26

LP - Simplex Method

Potrebbero piacerti anche