Simplex Method Steps
Simplex Method Steps
An Overview of the Simplex Method Standard Form Tableau Form Setting Up the Initial Simplex Tableau Improving the Solution Calculating the Next Tableau Solving a Minimization Problem Special Cases
Slide 1
Formulate Problem as LP
Slide 2
A Minimization Problem
MIN 2x1 - 3x2 - 4x3 s. t. x1 + x2 + x3 < 30 2x1 + x2 + 3x3 > 60 x1 - x2 + 2x3 = 20
Slide 3
Standard Form
An LP is in standard form when: All variables are non-negative All constraints are equalities Putting an LP formulation into standard form involves: Adding slack variables to < constraints Subtracting surplus variables from > constraints.
Slide 4
s. t.
x1 + x2 + x3 + s1
2x1 + x2 + 3x3 x1 - x2 + 2x3
= 30
- s2 = 60 = 20
Slide 5
Tableau Form
A set of equations is in tableau form if for each equation: its right hand side (RHS) is non-negative, and there is a basic variable. (A basic variable for an equation is a variable whose coefficient in the equation is +1 and whose coefficient in all other equations of the problem is 0.) To generate an initial tableau form: An artificial variable must be added to each constraint that does not have a basic variable.
Slide 6
s. t.
x1 + x2 + x3 + s1
2x1 + x2 + 3x3 x1 - x2 + 2x3 x1, x2, x3, s1, s2, a2, a3 > 0 - s2 + a2
= 30
= 60 + a3 = 20
Slide 7
Simplex Tableau
The simplex tableau is a convenient means for performing the calculations required by the simplex method.
Slide 8
Step 1: If the problem is a minimization problem, multiply the objective function by -1. Step 2: If the problem formulation contains any constraints with negative right-hand sides, multiply each constraint by -1. Step 3: Add a slack variable to each < constraint.
Step 4: Subtract a surplus variable and add an artificial variable to each > constraint.
Slide 9
Step 5: Add an artificial variable to each = constraint. Step 6: Set each slack and surplus variable's coefficient in the objective function equal to zero. Step 7: Set each artificial variable's coefficient in the objective function equal to -M, where M is a very large number. Step 8: Each slack and artificial variable becomes one of the basic variables in the initial basic feasible solution.
Slide 10
Simplex Method
Step 1: Determine Entering Variable Identify the variable with the most positive value in the cj - zj row. (The entering column is called the pivot column.) Step 2: Determine Leaving Variable For each positive number in the entering column, compute the ratio of the right-hand side values divided by these entering column values. If there are no positive values in the entering column, STOP; the problem is unbounded. Otherwise, select the variable with the minimal ratio. (The leaving row is called the pivot row.)
Slide 11
Simplex Method
Step 3: Generate Next Tableau Divide the pivot row by the pivot element (the entry at the intersection of the pivot row and pivot column) to get a new row. We denote this new row as (row *). Replace each non-pivot row i with: [new row i] = [current row i] - [(aij) x (row *)], where aij is the value in entering column j of row i
Slide 12
Simplex Method
Step 4: Calculate zj Row for New Tableau For each column j, multiply the objective function coefficients of the basic variables by the corresponding numbers in column j and sum them.
Slide 13
Simplex Method
Step 5: Calculate cj - zj Row for New Tableau For each column j, subtract the zj row from the cj row. If none of the values in the cj - zj row are positive, GO TO STEP 1. If there is an artificial variable in the basis with a positive value, the problem is infeasible. STOP. Otherwise, an optimal solution has been found. The current values of the basic variables are optimal. The optimal values of the non-basic variables are all zero. If any non-basic variable's cj - zj value is 0, alternate optimal solutions might exist. STOP.
Slide 14
s.t.
2x1 + 3x2 + 4x3 < 50 x1 - x2 x3 > 0 x2 - 1.5x3 > 0 x1, x2, x3 > 0
Slide 15
Writing the Problem in Tableau Form We can avoid introducing artificial variables to the second and third constraints by multiplying each by -1 (making them < constraints). Thus, slack variables s1, s2, and s3 are added to the three constraints.
Max s.t. 12x1 + 18x2 + 10x3 + 0s1 + 0s2 + 0s3 2x1 + 3x2 + 4x3 + s1 = 50 - x1 + x2 + x3 + s2 = 0 x2 + 1.5x3 + s3 = 0 x1, x2, x3, s1, s2, s3 > 0
Slide 16
Basis cB 12 18 10 0 0 0
s1 s2 s3 0 0 0 2 3 4 1 0 0 -1 1 1 0 1 0 0 -1 1.5 0 0 1 0 0 0 12 18 10 0 0 0 0 0 0 50 0 (* row) 0 0
zj cj - zj
Slide 17
Iteration 1 Step 1: Determine the Entering Variable The most positive cj - zj = 18. Thus x2 is the entering variable. Step 2: Determine the Leaving Variable Take the ratio between the right hand side and positive numbers in the x2 column: 50/3 = 16 2/3 0/1 = 0 minimum s2 is the leaving variable and the 1 is the pivot element.
Slide 18
Iteration 1 (continued) Step 3: Generate New Tableau Divide the second row by 1, the pivot element. Call the "new" (in this case, unchanged) row the "* row". Subtract 3 x (* row) from row 1. Subtract -1 x (* row) from row 3. New rows 1, 2, and 3 are shown in the upcoming tableau.
Slide 19
Iteration 1 (continued) Step 4: Calculate zj Row for New Tableau The new zj row values are obtained by multiplying the cB column by each column, element by element and summing. For example, z1 = 5(0) + -1(18) + -1(0) = -18.
Slide 20
Iteration 1 (continued) Step 5: Calculate cj - zj Row for New Tableau The new cj-zj row values are obtained by subtracting zj value in a column from the cj value in the same column. For example, c1-z1 = 12 - (-18) = 30.
Slide 21
Basis cB 12 18 10 s1 0 x2 18 s3 0 zj cj - zj
Slide 22
Iteration 2 Step 1: Determine the Entering Variable The most positive cj - zj = 30. x1 is the entering variable. Step 2: Determine the Leaving Variable Take the ratio between the right hand side and positive numbers in the x1 column: 10/5 = 2 minimum There are no ratios for the second and third rows because their column elements (-1) are negative. Thus, s1 (corresponding to row 1) is the leaving variable and 5 is the pivot element.
Slide 23
Iteration 2 (continued) Step 3: Generate New Tableau Divide row 1 by 5, the pivot element. (Call this new row 1 the "* row"). Subtract (-1) x (* row) from the second row. Subtract (-1) x (* row) from the third row. Step 4: Calculate zj Row for New Tableau The new zj row values are obtained by multiplying the cB column by each column, element by element and summing. For example, z3 = .2(12) + 1.2(18) + .2(0) = 24.
Slide 24
Iteration 2 (continued) Step 5: Calculate cj - zj Row for New Tableau The new cj-zj row values are obtained by subtracting zj value in a column from the cj value in the same column. For example, c3-z3 = 10 - (24) = -14.
Since there are no positive numbers in the cj - zj row, this tableau is optimal. The optimal solution is: x1 = 10; x2 = 10; x3 = 0; s1 = 0; s2 = 0 s3 = 10, and the optimal value of the objective function is 300.
Slide 25
Basis cB 12 18 10 x1 x2 s3 12 18 0 1 0 0
zj cj - zj
12 18 24 6 0 0 -14 -6
Slide 26
Special Cases
Slide 27
Infeasibility
Infeasibility is detected in the simplex method when an artificial variable remains positive in the final tableau.
Slide 28
Example: Infeasibility
LP Formulation
MAX 2x1 + 6x2
s. t.
Slide 29
Example: Infeasibility
Final Tableau
x1 Basis x1 a2 CB 2 -M 2 1 0 x2 6 3/4 -1/2 s1 0 1/4 -1/2 s2 0 0 -1 a2 -M 0 1 3 2
zj
cj - zj
-M -2M +6
0
Slide 30
Example: Infeasibility
In the previous slide we see that the tableau is the final tableau because all cj - zj < 0. However, an artificial variable is still positive, so the problem is infeasible.
Slide 31
Unboundedness
A linear program has an unbounded solution if all entries in an entering column are non-positive.
Slide 32
Example: Unboundedness
LP Formulation
MAX 2x1 + 6x2
s. t.
Slide 33
Example: Unboundedness
Final Tableau
x1 x2 s1 s2
Basis
x2 s1
cB
4 0
3
3 2
4
1 0
0
0 1
0
-1 -1 8 3
zj
cj - zj
12
-9
4
0
0
0
-4
4
32
Slide 34
Example: Unboundedness
In the previous slide we see that c4 - z4 = 4 (is positive), but its column is all non-positive. This indicates that the problem is unbounded.
Slide 35