Presentation on theme: "Computational Methods for Management and Economics Carla Gomes Module 6b Simplex Pitfalls (Textbook – Hillier and Lieberman)"— Presentation transcript:
Computational Methods for Management and Economics Carla Gomes Module 6b Simplex Pitfalls (Textbook – Hillier and Lieberman)
Synopsis of simplex method Pitfalls: –Tie for the entering variable –Degeneracy –Unboundedness –Multiple optimal solutions –Initialization: Adapting to other forms
Simplex Method in Tabular Form Assumption: Standard form max; only <= functional constraints; all vars have non-negativity constraints; rhs are positive Initialization –Introduce slack variables –Decision variables non-basic variables (set to 0) –Slack variables basic variables (set to corresponding rhs) –Transform the objective function and the constraints into equality constraints Optimality Test –Current solution is optimal iff all the coefficients of objective function are non-negative
Simplex Method in Tabular Form (cont.) Iteration: Move to a better BFS –Step1 Entering Variable – non-basic variable with the most negative coefficient in the objective function. Mark that column as the pivot column. –Step2 Leaving basic variable – apply the minimum ratio test: Consider in the pivot column only the coeffcients that are strictly positive Divide each of theses coefficients into the rhs entry for the same row Identify the row with the smallest of these ratios The basic variable for that row is the leaving variable; mark that row as the pivot row; The number in the intersection of the pivot row with the pivot column is the pivot number
Simplex Method in Tabular Form (cont.) Iteration: Move to a better BFS –Step3 Solve for the new BFS by using elementary row operations to construct a new simplex tableau in proper form Divide pivot row by the pivot number for each row (including objective function) that has a negative coefficient in the pivot column, add to this row the product of the absolute value of this coefficient and the new pivot row. for each row that has a positive coefficient in the pivot column, add to this row the product the new pivot row.multiplied by the negative of the coefficient.
Tie for the entering variable Step1 Entering Variable – non-basic variable with the most negative coefficient in the objective function. Mark that column as the pivot column. –What if more two or more variables are tied? Example: Z = 3 x 1 + 3 x 2 Break ties randomly (it may affect the number of iterations ),
Tie for the leaving variable - Degeneracy –Step2 Leaving basic variable – apply the minimum ratio test: Identify the row with the smallest of these ratios –What if several rows have the smallest ratio? What does it mean? Does it matter? Several basic variables will become 0 as the entering variable increases therefore the variables not chosen to leave the basis will also have a value 0 (i.e., a basic variable with value 0 – called degenerate variable). If a degenerate variable is chosen as the leaving basic variable, that means that the new variable will also have to be 0 (why?) Z will not improve and therefore the simplex method may get into a loop.
x1x1 -3310 -4201 Degeneracy ==== 2 6 x2x2 x4x4 x3x3 3-200 z 0 0 1 = 2 1x3x3 x4x4 BV z A bfs is degenerate if b j = 0 for some j. Otherwise, it is non-degenerate. 0 This bfs is degenerate. 0
x1x1 -3310 -4201 Degeneracy ==== 2 6 x2x2 x4x4 x3x3 3-200 z 0 0 1 = 2 1x3x3 x4x4 BV z A bfs is degenerate if b j = 0 for some j. Otherwise, it is non-degenerate. 3 This bfs is non-degenerate. 3
Degenerate the solution may stay the same z stays the same x1x1 -3310 -4201 Degeneracy ==== 2 6 x2x2 x4x4 x3x3 3-200 z 0 0 1 = 2 1 x 1 = 0 x 2 = x 3 = 6 - 3 x 4 = 0 - 2 z = 2 + 2 x3x3 x4x4 BV z A bfs is degenerate if b j = 0 for some j. Otherwise, it is non-degenerate. 0 Suppose that variable x 2 will enter the basis.
In this case the solution did not change. (But the tableau did.) x1x1 -3310 -4201 A degenerate pivot ==== 6 x2x2 x4x4 x3x3 3-200 -z 0 0 1 = 2 1 x 1 = 0 x 2 = x 3 = 6 x 4 = 0 z = 2 x3x3 x4x4 BV z The entering variable is x 2. The exiting variable is the one in constraint 2. 0-2101/20 1002 301-3/26
x1x1 -3310 -4201 Non-degeneracy leads to strict improvement ==== 2 6 x2x2 x4x4 x3x3 3-200 z 0 0 1 = 2 1 x 1 = 0 x 2 = x 3 = 6 - 3 x 4 = 2 - 2 z = 2+ 2 x3x3 x4x4 BV z If the BFS is non-degenerate, then the entering variable can strictly increase, and the objective value will strictly improve.
Handling Degeneracy Perturb the RHS just a little, in just the right way No basis is degenerate Every bfs to the purturbed problem is also a bfs for the original problem The optimal basis for the perturbed problem is optimal for the original problem
An LP before perturbation x1x1 -3310 -4201 ==== 2. 6. x2x2 x4x4 x3x3 3-200 -z 0 0 1 = 0 1x3x3 x4x4 BV z Goal: modify the problem by changing the RHS just a little Perturb it so little that solving the perturbed problem also solves the original problem. Perturb it to avoid degeneracy
An example of a perturbed initial BFS x1x1 -3310 -4201 ==== 2.00000000000041 6.00000000000013 x2x2 x4x4 x3x3 3-200 -z 0 0 1 = 0 1x3x3 x4x4 BV z In theory perturbations are even smaller In practice, the simplex method works fine without perturbations, that is, it really obtains the optimum basic feasible solution.
Some Remarks on Degeneracy It might seem that degeneracy would be rare. After all, why should we expect that the RHS would be 0 for some variable? In reality, degeneracy is incredibly common. In practice: LP Simplex based solvers automatically use the perturbation method and special breaking tie rules (e.g., Cplex) If the problem is very degenerate we may need to use solve the LP using a method different than a simplex based method to solve the problem(e.g., interior point method)
No leaving basic variable Unbounded Z Variable leaving the basis –One of the basic variables will become non-basic; write all the basic variables as a function of the entering variable; the most stringent value (i.e., smallest) will be the value for the new entering variable; What if no variable puts a limit on the value of the entering variable – this happens when all the coefficients of the entering variable are negative or zero. Unbounded Z
x 1 = x 2 = 1 x 3 = 3 x 4 = 0 z = 2 x 1 = x 2 = 1 + 2 x 3 = 3 + 3 . x 4 = 0 z = 2 + x1x1 Unboundedness ==== x2x2 x4x4 x3x3 z 0 0 1 = Set x 1 = and x 4 = 0. -210.5 1001 -301-1.5 1 2 3 If the coefficients in the entering column are 0, then the solution is unbounded from above Express unboundedness in terms of algebraic notation. The entering variable is x 1. -2 -3
1310 201 Multiple Optima (maximization) ==== 2 6 x2x2 x4x4 x3x3 0400 z 0 0 1 = 8 This basic feasible solution is optimal! Is there another optimal solution? Suppose that x 1 entered the basis. What would leave? x1x1 z = 8 + 0 x 1 + x 2 How much can x 1 be increased?
1310 201 Multiple Optima (maximization) ==== 2 6 x2x2 x4x4 x3x3 0400 z 0 0 1 = 8 x1x1 Use the min ratio rule to determine which variable leaves the basis. c1c1 c2c2 There may be alternative optima if c j 0 for all j and c j = 0 for some j where x j is non- basic
1310 201 Multiple Optima (maximization) ==== 2 6 x2x2 x4x4 x3x3 0400 z 0 0 1 = 8 Let x 1 enter the basis. Let the basic variable in constraint 1 leave the basis. x1x1 1310 04008 6 05118 Note: the solution is different, but the objective value is the same.
Multiple Optimal Solutions. Maximize P = 3 D + 2 W subject to D ≤ 4 2W ≤ 12 3D + 2W ≤ 18 and D ≥ 0, W ≥ 0. Every point on this line is An optimal solution with P=18
Two optimal solutions – what are they? Are there others? Multiple Optimal Solutions.
At least one of the non-basic variables has a coefficient 0 in the Z row – so increasing any such a variable will not change the value of Z. Therefore these other BF optimal solutions can be identified Note: Simplex only identifies BFS (that correspond to CPF solutions). All other solutions are convex combinations of the BF optimal solutions The simplex method stops after the first optimal solution; In practice – good idea to look at other solutions – they may be better from other points of view. How do we see that a problem has multiple optima by looking at the Tableau?
Two optimal solutions – what are they? Are there others? Multiple Optimal Solutions. Every point on the line segment between (2,6) and (4,3) is optimal all the optimal solutions are a weighted average of these two solutions x1 x2 = 2626 4343 w1 + w2 w1,w2 ≥ 0 w1+w2=1 Every convex combination of the two optimal BFS’s is optimal: Convex Combination What solution do we get if w1=w2=0.5?
Initialization: Adapting to other forms (next module)