Unformatted text preview: The Simplex algorithm Abstract: In this lecture we discuss the computational aspects of the Simplex algorithm. We shall see how a LPP is put into a simplex tableau. Starting from a BFS, we explain how to proceed step by step till we reach the optimal solution. The Mathematics behind the method (algorithm) will be seen only later. We illustrate the Simplex method by examples. Example Consider the LPP Maximize z = 8 x1 + 9 x2 Subject to the constraints 2 x1 +3 x2 ≤50 2 x1 +6 x2 ≤80 3 x1 +3 x2 ≤70 x1 , x2 ≥0 Introducing slack variables, the LPP is same as Maximize z = 8 x1 + 9 x2 + 0 s1 + 0 s2 + 0 s3 subject to the constraints 2 x1 +3 x2 + s1 2 x1 + 6 x2 3 x1 +3 x2 + s2 =50 =80 (*) + s3 =70 x1 , x2 , s1 , s2 , s3 ≥0 We see that if we take x1, x2 as nonbasic variables, a BFS can be got immediately as (0,0, 50,80,70). Remember the first two components refer to x1, x2 and the last three components refer to s1, s2, s3. This is possible because in the LHS of the constraint equations (*) the coefficients of the basic variables s1, s2, s3 form an Identity matrix (of size 3 x 3). This is the first thing to be had to start the simplex method: the coefficients of the starting basic variables in the constraint equations form an identity matrix so that we can read out the starting BFS. Next we put the objective function and the constraint equations in a table (usually referred to as a Simplex tableau). For this we write the objective function also as an equation: z − 8 x1 − 9 x2 + 0 s1 + 0 s2 + 0 s3 = 0 Simplex tableau (Starting tableau)
Basic z x1 x2 s1 s2 s3 Solution z s1 s2 s3 1 0 0 0 8 2 2 3 9 3 6 3 0 1 0 0 0 0 1 0 0 0 0 1 0 50 80 70 We note that the zrow is the objective function row. The remaining 3 rows are the basic variable rows. Each row corresponds to a basic variable; the leftmost variable denotes the basic variable corresponding to that row. Except for the legends (the topmost row and the leftmost column), all the other 4 rows are the objective function row and the constraint equations. Notice that in the objective function row, the coefficients of the basic variables are zero. This is the second requirement to start the simplex algorithm. Also we note that in each column corresponding to a basic variable, only that basic variable has a nonzero coefficient, namely 1, and all the other basic variables have zero coefficients. We see at present, the objective function, z, has value zero. We now seek to make one of the nonbasic variables as basic (and so) one of the basic variables will become nonbasic (that is will drop down to zero) and the nonbasic variable that will become basic is chosen such that the objective function will “improve”: i.e. in a maximization problem it will increase and in a minimization problem it will decrease. The nonbasic variable that will become basic is referred to as “entering” variable and the basic variable that will become nonbasic is referred to as “leaving” variable. Criterion for “entering” variable: (Optimality Condition) Choose that variable as the “entering” variable which has the most –ve coefficient in the zrow in case it is a maximization problem (as the variable which has the most +ve coefficient in the zrow in case it is a minimization problem). (Break the ties arbitrarily.) Criterion for “leaving” variable (Feasibilty Condition) Let bi be the RHS of the ith row. Let aij be the coefficient of the entering variable xj in the ith row. The following “minimum ratio test” decides the leaving variable: Choose xk as the leaving variable where k is given as that row index i for which the ratio bi : aij >0 is least. aij (Break the ties arbitrarily.) The entering variable column is called the pivot column. The leaving variable row is called the pivot row. The coefficient in the intersection of the two is referred to as the pivot element. Now we apply elementary row operations to modify the simplex tableau so that the pivot column has 1 at the pivot element and zero in all other places. We say one iteration is over and the new basic feasible solution and the new objective function value can be read from the new tableau. We illustrate by an example. The elementary Row operations are as follows: New pivot row = old pivot row ÷ pivot element New z row = old z row – (coefficient of the entering variable in old z row * New pivot row) ♦ Any other new row = corresponding old row – (old coefficient of the entering variable in that row * New pivot row) ♦ We shall also change the legend of the new pivot row only as the entering variable. Simplex tableau (Starting tableau) ↓ Enters
Basic z z s1 s2 s3 1 0 0 0 x1 8 2 2 3 x2 9 3 6 3 s1 0 1 0 0 s2 0 0 1 0 s3 0 0 0 1 Solution 0 50 80 70 Leaves Pivot element Performing the elementary Row operations, we get the new Simplex tableau below ↓ Enters
Basic z z s1 x2 s3 1 0 0 0 x1 5 1 1/3 2 x2 0 0 1 0 s1 0 1 0 0 s2 3/2 s3 0 Solution 120 10 40/3 30 1/2 0 1/6 0 1/2 1 Leaves Pivot element Performing the elementary Row operations, we get the new Simplex tableau below ↓ Enters
Basic z z x1 x2 s3 1 0 0 0 x1 0 1 0 0 x2 0 0 1 0 s1 5 1 s2 1 s3 0 Solution 170 10 10 10 1/2 0 0 1 1/3 1/3 2 1/2 Leaves Pivot element Performing the elementary Row operations, we get the new Simplex tableau below. This is optimal as all entries in z row are ≥ 0.
Basic z z x1 x2 s2 1 0 0 0 x1 0 1 0 0 x2 0 0 1 0 s1 5 1 1 4 s2 0 0 0 1 s3 0 0 0 2 Solution 190 20 10/3 20 Optimum value = 190 at x1=20, x2=10/3 Graphical Solution of the problem (0,40/3) (10,10) Optimal at (20,10/3) Direction of increasing z (0,0) (70/3,0) Problem 2(a) Problem set 3.3B Page 89 Example Consider the LPP Maximize z = 2 x1 + x2 − 3 x3 + 5 x4 Subject to the constraints x1 + 2 x2 − 2 x3 + 4 x4 ≤ 40 2 x1 − x2 + x3 + 2 x4 ≤ 8 4 x1 − 2 x2 + x3 − x4 ≤ 10 x1 , x2 , x3 , x4 ≥ 0 Introducing slack variables, the LPP becomes Maximize z = 2 x1 + x2 − 3 x3 + 5 x4 + 0 s1 + 0 s2 + 0 s3
Subject to the constraints x1 + 2 x2 − 2 x3 + 4 x4 + s1 2 x1 − x2 + x3 + 2 x4 4 x1 − 2 x2 + x3 − x4 x1 , x2 , x3 , x4 , s1 , s2 , s3 ≥ 0 = 40 + s3 = 10 + s2 = 8 Basic z z s1 s2 s3 z s1 x4 s3 z x2 x4 s3 1 0 0 0 1 0 0 0 1 0 0 0 x1 x2 x3 3 2 1 1 11/2 4 1/2 3/2 2 1 0 1 x4 5 4 2 1 0 0 1 0 0 0 1 0 s1 0 1 0 0 0 1 0 0 7/8 1/4 1/8 5/8 s2 0 0 1 0 5/2 2 1/2 1/2 3/4 1/2 1/4 3/4 s3 0 0 0 1 0 0 0 1 0 0 0 1 Sol. 0 40 8 10 20 24 4 14 41 6 7 29 2 1 1 2 2 1 4 2 3 7/2 4 3 1 1/2 5 5/2 3/8 0 3/4 1 5/8 0 25/8 0 The last tableau is the optimal tableau as all entries in the objective function row are ≥ 0 and the LPP is a maximization problem. Optimal Solution is x1 = 0, x2 = 6, x3 = 0, x4 = 7 And the Optimal z (= Maximum z) = 41 Solve the following LPP: Maximize z = x1 + 2 x2 + 4 x3 Subject to the constraints 3 x1 + x2 +5 x3 ≤ 10 x1 +4 x2 + x3 ≤ 8 2 x1 +2 x3 ≤ 7 x1 , x2 , x3 ≥ 0 Introducing slack variables, the LPP becomes Maximize z = x1 + 2 x2 + 4 x3 + 0 s1 + 0 s2 + 0 s3
Subject to the constraints 3 x1 + x2 + 5 x3 + s1 x1 + 4 x2 + x3 2 x1 + 2 x3 + s2 =10 =8 + s3 = 7 x1 , x2 , x3 , s1 , s2 , s3 ≥ 0 Basic z z s1 s2 s3 z x3 s2 s3 z x3 x2 s3 x1 x2 2 1 4 0 6/5 1/5 19/5 2/5 0 0 1 0 x3 4 5 1 2 0 1 0 0 0 1 0 0 s1 s2 s3 Sol. 1 1 0 3 0 1 0 2 1 7/5 0 3/5 0 2/5 0 4/5 1 29/19 0 11/19 0 2/19 0 16/19 0 0 0 0 1 0 0 10 0 1 0 8 0 0 1 7 4/5 0 0 8 1/5 0 0 2 1/5 1 0 6 2/5 0 1 3 14/19 6/19 0 188/19 4/19 1/19 0 32/19 1/19 5/19 0 30/19 8/19 2/19 1 69/19 The last tableau is the optimal tableau as all entries in the objective function row are ≥ 0 and the LPP is a maximization problem. Optimal Solution is x1 = 0, x2 = 30/19, x3 = 32/19 And the Optimal z (= Maximum z) = 188/19 Exceptional cases Identified from the Simplex tableau * Tie for leaving variable  Degeneracy If in a Simplex iteration, there is a tie for leaving variable, then the resulting BFS will be degenerate, in the sense that one of the basic variables will also be zero. This may result in getting a new BFS without improving z. And in some cases this may lead to “cycling.” * Multiple (Alternative) Optimal Solutions Suppose in the optimal tableau, some nonbasic variable has zero coefficient in the objective function row. Then that variable can become basic and we would get another BFS. Since the coefficient of the entering variable in the objective function row. The objective function does not improve. Hence the new BFS we get is an alternative Optimal Solution. Usually you are supposed to give all Optimal Solutions. * No leaving variable – unbounded Solution Suppose in a Simplex iteration, some variable can enter but no variable can leave. This will happen when all the entries in the entering variable column are either zero or negative, This means the entering variable (which is right now having the zero value) can be increased indefinitely without violating any of the constraints and thus z can be increased indefinitely or the problem has unbounded solution. Problem 5 Problem Set 2.5A Page 61
Shale Oil, located on the island of Aruba, has a capacity of 600,000 barrels of crude oil per day. The final products from the refinery include two types of unleaded gasoline: regular and premium. The refining process encompasses three stages: (1) a distillation tower that produces feedstock, (2) a cracker unit that produces gasoline stock by using a portion of the feedstock produced from the distillation tower, and (3) a blender unit that blends the gasoline stock from the cracker unit and the feedstock from the distillation tower. Both Both regular and premium gasoline can be blended from either the the feedstock or the gasoline stock at different production costs. The company estimates that the net profit per barrel of regular gasoline is $7.70 and $5.20, depending on whether it is blended from feedstock or from gasoline stock. The corresponding profit values for the premium grade are $10.40 and $12.30. Design specifications require 5 barrels of crude oil to produce 1 barrel of feedstock. The capacity of the cracker unit is 40,000 barrels of feedstock a day. All remaining feedstock is directly used in the blender unit to produce endproduct gasoline. The demand The demand limits for regular and premium gasoline are 80,000 and 50,000 barrels per day. Develop a model for determining the optimum production schedule for the refinery. Distillation Tower Cracker Unit Blender Unit Let x1 units from feedstock be used to blend (=make) regular gasoline Let x2 units from feedstock be used to blend (=make) premium gasoline Let x3 units from gasoline stock be used to blend (=make) regular gasoline Let x4 units from gasoline stock be used to blend (=make) premium gasoline Thus we have to maximize the profit z = 7.70 x1 + 10.40 x2 + 5.20 x3 + 12.30 x4
Subject to the constraints x1 + x2 + x3 + x4 ≤ 120,000 x3 + x4 ≤ 40, 000
x1 + x3 ≤ 80, 000 x2 + x4 ≤ 50, 000 x1 , x2 , x3 , x4 ≥ 0 Optimum Solution x1 = 70,000 x2 = 10,000 x3 = 0 x4 = 40,000
Maximum z = 1135000 ...
View
Full Document
 Spring '11
 ritadubey
 Optimization, objective function, Optimal Solutions

Click to edit the document details