Dual Simplex Method and Its Illustration
Dual Simplex Method and Its Illustration
Dual Simplex Method and Its Illustration
Topic 5:
Dual simplex method and its illustration:
When we initiate the simplex method to solve the following LPP
max z = cT x
subject to Ax + I x
=b
x, x
0
We always make sure that the right hand side vector b is non-negative. But why?
To ensure that the basic solution is feasible at every iteration of the method.
Note that in all the examples discussed upto now, the column vector xB 0, i.e,
- Upto now we are concerned with primal feasible basis. Turn the focus on the zj cj
row.
- Some elements in this row are negative until the final iteration.
- In the event of optimality reached, all elements in this row becomes non-negative.
- The associated basis is called then called dual feasible.
The last statement is just because while constructing the proof of the strong duality theorem
(Lecture 2, Module 5); we define the dual variables wj = (cTB B 1 )j and shown them equal to
zj cj values corresponding to the initial identity matrix columns.
A closer look at the simplex method ( also called primal simplex method ) reveals the following:
Always maintain the primal feasibility.
Attempt to attain the dual feasibility.
We could have thought off in opposite direction. Instead, can we initiate an algorithm with dual
feasibility and without compromising it try to get the primal feasibility?
This is the question that we would precisely like to answer in this lecture. A variant of the
primal approach known as the dual simplex method is proposed.
How the dual simplex method will work?
Primarily it is very similar to the primal simplex algorithm.
The direction and philosophy are although different.
Until the final iteration, each basis examined is primal infeasible (some negative values in
the xB column)
Each basis is but dual feasible (all elements in zj cj row are non-negative).
c
Copyright
Reserved IIT Delhi
2
At the optimal (final) iteration, the solution will be both primal and dual feasible, provided
the problems have optimal solutions.
Throughout the iterations we maintain the dual feasibility and drive towards primal feasibility.
Without going into the mathematical intricacies of the algorithm we present below the brief
outline of the dual simplex algorithm.
Step 1: Initialization
Start with the dual feasible basis and let k = 1. Create a tableau for this basis in the simplex
form. If the column xB is non-negative, the solution in hand is optimal, so stop.
Step 2: Iteration k
(a) Select the leaving variable with most negative xBr . Thus, row r is the pivot row.
(b) Determine the entering variable xs by the following ratio test:
zj cj
zs cs
= max
| yrj < 0, j = 1, . . . , n. .
yrs
yrj
Thus, the sth column is a pivot column and yrs < 0 is the pivot element.
(c) Change the basis by replacing xBr with xs . Create a new tableau by performing the pivot
operations same as we do in the primal simplex method.
Note: If in step 2(b), there is no yrj < 0 in the rth pivot row (i.e. yrj 0, j = 1, . . . , n.),
then the problem has no feasible solution.
c
Copyright
Reserved IIT Delhi
3
The initial table (with x4 , x5 slacks) is
cB
0
vB
x4
cj
xB
-2
x5
-3
zj cj
-5
y1
1
-35
y2
-1
-20
y3
-1
0
y4
1
0
y5
0
-3
35
20
1
5
Note , zj cj 0, j, so the current solution is dual feasible but not primal feasible as xB < 0.
x5 = 3 is the most negative, so let x5 leaves the basis. Now,
zj cj
5 35
max
| y2j < 0
= max
,
= 5.
y2j
1 3
So, x1 enters into the basis, and y21 = 1 is the pivot element. The next iteration results in
the following table.
cB
vB
cj
xB
0
-5
x4
x1
-5
3
0
1
zj cj
-5
y1
-35
y2
-20
y3
0
y4
0
y5
-1
0
1
0
1
-1
20
4
3
20
Again, zj cj 0, j and x4 = 5 < 0. So, x4 is selected to leave the basis. The entering
vector is selected by the following rule.
zj cj
20 20
20
max
| y1j < 0
= max
,
=
.
y1j
4 1
4
Thus, x2 enters into the basis. The next tableau is then as follows.
cB
-35
vB
x2
cj
xB
5/4
-5
x1
-3/4
zj cj
-5
y1
0
-35
y2
1
-20
y3
1/4
3
4
0
y4
-1/4
0
y5
-1/4
3/4
-1/4
10
15
c
Copyright
Reserved IIT Delhi
4
This time x1 =
3
4
< 0, so it leaves the basis and the vector to enter is the one for which
zj cj
20
20
max
| y2j < 0
= max
, 40
=
,
y2j
3
3
cB
-35
-20
vB
x2
x3
cj
xB
1
1
-5
y1
1/3
-4/3
-35
y2
1
0
-20
y3
0
1
0
y4
0
-1
0
y5
-1/3
1/3
zj cj
20
20
c
Copyright
Reserved IIT Delhi
cB
0
vB
x3
cj
xB
-4
x4
-7
-1
zj cj
-1
y1
-2
-2
y2
-1
7
2
0
y3
1
0
y4
0
cB
cj
xB
vB
0
-2
-2
y2
0
y3
0
y4
0
1
1
0
-1/7
-1/7
5/7
2/7
cj
xB
21/13
10/13
-1
y1
1
0
-2
y2
0
1
0
y3
-7/13
1/13
0
y4
1/13
-2/13
zj cj
5/13
Feasible
se
3/13
x3
x2
-1
y1
13
7
-3
1
1/7
zj cj
cB
-1
-2
vB
x1
x2
Optimal Solution is x1 = 21/13, x2 = 10/13. Graphically, the iterations are shown below:
X2*is not integer Can be removed
X2
X
X
Feasible Set
x
Optimal Solution
and feasible too
(0, 1)
(0, 4)
x x
x
(0, 0)
l
(2, 0)
l
(7, 0)
c
Copyright
Reserved IIT Delhi
X1
6
Note: (0, 0) (0, 0, 4, 7) in basic solution (see table 1).
(0, 1) (0, 1, 3, 0) in basic solution after first iteration (see table 2).
21 10
21 10
13 , 13 13 , 13 , 0, 0 in basic solution after second iteration (see table 3).
The following example is included to show that if we convert the dual problem into standard
form and then apply the primal simplex method on it, the resulting algorithm is not the same
as applying the dual simplex method on the primal problem. The example is taken from
www.brainmass.com/homework-help/math/optimization/55790
cB
-1
-1
cj
vB
x1
x2
xB
1
1
-1
y1
1
0
-1
y2
0
1
c
Copyright
Reserved IIT Delhi