Explanation of Simplex Method

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

Explanation of Simplex Method

Introduction
The Simplex method is an approach to solving linear programming models by hand using
slack variables, tableaus, and pivot variables as a means to finding the optimal solution of
an optimization problem. A linear program is a method of achieving the best outcome
given a maximum or minimum equation with linear constraints. Most linear programs can
be solved using an online solver such as MatLab, but the Simplex method is a technique for
solving linear programs by hand. To solve a linear programming model using the Simplex
method the following steps are necessary:

● Standard form
● Introducing slack variables
● Creating the tableau
● Pivot variables
● Creating a new tableau
● Checking for optimality
● Identify optimal values

Consider the following example:


Maximize Z = f(x,y) = 3x + 2y
subject to: 2x + y ≤ 18
2x + 3y ≤ 42
3x + y ≤ 24
x≥0,y≥0

Step 1: Express in Standard Form and Determine Slack Variables


Slack variables are additional variables that are introduced into the linear constraints of a
linear program to transform them from inequality constraints to equality constraints. If
the model is in standard form, the slack variables will always have a +1 coefficient. Slack
variables are needed in the constraints to transform them into solvable equalities with one
definite answer.

Standard form is the baseline format for all linear programs before solving for the optimal
solution. Standard form is necessary because it creates an ideal starting point for solving
the Simplex method as efficiently as possible as well as other methods of solving
optimization problems.

Max Z = 3x + 2y + 0S1 +0S2 +0S3


2x + y + S1 + 0S2 + 0S3 = 18
2x + 3y + 0S1 + S2 +0S3 = 42
3x + y + 0S1 + 0S2 + S3 = 24

After the slack variables are introduced, the tableau can be set up to check for optimality.

Step 2: Setting up the Tableau


A Simplex tableau is used to perform row operations on the linear programming model as
well as to check a solution for optimality. The tableau consists of the coefficient
corresponding to the linear constraint variables and the coefficients of the objective
function. In the tableau below, the bolded top row of the tableau states what each column
represents. The following two rows represent the linear constraint variable coefficients
from the linear programming model, and the last row represents the objective function
variable coefficients.
Basic Entering Solution
Variables variable y S1 S2 S3 xb
x
Cj
3 2 0 0 0

0 S1 18
2 1 1 0 0
0 S2 42
2 3 0 1 0

0 S3 3 24
Pivot 1 0 0 1
element

Once the tableau has been completed, the model can be checked for an optimal solution.

Step 3: Check Optimality


The optimal solution of a maximization linear programming model are the values assigned
to the variables in the objective function to give the largest delta value. The optimal
solution would exist on the corner points of the graph of the entire model. To check
optimality using the tableau, all values in the last row must contain values less than or
equal to zero. If a value is greater than zero, it means that variable has not reached its
optimal value. As seen in the previous tableau, three values exists in the bottom row
indicating that this solution is not optimal. If a tableau is not optimal, the next step is to
identify the pivot variable to base a new tableau on.

Step 4: Identify Pivot Variable


The pivot variable is used in row operations to identify which variable will become the unit
value and is a key factor in the conversion of the unit value. The pivot variable can be
identified by looking at the bottom row of the tableau and the indicator. Pick the largest
value in the bottom row and mark the column as pivot column. One of the values lying in
the column of this value will be the pivot value. To find the pivot value, divide the solution
values of the linear constraints by their corresponding values from the pivot column. The
row with minimum value will be marked as pivot row. The intersection of pivot row and
pivot column will become the pivot value and the variable will be pivot variable.

Basic Solution Min ratio


Variables xb Xb/corresponding
x y S1 S2 S3
pivot column
value
Cj
3 2 0 0 0
0 S1 2 1 1 0 0 18 18/2=9

0 S2 42 42/2=21
2 3 0 1 0
0 S3 3 24 24/3=8
Pivot 1 0 0 1 Pivot row
element
Zj
0 0 0 0 0
ΔJ =Cj - Zj
3 2 0 0 0

Now that the new pivot variable has been identified, the new tableau can be created in next
Step to optimize the variable and find the new possible optimal solution.

Step 5: Create the New Tableau


The new tableau will be used to identify a new possible optimal solution. Now that the
pivot variable has been identified, row operations can be performed to optimize the pivot
variable while keeping the rest of the tableau equivalent.

I. To optimize the pivot variable, it will need to be transformed into a unit value (value
of 1). To transform the value, divide the pivot row with pivot value.
New tableau value = (Old tableau value)/pivot value

II. After the unit value has been determined, the other values in the column containing
the unit value will become zero.

III. In order to keep the tableau equivalent, the other variables not contained in the
pivot column or pivot row must be calculated by using the new pivot values.
New tableau value = (Old tableau value) - (value in old tableau pivot column) x (value in
new tableau pivot row)

The new table will be:


Basic Solution
x y S1 S2 S3
Variables xb
Cj
3 2 0 0 0
0 S1 2
0 1/3 1 0 -2/3
0 S2 26
0 7/3 0 1 -2/3
3 x 8
1 1/3 0 0 1/3

Step 7: Check Optimality Again


As explained in Step 3, the optimal solution of a maximization linear programming model
are the values assigned to the variables in the objective function to give the largest zeta
value. Optimality will need to be checked after each new tableau to see if a new pivot
variable needs to be identified. A solution is considered optimal if all values in the bottom
row are less than or equal to zero. If all values are less than or equal to zero, the solution is
considered optimal. If positive values exist, the solution is still not optimal and a new pivot
point will need to be determined.

Repeat Steps from 4 to 7 until all the values in bottom row are less than or equal to zero.
The given example will go through steps as:

Basic Solution Min ratio


Variables xb Xb/corresponding
x y S1 S2 S3
pivot column
value
Cj
3 2 0 0 0
0 S1 0 1/3 1 0 -2/3 2 6

0 S2 26 ---
0 7/3 0 1 -2/3
3 x 1 1/3 0 0 1/3 8 24

Zj
3 1 0 0 1
ΔJ =Cj - Zj
0 1 0 0 -1
Since, all values of Cj-Zj <=0, the optimality reached.

Step 8: Identify Optimal Values


Once the tableau is proven optimal the optimal values can be identified. These can be found
by distinguishing the basic and non-basic variables. A basic variable can be classified to
have a single 1 value in its column and the rest be all zeros. If a variable does not meet this
criteria, it is considered non-basic. If a variable is non-basic it means the optimal solution
of that variable is zero. If a variable is basic, the row that contains the 1 value will
correspond to the beta value.
Basic variables: x, s3, y
Non-basic variables: s1, s2

The final solution shows each of the variables having values of:

x =3 s1 = 0

y = 12 s2 = 0

s3 = 3 z = 27

The maximum optimal value is 27.


Terminologies:
Basic variables are variables that are non-negative in terms of the optimal solution.

Constraints are a series of equalities and inequalities that are a set of criteria necessary to
satisfy when finding the optimal solution.

Inequality is an expression that does not have one definite solution and is distinguishable
by its ‘greater than’ or ‘less than’ symbols in the place of a traditional equal sign.

Linear program is a model used to achieve the best outcome given a maximum or
minimum equation with linear constraints.

Non-basic variables are variables that are zero in terms of the optimal solution.

Optimal solution of a maximization linear programming model are the values assigned to
the variables in the objective function to give the largest zeta value. The optimal solution
would exist on the corner points of the graph of the entire model.

Pivot variable is used in row operations to identify which variable will become the unit
value and is a key factor in the conversion of the unit value.

Simplex method is an approach to solving linear programming models by hand using


slack variables, tableaus, and pivot variables as a means to finding the optimal solution of
an optimization problem.

Simplex tableau is used to perform row operations on the linear programming model as
well as for checking optimality.

Standard form is the baseline format for all linear programs before solving for the
optimal solution.

Slack Variables : 
Slack variable represents an unused quaintly of  resources ; it is added to less than or equal
(<) to type constraints in order to get an equality constraint.

Surplus  Variables :
A surplus variable represents the amount by which solution values exceed a resource.
These variables are also called ‘Negative Slack Variables’ . Surplus variables like slack
variables carry a zero coefficient in the objective function. it is added to greater than or
equal to (>) type constraints in order to get an equality constraint.
Artificial Variables : 
Artificial variables are added to those constraints with equality (=) and greater than or
equal to ( > ) sign. An Artificial variable is added to the constraints to get an initial solution
to an LP problem. Artificial variables have no meaning in a physical sense and are not only
used as a tool for generating  an initial solution to an LP problem.

Particulars Slack Variable Surplus Variable Artificial Variable


Mean Unused resources of the Excess amount of No physical or
idle resources. resources utilized. economic meaning. It
is Fictitious.
When used ? With <  Constraints With >  Constraints With > And =
constraints
Coefficient +1 -1 +1
Co-efficient in 0 0 -M for Maximization
the Z – and
objective +M for minimization
function
As Initial Used as starting point. Can’t be used since unit It is initially used but
Program matrix condition is not later on eliminated.
variable satisfied
In Optimal Used to help for – It indicates the
Table interpreting idle & key Infeasible Solution
resources.

You might also like