Redundant Constraint: If a constraint has no active affect on the FSS then it is called redundant constraint. Deleting a redundant constraint does not change the FSS. Linear Programming (LP) IMPORTANT PROPERTY-1: The feasible solution space (FSS) of an LP model is either a convex set or an empty set. IMPORTANT PROPERTY-2: If there is an optimal solution (or alternate optimal solutions) of an LP model then it is one of the corner points of the FSS. (If there is no optimal solution then either the FSS is empty set (infeasible solution) or there is an unbounded solution) Standard From: All constraints are in the “ = ” form, all right hand side (RHS) constants (vector b) are non-negative, all decision variables are non-negative real numbers. Objective function may be minimization type or maximization type. Example: The original model: Max z = 3X1 + 5X2 + X3 s.t. X1 + 2X2 + X3 <= 6 3X1 + X2 + 3X3 <= 12 X1, X2, X3 ≥ 0 Note that the FSS of the above original model is in 3-dimensional space. After adding slack variables X4 and X5 to the model, (The equivalent standard model) Max z = 3X1 + 5X2 + X3 s.t. X1 + 2X2 + X3 + X4 =6 3X1 + X2 + 3X3 + X5 = 12 X1, X2, X3, X4, X5 ≥ 0 Now, the above model is in the standard form. Note that the FSS of the above standard model is in 5-dimensional space. Note: The objective coefficients of slack and surplus variables are always zero. In a standard form LP model, the number of the decision variables (n) is always greater than or equal to the number of constraints (m). Note that the non-negativity constraints of the decision variables are not computed in m. In the above standard form model n=5, m=2. In a standard form LP model, the m constraint set is actually m equation system with n unknowns (decision variables). Now, let us chose any (n-m) decision variables and call them as “non-basic variables”, and let us call the remaining m decision variables as “basic variables”. For example, in the above let us select arbitrarily X4 and X5 as basic decision variables and X1, X2 and X3 as non-basic decision variables. Now, let us move non-basic decision variables to the RHS of the equations and find the values of basic decision variables in terms of non-basic decision variables. X4 = 6 - X1 - 2X2 - X3 X5 = 12 - 3X1 - X2 - 3X3 So, if we fix non-basic decision variables to zero then we find the numerical values of the basic variables. In the above system when X1=X2=X3=0 X4=6 and X5=12. Actually, with this computations we guarantee that the m constraints of the model are satisfied with the resultant solution. Furthermore, since we fix all non-basic decision variables to zero we also guarantee that the non-negativity constraints are satisfied for the non-basic decision variables. But the matter is that the values of the basic decision variables may be negative. In the above example X4=6 and X5=12, but if we chose some other two (m) decision variables and repeat the above procedure it is not guaranteed that at the and their numerical values will be non-negative. I.e., for the basic decision variables the non-negativity constraints may be violated. So, the found solution may be infeasible in total. Let X be a feasible solution of the equivalent standard model such that m of the decision variables are non-negative and remaining (n-m) of the decision variables are all zero in this solution. Such a solution is called “basic feasible solution” of the standard form model. IMPORTANT PROPERTY-3: Consider an original LP model and its equivalent standard model. There is a one-to-one correspondence between the corner points of FSS of the original model and basic feasible solutions of the equivalent standard form model. A VERY IMPORTANT OBSERVATION: When the number of the decision variables is more than two the graphical method is not applicable since we cannot visualize n-dimensional FSS (n>2). But according to the above important properties 2 and 3 we can search the corner points of the original model for finding the optimal solution over the basic feasible solutions of the equivalent standard model. In the above computation approach we arbitrarily chose m of the n decision variables as basic decision variables and (n-m) remaining decision variables as non-basic decision variables. And, at the end of the procedure finding a basic feasible solution is not guaranteed. So, our computations could be unnecessary. But at the beginning we could not know if those computations are unnecessary or not. If we insist applying this method and searching the optimal solution of our original model in total we may chose n! different basic decision variable sets. For some n and m values this C( n ) m m!*(n m)! amount may be very big number. So, by the above method it may be needed to make too much computations and most of them may be unnecessary. As a result, we need a better method, which is the Simplex Algorithm. Actually, the Simplex Algorithm is also based on the above very important observation. But, in the Simplex Algorithm the weaknesses of the above computation method are cancelled. The Simplex Algorithm always generates basic feasible solutions of the equivalent standard model, i.e., it always catches the corner points of the original model (unnecessary computations of the above approach are cancelled). Moreover, the Simplex Algorithm always generates a new basic feasible solution over the current basic feasible solution which has a better objective function value than the current basic feasible solution. The Simplex Algorithm Temporarily we will consider only the original models with only “<=”type constraints (i.e., we won’t consider the original models having “=” and “>=” type constraints). Beginning of the Simplex Algorithm Step 1: (Initialization) Develop the equivalent standard model by entering slack variables. Let the equivalent standard model be: Max (or Min) z= CX s.t. AX=b X>=0 Chose the slack variables as your initial basic variables (XB) and determine the remaining variables as your initial non-basic decision variables (XN). Construct the following Simplex Table: Basic XN XB RHS Z -CN 0 0 This row is called as “objective row” XB AN I b These rows are called as “constraint rows” Here, AN is the part of matrix A consisting the coefficients of the non-basic decision variables XN. CN is the part of vector C consisting the coefficients of the non-basic decision variables XN. Let’s define also AB and CB even we did not used yet. AB is the part of matrix A consisting the coefficients of the basic decision variables XB. CB is the part of vector C consisting the coefficients of the basic decision variables XB. Step 2: (Optimality test) Check the objective row of the current Simplex Table. Let ZCi be the coefficient of decision variable Xi in the current objective row. If the problem is a minimization problem and ZCi values are non-positive for all XiϵXN then the current solution is the OPTIMAL solution and STOP, else go to Step 3. (If this optimality condition is satisfied but there is a non-basic decision variable with ZCi=0 then there are ALTERNATIVE OPTIMAL SOLUTIONS. You may STOP or you may go to Step 3 for finding the alternative optimal solutions) If the problem is a maximization problem and ZCi values are non-negative for all XiϵXN then the current solution is the OPTIMAL solution and STOP, else go to Step 3. (If this optimality condition is satisfied but there is a non-basic decision variable with ZCi=0 then there are ALTERNATIVE OPTIMAL SOLUTIONS. You may STOP or you may go to Step 3 for finding the alternative optimal solutions) Step 3: (Finding the non-basic decision variable that will enter to the basic decision variable set XB) Check ZCi values in the current objective row. If the problem is a minimization problem select the non-basic decision variable that has the biggest ZCi value as the non-basic decision variable that will enter to the basic decision variable set XB. Let this variable be Xe. If the problem is a maximization problem select the non-basic decision variable that has the smallest ZCi value as the non-basic decision variable that will enter to the basic decision variable set XB. Let this variable be Xe. Step 4: (Finding the basic decision variable that will leave the basic decision variable set XB and move to the non-basic decision variable set XN) Consider the column of the Xe in the constraint rows of the current Simplex Table. Let caej be the coefficient of Xe in the jth constraint row of the current Simplex Table and let cbj be the RHS constant in the jth constraint row of the current Simplex Table. If caej <= 0 for all constraint row j then there is an UNBOUNDED solution to the problem and STOP, else select the basic decision variable Xl as the leaving decision variable according to the following method (Minimum Ratio Test (MRT)): Let k arg min { j 1, 2 ,..., m ca ej 0 cb j caej } Then, Xl is the basic decision variable in the kth constraint row of the current Simplex Table. Note that arg min returns the value of j that yields the searched minimum value. Step 5: (Constructing the Simplex Table of the next basic decision variable set) The column of entering variable Xe is called “pivot column”, the row of leaving variable Xl is called “pivot row”, the coefficient caek in the intersection of pivot column and pivot row is called “pivot element”. Step 5-a) Replace Xl with Xe in the “Basic” column of the next Simplex Table. Step 5-b) New pivot row = (current pivot row) / pivot element Step 5-c) All other rows, including objective row, New row = (current row) – (its pivot column coefficient in the current table)*(New pivot row) Go to Step 2. End of the Simplex Algorithm Note that the Simplex algorithm finds the optimal solution or alternative optimal solutions or the unbounded solutions. The only remaining possible situation in LP is having an infeasible solution (FSS is an empty set). Actually, that situation also can be determined (Big-M, Two Phase Methods). Degeneracy: In a basic feasible solution if there is any basic decision variable with value zero then this solution is called degenerate solution. I.e., if there is a zero value in the RHS column and constraint rows of a Simplex Table then that basic feasible solution is a degenerate solution. Generally, this situation does not cause a problem, but rarely may cause a loop. In order to escape from the loop the leaving variable among the candidate leaving variables may be selected arbitrarily. Candidate leaving variables are the basic variables that caej values in Step 4 are positive. A Numerical Example: Let our original problem is: Max Z = 5 X1 + 4 X2 s.t. 6 X1 + 4 X2 ≤ 24 X1 + 2 X2 ≤ 6 - X1 + X2 ≤ 1 X2 ≤ 2 X1, X2 ≥ 0 Step 1 Developing the equivalent standard model. Max Z = 5 X1 + 4 X2 s.t. 6 X1 + 4 X2 + X3 = 24 X1 + 2 X2 + X4 =6 - X1 + X2 + X5 =1 X2 + X6 = 2 X1, X2, X3, X4, X5, X6 ≥ 0 b=(24 6 1 2)T X=(X1 X2 X3 X4 X5 X6) XB=(X3 X4 X5 X6), XN=(X1 X2) C=(5 4 0 0 0 0) CB=(0 0 0 0), CN=(5 4) 6 A 1 1 0 4 2 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 A 0 0 B 0 0 1 0 1 0 0 0 0 1 0 0 6 0 , A 1 0 N 1 0 1 4 2 1 1 Starting Simplex Table for XB=(X3 X4 X5 X6): Basic X1 X2 X3 X4 X5 X6 RHS Z -5 -4 0 0 0 0 0 X3 6 4 1 0 0 0 24 X4 1 2 0 1 0 0 6 X5 -1 1 0 0 1 0 1 X6 0 1 0 0 0 1 2 Step 2: Since the objective function is maximization type and there are non-basic decision variables with negative ZCi coefficients then this solution is not OPTIMAL. Go to Step 3. Step 3: Entering variable is X1. Step 4: MRT: Basic X1 X2 X3 X4 X5 X6 RHS Z -5 -4 0 0 0 0 0 Ratio X3 6 4 1 0 0 0 24 24/6=4 X4 1 2 0 1 0 0 6 6/1=6 X5 -1 1 0 0 1 0 1 - X6 0 1 0 0 0 1 2 - Minimum ratio is 4. Leaving variable is X3. Step 5: Next Simplex Table. Basic X1 X2 X3 X4 X5 X6 RHS Z -5 -4 0 0 0 0 0 X3 6 4 1 0 0 0 24 X4 1 2 0 1 0 0 6 X5 -1 1 0 0 1 0 1 X6 0 1 0 0 0 1 2 Pivot column is X1 column, pivot row is X3 row, pivot element is 6. Step 5-a) Replace X3 with X1 in Basic column. Basic X1 X2 X3 X4 X5 X6 RHS Z -5 -4 0 0 0 0 0 X1 6 4 1 0 0 0 24 X4 1 2 0 1 0 0 6 X5 -1 1 0 0 1 0 1 X6 0 1 0 0 0 1 2 Step 5-b) Divide pivot row by pivot element. Basic X1 X2 X3 X4 X5 X6 RHS Z -5 -4 0 0 0 0 0 X1 1 4/6 1/6 0 0 0 4 X4 1 2 0 1 0 0 6 X5 -1 1 0 0 1 0 1 X6 0 1 0 0 0 1 2 Basic X1 X2 X3 X4 X5 X6 RHS Z 0 -4/6 5/6 0 0 0 20 X1 1 4/6 1/6 0 0 0 4 X4 1 2 0 1 0 0 6 X5 -1 1 0 0 1 0 1 X6 0 1 0 0 0 1 2 Basic X1 X2 X3 X4 X5 X6 RHS Z 0 -4/6 5/6 0 0 0 20 X1 1 4/6 1/6 0 0 0 4 X4 0 4/3 -1/6 1 0 0 2 X5 -1 1 0 0 1 0 1 X6 0 1 0 0 0 1 2 Step 5-c) New Z row. New X4 row. New X5 row. Basic X1 X2 X3 X4 X5 X6 RHS Z 0 -4/6 5/6 0 0 0 20 X1 1 4/6 1/6 0 0 0 4 X4 0 4/3 -1/6 1 0 0 2 X5 0 5/3 1/6 0 1 0 5 X6 0 1 0 0 0 1 2 Basic X1 X2 X3 X4 X5 X6 RHS Z 0 -4/6 5/6 0 0 0 20 X1 1 4/6 1/6 0 0 0 4 X4 0 4/3 -1/6 1 0 0 2 X5 0 5/3 1/6 0 1 0 5 X6 0 1 0 0 0 1 2 New X6 row. We constructed the Simplex Table for the new XB = (X1 X4 X5 X6). Go to Step 2. Step 2: Since the objective function is maximization type and there are non-basic decision variables with negative ZCi coefficients then this solution is not OPTIMAL. Go to Step 3. Step 3: Entering variable is X2. Step 4: MRT: Basic X1 X2 X3 X4 X5 X6 RHS Z 0 -4/6 5/6 0 0 0 20 Ratio X1 1 4/6 1/6 0 0 0 4 4/(4/6)=6 X4 0 4/3 -1/6 1 0 0 2 2/(4/3)=3/2 X5 0 5/3 1/6 0 1 0 5 5/(5/3)=3 X6 0 1 0 0 0 1 2 2/1=2 Minimum ratio is 3/2. Leaving variable is X4. Step 5: Next Simplex Table. Basic X1 X2 X3 X4 X5 X6 RHS Z 0 -4/6 5/6 0 0 0 20 Ratio X1 1 4/6 1/6 0 0 0 4 4/(4/6)=6 X4 0 4/3 -1/6 1 0 0 2 2/(4/3)=3/2 X5 0 5/3 1/6 0 1 0 5 5/(5/3)=3 X6 0 1 0 0 0 1 2 2/1=2 Pivot column is X2 column, pivot row is X4 row, pivot element is 4/3. Step 5-a) Replace X4 with X2 in Basic column. Basic X1 X2 X3 X4 X5 X6 RHS Z 0 -4/6 5/6 0 0 0 20 X1 1 4/6 1/6 0 0 0 4 X2 0 4/3 -1/6 1 0 0 2 X5 0 5/3 1/6 0 1 0 5 X6 0 1 0 0 0 1 2 Step 5-b) Divide pivot row by pivot element. Basic X1 X2 X3 X4 X5 X6 RHS Z 0 -4/6 5/6 0 0 0 20 X1 1 4/6 1/6 0 0 0 4 X2 0 1 -1/8 3/4 0 0 3/2 X5 0 5/3 1/6 0 1 0 5 X6 0 1 0 0 0 1 2 Basic X1 X2 X3 X4 X5 X6 RHS Z 0 0 3/4 1/2 0 0 21 X1 1 0 1/4 -1/2 0 0 3 X2 0 1 -1/8 3/4 0 0 3/2 X5 0 0 3/8 -5/4 1 0 5/2 X6 0 0 1/8 -3/4 0 1 1/2 Step 5-c) Other rows We constructed the Simplex Table for the new XB = (X1 X2 X5 X6). Go to Step 2. Step 2: Since the objective function is maximization type and there is no non-basic decision variables with negative ZCi coefficients then this solution is the OPTIMAL SOLUTION. STOP. The optimal solution is X1=3, X2=3/2 and optimal objective function value is 21.