Professional Documents
Culture Documents
Sensitivity Analysis
Reading: Chapter 9
Sensitivity Analysis:
Answering the What If Questions
After you have solved a given LP and found an optimal
solution:
1. What is the eect of a change in one or more parameters on the optimal tableau? current solution?
2. If the solution is no longer optimal, what needs to
be done in order to nd a new optimal solution?
3. What happens when we add a new variable? a new
constraint?
4. What if we want to test changes in parameters over
a range of possible parameter values?
x1
a11
a21
..
am1
c1
x2
a12
a22
..
am2
c2
. . . xn
. . . a1n
. . . a2n
..
. . . amn
. . . cn
s1
1
0
..
0
0
s2 . . .
0 ...
1 ...
...
0 ...
0 ...
sm rhs
0 b1
0 b2
..
1 bm
0 0
z
0
0
..
0
1
x1
a11
a21
..
am1
c1
x2 . . .
a12 . . .
a22 . . .
..
am2 . . .
c2 . . .
xn
a1n
a2n
..
amn
cn
s1
s11
s21
..
sm1
y1
s2
s12
s22
..
sm2
y2
. . . sm
. . . s1m
. . . s2m
..
. . . smm
. . . ym
rhs
b1
b2
..
bm
z0
s1
1
0
0
0
s2
0
1
0
0
s3
0
0
1
0
rhs
120
60
48
0
Optimal tableau
basis
s2
x2
x1
z
z
0
0
0
1
x1
0
0
1
0
x2 x3
s1 s2 s3 rhs
0 10 15/4 1 10 30
1
2 1/4 0 2/3 2
0 1 1/2 0 1 12
0 10 5/2 0
5 540
15/4 1 10
1/4 0
2/3
S =
1/2 0 1
y = ( 5/2, 0, 5 )
and note that
cB = ( c5, c2, c1 ) = ( 0, 60, 35 )
4
(1)
A = S A
(2)
c = c cB S A
= c y A
(3)
= c cB A
(3)
z0 = cB S b
= y b
(4)
= cB b
(4)
In formulae:
(1) bi = si1b1 + si2b2 + . . . + simbm
i = 1, . . . , m
i = 1, . . . , m, j = 1, . . . , n
j = 1, . . . , n
(3)
(4)
Changes in a Resource
Suppose we want to change the values of one or more bk
values.
Eect on the optimal tableau: bk only appears in
Equations (1) and (4), i.e. only the right-handside column (b and z0) is aected
Eect on the current solution: All basic solution
values, as well as the objective function value, may
change. Dual solution remains the same (although its objective function value may change).
Eect on feasibility: Primal solution may become infeasible. Dual solution remains dual
feasible.
Reoptimization method: Dual Simplex Method.
Example
Suppose Woody wants to change the amount of pine he
uses each day, that is, he is changing b1 currently
120 to an amount b1 + = 120 + .
New tableau and
solution values:
b
2 1 15/4 1 10 120 +
s
xB = x2 = b2 = 1/4 0 2/3 60
b3 1/2 0 1 48
x1
30 + 15/4
2 1/4
12 + 1/2
120 +
60 = 540 + 5/2
z0 = ( 5/2, 0, 5 )
48
Example
Suppose that Woody wants to change the price for desks
so that the current value of c3 = 75 changes to an
amount 75 + .
New value of c3 :
16
c3 = (75 + ) ( 5/2, 0, 5 ) 20 = 10 +
11
Example
Suppose that Woody wants to analyze a change in the
price of chairs from its current value of c1 = 35 to
an amount 35 + .
(Negative of the) new tableau values: Using (3),
(4) with cB = (c5, c2, c1) = (0, 60, 35 + ) we get
c = ( 35 + , 60, 75, 0, 0, 0 )
0 0 10 15/4 1 10
2 1/4 0 2/3
( 0, 60, 35 + ) 0 1
1 0 1 1/2 0 1
= ( 0, 0, 10 + , 5/2 1/2, 0, 5 + )
30
z0 = ( 0, 60, 35 + ) 2
12
= 540 + 12.
Thus if c1 increases by = 5 the optimal solution value would not change, although its objective
function now becomes 600, and the dual solution
becomes y = (5, 0, 0). If prots decrease by, say,
= 10, though, then c4 becomes 5 (corresponding tableau value is 5) and so x4 enters the basis,
replacing x5.
12
13
Example
Suppose that Woody wants to decrease the number of
carpenter-hours spent on making desks from its current value of a33 = 9 to value a33 = 9 , to
see when it becomes protable to make desks.
New tableau values:
16
10
+
10
a
15/4
1
10
13
20
2
2/3
2/3
=
23 = 1/4 0
1 +
a33
1/2 0 1 9
16
20 = 10 + 5
c3 = 75 ( 5/2, 0, 5 )
Adding a Variable
Suppose Woody wants to consider producing executive
desks, with each executive desk requiring 12 linear feet of
pine, 30 linear feet of mahogany, and 15 carpenter-hours,
with a prot of $175.
Eect on the optimal tableau: A new column (using
x4 = number of executive desks) is added, using Equations (2) and (3), as if the Revised Simplex Method
were being applied. Remaining values remain unchanged.
Eect on the current solution: Solution value and objective function value remain the same.
New tableau
values:
14
a
15/4 1 10 12
75
2/3
7
24 = 1/4 0
30 =
a34
1/2 0 1 15
9
12
c4 = 175 ( 5/2, 0, 5 ) 30 = 70
15
c4 = 70, so Woody should produce executive desks.
Reoptimization Method: Primal Simplex Method.
In this case the rst pivot would be in Row 2, that is,
Woody would replace table production with executive
desk production.
15
16
Example
Suppose that Woody wants to analyze a change
in the amount of carpenter-hours spent on making
chairs (a31) from 3 to 2. Then the values in Column
1 become
a11
a21 =
a31
10
15/4 1 10 8
2
1/2 0 1 2
c1 = 35 ( 5/2, 0, 5 ) 0 = 5
z
0
0
0
1
x1
0
0
1
0
x2
x3
s1 s2
s3 rhs
0 5
5/4 1 5 30
1 5/3 1/12 0 1/3 6
0 1/2
1/4 0 1/2 6
0 15/2 15/4 0 5/2 570
Adding a Constraint
Suppose we want to add a constraint of the type
am+1,1x1 + am+1,2x2 + . . . + am+1,nxn bm+1
1. Enter the corresponding equality constraint (including the slack variable) into the current tableau as the
(m + 1)st row.
2. Cost out the current basis by subtracting
am+1,Bi (Row i) from Row (m + 1). Equivalently,
use the formulae
Am+1, = Am+1 Am+1,B A
Sm+1, =
Am+1,B S
bm+1 = bm+1 Am+1,B b
where Am+1,B = (Am+1,B1 , . . . , Am+1,Bm ).
3. If bm+1 < 0, continue to apply the Dual Simplex
Method to reoptimize.
18
Example
Woody wants to limit himself to 10 pieces of furniture
each day, that is, he wants to add the constraint
x1 + x2 + x3 10
to his tableau. He can add this row directly to the
tableau and cost out the basic variables, or use the formulae:
A4, = A4 (A45, A42, A41)A
0 0 10
0 1
2
= ( 1, 1, 1 ) ( 0, 1, 1 )
1 0 1
= ( 0, 0, 0 )
15/4 1 10
= ( 0, 1, 1 ) 1/4 0 2/3
1/2 0 1
= ( 1/4, 0, 1/3 )
30
b4 = 10 ( 0, 1, 1 ) 2 = 4.
12
19
z
0
0
0
0
1
x1
0
0
1
0
0
x2 x3
s1 s2 s3 s4
0 10 15/4 1 10 0
1
2 1/4 0 2/3 0
0 1 1/2 0 1 0
0
0 1/4 0 1/3 1
0 10 5/2 0
5 0
rhs
30
2
12
4
540
z
0
0
0
0
1
x1
0
0
1
0
0
x2
0
1
0
0
0
x3
1
0
0
0
0
s1 s2
s3
s4 rhs
0 1/10 1/2 3/2 3
0 1/5 2/3 2
0
0 1/10 1/6 1/2 7
1
0
4/3 4 16
0
1
10/3 25 470
20
relevant
equation(s)
parts of tableau
aected
method of
reoptimization
bi
dual simplex
nonbasic cj
(3)
a0j only
primal simplex
basic cj
nonbasic aij
entire j th column
primal simplex
basic aij
all entries
(depends upon
type of tableau)
added column
new column
primal simplex
added constraint
cost out
new row
dual simplex
22