338 ACTIVITY 16: Post Optimality Analysis

WHY:

This activity is designed to help you discover how to obtain new solutions for linear programming problems without starting from the beginning when we change the constraints or objective function after solving the original problem. This ability to do post optimality analysis will be helpful when analyzing the results of your major project. It will help you answer "what-if" questions for clients you work with in your future profession.

LEARNING OBJECTIVES:

  1. Discover how to read the SIMPLEX program printout.
  2. Learn how to use the ranges produced by the SIMPLEX program to predict the consequences of changing problem data after the solution is obtained and to validate these predictions.
  3. Discover how to find the solution after changing one of the coefficients in a solved LP problem.

PERFORMANCE CRITERIA:

  1. Quality of the answers to the Critical Thinking Questions.
  2. Accuracy of the answers to the Furnco problem after post optimality analysis.

RESOURCES:

  1. Appendix A: Strategic Mathematics
  2. Section 3.5: Strategic Mathematics
  3. Activity 15
  4. 30 minutes

PLAN:

  1. Choose roles if you have not already done so.

  2. Read the enclosed output from problem 1.16 on page 48 obtained from using the Simplex program on Jade. This solution assumed that x1, x2, x3, x4 represent unfinished tables, unfinished chairs, finished tables, finished chairs, respectively.

  3. Look over the model and answer the Critical Thinking Questions.

MODEL:

          minimize  -3x1 - 2x2
          subject to
                     2x1 + x2  <=  80         
                      x1 + x2  <=  50         
                         x1 >= 0,  x2 >= 0
     
          Standard Form:
         minimize   -3x1 - 2x2                    
         subject to  2x1 + x2 + x3      = 80      
                      x1 + x2      + x4 = 50
          x1 >= 0,  x2 >= 0, x3 >= 0, x4 >= 0

Basic Variables x3, x4, Nonbasic Variables x1, x2

We obtained the optimal solution to this problem using the SIMPLEX program in Activity 15. We observed that

CB' = [-3  -2],  CD' = [0  0],  CB'B^(-1)D - CD' = [-1  -1], 
X' = [30  20  0  0], z = -130, 	    
		B = | 2  1 |, D = | 1  0 |, B^(-1) = | 1 -1 |  = B^(-1)D.   
		    | 1  1 |      | 0  1 |           |-1  2 |

Now, let us examine the ranges given in the Sensitivity Analysis section of the printout. For the non-basic variables x3, x4, there is only a lower bound on their objective function coefficients. This is because CD must be greater than CBTB-1D to maintain optimality, but CD has no upper bound. (Recall that for a BFS to be optimal we must have CB'B^(-1)D-CD' <= 0.) A change in the objective function coefficient of a non-basic variable will change the optimal solution precisely when it makes some entry in CB'B^(-1)D-CD' positive. Let's try changing the coefficient of x3 from 0 to -1. Since x3 is non-basic, we merely have to check to make sure it stays nonbasic. If it does the solution will not change. Using Procedure 3.5.2 on page 132, we note that theta = -1. Thus we subtract -1 from the bottom row entry under the x3 column in the final tableau and note that it becomes -1 - (-1) = 0.

Suppose that we want to change the coefficient of x3 to -2 (from 0). Then theta = -2 and the entry in the bottom row of the final tableau under the x3 column would become 1, so we would need to pivot again and bring x3 into the basis to obtain the optimal solution.

The ranges for coefficients of basic variables and for the right side constants have both upper and lower bounds. As long as we stay within those bounds, we can compute the new optimal solution without pivoting. For example, if we change the coefficient of x1 from -3 to -2, we apply Procedure 3.5.1 on page 131. Note that theta = 1 and it is in position 1 of CB since x1 is the first basic variable. Thus, we multiply the first row of the final tableau by 1 and add it to the bottom row, obtaining 0 -2 0 0, with the new objective function value -100. Note that we do not change the entries under the basic variables when we add theta times the kth row to the bottom row. We see that the solution x1 = 30, x2 = 20, is still optimal but the new objective function value is -2(30) - 2(20) = -100.

Suppose that we want to change the coefficient of x1 to -1 (outside the range given in the printout). Here theta = 2 and the new bottom row becomes 1 -3 0 0 with z = -70. The given solution is no longer optimal because there is a positive entry in the bottom row, so we would have pivot one more time to find the new optimal solution.

Note that we can only change the b values within their bounds. Otherwise, at least one will become negative and we will have to start the SIMPLEX method from the beginning. Let us change b1 from 80 to 90. The new column in the final tableau corresponding to the b vector will become B-1 times the new b vector: i.e. [40 10]' and the new solution is [40 10 0 0]. The new z value is CB'B^(-1)b' = -3(40) - 2(10) = -140.

Changing any other column in the initial tableau can be handled in a similar manner. If the bottom row entry becomes positive after multiplying that column by B-1, we would have to pivot again, thus changing which variables are basic.

Adding a new constraint will not change the solution if it satisfies the constraint. Otherwise, you must solve the problem from the beginning. You cannot use post optimality analysis.

CRITICAL THINKING QUESTIONS

These will be handed out in class.

Furnco SIMPLEX printout

                     PROBLEM NUMBER     1

                       ITERATION     1
 VARIABLE COSTS
     0.0000     0.0000   -30.0000   -30.0000  -100.0000   -80.0000

       SOLUTION          TABLEAU

                      5        6        1        2        3        4

 5    40000.00     1.00     0.00    40.00    30.00    40.00    30.00

 6     6000.00     0.00     1.00     2.00     2.00     5.00     4.00

         0.0        0.0      0.0      0.0      0.0      0.0      0.0

                    0.0      0.0     30.0     30.0    100.0     80.0


                       ITERATION     2

       SOLUTION          TABLEAU

                      5        6        1        2        3        4

 3     1000.00     0.03     0.00     1.00     0.75     1.00     0.75

 6     1000.00    -0.12     1.00    -3.00    -1.75     0.00     0.25

   -100000.0       -2.5      0.0   -100.0    -75.0   -100.0    -75.0

                   -2.5      0.0    -70.0    -45.0      0.0      5.0


                       ITERATION     3

       SOLUTION          TABLEAU

                      5        6        1        2        3        4

 4     1333.33     0.03     0.00     1.33     1.00     1.33     1.00

 6      666.67    -0.13     1.00    -3.33    -2.00    -0.33     0.00

   -106666.7       -2.7      0.0   -106.7    -80.0   -106.7    -80.0

                   -2.7      0.0    -76.7    -50.0     -6.7      0.0






                         SENSITIVITY ANALYSIS


SHADOW PRICES ARE CHANGE IN OBJECTIVE FUNCTION VALUE PER UNIT CHANGE
IN THE RIGHT HAND SIDE CONSTANTS.

PENALTY COSTS ARE CHANGES IN THE OBJECTIVE FUNCTION VALUE PER UNIT INCREASE
IN THE NON-BASIC VARIABLES.

RANGES ON C(J) REPRESENTS LIMITING VALUES OF COST COEFFICIENTS THAT WILL NOT
CHANGE THE OPTIMUM SOLUTIONS.

RANGES ON B(I) REPRESENT LIMITING VALUES OF RIGHT HAND SIDE CONSTANTS THAT
WILL NOT CHANGE THE OPTIMUM BASIC VARIABLES.


          NON-BASIC            PENALTY
          VARIABLES             COST
              5                  2.667
              1                 76.667
              2                 50.000
              3                  6.667



             ROW               SHADOW
            NUMBER             PRICES
              1                 -2.667
              2                  0.000



   RANGES ON NON-BASIC C(J)
          VARIABLE           LOWER LIMIT
              5                   -2.667
              1                 -106.667
              2                  -80.000
              3                 -106.667




   RANGES ON BASIC C(J)
          VARIABLE           LOWER LIMIT           UPPER LIMIT
              6                  -20.000            999999.000
              4              -999999.000               -75.000




   RANGES ON B(I)
              I              LOWER LIMIT           UPPER LIMIT
              1                    0.000             45000.000
              2                 5333.333            999999.000



PROGRAM PREPARED FOR THE SAINT MARY S TIME SHARING SERVICE (1981)
                              BY
                    D.E.MILLER & A.M.AGOSTINO

               CONVERTED TO C (1994) BY P.D.SMITH

Math 338 Activity 16 -- Revised 10/25/98

Return to the List of Activities