Linear Programming (Optimization)

advertisement
Chapter 7. The Revised Simplex Method
๏ฑ Recall Theorem 3.1, same basis ๏ƒž same dictionary
Entire dictionary can be constructed using original data 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 with equality constraints and nonnegativity, will be
discussed later in Chapter 8)
maximize ๐‘ ′ ๐‘ฅ
subject to ๐ด๐‘ฅ = ๐‘
๐‘ฅ≥0
๐‘Ž11
Where, ๐ด = โ‹ฎ
๐‘Ž๐‘š1
OR-1 2015
… ๐‘Ž1๐‘›
โ‹ฑ
โ‹ฎ
… ๐‘Ž๐‘š๐‘›
1 … 0
โ‹ฎ โ‹ฑ โ‹ฎ
0 … 1
1
๏ฑ ex) max 19๐‘ฅ1 + 13๐‘ฅ2 + 12๐‘ฅ3 + 17๐‘ฅ4
s.t. 3๐‘ฅ1 + 2๐‘ฅ2 + ๐‘ฅ3 + 2๐‘ฅ4 ≤ 225
๐‘ฅ1 + ๐‘ฅ2 + ๐‘ฅ3 + ๐‘ฅ4 ≤ 117
4๐‘ฅ1 + 3๐‘ฅ2 + 3๐‘ฅ3 + 4๐‘ฅ4 ≤ 320
๐‘ฅ1 , ๐‘ฅ2 , ๐‘ฅ3 , ๐‘ฅ4 ≥ 0
Add slack variables and, after two iterations of the simplex method, we obtain
๐‘ง = 1782 − 2.5๐‘ฅ2 + 1.5๐‘ฅ4 − 3.5๐‘ฅ5 − 8.5๐‘ฅ6
๐‘ฅ1 = 54 − 0.5๐‘ฅ2 − 0.5๐‘ฅ4 − 0.5๐‘ฅ5 + 0.5๐‘ฅ6
๐‘ฅ3 = 63 − 0.5๐‘ฅ2 − 0.5๐‘ฅ4 + 0.5๐‘ฅ5 − 1.5๐‘ฅ6
๐‘ฅ7 = 15 + 0.5๐‘ฅ2 − 0.5๐‘ฅ4 + 0.5๐‘ฅ5 + 2.5๐‘ฅ6
This dictionary can be represented compactly using matrix notation.
OR-1 2015
2
๏ฑ We write the constraints as ๐ด๐‘ฅ = ๐‘ with
3 2 1
๐ด= 1 1 1
4 3 3
2 1 0
1 0 1
4 0 0
0
225
0 , ๐‘ = 117 ,
1
420
๐‘ฅ1
๐‘ฅ2
๐‘ฅ3
๐‘ฅ = ๐‘ฅ4 .
๐‘ฅ5
๐‘ฅ6
๐‘ฅ7
We express ๐ด๐‘ฅ as ๐ต๐‘ฅ๐ต + ๐‘๐‘ฅ๐‘ with
3 1 0
2 2
๐ต= 1 1 0 , ๐‘= 1 1
4 3 1
3 4
๐‘ฅ2
๐‘ฅ1
1 0
๐‘ฅ4
๐‘ฅ
0 1 , ๐‘ฅ๐ต = 3 , ๐‘ฅ๐‘ = ๐‘ฅ .
5
๐‘ฅ7
0 0
๐‘ฅ6
(In the text, ๐ด๐ต , ๐ด๐‘ are used instead of ๐ต, ๐‘.)
Also ๐‘′ = 19 13 12 17 0 0 0
Express ๐‘ ′ ๐‘ฅ as ๐‘๐ต ′๐‘ฅ๐ต + ๐‘๐‘ ′๐‘ฅ๐‘ , with
๐‘๐ต ′ = 19 12 0 , ๐‘๐‘ ′ = 13 17 0 0
OR-1 2015
3
๏ฑ Then ๐ด๐‘ฅ = ๐‘ ๏ƒž ๐ต๐‘ฅ๐ต + ๐‘๐‘ฅ๐‘ = ๐‘ ๏ƒž ๐ต๐‘ฅ๐ต = ๐‘ − ๐‘๐‘ฅ๐‘
If ๐ต is nonsingular (which is true for the example), we can premultiply ๐ต−1 on
both sides.
๐‘ฅ๐ต = ๐ต−1 ๐‘ − ๐ต−1 ๐‘๐‘ฅ๐‘
(matrix form of constraints in current dictionary with basis ๐ต)
For objective row,
๐‘ง = ๐‘ ′ ๐‘ฅ = ๐‘๐ต ′๐‘ฅ๐ต + ๐‘๐‘ ′๐‘ฅ๐‘ = ๐‘๐ต ′ ๐ต−1 ๐‘ − ๐ต−1 ๐‘๐‘ฅ๐‘ + ๐‘๐‘ ′๐‘ฅ๐‘
= ๐‘๐ต ′๐ต−1 ๐‘ + ๐‘๐‘ ′ − ๐‘๐ต ′๐ต−1 ๐‘ ๐‘ฅ๐‘
= ๐‘๐ต ′๐ต−1 ๐‘ +
๐‘—∈๐‘
= ๐‘ฆ′๐‘ +
๐‘๐‘— − ๐‘ฆ′๐ด๐‘— ๐‘ฅ๐‘—
๐‘—∈๐‘
๐‘๐‘— − ๐‘๐ต ′๐ต−1 ๐ด๐‘— ๐‘ฅ๐‘—
( if we let ๐‘ฆ′ ≡ ๐‘๐ต ′๐ต−1 )
๏ฑ Matrix representation of a dictionary
z = ๐‘๐ต ′๐ต−1 ๐‘ + ๐‘๐‘ ′ − ๐‘๐ต ′๐ต−1 ๐‘ ๐‘ฅ๐‘
๐‘ฅ๐ต = ๐ต−1 ๐‘ − ๐ต−1 ๐‘๐‘ฅ๐‘
OR-1 2015
4
๏ฑ Note that matrix ๐ต corresponding to basic variables in a dictionary is
nonsingular:
Pf) Can show that ๐ต is nonsingular by showing that ๐ต๐‘ฅ๐ต = ๐‘ has a unique
solution. The existence of a solution is evident: since the basic feasible solution
๐‘ฅ ∗ satisfies ๐ด๐‘ฅ ∗ = ๐‘ and ๐‘ฅ๐‘∗ = 0, it satisfies ๐ต๐‘ฅ๐ต∗ = ๐ด๐‘ฅ ∗ − ๐‘๐‘ฅ๐‘∗ = ๐‘.
To verify that there are no other solutions, consider an arbitrary vector ๐‘ฅ๐ต such
that ๐ต๐‘ฅ๐ต = ๐‘ and set ๐‘ฅ๐‘ = 0. Since the resulting vector ๐‘ฅ satisfies ๐ด๐‘ฅ =
๐ต๐‘ฅ๐ต + ๐‘๐‘ฅ๐‘ = ๐‘, it must satisfy the bottom ๐‘š equations in the dictionary
representing ๐‘ฅ ∗ . But then ๐‘ฅ๐‘ = 0 implies ๐‘ฅ๐ต = ๐‘ฅ๐ต∗ . Hence the solution to
๐ต๐‘ฅ๐ต = ๐‘ is unique and ๐ต is nonsingular.
๏ฟ
๏ฑ Recall that a basic feasible solution for a dictionary is equivalent to an extreme
point of the polyhedron ๐‘ƒ = {๐‘ฅ ∈ ๐‘…๐‘›+๐‘š : ๐ด๐‘ฅ = ๐‘, ๐‘ฅ ≥ 0}.
OR-1 2015
5
๏ฑ Matrix representation of dictionary
z = ๐‘๐ต ′๐ต−1 ๐‘ + ๐‘๐‘ ′ − ๐‘๐ต ′๐ต−1 ๐‘ ๐‘ฅ๐‘
๐‘ฅ๐ต = ๐ต−1 ๐‘ − ๐ต−1 ๐‘๐‘ฅ๐‘
In tableau form,
−๐‘ง + 0′ ๐‘ฅ๐ต + ๐‘๐‘ ′ − ๐‘๐ต ′๐ต−1 ๐‘ ๐‘ฅ๐‘ = −๐‘๐ต ′๐ต−1 ๐‘
๐ผ๐‘ฅ๐ต
+ ๐ต−1 ๐‘๐‘ฅ๐‘ = ๐ต−1 ๐‘
๏ฑ Note that ๐‘๐ต ′๐ต−1 ๐‘ = ๐‘๐ต ′๐ต−1 ๐ด๐‘1 , ๐ด๐‘2 , … , ๐ด๐‘๐‘› = ๐‘ฆ′ ๐ด๐‘1 , ๐ด๐‘2 , … , ๐ด๐‘๐‘›
We frequently use ๐‘ฆ ′ = ๐‘๐ต ′๐ต−1 , i.e. ๐‘ฆ is the solution of ๐‘ฆ ′ ๐ต = ๐‘๐ต ′.
Hence ๐‘๐‘ ′ − ๐‘๐ต ′๐ต−1 ๐‘ ๐‘ฅ๐‘ =
๐‘—∈๐‘
๐‘๐‘— − ๐‘ฆ′๐ด๐‘— ๐‘ฅ๐‘—
and −๐‘๐ต ′๐ต−1 ๐‘ = −๐‘ฆ ′ ๐‘
OR-1 2015
6
๏ฑ Current tableau in matrix notation is:
−๐‘ง + 0′ ๐‘ฅ๐ต + ๐‘๐‘ ′ − ๐‘๐ต ′๐ต−1 ๐‘ ๐‘ฅ๐‘ = −๐‘๐ต ′๐ต−1 ๐‘
๐ผ๐‘ฅ๐ต
+ ๐ต−1 ๐‘๐‘ฅ๐‘ = ๐ต−1 ๐‘
๐‘๐ต ′๐ต−1 ๐‘ = ๐‘๐ต ′๐ต−1 ๐ด๐‘1 , ๐ด๐‘2 , … , ๐ด๐‘๐‘› = ๐‘ฆ′ ๐ด๐‘1 , ๐ด๐‘2 , … , ๐ด๐‘๐‘›
๏ฑ Here, ๐‘๐ต ′๐ต−1 ๐‘ can be viewed differently:
๐‘๐ต ′๐ต−1 ๐‘ = ๐‘๐ต ′๐ต−1
๐‘Ž1 ′
๐‘Ž1 ′
โ‹ฎ = ๐‘ฆ′ โ‹ฎ
๐‘Ž๐‘š ′
๐‘Ž๐‘š ′
i.e., we take linear combination of rows of ๐‘ using weights −๐‘ฆ๐‘– to ๐‘– − ๐‘กโ„Ž
constraint and add it to ๐‘๐‘ ′ in the ๐‘ง −row. (or subtract ๐‘ฆ ′ ๐‘ from ๐‘๐‘ ′)
Similarly, for basic variables, we subtract ๐‘ฆ ′ ๐ต from ๐‘๐ต ′ in the ๐‘ง −row.
Then, ๐‘๐ต ′ − ๐‘๐ต ′๐ต−1 ๐ต = 0. Also, the right-hand side constant in the
๐‘ง −row can be obtained by subtracting ๐‘ฆ ′ ๐ต from 0 (initial value).
OR-1 2015
7
๏ฑ Hence given the initial tableau, we obtain zeroth equation of the updated
tableau by taking a linear combination of rows of the initial tableau using
weights from ๐‘ฆ −vector and subtract it from zeroth equation.
It is the net effect of many elementary row operations performed on the
tableau.
๏ฑ The value ๐‘๐‘— − ๐‘ฆ′๐ด๐‘— is called reduced cost. It is 0 for every basic variable.
OR-1 2015
8
๏ฑ Initially, we have
๏€ญz
๏€ญz
0
0
A
I
b
cB '
cN '
๏€ฝ
0
B
N
๏€ฝ
b
After reordering
of columns
OR-1 2015
c'
9
Updated tableau
๏€ญz
(cB’B-1 = y’ )
๏€ญz
cB '
cN '
๏€ฝ
0
B
N
๏€ฝ
b
= cB’ – cB’B-1B
0
= cN’ – cB’B-1N
c N '๏€ญc B ' B ๏€ญ1 N
B ๏€ญ1 N
I
( = B-1 [ B : N ] )
OR-1 2015
= 0 – cB’B-1b
๏€ฝ ๏€ญ c B ๏€ญ1b
B
๏€ฝ B ๏€ญ1b
(= B-1 b)
10
๏ฑ Also ๐ต−1 gives information on what elementary row operations have been
performed on the constraints. Updated ๐‘– − ๐‘กโ„Ž constraint = (๐‘– − ๐‘กโ„Ž row of
๐ต−1 ) ๐ต: ๐‘|๐‘ , so ๐‘— − ๐‘กโ„Ž component of (๐‘– − ๐‘กโ„Ž row of ๐ต−1 ) is the weight we
multiply to the ๐‘— − ๐‘กโ„Ž original constraint.
We take linear combination of rows of ๐ต: ๐‘|๐‘ .
๏ฑ Hence updated tableau carries information on what elementary operations
have been performed (the net effect) to obtain the current tableau.
๏ƒ˜zeroth equation obtained from ๐‘ − ๐‘ฆ ′ ๐ด (objective value: 0 − ๐‘ฆ ′ ๐‘)
๏ƒ˜๐‘– − ๐‘กโ„Ž constraint : (๐‘– − ๐‘กโ„Ž row of ๐ต −1 ) [B : N] (r.h.s: ( ๐‘– − ๐‘กโ„Ž row of ๐ต −1 ) ๐‘ )
OR-1 2015
11
๏ฑ 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 zeroth equation is an
optimal dual solution. It is the ๐‘ฆ −vector obtained from ๐‘ฆ′ = ๐‘๐ต ′๐ต−1 .
๏ฑ The updated tableau may be given using original sequence of variables. Then,
๏€ญz
๏€ญz
OR-1 2015
c'
0
0
A
I
b
c ๏€ญ y' A
0 ๏€ญ y' I
0 ๏€ญ y' b
B ๏€ญ1 A
B ๏€ญ1
B ๏€ญ1b
12
๏ฑ In an optimal tableau, we have all coefficients in ๐‘ง −row are ≤ 0.
Therefore, ๐‘ ′ − ๐‘ฆ ′ ๐ด ≤ 0, −๐‘ฆ′ ≤ 0. Here, ๐‘ฆ ′ = ๐‘๐ต ′๐ต−1 .
With this ๐‘ฆ, we have ๐‘ฆ ′ ๐ด ≥ ๐‘ ′ , ๐‘ฆ′ ≥ 0, hence ๐‘ฆ is a dual feasible solution.
Also, −๐‘ฆ ′ ๐‘ in the r.h.s of ๐‘ง −row is the negative of the current primal
objective value, which is also the negative of the objective value of the dual
feasible solution ๐‘ฆ. So we have primal feasible solution ๐‘ฅ and dual feasible
solution ๐‘ฆ which give the same objective value. Hence ๐‘ฅ is a primal optimal
solution and ๐‘ฆ is a dual optimal solution.
๏ฑ Since the dual constraint for the ๐‘— − ๐‘กโ„Ž primal structural variable is ๐‘ฆ′๐ด๐‘— ≥ ๐‘๐‘— ,
we obtain ๐‘ฆ′๐ด๐‘— − ๐‘ฆ๐‘š+๐‘— = ๐‘๐‘— if we subtract nonnegative surplus variable to
convert it into an equation. Then ๐‘๐‘— − ๐‘ฆ′๐ด๐‘— = −๐‘ฆ๐‘š+๐‘— . So the coefficient of the
๐‘— − ๐‘กโ„Ž primal structural variable in the zeroth equation can be viewed as the
negative of ๐‘— − ๐‘กโ„Ž surplus variable of the dual problem. At an optimal tableau,
๐‘ฆ๐‘š+๐‘— ≥ 0 for ๐‘— = 1, … , ๐‘›.
OR-1 2015
13
๏ฑ In summary, each tableau that appears 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 (see the next slide)
If we obtain a dual feasible solution, i.e. the coefficients in the zeroth equation
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
flow problems, ...)
OR-1 2015
14
๏ฑ Complementary slackness between primal and dual solutions during simplex
iterations.
(recall CS conditions)
๐‘š
∗
๐‘–=1 ๐‘Ž๐‘–๐‘— ๐‘ฆ๐‘–
๐‘›
∗
๐‘—=1 ๐‘Ž๐‘–๐‘— ๐‘ฅ๐‘—
= ๐‘๐‘— or ๐‘ฅ๐‘—∗ = 0 (or both), for every ๐‘— = 1,2, … , ๐‘›
= ๐‘๐‘– or ๐‘ฆ๐‘–∗ = 0 (or both), for every ๐‘– = 1,2, … , ๐‘š
Structural variable ๐‘ฅ๐‘—∗ > 0 ๏ƒž ๐‘ฅ๐‘—∗ basic ๏ƒž ๐‘๐‘— − ๐‘ฆ ∗ ′๐ด๐‘— = 0
๐‘ฆ ∗ ′๐ด๐‘— ≠ ๐‘๐‘— ๏ƒž ๐‘๐‘— − ๐‘ฆ ∗ ′๐ด๐‘— ≠ 0 ๏ƒž ๐‘ฅ๐‘—∗ nonbasic ๏ƒž ๐‘ฅ๐‘—∗ = 0
∗
๐‘Ž๐‘–′ ๐‘ฅ ∗ ≠ (<)๐‘๐‘– ๏ƒž ๐‘ฅ๐‘›+๐‘–
> 0, hence basic ๏ƒž ๐‘๐‘›+๐‘– − ๐‘ฆ′๐ด๐‘›+๐‘– = 0 − ๐‘ฆ๐‘–∗ = 0
∗
๐‘ฆ๐‘–∗ ≠ 0 ๏ƒž ๐‘๐‘›+๐‘– − ๐‘ฆ ∗ ′๐ด๐‘›+๐‘– ≠ 0 ๏ƒž ๐‘ฅ๐‘›+๐‘– nonbasic, hence ๐‘ฅ๐‘›+๐‘–
=0 ๏ƒž
๐‘Ž๐‘–′ ๐‘ฅ ∗ = ๐‘๐‘–
OR-1 2015
15
๏ฑ A basis ๐ต is called an optimal basis if ๐‘๐‘— − ๐‘๐ต ′๐ต−1 ๐ด๐‘— ≤ 0 for all ๐‘— ∈ ๐‘ (we
have ๐‘๐‘— − ๐‘๐ต ′๐ต−1 ๐ด๐‘— = 0 for all ๐‘— ∈ ๐ต) and ๐‘ฅ๐ต∗ = ๐ต−1 ๐‘ ≥ 0 (we have ๐‘ฅ๐‘∗ = 0).
๏ฑ If ๐‘๐‘– → ๐‘๐‘– ± 1, then the objective value ๐‘ฆ ′ ๐‘ → ๐‘ฆ ′ ๐‘ ± ๐‘ฆ๐‘– (as long as we have
the same basis). Hence ๐‘ฆ๐‘– represent the amount of change in the objective
value (with current basis ๐ต) when ๐‘๐‘– changes by 1 unit.
Note that if we change the value of ๐‘๐‘– while ๐‘ฅ๐ต∗ = ๐ต−1 ๐‘ ≥ 0, current basis is
still the optimal basis, hence optimal objective value changes by ๐‘ฆ๐‘– .
But, if the nonnegativity of the basic variables is violated by changing ๐‘๐‘– , the
current basis is no longer an optimal basis for the changed problem.
(more in Chapter 10. Sensitivity Analysis later.)
OR-1 2015
16
๏ฑ Ex)
max 19 x1 ๏€ซ 13x2
s.t. 3x1
2 x2
x1
๏€ซ x2
4 x1 ๏€ซ 3x2
๏€ซ 12 x3
๏€ซ x3
๏€ซ x3
๏€ซ 3x3
๏€ซ 17 x4
๏€ซ 2 x4
๏€ซ 1x4
๏€ซ 4 x4
๏‚ฃ 225
๏‚ฃ 117
๏‚ฃ 420
x1, x2 , x3 , x4 ๏‚ณ 0
OR-1 2015
17
๏ฑ Current dictionary
z
x1
x3
x7
๏€ฝ 1782 ๏€ญ 2.5 x2
๏€ฝ 54 ๏€ญ 0.5 x2
๏€ฝ 63 ๏€ญ 0.5 x2
๏€ฝ 15 ๏€ซ 0.5 x2
๏€ซ 1.5 x4
๏€ญ 0.5 x4
๏€ญ 0.5 x4
๏€ญ 0.5 x4
๏€ญ 3.5 x5
๏€ญ 0.5 x5
๏€ซ 0.5 x5
๏€ซ 0.5 x5
๏€ญ 8.5 x6
๏€ซ 0.5 x6
๏€ญ 1.5 x6
๏€ซ 2.5 x6
Basic variables are {x1, x3 , x7 }
๏ƒฉ 3 1 0๏ƒน
๏ƒฉ 1 / 2 ๏€ญ 1 / 2 0๏ƒน
B ๏€ฝ ๏ƒช1 1 0๏ƒบ, B ๏€ญ1 ๏€ฝ ๏ƒช๏€ญ 1 / 2 3 / 2 0๏ƒบ
๏ƒช
๏ƒบ
๏ƒช
๏ƒบ
๏ƒช๏ƒซ4 3 1๏ƒบ๏ƒป
๏ƒช๏ƒซ๏€ญ 1 / 2 ๏€ญ 5 / 2 1๏ƒบ๏ƒป
๏ƒฆ ๏ƒฉ3 1 0 1 0 0๏ƒน ๏ƒฉ1
๏ƒง๏ƒช
๏ƒบ ๏ƒช
๏ƒง ๏ƒช1 1 0 0 1 0 ๏ƒบ ๏‚ฎ ๏ƒช0
๏ƒง ๏ƒช 4 3 1 0 0 1 ๏ƒบ ๏ƒช0
๏ƒป ๏ƒซ
๏ƒจ๏ƒซ
OR-1 2015
1
2
5
3
3
3
0 13 0 0๏ƒน ๏ƒฉ1 0 0 1 2 ๏€ญ 1 2 0๏ƒน ๏ƒถ
๏ƒท
๏ƒบ
๏ƒช
๏ƒบ
3
1
1
0 ๏€ญ 3 1 0 ๏ƒบ ๏‚ฎ ๏ƒช0 1 0 ๏€ญ 2
0๏ƒบ ๏ƒท
2
1 ๏€ญ 4 3 0 1๏ƒบ๏ƒป ๏ƒช๏ƒซ0 0 1 ๏€ญ 1 2 ๏€ญ 5 2 1๏ƒบ๏ƒป ๏ƒท๏ƒธ
18
๏ƒฉ 1 2 ๏€ญ 1 2 0๏ƒน ๏ƒฉ 2 2 1 0๏ƒน ๏ƒฉ 1 2
B ๏€ญ1N ๏€ฝ ๏ƒช๏ƒช๏€ญ 1 2 3 2 0๏ƒบ๏ƒบ ๏ƒช1 1 0 1๏ƒบ ๏€ฝ ๏ƒช๏ƒช 1 2
๏ƒช
๏ƒบ
๏ƒช๏ƒซ๏€ญ 1 2 ๏€ญ 5 2 1๏ƒบ๏ƒป ๏ƒช๏ƒซ3 4 0 0๏ƒบ๏ƒป ๏ƒช๏ƒซ๏€ญ 1 2
๏ƒฉ 1 2 ๏€ญ 1 2 0๏ƒน ๏ƒฉ 225๏ƒน ๏ƒฉ54๏ƒน
B ๏€ญ1b ๏€ฝ ๏ƒช๏ƒช๏€ญ 1 2 3 2 0๏ƒบ๏ƒบ ๏ƒช117 ๏ƒบ ๏€ฝ ๏ƒช63๏ƒบ
๏ƒช
๏ƒบ ๏ƒช ๏ƒบ
๏ƒช๏ƒซ๏€ญ 1 2 ๏€ญ 5 2 1๏ƒบ๏ƒป ๏ƒช๏ƒซ429๏ƒบ๏ƒป ๏ƒช๏ƒซ15๏ƒบ๏ƒป
1
1
1
2
2
2
1
๏€ญ
๏€ญ
2
1
2
1
2
๏€ญ 12 ๏ƒน
3 ๏ƒบ
2 ๏ƒบ
๏€ญ 5 2 ๏ƒบ๏ƒป
y'
๏ƒฉ 1 2 ๏€ญ 1 2 0๏ƒน ๏ƒฉ225๏ƒน
๏ƒฉ225๏ƒน
cB ' B ๏€ญ1b ๏€ฝ ๏›19 12 0๏๏ƒช๏ƒช๏€ญ 1 2 3 2 0๏ƒบ๏ƒบ ๏ƒช117๏ƒบ ๏€ฝ ๏›3.5 8.5 0๏๏ƒช117๏ƒบ ๏€ฝ 1782
๏ƒช
๏ƒบ
๏ƒช
๏ƒบ
5
1
๏ƒช๏ƒซ๏€ญ 2 ๏€ญ 2 1๏ƒบ๏ƒป ๏ƒช๏ƒซ429๏ƒบ๏ƒป
๏ƒช๏ƒซ429๏ƒบ๏ƒป
2 2 1
๐‘๐‘ − ๐‘๐ต ๐ต−1 ๐‘ = 13, 17, 0, 0 − 3.5, 8.5, 0 1 1 0
3 4 0
−2.5, 1.5, −3.5, −8.5
OR-1 2015
0
1 =
1
19
x1 x2
๏€ญz
x3
x4
x5
x6
cB
x7
๏ƒฉ19 13 12 17 0 0 0๏ƒน ๏€ฝ ๏ƒฉ 0 ๏ƒน
๏ƒช 3 2 1 2 1 0 0๏ƒบ ๏€ฝ ๏ƒช 225๏ƒบ
๏ƒช
๏ƒบ ๏ƒช
๏ƒบ
๏ƒช 1 1 1 1 0 1 0๏ƒบ ๏€ฝ ๏ƒช117 ๏ƒบ
๏ƒช
๏ƒบ ๏ƒช
๏ƒบ
๏ƒซ 4 3 3 4 0 0 1๏ƒป ๏€ฝ ๏ƒซ 420๏ƒป
x1 x3
๏€ญz
x7
x2
x4
๏ƒฉ19 12 0 13 17
๏ƒช3 1 0 2 2
๏ƒช
๏ƒช1 1 0 1 1
๏ƒช
๏ƒซ4 3 1 3 4
B
x5
x6
0
1
0
0
0
0
1
0
cN
๏ƒน๏€ฝ๏ƒฉ 0 ๏ƒน
๏ƒบ ๏€ฝ ๏ƒช 225๏ƒบ
๏ƒบ ๏ƒช
๏ƒบ
๏ƒบ ๏€ฝ ๏ƒช117 ๏ƒบ
๏ƒบ ๏ƒช
๏ƒบ
๏€ฝ
420
๏ƒป ๏ƒซ
๏ƒป
N
Updated tableau
y' ๏€ฝ (3.5, 8.5, 0)
๏€ญz
c j ๏€ญ y' A j
B ๏€ญ1 B
OR-1 2015
x1 x3
๏ƒฉ0
๏ƒช1
๏ƒช
๏ƒช0
๏ƒช
๏ƒซ0
0
0
1
0
B ๏€ญ1 N
x7
x2
0 ๏€ญ 2.5
0 0.5
0 0.5
1 ๏€ญ 0.5
x4
x5
x6
1.5 ๏€ญ 3.5 ๏€ญ 8.5๏ƒน ๏€ฝ ๏ƒฉ ๏€ญ 1782๏ƒน
0.5 0.5 ๏€ญ 0.5๏ƒบ ๏€ฝ ๏ƒช 54 ๏ƒบ
๏ƒบ ๏ƒช
๏ƒบ
0.5 ๏€ญ 0.5 1.5 ๏ƒบ ๏€ฝ ๏ƒช 63 ๏ƒบ
๏ƒบ ๏ƒช
๏ƒบ
0.5 ๏€ญ 0.5 ๏€ญ 2.5๏ƒป ๏€ฝ ๏ƒซ 15 ๏ƒป
๏€ญ y' b
B ๏€ญ1b
20
x1 x3
๏€ญz
๏ƒฉ0
๏ƒช1
๏ƒช
๏ƒช0
๏ƒช
๏ƒซ0
0
0
1
0
x7
x2
0 ๏€ญ 2.5
0 0.5
0 0.5
1 ๏€ญ 0.5
x4
x5
x6
1.5 ๏€ญ 3.5 ๏€ญ 8.5๏ƒน ๏€ฝ ๏ƒฉ ๏€ญ 1782๏ƒน
0.5 0.5 ๏€ญ 0.5๏ƒบ ๏€ฝ ๏ƒช 54 ๏ƒบ
๏ƒบ ๏ƒช
๏ƒบ
0.5 ๏€ญ 0.5 1.5 ๏ƒบ ๏€ฝ ๏ƒช 63 ๏ƒบ
๏ƒบ ๏ƒช
๏ƒบ
0.5 ๏€ญ 0.5 ๏€ญ 2.5๏ƒป ๏€ฝ ๏ƒซ 15 ๏ƒป
Apply same elementary row operations
x1 x2
x3
x4
x5
x6
x7
๏ƒฉ19 13 12 17 0 0 0๏ƒน ๏€ฝ ๏ƒฉ 0 ๏ƒน
๏ƒช 3 2 1 2 1 0 0๏ƒบ ๏€ฝ ๏ƒช 225๏ƒบ
๏ƒช
๏ƒบ ๏ƒช
๏ƒบ
๏ƒช 1 1 1 1 0 1 0๏ƒบ ๏€ฝ ๏ƒช117 ๏ƒบ
๏ƒช
๏ƒบ ๏ƒช
๏ƒบ
๏ƒซ 4 3 3 4 0 0 1๏ƒป ๏€ฝ ๏ƒซ 420๏ƒป
A
OR-1 2015
I
b
x1
x2
x3
๏ƒฉ0
๏ƒช1
๏ƒช
๏ƒช0
๏ƒช
๏ƒซ0
๏€ญ 2.5
0.5
0.5
๏€ญ 0.5
0
0
1
0
B ๏€ญ1 A
c j ๏€ญ y' A j
x4
x5
x6
1.5 ๏€ญ 3.5 ๏€ญ 8.5
0.5 0.5 ๏€ญ 0.5
0.5 ๏€ญ 0.5 1.5
0.5 ๏€ญ 0.5 ๏€ญ 2.5
B ๏€ญ1
0 ๏€ญ y' b
x7
0๏ƒน ๏€ฝ ๏ƒฉ ๏€ญ 1782๏ƒน
0๏ƒบ ๏€ฝ ๏ƒช 54 ๏ƒบ
๏ƒบ ๏ƒช
๏ƒบ
0๏ƒบ ๏€ฝ ๏ƒช 63 ๏ƒบ
๏ƒบ ๏ƒช
๏ƒบ
1๏ƒป ๏€ฝ ๏ƒซ 15 ๏ƒป
B ๏€ญ1b
21
c j ๏€ญ y' A j
x1 x2
x3
x4
๏ƒฉ19 13 12 17
๏ƒช3 2 1 2
๏ƒช
๏ƒช1 1 1 1
๏ƒช
๏ƒซ4 3 3 4
x1
x5
x6
x7
0
1
0
0
0
0
1
0
0 ๏ƒน๏€ฝ๏ƒฉ 0 ๏ƒน
0 ๏ƒบ ๏€ฝ ๏ƒช 225๏ƒบ
๏ƒบ ๏ƒช
๏ƒบ
0 ๏ƒบ ๏€ฝ ๏ƒช117 ๏ƒบ
๏ƒบ ๏ƒช
๏ƒบ
1 ๏ƒป ๏€ฝ ๏ƒซ420๏ƒป
๏ƒฉ0
๏ƒช1
๏ƒช
๏ƒช0
๏ƒช
๏ƒซ0
x2
- 2.5
0.5
0.5
๏€ญ 0.5
x3
0
0
1
0
B ๏€ญ1 A
x4
x6
1.5 - 3.5 - 8.5
0.5 0.5 - 0.5
0.5 - 0.5 1.5
0.5 - 0.5 - 2.5
x7
0๏ƒน ๏€ฝ ๏ƒฉ๏€ญ 1782๏ƒน
0๏ƒบ ๏€ฝ ๏ƒช 54 ๏ƒบ
๏ƒบ ๏ƒช
๏ƒบ
0๏ƒบ ๏€ฝ ๏ƒช 63 ๏ƒบ
๏ƒบ ๏ƒช
๏ƒบ
1๏ƒป ๏€ฝ ๏ƒซ 15 ๏ƒป
B ๏€ญ1b
B ๏€ญ1
cj – y’Aj = - ym+j
cj – y’ej = - yj
x1
๏ƒฉ0
๏ƒช1
๏ƒช
๏ƒช0
๏ƒช
๏ƒซ0
OR-1 2015
x5
x2
- 2.5
0.5
0.5
๏€ญ 0.5
x3
0
0
1
0
x4
x5
x6
1.5 - 3.5 - 8.5
0.5 0.5 - 0.5
0.5 - 0.5 1.5
0.5 - 0.5 - 2.5
x7
0๏ƒน ๏€ฝ ๏ƒฉ๏€ญ 1782๏ƒน
0๏ƒบ ๏€ฝ ๏ƒช 54 ๏ƒบ
๏ƒบ ๏ƒช
๏ƒบ
0๏ƒบ ๏€ฝ ๏ƒช 63 ๏ƒบ
๏ƒบ ๏ƒช
๏ƒบ
1๏ƒป ๏€ฝ ๏ƒซ 15 ๏ƒป
22
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 ๐ด๐‘— > 0, ๐‘— ∈ ๐‘)
1) Find ๐‘ฆ ′ = ๐‘๐ต ′๐ต−1 by solving ๐‘ฆ ′ ๐ต = ๐‘๐ต ′
2) Evaluate ๐‘๐‘— − ๐‘ฆ′๐ด๐‘— for all ๐‘— ∈ ๐‘
Choose a nonbasic variable with ๐‘๐‘— − ๐‘ฆ′๐ด๐‘— > 0 as the entering nonbasic
variable.
๏ฑ Find the leaving variable:
๐‘ฅ๐ต = ๐‘ฅ๐ต∗ − ๐ต−1 ๐‘๐‘ฅ๐‘ = ๐‘ฅ๐ต∗ − ๐ต−1 ๐ด๐‘1 ๐ต−1 ๐ด๐‘2 … ๐ต−1 ๐ด๐‘๐‘› ๐‘ฅ๐‘
= ๐‘ฅ๐ต∗ −
OR-1 2015
๐‘—∈๐‘
๐ต−1 ๐ด๐‘— ๐‘ฅ๐‘—
23
Suppose ๐‘ฅ๐‘— , ๐‘— ∈ ๐‘ is chosen as the entering nonbasic variable. As we
increase ๐‘ฅ๐‘— from 0 to ๐‘ก ≥ 0 while keeping other nonbasic variables at 0, we
get
๐‘ฅ๐ต ← ๐‘ฅ๐ต∗ − ๐‘ก๐‘‘
(๐‘‘ = ๐ต−1 ๐ด๐‘— ) (Find ๐‘‘ by solving ๐ต๐‘‘ = ๐ด๐‘— )
Then determine the largest value ๐‘ก which makes ๐‘ฅ๐ต∗ − ๐‘ก๐‘‘ ≥ 0, and find the
basic variable which becomes 0, say ๐‘ฅ๐‘™ . (minimum ratio test)
i.e., ๐‘™ = ๐‘Ž๐‘Ÿ๐‘”๐‘š๐‘–๐‘›๐‘–∈๐ต
๐‘ฅ๐‘–∗
๐‘‘๐‘–
| ๐‘‘๐‘– > 0 and set
๐‘ก∗
= ๐‘š๐‘–๐‘›๐‘–∈๐ต
๐‘ฅ๐‘–∗
๐‘‘๐‘–
| ๐‘‘๐‘– > 0
๏ฑ Update:
Set ๐‘ฅ๐‘— = ๐‘ก ∗
๐‘ฅ๐ต∗ ← ๐‘ฅ๐ต∗ − ๐‘ก ∗ ๐‘‘
Replace the leaving column ๐ด๐‘™ of ๐ต by entering column ๐ด๐‘— , and ๐‘ฅ๐‘— enters the
basis in place of ๐‘ฅ๐‘™ . (position in the basis is important)
OR-1 2015
24
ex)
max 19 x1 ๏€ซ 13x2
s.t. 3x1
2 x2
x1
๏€ซ x2
4 x1 ๏€ซ 3x2
๏€ซ 12 x3
๏€ซ x3
๏€ซ x3
๏€ซ 3x3
๏€ซ 17 x4
๏€ซ 2 x4
๏€ซ 1x4
๏€ซ 4 x4
๏‚ฃ 225
๏‚ฃ 117
๏‚ฃ 420
x1, x2 , x3 , x4 ๏‚ณ 0
Current dictionary
z
x1
x3
x7
๏€ฝ 1782 ๏€ญ 2.5 x2
๏€ฝ 54 ๏€ญ 0.5 x2
๏€ฝ 63 ๏€ญ 0.5 x2
๏€ฝ 15 ๏€ซ 0.5 x2
๏€ซ 1.5 x4
๏€ญ 0.5 x4
๏€ญ 0.5 x4
๏€ญ 0.5 x4
Basic variables are {x1, x3 , x7 }
OR-1 2015
๏€ญ 3.5 x5
๏€ญ 0.5 x5
๏€ซ 0.5 x5
๏€ซ 0.5 x5
๏€ญ 8.5 x6
๏€ซ 0.5 x6
๏€ญ 1.5 x6
๏€ซ 2.5 x6
๏ƒฉ x1* ๏ƒน ๏ƒฉ54๏ƒน
๏ƒฉ 3 1 0๏ƒน
๏ƒช *๏ƒบ ๏ƒช ๏ƒบ
*
xB ๏€ฝ ๏ƒช x3 ๏ƒบ ๏€ฝ 63 , B ๏€ฝ ๏ƒช1 1 0๏ƒบ
๏ƒช ๏ƒบ
๏ƒช
๏ƒบ
๏ƒช x7* ๏ƒบ ๏ƒช๏ƒซ15๏ƒบ๏ƒป
๏ƒช๏ƒซ4 3 1๏ƒบ๏ƒป
๏ƒซ ๏ƒป
25
Find entering nonbasic variable ๐‘ฅ๐‘— such that ๐‘๐‘— − ๐‘ฆ′๐ด๐‘— > 0 (๐‘ฆ = ๐‘๐ต ′๐ต−1 )
First solve ๐‘ฆ′๐ต = ๐‘๐ต ′.
๏› y1
y2
๏ƒฉ 3 1 0๏ƒน
y3 ๏๏ƒช1 1 0๏ƒบ ๏€ฝ ๏›19 12 0๏ ๏ƒž y ' ๏€ฝ ๏›3.5 8.5 0๏
๏ƒช
๏ƒบ
๏ƒช๏ƒซ4 3 1๏ƒบ๏ƒป
๏ƒฉ 2๏ƒน
c2 ๏€ญ y ' A2 ๏€ฝ 13 ๏€ญ ๏›3.5 8.5 0๏๏ƒช1 ๏ƒบ ๏€ฝ ๏€ญ2.5
๏ƒช ๏ƒบ
๏ƒช๏ƒซ3๏ƒบ๏ƒป
๏ƒฉ 2๏ƒน
c4 ๏€ญ y ' A4 ๏€ฝ 17 ๏€ญ ๏›3.5 8.5 0๏๏ƒช1 ๏ƒบ ๏€ฝ 1.5
๏ƒช ๏ƒบ
๏ƒช๏ƒซ4๏ƒบ๏ƒป
๏ƒฉ1 ๏ƒน
c5 ๏€ญ y ' A5 ๏€ฝ 0 ๏€ญ ๏›3.5 8.5 0๏๏ƒช0๏ƒบ ๏€ฝ ๏€ญ3.5
๏ƒช ๏ƒบ
๏ƒช๏ƒซ0๏ƒบ๏ƒป
๏ƒฉ0 ๏ƒน
c6 ๏€ญ y ' A6 ๏€ฝ 0 ๏€ญ ๏›3.5 8.5 0๏๏ƒช1๏ƒบ ๏€ฝ ๏€ญ8.5
๏ƒช ๏ƒบ
๏ƒช๏ƒซ0๏ƒบ๏ƒป
x4 enters the basis
OR-1 2015
26
From ๐‘ฅ๐ต = ๐‘ฅ๐ต∗ − ๐ต−1 ๐ด๐‘ ๐‘ฅ๐‘ , consider ๐‘ฅ๐ต∗ − ๐‘ก๐ต−1 ๐ด4
Solve ๐ต๐‘‘ = ๐ด4 to find ๐ต−1 ๐ด4 .
๏ƒฉ3 1 0๏ƒน ๏ƒฉ d1 ๏ƒน ๏ƒฉ2๏ƒน
๏ƒช1 1 0 ๏ƒบ ๏ƒช d ๏ƒบ ๏€ฝ ๏ƒช1 ๏ƒบ
๏ƒช
๏ƒบ๏ƒช 2 ๏ƒบ ๏ƒช ๏ƒบ
๏ƒช๏ƒซ4 3 1๏ƒบ๏ƒป ๏ƒช๏ƒซ d3 ๏ƒบ๏ƒป ๏ƒช๏ƒซ4๏ƒบ๏ƒป
x1 ๏€ฝ 54 ๏€ญ 0.5t
x3 ๏€ฝ 63 ๏€ญ 0.5t
x7 ๏€ฝ 15 ๏€ญ 0.5t
๏ƒฉ d1 ๏ƒน ๏ƒฉ0.5๏ƒน
๏ƒž ๏ƒชd 2 ๏ƒบ ๏€ฝ ๏ƒช0.5๏ƒบ
๏ƒช ๏ƒบ ๏ƒช ๏ƒบ
๏ƒช๏ƒซ d3 ๏ƒบ๏ƒป ๏ƒช๏ƒซ0.5๏ƒบ๏ƒป
( x4 : 0 ๏‚ฎ t )
๏ƒฉ54๏ƒน
๏ƒฉ0.5๏ƒน ๏ƒฉ39๏ƒน
x*B ๏‚ฌ ๏ƒช63๏ƒบ ๏€ญ 30๏ƒช0.5๏ƒบ ๏€ฝ ๏ƒช48๏ƒบ
๏ƒช ๏ƒบ
๏ƒช ๏ƒบ ๏ƒช ๏ƒบ
๏ƒช๏ƒซ15๏ƒบ๏ƒป
๏ƒช๏ƒซ0.5๏ƒบ๏ƒป ๏ƒช๏ƒซ 0 ๏ƒบ๏ƒป
OR-1 2015
๏ƒฌ 54 63 15 ๏ƒผ
ratio test : min ๏ƒญ
,
,
๏ƒฝ ๏€ฝ 30
๏ƒฎ 0.5 0.5 0.5 ๏ƒพ
t * ๏€ฝ 30,
( x4* becomes 30)
x7 leaves the basis
๏ƒฉ x1* ๏ƒน ๏ƒฉ39๏ƒน
๏ƒฉ 3 1 2๏ƒน
๏ƒช *๏ƒบ ๏ƒช ๏ƒบ
*
new xB ๏€ฝ ๏ƒช x3 ๏ƒบ ๏€ฝ 48 , new B ๏€ฝ ๏ƒช1 1 1๏ƒบ
๏ƒช ๏ƒบ
๏ƒช
๏ƒบ
*
๏ƒช x4 ๏ƒบ ๏ƒช๏ƒซ30๏ƒบ๏ƒป
๏ƒช๏ƒซ4 3 4๏ƒบ๏ƒป
๏ƒซ ๏ƒป
27
Remarks
๏ฑ Recall the economic significance of dual variables discussed in Chapter 5. In
the revised simplex method, the vector ๐‘ฆ obtained from ๐‘ฆ ′ ๐ต = ๐‘๐ต′ (๐‘ฆ′๐ด๐‘— =
๐‘๐‘— , ๐‘— ∈ ๐ต) may be interpreted as a dual solution (may not be dual feasible) and
it gives tentative values of the resources. Let ๐ด๐‘— be the column of ๐ด
corresponding to the variable ๐‘ฅ๐‘— . It represents the amounts of resources
consumed when we perform one unit of activity ๐‘— (๐ด๐‘ฅ = ๐ด๐‘— ๐‘ฅ๐‘— = ๐‘).
Then, for a nonbasic variable ๐‘ฅ๐‘— , it compares the profit obtained from
performing one unit of activity ๐‘— (๐‘๐‘— ) with the value of the resources consumed
when we do one unit of activity ๐‘— (๐‘ฆ′๐ด๐‘— ). If ๐‘๐‘— − ๐‘ฆ ′ ๐ด๐‘— > 0, it means
performing activity ๐‘— gives more profit than the value of the resources
consumed. Hence it is desirable to increase the level of activity ๐‘— (make ๐‘ฅ๐‘—
basic). If all reduced costs are ≤ 0, there are no profitable activities remaining
under current values of resources, hence current solution is optimal.
OR-1 2015
28
Download