Revised Simplex Method

Outline
 secrets
 equivalence
between row operations & matrix
multiplication
 simplex
 revised
tableau in matrix form
simplex method
 relationship
with column generation
1
The Most Beautiful …
2
Maybe the Most Beautiful of All…
 linear
algebra
geometric
properties
algebraic
properties
matrix
properties
3
To be at Home with the Material
 familiar
 be
with the equivalence
lazy
 keeping
 e.g.,
and working only with the essence
how much information to carry in solving
3w  4 x  7 y  12
2w  x  6 y  8
 (sometimes)
 e.g.,
 3 4 7 12 


2

1
6
8


use logic, not eyes
 3 4 7 12   4 3 7 12 



2

1
6
8

1
2
6
8

 

in some sense
4
Equivalence Between
Row Operations & Matrix Multiplication
w x y b
(1)  3 4 8 12 
(2)  2 1 4 8 
 let
E=
 EA
=
making w basic in (1)
row operations:
(a) (1) = (1)/3
(b) (2) = (2)-2(1)
 1 4 / 3 8 / 3 4  (1)

 (2)
0

11/
3
28
/
3
0


 1/ 3 0 
 3 4 8 12 

 and A = 


2
/
3
1
2

1
4
8




 1 4 / 3 8 / 3 4 


0

11/
3
28
/
3
0


5
Equivalence Between
Row Operations & Matrix Multiplication
w x y b
(1)  3 4 8 12 
(2)  2 1 4 8 
 let
E=
 EA
=
making y basic in (2)
row operations:
(a) (2) = (2)/4
(b) (1) = (1)+8(2)
2
0 28  (1)
 7

 (2)
0.5

0.25
1
2


1 2 
 3 4 8 12 

 and A = 

0
1/
4
2

1
4
8




2
0 28 
 7


0.5

0.25
1
2


6
Equivalence Between
Row Operations & Matrix Multiplication
 what
v
should E be to make “v basic in (3)”?
w
x y b
 4 1 0 4 8



1
0
4
5
4


 2 2 6 3 2 


7
Simplex Tableau
Minimization
initial tableau
B. V.
xS
x
xS
-z
RHS
cT
0
1
0
A
I
0
at some intermediate tableau
with xB as basic variables
b
xB
xN
xS
-z
RHS
B. V.
cBT
cNT
cST
1
cTB B 1b
xB
I
B-1N
B-1
0
B-1b
cBT = cTB  cTBB1B = 0
initial tableau with columns of xB in the T
T 1
cS = cB
B I  cTBB1
intermediate tableau separated out
(xB xN)
B. V.
cTB cTN 
xS
(B N)
xS
-z
RHS
0
1
0
I
0
b
cNT = cTN  cTBB1N
short form
x
RHS
B. V.
c T = cT  cTBB1A
cTB B 1b
xB
B-1A
B-1b
8
Simplex Procedure

x
RHS
B. V.
c T = cT  cTBB1A
cTB B 1b
xB
B-1A
B-1b
an iteration before minimal:

1 Find the smallest c j ; if all c j are non-negative, the minimal has
been found and stop; else continue.

2 Identify the entering variable xenter as the xj with the smallest c j .

3 Identify the leaving variable xleave as xi with the minimal ratio. Stop
if the problem is unbounded; else continue.

4 Identify aleave,enter from xenter and xleave.

5 Pivot on element aleave,enter to update the whole tableau and go to
step 1.
9
Inefficient Simplex Procedure
 no
guarantee that the smallest
number of iterations
cj
gives the least
opt.
 can
arbitrarily pick an xj with negative reduced
cost as the entering variable
 no
need to update the whole tableau
10
Minimal Information
for the Simplex Procedure


x
RHS
B. V.
c T = cT  cTBB1A
cTB B 1b
xB
B-1A
B-1b
minimal information: the set of current basic variables xB to
generate the WHOLE tableau
conceptually, from xB


known cB
known current basis Bcur and hence known (Bcur)-1


any clever (i.e., lazy) method to get (Bnew)-1 from (Bcur)-1 without
inverting Bnew every time?
the whole tableau from B-1
11
Revised Simplex Algorithm
x
RHS
B. V.
c T = cT  cTBB1A
cTB B 1b
xB
B-1A
B-1b
 keeping
track of xB and (Bcur)-1
 entering
variable from reduced costs
 leaving
variable from minimum ratio test
 finding
(Bnew)-1 from (Bcur)-1
12
Revised Simplex Algorithm
 suppose
we have the current basic variables
xB,cur and the inverse of the basis (Bcur)-1
 known
entities of the tableau:
xB,cur
xN,cur
-z
RHS
B. V.
0
?
1
1
cT
B ,cur (B cur ) b
xB
I
?
0
(Bcur)-1b
13
Revised Simplex Algorithm

to find the entering variable xe : calculate for nonbasic variables
c j  c j  cTB,cur (Bcur )1 A j where A j is the jth column

stop if all reduced costs are non-negative; else
pick the first xj with negative reduced cost as the
entering variable
xB,cur
xN,cur
z
RHS
B. V.
0
?
-1
cTB,cur (Bcur )1b
xB
I
?
0
(Bcur)-1b
14
Revised Simplex Algorithm

to find the leaving variable xl
column (Bcur)-1Ae of the entering variable xe
 with known RHS, execution of minimal ratio test to
determine the leaving variable xl (if available)
 pivoting on al,e to turn column e into (0, .., 0, 1, 0..,
0)T, where “1” occurs at the lth row
 known
xB,cur
xe
xN,cur
-z
RHS
B. V.
0
ce  ce  cTB,cur (Bcur )1Ae  0
?
1
cTB,cur (Bcur )1b
xB
I
(Bcur)-1Ae
?
0
(Bcur)-1b
15
Equivalence Between
Row Operations & Matrix Multiplication
 what
v
should E be to make “v basic in (3)”?
w
v
x y b
 4 1 0 4 8



1
0
4
5
4


 2 2 6 3 2 


making v basic in (3)
row operations:
(a) (3) = (3)/2
(b) (2) = (2)+(3)
(c) (1) = (1)-2(3)
w
x
y b
 0 5 12 2 4 


13
5
 0 1 7
2


3
1

1
3
1

2

 1 0 2 


1
elementary matrix E =  0 1 2 


1
0 0 2 
16
Revised Simplex Algorithm
 to
find the elementary matrix E that turns Ae
into Ae
 a1,e 


Suppose Ae  

a 
 m ,e 
 row
0
 
 
0
row operations  
Ae  EAe 
1
0
 
 
0
equivalent to pre 
operations are
multiplying by matrix E, where E = I except
the lth column,
 a1 ,
if i  l ,
 l .e
(E)i ,l   a
 ali..ee

o.w.
17
Revised Simplex Algorithm
 to
find (Bnew)-1 from (Bcur)-1
 claim:
(Bnew)-1 = E(Bcur)-1
xB
xN
xS
-z
RHS
B. V.
…
…
…
1
…
xB
I
…
(Bcur)-1
0
...
row
operations
pre-multiplied
by E
xB
xN
xS
-z
RHS
B. V.
…
…
…
1
…
xB
I
…
(Bnew)-1
0
...
18
Example of
Revised Simplex Algorithm
 max
2x1+x2  min 2x1x2,
 s.t.
–x1+x2  2,

x2  4,

x1+x2  8,

x1

x1, x2  0.
 6,
19
Solving the Example
by Simplex Method
20
Solving the Example
by Simplex Method
21
Solving the Example
by Simplex Method
22
Example of
Revised Simplex Algorithm
23
Relationship Between
Revised Simplex and Column Generation

revised simplex method
 no
need to generate the whole tableau
 only
generating columns when searching for first
negative reduced cost

column generation method
 generating
column of non-basic variables only when
necessary
 usually
with additional complexity to determine the
best entering variable for a given situation
24