OR-1 20101 Chapter 7. The Revised Simplex Method Recall Theorem 3.1, same basis same dictionary...
-
Upload
susanna-ada-barnett -
Category
Documents
-
view
218 -
download
0
Transcript of OR-1 20101 Chapter 7. The Revised Simplex Method Recall Theorem 3.1, same basis same dictionary...
OR-1 2010 1
Chapter 7. The Revised Simplex Method
Recall Theorem 3.1, same basis same dictionary
Entire dictionary can be constructed as long as we know which variables are basic.
Suppose we have the following form after adding slack variables to the standard LP. (or any LP in equality form and nonnegativity)
0
subject to
' maximize
x
bAx
xc
10
1
01
21
22221
11211
mnmm
n
n
aaa
aaa
aaa
A
OR-1 2010 2
Note that we have m basic variables and n nonbasic variables in a dictionary.
Reorder the columns of A (the order that variables appear) so that the columns for basic variables come first. Partition A into A=[B : N], where B is mm (and nonsingular, see the proof in the text p.100) and the columns of B correspond to basic variables.
Let ],[ ,],[ NBNB cccxxx
NBNBN
B NxbBxbNxBxx
xNBbAx
: Then
) basis with dictionarycurrent in sconstraint of form(matrix
sidesboth on y Premultipl 111
B
NxBbBxIxB NBB
Nj Bjjj
Nj jjBjBNBNB
NNNBNNBBN
BNB
BcyxAycby
xABccbBcxNBccbBc
xcNxBbBcxcxcx
xccxcz
)''(let )'('
)'(')''('
')(''']','['
1
1111
11
OR-1 2010 3
Matrix representation of dictionary (tableau)
NB
NBNB
NxBbBx
xNBccbBcz11
11
)''('
')''('0 11
11
bBNxBx
bBcxNBccxz
NB
BNBNB
],...,,['],...,,[''2121
11nn NNNNNNBB AAAyAAABcNBc
'' ofsolution theis i.e. ,'' use frequently We 1BB cByyBcy
Note that
In the text AN is used instead of N
Nj jjjNBN xAycxNBcc )'()''( Hence 1
bybBcB '' and 1
OR-1 2010 4
Current tableau
],...,,['],...,,[''2121
11nn NNNNNNBB AAAyAAABcNBc
')''('0 11
11
bBNxBx
bBcxNBccxz
NB
BNBNB
cB’B-1N can be interpreted differently
'
'
'
'
'
''
mm
BB
a
a
y
a
a
BcNBc 11
11
i.e. we take linear combination of rows of N using weights - yi and add
it to cN’ in the z-row.
For basic variables, we have y’B = cB’. Hence the coefficients 0 of the
basic variables in the z-row can be interpreted as taking linear combination of rows of B using weights – yi and add it to cB’ in the z-
row ( cB’ + ( -cB’B-1B) = 0 ) .
OR-1 2010 5
Similar argument also holds for r.h.s., i.e. add (- y)’b to z-row.
Hence given the initial tableau, we obtain z-row of the updated tableau by taking linear combination of rows of the initial tableau using weights - yi and add it to z-row.
It is the net effect of many elementary row operations performed on the tableau.
Recall the proof of strong duality theorem, in which we claimed that, at the optimal tableau, the negative of the coefficients of slack variables in z-row is an optimal dual solution. It is the y vector obtained from y = cB’B-1.
We will see the reason shortly.
OR-1 2010 6
Initially, we have
A I b
c 00
B N b
0'Bc 'Ncz
z
After reorderingof columns
OR-1 2010 7
Updated tableau
B N b
0'Bc 'Nc
I NB 1 bB 1
bBcB10 NBcc BN
1'' z
z
= cB’ – cB’B-1B = cN’ – cB’B-1N
( = B-1 [ B : N ] ) (= B-1 b)
= 0 – cB’B-1b (cB’B-1 = y’ )
OR-1 2010 8
Let
Then updated z-row is obtained by multiplying - yi to the i-th
constraint (row) and add it to z-row for all constraints i.
We can identify the coefficient of a nonbasic variable in z-row by computing cj – y’Aj , once y vector is known ( y’ = cB’B-1 ) .
Also B-1 gives information what elementary row operations are performed on the constraints.
( updated i-th constraint = ( i-th row of B-1 ) [B : N], so j-th component of ( i-th row of B-1 ) is the weight we multiply to the j-th original constraint. We take linear combination of rows of [B : N]. )
Hence updated tableau carries information what elementary operations have been performed ( the net effect) to obtain the current tableau.z-row obtained from c –y’A (objective value: 0 –y’b)i-th constraint : ( i-th row of B-1 ) [B : N] (r.h.s: ( i-th row of B-1)b )
)'( '' 1BB cByBcy
Ex)
OR-1 2010 9
4204334
1171
225223..
17121319max
4321
4321
4321
4321
xxxx
xxxx
xxxxts
xxxx
0,,, 4321 xxxx
OR-1 2010 10
Current dictionary
65427
65423
65421
6542
5.25.05.05.015
5.15.05.05.063
5.05.05.05.054
5.85.35.15.21782
xxxxx
xxxxx
xxxxx
xxxxz
},,{ are variablesBasic 731 xxx
12/52/1
02/32/1
02/12/1
,
134
011
0131BB
1100
0010
0001
1010
0100
0001
100134
010011
001013
25
21
23
21
21
21
34
35
31
32
31
31
OR-1 2010 11
25
21
21
21
23
21
21
21
21
21
21
21
25
21
23
21
21
21
1
0043
1011
0122
1
0
0
NB
15
63
54
429
117
225
1
0
0
25
21
23
21
21
21
1bB
1782
429
117
225
05.85.3
429
117
225
1
0
0
01219'
25
21
23
21
21
21
1
bBcB
'y
5.2
3
1
2
05.85.313' 22
Ayc 5.1
4
1
2
05.85.317' 44
Ayc
OR-1 2010 12
420
117
225
0
1004334
0101111
0012123
00017121319 z
7654321 xxxxxxx
420
117
225
0
0043134
1011011
0122013
00171301219 z
6542731 xxxxxxx
15
63
54
1782
52505050100
51505050010
50505050001
58535152000
....
....
....
.... z
6542731 xxxxxxx
Updated tableau
B
N
Bc Nc
),.,.(' 05853y
NB 1 bB 1
jj Ayc '
by'
BB 1
1B
OR-1 2010 13
15
63
54
1782
52505050100
51505050010
50505050001
58535152000
....
....
....
.... z
6542731 xxxxxxx
420
117
225
0
1004334
0101111
0012123
00017121319
7654321 xxxxxxx
15
63
54
1782
15250500500
05150501500
05050500501
05853510520
....
....
....
....
7654321 xxxxxxx
jj Ayc '
IA AB 1b bB 1
by'0 Apply same elementary row operations
OR-1 2010 14
420
117
225
0
1004334
0101111
0012123
0 0 0 17121319
7654321 xxxxxxx
15
63
54
1782
12.5-0.5-0.505.00
01.50.5-0.515.00
00.5-0.50.505.01
08.5-3.5-1.5 0 2.5- 0
7654321 xxxxxxx
jj Ayc '
1B
15
63
54
1782
12.5-0.5-0.505.00
01.50.5-0.515.00
00.5-0.50.505.01
08.5-3.5-1.5 0 2.5- 0
7654321 xxxxxxx
cj – y’Aj = - ym+j cj – y’ej = - yj
AB 1 bB 1
OR-1 2010 15
The coefficients of slack variables in z-row are -yj , j = 1, .., 3.
Also note that the coefficient of j-th original structural variable in the z-row is cj – y’Aj .
Since dual constraint for j-th structural variable is y’Aj cj , we obtain
y’Aj – ym+j = cj if we subtract nonnegative surplus variable to convert it
into an equation.
Then cj – y’Aj = - ym+I . So the coefficient of j-th structural variable in the z-row can be interpreted as the negative of j-th surplus variable of the dual problem.
In the optimal tableau (the current tableau is not optimal yet), the coefficients in z-row are all nonpositive. Hence we have a dual feasible solution.
Also cB’B-1b = cB’xB = y’b ( xB = B-1b, y’ = cB’B-1 )
OR-1 2010 16
SummaryWe can read the B-1 matrix from the updated tableau.
Note that B-1 [B | N ] = [ I | B-1 N ] in the updated tableau. If we premultiply B-1 to [A | I ] matrix in the initial tableau, we obtain the same matrix as [ I | B-1 N ] except that the positions of the columns are different.
From B-1 [A | I ] = [B-1A | B-1 ], we conclude that B-1 is the coefficient matrix for the slack variables in the updated tableau. Also B-1 carries the information of the net effect of the elementary row operations we needed to perform to obtain the updated tableau from the initial tableau.
We can read a dual solution from the z-row in the updated tableau.
Let O denote the index set of original structural variables and S the slack vars.
Then
Note that we have y’B=cB’ , hence
byxAyczxAycz NBj jjjNj jjj ')'()'( ,
variablesbasicfor 0)'( jj Ayc
OR-1 2010 17
Then
)()'(
)'()'()'(,
Sj jjOj jjj
Sj jjjOj jjjNBj jjj
xyxAycz
xAycxAyczxAycz
.constraint dual th - for the variablesurplus theof negative theas ),'(
and variabledualth - theof value theas dinterprete becan , Here,
jOjAyc
jSjy
jj
j
)' ( ' ' from that Note jjjjjjjj AyczczAycAy
opt. issolution current So
solution. primalcurrent theof valueobjective theas same theis which ' value
objective gives and feasible dual hence ity,nonnegativ and sconstraint dualsatisfy
variablesdual then thee,nonpositiv all are row in thet coefficien theif that Note
solution. dualcurrent for the valueobjective
dual thegives 'constant theand , variablessurplus dual theand variables
structural dual theof valuesgives row in the tscoefficien theof negative i.e.
')()( have Then we
by
z
by
z
byxyxzz Sj jjOj jj
OR-1 2010 18
In summary, each tableau in the simplex iterations gives primal basic feasible solution and, as a by-product, gives a dual solution (it is a dual basic solution although we do not prove it here).
The dual solution is not necessarily dual feasible, but always gives an objective value of the dual problem which is the same as the primal objective value of the current primal solution. Also the primal and the dual solution pairs satisfy the complementary slackness condition (check this)
If we obtain a dual feasible solution, i.e. the coefficients in the z-row are all nonpositive, we obtain primal, dual feasible solution with the same objective value. Hence optimality of the primal solution is established.
Other types of algorithms can be designed using the complementary slackness optimality conditions. (e.g. dual simplex method, some algorithms for network problems, ...)
OR-1 2010 19
later) analysisy sensitivitin (more
problem. changed for the basis optimalan longer no is basiscurrent the
, changingby violatedis variablesbasic theofity nonnegativ theif But,
.by changes valueobjective hence basis optimal thestill
is basiscurrent , 0 while of value thechange weif that Note
unit. 1by changes when ) basiscurrent (with value
objective in the change ofamount therepresent Hence basis). same the
have weas long (as '' valueobjective then the,1 If
1*
i
i
Bi
i
i
iii
b
y
bBxb
bB
y
ybybybb
OR-1 2010 20
The Revised Simplex Method Efficient implementation of the simplex method.Recall the needed operations for the simplex method:
Find the entering and the leaving variable, update dictionary. (If we know the basis, entire tableau can be constructed. Hence we do not really need to update the dictionary.)
Find the entering variable xj :
1) Find
2) Evaluate
Choose a nonbasic variable with as the
entering nonbasic var. Find the leaving variable:
) ,0' ( 1 NjABcc jBj
'' solvingby '' 1BB cByBcy
NjAyc jj allfor '
0' jj Ayc
Nj jjB
NNNNBNBB
xABx
xABABABxNxBxxn
)( 1*
111*1*21
OR-1 2010 21
Suppose x k , kN is the entering nonbasic variable. As we increase
x k while keeping other nonbasic variables at 0, we get
Update:
Set
Replace the leaving column of B by entering column Aj , and xk
enters the basis in place of xl (position in the basis is important)
)( 1*kBB ABdtdxx ) solvingby Find ( kABdd
.say 0, becomes which variablebasic thefind and
,0 makes which luelargest va thedetermineThen *
l
B
x
tdxt
0|minset and 0|minarg .,.*
**
ii
i
Bii
i
i
Bid
d
xtd
d
xlei
dtxx
tx
BB
k
***
*
OR-1 2010 22
ex)
4204334
1171
225223..
17121319max
4321
4321
4321
4321
xxxx
xxxx
xxxxts
xxxx
0,,, 4321 xxxx
65427
65423
65421
6542
5.25.05.05.015
5.15.05.05.063
5.05.05.05.054
5.85.35.15.21782
xxxxx
xxxxx
xxxxx
xxxxz
Current dictionary
},,{ are variablesBasic 731 xxx
134
011
013
,
15
63
54
*7
*3
*1
* B
x
x
x
xB
OR-1 2010 23
Find entering nonbasic variable xj such that cj - y’Aj > 0
( y = cB’B-1 )
First solve y’B = cB’
05.85.3' 01219
134
011
013
321
yyyy
5.2
3
1
2
05.85.313' 22
Ayc 5.1
4
1
2
05.85.317' 44
Ayc
5.3
0
0
1
05.85.30' 55
Ayc 5.8
0
1
0
05.85.30' 66
Ayc
basis theenters 4x
OR-1 2010 24
41*1* consider , From AtBxxABxx BNNBB
5.0
5.0
5.0
4
1
2
134
011
013
find to Solve
3
2
1
3
2
1
41
4
d
d
d
d
d
d
ABABd
) 0:(
5.015
5.063
5.054
4
7
3
1
tx
tx
tx
tx
basis theleaves
)30 becomes ( ,30
30 5.0
15 ,
5.0
63 ,
5.0
54 min : testratio
7
*4
*
x
xt
0
48
39
5.0
5.0
5.0
30
15
63
54*Bx
434
111
213
new ,
30
48
39
new*4
*3
*1
* B
x
x
x
xB