Download presentation
Presentation is loading. Please wait.
1
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 Where, ๐ด= ๐ 11 โฆ ๐ 1๐ โฎ โฑ โฎ ๐ ๐1 โฆ ๐ ๐๐ 1 โฆ 0 โฎ โฑ โฎ 0 โฆ 1 OR
2
This dictionary can be represented compactly using matrix notation.
ex) max 19 ๐ฅ ๐ฅ ๐ฅ ๐ฅ 4 s.t. 3 ๐ฅ 1 +2 ๐ฅ 2 + ๐ฅ 3 +2 ๐ฅ 4 โค225 ๐ฅ ๐ฅ ๐ฅ ๐ฅ 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 ๐ฅ ๐ฅ 4 โ3.5 ๐ฅ 5 โ8.5 ๐ฅ 6 ๐ฅ 1 = 54 โ0.5 ๐ฅ 2 โ0.5 ๐ฅ 4 โ0.5 ๐ฅ ๐ฅ 6 ๐ฅ 3 = 63 โ0.5 ๐ฅ 2 โ0.5 ๐ฅ ๐ฅ 5 โ1.5 ๐ฅ 6 ๐ฅ 7 = ๐ฅ 2 โ0.5 ๐ฅ ๐ฅ ๐ฅ 6 This dictionary can be represented compactly using matrix notation. OR
3
We write the constraints as ๐ด๐ฅ=๐ with
๐ด= , ๐= , ๐ฅ= ๐ฅ 1 ๐ฅ 2 ๐ฅ ๐ฅ 4 ๐ฅ 5 ๐ฅ 6 ๐ฅ 7 . We express ๐ด๐ฅ as ๐ต ๐ฅ ๐ต +๐ ๐ฅ ๐ with ๐ต= , ๐= , ๐ฅ ๐ต = ๐ฅ 1 ๐ฅ 3 ๐ฅ 7 , ๐ฅ ๐ = ๐ฅ 2 ๐ฅ ๐ฅ 5 ๐ฅ (In the text, ๐ด ๐ต , ๐ด ๐ are used instead of ๐ต, ๐.) Also ๐โฒ= Express ๐ โฒ ๐ฅ as ๐ ๐ต โฒ ๐ฅ ๐ต + ๐ ๐ โฒ ๐ฅ ๐ , with ๐ ๐ต โฒ= , ๐ ๐ โฒ= OR
4
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 ๐ ๐ฅ ๐ OR
5
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. ๏ฟ OR
6
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
7
Interpretation with elementary row operations
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 zeroth eq. (or subtract ๐ฆ โฒ ๐ from ๐ ๐ โฒ) Similarly, for basic variables, we add โ๐ฆ โฒ ๐ต to ๐ ๐ต โฒ to the zeroth equation. Then, ๐ ๐ต โฒโ ๐ ๐ต โฒ ๐ต โ1 ๐ต=0. Also, the right-hand side constant in the zeroth equation can be obtained by adding โ๐ฆ โฒ ๐ to 0 (initial value). OR
8
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 โ๐ฆ vector and add it to zeroth equation (or subtract it with weight vector ๐ฆ). It is the net effect of many elementary row operations to the zeroth equation performed on the tableau. The value ๐ ๐ โ๐ฆโฒ ๐ด ๐ is called reduced cost. It is 0 for every basic variable. OR
9
Initially, we have After reordering of columns OR
10
Updated tableau (cBโB-1 = yโ ) = cBโ โ cBโB-1B = cNโ โ cBโB-1N
OR
11
We take linear combination of rows of ๐ต:๐|๐ .
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 ๐โ ๐ฆ โฒ ๐ด (negative of objective value: 0โ ๐ฆ โฒ ๐) ๐โ๐กโ constraint : (๐โ๐กโ row of ๐ต โ1 ) [B : N] (r.h.s: ( ๐โ๐กโ row of ๐ต โ1 ) ๐ ) OR
12
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, OR
13
Therefore, ๐ โฒ โ ๐ฆ โฒ ๐ดโค0, โ๐ฆโฒโค0. Here, ๐ฆ โฒ = ๐ ๐ต โฒ ๐ต โ1 .
In an optimal tableau, we have all coefficients in zeroth equation 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
14
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
15
(recall CS conditions)
Complementary slackness between primal and dual solutions during simplex iterations. (recall CS conditions) ๐=1 ๐ ๐ ๐๐ ๐ฆ ๐ โ = ๐ ๐ or ๐ฅ ๐ โ =0 (or both), for every ๐=1,2,โฆ,๐ ๐=1 ๐ ๐ ๐๐ ๐ฅ ๐ โ = ๐ ๐ or ๐ฆ ๐ โ =0 (or both), for every ๐=1,2,โฆ,๐ (Suppose have primal b.f.s. ๐ฅ โ , and dual solution ๐ฆ โ = ๐ ๐ต โฒ ๐ต โ1 .) Structural variable ๐ฅ ๐ โ >0 ๏ ๐ฅ ๐ โ basic ๏ ๐ ๐ โ ๐ฆ โ โฒ๐ด ๐ =0 ๐ฆ โ โฒ๐ด ๐ โ ๐ ๐ ๏ ๐ ๐ โ ๐ฆ โ โฒ๐ด ๐ โ 0 ๏ ๐ฅ ๐ โ nonbasic ๏ ๐ฅ ๐ โ =0 ๐ ๐ โฒ ๐ฅ โ โ (<) ๐ ๐ ๏ ๐ฅ ๐+๐ โ >0, hence basic ๏ ๐ ๐+๐ โ๐ฆโฒ ๐ด ๐+๐ =0โ ๐ฆ ๐ โ =0 ๐ฆ ๐ โ โ 0 ๏ ๐ ๐+๐ โ ๐ฆ โ โฒ ๐ด ๐+๐ โ 0 ๏ ๐ฅ ๐+๐ nonbasic, hence ๐ฅ ๐+๐ โ =0 ๏ ๐ ๐ โฒ ๐ฅ โ = ๐ ๐ OR
16
(more in Chapter 10. Sensitivity Analysis later.)
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
17
Ex) OR
18
Current dictionary OR
19
๐ ๐ โ ๐ ๐ต ๐ต โ1 ๐ = 13, 17, 0, 0 โ 3.5, 8.5, = โ2.5, 1.5, โ3.5, โ8.5 OR
20
Updated tableau OR
21
Apply same elementary row operations
OR
22
cj โ yโAj = - ym+j cj โ yโej = - yj OR
23
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 ๐ด ๐ 2 โฆ ๐ต โ1 ๐ด ๐ ๐ ๐ฅ ๐ = ๐ฅ ๐ต โ โ ๐โ๐ ๐ต โ1 ๐ด ๐ ๐ฅ ๐ OR
24
๐ฅ ๐ต โ ๐ฅ ๐ต โ โ๐ก๐ (๐= ๐ต โ1 ๐ด ๐ ) (Find ๐ by solving ๐ต๐= ๐ด ๐ )
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
25
ex) Current dictionary OR
26
Find entering nonbasic variable ๐ฅ ๐ such that ๐ ๐ โ๐ฆโฒ ๐ด ๐ >0 (๐ฆ= ๐ ๐ต โฒ ๐ต โ1 )
First solve ๐ฆโฒ๐ต= ๐ ๐ต โฒ. OR
27
From ๐ฅ ๐ต = ๐ฅ ๐ต โ โ ๐ต โ1 ๐ด ๐ ๐ฅ ๐ , consider ๐ฅ ๐ต โ โ๐ก ๐ต โ1 ๐ด 4
Solve ๐ต๐= ๐ด 4 to find ๐ต โ1 ๐ด 4 . OR
28
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
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.