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