Presentation is loading. Please wait.

Presentation is loading. Please wait.

3.3 Implementation (1) naive implementation (2) revised simplex method

Similar presentations


Presentation on theme: "3.3 Implementation (1) naive implementation (2) revised simplex method"โ€” Presentation transcript:

1 3.3 Implementation (1) naive implementation (2) revised simplex method
(3) full tableau implementation (1) Naive implementation : Given basis ๐ต. Compute ๐‘ โ€ฒ = ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 ( solve ๐‘ โ€ฒ ๐ต= ๐‘ ๐ต โ€ฒ) Choose ๐‘— such that ๐‘ ๐‘— = ๐‘ ๐‘— โˆ’ ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 ๐ด ๐‘— = ๐‘ ๐‘— โˆ’๐‘โ€ฒ ๐ด ๐‘— <0, ๐‘—โˆˆ๐‘. ๐‘ฅ ๐ต ๐‘ฅ ๐‘ = ๐ต โˆ’1 ๐‘ 0 +๐œƒ ๐‘‘ ๐ต ๐‘‘ ๐‘ = ๐ต โˆ’1 ๐‘ 0 +๐œƒ โˆ’ ๐ต โˆ’1 ๐ด ๐‘— ๐‘’ ๐‘— Let ๐‘ข= ๐ต โˆ’1 ๐ด ๐‘— ( solve ๐ต๐‘ข= ๐ด ๐‘— ) Determine ๐œƒ โˆ— {= min ๐‘–โˆˆ๐ต: ๐‘ข ๐‘– >0 ( ๐ต โˆ’1 ๐‘ ๐‘– / ๐‘ข ๐‘– )} Let ๐ต(๐‘™) be the index of the leaving basic variable. Replace ๐ด ๐ต(๐‘™) by ๐ด ๐‘— in the basis and update basis indices. Update solution ๐‘ฅ. Naive implementation itself is frequently called the revised simplex method compared to the full tableau implementation. Linear Programming 2017

2 (2) Revised simplex method :
Naive implementation needs to find ๐‘ โ€ฒ = ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 and ๐‘ข= ๐ต โˆ’1 ๐ด ๐‘— ( or solve ๐‘ โ€ฒ ๐ต= ๐‘ ๐ต โ€ฒ, ๐ต๐‘ข= ๐ด ๐‘— ) in each iteration. Update ๐ต โˆ’1 efficiently so that computational burden is reduced. (compute ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 and ๐ต โˆ’1 ๐ด ๐‘— easily. Similar idea can be used to update ๐ต efficiently and find ๐‘,๐‘ข vectors easily.) ๐ต= ๐ด ๐ต(1) ,โ€ฆ, ๐ด ๐ต(๐‘š) โ†’ ๐ต = ๐ด ๐ต(1) ,โ€ฆ, ๐ด ๐ต(๐‘™โˆ’1) , ๐ด ๐‘— , ๐ด ๐ต(๐‘™+1) ,โ€ฆ, ๐ด ๐ต(๐‘š) ๐ต โˆ’1 ๐ต = ๐‘’ 1 ,โ€ฆ, ๐‘’ ๐‘™โˆ’1 ,๐‘ข, ๐‘’ ๐‘™+1 ,โ€ฆ, ๐‘’ ๐‘š , ๐‘ข= ๐ต โˆ’1 ๐ด ๐‘— Premultiply elementary row operation matrices ๐‘„ ๐‘˜ ๐‘„ ๐‘˜โˆ’1 โ€ฆ ๐‘„ 1 โ‰ก๐‘„ to ๐ต โˆ’1 ๐ต so that ๐‘„ ๐ต โˆ’1 ๐ต =๐‘„ ๐‘’ 1 ,โ€ฆ, ๐‘’ ๐‘™โˆ’1 ,๐‘ข, ๐‘’ ๐‘™+1 ,โ€ฆ, ๐‘’ ๐‘š =๐ผ ๏ƒž ๐‘„ ๐ต โˆ’1 = ๐ต โˆ’1 Hence applying the same row operations ( to convert ๐‘ข to ๐‘’ ๐‘™ ) to ๐ต โˆ’1 results in ๐ต โˆ’1 . ( see example in the text) Linear Programming 2017

3 (3) Full tableau implementation : ๐ด๐‘ฅ=๐‘ ๏ƒž ๐ต โˆ’1 ๐ด๐‘ฅ= ๐ต โˆ’1 ๐‘
๐ด๐‘ฅ=๐‘ ๏ƒž ๐ต โˆ’1 ๐ด๐‘ฅ= ๐ต โˆ’1 ๐‘ maintain ๐ต โˆ’1 ๐‘: ๐ต โˆ’1 ๐ด 1 ,โ€ฆ, ๐ต โˆ’1 ๐ด ๐‘› can read current b.f.s. ๐‘ฅ from ๐ต โˆ’1 ๐‘ and ๐‘‘ ๐ต =โˆ’ ๐ต โˆ’1 ๐ด ๐‘— . Update to ๐ต โˆ’1 ๐‘:๐ด . We know ๐ต โˆ’1 =๐‘„ ๐ต โˆ’1 . Hence ๐ต โˆ’1 ๐‘:๐ด =๐‘„ ๐ต โˆ’1 ๐‘:๐ด =๐‘„ ๐ต โˆ’1 ๐‘: ๐ต โˆ’1 ๐ด . So apply row operations, which convert ๐‘ข= ๐ต โˆ’1 ๐ด ๐‘— to ๐‘’ ๐‘™ , to the matrix ๐ต โˆ’1 ๐‘: ๐ต โˆ’1 ๐ด . (To find exiting column ๐ด ๐ต(๐‘™) and step size ๐œƒ โˆ— , compare ๐‘ฅ ๐ต(๐‘–) ๐‘ข ๐‘– for ๐‘ข ๐‘– >0, ๐‘–=1,โ€ฆ,๐‘š) (pivot column, pivot row, pivot element) Also maintain and update information about reduced costs and objective value. Linear Programming 2017

4 Currently 0-th row is 0:๐‘โ€ฒ โˆ’๐‘”โ€ฒ ๐‘:๐ด , where ๐‘” โ€ฒ = ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 .
To update the 0-th row, add ๐‘˜ร— (pivot row) to 0-th row for some scalar ๐‘˜ so that the coefficient for the entering variable ๐‘ฅ ๐‘— in 0-th row becomes 0. Currently 0-th row is 0:๐‘โ€ฒ โˆ’๐‘”โ€ฒ ๐‘:๐ด , where ๐‘” โ€ฒ = ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 . Let column ๐‘— be the pivot column and row ๐‘™ be the pivot row. Pivot row ๐‘™ of ๐ต โˆ’1 ๐‘: ๐ต โˆ’1 ๐ด is โ„Žโ€ฒ ๐‘:๐ด where โ„Žโ€ฒ is ๐‘™โˆ’๐‘กโ„Ž row of ๐ต โˆ’1 . Hence, after adding, new 0-th row still represented as 0:๐‘โ€ฒ โˆ’๐‘โ€ฒ ๐‘:๐ด for some ๐‘, while ๐‘ ๐ต (๐‘™) โˆ’๐‘โ€ฒ ๐ด ๐ต ๐‘™ = ๐‘ ๐‘— โˆ’๐‘โ€ฒ ๐ด ๐‘— =0. Linear Programming 2017

5 Now for ๐‘ฅ ๐‘– basic, ๐‘–โ‰ ๐‘™, have ๐‘ ๐‘– remains at 0.
(continued) Now for ๐‘ฅ ๐‘– basic, ๐‘–โ‰ ๐‘™, have ๐‘ ๐‘– remains at 0. ( ๐‘ ๐‘– = 0 before the pivot. Have ๐ต โˆ’1 ๐ด ๐ต(๐‘–) = ๐‘’ ๐‘– , ๐‘–โ‰ ๐‘™. Hence ๐ต โˆ’1 ๐ด ๐ต(๐‘–) ๐‘™ =0, ๐‘–โ‰ ๐‘™ ) ๏ƒž ๐‘ ๐ต (๐‘–) โˆ’๐‘โ€ฒ ๐ด ๐ต ๐‘– =0, for all ๐‘–โˆˆ ๐ต ๏ƒž ๐‘ ๐ต โ€ฒโˆ’ ๐‘ โ€ฒ ๐ต =0 ๏ƒž ๐‘โ€ฒ= ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 ๏ƒž new 0-th row is 0:๐‘โ€ฒ โˆ’ ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 ๐‘:๐ด as desired. Linear Programming 2017

6 See text example 3.5 for more iterations.
๐‘ฅ 4 = ๐‘ฅ 5 = ๐‘ฅ 6 = ๐‘ฅ 4 = ๐‘ฅ 1 = ๐‘ฅ 6 = See text example 3.5 for more iterations. Linear Programming 2017

7 (1) Tableau form also can be derived as the following :
(Remarks) (1) Tableau form also can be derived as the following : Given min ๐‘ โ€ฒ ๐‘ฅ, ๐ด๐‘ฅ=๐‘, ๐‘ฅโ‰ฅ0, let ๐ด= ๐ต:๐‘ , ๐‘ฅ= ๐‘ฅ ๐ต , ๐‘ฅ ๐‘ , ๐‘= ๐‘ ๐ต , ๐‘ ๐‘ , where ๐ต is the current basis. Also let ๐‘ง denote the value of the objective function, i. e. ๐‘ง= ๐‘ โ€ฒ ๐‘ฅ. Since all feasible solutions must satisfy ๐ด๐‘ฅ=๐‘, they must satisfy ๐ต:๐‘ ๐‘ฅ ๐ต ๐‘ฅ ๐‘ =๐‘ ๏‚ฎ ๐ต ๐‘ฅ ๐ต +๐‘ ๐‘ฅ ๐‘ =๐‘ ๏‚ฎ ๐ต ๐‘ฅ ๐ต =๐‘โˆ’๐‘ ๐‘ฅ ๐‘ ๏‚ฎ ๐‘ฅ ๐ต = ๐ต โˆ’1 ๐‘โˆ’ ๐ต โˆ’1 ๐‘ ๐‘ฅ ๐‘ ๐ผ ๐‘ฅ ๐ต + ๐ต โˆ’1 ๐‘ ๐‘ฅ ๐‘ = ๐ต โˆ’1 ๐‘ or in matrix form, ๐ผ: ๐ต โˆ’1 ๐‘ ๐‘ฅ ๐ต ๐‘ฅ ๐‘ = ๐ต โˆ’1 ๐‘ Linear Programming 2017

8 ๐‘ง= ๐‘ โ€ฒ ๐‘ฅ= ๐‘ ๐ต โ€ฒ ๐‘ฅ ๐ต + ๐‘ ๐‘ โ€ฒ ๐‘ฅ ๐‘ = ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 ๐‘โˆ’ ๐ต โˆ’1 ๐‘ ๐‘ฅ ๐‘ + ๐‘ ๐‘ โ€ฒ ๐‘ฅ ๐‘
(continued) Since all feasible solutions must satisfy these equations, we can plug in the expression for ๐‘ฅ ๐ต into the objective function to obtain ๐‘ง= ๐‘ โ€ฒ ๐‘ฅ= ๐‘ ๐ต โ€ฒ ๐‘ฅ ๐ต + ๐‘ ๐‘ โ€ฒ ๐‘ฅ ๐‘ = ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 ๐‘โˆ’ ๐ต โˆ’1 ๐‘ ๐‘ฅ ๐‘ + ๐‘ ๐‘ โ€ฒ ๐‘ฅ ๐‘ = ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 ๐‘+0โ€ฒ ๐‘ฅ ๐ต + ๐‘ ๐‘ โ€ฒโˆ’ ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 ๐‘ ๐‘ฅ ๐‘ = ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 ๐‘+ ๐‘ ๐‘ โ€ฒโˆ’๐‘โ€ฒ๐‘ ๐‘ฅ ๐‘ , where ๐‘ โ€ฒ = ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 or ๐‘ โ€ฒ ๐ต= ๐‘ ๐ต โ€ฒ. Hence obtain the tableau with respect to the current basis B ๐‘งโˆ’ ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 ๐‘= 0 โ€ฒ ๐‘ฅ ๐ต + ๐‘ ๐‘ โ€ฒโˆ’ ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 ๐‘ ๐‘ฅ ๐‘ ๐ต โˆ’1 ๐‘= ๐ผ ๐‘ฅ ๐ต + ๐ต โˆ’1 ๐‘ ๐‘ฅ ๐‘ = ๐ต โˆ’1 ๐ด ๐‘ฅ Linear Programming 2017

9 (continued) (2) Tableau also can be obtained using the following logic
(continued) (2) Tableau also can be obtained using the following logic. Note that elementary row operations on equations do not change the set of feasible solutions, but the representation is changed. Suppose current basis ๐ต is known. From โˆ’๐‘ง+ ๐‘ ๐ต โ€ฒ ๐‘ฅ ๐ต + ๐‘ ๐‘ โ€ฒ ๐‘ฅ ๐‘ =0 ๐ต ๐‘ฅ ๐ต +๐‘ ๐‘ฅ ๐‘ =๐‘ We compute multiplier vector ๐‘ for the constraints by solving ๐‘โ€ฒ๐ต= ๐‘ ๐ต โ€ฒ ๐‘โ€ฒ= ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 . Then we take linear combination of constraints using weight vector โˆ’๐‘ and add it to objective row, resulting in โˆ’๐‘ง+0โ€ฒ ๐‘ฅ ๐ต + ๐‘ ๐‘ โ€ฒโˆ’ ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 ๐‘ ๐‘ ๐‘ โ€ฒโˆ’ ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 ๐‘ ๐‘ฅ ๐‘ =โˆ’ ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 ๐‘, or ๐‘งโˆ’ ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 ๐‘= 0 โ€ฒ ๐‘ฅ ๐ต + ๐‘ ๐‘ โ€ฒโˆ’ ๐‘ ๐ต โ€ฒ ๐ต โˆ’1 ๐‘ ๐‘ฅ ๐‘ . Also, we multiply ๐ต โˆ’1 on both sides of constraints ๏‚ฎ ๐ผ ๐‘ฅ ๐ต + ๐ต โˆ’1 ๐‘ ๐‘ฅ ๐‘ = ๐ต โˆ’1 ๐‘. Here, the ๐‘–โˆ’๐‘กโ„Ž row of ๐ต โˆ’1 is the weight vector we use for weighted sum of constraints to obtain updated ๐‘–โˆ’๐‘กโ„Ž constraint. Linear Programming 2017

10 (continued) (3) Updating the tableau using elementary row operations is tantamount to updating the system of linear equations using elementary row operations so that the current basic feasible solution for updated basis ๐ต can be easily identified. Hence the submatrix of the updated ๐ด matrix corresponding to the new basis ๐ต constitutes an identity matrix. However, the set of feasible solutions does not change when we apply elementary row operations to the system of equations. Linear Programming 2017

11 Practical Performance Enhancements
In commercial LP solvers, ๐ต โˆ’1 is not updated in the revised simplex method. Instead we update the representation of ๐ต as ๐ต=๐ฟ๐‘ˆ, where ๐ฟ is lower triangular and ๐‘ˆ is upper triangular matrices (with some row permutation allowed, called ๐ฟ๐‘ˆ decomposition, triangular factorization). We solve the system (with proper updates), ๐‘โ€ฒ๐ฟ๐‘ˆ= ๐‘ ๐ต โ€ฒ, ๐ฟ๐‘ˆ๐‘ข= ๐ด ๐‘— , each system takes ๐‘‚ ๐‘š 2 to solve and numerically more stable than using ๐ต โˆ’1 . Moreover, less fill-in occurs in ๐ฟ๐‘ˆ decomposition than in ๐ต โˆ’1 , which is important when we solve large sparse problems. Linear Programming 2017

12 3.4 Anticycling 1. Lexicographic pivoting rule
Def : ๐‘ขโˆˆ ๐‘… ๐‘› is said to be lexicographically larger than ๐‘ฃโˆˆ ๐‘… ๐‘› if ๐‘ขโ‰ ๐‘ฃ and the first nonzero component of ๐‘ขโˆ’๐‘ฃ is positive ( ๐‘ข > ๐‘ฃ ) Lexicographic pivoting rule (1) choose entering ๐‘ฅ ๐‘— with ๐‘ ๐‘— <0. Compute updated column ๐‘ข= ๐ต โˆ’1 ๐ด ๐‘— . (2) For each ๐‘– with ๐‘ข ๐‘– >0, divide ๐‘–โˆ’๐‘กโ„Ž row of the tableau by ๐‘ข ๐‘– and choose lexicographically smallest row. If row ๐‘™ is smallest, ๐‘ฅ ๐ต(๐‘™) leaves basis. Linear Programming 2017

13 Suppose pivot column is the third one ( ๐‘—=3)
Ex 3.7: Suppose pivot column is the third one ( ๐‘—=3) ratio = 1/3 for 1st and 3rd row third row is pivot row, and ๐‘ฅ ๐ต(3) exits the basis. Linear Programming 2017

14 (a) every row except 0-th remains lexicographically positive.
Thm 3.4 : Suppose the rows in the current simplex tableau is lexicographically positive except 0-th row and lexicographic rule is used, then (a) every row except 0-th remains lexicographically positive. (b) 0-th row strictly increases lexicographically. (c) simplex method terminates finitely. Linear Programming 2017

15 Then (๐‘™โˆ’๐‘กโ„Ž row) / ๐‘ข ๐‘™ < (๐‘–โˆ’๐‘กโ„Ž row) / ๐‘ข ๐‘– , ๐‘–โ‰ ๐‘™, ๐‘ข ๐‘– >0
Pf) (a) Suppose ๐‘ฅ ๐‘— enters, ๐‘ฅ ๐‘™ leaves ( ๐‘ข ๐‘™ >0, pivot row is l-th row. ) Then (๐‘™โˆ’๐‘กโ„Ž row) / ๐‘ข ๐‘™ < (๐‘–โˆ’๐‘กโ„Ž row) / ๐‘ข ๐‘– , ๐‘–โ‰ ๐‘™, ๐‘ข ๐‘– >0 (๐‘™โˆ’๐‘กโ„Ž row) ๏‚ฎ (๐‘™โˆ’๐‘กโ„Ž row) / ๐‘ข ๐‘™ ( lexicographically positive ) For ๐‘–โˆ’๐‘กโ„Ž row, ๐‘–โ‰ ๐‘™ (1) ๐‘ข ๐‘– <0 ; add pos. num. ๏‚ด (๐‘™โˆ’๐‘กโ„Ž row) to ๐‘–โˆ’๐‘กโ„Ž row ๏ƒž lex. pos. (2) ๐‘ข ๐‘– >0 ; (new ๐‘–โˆ’๐‘กโ„Ž row) = (old ๐‘–โˆ’๐‘กโ„Ž row)โˆ’ ๐‘ข ๐‘– ๐‘ข ๐‘™ ร—(old ๐‘™โˆ’๐‘กโ„Ž row) ๏ƒž ๐‘ข ๐‘– old ๐‘–โˆ’๐‘กโ„Ž row ๐‘ข ๐‘– โˆ’ old ๐‘™โˆ’๐‘กโ„Ž row ๐‘ข ๐‘™ is lexicographically positive ๏ƒž (new ๐‘–โˆ’๐‘กโ„Ž row) is lexicographically positive (3) ๐‘ข ๐‘– =0 ; remains unchanged (b) ๐‘ ๐‘— <0 ๏ƒž we add positive multiple of ๐‘™โˆ’๐‘กโ„Ž row to 0โˆ’๐‘กโ„Ž row (c) 0โˆ’๐‘กโ„Ž row determined by current basis ๏ƒž no basis repeated since 0-th row increases lexicographically ๏ƒž finite termination. ๏‚ Linear Programming 2017

16 (2) Idea of lexicographic rule is related to the perturbation method.
Remarks : (1) To have initial lexicographically positive rows, permute the columns (variables) so that the basic variables come first in the current tableau (2) Idea of lexicographic rule is related to the perturbation method. If no degenerate solution ๏ƒž objective value strictly decreases, hence no cycling ( decrease of objective function value is ๐œƒ โˆ— ๐‘ ๐‘— ). Hence add small positive ๐œ€ ๐‘– to ๐‘ฅ ๐ต(๐‘–) , ๐‘–=1,โ€ฆ,๐‘š to obtain ๐‘ฅ ๐ต ๐‘– = ๐ต โˆ’1 ๐‘ ๐‘– + ๐œ€ ๐‘– , where 0< ๐œ€ ๐‘š โ‰ช ๐œ€ ๐‘šโˆ’1 โ‰ชโ€ฆโ‰ช ๐œ€ 2 โ‰ช ๐œ€ 1 โ‰ช1. Linear Programming 2017

17 (continued) It can be shown that no degenerate solution appears in subsequent iterations ( think ๐œ€ ๐‘– โ€ฒ๐‘  as symbols), hence cycling is avoided. Lexicographic rule is an implementation of the perturbation method without using ๐œ€ ๐‘– โ€ฒ๐‘  explicitly. Note that the coefficient matrix of ๐œ€ ๐‘– โ€ฒ๐‘  and basic variables are all identity matrices. Hence the simplex iterations (elementary row operations) result in the same coefficient matrices. Linear Programming 2017

18 2. Blandโ€™s rule ( smallest subscript rule )
(1) Choose smallest ๐‘— among the nonbasic variables having ๐‘ ๐‘— <0 and let the column ๐ด ๐‘— enter the basis (2) Out of all basic variables ๐‘ฅ ๐‘– โ€ฒ๐‘  that are tied in the minimum ratio test for choosing an exiting variable, choose the one with the smallest value of index ๐‘–. Pf) see p.37-38, Vasek Chvatal, Linear Programming, Freeman, Note that the proof is given for the maximization problem. Note that the lexicographic rule and the smallest subscript rule can be started and stopped at any time during the simplex iterations. Linear Programming 2017

19 3.5 Finding an initial b.f.s. Given (P): min ๐‘ โ€ฒ ๐‘ฅ, s.t. ๐ด๐‘ฅ=๐‘, ๐‘ฅโ‰ฅ (assume ๐‘โ‰ฅ0 ) Introduce artificial variables and solve (P-I) min ๐‘ฆ 1 + ๐‘ฆ 2 +โ€ฆ+ ๐‘ฆ ๐‘š , s.t. ๐ด๐‘ฅ+๐ผ๐‘ฆ=๐‘, ๐‘ฅโ‰ฅ0, ๐‘ฆโ‰ฅ0 Initial b.f.s. : ๐‘ฅ=0, ๐‘ฆ=๐‘ If optimal value >0 ๏ƒž (P) is infeasible (If (P) feasible ๏ƒž (P-I) has a solution with ๐‘ฆ=0) If optimal value =0 ๏ƒž all ๐‘ฆ ๐‘– =0, so current optimal solution ๐‘ฅ gives a feasible solution to (P). Drop ๐‘ฆ ๐‘– variables and use the original objective function. However, we need a b.f.s. to use simplex. Have trouble if some artificial variables remain basic in the optimal basis. Linear Programming 2017

20 Driving artificial variables out of the basis (in tableau form)
Pivot element Linear Programming 2017

21 So bring ๐‘ฅ ๐‘— into the basis by pivoting (solution not changed)
Suppose ๐‘ฅ ๐ต(1) ,โ€ฆ, ๐‘ฅ ๐ต(๐‘˜) , ๐‘˜<๐‘š are basic variables which are from original variables. Suppose artificial variable ๐‘ฆ ๐‘– is in the ๐‘™โˆ’๐‘กโ„Ž position of the basis (๐‘™โˆ’๐‘กโ„Ž component of the column for ๐‘ฆ ๐‘– in the optimal tableau is 1 and all other components are 0.) and ๐‘™โˆ’๐‘กโ„Ž component of ๐ต โˆ’1 ๐ด ๐‘— is nonzero for some nonbasic original variable ๐‘ฅ ๐‘— . Then ๐ต โˆ’1 ๐ด ๐ต(1) ,โ€ฆ, ๐ต โˆ’1 ๐ด ๐ต(๐‘˜) = ๐‘’ 1 ,โ€ฆ, ๐‘’ ๐‘˜ and ๐ต โˆ’1 ๐ด ๐‘— are linearly independent ๏ƒž ๐ด ๐ต(1) ,โ€ฆ, ๐ด ๐ต ๐‘˜ , ๐ด ๐‘— linearly independent So bring ๐‘ฅ ๐‘— into the basis by pivoting (solution not changed) If not exist ๐‘ฅ ๐‘— with ๐ต โˆ’1 ๐ด ๐‘— ๐‘™ โ‰ 0 ๏ƒž ๐‘”โ€ฒ๐ด=0โ€ฒ (๐‘”โ€ฒ is ๐‘™โˆ’๐‘กโ„Ž row of ๐ต โˆ’1 ) So rows of ๐ด linearly dependent. Also have ๐‘” โ€ฒ ๐‘=0 since ๐ด๐‘ฅ=๐‘ feasible. Hence ๐‘” โ€ฒ ๐ด๐‘ฅ= ๐‘” โ€ฒ ๐‘ โ€ฒ ๐‘ฅ=0 redundant eq. and it is ๐‘™โˆ’๐‘กโ„Ž row of tableau ๏ƒž can eliminate it. Linear Programming 2017

22 Remarks Note that although we may eliminate the ๐‘™โˆ’๐‘กโ„Ž row of the current tableau, it may not imply that the ๐‘™โˆ’๐‘กโ„Ž row of the initial tableau is redundant. To see this, suppose that ๐‘–โˆ’๐‘กโ„Ž artificial variable (with corresponding column ๐‘’ ๐‘– in the initial tableau) is in the ๐‘™โˆ’๐‘กโ„Ž position of the current basis matrix (hence ๐ต โˆ’1 ๐‘’ ๐‘– = ๐‘’ ๐‘™ in the current tableau). Let ๐‘”โ€ฒ be the ๐‘™โˆ’๐‘กโ„Ž row of ๐ต โˆ’1 , then from ๐‘”โ€ฒ ๐‘’ ๐‘– =1, we know that ๐‘–โˆ’๐‘กโ„Ž component of ๐‘” is 1. Then, from ๐‘” โ€ฒ ๐ด=0โ€ฒ and ๐‘” โ€ฒ ๐‘=0, ๐‘–โˆ’๐‘กโ„Ž row of ๐‘:๐ด can be expressed as a linear combination of the other rows, hence ๐‘–โˆ’๐‘กโ„Ž row in the original tableau is redundant. (What effect can be observed if there are additional artificial basic variable ๐‘ฆ ๐‘˜ ?) Linear Programming 2017

23 Sometimes, we may want to retain the redundant rows when we solve the problem because we do not want to change the problem data so that we can perform sensitivity analysis later, i.e. change the data a little bit and solve the problem again. Then the artificial variables corresponding to the redundant equations should remain in the basis (we should not drop the variable). It will not leave the basis in subsequent iterations since the corresponding row has all 0 coefficients. If we do not drive the artificial variables out of the basis and perform the simplex iterations using the current b.f.s., it may happen that the value of the basic artificial variables become positive, hence gives an infeasible solution to the original problem. To avoid this, modification on the simplex method is needed or we may use the bounded variable simplex method by setting the upper bounds of the remaining artificial variables to 0. ( lower bounds are 0 ) Linear Programming 2017

24 Two-phase simplex method
See text p.116 for two-phase simplex method Big-M method Use the objective function, min ๐‘—=1 ๐‘› ๐‘ ๐‘— ๐‘ฅ ๐‘— +๐‘€ ๐‘–=1 ๐‘š ๐‘ฆ ๐‘– , where ๐‘€ is a large number. see text sec. 3.6 for definition of ๐‘˜-dimensional simplex and the interpretation of simplex method by column geometry. Linear Programming 2017

25 3.7 Computational efficiency of the simplex method
See text sec. 1.6 Algorithms and operation counts. Count the number of operations of an algorithm. Polynomial time vs. Exponential time. Size of the numbers involved may need to be considered (Chapter 8, 9). Each iteration of the simplex method takes polynomial time of m, n and length of encoding of data. But number of iterations is exponential in the worst case. Empirically, number of iterations is ๐‘‚(๐‘š) and ๐‘‚ log ๐‘› . For pivoting rules, there exist counter examples on which simplex takes exponential number of iterations, hence simplex algorithm is not a polynomial time algorithm. ( Still, there exists a possibility that some other pivoting rules may provide polynomial running time. Though it may be very difficult to prove.) Linear Programming 2017


Download ppt "3.3 Implementation (1) naive implementation (2) revised simplex method"

Similar presentations


Ads by Google