Linear Programming
Linear Programming
I. INTRODUCTION
1. TITLE OF MODULE
Linear Programming
3. TIME
The recommended total time for this module is at least 120 study hours, with Unit 1 taking
40 hours [20 hours for each of the 2 Activities], and Unit 2 taking 80 hours [20 hours for the
first Activity, 34 hours for the second Activity, and 20 hours for the third Activity], and the
remaining 6 hours to be allocated for the pre-assessment (2 hours) and summative (4
hours) evaluation activities.
4. MATERIAL
Students should have access to the core readings specified later. Also, they will need a
computer to gain full access to the core readings. Additionally, students should be able to
install the computer softwares wxMaxima and Graph and use them to practice algebraic
concepts. These should be regarded as learning materials to facilitate easier accessing
and processing of the core concepts and skills that constitute the course. The following are
materials necessary to engage with the module meaningfully and, hopefully, complete it
successsfully: The student’s edition of the module (print form); a computer with effective
internet connectivity and MicroSoft Office 2003 and above; a scientific or programmable
calculator; graph plotting materials; CDs with materials downloaded from sites
recommended in the module; CDs with mathematical software such as MathType or
WinShell, Graph, wxMaxima, and at least one linear programming software that is free-
downloadable, recommended readings from texts identified in the module. [The
recommended readings can also be in print form].
The importance of linear programming derives in part from its many applications and in part
from the existence of good general-purpose techniques for finding optimal solutions. Linear
programming is useful for guiding quantitative-related decision making in business,
industrial engineering enterprises, and to a lesser extent activities within the social and life
sciences. The linear programming skills will help teachers in some aspects of their own
personal life management activities and in their professional practice.
This module acts as a smooth and non-intimidating entry into the mathematical worlds of
dynamic linear programming, networks, and operations research for the learner who will
develop some interest in majoring those fields. Also it:
(a) is important in and of itself as a degree level mathematics course because it
introduces to the mathematics student new mathematical content with a distinctive
style of mathematical thinking;
(b) beautifully integrates theoretical concepts with their practical applications – both of a
mathematical and everyday - life in nature;
(c) is necessary for the prospective teacher of science and mathematics because
modern day youth and school students are now pre-disposed to a range of career
interests, many of which would be facilitated by a preparation that involves dealing
with linear programming and optimisation that are covered in this module.
6. Overview
Overview: Prose description
This module introduces the learner to a particular mathematical approach to analysing real
life activity that focuses on making specific decisions in constrained situations. The
approach, called linear programming, is presented here with an emphasis on appreciation
of the style of thinking and interpretation of mathematical statements generated, rather than
on computational competency per se, which is left to appropriate and readily available ICT
software package routines.
The module begins with Unit One that consists of 2 main Activities. Activity 1, formulation
of a linear programming problem, is on a mathematical description of the problematic
situation under consideration, and Activity 2, the geometrical approach considers a visual
description of a plausable solution to the problem situation. Unit 1 therefore should move
the learner towards an appreciation of real-life activity situations that can be modelled as
linear programming problems.
With 3 main activities, Unit 2 considers computational algorithms for finding plausible
optimal solutions to the linear programming problem situations of the type formulated in
Unit 1. Activity 3 examines conditions for optimality of a solution, which is really about
recognising when one is moving towards and arrives at a candidate and best solution.
Activity 4 discusses the centre piece of computational algebraic methods of attack, the
famed Simplex algorithm. This module focuses on the logic of the algorithm and the useful
associated qualitative properties of duality, degeneracy, and efficiency. The final Activity
touches on the problem of stability of obtained optimal solutions in relation to variations in
specific input or output factors in the constraints and objective functions. This so called
post optimality or sensitivity analysis is presented here only at the level of appreciation of
the analytic strategies employed.
Unit 1
Unit 2
Content Outline:
7
in Standard
ACTIVITY 1 Form
Formulation of the
linear programming General LP
problems
UNIT 1
2-var PL
ACTIVITY 2
Geometrical Solution
3-var PL
Boundedness
MODULE ACTIVITY 3
Optimality Condition
Convergence
Parametric Analysis
ACTIVITY 5
Sensitivity Analysis
Marginal Analysis
Upon completion of this module students should:
a) have a general appreciation of the types of problems which are amenable to
analysis using linear programming
b) be able to formulate linear programming problems and solve them using
geometrical and linear algebraic techniques.
c) be able to use mathematical software packages to solve linear programming
problems
d) be able to discuss some theoretical notions of linear algebra and geometry with
concrete/practical contexts.
e) have developed some familiarity with the language of operations research
f) have developed a sense of algorithmic thinking
9. PRE-ASSESSMENT
QUESTIONS
2 4 2 2 0�
�
�
1 1 6 4 9�
3. The matrix � �is:
�
0 0 0 0 0�
� �
2
� 4 2 2 0�
�
1 1 6 4 9�
� �
5. The matrix �
0 0 0 0 0 �has rank:
� �
1
� 2 1 1 0�
(b)
(c)
(d)
8. Which of the following is not directly associated with the Gaussian elimination method?
(a) Reducing n x n matrix to echelon form
(b) Detemining the consistency of a system
(c) Finding lower or upper triangular matrix
(d) Using elementary operations to reduce a system of equations
�4 1 3�
A=� �1 0 2� �
�
�2 -1 5 �
�
1 0 2� �
� 4 1 2� � 4 5 3� � 1 1 3�
� �
2 -1 5 �(b) �
(a) � � �
1 0 -1�(c) �� � �
0 1 2�
2 -1 0 �( d ) � �
�
4 1 3�
� � � �3 2 5� � � �1 2 2� � � 2 5 1�
� �
10. Which of the following shows a convex set?
(a) (b)
(c) (d)
N.B. An object is convex if for every pair of points within the object, every point on the
straight line segment that joins them is also within the object.
(a) {(sin (n))/n} (b) {ln (n) } (c) {1/n} (d) {(n+1)/n}
1 2 3�
�
�
0 4 5�
17. The determinant of the following matrix � �is:
�
0 0 6�
� �
2.a (a has magnitude but no direction, c typically denotes a matrix or vector, b and d are
vectors )
3.a (the matrix has 3 rows and 5 columns and so it’s a 3 by 5 matrix)
5.d (the rank of a matrix is the number of non-zero rows and here they are three)
6.a (the graph in d gives the equation x - y �1 , b has shaded the unwanted region and c
has shaded the whole x-y plane)
7.a (for equality to hold you add some positive number on the left hand side)
8.c (you use the leading entry in each row to eliminate the non-zero coefficients below it,
thus creating an upper triangular matrix)
9.b (for transpose the first column becomes first row, second column becomes second row
and third column becomes third row so answer is b)
10 .c (c is the only shape in which when two points in the region are joined by a line, all the
points on the line are also in the shape)
13.b (for b the function is continuous everywhere else except at zero hence discontinuous)
14.c (for a vector to be called a basis it should be linearly independent and should span or
generate the whole vector space)
18.a ( if you minimize production costs then you will maximize profit)
19.c (a vector quantity has size and direction e.g. velocity, acceleration)
20.a (a subspace of a vector space is also a linear or vector space since it satisfies the
three main properties of a vector space` )
If you get below 50% in this pre-assessment it might idicate that you have forgotten some
facts of linear algebra. These might include things like simple definitions, properties and
computational procedures for such objects like matrices, vectors, sets, linear systems of
equations, and real numbers. In that case you are encouraged to browse through the
module on basic mathematical ideas and linear algebra before proceeding. If you get more
than 50% you are also encouraged to review the same module as needed while proceeding
with this module. Some of these basic ideas will surface as assumed knowledge in one
form or another in this module.
[Note: all key concepts are defined in the glossary, which is given in section 11 below.
Where a definition is encountered in the learning activities, reference is made to the
glossary for its articulation, while the Learning Activities concentrate on developing the
concept or skill that is carried by the definition. This is a device to minimise repetition.]
The subject of linear programming has its roots in the study of linear inequalities. In this unit
we give an introduction to linear programming starting with a simple real life problem which
the learner can easily relate with. In linear programming the objective is to maximize or
minimize some linear functions of quantities called decision variables. This can be done
algebraically or geometrically. However here we resolve the linear programming problem
geometrically. With specific examples you are going to see how problems in business,
physical, chemical and biological sciences, engineering, architecture, economics,
agriculture and management are formulated. Learning will involve a number of activities
such as reading about linear programming, optimization, operation research and the nature
of the objective functions and constraints. The learning activities could also involve
extensive use of mathematical software packages to solve the linear programming
problems.
Linear programming
Problem formulation
Objective function
Optimal solution
Constraints
Feasible solution
Basic solution
Basis
Basic variables
Dictionary
Nonbasic variables
Slack variable
Surplus variable
Artificial variable
Unbounded solution
OR-Notes J E Beasley
http://people.brunel.ac.uk/~mastjjb/jeb/or/twomines
Linear Programming
http://home.ubalt.edu/ntsbarsh/opre640a/rpcotdp#rpcotdp
Last visited: 21-02-07
Learning activities
Suppose that we have a commercial farmer who produces a variety of farm produce on a
quarterly basis which include maize, beef, beans, etc. This farmer can only produce a
certain number of products due to several reasons. The main limitations are the size of
his/her farm, the amount of inputs he/she needs, the market, climatic conditions, etc.
Despite all these setbacks the farmer hopes to get some profit after selling his/her produce.
This is a typical example of a linear programming problem situation. Before defining what
we mean, in general, by a linear programming problem, let us consider a few practical real-
world problems that serve to motivate and, at least vaguely, to define this subject.
Notes
The following may help you to understand the notations from the above readings:
�p a
i =1
i ij
m
cj
is net profit for the jth product
m
c j = s j - �pi aij
i =1
cj xj
xj
is the total net profit for units of product j.
Discussion
In pairs narrate a situation in which Linear Programming is involved and then formulate that
problem into a Linear Programming Problem.
Are you able to visualize the Formulation?
Objective Function:
Maximise/minimise
f ( x1 , x 2 , ...., x n ) = c1 x1 + c 2 x 2 + .. + c n x n
Where:
x is the decision variable
n is the number of decision variables in the objective function
cj is unit cost or unit profit of the jth decision variable
Such that:
Technological Constraints:
��
�
��
ai1 x1 + ai 2 x2 + L + ain xn �= �b
�
��
� �
for i = 1, 2,L , m
Where
�a11 � �a12 � �a1n �
� � � � � �
ai1 = �M� , ai 2 = �M � , L , ain = �M �
�am1 � �am 2 � �amn �
� � � � � �
Sign Restrictions
xj ≥ 0
Further reading
A farmer grows tomatoes and peas on her 125 hectres piece of land. It costs $20 000
dollars grow a hectare of tomatoes and $10 000 to grow a hectare of peas. However , Agri
Bank gave her only $1 500 000 as loan. It takes 18 working-hours to grow an hectare of
tomatoes and 6 working-hours to grow a hectare of peas. She wants to devote 1080
working-hours for the whole job. If the profits from a hectare of tomatoes and a hectare of
peas are $40 000 and $25 000, respectively. How many hectares of each should she grow
to maximize her total profit? What is the maximum possible profit?
Steps to follow
Answer: The problem of the farmer is that of maximising her profit having constraints
on available land, production costs, and the number of working hours
Answer:
i) Let x1 and x2 be the decision variables of the number of hectares for beans and
peas respectively.
ii) Her total growing expenses are 20000x1 + 10000x2 ≤ 1500 000
Or 2x1 + x2 ≤ 150 constraint on expenses
iii) The total number of required working hours is 18x 1 + 6x2 ≤ 1080
Or 3x1 + x2 ≤ 180 constraint on working hours
f ( x1 , x2 ) = 40000 x1 + 25 x2
(1)
Exercise 1
Readings
Discussion
Find colleagues to talk this through with.
Note
Answers to Exercise 1
Question 1
For the answer to this question check “Managing a Production Facility” from page 3 to 5 of
Linear Programming: Foundations and Extensions
Question 2
Some of the major application areas to which linear programming can be applied are:
Blending
Production planning
Oil refinery management
Distribution
Financial and economic planning
Manpower planning
Blast furnace burdening
Farm planning
Question 3
1.1
Let x and y be our variables for time given to produce bands and coils respectively
.
Time constraint
x + y ≤ 40
Tonnage constraints
200x ≤ 6000
140y ≤ 4000
Objective function
f ( x, y ) = 25(200 x ) + 30(140 y )
Maximize
f ( x, y ) = 5000 x + 4200 y
Such that
x + y ≤ 40
200x ≤ 6000
140y ≤ 4000
x ≥ 0, y ≥ 0
Note: There are two situations in which no optimal solution can be found. First, if the
constraints contradict each other (for instance, x ≥ 2 and x ≤ 1) then the feasible region is
empty and there can be no optimal solution, since there are no solutions at all. In this case,
the linear programming is said to be infeasible.
Feasible region
Feasible solutions
Optimal solution and convexity
Feasible production set
Production possibility set or opportunity set
Extreme points
Infeasible problem
Hyperplane
Halfspace
Convex polyhedral set
Convex polyhedral cone
o Read from the link given in order to have an understanding of the resolution of a
Linear Programming problem by geometry. This will give the learner a general picture
on the geometry approach.
o Analyze the example given in the link. This will help the learner to understand the
steps and procedures followed in the resolution.
o Do the exercise from the textbook Linear Programming: Foundations and Extensions
by Robert J. Vanderbei.
Learning Activities
Reading
This link will help you to understand how to graph inequalities and identify the wanted
regions which are called feasible regions in linear programming problems. The feasible
region contains all possible solutions and from these we find the optimal solution.
NOTE
When the number of variables in a linear programming problem is two or three the feasible
solutions can be determined graphically by drawing the graphs of inequalities of the
constraints.
The following steps are essential when one is solving linear programming problems
geometrically.
Example
Maximize:
f ( x, y ) = 5 x + 7 y
subject to:
x + y - 7 �0
2 x - 3 y + 6 �0
x �0, y �0
1. Is the problem an linear programming?
Yes, if and only if: All variables have power of 1, and they are added or subtracted
(not divided or multiplied). The constraint must be of the following forms ( ≤, ≥, or =,
that is, the linear programming-constraints are always closed), and the objective
must be either maximization or minimization.
x + y - 7 �0
2 x - 3 y + 6 �0
x �0, y �0
After all the constraints are graphed, you should have a non-empty (convex) feasible
region, unless the problem is infeasible.
In general, if the feasible region is within the first quadrant of the coordinate system
then, for the maximization problems you are moving the iso-value objective function
parallel to itself far away from the origin point (0, 0), while having at least a common
point with the feasible region. However, for minimization problems the opposite is
true, that is, you are moving the iso-value objective parallel to itself closer to the
origin point, while having at least a common point with the feasible region. The
common point provides the optimal solution.
Exercise 2
Read Linear Programming: Foundations and Extension by Robert J. Vanderbei page 24
Work through numbers 2.1, 2.2, 2.3, 2.5 and 2.10.
Further reading
Answers to Excercise 2
For answers to the given problems check on page 449 of your main book, Linear
Programming: Foundations and Extensions by Robert J. Vanderbei
In this unit we want to consider the computational aspects of the linear programming
problem and do a sensitivity analysis used to determine how stable the optimal solution is
to changes in some related variables. Here the resolution is done algebraically, i.e. using
the notions of duality, simplex method, the method of Big M, and the mutual primal
algorithm. Therefore the learner needs knowledge from unit 1 in order to understand unit 2
because the transformation of the linear programming problem into standard form helps in
the resolution of the linear programming problem algebraically. In this unit we do some
analysis using the derivatives and existence conditions of optimality.
Basic variables
Nonbasic variables
Augmented matrix
Pivot
Pivot column
Test ratio
Tableau
Cycling
Optimality Conditions
http://www.math.mtu.edu/
%7Emsgocken/ma5630spring2003/lectures/lag1/lag1/node1.html
Last visited: 16-02-07
http://mat.gsia.cmu.edu/QUANT/notes/node63.html#SECTION008300000000000000
00
Learning Activities
Optimality Conditions
In simple terms, optimality conditions are certain conditions which should tell you that you
have reached the optimal solution. For the Maximization Problem if all nonbasic variables
have negative or zero coefficients in the objective function, an optimal solution has been
obtained. If you were to substitute one of the non- basic variables with a non-negative value
(since the variables are non-negative), then the value of the final solution is reduced.
Hence you are certain that the optimal solution has been obtained. Similarly, for the
Minimization Problem if all non-basic variables have positive or zero coefficients in the
objective function, an optimal solution has been obtained.
Reading
Further Reading
http://www.maths.abdn.ac.uk/~igc/tch/mx3503/notes/node67.htm
Exercise 3
Look at the example from Linear Programming: Foundations and Extension by Robert J.
Vanderbei, page 13, whose solution is given on pages 15 and 16.
Maximize 4 x1 + 5 x2 + 9 x3 + 11x4
Subject to
x1 + x2 + x3 + x4 �15
7 x1 + 5 x2 + 3x3 + 2 x4 �120
3 x1 + 5 x2 + 10 x3 + 15 x4 �100
x1 �0, x2 �0, x3 �0, x4 �0
Solution
Let x0 be the value of the objective function add the slack variables x5 , x6 , x7 to your
constraints so that you have equality. Then write the system as
x0 - 4 x1 - 5 x2 - 9 x3 - 11x4 = 0
x1 + x2 + x3 + x4 + x5 = 15
7 x1 + 5 x2 + 3x3 + 2 x4 + x6 = 120
3 x1 + 5x2 + 10 x3 + 15 x4 + x7 = 100
After going through four iterations of the Simplex Method you get to a stage where the
nonbasic variables x2 , x4 , x5 or x7 can only have value zero. That is to say we have
695 3 11 13 5
x0 = - x2 - x4 - x5 - x7
7 7 7 7 7
In this section we will learn how to solve the linear programming problem algebraically. The
main algorithm we shall follow is the Simplex Algorithm. The simplex algorithm, developed
by George Dantzig (1947) solves linear programming problems by constructing an
admissible solution at a vertex of the polyhedron and then walking along edges of the
polyhedron to vertices with successively higher values of the objective function until the
optimum is reached. Although this algorithm is quite efficient in practice and can be
guaranteed to find the global optimum if certain precautions against cycling are taken, it
has poor worst-case behavior: it is possible to construct a linear programming problem for
which the simplex method takes a number of steps exponential in the problem size.
Actually, for some time it was not known whether the linear programming problem was
solvable in polynomial time.
Basis
Basic variables
Nonbasic variables
Slack variable
Surplus variable
Artificial variable
Basic solution
Degeneracy
Primal problem
Dual problem
Weak duality
Strong duality
Primal feasibility
Dual feasibility
Primal feasibility
Dual feasibility
In addition to reading about the logic of the Simplex Algorithm and practicing applying it to
specific linear programming problem situations, in this Learning Activity the learner will be
encouraged to also peform those Simplex computational procedures using appropriate
software that is accessible to the learner.
A woman, baby at the back, pondering over the easiest way of crossing a fast flowing river.
The methods of linear programming are based on the theories of matrices and finite-
dimensional vector spaces and the simplex method for solving linear programming
problems is built around the basic solution of a set of simultaneous linear equations. For
more details about the basic solutions and vector spaces read your module on Linear
algebra or try the well illustrated example by Richard S. Barr on the following link:
http://engr.smu.edu/~barr/ip/ch1/node6.html
When you are solving linear programming problems using the Simplex algorithm the main
steps to remember are:
1. Set up the intial simplex tableau
2. Locate the pivot of the tableau
3. If the pivot is 1, then go to step 4 ; otherwise divide the pivotal row by the pivot to get
1 in the pivotal position
4. Convert the remaining entries of the pivotal column into zeros by using the
elementary row operations (which you have learnt in the linear algebra module)
5. Repeat steps 2 to 4 until a tableau with non-negative indicators is obtained. This is
the final tableau we need in this algorithm and it is called the terminal simplex.
6. The optimal solution and the maximum value of the objective function can be read
from that terminal tableau.
Let us go through the steps using the following example adapted from by Koshy (1979)
Maximize
f ( x, y) = 170 x + 225 y
Subject to:
x + y �300
2 x + 3 y �720
x �0, y �0
x + y + s1 = 300
2 x + 3 y + s2 = 720
x + y + s1 = 300
2x + 3y + s2 = 720
-170x - 225y + f = 0
x y s1 s2 f rhs
1 1 1 0 0 300
720
2 3 0 1 0
-170 -225 0 0 1 0
x y s1 s2 f rhs
1 1 1 0 0 300
720
2 3 0 1 0 Pivot row
-170 -225 0 0 1 0 Pivot
Pivot column
x y s1 s2 f rhs
1 1 1 0 0 300
2/3 1 0 1/3 0 240
-170 -225 0 0 1 0
Step 4 Adding -1 times the second to the first and 225 times the second row to the third,
we get
x y s1 s2 f rhs
1/3 0 0 -1/3 0 60
2/3 Template1
Module Development 0 1/3 0 240 38
-20 0 0 75 1 54000
New pivot
Step 5 The new pivot is 1/3; we divide the first row by 1/3 and then add -2/3 times the
resulting first row to the second and 20 times the first row to the third row.
x y s1 s2 f rhs
1 0 3 -1 0 180
0 1 -2 1 0 120
0 0 60 55 1 57600
Maximum value
x + 3s1 - s2 = 180
y - 2s1 + s2 = 120
60s1 + 95s2 = 57 600
That is
x = 180 - 3s1 + s2
y = 120 + 2 s1 - s2
f = 57600 - 60 s1 - 95s2
f has maximum value of 57 600 when s1 = 0 and s2 = 0, and this yields x =180 and y=120
Note
The values of f, x and y can be easily read from the terminal simplex, thus the optimal
solution and the maximum value of the objective function can be read from this terminal
tableau.
In the case where we cannot find an initial basic feasible solution you could to use the Big
M method where you add a non-negative large integer M > 0.
To illustrate the use of the Big M method, let us follow the example adapted from Wagner
(1975)
Maximize f ( x1 , x2 ) = -3x1 - 2 x2
Subject to
x1 + x2 = 10
x1 �4
x1 �0, x2 �0
Then after adding a surplus variable x3 in the inequality above, you can write the model as
x0 + 3 x1 + 2 x2 = 0
x1 + x2 = 10
x1 - x3 = 4
Next, introduce artificial variables y1 and y2 , and let M =10 as our large integer, for
instance, giving
x0 + 3 x1 + 2 x2 + 10 y1 + 10 y2 = 0
x1 + x2 + y1 = 10
x1 - x3 + y2 = 4
To initiate the algorithm, you have to subtract (M =10) times row 2 and (M =10) times row 3
from row 1 to eliminate y1 and y2 :
x0 - 17 x1 - 8 x2 + 10 x3 = -140
x1 + x2 + y1 = 10
x1 - x3 + y2 = 4
From here you can then proceed using the Simplex method.
You can verify that x1 = 4 and x2 = 6 are optimal.
Further reading
Exercise 4
The following tableaus tables were obtained in the course of solving linear program
non-negative variables x1 and x2 and 2 inquality constraints, the objective function, z is
maximisation. Slack variables s1 and s2 were added. In each case, indicate whether the
linear program:
(i) is unbounded
(ii) has a unique optimum solution
(iii) has an alternate optimum solution
(iv) is degenerate (in this case, indicate whether any of the above holds).
a)
z x1 x2 s1 s2 rhs
1 0 3 2 0 20
0 1 -2 -1 0 4
0 0 -1 0 1 2
b)
z x1 x2 s1 s2 rhs
1 0 -1 0 2 20
0 0 0 1 -2 5
0 1 -2 0 3 6
c)
z x1 x2 s1 s2 rhs
1 2 0 0 1 8
0 3 1 0 -2 4
0 -2 0 1 1 0
d)
z x1 x2 s1 s2 rhs
1 0 0 2 0 5
0 0 -1 1 1 4
0 1 1 -1 0 4
Every linear programming has another linear programming called its dual, which shares the
same data and is derived through rational arguments. In this context the original linear
programming is called the primal linear programming. Variables in the dual problem are
different from those in the primal, each dual variable is associated with a primal constraint,
it is the marginal value or Langrange multiplier corresponding to that constraint.
The problem faced by the Production Manager as the Optimist and the Comptroller as the
Persimist in Linear Programming: Foundations and Extensions by Robert J. Vanderbei,
chapter 1, identifies a situation for a dual problem. The Resource Allocation Problem in
chapter 5 pages 73-78 of same book is a good illustration of the formulation of a dual
problem from its primal problem.
Let us illustrate the formulation of the dual problem using a tailor’s problem
Uncontrollable Inputs
trousers shirts available
labour 3 2 50
raw material 4 3 60
net income 20 15
Maximize
f ( x1 , x2 ) = 20 x1 + 15x2
subject to:
3 x1 + 2 x2 �50 labour constraint
4 x1 + 3 x2 �60 material constraint
x1 �0, x2 �0
Supose the tailor wishes to buy insurance for his net income. Let z 1 = the dollar amount
payable to the tailor for every labour hour lost due to unforseen problems, and z 2 = the
dollar amount payable to the tailor for every raw material unit lost.
Minimize
f ( z1 , z2 ) = 50 z1 + 60 z2
subject to:
3 z1 + 4 z2 �20 Net income from a trouser
2 z1 + 3 z2 �15 Net income from a shirt
z1 �0, z2 �0
If we work out the solutions of this problem you will see that the insurance company’s
problem is closely related to the tailor’s problem.
Reading
Dual Theorem
a) In the event that both primal and dual problems possess feasible solutions, then the
primal problem has an optimal solution x *j for j= 1, 2, …., n, the dual problem has an optimal
solution y*i , for i = 1, 2, ….., m, and
n m
b) If either the primal or dual problem posses a feasible solution with a finite optimal
objective-function value, then the other problem possesses a feasible solution with the
optimal objective-function value.
Note
Here is a didactic example to illustrate the formation of a dual problem from its primal.
Maximize
4 x1 + 5 x2 + 9 x3 + 11x4
Subject to:
x1 + x2 + x3 + x4 �15
7 x1 + 5 x2 + 3 x3 + 2 x4 �120
3 x1 + 5 x2 + 10 x3 + 15 x4 �100
x j �0
For j =1, 2, 3, 4
The dual problem can easily be obtained using the duality relationships in the table above
as:
Minimize
15 y1 + 120 y2 + 100 y3
Subject to
y1 + 7 y2 + 3 y3 �4
y1 + 5 y2 + 5 y3 �5
y1 + 3 y2 + 10 y3 �9
y1 + 2 y2 + 15 y3 �11
y1 �0, y2 �0, y3 �0
1. In your own words explain what you understand by a dual problem in linear
programming.
2. State the dual theorem and then prove it.
3. Do questions 5.1 , 5.2 and 5.16 on page 79 of Linear Programming : Foundations
and Extensions by Vanderbei.
Further Reading
You can read the following link for more examples of formulating a dual problem in linear
programming:
http://www.maths.abdn.ac.uk/~igc/tch/mx3503/notes/node66.html
Answers to Exercise 5
Question 1
Read the Tailor’s Problem or the Resource Allocation Problem and then explain them in
your words to your colleague.
Question 2
Weak and strong duality theorems combined together.
Question 3
For question 5.1 we are given the problem as follows
Maximize x1 - 2 x2
Subject to
x1 + 2 x2 - x3 + x4 �0
4 x1 + 3 x2 + 4 x3 - 2 x4 �3
- x1 - x2 + 2 x3 + x4 = 1
x2 �0, x3 �0
Subject to
- x1 - 2 x2 + x3 - x4 �0
4 x1 + 3 x2 + 4 x3 - 2 x4 �3
- x1 - x2 + 2 x3 + x4 �1
x1 + x2 - 2 x3 - x4 �-1
Minimize 3y2 + y3 - y4
Subject to
- y1 + 4 y2 - y3 + y4 �1
2 y1 + 3 y2 - y3 + y4 �-2
y1 + 4 y2 + 2 y3 - 2 y4 �0
- y1 - 2 y2 + y3 - y4 �0
5.2 To solve this problem refer to theorem 5.2 on page 60 of Linear Programming:
Foundations and Extensions. Find the dual of the problem as illustrated in the problem
above.
In this activity we are going to answer some of the post-optimality questions such as
1) If the profit contribution of a particular basic activity decreases, does the current
solution remain optimal?
2) What happens if resource availability is curtailed?
3) What happens if a new activity is added?
4) How far the input parameter values vary without causing violent changes in an
optimal solution.
We are also going to do marginal and parametric analysis and learn what is involved in
each of the analyses. Learners should to do some sensitivity analysis on some optimal
solutions they have found in activity 4.
Parametric analysis
Marginal analysis
Sensitivity Analysis
http://www.jr2.ox.ac.uk/bandolier/booth/glossary/sensanal.html
Last visited: 15-02-07
Sensitivity Analysis
http://pespmc1.vub.ac.be/ASC/SENSIT_ANALY.html
Last visited: 15-02-07
The learner will read on the definition of sensitivity analysis and why it is carried out.
They will refer mainly to the recommended text: Linear Programming: Foundations and
Extensions by Robert J. Vanderbei, which explains the purpose of sensitivity analysis
well. The learner is encouraged to discuss with colleagues and perfom some practical
computaions associated with sensitivity analysis using appropriate (and accessible)
software packages. Interpreting the results of running a sensitivity analysis is also an
important exercise at it has a direct bearing on eventual decision making processes. A
number of links that discuss this issue of sensitivity analyses and provide examples of
software based computer runs are supplied for the learner in this Learning Activity. The
learner will increase her/his appreciation and understanding if he/she also checks on
these links.
Learning Activities
f x y s1 s2 RHS
0 3 1 1 0 300
0 1 720
0 2 3
1 -170 -225 0 0 0
x y f s1 s2 RHS
1 0 0 3 -1 180
0 1 0 -2 1 120
0 0 1 60 55 57600
Row 0
It has all non-negative values in Row 0 (which we will often refer to as the cost row), all
non-negative right-hand-side values, and a basis matrix embedded.
Sensitivity analysis starts at this point to determine the effects of small changes in the
optimal solution. We will try to determine how that change affects the final tableau, and try
to re-form the final tableau accordingly.
The first change we will consider is that of changing a cost value, that is, changing the
values of x and y by a small amount in the original problem. If we carry out the calculation
to find the optimal solution for the changed value of x in the original problem, we will get the
same final tableau as before, except that the corresponding cost entry would be lower
(this is because we never did anything except add or subtract scalar multiples of Rows 1
through m to other rows; we never added or subtracted Row 0 to other rows).
Carry out the calculation and then confirm the statement above.
Right-hand-side changes
Maximize f ( x, y ) = 4 x + 5 y
subject to:
2 x + 3 y �12
x + y �5
x, y �0
z x y s1 s2 RHS
1 0 0 1 2 22
0 0 1 1 -2 2
0 1 0 -1 3 3
Now suppose we change the amount of the right-hand-side from 12 to (12+) in the first
constraint, the tableau changes to:
z x y s1 s2 RHS
1 0 0 1 2 22 +
0 0 1 1 -2 2+
3 -
0 1 0 -1 3
This represents an optimal tableau as long as the right hand side is all non-negative. In
other words, we need between -2 and 3 in order for the basis not to change. For any in
that range, the optimal objective will be (22+). For example, with equals 2, the new
objective is 24 with y = 4 and x = 1.
Sensitivity Analysis
http://en.wikipedia.org/wiki/sensitivity_analysis
Last visited: 15-02-07
Use accessible software packages (such as Pivot Tool) to perform some sensitivity
analyses on any 2 optimum solutions to an linear programming problem that you have
previously obtained. Interpret the results of the analyses you have done and discuss your
interpretations with a colleague.
Pivot Tool: http://campuscgi.princeton.edu/~rvdb/JAVA/network/nettool/netsimp.html
Exercise 6
Further Activity
Answers to Exercise 6
Artificial Variable
A variable added to a linear program in phase 1 to aid finding a feasible solution.
Basic Solution
x of (Ax = b) is a basic solution if the n components of x can be partitioned into m "basic"
and n-m "non-basic" variables in such a way that:
the m columns of A corresponding to the basic variables form a nonsingular basis
and,
the value of each "non-basic" variable is 0.
The constraint matrix A has m rows (constraints) and n columns (variables).
Basis
The set of basic variables.
Basic Variables
A variable in the basic solution (value is not 0).
Constraints
A set of equalities and inequalities that the feasible solution must satisfy.
Convex, is a set of points S in the n-dim space, such that if the line segment connecting
any two points X 1 , X 2 S , belongs completely in S. Mathematical definition of convexity is
expressed as:
Convex sets
Nonconvex convex
Cycling is when a sequence of pivots goes through the same tableaux and repeats itself
indefinitely.
Degeneracy occurs when some basic variable is at one of its bound values (canonically
zero). Without any given qualification, a (basic) solution is degenerate if one or more of its
basic values is zero (the canonical lower bound).
Dual degenerate is a solution where one of its non-basic variables has zero reduced cost.
In general, a solution is degenerate if it is not strictly complementary.
Duality:
Weak duality is say, if x, p are feasible solutions to primal and dual problems
respectively, then b�
p �c�
x.
Strong duality is when the primal problem has an optimal solution and the dual
problem has also an optimal solution and c� x* = b�
p * [where x* and p* are optimal
solutions of the primal and the dual problem respectively.]
Feasible. A point is feasible if it satisfies all constraints. The feasible region (or feasibility
region) is the set of all feasible points. A mathematical program is feasible if its feasible
region is not empty.
Dual feasiblity means having a feasible solution of the dual linear programming
problem
Feasible Solution
A solution vector, x, which satisfies the constraints.
a
X:aX>b
X X:aX=b
X:aX<b
For example the half-planes of the inequality a1 X 1 + a 2 X 2 b are the planes on the left
and right side of the equality a1 X 1 + a 2 X 2 b .
given a linear constraint:
a1 X 1 + a 2 X 2 + ... + a n X n = b ………….**
T
X 0 = X 01 , X 02 ,..., X 0 n
and a point satisfying Equation (**) as equality, we can perceive the solution space of
the equation:
a1 X 1 + a2 X 2 + ..... + an X n = b
a1 X 1 + a2 X 2 + ..... + an X n = b
Isoprofit lines are lines for the objective function that are drawn to locate the optimal value
when using the geometric approach.
Linear programming problem is a set of (linear) inequalities (with a solution set S) and a
(linear) function (often cost or profit) whose value (within S) is to be maximized or
minimized.
Marginal analysis is concerned with the effects of small perturbations, maybe measurable
by derivatives.
Nonbasic Variables
A variable not in the basic solution (value = 0).
Objective Function
The function that is either being minimized or maximized. For example, it may represent the
cost that you are trying to minimize.
Parametric analysis is concerned with larger changes in parameter values that affect the
data in the mathematical program, such as a cost coefficient or resource limit.
Pivot. This is the algebra associated with an iteration of Gauss-Jordan elimination, using
the forward transformation. (refer to illustration below)
Pivot row
Pivot
Pivot column
Primal degenerate is a pivot where the associated basic solution (x) does not change
(i.e., the non-basic variable enters the basis, but its level remains at the same bound
value, in which case no basic variable changes level).
Sensitivity analysis. The concern with how the solution changes if some changes are
made in either the data or in some of the solution values (by fixing their value).
Simplex method. An algorithm invented to solve a linear program by progressing from one
extreme point of the feasible polyhedron to an adjacent one. The method is an algorithm
strategy, where some of the tactics include pricing and pivot selection.
Simplex (pl. simplices). {x in R: Sum{xj} = 1}. For n=1, this is a point (x=1). For n=2, this is
a line segment, joining points (1,0) and (0,1). For n=3, this is a triangle, joining the vertices
(1,0,0), (0,1,0), and (0,0,1). This is sometimes called an n-simplex, denoted by Sn (note its
dimension is n-1). The open simplex excludes the axes: {x in Sn: x > 0}.
Slack Variable
A variable added to the problem to eliminate less-than constraints.
[A Non-Standard Problem is simply a problem which is not standard, and hence fails to
satisfy at least one of [1] through [4] above.]
Surplus Variable
A variable added to the problem to eliminate greater-than constraints.
Tableau (pl. tableaux). A detached coefficient form of a system of equations, which can
change from x +Ay = b to x'+A'y' = b'. The primes denote changes caused by multiplying
the first equation system by the basis inverse (a sequence of pivots in the simplex
method).
Unbounded Solution
For some linear programs it is possible to make the objective arbitrarily small (without
bound). Such an linear programming is said to have an unbounded solution.
All learners are required to read this book whenever he/she is starting a new unit or activity.
All other links are to help the learner to understand more about Linear Programming
problems
Rationale: It provides the most detailed references to any mathematical topic. Students
should start by using the search facility for the module title. This will find a major article. At
any point students should search for key words that they need to understand. The entry
should be studied carefully and thoroughly.
Rationale: Students should use wikipedia in the same way as MathWorld. However, the
entries may be shorter and a little easier to use in the first instance. Thy will, however, not
be so detailed.
Complete reference :
http://www-history.mcs.standrews.ac.uk/Indexes
Abstract : The MacTutor Archive is the most comprehensive history of mathematics on the
internet. The resources are organsied by historical characters and by historical themes.
Rationale: Students should search the MacTutor archive for key words in the topics they
are studying (or by the module title itself). It is important to get an overview of where the
mathematics being studied fits in to the hostory of mathematics. When the student
completes the course and is teaching high school mathematics, the characters in the
history of mathematics will bring the subject to life for their students. Particularly, the role of
women in the history of mathematics should be studied to help students understand the
difficulties women have faced while still making an important contribution.. Equally, the role
of the African continent should be studied to share with students in schools: notably the
earliest number counting devices (e.g. the Ishango bone) and the role of Egyptian
mathematics should be studied.
2. TUTOR: http://www.tutor.ms.unimelb.edu.au/
H. Optimality Conditions
http://www.math.mtu.edu/%7Emsgocken/ma5630spring2003/lectures/lag1/lag1/node1.html
Last visited: 16-02-07
This link takes the student step by step in the construction of the dual problem. The
association between the primal and dual problem is well illustrated with good examples.
In this module you have been introduced to an area of mathematics called Linear
Programming that plays a central role in a wider field called Operations Research.
Operations Research deals with situations where one is interested in optimising (minimising
or maximising) a specific quantity that is often framed as a function of several influencing
factors (variables) with an overall goal of making decisions related to the behaviour of the
situation of interest. Linear programming offers a technique for resolving a class of
problematic situations of that nature.
To develop a feel for mathematics related to Linear Programming, you have learned the
following main ideas:
Optimality conditions for the objective function of a linear programming problem. [In the
step-by-step procedure for eliminating basic variables in the initial tableau constructed
from the objective function and its constraints, an indication that an optimal value has
been reached is that for a maximization problem, the coefficients of the basic feasible
variables in the objective function should be negative, meaning that the variables can no
longer contribute to increasing the value of the objective function. Similarly for a
minimization problem]
In short, the module looked at formulation of the linear programming problem and its
solution using the geometric approach (graphical method) and the algebraic method
(simplex method). Stability of the solutions was checked using sensitivity analysis.
The authors of the module believe that the learner who has successfully developed a fairly
good understanding of the main concepts and mastery of the associated skills (at least as
indicated by the assessment activities in-built in the module) will not only be able to teach
the introductory levels of linear programming concepts at secondary school level, but will
also be in a position to proceed further within the field of Operations Research.
A genuine attempt has been made to select or design test items that assess the extent
the student has grasped the essential features and characteristics of the general linear
programming problem described in Unit 1 box of the Flow of Learning chart in the earlier
overview section [see section 7], and developed associated competencies described in
the Unit 2 box of the same chart. A description of the test items and the related learning
objective each item is intended to assess, and the list of the actual test items now follow
below.
****The answers to the test items are also supplied at the end of the test item listing.****
,
Acknowledgement: [Some of the questions have been adaptated from selected exercises
in Wagner, H. M. (1975, 2nd ed). Principles of Principles of Operations Research.
Englewood Cliffs, New Jersey: Prentice-Hall].
Question 4 tests the student’s capability to solve the linear programming problem using
the Simplex Method.
Questions 5 and 6 test the student’s capability to solve the linear programming problem
using the Big- M Method followed by the Simplex Method. The student should know
when it is appropriate to use the Big- M method.
Question 7 checks if the student can identify the primal and dual forms in a linear
programming situation and formulate the dual of a given primary linear programming
problem.
Question 8 tests the student’s capability to investigate the feasibility and boundedness
characteristics of a linear programming problem.
Question 9 tests the student’s capability to solve the linear programming problem using
the Dual Simplex method.
Question 10 tests the student’s capability to solve a linear programming problem using
the Simplex Method and then carry out a sensitivity analysis on the solution obtained.
The Mufoya Bicycle Company produces two kind of bicycles by hand: Mountain Bike and
Street Racers. Mufoya wishes to find out the rate at which each type of bicycle should be
produced in order to maximize the profits on the sales of the bikes. Mufoya assumes that
the company can sell all the bicycles produced. The physical data on the production
process is available from the company engineer. A different team produces each kind of
bicycle, each team has a different maximum production rate: 2 mountain bikes per day and
3 racers per day respectively. Producing a bicycle of either type requires the same amount
of time on the metal finishing machine (a production bottle-neck), and this machine can
process at most a total of 4 bicycles per day, of either type. The company accountant
esimates that mountain bikes are currently generating a profit of $15 per bicycle and racers
are giving a profit of about $10 per bicycle. Formulate the Linear Programming Problem.
Questions 2 and 3
b 160 2 4
c 370 2 10
d 300 5 6
That is to say each of the x standard timers uses 4 of component a, and each of the y
precision ones uses 2, and the factory cannot use more than what is in stock.
[B] (i) Find the feasible region of the Linear Programming problem using the
geometrical method.
Use the Simplex method to solve the following linear programming problem
Maximize 4 x1 + 5 x2 + 9 x3 + 11x4
Subject to
x1 + x2 + x3 + x4 �15
7 x1 + 5 x2 + 3x3 + 2 x4 �120
3 x1 + 5 x2 + 10 x3 + 15 x4 �100
x1 �0 , x2 �0 , x3 �0
Question 5
Subject to
2x1 + x2 ≤ 600
x1 + x2 ≤ 225
5x1 + 4x2 ≤ 1000
x1 + 2x2 ≥ 150
x1, x2 ≥ 0
Question 6
Maximize -3x1 - 2 x2
Subject to
x1 + x2 = 10
x1 �4
x1 �0, x2 �0
Question 7
(a) Explain what is meant by the primal and dual of a linear programming problem.
Maximize 4 x1 + 5 x2 + 9 x3 + 11x4
Question 8
subject to
x1 + x2 ≤ 2
−2x1 − 2x2 ≤ −9
x1, x2 ≤ 0.
Maximize x1 − 4x2
subject to
−2x1 + x2 ≤ −1
−x1 − 2x2 ≤ −2
x1, x2 ≥ 0.
Question 9
Minimize 2x1 + x3
Subject to
x1+ x2 - x3 ≥ 5
x1 - 2x2 + 4x3 ≥ 8
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0
Question 10
Maximize z = 15 x1 + 10 x2
Subject to
.
x1 �2
Suppose that the third constraint is changed to x 1+x2 ≤ 3. That is to say the new problem
becomes:
Maximize z =15x1+10x2
Subject to
x1 ≤ 2
x2 ≤ 3
x1+x2 ≤ 3
Investigate whether or not the solution to the Linear Programming problem is sensitive to
the change in the constraint.
Question 1
The first step is to identify the variables. These are the values you can set or otherwise
control. The Mufoya variables are the production rates of the mountain bikes, x1 and
racers, x2 .
Questions 2 and 3
[A] Maximize 2x + 3y
subject to:
.
x + y �50
4 x + 2 y �220
2 x + 4 y �160
2 x + 10 y �370
5 x + 6 y �300
x, y �0
[B] Sketch:
x = 20.00
y = 30.00
Question 4
Let x0 be the value of the objective function add the slack variables x5 , x6 , x7 to your
constraints so that you have equality.
x0 - 4 x1 - 5 x2 - 9 x3 - 11x4 = 0
x1 + x2 + x3 + x4 + x5 = 15
7 x1 + 5 x2 + 3x3 + 2 x4 + x6 = 120
3 x1 + 5x2 + 10 x3 + 15 x4 + x7 = 100
After going through four iterations of the Simplex Method you get to a stage where the non-
basic variables x2 , x4 , x5 or x7 can only have value zero.
Quesstion 5
Standard form:
Subject to
Not in canonical form because there is no basic variable in the fourth equation. Therefore
we add an artificial variable to that equation (r 1) and give it a large negative coefficient in
the objective function, to penalize it:
Subject to
2x1 + x2 + s1 = 600
x1 + x2 + s2 = 225
5x1 + 4x2 +s3 = 1000
x1 + 2x2 - s4 + r1 = 150
x1 , x2 , s1 , s2 , s3 , s4 , r1 ≥ 0
x1 x2 s4 s1 s2 s3 r1 B
Z -3 -4 0 0 0 0 +M
s1 2 3 0 1 0 0 0 600
s2 1 1 0 0 1 0 0 225
s3 5 4 0 0 0 1 0 1000
r1 1 2 -1 0 0 0 1 150
Not in Canonical form because of +M entry on Z row for one basic variable (r 1). Pivot to
replace +M on Z row by zero - Z row – M*r1 row:
x1 x2 s4 s1 s2 s3 r1 b
x1 x2 Z s4 -1 s10 s2-2 s03 r01 0b M 800
Z 0 s1 0 ½ 0 0 1 3/2 1 10 0M 0825 -3/2 375
s4 0 s2 0 ½ 1 0 1 ½ -1 0 0 1-1 0225 -½ 150
x1 1 s3 0 3 0 0 -1 2 3 00 00 175 -2 700
s3 0 x2 0 ½ 0 1 1 -½-7 0 1 00 025 ½ 75
x2 0 1 0 1 -2 0 0 250
Then after adding a surplus variable x3 in the inequality above, you can write the model as
x0 + 3 x1 + 2 x2 = 0
x1 + x2 = 10
x1 - x3 = 4
x0 + 3 x1 + 2 x2 + 10 y1 + 10 y2 = 0
x1 + x2 + y1 = 10
x1 - x3 + y2 = 4
To initiate the simplex algorithm, you have to subtract (M =10) times row 2 and (M =10)
times row 3 from row 1 to eliminate y1 and y2 :
x0 - 17 x1 - 8 x2 + 10 x3 = -140
x1 + x2 + y1 = 10
x1 - x3 + y2 = 4
Question 7
Subject to.
y1 + 7 y2 + 3 y3 �4
y1 + 5 y2 + 5 y3 �5
y1 + 3 y2 + 10 y3 �9
y1 + 2 y2 + 15 y3 �11
y1 , y2 , y3 �0
Question 8
a) The second constraint implies that, x1 + x2 ≥ 4.5, which contradicts the first
constraint. If a problem has no feasible solution, then the problem itself is called
infeasible.
Question 9
Question 10
You can solve the problem geometrically to find the optimal solution is x 1 = 2, x2 = 1, z = 40.
Since z and x2 changed when an original coefficient was changed, then we say that the L.P.
is sensitive.
References
All learners are required to read this book whenever he/she is starting a new unit or activity.
All other links are to help the learner to understand more about Linear Programming
problems
3. J E Beasley , OR-Notes
http://people.brunel.ac.uk/~mastjjb/jeb/or/twomines
OR-NOTES provides a strong and easy to understand approach to the formulation of the
linear programming problems. The examples are well explained. Students are encouraged
to go through some of the worked examples to strengthen their problem linear
programming problem formulation techniques.
2. Spencer, A. J. M., Parker, D. F., Berry, D. S., England, A. H., Faulkner, T. R., Green,
W. A., Holden, J. T., Middelton, D., & Rogers, T. G. (1977, reprint 1981). Engineering
Mathematics. London: Van Nostrand Reinhold Co Ltd.
3. Koshy, T. (1979). Finite Mathematics and Calculus (with application). Santa Monica,
CA: Goodyear Publishing Co. Inc
Lecturer………………………………………. Signature………………
Coordinator……………………………. Signature……………….
Student Records
This module was developed by David K J Mtetwa, BSc, MSc, MEd, PhD, Grad Cert Edu; in
collaboration with Admire Kurira, BSC, MSc; and Blessing Mufoya, BSc (Hons), MSc, who
are all mathematics teacher educators based in the Department of Science and
Mathematics Education at the University of Zimbabwe.
Dr Mtetwa was born and grew up in Eastern Zimbabwe, where he completed his primary
and secondary education. After obtaining his undergraduate degree majoring in
mathematics and physics at the University of Lesotho, Dr Mtetwa enrolled for a masters
degree in mathematics at a Canadian University. This was followed by a number of
teaching stints at a number of high schools and university colleges in Lesotho, Swaziland,
and Zimbabwe. His teaching certification training was completed at the University of
Zimbabwe in 1984, following which he crossed the Atlantic again, but his time to the United
States to undertake Masters and PhD degrees in mathematics education at the state
universities of New York and Virginia, that were completed in 1991. Dr Mtetwa has since
then been teaching and developing mathematics education courses for diploma and degree
levels at the University of Zimbabwe. He has supervised and graduated many post-
graduate students in the area of mathematics education. Dr Mtetwa is an active member of
various professional associations, including the influencial Southern African Association for
Research in Mathematics, Science, and Technology Education (SAARMSTE) and African
Commission on Mathematics Education (AFRCME).