You are on page 1of 7

Revised simplex method

Matrix representation of the simplex table


Suppose that we have a LP model in the standard form:
Max z = c 1 x 1 + c 2 x 2 + ` + c n x n
Subject to
a 11 x 1 + a 12 x 2 + ` + a 1n x n š b 1 O
a 21 x 1 + a 22 x 2 + ` + a 2n x n š b 2
_
a m1 x 1 + a m2 x 2 + ` + a mn x n š b m
and
x 1 , x 2 , ..., x n › 0
Its augmented form is
Max z = c 1 x 1 + c 2 x 2 + ` + c n x n
Subject to
a 11 x 1 + a 12 x 2 + ` + a 1n x n + x n+1 = b 1 A
a 21 x 1 + a 22 x 2 + ` + a 2n x n + x n+2 = b 2
_
a m1 x 1 + a m2 x 2 + ` + a mn x n + x n+m = b m
and
slack variables

x 1 , x 2 , ..., x n , x n+1 , ..., x n+m › 0


Let
c= c1 c2 ` cn 0 ` 0

a 11 a 12 ` a 1n 1 0 0
a 21 a 22 ` a 2n 0 1 0
A=
_
a m1 a m2 a mn 0 0 1

x1 x n+1 b1
x2 x n+2 b2
x= , xs = , b= .
_ _ _
xn x n+m bm

Then the system (O) can be written as


Max z = cx
s.t. Ax š b
x›0
The system (A) can be written as
Max z = cx
x
s.t. A I =b
xs

x
›0
xs

The first row of the initial table of the simplex method can be written in the matrix form
z ? cx = 0
or

z
1 ?c 0 x =0
xs

The initial table of the simplex method is


z x1 ` xn x n+1 ` x n+m RHS
1 ?c 1 ` ?c n 0 ` 0 0
x n+1 0 a 11 ` a 1n 1 ` 0 b1
_ 0 _ _ _ _ _
x n+m 0 a m1 ` a mn 0 ` 1 bm

can be represented by

1 ?c 0 0
0 A I b

which is equivalent to the matrix equation:

z
1 ?c 0 0
x = . M
0 A I b
xs

Example Consider the system


Max z = 2x 1 + 3x 2
s.t.
x 1 + 2x 2 š 6
2x 1 + x 2 š 9
x1, x2 › 0
Its augmented form is
Max z = 2x 1 + 3x 2
s.t.
x 1 + 2x 2 + x 3 = 6
2x 1 + x 2 + x 4 = 9

x1, x2, x3, x4 › 0


We have

1 2 6 x1 x3
c= 2 3 ,A = ,b = ,x = , xs = .
2 1 9 x2 x4
z
z x1
1 ?c 0 x = 1 ?2 ?3 0 0 x2 = z ? 2x 1 ? 3x 2
xs x3
x4

z
z x1
0 1 2 1 0 x 1 + 2x 2 + x 3
0 A I x = x2 =
0 2 1 0 1 2x 1 + x 2 + x 4
xs x3
x4

Revised Simplex Method


In the iterations of simplex method, the most important information is the choice of basic
variables.. Once we know what are the basic variables, all the other information can be figured out
from the initial table (M). For example, suppose we chose x 2 , x 4 to be our basic variables after some
iteration.

x1
x 1 2 1 0 x2
A I =
xs 2 1 0 1 x3
x4

0
1 2 1 0 x2
(Let x 1 , x 3 be 0) =
2 1 0 1 0
x4

2 0
= x2 + x4
1 1

2 0 x2
=
1 1 x4

We know that the effect of the row operation can be represented by multiplying a matrix from the
left. If after one iteration, x 2 , x 4 are the current basic variable, then all the row operations up to that
point will change the columns of x 2 , x 4 into an identity matrix. Therefore all those operation is
2 0
equivalent to multiplying the inverse of B = .
1 1
?1
1
2 0 0
B ?1 = = 2
1 1 ? 12 1

Therefore the lower part of the new simplex table should be


1 1 1
0 0 1 2 1 0 0 1 0
B ?1 0 A I = 2
= 2 2
? 12 1 0 2 1 0 1 0 3
2
0 ? 12 1

Because the same operation is applied to the right hand side, we have the new lower part of the right
hand side
1
0 6 3 x2
B ?1 b = 2
= = Å= x B Æ
? 12 1 9 6 x4

1
0 6
That gives us x 2 = 3 and x 4 = 9, so z = 3 0
2
= 3 ¿ 3 + 0 ¿ 6 = 9.
? 12 1 9
cB
In general, suppose that B is formed by the columns of A that correspond to the basic variables,
and we define x B and c B similarly. Then initially, the simplex table in the matrix form is

z
1 ?c 0 0
x =
0 A I b
xs

After some iteration, we get

z c B B ?1 b 1 c B B ?1 0
= =
xB B ?1 b 0 B ?1 b

1 c B B ?1
Therefore, is the matrix representing all the row operations and the matrix for the
0 B ?1
simplex table after the iteration is

z
1 c B B ?1 1 ?c 0 1 c B B ?1 0
x =
0 B ?1 0 A I 0 B ?1 b
xs

z
1 c B B ?1 A ? c c B B ?1 c B B ?1 b
x = .
0 B ?1 A B ?1 B ?1 b
xs

In our example, we have


1
0
cB B ?1 = 3 0
2
= 3
0
? 12 1 2

1 2
c B B ?1 A ? c = 3
2
0 ? 2 3 = ? 12 0
2 1

So the complete table would be

1 ? 12 0 3
2
0 9
0 1/2 1 1/2 0 3
0 3/2 0 ?1/2 1 6

Next step: x 1 would be the entering basic variable and x 4 would be the leaving basic variable.
x2 2 1
xB = ,B = . We have
x1 1 2

2
? 13
B ?1 = 3
, cB = 3 2 , c B B ?1 = 4 1
? 13 2
3
3 3

2
? 13 1 2
c B B ?1 A ? c = 3 2
3
? 2 3 = 0 0
? 13 2
3
2 1

The calculation in the second line is not necessary.. That tells us that this is an optimal solution. The
solution is

x2 2
? 13 6 1
xB = = B ?1 b = 3
=
x1 ? 13 2
3
9 4

The steps of the Revised Simplex Method:


1. Initialization. Same as before.
2. Optimality test: Calculate c B B ?1 and c B B ?1 A ? c for the nonbasic variables. If the solution is not
optimal, find the entering basic variable.
3. Determine the leaving basic variable: calculate only the column of the entering basic variable,
say it is x j , and then the ratios b i /a ij for the positive entries a ij .
The column of x j can be calculated by multiplying B ?1 to that column in A.
?1 = E 6 B ?1
B new old
where E is the matrix corresponding to the row operations used. For example:
1
0
B ?1
old = 2
? 12 1
The row operations we are going to use are:
a. Multiply row 2 with 2/3;
b. Multiply the new row 2 with ?1/2 and add that to row 1.
1 0 1 0 1 ?1/3
Õ Õ =E
0 1 0 2/3 0 2/3

1 ?1/3 1
0 2
? 13
B ?1 new = 2
= 3
0 2/3 ? 12 1 ? 13 2
3
?1 :
Of course we can also do the row operations on B old
1
0 2 ¿R2 1
0 ? 12 R2+R1 2
? 13
2
Õ Õ
3 2 3
.
? 12 1 ? 13 2
3
? 13 2
3

There is a formal description of this on pages 171-172. The vector R mentioned in the book in
our example is

?1/3
2/3

You might also like