Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Module Page A-1 A The Simplex Solution Method A-1 Z06_TAYL4367_10_SE_Mod A.QXD A-2 1/9/09 1:07 AM Page A-2 Module A The Simplex Solution Method he simplex method is a general mathematical solution technique for solving linear programming problems. In the simplex method, the model is put into the form of a table, and then a number of mathematical steps are performed on the table. These mathematical steps in effect replicate the process in graphical analysis of moving from one extreme point on the solution boundary to another. However, unlike the graphical method, in which we could simply search through all the solution points to find the best one, the simplex method moves from one better solution to another until the best one is found, and then it stops. The manual solution of a linear programming model using the simplex method can be a lengthy and tedious process.Years ago, manual application of the simplex method was the only means for solving a linear programming problem. Now computer solution is certainly preferred. However, knowledge of the simplex method can greatly enhance one’s understanding of linear programming. Computer software programs like QM for Windows or Excel spreadsheets provide solutions to linear programming problems, but they do not convey an in-depth understanding of how those solutions are derived. To a certain extent, graphical analysis provides an understanding of the solution process, and knowledge of the simplex method further expands on that understanding. In fact, computer solutions are usually derived using the simplex method. As a result, much of the terminology and notation used in computer software comes from the simplex method. Thus, for those students of management science who desire a more in-depth knowledge of linear programming, it is beneficial to study the simplex solution method as provided here. T Converting the Model into Standard Form The first step in solving a linear programming model manually with the simplex method is to convert the model into standard form. At the Beaver Creek Pottery Company Native American artisans produce bowls (x1) and mugs (x2) from labor and clay. The linear programming model is formulated as maximize Z = $40x1 + 50x2 (profit) subject to x1 + 2x2 … 40 (labor, hr.) 4x1 + 3x2 … 120 (clay, lb.) x1, x2 Ú 0 We convert this model into standard form by adding slack variables to each constraint as follows: maximize Z = 40x1 + 50x2 + 0s1 + 0s2 subject to x1 + 2x2 + s1 = 40 4x1 + 3x2 + s2 = 120 x1, x2, s1, s2 Ú 0 Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-3 Converting the Model into Standard Form Slack variables are added to … constraints and represent unused resources. A-3 The slack variables, s1 and s2, represent the amount of unused labor and clay, respectively. For example, if no bowls and mugs are produced, and x1 = 0 and x2 = 0, then the solution to the problem is x1 + 2x2 + s1 = 40 0 + 2(0) + s1 = 40 s1 = 40 hr. of labor and 4x1 + 3x2 + s2 = 120 4(0) + 3(0) + s2 = 120 s2 = 120 lb. of clay In other words, when we start the problem and nothing is being produced, all the resources are unused. Since unused resources contribute nothing to profit, the profit is zero: Z = $40x1 + 50x2 + 0s1 + 0s2 = 40(0) + 50(0) + 0(40) + 0(120) Z = $0 It is at this point that we begin to apply the simplex method. The model is in the required form, with the inequality constraints converted to equations for solution with the simplex method. The Solution of Simultaneous Equations Once both model constraints have been transformed into equations, the equations should be solved simultaneously to determine the values of the variables at every possible solution point. However, notice that our example problem has two equations and four unknowns (i.e., two decision variables and two slack variables), a situation that makes direct simultaneous solution impossible. The simplex method alleviates this problem by assigning some of the variables a value of zero. The number of variables assigned values of zero is n - m, where n equals the number of variables and m equals the number of constraints (excluding the nonnegativity constraints). For this model, n = 4 variables and m = 2 constraints; therefore, two of the variables are assigned a value of zero (i.e., 4 - 2 = 2). For example, letting x1 = 0 and s1 = 0 results in the following set of equations: x1 + 2x2 + s1 = 40 4x1 + 3x2 + s2 = 120 and 0 + 2x2 + 0 = 40 0 + 3x2 + s2 = 120 First, solve for x2 in the first equation: 2x2 = 40 x2 = 20 Z06_TAYL4367_10_SE_Mod A.QXD A-4 1/9/09 1:07 AM Page A-4 Module A The Simplex Solution Method Then, solve for s2 in the second equation: 3x2 + s2 = 120 3(20) + s2 = 120 s2 = 60 A basic feasible solution satisfies the model constraints and has the same number of variables with nonnegative values as there are constraints. This solution corresponds to point A in Figure A-1. The graph in Figure A-1 shows that at point A, x1 = 0, x2 = 20, s1 = 0, and s2 = 60, the exact solution obtained by solving simultaneous equations. This solution is referred to as a basic feasible solution. A feasible solution is any solution that satisfies the constraints. A basic feasible solution satisfies the constraints and contains as many variables with nonnegative values as there are model constraints—that is, m variables with nonnegative values and n - m values set equal to zero. Typically, the m variables have positive nonzero solution values; however, when one of the m variables equals zero, the basic feasible solution is said to be degenerate. (The topic of degeneracy will be discussed at a later point in this module.) Figure A-1 Solutions at points A, B, and C x2 4x1 + 3x2 + s2 = 120 40 x1 = 0 x2 = 20 s1 = 0 s2 = 60 30 20 x1 A +2 x2 +s 1 =4 x1 = 30 x2 = 0 s1 = 10 s2 = 0 0 10 0 x1 = 24 x2 = 8 s1 = 0 s2 = 0 B 10 20 C 30 40 x1 Consider a second example where x2 = 0 and s2 = 0. These values result in the following set of equations: x1 + 2x2 + s1 = 40 4x1 + 3x2 + s2 = 120 and x1 + 0 + s1 = 40 4x1 + 0 + 0 = 120 Solve for x1: 4x1 = 120 x1 = 30 Then solve for s1: 30 + s1 = 40 s1 = 10 This basic feasible solution corresponds to point C in Figure A-1, where x1 = 30, x2 = 0, s1 = 10, and s2 = 0. Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-5 The Simplex Method A-5 Finally, consider an example where s1 = 0 and s2 = 0. These values result in the following set of equations: x1 + 2x2 + s1 = 40 4x1 + 3x2 + s2 = 120 and x1 + 2x2 + 0 = 40 4x1 + 3x2 + 0 = 120 Row operations are used to solve simultaneous equations where equations are multiplied by constants and added or subtracted from each other. These equations can be solved using row operations. In row operations, the equations can be multiplied by constant values and then added or subtracted from each other without changing the values of the decision variables. First, multiply the top equation by 4 to get 4x1 + 8x2 = 160 and then subtract the second equation: 4x1 + 8x2 - 4x1 - 3x2 5x2 x2 = = = = 160 -120 40 8 Next, substitute this value of x2 into either one of the constraints: x1 + 2(8) = 40 x1 = 24 This solution corresponds to point B on the graph, where x1 = 24, x2 = 8, s1 = 0, and s2 = 0, which is the optimal solution point. All three of these example solutions meet our definition of basic feasible solutions. However, two specific questions are raised by the identification of these solutions. 1. In each example, how was it known which variables to set equal to zero? 2. How is the optimal solution identified? The answers to both of these questions can be found by using the simplex method. The simplex method is a set of mathematical steps that determines at each step which variables should equal zero and when an optimal solution has been reached. The Simplex Method The simplex method is a set of mathematical steps for solving a linear programming problem carried out in a table called a simplex tableau. The steps of the simplex method are carried out within the framework of a table, or simplex tableau. The tableau organizes the model into a form that makes applying the mathematical steps easier. The Beaver Creek Pottery Company example will be used again to demonstrate the simplex tableau and method: maximize Z = $40x1 + 50x2 + 0s1 + 0s2 subject to x1 + 2x2 + s1 = 40 hr. 4x1 + 3x2 + s2 = 120 lb. x1, x2, s1, s2 Ú 0 Z06_TAYL4367_10_SE_Mod A.QXD A-6 1/9/09 1:07 AM Page A-6 Module A The Simplex Solution Method The initial simplex tableau for this model, with the various column and row headings, is shown in Table A-1. Table A-1 The Simplex Tableau cj Basic Variables Quantity ____________________________ x1 x2 s1 s2 ____________________________________________________________________ ____________________________ zj cj - zj The basic feasible solution in the initial simplex tableau is the origin where all decision variables equal zero. The first step in filling in Table A-1 is to record the model variables along the second row from the top. The two decision variables are listed first, in order of their subscript magnitude, followed by the slack variables, also listed in order of their subscript magnitude. This step produces the row with x1, x2, s1, and s2 in Table A-1. The next step is to determine a basic feasible solution. In other words, which two variables will form the basic feasible solution and which will be assigned a value of zero? Instead of arbitrarily selecting a point (as we did with points A, B, and C in the previous section), the simplex method selects the origin as the initial basic feasible solution because the values of the decision variables at the origin are always known in all linear programming problems. At that point x1 = 0 and x2 = 0; thus, the variables in the basic feasible solution are s1 and s2: x1 + 2x2 + s1 = 40 0 + 2(0) + s1 = 40 s1 = 40 hr. and 4x1 + 3x2 + s2 = 120 4(0) + 3(0) + s2 = 120 s2 = 120 lb. At the initial basic feasible solution at the origin, only slack variables have a value greater than zero. In other words, at the origin, where there is no production, all resources are slack, or unused. The variables s1 and s2, which form the initial basic feasible solution, are listed in Table A-2 under the column “Basic Variables,” and their respective values, 40 and 120, are listed under the column “Quantity.” Table A-2 The Basic Feasible Solution cj Basic Variables Quantity s1 40 s2 120 z1 cj - zj ____________________________ x1 x2 s1 s2 ____________________________ ____________________________ Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-7 The Simplex Method The quantity column values are the solution values for the variables in the basic feasible solution. The number of rows in a tableau is equal to the number of constraints plus four. The number of columns in a tableau is equal to the number of variables (including slacks, etc.) plus three. The cj values are the contribution to profit (or cost) for each variable. The initial simplex tableau always begins with the solution at the origin, where x1 and x2 equal zero. Thus, the basic variables at the origin are the slack variables, s1 and s2. Since the quantity values in the initial solution always appear as the right-hand-side values of the constraint equations, they can be read directly from the original constraint equations. The top two rows and bottom two rows are standard for all tableaus; however, the number of middle rows is equivalent to the number of constraints in the model. For example, this problem has two constraints; therefore, it has two middle rows corresponding to s1 and s2. (Recall that n variables minus m constraints equals the number of variables in the problem with values of zero. This also means that the number of basic variables with values other than zero will be equal to m constraints.) Similarly, the three columns on the left side of the tableau are standard, and the remaining columns are equivalent to the number of variables. Since there are four variables in this model, there are four columns on the right of the tableau, corresponding to x1, x2, s1, and s2. The next step is to fill in the cj values, which are the objective function coefficients, representing the contribution to profit (or cost) for each variable xj or sj in the objective function. Across the top row the cj values 40, 50, 0, and 0 are inserted for each variable in the model, as shown in Table A-3. Table A-3 The Simplex Tableau with cj Values A-7 cj Basic Variables Quantity 0 s1 40 0 s2 120 zj 40 50 0 0 x1 x2 s1 s2 ____________________________ ____________________________ cj - zj The values for cj on the left side of the tableau are the contributions to profit of only those variables in the basic feasible solution, in this case s1 and s2. These values are inserted at this location in the tableau so that they can be used later to compute the values in the zj row. The columns under each variable (i.e., x1, x2, s1, and s2) are filled in with the coefficients of the decision variables and slack variables in the model constraint equations. The s1 row represents the first model constraint; thus, the coefficient for x1 is 1, the coefficient for x2 is 2, the coefficient for s1 is 1, and the coefficient for s2 is 0. The values in the s2 row are the second constraint equation coefficients, 4, 3, 0, and 1, as shown in Table A-4. Table A-4 The Simplex Tableau with Model Constraint Coefficients cj Basic Variables Quantity 40 50 0 0 x1 x2 s1 s2 0 s1 40 1 2 1 0 0 s2 120 4 3 0 1 zj cj - zj ____________________________ Z06_TAYL4367_10_SE_Mod A.QXD A-8 1/9/09 1:07 AM Page A-8 Module A The Simplex Solution Method This completes the process of filling in the initial simplex tableau. The remaining values in the zj and cj - zj rows, as well as subsequent tableau values, are computed mathematically using simplex formulas. The following list summarizes the steps of the simplex method (for a maximization model) that have been presented so far: 1. First, transform all inequalities to equations by adding slack variables. 2. Develop a simplex tableau with the number of columns equaling the number of variables plus three, and the number of rows equaling the number of constraints plus four. 3. Set up table headings that list the model decision variables and slack variables. 4. Insert the initial basic feasible solution, which are the slack variables and their quantity values. 5. Assign cj values for the model variables in the top row and the basic feasible solution variables on the left side. 6. Insert the model constraint coefficients into the body of the table. Computing the zj and cj - zj Rows The zj row values are computed by multiplying the cj column values by the variable column values and summing. So far the simplex tableau has been set up using values taken directly from the model. From this point on the values are determined by computation. First, the values in the zj row are computed by multiplying each cj column value (on the left side) by each column value under “Quantity,” x1, x2, s1, and s2 and then summing each of these sets of values. The zj values are shown in Table A-5. Table A-5 The Simplex Tableau with zj Row Values Basic Variables cj Quantity 40 50 0 0 x1 x2 s1 s2 0 s1 40 1 2 1 0 0 s2 120 4 3 0 1 zj 0 0 0 0 0 cj - zj For example, the value in the zj row under the quantity column is found as follows: cj Quantity 0 * 40 = 0 0 * 120 = 0 zq = 0 The value in the zj row under the x1 column is found similarly: cj The simplex method works by moving from one solution (extreme) point to an adjacent point until it locates the best solution. x1 0 * 1 = 0 0 * 4 = 0 zj = 0 All the other zj row values for this tableau will be zero when they are computed using this formula. Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-9 The Simplex Method A-9 Now the cj - zj row is computed by subtracting the zj row values from the cj (top) row values. For example, in the x1 column the cj - zj row value is computed as 40 - 0 = 40. This value as well as other cj - zj values are shown in Table A-6, which is the complete initial simplex tableau with all values filled in. This tableau represents the solution at the origin, where x1 = 0, x2 = 0, s1 = 40, and s2 = 120. The profit represented by this solution (i.e., the Z value) is given in the zj row under the “Quantity” column—0 in Table A-6. This solution is obviously not optimal because no profit is being made. Thus, we want to move to a solution point that will give a better solution. In other words, we want to produce either some bowls (x1) or some mugs (x2). One of the nonbasic variables (i.e., variables not in the present basic feasible solution) will enter the solution and become basic. Table A-6 The Complete Initial Simplex Tableau Basic Variables cj Quantity 40 50 0 0 x1 x2 s1 s2 0 s1 40 1 2 1 0 0 s2 120 4 3 0 1 zj 0 0 0 0 0 40 50 0 0 cj - zj The Entering Nonbasic Variable As an example, suppose the pottery company decides to produce some bowls. With this decision x1 will become a basic variable. For every unit of x1 (i.e., each bowl) produced, profit will be increased by $40 because that is the profit contribution of a bowl. However, when a bowl (x1) is produced, some previously unused resources will be used. For example, if x1 = 1 then x1 + 2x2 + s1 = 40 hr. of labor 1 + 2(0) + s1 = 40 s1 = 39 hr. of labor and 4x1 + 3x2 + s2 = 120 lb. of clay 4(1) + 3(0) + s2 = 120 s2 = 116 lb. of clay In the labor constraint we see that with the production of one bowl, the amount of slack, or unused, labor is decreased by 1 hour. In the clay constraint the amount of slack is decreased by 4 pounds. Substituting these increases (for x1) and decreases (for slack) into the objective function gives cj zj Z = 40(1) + 50(0) + 0(-1) + 0(-4) Z = $40 The variable with the largest positive cj - zj value is the entering variable. The first part of this objective function relationship represents the values in the cj row; the second part represents the values in the zj row. The function expresses the fact that to produce some bowls, we must give up some of the profit already earned from the items they replace. In this case the production of bowls replaced only slack, so no profit was lost. In general, the cj - zj row values represent the net increase per unit of entering a nonbasic Z06_TAYL4367_10_SE_Mod A.QXD A-10 1/9/09 1:07 AM Page A-10 Module A The Simplex Solution Method variable into the basic solution. Naturally, we want to make as much money as possible, because the objective is to maximize profit. Therefore, we enter the variable that will give the greatest net increase in profit per unit. From Table A-7, we select variable x2 as the entering basic variable because it has the greatest net increase in profit per unit, $50—the highest positive value in the cj - zj row. Table A-7 Selection of the Entering Basic Variable 50 0 0 x1 x2 s1 s2 cj 0 s1 40 1 2 1 0 0 s2 120 4 3 0 1 zj 0 0 0 0 0 40 50 0 0 Quantity cj - zj The pivot column is the column corresponding to the entering variable. 40 Basic Variables The x2 column, highlighted in Table A-7, is referred to as the pivot column. (The operations used to solve simultaneous equations are often referred to in mathematical terminology as pivot operations.) The selection of the entering basic variable is also demonstrated by the graph in Figure A-2. At the origin nothing is produced. In the simplex method we move from one solution point to an adjacent point (i.e., one variable in the basic feasible solution is replaced with a variable that was previously zero). In Figure A-2 we can move along either the x1 axis or the x2 axis in order to seek a better solution. Because an increase in x2 will result in a greater profit, we choose x2. Figure A-2 Selection of which item to produce—the entering basic variable x2 Produce mugs 40 30 20 A 10 0 B 10 C 20 30 Produce bowls 40 x1 The Leaving Basic Variable Since each basic feasible solution contains only two variables with nonzero values, one of the two basic variables present, s1 or s2, will have to leave the solution and become zero. Since we have decided to produce mugs (x2), we want to produce as many as possible or, in other words, as many as our resources will allow. First, in the labor constraint we will use all Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-11 The Simplex Method A-11 the labor to make mugs (because no bowls are to be produced, x1 = 0; and because we will use all the labor possible and s1 = unused labor resources, s1 = 0 also): 1x1 + 2x2 + s1 = 40 hr. 1(0) + 2x2 + 0 = 40 40 hr. x2 = 2 hr>mug = 20 mugs In other words, enough labor is available to produce 20 mugs. Next, perform the same analysis on the constraint for clay: 4x1 + 3x2 + s2 = 120 lb. 4(0) + 3x2 + 0 = 120 120 lb. x2 = 3 lb>mug = 40 mugs This indicates that there is enough clay to produce 40 mugs. But there is enough labor to produce only 20 mugs. We are limited to the production of only 20 mugs because we do not have enough labor to produce any more than that. This analysis is shown graphically in Figure A-3. Figure A-3 x2 Determination of the basic feasible solution point 40 R $50 profit 30 20 A 10 0 The leaving variable is determined by dividing the quantity values by the pivot column values and selecting the minimum possible value or zero. B 10 20 $40 profit C 30 40 x1 Because we are moving out the x2 axis, we can move from the origin to either point A or point R. We select point A because it is the most constrained and thus feasible, whereas point R is infeasible. This analysis is performed in the simplex method by dividing the quantity values of the basic solution variables by the pivot column values. For this tableau, Basic Variables s1 s2 Quantity 40 120 x2 , 2 = 20, the leaving basic variable , 3 = 40 Z06_TAYL4367_10_SE_Mod A.QXD A-12 1/9/09 1:07 AM Page A-12 Module A The Simplex Solution Method The pivot row is the row corresponding to the leaving variable. The leaving basic variable is the variable that corresponds to the minimum nonnegative quotient, which in this case is 20. (Note that a value of zero would qualify as the minimum quotient and would be the choice for the leaving variable.) Therefore, s1 is the leaving variable. (At point A in Figure A-3, s1 equals zero because all the labor is used to make the 20 mugs.) The s1 row, highlighted in Table A-8, is also referred to as the pivot row. Table A-8 Pivot Column, Pivot Row, and Pivot Number cj Basic Variables Quantity 50 0 0 x1 x2 s1 s2 0 s1 40 1 2 1 0 0 s2 120 4 3 0 1 zj 0 0 0 0 0 40 50 0 0 cj - zj The pivot number is the number at the intersection of the pivot column and row. 40 The value of 2 at the intersection of the pivot row and the pivot column is called the pivot number. The pivot number, row, and column are all instrumental in developing the next tableau. We are now ready to proceed to the second simplex tableau and a better solution. Developing a New Tableau Table A-9 shows the second simplex tableau with the new basic feasible solution variables of x2 and s2 and their corresponding cj values. Table A-9 The Basic Variables and cj Values for the Second Simplex Tableau cj Basic Variables 50 x2 0 s2 Quantity 40 50 0 0 x1 x2 s1 s2 zj cj - zj Computing the new tableau pivot row values. The various row values in the second tableau are computed using several simplex formulas. First, the x2 row, called the new tableau pivot row, is computed by dividing every value in the pivot row of the first (old) tableau by the pivot number. The formula for these computations is new tableau pivot row values = Computing all remaining row values. old tableau pivot row values pivot number The new row values are shown in Table A-10. To compute all remaining row values (in this case there is only one other row), another formula is used. Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-13 The Simplex Method Table A-10 Computation of the New Pivot Row Values cj Basic Variables 50 x2 0 s2 40 50 0 0 Quantity x1 x2 s1 s2 20 1/2 1 1/2 0 A-13 zj cj - zj corresponding corresponding new tableau = old tableau - £ coefficients in * new tableau ≥ row values row values pivot column pivot row value Thus, this formula requires the use of both the old tableau and the new one. The s2 row values are computed in Table A-11. Table A-11 Corresponding New Tableau New Tableau Old Tableau - £ Coefficients in * Pivot ≥ = Row Value Row Value Pivot Column Row Value Computation of New s2 Row Values Column Quantity x1 x2 s1 s2 120 4 3 0 1 - (3 (3 (3 (3 (3 20) 1/2) 1) 1/2) 0) * * * * * 60 5/2 0 -3>2 1 = = = = = These values have been inserted in the simplex tableau in Table A-12. This solution corresponds to point A in the graph of this model in Figure A-3. The solution at this point is x1 = 0, x2 = 20, s1 = 0, s2 = 60. In other words, 20 mugs are produced and 60 pounds of clay are left unused. No bowls are produced and no labor hours remain unused. Table A-12 The Second Simplex Tableau with Row Values cj Basic Variables 40 50 0 0 Quantity x1 x2 s1 s2 50 x2 20 1/2 1 1/2 0 0 s2 60 5/2 0 -3/2 1 zj cj - zj The second simplex tableau is completed by computing the zj and cj - zj row values the same way they were computed in the first tableau. The zj row is computed by summing the products of the cj column and all other column values. Z06_TAYL4367_10_SE_Mod A.QXD A-14 1/9/09 1:07 AM Page A-14 Module A The Simplex Solution Method TIME OUT for George B. Dantzig After developing the simplex method for solving linear programming problems, George Dantzig needed a good problem to test it on. The problem he selected was the “diet problem” formulated in 1945 by Nobel economist George Stigler. This problem was to determine an adequate nutritional diet at minimum cost (which was an important military and civilian issue during World War II). Formulated as a linear programming Column Quantity zj z1 z2 z3 z4 x1 x2 s1 s2 = = = = = model, the diet problem consisted of 77 unknowns and 9 equations. It took 9 clerks using hand-operated (mechanical) desk calculators 120 man-days to obtain the optimal simplex solution: a diet consisting primarily of wheat flour, cabbage, and dried navy beans that cost $39.69 per year (in 1939 prices). The solution developed by Stigler using his own numerical method was only 24 cents more than the optimal solution. (50)(20) + (0)(60) = 1000 (50)(1>2) + (0)(5>2) = 25 (50)(1) + (0)(0) = 50 (50)(1>2) + (0)(-3>2) = 25 (50)(0) + (0)(1) = 0 The zj row values and the cj - zj row values are added to the tableau to give the completed second simplex tableau shown in Table A-13. The value of 1,000 in the zj row is the value of the objective function (profit) for this basic feasible solution. Table A-13 The Completed Second Simplex Tableau cj Basic Variables Quantity 50 0 0 x1 x2 s1 s2 50 x2 20 1/2 1 1/2 0 0 s2 60 5/2 0 -3/2 1 zj 1,000 25 50 25 0 15 0 -25 0 cj - zj Each tableau is the same as performing row operations for a set of simultaneous equations. 40 The computational steps that we followed to derive the second tableau in effect accomplish the same thing as row operations in the solution of simultaneous equations. These same steps are used to derive each subsequent tableau, called iterations. The Optimal Simplex Tableau The steps that we followed to derive the second simplex tableau are repeated to develop the third tableau. First, the pivot column or entering basic variable is determined. Because 15 in the cj - zj row represents the greatest positive net increase in profit, x1 becomes the entering nonbasic variable. Dividing the pivot column values into the values in the quantity column indicates that s2 is the leaving basic variable and corresponds to the pivot row. The pivot row, pivot column, and pivot number are indicated in Table A-14. At this point you might be wondering why the net increase in profit per bowl (x1) is $15 rather than the original profit of $40. It is because the production of bowls (x1) will require some of the resources previously used to produce mugs (x2) only. Producing some bowls means not producing as many mugs; thus, we are giving up some of the profit gained from producing mugs to gain even more by producing bowls. This difference is the net increase of $15. Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-15 The Simplex Method Table A-14 The Pivot Row, Pivot Column, and Pivot Number cj Basic Variables Quantity 40 50 0 0 x1 x2 s1 s2 50 x2 20 1/2 1 1/2 0 0 s2 60 5/2 0 -3/2 1 zj 1,000 25 50 25 0 15 0 -25 0 cj - zj A-15 The new tableau pivot row (x1) in the third simplex tableau is computed using the same formula used previously. Thus, all old pivot row values are divided through by 5/2, the pivot number. These values are shown in Table A-16. The values for the other row (x2) are computed as shown in Table A-15. Table A-15 Corresponding New Tableau New Tableau Old Tableau Coefficients in * Pivot = Row Value Row Value P Pivot Column Row Value Q Computation of the x2 Row for the Third Simplex Tableau Column Quantity x1 x2 s1 s2 20 1/2 1 1/2 0 (1/2 (1/2 (1/2 (1/2 (1/2 - * * * * * 24) 1) 0) -3/5) 2/5) 8 0 1 4/5 -1/5 = = = = = These new row values, as well as the new zj row and cj - zj row, are shown in the completed third simplex tableau in Table A-16. Table A-16 The Completed Third Simplex Tableau cj Basic Variables Quantity 50 0 0 x1 x2 s1 s2 50 x2 8 0 1 4/5 -1/5 40 x1 24 1 0 -3/5 2/5 zj 1,360 40 50 16 6 0 0 -16 -6 cj - zj The solution is optimal when all cj - zj values … 0. 40 Observing the cj - zj row to determine the entering variable, we see that a nonbasic variable would not result in a positive net increase in profit, as all values in the cj - zj row are zero or negative. This means that the optimal solution has been reached. The solution is x1 = 24 bowls x2 = 8 mugs Z = $1,360 profit which corresponds to point B in Figure A-1. Z06_TAYL4367_10_SE_Mod A.QXD A-16 1/9/09 1:07 AM Page A-16 Module A The Simplex Solution Method The simplex method does not guarantee integer solutions. An additional comment should be made regarding simplex solutions in general. Although this solution resulted in integer values for the variables (i.e., 24 and 8), it is possible to get a fractional solution for decision variables even though the variables reflect items that should be integers, such as airplanes, television sets, bowls, and mugs. To apply the simplex method, one must accept this limitation. Summary of the Simplex Method The simplex method demonstrated in the previous section consists of the following steps: 1. Transform the model constraint inequalities into equations. 2. Set up the initial tableau for the basic feasible solution at the origin and compute the zj and cj - zj row values. 3. Determine the pivot column (entering nonbasic solution variable) by selecting the column with the highest positive value in the cj - zj row. 4. Determine the pivot row (leaving basic solution variable) by dividing the quantity column values by the pivot column values and selecting the row with the minimum nonnegative quotient. 5. Compute the new pivot row values using the formula new tableau pivot row values = old tableau pivot row values pivot number 6. Compute all other row values using the formula corresponding corresponding new tableau old tableau = - coefficients in * new tableau row values row values P pivot column pivot row values Q 7. Compute the new zj and cj - zj rows. 8. Determine whether the new solution is optimal by checking the cj - zj row. If all cj - zj row values are zero or negative, the solution is optimal. If a positive value exists, return to step 3 and repeat the simplex steps. Simplex Solution of a Minimization Problem In the previous section the simplex method for solving linear programming problems was demonstrated for a maximization problem. In general, the steps of the simplex method outlined at the end of this section are used for any type of linear programming problem. However, a minimization problem requires a few changes in the normal simplex process, which we will discuss in this section. In addition, several exceptions to the typical linear programming problem will be presented later in this module. These include problems with mixed constraints (=, … , and Ú ); problems with more than one optimal solution, no feasible solution, or an unbounded solution; problems with a tie for the pivot column; problems with a tie for the pivot row; and problems with constraints with negative quantity values. None of these kinds of problems require changes in the simplex method. They are basically unusual results in individual simplex tableaus that the reader should know how to interpret and work with. Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-17 Simplex Solution of a Minimization Problem A-17 Standard Form of a Minimization Model Consider the following linear programming model for a farmer purchasing fertilizer: minimize Z = $6x1 + 3x2 subject to 2x1 + 4x2 Ú 16 lb. of nitrogen 4x1 + 3x2 Ú 24 lb. of phosphate where x1 = bags of Super-gro fertilizer x2 = bags of Crop-quick fertilizer Z = farmer’s total cost ($) of purchasing fertilizer This model is transformed into standard form by subtracting surplus variables from the two Ú constraints as follows: minimize Z = 6x1 + 3x2 + 0s1 + 0s2 subject to 2x1 + 4x2 - s1 = 16 4x1 + 3x2 - s2 = 24 x1, x2, s1, s2 Ú 0 The surplus variables represent the extra amount of nitrogen and phosphate that exceeded the minimum requirements specified in the constraints. However, the simplex method requires that the initial basic feasible solution be at the origin, where x1 = 0 and x2 = 0. Testing these solution values, we have 2x1 + 4x2 - s1 = 16 2(0) + 4(0) - s1 = 16 s1 = -16 Transforming a model into standard form by subtracting surplus variables will not work in the simplex method. The idea of “negative excess pounds of nitrogen” is illogical and violates the nonnegativity restriction of linear programming. The reason the surplus variable does not work is shown in Figure A-4. The solution at the origin is outside the feasible solution space. Figure A-4 Graph of the fertilizer example x2 12 10 8 x1 = 0 x2 = 0 s1 = –16 A 6 4 B 2 0 C 2 4 6 8 10 12 x1 Z06_TAYL4367_10_SE_Mod A.QXD A-18 1/9/09 1:07 AM Page A-18 Module A The Simplex Solution Method An artificial variable allows for an initial basic feasible solution at the origin, but it has no real meaning. To alleviate this difficulty and get a solution at the origin, we add an artificial variable (A1) to the constraint equation, 2x1 + 4x2 - s1 + A1 = 16 The artificial variable, A1, does not have a meaning, as a slack variable or a surplus variable does. It is inserted into the equation simply to give a positive solution at the origin; we are artificially creating a solution: 2x1 + 4x2 - s1 + A1 = 16 2(0) + 4(0) - 0 + A1 = 16 A1 = 16 The artificial variable is somewhat analogous to a booster rocket—its purpose is to get us off the ground; but once we get started, it has no real use and thus is discarded. The artificial solution helps get the simplex process started, but we do not want it to end up in the optimal solution, because it has no real meaning. When a surplus variable is subtracted and an artificial variable is added, the phosphate constraint becomes 4x1 + 3x2 - s2 + A2 = 24 Artificial variables are assigned a large cost in the objective function to eliminate them from the final solution. The effect of surplus and artificial variables on the objective function must now be considered. Like a slack variable, a surplus variable has no effect on the objective function in terms of increasing or decreasing cost. For example, a surplus of 24 pounds of nitrogen does not contribute to the cost of the objective function, because the cost is determined solely by the number of bags of fertilizer purchased (i.e., the values of x1 and x2). Thus, a coefficient of 0 is assigned to each surplus variable in the objective function. By assigning a “cost” of $0 to each surplus variable, we are not prohibiting it from being in the final optimal solution. It would be quite realistic to have a final solution that showed some surplus nitrogen or phosphate. Likewise, assigning a cost of $0 to an artificial variable in the objective function would not prohibit it from being in the final optimal solution. However, if the artificial variable appeared in the solution, it would render the final solution meaningless. Therefore, we must ensure that an artificial variable is not in the final solution. As previously noted, the presence of a particular variable in the final solution is based on its relative profit or cost. For example, if a bag of Super-gro costs $600 instead of $6 and Crop-quick stayed at $3, it is doubtful that the farmer would purchase Super-gro (i.e., x1 would not be in the solution). Thus, we can prohibit a variable from being in the final solution by assigning it a very large cost. Rather than assigning a dollar cost to an artificial variable, we will assign a value of M, which represents a large positive cost (say, $1,000,000). This operation produces the following objective function for our example: minimize Z = 6x1 + 3x2 + 0s1 + 0s2 + MA1 + MA2 The completely transformed minimization model can now be summarized as minimize Z = 6x1 + 3x2 + 0s1 + 0s2 + MA1 + MA2 subject to 2x1 + 4x1 - s1 + A1 = 16 4x1 + 3x2 - s2 + A2 = 24 x1, x2, s1, s2, A1, A2 Ú 0 Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-19 Simplex Solution of a Minimization Problem A-19 The Simplex Tableau for a Minimization Problem The cj - zj row is changed to zj - cj in the simplex tableau for a minimization problem. Artificial variables are always included as part of the initial basic feasible solution when they exist. The initial simplex tableau for a minimization model is developed the same way as one for a maximization model, except for one small difference. Rather than computing cj - zj in the bottom row of the tableau, we compute zj - cj, which represents the net per unit decrease in cost, and the largest positive value is selected as the entering variable and pivot column. (An alternative would be to leave the bottom row as cj - zj and select the largest negative value as the pivot column. However, to maintain a consistent rule for selecting the pivot column, we will use zj - cj.) The initial simplex tableau for this model is shown in Table A-17. Notice that A1 and A2 form the initial solution at the origin, because that was the reason for inserting them in the first place — to get a solution at the origin. This is not a basic feasible solution, since the origin is not in the feasible solution area, as shown in Figure A-4. As indicated previously, it is an artificially created solution. However, the simplex process will move toward feasibility in subsequent tableaus. Note that across the top the decision variables are listed first, then surplus variables, and finally artificial variables. Table A-17 The Initial Simplex Tableau Basic Variables cj 6 3 0 0 M M Quantity x1 x2 s1 s2 A1 A2 M A1 16 2 4 -1 0 1 0 M A2 24 4 3 0 -1 0 1 40M 6M 7M -M -M M M 6M - 6 7M - 3 -M -M 0 0 zj zj - cj Once an artificial variable is selected as the leaving variable, it will never reenter the tableau, so it can be eliminated. In Table A-17 the x2 column was selected as the pivot column because 7M - 3 is the largest positive value in the zj - cj row. A1 was selected as the leaving basic variable (and pivot row) because the quotient of 4 for this row was the minimum positive row value. The second simplex tableau is developed using the simplex formulas presented earlier. It is shown in Table A-18. Notice that the A1 column has been eliminated in the second simplex tableau. Once an artificial variable leaves the basic feasible solution, it will never return because of its high cost, M. Thus, like the booster rocket, it can be eliminated from the tableau. However, artificial variables are the only variables that can be treated this way. Table A-18 The Second Simplex Tableau cj Basic Variables Quantity 6 3 0 0 M x1 x2 s1 s2 A2 3 x2 4 1/2 1 -1>4 0 0 M A2 12 5/2 0 3/4 -1 1 12M + 12 5M>2 + 3>2 3 -3>4 + 3M>4 -M M 5M>2 - 9>2 0 -3>4 + 3M>4 -M 0 zj zj - cj The third simplex tableau, with x1 replacing A2, is shown in Table A-19. Both the A1 and A2 columns have been eliminated because both variables have left the solution. The x1 row Z06_TAYL4367_10_SE_Mod A.QXD A-20 1/9/09 1:07 AM Page A-20 Module A The Simplex Solution Method is selected as the pivot row because it corresponds to the minimum positive ratio of 16. In selecting the pivot row, the -4 value for the x2 row was not considered because the minimum positive value or zero is selected. Selecting the x2 row would result in a negative quantity value for s1 in the fourth tableau, which is not feasible. Table A-19 The Third Simplex Tableau cj 3 6 6 3 0 0 Quantity x1 x2 s1 s2 x2 x1 8/5 24/5 0 1 1 0 -2/5 3/10 1/5 -2/5 zj 168/5 6 3 3/5 -9/5 0 0 3/5 -9/5 Basic Variables zj - cj The fourth simplex tableau, with s1 replacing x1, is shown in Table A-20. Table A-20 is the optimal simplex tableau because the zj - cj row contains no positive values. The optimal solution is x1 s1 x2 s2 Z = = = = = 0 bags of Super-gro 16 extra lb. of nitrogen 8 bags of Crop-quick 0 extra lb. of phosphate $24, total cost of purchasing fertilizer Table A-20 Optimal Simplex Tableau cj 3 0 6 3 0 0 Quantity x1 x2 s1 s2 x2 s1 8 16 4/3 10/3 1 0 0 1 -1/3 -4/3 zj 24 4 3 0 -1 -2 0 0 -1 Basic Variables zj - cj Simplex Adjustments for a Minimization Problem To summarize, the adjustments necessary to apply the simplex method to a minimization problem are as follows: 1. Transform all Ú constraints to equations by subtracting a surplus variable and adding an artificial variable. 2. Assign a cj value of M to each artificial variable in the objective function. 3. Change the cj - zj row to zj - cj. Although the fertilizer example model we just used included only Ú constraints, it is possible for a minimization problem to have … and = constraints in addition to Ú constraints. Similarly, it is possible for a maximization problem to have Ú and = constraints in addition to … constraints. Problems that contain a combination of different types of inequality constraints are referred to as mixed constraint problems. Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-21 A Mixed Constraint Problem A-21 A Mixed Constraint Problem A mixed constraint problem includes a combination of … , =, and Ú constraints. So far we have discussed maximization problems with all … constraints and minimization problems with all Ú constraints. However, we have yet to solve a problem with a mixture of … , Ú , and = constraints. Furthermore, we have not yet looked at a maximization problem with a Ú constraint. The following is a maximization problem with … , Ú , and = constraints. A leather shop makes custom-designed, hand-tooled briefcases and luggage. The shop makes a $400 profit from each briefcase and a $200 profit from each piece of luggage. (The profit for briefcases is higher because briefcases require more hand tooling.) The shop has a contract to provide a store with exactly 30 items per month. A tannery supplies the shop with at least 80 square yards of leather per month. The shop must use at least this amount but can order more. Each briefcase requires 2 square yards of leather; each piece of luggage requires 8 square yards of leather. From past performance, the shop owners know they cannot make more than 20 briefcases per month. They want to know the number of briefcases and pieces of luggage to produce in order to maximize profit. This problem is formulated as maximize Z = $400x1 + 200x2 subject to x1 + x2 2x1 + 8x2 x1 x1, x2 = Ú … Ú 30 contracted items 80 yd.2 of leather 20 briefcases 0 where x1 = briefcases and x2 = pieces of luggage. The first step in the simplex method is to transform the inequalities into equations. The first constraint for the contracted items is already an equation; therefore, it is not necessary to add a slack variable. There can be no slack in the contract with the store because exactly 30 items must be delivered. Even though this equation already appears to be in the necessary form for simplex solution, let us test it at the origin to see if it meets the starting requirements: x1 + x2 = 30 0 + 0 = 30 0 Z 30 An artificial variable is added to an equality (=) constraint for standard form. Because zero does not equal 30, the constraint is not feasible in this form. Recall that a Ú constraint did not work at the origin either in an earlier problem. Therefore, an artificial variable was added. The same thing can be done here: x1 + x2 + A1 = 30 Now at the origin, where x1 = 0 and x2 = 0, 0 + 0 + A1 = 30 A1 = 30 Any time a constraint is initially an equation, an artificial variable is added. However, the artificial variable cannot be assigned a value of M in the objective function of a maximization problem. Because the objective is to maximize profit, a positive M value would represent a large positive profit that would definitely end up in the final solution. Because an artificial variable has no real meaning and is inserted into the model merely to create an Z06_TAYL4367_10_SE_Mod A.QXD A-22 1/9/09 1:07 AM Page A-22 Module A The Simplex Solution Method An artificial variable in a maximization problem is given a large cost contribution to drive it out of the problem. initial solution at the origin, its existence in the final solution would render the solution meaningless. To prevent this from happening, we must give the artificial variable a large cost contribution, or -M. The constraint for leather is a Ú inequality. It is converted to equation form by subtracting a surplus variable and adding an artificial variable: 2x1 + 8x2 - s1 + A2 = 80 As in the equality constraint, the artificial variable in this constraint must be assigned an objective function coefficient of -M. The final constraint is a … inequality and is transformed by adding a slack variable: x1 + s2 = 20 The completely transformed linear programming problem is as follows: maximize Z = 400x1 + 200x2 + 0s1 + 0s2 - MA1 - MA2 subject to x1 + x2 + A1 2x1 + 8x2 - s1 + A2 x1 + s2 x1, x2, s1, s2, A1, A2 = = = Ú 30 80 20 0 The initial simplex tableau for this model is shown in Table A-21. Notice that the basic solution variables are a mix of artificial and slack variables. Note also that the third-row quotient for determining the pivot row (20 , 0) is an undefined value, or q. Therefore, this row would never be considered as a candidate for the pivot row. The second, third, and optimal tableaus for this problem are shown in Tables A-22, A-23, and A-24. Table A-21 The Initial Simplex Tableau cj -M -M 0 Basic Variables A1 A2 s2 zj Quantity cj -M 200 0 A1 x2 s2 zj cj - zj 0 0 -M -M x1 x2 s1 s2 A1 A2 1 0 0 0 1 0 1 2 1 1 8 0 -1 0 0 0 1 -110M -3M -9M M 0 -M -M 400 + 3M 200 + 9M -M 0 0 0 Table A-22 Basic Variables 200 30 80 20 cj - zj The Second Simplex Tableau 400 Quantity 0 400 200 0 0 -M x1 x2 s1 s2 A1 20 10 20 3/4 1/4 1 0 1 0 1/8 -1/8 0 0 0 1 1 0 0 2,000 - 20M 50 - 3M/4 200 -25 - M/8 0 -M 350 + 3M/4 0 25 + M/8 0 0 Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-23 Irregular Types of Linear Programming Problems Table A-23 The Third Simplex Tableau Basic Variables cj A1 x2 x1 -M 200 400 zj 400 200 0 0 x1 x2 s1 s2 5 5 20 0 0 1 0 1 0 1/8 -1>8 0 -3>4 -1>4 1 1 0 0 9,000 - 5M 400 200 -25 - M>8 350 + 3M>4 -M 0 0 25 + M>8 -350 - 3M>4 0 Quantity cj - zj Table A-24 The Optimal Simplex Tableau Basic Variables cj 0 200 400 A-23 Quantity 400 200 0 0 x1 x2 s1 s2 -M A1 s1 x2 x1 40 10 20 0 0 1 0 1 0 1 0 0 -6 -1 1 zj 10,000 400 200 0 200 0 0 0 -200 cj - zj The solution for the leather shop problem is (see Table A-24) x1 x2 s1 Z = = = = 20 briefcases 10 pieces of luggage 40 extra yd.2 of leather $10,000 profit per month It is now possible to summarize a set of rules for transforming all three types of model constraints: Objective Function Coefficient Constraint Adjustment MAXIMIZATION MINIMIZATION … = Ú Add a slack variable Add an artificial variable Subtract a surplus variable and add an artificial variable 0 -M 0 -M 0 M 0 M Irregular Types of Linear Programming Problems For irregular problems the general simplex procedure does not always apply. The basic simplex solution of typical maximization and minimization problems has been shown in this module. However, there are several special types of atypical linear programming problems. Although these special cases do not occur frequently, they will be described within the simplex framework so that you can recognize them when they arise. Z06_TAYL4367_10_SE_Mod A.QXD A-24 1/9/09 1:07 AM Page A-24 Module A The Simplex Solution Method These special types include problems with more than one optimal solution, infeasible problems, problems with unbounded solutions, problems with ties for the pivot column or ties for the pivot row, and problems with constraints with negative quantity values. Multiple Optimal Solutions Consider the Beaver Creek Pottery Company example with the objective function changed as follows: Z = 40x1 + 50x2 to Z = 40x1 + 30x2 maximize Z = 40x1 + 30x2 subject to x1 + 2x2 … 40 4x1 + 3x2 … 120 x1, x2 Ú 0 Alternate optimal solutions have the same Z value but different variable values. The graph of this model is shown in Figure A-5. The slight change in the objective function makes it now parallel to the constraint line, 4x1 + 3x2 = 120. Therefore, as the objective function edge moves outward from the origin, it touches the whole line segment BC rather than a single extreme corner point before it leaves the feasible solution area. The endpoints of this line segment, B and C, are typically referred to as the alternate optimal solutions. It is understood that these points represent the endpoints of a range of optimal solutions. Figure A-5 Graph of the Beaver Creek Pottery Company example with multiple optimal solutions x2 Point B x1 = 24 x2 = 8 Z = 120 40 Point C x1 = 30 x2 = 0 Z = 120 30 20 A 10 0 For a multiple optimal solution the cj - zj (or zj - cj) value for a nonbasic variable in the final tableau equals zero. B 10 20 C 30 40 x1 The optimal simplex tableau for this problem is shown in Table A-25. This corresponds to point C in Figure A-5. The fact that this problem contains multiple optimal solutions can be determined from the cj - zj row. Recall that the cj - zj row values are the net increases in profit per unit for the variable in each column. Thus, cj - zj values of zero indicate no net increase in profit and no net loss in profit. We would expect the basic variables, s1 and x1, to have zero cj - zj values because they are part of the basic feasible solution; they are already in the solution so they cannot be entered again. However, the x2 column has a cj - zj value of zero and it is Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-25 Irregular Types of Linear Programming Problems A-25 not part of the basic feasible solution. This means that if some mugs (x2) were produced, we would have a new product mix but the same total profit. Thus, a multiple optimal solution is indicated by a cj - zj (or zj - cj) row value of zero for a nonbasic variable. Table A-25 The Optimal Simplex Tableau cj 0 40 Basic Variables Quantity 40 30 0 0 x1 x2 s1 s2 s1 x1 10 30 0 1 5/4 3/4 1 0 -1>4 -1>4 zj 1,200 40 30 0 10 0 0 0 -10 cj - zj An alternate optimal solution is determined by selecting the nonbasic variable with cj - zj = 0 as the entering variable. To determine the alternate endpoint solution, let x2 be the entering variable (pivot column) and select the pivot row as usual. This selection results in the s1 row being the pivot row. The alternate solution corresponding to point B in Figure A-5 is shown in Table A-26. Table A-26 The Alternate Optimal Tableau cj 30 40 Basic Variables Quantity 40 30 0 0 x1 x2 s1 s2 x2 x1 8 24 0 1 1 0 4/5 -3>5 -1>5 2/5 zj 1,200 40 30 0 10 0 0 0 -10 cj - zj An Infeasible Problem An infeasible problem does not have a feasible solution space. Another linear programming irregularity is the case in which a problem has no feasible solution area; thus, there is no basic feasible solution to the problem. An example of an infeasible problem is formulated next and depicted graphically in Figure A-6: maximize Z = 5x1 + 3x2 subject to 4x1 + 2x2 x1 x2 x1, x2 An infeasible problem has an artificial variable in the final simplex tableau. … Ú Ú Ú 8 4 6 0 The three constraints do not overlap to form a feasible solution area. Because no point satisfies all three constraints simultaneously, there is no solution to the problem. The final simplex tableau for this problem is shown in Table A-27. The tableau in Table A-27 has all zero or negative values in the cj - zj row, indicating that it is optimal. However, the solution is x2 = 4, A1 = 4, and A2 = 2. Because the existence of artificial variables in the final solution makes the solution meaningless, this is not a real Z06_TAYL4367_10_SE_Mod A.QXD A-26 1/9/09 1:07 AM Page A-26 Module A The Simplex Solution Method Figure A-6 x2 Graph of an infeasible problem x1 = 4 12 10 8 C x2 = 6 6 4 B 4x1 + 2x2 = 8 2 0 A 2 4 6 8 Table A-27 The Final Simplex Tableau for an Infeasible Problem cj 3 -M -M Basic Variables Quantity 12 x1 5 3 0 0 0 -M -M x1 x2 s1 s2 s3 A1 A2 4 4 2 2 1 -2 1 0 0 1/2 0 -1>2 0 -1 0 0 0 -1 0 1 0 0 0 1 12 - 6M 6 + M 3 3>2 + M>2 M M -M -M -1 - M 0 -3>2 - M>2 -M -M 0 0 x2 A1 A2 zj 10 cj - zj solution. In general, any time the cj - zj (or zj - cj) row indicates that the solution is optimal but there are artificial variables in the solution, the solution is infeasible. Infeasible problems do not typically occur, but when they do they are usually a result of errors in defining the problem or in formulating the linear programming model. An Unbounded Problem In an unbounded problem the objective function can increase indefinitely because the solution space is not closed. In some problems the feasible solution area formed by the model constraints is not closed. In these cases it is possible for the objective function to increase indefinitely without ever reaching a maximum value because it never reaches the boundary of the feasible solution area. An example of this type of problem is formulated next and shown graphically in Figure A-7: maximize Z = 4x1 + 2x2 subject to x1 Ú 4 x2 … 2 x1, x2 Ú 0 Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-27 Irregular Types of Linear Programming Problems A-27 Figure A-7 x2 An unbounded problem 12 10 Z= 8 4x 1 6 x2 +2 4 2 0 A pivot row cannot be selected for an unbounded problem. 2 4 6 8 10 12 x1 In Figure A-7 the objective function is shown to increase without bound; thus, a solution is never reached. The second tableau for this problem is shown in Table A-28. In this simplex tableau, s1 is chosen as the entering nonbasic variable and pivot column. However, there is no pivot row or leaving basic variable. One row value is -4 and the other is undefined. This indicates that a “most constrained” point does not exist and that the solution is unbounded. In general, a solution is unbounded if the row value ratios are all negative or undefined. Table A-28 The Second Simplex Tableau cj 4 0 Basic Variables 4 2 0 0 Quantity x1 x2 s1 s2 x1 s2 4 2 0 1 0 1 -1 0 0 1 zj 16 4 0 -4 0 0 2 4 0 cj - zj 4 , - 1 = -4 2 , 0 = q Unlimited profits are not possible in the real world; an unbounded solution, like an infeasible solution, typically reflects an error in defining the problem or in formulating the model. Tie for the Pivot Column A tie for the pivot column is broken arbitrarily. Sometimes when selecting the pivot column, you may notice that the greatest positive cj - zj (or zj - cj) row values are the same; thus, there is a tie for the pivot column. When this happens, one of the two tied columns should be selected arbitrarily. Even though one choice may require fewer subsequent iterations than the other, there is no way of knowing this beforehand. Tie for the Pivot Row—Degeneracy It is also possible to have a tie for the pivot row (i.e., two rows may have identical lowest nonnegative values). Like a tie for a pivot column, a tie for a pivot row should be broken arbitrarily. However, after the tie is broken, the basic variable that was the other choice for Z06_TAYL4367_10_SE_Mod A.QXD A-28 1/9/09 1:07 AM Page A-28 Module A The Simplex Solution Method A tie for the pivot row is broken arbitrarily and can lead to degeneracy. the leaving basic variable will have a quantity value of zero in the next tableau. This condition is commonly referred to as degeneracy because theoretically it is possible for subsequent simplex tableau solutions to degenerate so that the objective function value never improves and optimality never results. This occurs infrequently, however. In general, tableaus with ties for the pivot row should be treated normally. If the simplex steps are carried out as usual, the solution will evolve normally. The following is an example of a problem containing a tie for the pivot row: maximize Z = 4x1 + 6x2 subject to 6x1 + 4x2 x2 5x1 + 10x2 x1, x2 … … … Ú 24 3 40 0 For the sake of brevity we will skip the initial simplex tableau for this problem and go directly to the second simplex tableau in Table A-29, which shows a tie for the pivot row between the s1 and s3 rows. Table A-29 The Second Simplex Tableau with a Tie for the Pivot Row cj 0 6 0 4 6 0 0 0 Quantity x1 x2 s1 s2 s3 s1 x2 s3 12 3 10 6 0 5 0 1 0 1 0 0 -4 1 -10 0 0 1 zj 18 0 6 0 6 0 4 0 0 -6 0 Basic Variables cj - zj 12 , 6 = 2 10 , 5 = 2 f Tie The s3 row is selected arbitrarily as the pivot row, resulting in the third simplex tableau, shown in Table A-30. Table A-30 The Third Simplex Tableau with Degeneracy cj 0 6 4 Basic Variables Quantity 4 6 0 0 0 x1 x2 s1 s2 s3 s1 x2 x1 0 3 2 0 0 1 0 1 0 1 0 0 8 1 -2 -6>5 0 1/5 zj 26 4 6 0 -2 4/5 0 0 0 2 -4>5 cj - zj Note that in Table A-30 a quantity value of zero now appears in the s1 row, representing the degenerate condition resulting from the tie for the pivot row. However, the simplex process should be continued as usual: s2 should be selected as the entering basic variable and the s1 row should be selected as the pivot row. (Recall that the pivot row value of zero is the minimum nonnegative quotient.) The final optimal tableau is shown in Table A-31. Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-29 Irregular Types of Linear Programming Problems Table A-31 The Optimal Simplex Tableau for a Degenerate Problem 4 6 0 0 0 Quantity x1 x2 s1 s2 s3 s2 x2 x1 0 3 2 0 0 1 0 1 0 1/8 -1>8 1/4 1 0 0 -3>20 3/20 -1>10 zj 26 4 6 1/4 0 1/2 0 0 -1>4 0 -1>2 Basic Variables cj 0 6 4 cj - zj A-29 Notice that the optimal solution did not change from the third to the optimal simplex tableau. The graphical analysis of this problem shown in Figure A-8 reveals the reason for this. Figure A-8 Graph of a degenerate solution x2 8 6 6x1 + 4x2 = 24 4 B A x2 = 3 2 0 Degeneracy occurs in a simplex problem when a problem continually loops back to the same solution or tableau. 5x1 + 10x2 = 40 C 2 4 6 8 x1 Notice that in the third tableau (Table A-30) the simplex process went to point B, where all three constraint lines intersect. This is, in fact, what caused the tie for the pivot row and the degeneracy. Subsequently, the simplex process stayed at point B in the optimal tableau (Table A-31). The two tableaus represent two different basic feasible solutions corresponding to two different sets of model constraint equations. Negative Quantity Values Occasionally a model constraint is formulated with a negative quantity value on the right side of the inequality sign—for example, Standard form for simplex solution requires positive righthand-side values. A negative right-hand-side value is changed to a positive by multiplying the constraint by -1, which changes the direction of the inequality. -6x1 + 2x2 Ú -30 This is an improper condition for the simplex method, because for the method to work, all quantity values must be positive or zero. This difficulty can be alleviated by multiplying the inequality by -1, which also changes the direction of the inequality: (-1)(-6x1 + 2x2 Ú -30) 6x1 - 2x2 … 30 Z06_TAYL4367_10_SE_Mod A.QXD A-30 1/9/09 1:07 AM Page A-30 Module A The Simplex Solution Method Now the model constraint is in proper form to be transformed into an equation and solved by the simplex method. Summary of Simplex Irregularities Multiple optimal solutions are identified by cj - zj (or zj - cj) = 0 for a nonbasic variable. To determine the alternate solution(s), enter the nonbasic variable(s) with a cj - zj value equal to zero. An infeasible problem is identified in the simplex procedure when an optimal solution is achieved (i.e., when all cj - zj … 0) and one or more of the basic variables are artificial. An unbounded problem is identified in the simplex procedure when it is not possible to select a pivot row—that is, when the values obtained by dividing the quantity values by the corresponding pivot column values are negative or undefined. The Dual The original linear programming model is called the primal, and the alternative form is the dual. The dual solution variables provide the value of the resources, that is, shadow prices. Every linear programming model has two forms: the primal and the dual. The original form of a linear programming model is called the primal. All the examples in this module are primal models. The dual is an alternative model form derived completely from the primal. The dual is useful because it provides the decision maker with an alternative way of looking at a problem. Whereas the primal gives solution results in terms of the amount of profit gained from producing products, the dual provides information on the value of the constrained resources in achieving that profit. The following example will demonstrate how the dual form of a model is derived and what it means. The Hickory Furniture Company produces tables and chairs on a daily basis. Each table produced results in $160 in profit; each chair results in $200 in profit. The production of tables and chairs is dependent on the availability of limited resources— labor, wood, and storage space. The resource requirements for the production of tables and chairs and the total resources available are as follows: Resource Requirements Resource Labor (hr.) Wood (bd. ft.) Storage (ft.2) TABLE CHAIR Total Available per Day 2 18 24 4 18 12 40 216 240 The company wants to know the number of tables and chairs to produce per day to maximize profit. The model for this problem is formulated as follows: maximize Z = $160x1 + 200x2 subject to 2x1 + 4x2 18x1 + 18x2 24x1 + 12x2 x1, x2 … … … Ú 40 hr. of labor 216 bd. ft. of wood 240 ft.2 of storage space 0 Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-31 The Dual A-31 where x1 = number of tables produced x2 = number of chairs produced This model represents the primal form. For a primal maximization model, the dual form is a minimization model. The dual form of this example model is minimize Zd = 40y1 + 216y2 + 240y3 subject to 2y1 + 18y2 + 24y3 Ú 160 4y1 + 18y2 + 12y3 Ú 200 y1, y2, y3 Ú 0 The dual is formulated entirely from the primal. The specific relationships between the primal and the dual demonstrated in this example are as follows: 1. The dual variables, y1, y2, and y3, correspond to the model constraints in the primal. For every constraint in the primal there will be a variable in the dual. For example, in this case the primal has three constraints; therefore, the dual has three decision variables. 2. The quantity values on the right-hand side of the primal inequality constraints are the objective function coefficients in the dual. The constraint quantity values in the primal, 40, 216, and 240, form the dual objective function: Z = 40y1 + 216y2 + 240y3. 3. The model constraint coefficients in the primal are the decision variable coefficients in the dual. For example, the labor constraint in the primal has the coefficients 2 and 4. These values are the y1 variable coefficients in the model constraints of the dual: 2y1 and 4y1. 4. The objective function coefficients in the primal, 160 and 200, represent the model constraint requirements (quantity values on the right-hand side of the constraint) in the dual. 5. Whereas the maximization primal model has … constraints, the minimization dual model has Ú constraints. A primal maximization model with … constraints converts to a dual minimization model with Ú constraints, and vice versa. The primal–dual relationships can be observed by comparing the two model forms shown in Figure A-9. Now that we have developed the dual form of the model, the next step is determining what the dual means. In other words, what do the decision variables y1, y2, and y3 mean, what do the Ú model constraints mean, and what is being minimized in the dual objective function? Interpreting the Dual Model The dual model can be interpreted by observing the simplex solution to the primal form of the model. The simplex solution to the primal model is shown in Table A-32. Interpreting this primal solution, we have x1 x2 s3 Z = = = = 4 tables 8 chairs 48 ft.2 of storage space $2,240 profit Z06_TAYL4367_10_SE_Mod A.QXD A-32 1/9/09 1:07 AM Page A-32 Module A The Simplex Solution Method Figure A-9 The primal–dual relationships Primal maximize Z p = 160 Dual x1 + 200 x2 minimize Z d = cj y1 + 216 y2 + 240 40 y3 qi subject to: subject to: 2 x1 + 4 x2 ≤ 40 18 x1 + 18 x2 ≤ 216 24 x1 + 12 x2 ≤ 240 2y1 + 18y2 + 24y3 ≥ 160 4y1 + 18y2 + 12y3 ≥ 200 y1, y2, y3 ≥ 0 x1, x2 ≥ 0 Table A-32 The Optimal Simplex Solution for the Primal Model cj 200 160 0 Basic Variables Quantity 160 200 0 0 0 x1 x2 s1 s2 s3 x2 x1 s3 8 4 48 0 1 0 1 0 0 1/2 -1>2 6 -1>18 1/9 -2 0 0 1 zj 2,240 160 200 20 20/3 0 0 0 -20 -20>3 0 cj - zj This optimal primal tableau also contains information about the dual. In the cj - zj row of Table A-32, the negative values -20 and -20>3 under the s1 and s2 columns indicate that if one unit of either s1 or s2 was entered into the solution, profit would decrease by $20 or $6.67 (i.e., 20/3), respectively. Recall that s1 represents unused labor and s2 represents unused wood. In the present solution s1 and s2 are not basic variables, so they both equal zero. This means that all the material and labor are being used to make tables and chairs, and there are no excess (slack) labor hours or board feet of material left over. Thus, if we enter s1 or s2 into the solution, then s1 or s2 no longer equals zero, and the use of labor or wood is decreased. If, for example, one unit of s1 is entered into the solution, then one unit of labor previously used is not used, and profit is reduced by $20. Let us assume that one unit of s1 has been entered into the solution, so that we have one hour of unused labor (s1 = 1). Now let us remove this unused hour of labor from the solution so that all labor is again being used. We previously noted that profit was decreased by $20 by entering one hour of unused labor; thus, it can be expected that if we take this hour back (and use it again), profit will be increased by $20. This is analogous to saying that if we could get one more hour of labor, we could increase profit by $20. Therefore, if we could Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-33 The Dual TIME OUT A-33 for John Von Neumann John Von Neumann, the famous Hungarian mathematician, is credited with many contributions in science and mathematics, including crucial work on the development of the atomic bomb during World War II and the development of the computer following the war. In 1947 George Dantzig visited Von Neumann at The cj - zj values for slack variables are the marginal values of the constraint resources, i.e., shadow prices. If a resource is not completely used, i.e., there is slack, its marginal value is zero. The shadow price is the maximum amount that should be paid for one additional unit of a resource. The total marginal value of the resources equals the optimal profit. the Institute for Advanced Study at Princeton and described the linear programming technique to him. Von Neumann grasped the technique immediately, because he had been working on similar concepts himself, and went on to explain duality to Dantzig for the first time. purchase one hour of labor, we would be willing to pay up to $20 for it because that is the amount by which it would increase profit. The negative cj - zj row values of $20 and $6.67 are the marginal values of labor (s1) and wood (s2), respectively. These dual values are also often referred to as shadow prices, since they reflect the maximum “price” one would be willing to pay to obtain one more unit of the resource. What happened to the third resource, storage space? The answer can be seen in Table A-32. Notice that the cj - zj row value for s3 (which represents unused storage space) is zero. This means that storage space has a marginal value of zero; that is, we would not be willing to pay anything for an extra foot of storage space. The reason more storage space has no marginal value is because storage space was not a limitation in the production of tables and chairs. Table A-32 shows that 48 square feet of storage space were left unused (i.e., s3 = 48) after the 4 tables and 8 chairs were produced. Since the company already has 48 square feet of storage space left over, an extra square foot has no additional value; the company cannot even use all the storage space it has available. We need to consider one additional aspect of these marginal values. In our discussion of the marginal value of these resources, we have indicated that the marginal value (or shadow price) is the maximum amount that would be paid for additional resources. The marginal value of $60 for one hour of labor is not necessarily what the Hickory Furniture Company would pay for an hour of labor. This depends on how the objective function is defined. In this example we are assuming that all the resources available, 40 hours of labor, 216 board feet of wood, and 240 square feet of storage space, are already paid for. Even if the company does not use all the resources, it still must pay for them. They are sunk costs. In other words, the cost of any additional resources secured are included in the objective function coefficients. As such, the profit values in the objective function for each product are unaffected by how much of a resource is actually used; the profit is independent of the resources used. If the cost of the resources is not included in the profit function, then securing additional resources will reduce the marginal value. Continuing our analysis, we note that the profit in the primal model was shown to be $2,240. For the furniture company, the value of the resources used to produce tables and chairs must be in terms of this profit. In other words, the value of the labor and wood resources is determined by their contribution toward the $2,240 profit. Thus, if the company wanted to assign a value to the resources it used, it could not assign an amount greater than the profit earned by the resources. Conversely, using the same logic, the total value of the resources must also be at least as much as the profit they earn. Thus, the value of all the resources must exactly equal the profit earned by the optimal solution. Z06_TAYL4367_10_SE_Mod A.QXD A-34 1/9/09 1:07 AM Page A-34 Module A The Simplex Solution Method Now let us look again at the dual form of the model: minimize Zd = 40y1 + 16y2 + 240y3 subject to The dual variables equal the marginal value of the resources, the shadow prices. 2y1 + 18y2 + 24y3 Ú 160 4y1 + 18y2 + 12y3 Ú 200 y1, y2, y3, Ú 0 Given the previous discussion on the value of the model resources, we can now define the decision variables of the dual, y1, y2, and y3, to represent the marginal values of the resources: y1 = marginal value of 1 hr. of labor = $20 y2 = marginal value of 1 bd. ft. of wood = $6.67 y3 = marginal value of 1 ft.2 of storage space = $0 Use of the Dual The dual provides the decision maker with a basis for deciding how much to pay for more resources. The importance of the dual to the decision maker lies in the information it provides about the model resources. Often the manager is less concerned about profit than about the use of resources because the manager often has more control over the use of resources than over the accumulation of profits. The dual solution informs the manager of the value of the resources, which is important in deciding whether to secure more resources and how much to pay for these additional resources. If the manager secures more resources, the next question is, How does this affect the original solution? The feasible solution area is determined by the values forming the model constraints, and if those values are changed, it is possible for the feasible solution area to change. The effect on the solution of changes to the model is the subject of sensitivity analysis, the next topic to be presented here. Sensitivity Analysis In this section we will show how sensitivity ranges are mathematically determined using the simplex method. While this is not as efficient or quick as using the computer, close examination of the simplex method for performing sensitivity analysis can provide a more thorough understanding of the topic. Changes in Objective Function Coefficients To demonstrate sensitivity analysis for the coefficients in the objective function, we will use the Hickory Furniture Company example developed in the previous section. The model for this example was formulated as maximize Z = $160x1 + 200x2 subject to 2x1 + 4x2 18x1 + 18x2 24x1 + 12x2 x1, x2 … … … Ú 40 hr. of labor 216 bd. ft. of wood 240 ft.2 of storage space 0 where x1 = number of tables produced x2 = number of chairs produced Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-35 Sensitivity Analysis A-35 The coefficients in the objective function will be represented symbolically as cj (the same notation used in the simplex tableau). Thus, c1 = 160 and c2 = 200. Now, let us consider a change in one of the cj values by an amount ¢ . For example, let us change c1 = 160 by ¢ = 90. In other words, we are changing c1 from $160 to $250. The effect of this change on the solution of this model is shown graphically in Figure A-10. Figure A-10 x2 A change in c1 20 15 c1 = 250 10 A B 5 c1 = 160 C 0 The sensitivity range for a cj value is the range of values over which the current optimal solution will remain optimal. D 5 10 15 20 Originally, the solution to this problem was located at point B in Figure A-10, where x1 = 4 and x2 = 8. However, increasing c1 from $160 to $250 shifts the slope of the objective function so that point C (x1 = 8, x2 = 4) becomes the optimal solution. This demonstrates that a change in one of the coefficients of the objective function can change the optimal solution. Therefore, sensitivity analysis is performed to determine the range over which cj can be changed without altering the optimal solution. The range of cj that will maintain the optimal solution can be determined directly from the optimal simplex tableau. The optimal simplex tableau for our furniture company example is shown in Table A-33. Table A-33 The Optimal Simplex Tableau cj 200 160 0 Basic Variables Quantity 160 200 0 0 0 x1 x2 s1 s2 s3 x2 x1 s3 8 4 48 0 1 0 1 0 0 1/2 -1>2 6 -1>18 1/9 -2 0 0 1 zj 2,240 160 200 20 20/3 0 0 0 -20 -20>3 0 cj - zj ¢ is added to cj in the optimal simplex tableau. x1 First, consider a ¢ change for c1. This will change the c1 value from c1 = 160 to c1 = 160 + ¢, as shown in Table A-34. Notice that when c1 is changed to 160 + ¢, the new value is included not only in the top cj row but also in the left-hand cj column. This is because x1 is a basic solution variable. Since 160 + ¢ is in the left-hand column, it Z06_TAYL4367_10_SE_Mod A.QXD A-36 1/9/09 1:07 AM Page A-36 Module A The Simplex Solution Method becomes a multiple of the column values when the new zj row values and the subsequent cj - zj row values, also shown in Table A-34, are computed. Table A-34 The Optimal Simplex Tableau with c1 = 160 + ¢ Basic Variables cj 200 160 + ¢ 0 200 0 0 0 x1 x2 s1 s2 s3 x2 x1 s3 8 4 48 0 1 0 1 0 0 1/2 -1>2 6 -1>18 1/9 -2 0 0 1 zj 2,240 + 4¢ 160 + ¢ 200 20 - ¢/2 20/3 + ¢/9 0 0 0 -20 + ¢/2 -20>3 - ¢/9 0 cj - zj For the solution to remain optimal all values in the cj - zj row must be … 0. Quantity 160 + ¢ The solution shown in Table A-34 will remain optimal as long as the cj - zj row values remain negative. (If cj - zj becomes positive, the product mix will change, and if it becomes zero, there will be an alternative solution.) Thus, for the solution to remain optimal, -20 + ¢>2 … 0 and -20>3 - ¢>9 … 0 Both of these inequalities must be solved for ¢ : -20 + ¢>2 … 0 ¢>2 … 20 ¢ … 40 and -20>3 - ¢>9 - ¢>9 -¢ ¢ … … … Ú 0 20>3 60 -60 Thus, ¢ … 40 and ¢ Ú - 60. Now recall that c1 = 160 + ¢; therefore, ¢ = c1 - 160. Substituting the amount c1 - 160 for ¢ in these inequalities, ¢ … 40 c1 - 160 … 40 c1 … 200 and ¢ Ú -60 c1 - 160 Ú -60 c1 Ú 100 Therefore, the range of values for c1 over which the solution basis will remain optimal (although the value of the objective function may change) is 100 … c1 … 200 Next, consider a ¢ change in c2 so that c2 = 200 + ¢. The effect of this change in the final simplex tableau is shown in Table A-35. Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-37 Sensitivity Analysis Table A-35 The Optimal Simplex Tableau with c2 = 200 + ¢ Basic Variables cj 200 + ¢ 160 0 Quantity A-37 160 200 + ¢ 0 0 0 x1 x2 s1 s2 s3 x2 x1 s3 8 4 48 0 1 0 1 0 0 1/2 -1>2 6 -1>18 1/9 -2 0 0 1 zj 2,240 + 8¢ 160 200 + ¢ 20 + ¢/2 20/3 - ¢/18 0 0 0 -20 - ¢/2 -20>3 + ¢/18 0 cj - zj As before, the solution shown in Table A-35 will remain optimal as long as the cj - zj row values remain negative or zero. Thus, for the solution to remain optimal, we must have -20 - ¢>2 … 0 and -20>3 + ¢>18 … 0 Solving these inequalities for ¢ gives -20 - ¢>2 … 0 - ¢>2 … 20 ¢ Ú -40 and -20>3 + ¢>18 … 0 ¢>18 … 20>3 ¢ … 120 Thus, ¢ Ú -40 and ¢ … 120. Since c2 = 200 + ¢, we have ¢ = c2 - 200. Substituting this value for ¢ in the inequalities yields ¢ Ú -40 c2 - 200 Ú -40 c2 Ú 160 and ¢ … 120 c2 - 200 … 120 c2 … 320 Therefore, the range of values for c2 over which the solution will remain optimal is 160 … c2 … 320 The ranges for both objective function coefficients are as follows: 100 … c1 … 200 160 … c2 … 320 However, these ranges reflect a possible change in either c1 or c2, not simultaneous changes in both c1 and c2. Both of the objective function coefficients in this example were for basic solution variables. Determining the cj sensitivity range for a decision variable that is not basic is much simpler. Because it is not in the basic variable column, the ¢ change Z06_TAYL4367_10_SE_Mod A.QXD A-38 1/9/09 1:07 AM Page A-38 Module A The Simplex Solution Method does not become a multiple of the zj row. Thus, the ¢ change will show up in only one column in the cj - zj row. Changes in Constraint Quantity Values To demonstrate the effect of a change in the quantity values of the model constraints, we will again use the Hickory Furniture Company example: maximize Z = 160x1 + 200x2 subject to 2x1 + 4x2 18x1 + 18x2 24x1 + 12x2 x1, x2 … … … Ú 40 hr. of labor 216 bd. ft. of wood 240 ft.2 of storage space 0 The quantity values 40, 216, and 240 will be represented symbolically as qi. Thus, q1 = 40, q2 = 216, and q3 = 240. Now consider a ¢ change in q2. For example, let us change q2 = 216 by ¢ = 18. In other words, q2 is changed from 216 board feet to 234 board feet. The effect of this change is shown graphically in Figure A-11. Figure A-11 A ¢ change in q2 x2 20 Original optimal solution 15 New optimal solution with change in q2 10 A B' B C' 5 C 0 D 5 10 15 20 x1 In Figure A-11 a change in q2 is shown to have the effect of changing the feasible solution area from 0ABCD to 0AB¿C¿D. Originally, the optimal solution point was B; however, the change in q2 causes B¿ to be the new optimal solution point. At point B the optimal solution is x1 x2 s3 s1 and s2 Z = = = = = 4 8 48 0 $2,240 At point B¿ the new optimal solution is x1 = 6 x2 = 7 Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-39 Sensitivity Analysis A-39 s3 = 12 s1 and s2 = 0 Z = $2,360 Thus, a change in a qi value can change the values of the optimal solution. At some point an increase or decrease in qi will change the variables in the optimal solution mix, including the slack variables. For example, if q2 increases to 240 board feet, then the optimal solution point will be at x1 x2 s3 s1 and s2 Z The sensitivity range for a qi value is the range of values over which the right-hand-side values can vary without changing the solution variable mix, including slack variables and the shadow prices. = = = = = 6.67 6.67 0 0 $2,400 Notice that s3 has left the solution; thus, the optimal solution mix has changed. At this point, where q2 = 240, which is the upper limit of the sensitivity range for q2, the shadow price will also change. Therefore, the purpose of sensitivity analysis is to determine the range for qi over which the optimal variable mix will remain the same and the shadow price will remain the same. As in the case of the cj values, the range for qi can be determined directly from the optimal simplex tableau. As an example, consider a ¢ increase in the number of labor hours. The model constraints become 2x1 + 4x2 … 40 + 1¢ 18x1 + 18x2 … 216 + 0¢ 24x1 + 12x2 … 240 + 0¢ Notice in the initial simplex tableau for our example (Table A-36) that the changes in the quantity column are the same as the coefficients in the s1 column. Table A-36 The Initial Simplex Tableau cj 0 0 0 160 200 0 0 0 Quantity x1 x2 s1 s2 s3 s1 s2 s3 40 + 1¢ 216 + 0¢ 240 + 0¢ 2 18 24 4 18 12 1 0 0 0 1 0 0 0 1 zj 0 0 0 0 0 0 160 200 0 0 0 Basic Variables cj - zj A ¢ in a qi value is duplicated in the si column in the final tableau. This duplication will carry through each subsequent tableau, so the s1 column values will duplicate the ¢ changes in the quantity column in the final tableau (Table A-37). In effect, the ¢ changes form a separate column identical to the s1 column. Therefore, to determine the ¢ change, we need only observe the slack (si) column corresponding to the model constraint quantity (qi) being changed. Recall that a requirement of the simplex method is that the quantity values not be negative. If any qi value becomes negative, the current solution will no longer be feasible and a new variable will enter the solution. Thus, the inequalities Z06_TAYL4367_10_SE_Mod A.QXD A-40 1/9/09 1:07 AM Page A-40 Module A The Simplex Solution Method Table A-37 Basic Variables The Final Simplex Tableau cj 200 160 0 Quantity 160 200 0 0 0 x1 x2 s1 s2 s3 x2 x1 s3 8 + ¢/2 4 - ¢/2 48 + 6¢ 0 1 0 1 0 0 1/2 -1/2 6 -1/18 1/9 -2 0 0 1 zj 2,240 + 20¢ 160 200 20 20/3 0 0 0 -20 -20/3 0 cj - zj 8 + ¢>2 Ú 0 4 - ¢>2 Ú 0 48 + 6¢ Ú 0 are solved for ¢: 8 + ¢>2 Ú 0 ¢>2 Ú -8 ¢ Ú -16 and 4 - ¢>2 Ú 0 - ¢>2 Ú -4 ¢ … 8 and 48 + 6¢ Ú 0 6¢ Ú -48 ¢ Ú -8 Since q1 = 40 + ¢ then ¢ = q1 - 40 These values are substituted into the inequalities ¢ Ú -16, ¢ … 8, and ¢ Ú -8 as follows: ¢ q1 - 40 q1 ¢ q1 - 40 q1 ¢ q1 - 40 q1 Ú Ú Ú … … … Ú Ú Ú -16 -16 24 8 8 48 -8 -8 32 Summarizing these inequalities, we have 24 … 32 … q1 … 48 Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-41 Sensitivity Analysis A-41 The value 24 can be eliminated, since q1 must be greater than 32; thus, 32 … q1 … 48 As long as q1 remains in this range, the present basic solution variables will remain the same and feasible. However, the quantity values of those basic variables may change. In other words, although the variables in the basis remain the same, their values can change. To determine the range for q2 (where q2 = 216 + ¢ ), the s2 column values are used to develop the ¢ inequalities: 8 - ¢>18 Ú 0 4 + ¢>9 Ú 0 48 - 2¢ Ú 0 The inequalities are solved as follows: 8 - ¢>18 Ú 0 - ¢>18 Ú -8 ¢ … 144 4 + ¢>9 Ú 0 ¢>9 Ú -4 ¢ Ú -36 48 - 2¢ Ú 0 -2¢ Ú -48 ¢ … 24 Since q2 = 216 + ¢ we have ¢ = q2 - 216 Substituting this value into the inequalities ¢ … 144, ¢ Ú -36, and ¢ … 24 gives a range of possible values for q2: ¢ … 144 q2 - 216 … 144 q2 … 360 ¢ Ú -36 q2 - 216 Ú -36 q2 Ú 180 ¢ … 24 q2 - 216 … 24 q2 … 240 That is, 180 … q2 … 240 … 360 Z06_TAYL4367_10_SE_Mod A.QXD A-42 1/9/09 1:07 AM Page A-42 Module A The Simplex Solution Method The value 360 can be eliminated, because q2 cannot exceed 240. Thus, the range over which the basic solution variables will remain the same is 180 … q2 … 240 The range for q3 is 192 … q3 6 q The upper limit of q means that q3 can increase indefinitely (without limit) without changing the optimal variable solution mix in the shadow price. Sensitivity analysis of constraint quantity values can be used in conjunction with the dual solution to make decisions regarding model resources. Recall from our analysis of the dual solution of the Hickory Furniture Company example that y1 = $20, marginal value of labor y2 = $6.67, marginal value of wood y3 = $0, marginal value of storage space The shadow prices are valid only within the sensitivity range for the right-hand-side values. Because the resource with the greatest marginal value is labor, the manager might desire to secure some additional hours of labor. How many hours should the manager get? Given that the range for q1 is 32 … q1 … 48, the manager could secure up to an additional 8 hours of labor (i.e., 48 total hours) before the solution basis changes and the shadow price also changes. If the manager did purchase 8 more hours, the solution values could be found by observing the quantity values in Table A-37: x2 = 8 + ¢>2 x1 = 4 - ¢>2 s3 = 48 + 6¢ Since ¢ = 8, x2 = = x1 = = s3 = = 8 + (8)>2 12 4 - (8)>2 0 48 + 6(8) 96 Total profit would be increased by $20 for each extra hour of labor: Z = = = = $2,240 + 20¢ 2,240 + 20(8) 2,240 + 160 $2,400 In this example for the Hickory Furniture Company, we considered only … constraints in determining the sensitivity ranges for qi values. To compute the qi sensitivity range, we observed the slack column, si, since a ¢ change in qi was reflected in the si column. However, recall that with a Ú constraint we subtract a surplus variable rather than adding a slack variable to form an equality (in addition to adding an artificial variable). Thus, for a Ú constraint we must consider a - ¢ change in qi in order to use the si (surplus) column to perform sensitivity analysis. In that case sensitivity analysis would be performed exactly Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-43 Problems A-43 as shown in this example, except that the value of qi - ¢ would be used instead of qi + ¢ when computing the sensitivity range for qi. Problems 1. Following is a simplex tableau for a linear programming model: 10 2 6 0 0 0 Quantity x1 x2 x3 s1 s2 s3 x1 x2 s3 10 40 30 1 0 0 0 1 0 -2 2 8 1 0 -3 -1>2 1/2 3/2 0 0 1 zj 420 10 2 16 2 4 0 0 0 -10 -2 -4 0 Basic Variables cj 10 2 0 cj - zj a. b. c. d. What is the solution given in this tableau? Is the solution in this tableau optimal? Why? What does x3 equal in this tableau? s2? Write out the original objective function for the linear programming model, using only decision variables. e. How many constraints are in the linear programming model? f. Explain briefly why it would have been difficult to solve this problem graphically. 2. The following is a simplex tableau for a linear programming model: cj 6 12 0 Basic Variables Quantity 6 20 12 0 0 x1 x2 x3 s1 s2 x1 x3 s1 20 10 10 1 0 0 1 1/3 1/3 0 1 0 0 0 1 0 -1>6 -1>6 zj 240 6 10 12 0 -2 0 -10 0 0 -2 zj - cj a. Is this a maximization or a minimization problem? Why? b. What is the solution given in this tableau? c. Is the solution given in this tableau optimal? Why? Z06_TAYL4367_10_SE_Mod A.QXD A-44 1/9/09 1:07 AM Page A-44 Module A The Simplex Solution Method d. Write out the original objective function for the linear programming model using only decision variables. e. How many constraints are in the linear programming model? f. Were any of the constraints originally equations? Why? g. What is the value of x2 in this tableau? 3. The following is a simplex tableau for a linear programming problem: Basic Variables cj 0 50 60 0 Quantity 50 45 50 0 0 0 0 x1 x2 x3 x4 s1 s2 s3 s4 s1 x4 x1 s4 20 15 12 45 0 0 1 0 1 0 1/2 0 0 0 0 8 0 1 0 6 1 0 0 0 0 1 0 -6 0 0 1/10 0 0 0 0 1 zj 1,470 60 30 0 50 0 50 6 0 0 20 45 0 0 -50 -6 0 cj - zj a. b. c. d. e. 60 Is this a maximization or a minimization problem? What are the values of the decision variables in this tableau? What are the values of the slack variables in this tableau? What does the cj - zj value of “20” in the “x2” column mean? Is this solution optimal? Why? If the solution is not optimal, determine the optimal solution. 4. The following is a simplex tableau for a linear programming problem: cj Basic Variables M 10 M A1 x2 A3 zj zj - cj a. b. c. d. Quantity 30 10 100 8 10 4 0 0 0 M M x1 x2 x3 s1 s2 s3 A1 A2 2/3 1/3 0 0 1 0 1 0 1 130M + 100 2M>3 + 10>3 10 2M>3 - 14>3 1/6 -1>6 0 0 0 -1 2M -M M>6 - 5>3 -M 0 2M - 4 -M M>6 - 5>3 -M -1 0 0 0 1 0 0 0 1 M M 0 0 Is this a maximization or a minimization problem? What is the value of x3 in this tableau? What does the value “M>6 - 5>3” in the “s2” column of the zj - cj row mean? What is the minimum number of additional simplex iterations that this problem must go through to determine a feasible optimal solution? e. Is this solution optimal? Why? If the solution is not optimal, compute the optimal solution. Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-45 Problems A-45 5. Given is the following simplex tableau for a linear programming problem: Basic Variables cj M 4 A1 x1 zj Quantity 6 0 0 M x1 x2 s1 s2 A1 2 6 0 1 1/2 1/2 -1 0 1/2 -1>2 1 0 24 + 2M 4 M>2 + 2 -M M>2 - 2 M 0 M>2 - 4 -M M>2 - 2 0 zj - cj a. b. c. d. e. 4 Is this a maximization or a minimization problem? Why? What are the values of the decision variables in this tableau? Were any of the constraints in this problem originally equations? Why? What is the value of s2 in this tableau? Is this solution optimal? Why? If the solution is not optimal, complete the next iteration (tableau) and indicate if it is optimal. 6. Following is a simplex tableau for a linear programming problem: Basic Variables cj 10 -M 0 x1 A2 s2 zj cj - zj 10 5 0 0 -M Quantity x1 x2 s1 s2 A2 5 4 15 1 0 0 1/2 1 7/2 -1>2 0 1/2 0 0 1 0 1 0 -4M + 50 10 -M + 5 -5 0 -M 0 M 5 0 0 a. Is this a maximization or a minimization problem? Why? b. What is the value of x2 in this tableau? c. Does the fact that x1 has a cj - zj value equal to “0” in this tableau mean that multiple optimal solutions exist? Why? d. What does the cj - zj value for the s1 column mean? e. Is this solution optimal? Why? If not, solve this problem and indicate if multiple optimal solutions exist. 7. The Munchies Cereal Company makes a cereal from several ingredients. Two of the ingredients, oats and rice, provide vitamins A and B. The company wants to know how many ounces of oats and rice it should include in each box of cereal to meet the minimum requirements of 48 milligrams of vitamin A and 12 milligrams of vitamin B while minimizing cost. An ounce of oats contributes 8 milligrams of vitamin A and 1 milligram of vitamin B, whereas an ounce of rice contributes Z06_TAYL4367_10_SE_Mod A.QXD A-46 1/9/09 1:07 AM Page A-46 Module A The Simplex Solution Method 6 milligrams of vitamin A and 2 milligrams of vitamin B. An ounce of oats costs $0.05, and an ounce of rice costs $0.03. Formulate a linear programming model for this problem and solve using the simplex method. 8. A company makes product 1 and product 2 from two resources. The linear programming model for determining the amounts of product 1 and 2 to produce (x1 and x2) is maximize Z = 8x1 + 2x2 (profit, $) subject to 4x1 + 5x2 … 20 (resource 1, lb.) 2x1 + 6x2 … 18 (resource 2, lb.) x1, x2 Ú 0 Solve this model using the simplex method. 9. A company produces two products that are processed on two assembly lines. Assembly line 1 has 100 available hours, and assembly line 2 has 42 available hours. Each product requires 10 hours of processing time on line 1, while on line 2 product 1 requires 7 hours and product 2 requires 3 hours. The profit for product 1 is $6 per unit, and the profit for product 2 is $4 per unit. Formulate a linear programming model for this problem and solve using the simplex method. 10. The Pinewood Furniture Company produces chairs and tables from two resources—labor and wood. The company has 80 hours of labor and 36 board feet of wood available each day. Demand for chairs is limited to 6 per day. Each chair requires 8 hours of labor and 2 board feet of wood to produce, while a table requires 10 hours of labor and 6 board feet of wood. The profit derived from each chair is $400 and from each table, $100. The company wants to determine the number of chairs and tables to produce each day to maximize profit. Formulate a linear programming model for this problem and solve using the simplex method. 11. The Crumb and Custard Bakery makes both coffee cakes and Danish in large pans. The main ingredients are flour and sugar. There are 25 pounds of flour and 16 pounds of sugar available and the demand for coffee cakes is 8. Five pounds of flour and 2 pounds of sugar are required to make one pan of coffee cake, and 5 pounds of flour and 4 pounds of sugar are required to make one pan of Danish. One pan of coffee cake has a profit of $1, and one pan of Danish has a profit of $5. Determine the number of pans of cake and Danish that the bakery must produce each day so that profit will be maximized. Formulate a linear programming model for this problem and solve using the simplex method. 12. The Kalo Fertilizer Company makes a fertilizer using two chemicals that provide nitrogen, phosphate, and potassium. A pound of ingredient 1 contributes 10 ounces of nitrogen and 6 ounces of phosphate, whereas a pound of ingredient 2 contributes 2 ounces of nitrogen, 6 ounces of phosphate, and 1 ounce of potassium. Ingredient 1 costs $3 per pound, and ingredient 2 costs $5 per pound. The company wants to know how many pounds of each chemical ingredient to put into a bag of fertilizer to meet minimum requirements of 20 ounces of nitrogen, 36 ounces of phosphate, and 2 ounces of potassium while minimizing cost. Formulate a linear programming model for this problem and solve using the simplex method. 13. Solve the following model using the simplex method: minimize Z = 0.06x1 + 0.10x2 subject to Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-47 Problems 4x1 + 3x2 Ú 3x1 + 6x2 Ú 5x1 + 2x2 Ú x1, x2 Ú A-47 12 12 10 0 14. The Copperfield Mining Company owns two mines, both of which produce three grades of ore— high, medium, and low. The company has a contract to supply a smelting company with at least 12 tons of high-grade ore, 8 tons of medium-grade ore, and 24 tons of low-grade ore. Each mine produces a certain amount of each type of ore each hour it is in operation. Mine 1 produces 6 tons of high-grade, 2 tons of medium-grade, and 4 tons of low-grade ore per hour. Mine 2 produces 2 tons of high-grade, 2 tons of medium-grade, and 12 tons of low-grade ore per hour. It costs $200 per hour to mine each ton of ore from mine 1, and it costs $160 per hour to mine a ton of ore from mine 2. The company wants to determine the number of hours it needs to operate each mine so that contractual obligations can be met at the lowest cost. Formulate a linear programming model for this problem and solve using the simplex method. 15. A marketing firm has contracted to do a survey on a political issue for a Spokane television station. The firm conducts interviews during the day and at night, by telephone and in person. Each hour an interviewer works at each type of interview results in an average number of interviews. In order to have a representative survey, the firm has determined that there must be at least 400 day interviews, 100 personal interviews, and 1,200 interviews overall. The company has developed the following linear programming model to determine the number of hours of telephone interviews during the day (x1), telephone interviews at night (x2), personal interviews during the day (x3), and personal interviews at night (x4) that should be conducted to minimize cost: minimize Z = 2x1 + 3x2 + 5x3 + 7x4 (cost, $) subject to 10x1 + 4x3 4x3 + 5x4 x1 + x2 + x3 + x4 x1, x2, x3, x4 Ú Ú Ú Ú 400 (day interviews) 100 (personal interviews) 1,200 (total interviews) 0 Solve this model using the simplex method. 16. A jewelry store makes both necklaces and bracelets from gold and platinum. The store has developed the following linear programming model for determining the number of necklaces and bracelets (x1 and x2) that it needs to make to maximize profit: maximize Z = 300x1 + 400x2 (profit, $) subject to 3x1 + 2x2 2x1 + 4x2 x2 x1, x2 … … … Ú 18 (gold, oz.) 20 (platinum, oz.) 4 (demand, bracelets) 0 Solve this model using the simplex method. 17. A sporting goods company makes baseballs and softballs on a daily basis from leather and yarn. The company has developed the following linear programming model for determining the number of baseballs and softballs to produce (x1 and x2) to maximize profits: Z06_TAYL4367_10_SE_Mod A.QXD A-48 1/9/09 1:07 AM Page A-48 Module A The Simplex Solution Method maximize Z = 5x1 + 4x2 (profit, $) subject to 0.3x1 + 0.5x2 … 150 (leather, ft.2) 10x1 + 4x2 … 2,000 (yarn, yd.) x1, x2 Ú 0 Solve this model using the simplex method. 18. A clothing shop makes suits and blazers. Three main resources are used: material, rack space, and labor. The shop has developed this linear programming model for determining the number of suits and blazers to make (x1 and x2) to maximize profits: maximize Z = 100x1 + 150x2 (profit, $) subject to 10x1 + 4x2 x1 + x2 10x1 + 20x2 x1, x2 … … … Ú 160 (material, yd.2) 20 (rack space) 300 (labor, hr.) 0 Solve this model using the simplex method. 19. Solve the following linear programming model using the simplex method: maximize Z = 100x1 + 20x2 + 60x3 subject to 3x1 + 5x2 2x1 + 2x2 + 2x3 x3 x1, x2, x3 … … … Ú 60 100 40 0 20. The following is a simplex tableau for a linear programming model: cj 2 0 1 1 2 -1 0 0 0 Quantity x1 x2 x3 s1 s2 s3 x2 s2 x1 10 20 10 0 0 1 1 0 0 1/4 -3>4 1 1/4 3/4 -1>2 0 1 0 0 -1>2 1/2 zj 30 1 2 3/2 0 0 1/2 0 0 -5>2 0 0 -1>2 Basic Variables cj - zj a. Is this a maximization or a minimization problem? Why? b. What is the solution given in this tableau? c. Write out the original objective function for the linear programming model, using only decision variables. d. How many constraints are in the linear programming model? e. Were any of the constraints originally equations? Why? f. What does s1 equal in this tableau? Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-49 Problems A-49 g. This solution is optimal. Are there multiple optimal solutions? Why? h. If there are multiple optimal solutions, identify the alternate solutions. 21. A wood products firm in Oregon plants three types of trees—white pines, spruce, and ponderosa pines—to produce pulp for paper products and wood for lumber. The company wants to plant enough acres of each type of tree to produce at least 27 tons of pulp and 30 tons of lumber. The company has developed the following linear programming model to determine the number of acres of white pines (x1), spruce (x2), and ponderosa pines (x3) to plant to minimize cost: minimize Z = 120x1 + 40x2 + 240x3 (cost, $) subject to 4x1 + x2 + 3x3 Ú 27 (pulp, tons) 2x1 + 6x2 + 3x3 Ú 30 (lumber, tons) x1, x2, x3 Ú 0 Solve this model using the simplex method. 22. A baby products firm produces a strained baby food containing liver and milk, each of which contribute protein and iron to the baby food. Each jar of baby food must have 36 milligrams of protein and 50 milligrams of iron. The company has developed the following linear programming model to determine the number of ounces of liver (x1) and milk (x2) to include in each jar of baby food to meet the requirements for protein and iron at the minimum cost: minimize Z = 0.05x1 + 0.10x2 (cost, $) subject to 6x1 + 2x2 Ú 36 (protein, mg) 5x1 + 5x2 Ú 50 (iron, mg) x1, x2 Ú 0 Solve this model using the simplex method. 23. Solve the linear programming model in Problem 22 graphically, and identify the points on the graph that correspond to each simplex tableau. 24. The Cookie Monster Store at South Acres Mall makes three types of cookies—chocolate chip, pecan chip, and pecan sandies. Three primary ingredients are chocolate chips, pecans, and sugar. The store has 120 pounds of chocolate chips, 40 pounds of pecans, and 300 pounds of sugar. The following linear programming model has been developed for determining the number of batches of chocolate chip cookies (x1), pecan chip cookies (x2), and pecan sandies (x3) to make to maximize profit: maximize Z = 10x1 + 12x2 + 7x3 (profit, $) subject to 20x1 + 15x2 + 10x3 10x1 + 5x2 x1 + 2x3 x1, x2, x3 Solve this model using the simplex method. … … … Ú 300 (sugar, lb.) 120 (chocolate chips, lb.) 40 (pecans, lb.) 0 Z06_TAYL4367_10_SE_Mod A.QXD A-50 1/9/09 1:07 AM Page A-50 Module A The Simplex Solution Method 25. The Eastern Iron and Steel Company makes nails, bolts, and washers from leftover steel and coats them with zinc. The company has 24 tons of steel and 30 tons of zinc. The following linear programming model has been developed for determining the number of batches of nails (x1), bolts (x2), and washers (x3) to produce to maximize profit: maximize Z = 6x1 + 2x2 + 12x3 (profit, $1,000s) subject to 4x1 + x2 + 3x3 … 24 (steel, tons) 2x1 + 6x2 + 3x3 … 30 (zinc, tons) x1, x2, x3 Ú 0 Solve this model using the simplex method. 26. Solve the following linear programming model using the simplex method: maximize Z = 100x1 + 75x2 + 90x3 + 95x4 subject to 3x1 + 2x2 4x3 + x4 200x1 + 250x3 100x1 + 200x4 x1, x2, x3, x4 … … … … Ú 40 25 2,000 2,200 0 27. Solve the following linear programming model using the simplex method: minimize Z = 20x1 + 16x2 subject to 3x1 + x2 x1 + x2 2x1 + 6x2 x1, x2 Ú Ú Ú Ú 6 4 12 0 28. Solve the linear programming model in Problem 27 graphically, and identify the points on the graph that correspond to each simplex tableau. 29. Transform the following linear programming model into proper form for solution by the simplex method: minimize Z = 8x1 + 2x2 + 7x3 subject to 2x1 + 6x2 + x3 3x2 + 4x3 4x1 + x2 + 2x3 x1 + 2x2 x1, x2, x3 = Ú … Ú Ú 30 60 50 20 0 30. Transform the following linear programming model into proper form for solution by the simplex method: Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-51 Problems A-51 minimize Z = 40x1 + 55x2 + 30x3 subject to x1 + 2x2 + 3x3 2x1 + x2 + x3 x1 + 3x2 + x3 5x2 + 3x3 x1, x2, x3 … = Ú Ú Ú 60 40 50 100 0 31. A manufacturing firm produces two products using labor and material. The company has a contract to produce 5 of product 1 and 12 of product 2. The company has developed the following linear programming model to determine the number of units of product 1 (x1) and product 2 (x2) to produce to maximize profit: maximize Z = 40x1 + 60x2 (profit, $) subject to x1 + 2x2 4x1 + 4x2 x1 x2 x1, x2 … … Ú Ú Ú 30 (material, lb.) 72 (labor, hr.) 5 (contract, product 1) 12 (contract, product 2) 0 Solve this model using the simplex method. 32. A custom tailor makes pants and jackets from imported Irish wool cloth. To get any cloth at all, the tailor must purchase at least 25 square feet each week. Each pair of pants and each jacket requires 5 square feet of material. The tailor has 16 hours available each week to make pants and jackets. The demand for pants is never more than 5 pairs per week. The tailor has developed the following linear programming model to determine the number of pants (x1) and jackets (x2) to make each week to maximize profit: maximize Z = x1 + 5x2 (profit, $100s) subject to 5x1 + 5x2 2x1 + 4x2 x1 x1, x2 Ú … … Ú 25 (wool, ft.2) 16 (labor, hr.) 5 (demand, pants) 0 Solve this model using the simplex method. 33. A sawmill in Tennessee produces cherry and oak boards for a large furniture manufacturer. Each month the sawmill must deliver at least 5 tons of wood to the manufacturer. It takes the sawmill 3 days to produce a ton of cherry and 2 days to produce a ton of oak, and the sawmill can allocate 18 days out of a month for this contract. The sawmill can get enough cherry to make 4 tons of wood and enough oak to make 7 tons of wood. The sawmill owner has developed the following linear programming model to determine the number of tons of cherry (x1) and oak (x2) to produce to minimize cost: Z06_TAYL4367_10_SE_Mod A.QXD A-52 1/9/09 1:07 AM Page A-52 Module A The Simplex Solution Method minimize Z = 3x1 + 6x2 (cost, $) subject to 3x1 + 2x2 x1 + x2 x1 x2 x1, x2 … Ú … … Ú 18 (production time, days) 5 (contract, tons) 4 (cherry, tons) 7 (oak, tons) 0 Solve this model using the simplex method. 34. Solve the following linear programming model using the simplex method: maximize Z = 10x1 + 5x2 subject to 2x1 + x2 x2 x1 + 4x2 x1, x2 Ú = … Ú 10 4 20 0 35. Solve the following linear programming problem using the simplex method: maximize Z = x1 + 2x2 - x3 subject to 4x2 + x3 x1 - x2 2x1 + 4x2 + 3x3 x1, x2, x3 … … … Ú 40 20 60 0 36. Solve the following linear programming problem using the simplex method: maximize Z = x1 + 2x2 + 2x3 subject to x1 + x2 + 2x3 2x1 + x2 + 5x3 x1 + x2 - x3 x1, x2, x3 … = Ú Ú 12 20 8 0 37. A farmer has a 40-acre farm in Georgia. The farmer is trying to determine how many acres of corn, peanuts, and cotton to plant. Each crop requires labor, fertilizer, and insecticide. The farmer has developed the following linear programming model to determine the number of acres of corn (x1), peanuts (x2), and cotton (x3) to plant to maximize profit: maximize Z = 400x1 + 350x2 + 450x3 (profit, $) subject to 2x1 + 3x2 + 2x3 … 120 (labor, hr.) 4x1 + 3x2 + x3 … 160 (fertilizer, tons) Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-53 Problems A-53 3x1 + 2x2 + 4x3 … 100 (insecticide, tons) x1 + x2 + x3 … 40 (acres) x1, x2, x3 Ú 0 Solve this model using the simplex method. 38. Solve the following linear programming model (a) graphically and (b) using the simplex method: maximize Z = 3x1 + 2x2 subject to x1 + x2 … 1 x1 + x2 Ú 2 x1, x2 Ú 0 39. Solve the following linear programming model (a) graphically and (b) using the simplex method: maximize Z = x1 + x2 subject to x1 - x2 Ú -1 -x1 + 2x2 … 4 x1, x2 Ú 0 40. Solve the following linear programming model using the simplex method: maximize Z = 7x1 + 5x2 + 5x3 subject to x1 + x2 + x3 … 2x1 + x2 + x3 … x1 + x2 … x3 … x1, x2, x3 Ú 25 40 25 6 0 41. Solve the following linear programming model using the simplex method: minimize Z = 15x1 + 25x2 subject to 3x1 + 4x2 2x1 + x2 3x1 + 2x2 x1, x2 Ú Ú … Ú 12 6 9 0 42. The Old English Metal Crafters Company makes brass trays and buckets. The number of trays (x1) and buckets (x2) that can be produced daily is constrained by the availability of brass and labor, as reflected in the following linear programming model: Z06_TAYL4367_10_SE_Mod A.QXD A-54 1/9/09 1:07 AM Page A-54 Module A The Simplex Solution Method maximize Z = 6x1 + 10x2 (profit, $) subject to x1 + 4x2 … 90 (brass, lb.) 2x1 + 2x2 … 60 (labor, hr.) x1, x2 Ú 0 The final optimal simplex tableau for this model is as follows: Basic Variables cj 10 6 6 10 0 0 Quantity x1 x2 s1 s2 x2 x1 20 10 0 1 1 0 1>3 -1>3 -1>6 2>3 zj 260 6 10 4>3 7>3 0 0 -4>3 -7>3 cj - zj a. b. c. d. e. Formulate the dual of this model. Define the dual variables and indicate their value. Determine the optimal ranges for c1 and c2. Determine the feasible ranges for q1 (pounds of brass) and q2 (labor hours). What is the maximum price the company would be willing to pay for additional labor hours, and how many hours could be purchased at that price? 43. The Southwest Foods Company produces two brands of chili—Razorback and Longhorn—from several ingredients, including chili beans and ground beef. The number of 100-gallon batches of Razorback chili (x1) and Longhorn chili (x2) that can be produced daily is constrained by the availability of chili beans and ground beef, as shown in the following linear programming model: maximize Z = 200x1 + 300x2 (profit, $) subject to 10x1 + 50x2 … 500 (chili beans, lb.) 34x1 + 20x2 … 800 (ground beef, lb.) x1, x2 Ú 0 The final optimal simplex tableau for this model is as follows: cj 300 200 Basic Variables Quantity 200 300 0 0 x1 x2 s1 s2 x2 x1 6 20 0 1 1 0 17/750 -1>75 -1>150 1/30 zj 5,800 200 300 310/75 70/15 0 0 -310>75 -70>15 cj - zj Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-55 Problems A-55 a. Formulate the dual of this model and indicate what the dual variables equal. b. What profit for Razorback chili will result in no production of Longhorn chili? What will the new optimal solution values be? c. Determine what the effect will be of changing the amount of beans in Razorback chili from 10 pounds per batch to 15 pounds per batch. d. Determine the optimal ranges for c1 and c2. e. Determine the feasible ranges for q1 (pounds of beans) and q2 (pounds of ground beef). f. What is the maximum price the company would be willing to pay for additional pounds of chili beans, and how many pounds could be purchased at that price? g. If the company could secure an additional 100 pounds of only one of the ingredients, beans or ground beef, which should it be? h. If the company changed the selling price of Longhorn chili so that the profit was $400 instead of $300, would the optimal solution be affected? 44. The Agrimaster Company produces two kinds of fertilizer spreaders—regular and cyclone. Each spreader must undergo two production processes. Letting x1 = the number of regular spreaders produced and x2 = the number of cyclone spreaders produced, the problem can be formulated as follows: maximize Z = 9x1 + 7x2 (profit, $) subject to 12x1 + 4x2 … 60 (process 1, production hr.) 4x1 + 8x2 … 40 (process 2, production hr.) x1, x2 Ú 0 The final optimal simplex tableau for this problem is as follows: 9 7 0 0 Quantity x1 x2 s1 s2 cj Basic Variables 9 7 x1 x2 4 3 1 0 0 1 1>10 -1>20 -1>20 3>20 zj 57 9 7 11>20 12>20 0 0 -11>20 -12>20 cj - zj a. b. c. d. Formulate the dual for this problem. Define the dual variables and indicate their values. Determine the optimal ranges for c1 and c2. Determine the feasible ranges for q1 and q2 (production hours for processes 1 and 2, respectively). e. What is the maximum price the Agrimaster Company would be willing to pay for additional hours of process 1 production time, and how many hours could be purchased at that price? Z06_TAYL4367_10_SE_Mod A.QXD A-56 1/9/09 1:07 AM Page A-56 Module A The Simplex Solution Method 45. The Stratford House Furniture Company makes two kinds of tables—end tables (x1) and coffee tables (x2). The manufacturer is restricted by material and labor constraints, as shown in the following linear programming formulation: maximize Z = 200x1 + 300x2 (profit, $) subject to 2x1 + 5x2 … 180 (labor, hr.) 3x1 + 3x2 … 135 (wood, bd. ft.) x1, x2 Ú 0 The final optimal simplex tableau for this problem is as follows: Basic Variables cj 300 200 200 300 0 0 x1 x2 s1 s2 Quantity x2 x1 30 15 0 1 1 0 1>3 -1>3 -2>9 5>9 zj 12,000 200 300 100>3 400>9 0 0 -100>3 -400>9 cj - zj a. Formulate the dual for this problem. b. Define the dual variables and indicate their values. c. What profit for coffee tables will result in no production of end tables, and what will the new optimal solution values be? d. What will be the effect on the optimal solution if the available wood is increased from 135 to 165 board feet? e. Determine the optimal ranges for c1 and c2. f. Determine the feasible ranges for q1 (labor hours) and q2 (board feet of wood). g. What is the maximum price the Stratford House Furniture Company would be willing to pay for additional wood, and how many board feet of wood could be purchased at that price? h. If the furniture company wanted to secure additional units of only one of the resources, labor or wood, which should it be? 46. A manufacturing firm produces electric motors for washing machines and vacuum cleaners. The firm has resource constraints for production time, steel, and wire. The linear programming model for determining the number of washing machine motors (x1) and vacuum cleaner motors (x2) to produce has been formulated as follows: maximize Z = 70x1 + 80x2 (profit, $) subject to 2x1 + x2 x1 + x2 x1 + 2x2 x1, x2 … … … Ú 19 (production, hr.) 14 (steel, lb.) 20 (wire, ft.) 0 The final optimal simplex tableau for this model is as follows: Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-57 Problems Basic Variables cj 70 0 80 Quantity 70 80 0 0 0 x1 x2 s1 s2 s3 x1 s2 x2 6 1 7 1 0 0 0 0 1 2>3 -1>3 -1>3 0 1 0 -1>3 -1>3 2>3 zj 980 70 80 20 0 30 0 0 -20 0 -30 cj - zj A-57 a. b. c. d. Formulate the dual for this problem. What do the dual variables equal, and what do they mean? Determine the optimal ranges for c1 and c2. Determine the feasible ranges for q1 (production hours), q2 (pounds of steel), and q3 (feet of wire). e. Managers at the firm have determined that the firm can purchase a new production machine that will increase available production time from 19 to 25 hours. Will this change affect the optimal solution? 47. A manufacturer produces products 1 and 2, for which profits are $9 and $12, respectively. Each product must undergo two production processes that have labor constraints. There are also material constraints and storage limitations. The linear programming model for determining the number of product 1 to produce (x1) and the number of product 2 to product (x2) is given as follows: maximize Z = 9x1 + 12x2 (profit, $) subject to 4x1 + 8x2 … 5x1 + 5x2 … 15x1 + 8x2 … x1 … x2 … x1, x2 Ú 64 (process 1, labor hr.) 50 (process 2, labor hr.) 120 (material, lb.) 7 (storage space, ft.2) 7 (storage space, ft.2) 0 The final optimal simplex tableau for this model is as follows: cj 9 0 0 0 12 9 12 0 0 0 0 0 Quantity x1 x2 s1 s2 s3 s4 s5 x1 s5 s3 s4 x2 4 1 12 3 6 1 0 0 0 0 0 0 0 0 1 -1>4 -1>4 7>4 1>4 1>4 2>5 1>5 -22>5 -2>5 -1>5 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 zj 108 9 12 3>4 6>5 0 0 0 0 0 -3>4 -6>5 0 0 0 Basic Variables cj - zj Z06_TAYL4367_10_SE_Mod A.QXD A-58 1/9/09 1:07 AM Page A-58 Module A The Simplex Solution Method a. b. c. d. e. Formulate the dual for this problem. What do the dual variables equal, and what does this dual solution mean? Determine the optimal ranges for c1 and c2. Determine the range for q1 (process 1, labor hr.). Due to a problem with a supplier, only 100 pounds of material will be available for production instead of 120 pounds. Will this affect the optimal solution mix? 48. A manufacturer produces products 1, 2, and 3 daily. The three products are processed through three production operations that have time constraints, and the finished products are then stored. The following linear programming model has been formulated to determine the number of product 1 (x1), product 2 (x2), and product 3 (x3) to produce: maximize Z = 40x1 + 35x2 + 45x3 (profit, $) subject to 2x1 + 3x2 + 2x3 4x1 + 3x2 + x3 3x1 + 2x2 + 4x3 x1 + x2 + x3 x1, x2, x3 … … … … Ú 120 (operation 1, hr.) 160 (operation 2, hr.) 100 (operation 3, hr.) 40 (storage, ft.2) 0 The final optimal simplex tableau for this model is as follows: cj 0 0 45 35 Basic Variables Quantity 40 35 45 0 0 0 0 x1 x2 x3 s1 s2 s3 s4 s1 s2 x3 x2 10 60 10 30 -1>2 2 1/2 1/2 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1>2 1 1/2 -1>2 -4 -5 -1 2 zj 1,500 40 35 45 0 0 5 25 0 0 0 0 0 -5 -25 cj - zj a. Formulate the dual for this problem. b. What do the dual variables equal, and what do they mean? c. How does the fact that this problem has multiple optimum solutions affect the interpretation of the dual solution values? d. Determine the optimal range for c2. e. Determine the feasible range for q4 (square feet of storage space). f. What is the maximum price the manufacturer would be willing to pay to lease additional storage space, and how many additional square feet could be leased at that price? 49. A school dietitian is attempting to plan a lunch menu that will minimize cost and meet certain minimum dietary requirements. The two staples in the meal are meat and potatoes, which provide protein, iron, and carbohydrates. The following linear programming model has been formulated to determine how many ounces of meat (x1) and ounces of potatoes (x2) to put in a lunch: minimize Z = 0.03x1 + 0.02x2 (cost, $) Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-59 Problems A-59 subject to 4x1 + 5x2 Ú 12x1 + 3x2 Ú 3x1 + 2x2 Ú x1, x2 Ú 20 (protein, mg) 30 (iron, mg) 12 (carbohydrates, mg) 0 The final optimal simplex tableau for this model is as follows: Basic Variables cj 0.02 0.03 0 0.03 0.02 0 0 0 x1 x2 s1 s2 s3 Quantity x2 x1 s1 3.6 1.6 4.4 0 1 0 1 0 0 0 0 1 0.20 -0.13 0.47 -0.80 0.20 -3.2 zj 0.12 0.03 0.02 0 0 -0.01 0 0 0 0 -0.01 zj - cj a. b. c. d. Formulate the dual for this problem. What do the dual variables equal, and what do they mean? Determine the optimal ranges for c1 and c2. Determine the ranges for q1, q2, and q3 (milligrams of protein, iron, and carbohydrates, respectively). e. What would it be worth for the school dietitian to be able to reduce the requirement for carbohydrates, and what is the smallest number of milligrams of carbohydrates that would be required at that value? 50. The Overnight Food Processing Company prepares sandwiches (among other processed food items) for vending machines, markets, and business canteens around the city. The sandwiches are made at night and delivered early the following morning. Any sandwiches not purchased during the previous day are thrown away. Three kinds of sandwiches are made each night, a basic cheese sandwich (x1), a ham salad sandwich (x2), and a pimento cheese sandwich (x3). The profits are $1.25, $2.00, and $1.75, respectively. It takes 0.5 minutes to make a cheese sandwich, 1.2 minutes to make a ham salad sandwich, and 0.8 minutes to make a pimento cheese sandwich. The company has 20 hours of labor available to produce the sandwiches each night. The demand for ham salad sandwiches is at least as great as the demand for the two types of cheese sandwiches combined. However, the company has only enough ham salad to produce 500 sandwiches per night. The company has formulated the following linear programming model in order to determine how many of each type of sandwich to make to maximize profit: maximize Z = $1.25x1 + 2.00x2 + 1.75x3 subject to 0.5x1 + 1.2x2 + 0.8x3 x1 + x3 x2 x1, x2, x3 … … … Ú 1,200 (production time, min.) x2 (demand for ham salad sandwiches) 500 (ham salad sandwich limit) 0 Z06_TAYL4367_10_SE_Mod A.QXD A-60 1/9/09 1:07 AM Page A-60 Module A The Simplex Solution Method The optimal simplex tableau follows: Basic Variables cj 0 1.75 2.00 Quantity 2.00 1.75 0 0 0 x1 x2 x3 s1 s2 s3 -0.8 1 0 s1 x3 x2 200 500 500 -0.3 1 0 0 0 1 0 1 0 1 0 0 zj 1,875 1.75 2.00 1.75 0 1.75 3.75 -.5 0 0 0 -1.75 -3.75 cj - zj a. b. c. d. 1.25 -2 1 1 Formulate the dual for this problem and define the dual variables. Determine the optimal ranges for c1, c2, and c3. Determine the range for q3 (ham salad sandwiches). Overnight Foods is considering advertising its cheese sandwiches to increase demand. The company estimates that spending $100 on some leaflets that would be packaged with all other sandwiches would increase the demand for both kinds of cheese sandwiches by 200. Should it make this expenditure? 51. Given the linear programming model, minimize Z = 3x1 + 5x2 + 2x3 subject to x1 + x2 - 3x3 x1 + 2x2 -x1 + x2 x1, x2, x3 Ú Ú Ú Ú 35 50 25 0 and its optimal simplex tableau, cj 0 3 5 3 5 2 0 0 0 Quantity x1 x2 x3 s1 s2 s3 s2 x1 x2 15 5 30 0 1 0 0 0 1 -4 -2 -1 -3>2 -1>2 -1>2 1 0 0 -1>2 1>2 -1>2 zj 165 3 5 -11 -4 0 -1 0 0 -13 -4 0 -1 Basic Variables zj - cj Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-61 Problems A-61 a. Find the optimal ranges for all cj values. b. Find the feasible ranges for all qi values. 52. The Sunshine Food Processing Company produces three canned fruit products—mixed fruit (x1), fruit cocktail (x2), and fruit delight (x3). The main ingredients in each product are pears and peaches. Each product is produced in lots and must undergo three processes—mixing, canning, and packaging. The resource requirements for each product and each process are shown in the following linear programming formulation: maximize Z = 10x1 + 6x2 + 8x3 (profit, $) subject to 20x1 + 10x2 + 16x3 10x1 + 20x2 + 16x3 x1 + 2x2 + 2x3 x1 + x2 + x3 2x1 + x2 + x3 x1, x2, x3 … … … … … Ú 320 (pears, lb.) 400 (peaches, lb.) 43 (mixing, hr.) 60 (canning, hr.) 40 (packaging, hr.) 0 The optimal simplex tableau is as follows: cj 10 6 0 0 0 10 6 8 0 0 0 0 0 Quantity x1 x2 x3 s1 s2 s3 s4 s5 x1 x2 s3 s4 s5 8 16 3 36 8 1 0 0 0 0 0 1 0 0 0 8/15 8/15 2/5 -1>15 -3>5 1/15 -1>30 0 -1>30 -1 1/30 1/15 -1>10 -1>30 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 zj 176 10 6 128/15 7/15 1/15 0 0 0 0 0 -8>15 -7>15 -1>15 0 0 0 Basic Variables cj - zj a. What is the maximum price the company would be willing to pay for additional pears? How much could be purchased at that price? b. What is the marginal value of peaches? Over what range is this price valid? c. The company can purchase a new mixing machine that would increase the available mixing time from 43 to 60 hours. Would this affect the optimal solution? d. The company can also purchase a new packaging machine that would increase the available packaging time from 40 to 50 hours. Would this affect the optimal solution? e. If the manager was to attempt to secure additional units of only one of the resources, which should it be? 53. The Evergreen Products Firm produces three types of pressed paneling from pine and spruce. The three types of paneling are Western (x1), Old English (x2), and Colonial (x3). Each sheet must be cut and pressed. The resource requirements are given in the following linear programming formulation: Z06_TAYL4367_10_SE_Mod A.QXD A-62 1/9/09 1:07 AM Page A-62 Module A The Simplex Solution Method maximize Z = 4x1 + 10x2 + 8x3 (profit, $) subject to 5x1 + 4x2 + 4x3 2x1 + 5x2 + 2x3 x1 + x2 + 2x3 2x1 + 4x2 + 2x3 x1, x2, x3 … … … … Ú 200 (pine, lb.) 160 (spruce, lb.) 50 (cutting, hr.) 80 (pressing, hr.) 0 The optimal simplex tableau is as follows: cj 0 0 8 10 4 10 8 0 0 0 0 Quantity x1 x2 x3 s1 s2 s3 s4 s1 s2 x3 x2 80 70 20 10 7>3 -1>3 1>3 1>3 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 -4>3 1>3 2>3 -1>3 -2>3 -4>3 -1>6 1/3 zj 260 6 10 8 0 0 2 2 -2 0 0 0 0 -2 -2 Basic Variables cj - zj a. What is the marginal value of an additional pound of spruce? Over what range is this value valid? b. What is the marginal value of an additional hour of cutting? Over what range is this value valid? c. Given a choice between securing more cutting hours or more pressing hours, which should management select? Why? d. If the amount of spruce available to the firm was decreased from 160 to 100 pounds, would this reduction affect the solution? e. What unit profit would have to be made from Western paneling before management would consider producing it? f. Management is considering changing the profit of Colonial paneling from $8 to $13. Would this change affect the solution? 54. A manufacturing firm produces four products. Each product requires material and machine processing. The linear programming model formulated to determine the number of product 1 (x1), product 2 (x2), product 3 (x3), and product 4 (x4) to produce is as follows: maximize Z = 2x1 + 8x2 + 10x3 + 6x4 (profit, $) subject to 2x1 + x2 + 4x3 + 2x4 … 200 (material, lb.) x1 + 2x2 + 2x3 + x4 … 160 (machine processing, hr.) x1, x2, x3, x4 Ú 0 Z06_TAYL4367_10_SE_Mod A.QXD 1/9/09 1:07 AM Page A-63 Problems A-63 The optimal simplex tableau is as follows: cj 6 8 Basic Variables Quantity 2 8 10 6 0 0 x1 x2 x3 x4 s1 s2 x4 x2 80 40 1 0 0 1 2 0 1 0 2/3 -1>3 -1>3 2/3 zj 800 6 8 12 6 4/3 10/3 -4 0 -2 0 -4>3 -10>3 cj - zj What is the marginal value of an additional pound of material? Over what range is this value valid?