Optimization Mechanics of the Simplex Method
Simplex Method Find initial corner point (basic) feasible solution. Usually, the origin is a basic feasible solution. Iterate until the stopping conditions are met. Are we optimal yet? Look at the current version of the objective function to see if an entering basic variable is available. If not, then the current basic feasible solution is the optimum solution. Select the entering variable: choose the non-basic variable that gives the fastest rate of increase in the objective function value. Select the leaving variable by applying the Minimum Ratio Test. Update the equations to reflect new basic feasible solution. Go to step (a).
Tableau Basic Z x1 x2 S1 S2 S3 S4 RHS MRT 1 -150 -175 never 7 11 77 10 8 80 9 6 First, we create a "tableau" out of the augmented system of equations and pick the origin as the starting point.
Tableau (Proper Form) Characteristics of a tableau in proper form: Basic Z x1 x2 S1 S2 S3 S4 RHS MRT 1 -150 -175 never 7 11 77 10 8 80 9 6 Characteristics of a tableau in proper form: Exactly 1 basic variable per equation. The coefficient of the basic variable is always exactly +1, and the coefficients above and below the basic variable in the same column are all 0. Z is treated as the basic variable for the objective function row.
Tableau (Proper Form) When a tableau is in the proper form Basic Z x1 x2 S1 S2 S3 S4 RHS MRT 1 -150 -175 never 7 11 77 10 8 80 9 6 When a tableau is in the proper form The RHS values are the value of the basic variables. What is the value of x1? x1 is a non-basic variable, so its value is 0. What is the value of Z? 0. (Z is a basic variable, so look at the RHS column)
Are we optimal yet? Basic Z x1 x2 S1 S2 S3 S4 RHS MRT 1 -150 -175 never 7 11 77 10 8 80 9 6 We are optimal if no entering basic variable is available (i.e., no basic variable, if introduced, can increase the value of Z). If there is any negative coefficient in the objective function row, then the current basic solution is not optimal.
Select the entering basic variable Z x1 x2 S1 S2 S3 S4 RHS MRT 1 -150 -175 never 7 11 77 10 8 80 9 6 Select the variable with the most negative coefficient in the objective function row as the entering variable. We won't accidentally select a basic variable. Why? The column corresponds to the entering basic variable becomes the pivot column.
Select the leaving basic variable Z x1 x2 S1 S2 S3 S4 RHS MRT 1 -150 -175 never 7 11 77 77/11=7 10 8 80 80/8=10 9 no limit 6 6/1=6 Perform Minimum Ratio Test (MRT) Special cases: If the coefficient of the entering basic variable is not a positive number, enter "no limit". Select the variable corresponding to the smallest MRT value as the leaving basic variable. Call the corresponding row the pivot row.
Updating the tableau Basic Z x1 x2 S1 S2 S3 S4 RHS MRT 1 -150 -175 never 7 11 77 10 8 80 9 6 Step 1: Replace the leaving basic variable in the "Basic" column by the entering basic variable. Step 2: Turn the tableau into a proper form How?
Updating the tableau Basic Z x1 x2 S1 S2 S3 S4 RHS MRT 1 -150 -175 never 7 11 77 10 8 80 9 6 The coefficient of all the basic variables must be +1. Divide the row corresponds to the entering basic variable by its coefficient. The coefficients above and below the basic variable in the same column must be turned into 0. Apply (Gaussian) elimination steps
End of iteration #1 When x1 = 0, x2 = 6, Z = 1050. Basic Z x1 x2 S1 S2 S3 S4 RHS MRT 1 -150 175 1050 never 7 -11 11 10 -8 32 9 6 When x1 = 0, x2 = 6, Z = 1050. Note: The columns correspond to the "old" basic variables do not change. (Why?) Are we optimal yet?
Iteration #2 Select the entering basic variable: x1 Z x1 x2 S1 S2 S3 S4 RHS MRT 1 -150 175 1050 never 7 -11 11 11/7=1.571 10 -8 32 32/10=3.2 9 6 no limit Select the entering basic variable: x1 Perform MRT test and select the leaving basic variable: S1
Iteration #2 Updating tableau Replace S1 by x1 in the "Basic" column Z x1 x2 S1 S2 S3 S4 RHS MRT 1 -150 175 1050 never 1/7 -11/7 11/7 10 -8 32 9 6 Updating tableau Replace S1 by x1 in the "Basic" column Divide pivot row by coefficient of x1 (=7)
Iteration #2 Updating tableau (continue) (End of iteration #2) Basic Z x1 x2 S1 S2 S3 S4 RHS MRT 1 150/7 -425/7 9000/7 never 1/7 -11/7 11/7 -10/7 54/7 114/7 -1/7 52/7 6 Updating tableau (continue) Apply elimination steps. (End of iteration #2) Are we optimal yet?
Iteration #3 Select the entering basic variable: S4 Z x1 x2 S1 S2 S3 S4 RHS MRT 1 150/7 -425/7 9000/7 never 1/7 -11/7 11/7 no limit -10/7 54/7 114/7 114/54 -1/7 52/7 52/11 6 Select the entering basic variable: S4 Perform MRT test and select the leaving basic variable: S2
Iteration #3 Updating tableau Replace S2 by S4 in the "Basic" column Z x1 x2 S1 S2 S3 S4 RHS MRT 1 150/7 -425/7 9000/7 never 1/7 -11/7 11/7 -10/54 7/54 114/54 -1/7 52/7 6 Updating tableau Replace S2 by S4 in the "Basic" column Divide pivot row by coefficient of S4 (=54/7)
Iteration #3 Updating tableau (continue) (End of iteration #3) Basic Z x1 x2 S1 S2 S3 S4 RHS MRT 1 10.185 7.870 1413.889 never -0.148 0.204 4.889 -0.185 0.130 2.111 0.148 -0.204 4.111 0.185 -0.130 3.889 Updating tableau (continue) Apply elimination steps. (End of iteration #3) Are we optimal yet?
Iteration #3 Basic Z x1 x2 S1 S2 S3 S4 RHS MRT 1 10.185 7.870 1413.889 never -0.148 0.204 4.889 -0.185 0.130 2.111 0.148 -0.204 4.111 0.185 -0.130 3.889 Because there is no more negative coefficient in the objective function row, we cannot further improve the value of the objective function. The optimal value of the objective function is 1413.889 when x1 = 4.889 and x2 = 3.889.
Special Cases in Tableau Manipulation In case of tie for the entering basic variable, select any of the tying variables. When will a tie occur for the entering variable? In case of tie for the leaving basic variable, select any of the tying variables. When will a tie occur for the leaving variable? What does it mean when all MRT yield "No limit"? Increasing the value of the entering variable does not affect any variable. i.e., the problem is unbounded.
Special Cases in Tableau Manipulation Note: Here the coefficient is referring to the coefficient of a variable in the objective function row in the tableau. At the optimum, what's the coefficient of a non-basic variable? At the optimum, what's the coefficient of a basic variable? What does it mean when the coefficient of a non-basic variable is zero at the optimum? We have alternate optimal solutions. i.e., increasing the value of that non-basic variable does not increase or decrease the value of Z.
Directions & References Solving non-standard linear programming. Equality and greater-than-or-equal-to (≥) constraints Variables that can be negative or unrestricted variables Sensitivity Analysis LP in practice: Revised Simplex method, interior point methods. Ref: http://www.sce.carleton.ca/faculty/chinneck/po.html
Summary Simplex Method for solving "Standard Form" LP problems Algorithm Understand the characteristics of the slack variables Understand how to select entering/leaving variables Performing simplex method in tableau form Understand the characteristics of the tableau (which can give you additional info of the problem).
Summary – Optimization One dimensional unconstrained optimization – function with one variable Newton's Method for finding x s.t. f'(x) = 0. Bracketing methods (Iterative) Golden Section Search Quadratic Interpolation Hybrid methods
Summary – Optimization Multi-dimensional unconstrained optimization – function with 2 or more variables Random Search Its advantages and disadvantages The "General Iterative Algorithm" for finding optimal point using either non-gradient and gradient methods. Non-gradient Methods Univariate Search and Powell's Method Gradient Methods Evaluate partial derivative Derive gradients and Hessian matrix Determine if a point is a maximum, minimum, or saddle point using Hessian matrix Finding optimal point in a given direction Steepest Ascent and Newton's Method