Linear Programming
Linear Programming
EXAMPLE
A factory manufactures doodads and whirligigs. It costs $2 and takes 3 hours to produce a
doodad. It costs $4 and takes 2 hours to produce a whirligig. The factory has $220 and 150
hours this week to produce these products. If each doodad sells for $6 and each whirligig
sells for $7, then how many of each product should be manufactured this week in order to
maximize profit?
Linear programming is useful for many problems that require an optimization of resources. It
could be applied to manufacturing, to calculate how to assign labor and machinery to
minimize cost of operations. It could be applied in high-level business operations, to decide
which products to sell and in what quantity in order to maximize profit. It could also be
applied in logistics, to decide how to apply resources to get a job done in the minimum
amount of time.
: Linear programming refers to choosing the best alternative from the available alternatives,
whose objective function and constraint function can be expressed as linear mathematical
functions.
Maximization Case: Let’s understand the maximization case with the help of a
problem. Suppose a firm produces two products A and B. For producing the each unit of
product A, 4 Kg of Raw material and 6 labor hours are required. While, for the
production of each unit of product B, 4 kg of raw material and 5 labor hours is required.
The total availability of raw material and labor hours is 60 Kg and 90 Hours respectively
(per week). The unit price of Product A is Rs 35 and of product, B is Rs 40.
This problem can be converted into linear programming problem to determine how
many units of each product should be produced per week to have the maximum profit.
Firstly, the objective function is to be formulated. Suppose x1 and x2 are units produced
per week of product A and B respectively. The sale of product A and product B yields
Rs 35 and Rs 40 respectively. The total profit will be equal to
Since the raw material and labor is in limited supply the mathematical relationship that
explains this limitation is called inequality. Therefore, the inequality equations will be as
follows:
4x1 + 4x2 ≤ 60
6x1 + 5x2 ≤ 90
Where 6 hours and 5hours of labor is required for the production of each unit of product
A and B respectively, but cannot exceed the total availability of 90 hours.
Subject to:
Note: It is to be noted that “≤” (less than equal to) sign is used as the profit
maximizing output may not fully utilize all the resources, and some may be left unused.
And the non-negativity condition is used since the x1 and x2 are a number of units
produced and cannot have negative values.
The function to be optimized in linear programming is called the objective function. This
usually refers to profit maximization or cost minimization. In linear programming problems,
constraints are given by inequalities (called inequality constraints).
Graphical Method of Solving Linear
Programming Problems
Graphical Method: Owing to the importance of linear
programming models in various industries, many types of algorithms
have been developed over the years to solve them. Some famous
mentions include the Simplex method, the Hungarian approach, and
others. Here we are going to concentrate on one of the most basic
methods to handle a linear programming problem i.e. the graphical
method.
he Graphical Method
We will first discuss the steps of the algorithm:
One must know that one cannot imagine more than 3-dimensions
anyway! The constraint lines can be constructed by joining the
horizontal and vertical intercepts found from each constraint equation.
Optimum Points
An optimum point always lies on one of the corners of the feasible
region. How to find it? Place a ruler on the graph sheet, parallel to the
objective function. Be sure to keep the orientation of this ruler fixed in
space. We only need the direction of the straight line of the objective
function. Now begin from the far corner of the graph and tend to slide it
towards the origin.
To find out the optimized objective function, one can simply put in the
values of these parameters in the equation of the objective function.
You have found your solution! Worried about the execution of this
seemingly long algorithm? Check out a solved example below!
Bananas cost 30 rupees per dozen (6 servings) and apples cost 80 rupees
per kg (8 servings). Given: 1 banana contains 8.8 mg of Vitamin C and
100-125 g of apples i.e. 1 serving contains 5.2 mg of Vitamin C.
To check for the validity of the equations, put x=0, y=0 in (1). Clearly,
it doesn’t satisfy the inequality. Therefore, we must choose the side
opposite to the origin as our valid region. Similarly, the side towards
origin is the valid region for equation 2)
Feasible Region: As per the analysis above, the feasible region for this
problem would be the one in between the red and blue lines in the
graph! For the direction of the objective function; let us plot 5x+10y =
50.
Now take a ruler and place it on the straight line of the objective
function. Start sliding it from the left end of the graph. What do we
want here? We want the minimum value of the cost i.e. the minimum
value of the optimum function C. Thus we should slide the ruler in such
a way that a point is reached, which:
y=0
8.8x + 5.2y = 20
We’ll get the coordinates of ‘P’ as (2.27, 0). This implies that the family
must consume 2.27 bananas and 0 apples to minimize their cost and
function according to their diet plan.
\
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
This document breaks down the Simplex method into the above steps and follows the
example linear programming model shown below throughout the entire document to find
the optimal solution.
Step 1: Standard Form
Standard form is the baseline format for all linear programs before solving for the optimal
solution and has three requirements: (1) must be a maximization problem, (2) all linear
constraints must be in a less-than-or-equal-to inequality, (3) all variables are non-negative.
These requirements can always be satisfied by transforming any given linear program
using basic algebra and substitution. 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.
Once the model is in standard form, the slack variables can be added as shown in Step 2 of
the Simplex method.
Step 2: 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.
After the slack variables are introduced, the tableau can be set up to check for optimality as
described in Step 3.
In the example shown below, -10 is the smallest negative in the last row. This will designate
the x2 column to contain the pivot variable. Solving for the indicator gives us a value of
10 8 8
for the first constraint, and a value of 5for the second constraint. Due to 5 being the
3
smallest non-negative indicator, the pivot value will be in the second row and have a value
of 5.
Now that the new pivot variable has been identified, the new tableau can be created in Step
6 to optimize the variable and find the new possible optimal solution.
Step 6: 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 in Step 5, 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, multiply the row containing the pivot variable by the
reciprocal of the pivot value. In the example below, the pivot variable is originally 5,
1
so multiply the entire row by 5.
II. After the unit value has been determined, the other values in the column containing
the unit value will become zero. This is because the x2 in the second constraint is
being optimized, which requires x2 in the other equations to be 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. For
each new value, multiply the negative of the value in the old pivot column by the
value in the new pivot row that corresponds to the value being calculated. Then add
this to the old value from the old tableau to produce the new value for the new
tableau. This step can be condensed into the equation on the next page:
New tableau value = (Negative value in old tableau pivot column) x (value in new tableau
pivot row) + (Old tableau value)
Old Tableau:
New Tableau:
Numerical examples are provided below to help explain this concept a little better.
Numerical examples:
1 3
New tableau value = (-3) * (5) + 0 = -5
II. To find the x1 variable in row 3:
New tableau value = (Negative value in old tableau pivot column) * (value in new
tableau pivot row) + (Old tableau value)
1
New value = (10) * (5) + -8 = -6
Once the new tableau has been completed, the model can be checked for an optimal
solution.
Step 7: Check Optimality
As explained in Step 4, 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 greater than or equal to zero. If all values are greater than or equal to zero, the
solution is considered optimal and Steps 8 through 11 can be ignored. If negative values
exist, the solution is still not optimal and a new pivot point will need to be determined
which is demonstrated in Step 8.
With the new pivot variable identified, the new tableau can be created in Step 9.
Step 9: Create New Tableau
After the new pivot variable has been identified, a new tableau will need to be created.
Introduced in Step 6, the tableau is used to optimize the pivot variable while keeping the
rest of the tableau equivalent.
I. Make the pivot variable 1 by multiplying the row containing the pivot variable by
1
the reciprocal of the pivot value. In the tableau below, the pivot value was 5, so
everything is multiplied by 5.
II. Next, make the other values in the column of the pivot variable zero. This is done by
taking the negative of the old value in the pivot column and multiplying it by the
new value in the pivot row. That value is then added to the old value that is being
replaced.
For the variable x1, the 1 is found in the second row. This shows that the optimal x1 value is
found in the second row of the beta values, which is 8.
Variable s1 has a 1 value in the first row, showing the optimal value to be 2 from the beta
column. Due to s1 being a slack variable, it is not actually included in the optimal solution
since the variable is not contained in the objective function.
The zeta variable has a 1 in the last row. This shows that the maximum objective value will
be 64 from the beta column.
The final solution shows each of the variables having values of:
x1 = 8 s1 = 2
x2 = 0 s2 = 0
x3 = 0 z = 64
The maximum optimal value is 64 and found at (8, 0, 0) of the objective function.
Conclusion
The Simplex method is an approach for determining the optimal value of a linear program
by hand. The method produces an optimal solution to satisfy the given constraints and
produce a maximum zeta value. To use the Simplex method, a given linear programming
model needs to be in standard form, where slack variables can then be introduced. Using
the tableau and pivot variables, an optimal solution can be reached. From the example
worked throughout this document, it can be determined that the optimal objective value is
64 and can be found when x1=8, x2=0, and x3=0.
Glossary
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.
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.
Standard form is the baseline format for all linear programs before solving for the
optimal solution.
1. Family legacies
2. Emotions
5.personal relationship
6.Conflict
7.learning by thinking