The Revised Simplex Method Combinatorial Problem Solving (CPS) Javier Larrosa Albert Oliveras Enric Rodr´ ıguez-Carbonell April 17, 2020
Tableau Simplex Method The simplex method we have seen so far is called ■ tableau simplex method Some observations: ■ At each iteration we update the full tableau ◆ x B = B − 1 b − B − 1 Rx R for the new basis But ... ◆ For pricing only one negative reduced cost is needed ■ For ratio test, only ■ the column of the chosen non-basic variable in the tableau, and ◆ the current basic solution ◆ are needed 2 / 30
Revised Simplex Method Idea: do not keep a representation of the full tableau, only B − 1 ■ Advantages over the tableau version: ■ Time and space are saved ◆ Errors due to floating-point arithmetic are easier to control ◆ 3 / 30
Revised Simplex Method Idea: do not keep a representation of the full tableau, only B − 1 ■ Advantages over the tableau version: ■ Time and space are saved ◆ Errors due to floating-point arithmetic are easier to control ◆ We will revise the algorithm and express it in terms of B − 1 ■ First for LP’s of the form ■ min z = c T x Ax = b x ≥ 0 3 / 30
Basic Solution Let us see how the basic solution is expressed in terms of B − 1 ■ For any basis B , ■ values of basic variables can be expressed in terms of non-basic variables: Bx B + Rx R = b b − Rx R = Bx B B − 1 b − B − 1 Rx R = x B 4 / 30
Basic Solution Let us see how the basic solution is expressed in terms of B − 1 ■ For any basis B , ■ values of basic variables can be expressed in terms of non-basic variables: Bx B + Rx R = b b − Rx R = Bx B B − 1 b − B − 1 Rx R = x B By definition, the basic solution corresponds to ■ assigning null values to all non-basic variables: x R = 0 Then x B = B − 1 b We will denote the basic solution (projected on basic variables) with ■ β := B − 1 b 4 / 30
Optimality Condition Let us see now how to express the reduced costs in terms of B − 1 ■ Recall the equation of basic variables in terms of non-basic variables: ■ x B = B − 1 b − B − 1 Rx R Cost function can be split: c T x = c T B x B + c T R x R , where ■ c T B are the costs of basic variables, c T R are the costs of non-basic variables 5 / 30
Optimality Condition Let us see now how to express the reduced costs in terms of B − 1 ■ Recall the equation of basic variables in terms of non-basic variables: ■ x B = B − 1 b − B − 1 Rx R Cost function can be split: c T x = c T B x B + c T R x R , where ■ c T B are the costs of basic variables, c T R are the costs of non-basic variables We can express the cost function in terms of non-basic variables: ■ c T x = c T B x B + c T R x R = c T B ( B − 1 b − B − 1 Rx R ) + c T R x R = c T B B − 1 b − c T B B − 1 Rx R + c T R x R = c T B B − 1 b + ( c T R − c T B B − 1 R ) x R 5 / 30
Optimality Condition We found that c T x = c T B B − 1 b + ( c T R − c T B B − 1 R ) x R ■ The part that depends on non-basic variables is ( c T R − c T B B − 1 R ) x R ■ Let a j be the column in A corresponding to variable x j ∈ x R . ■ ( c T R − c T B B − 1 R ) x R c j − c T B B − 1 a j The coefficient of x j in is We will denote the reduced cost of x j with d j := c j − c T B B − 1 a j Optimality condition: d j ≥ 0 for all j ∈ R ■ 6 / 30
Cost at Basic Solution Let’s see how to express the value of the cost function at the basic solution ■ We found that c T x = c T B B − 1 b + d T R x R , where d j = c j − c T B B − 1 a j ■ We will denote the value of the cost function at the basic solution with z ■ Taking x R = 0 in the above equation: z := c T B B − 1 b ■ 7 / 30
Cost at Basic Solution Let’s see how to express the value of the cost function at the basic solution ■ We found that c T x = c T B B − 1 b + d T R x R , where d j = c j − c T B B − 1 a j ■ We will denote the value of the cost function at the basic solution with z ■ Taking x R = 0 in the above equation: z := c T B B − 1 b ■ To avoid repeating computations: ■ Let us define the simplex multiplier as π := ( B T ) − 1 c B Then π T = c T B B − 1 So d j = c j − π T a j (and z = π T b ) 7 / 30
Improving a Non-Optimal Solution Let us assume the optimality condition is violated ■ Let x q be a non-basic variable such that its reduced cost is d q < 0 ■ Current value of x q is 0 . ■ We can improve by increasing only this value while non-negativity constraints of basic variables are satisfied. 8 / 30
Improving a Non-Optimal Solution Let us assume the optimality condition is violated ■ Let x q be a non-basic variable such that its reduced cost is d q < 0 ■ Current value of x q is 0 . ■ We can improve by increasing only this value while non-negativity constraints of basic variables are satisfied. Let t ≥ 0 be the new value for x q . ■ Let x B ( t ) be the values of basic variables in terms of t Let x R ( t ) be the values of non-basic variables in terms of t Note that x q ( t ) = t , and x p ( t ) = 0 if p ∈ R and p � = q 8 / 30
Improving a Non-Optimal Solution Let us assume the optimality condition is violated ■ Let x q be a non-basic variable such that its reduced cost is d q < 0 ■ Current value of x q is 0 . ■ We can improve by increasing only this value while non-negativity constraints of basic variables are satisfied. Let t ≥ 0 be the new value for x q . ■ Let x B ( t ) be the values of basic variables in terms of t Let x R ( t ) be the values of non-basic variables in terms of t Note that x q ( t ) = t , and x p ( t ) = 0 if p ∈ R and p � = q x B ( t ) = B − 1 b − B − 1 Rx R ( t ) = B − 1 b − B − 1 a q t = β − tα q So where β = B − 1 b is the basic solution and we denote the column in the tableau of x q as α q := B − 1 a q 8 / 30
Improving a Non-Optimal Solution How much do we improve? ■ How does the objective value change as a function of t ? z ( t ) = c T x ( t ) = c T B x B ( t ) + c T R x R ( t ) = c T B x B ( t ) + c q t = c T B β − tc T B α q + c q t = c T B β − tc T B B − 1 a q + c q t = z + td q As expected, the improvement in cost is ∆ z = z ( t ) − z = td q ■ 9 / 30
Improving a Non-Optimal Solution Recall that x B ( t ) = β − tα q ■ How can we satisfy the non-negativity constraints of basic variables? ■ 10 / 30
Improving a Non-Optimal Solution Recall that x B ( t ) = β − tα q ■ How can we satisfy the non-negativity constraints of basic variables? ■ Basic variables have indices B = ( k 1 , ..., k m ) ■ Let i ∈ { 1 , ..., m } . The i -th basic variable is x k i ■ Value of x k i as a function of t is the i -th component of x B ( t ) : β i − tα i q , ■ where β i is the i -th component of β and α i q is the i -th component of α q 10 / 30
Improving a Non-Optimal Solution Recall that x B ( t ) = β − tα q ■ How can we satisfy the non-negativity constraints of basic variables? ■ Basic variables have indices B = ( k 1 , ..., k m ) ■ Let i ∈ { 1 , ..., m } . The i -th basic variable is x k i ■ Value of x k i as a function of t is the i -th component of x B ( t ) : β i − tα i q , ■ where β i is the i -th component of β and α i q is the i -th component of α q β i − tα i β i ≥ tα i We need q ≥ 0 ⇐ ⇒ ■ q If α i q ≤ 0 the constraint is satisfied for all t ≥ 0 ◆ q > 0 we need β i If α i q ≥ t ◆ α i 10 / 30
Improving a Non-Optimal Solution Recall that x B ( t ) = β − tα q ■ How can we satisfy the non-negativity constraints of basic variables? ■ Basic variables have indices B = ( k 1 , ..., k m ) ■ Let i ∈ { 1 , ..., m } . The i -th basic variable is x k i ■ Value of x k i as a function of t is the i -th component of x B ( t ) : β i − tα i q , ■ where β i is the i -th component of β and α i q is the i -th component of α q β i − tα i β i ≥ tα i We need q ≥ 0 ⇐ ⇒ ■ q If α i q ≤ 0 the constraint is satisfied for all t ≥ 0 ◆ q > 0 we need β i If α i q ≥ t ◆ α i The best improvement is achieved with the strongest of the upper bounds: ■ θ := min { β i q | α i q > 0 } α i We say the p -th basic variable x k p is blocking or tight when θ = β p q . ■ α p Then α p q is the pivot 10 / 30
Improving a Non-Optimal Solution 1. If θ = + ∞ (there is no upper bound, i.e., no i such that 1 ≤ i ≤ m and α i q > 0 ): Value of objective function can be decreased infinitely. LP is unbounded. 11 / 30
Improving a Non-Optimal Solution 1. If θ = + ∞ (there is no upper bound, i.e., no i such that 1 ≤ i ≤ m and α i q > 0 ): Value of objective function can be decreased infinitely. LP is unbounded. If θ < + ∞ and the p -th basic variable x k p is blocking: 2. When setting x q = θ , the non-negativity of basic variables is respected In particular the value of x k p , i.e. the p -th component of x B ( t ) , is β p − θα p q = 0 We can make a basis change: x q enters the basis and x k p leaves, where B = ( k 1 , ..., k m ) 11 / 30
Recommend
More recommend