Linear Programming Problem (LPP)
Linear Programming Problem (LPP)
A Concise Introduction
Thomas S. Ferguson
Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
The Standard Maximum and Minimum Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
The Diet Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
The Transportation Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
The Activity Analysis Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
The Optimal Assignment Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2. Duality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Dual Linear Programming Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
The Duality Theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
The Equilibrium Theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Interpretation of the Dual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5. Generalized Duality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
The General Maximum and Minimum Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Solving General Problems by the Simplex Method . . . . . . . . . . . . . . . . . . . . . . . . . 29
Solving Matrix Games by the Simplex Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1
6. Cycling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
A Modification of the Simplex Method That Avoids Cycling . . . . . . . . . . . . . . . 33
Related Texts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2
LINEAR PROGRAMMING
1. Introduction.
A linear programming problem may be defined as the problem of maximizing or min-
imizing a linear function subject to linear constraints. The constraints may be equalities
or inequalities. Here is a simple example.
Find numbers x1 and x2 that maximize the sum x1 + x2 subject to the constraints
x1 ≥ 0 , x2 ≥ 0 , and
x1 + 2x2 ≤ 4
4x1 + 2x2 ≤ 12
−x1 + x2 ≤ 1
In this problem there are two unknowns, and five constraints. All the constraints are
inequalities and they are all linear in the sense that each involves an inequality in some
linear function of the variables. The first two constraints, x1 ≥ 0 and x2 ≥ 0 , are special.
These are called nonnegativity constraints and are often found in linear programming
problems. The other constraints are then called the main constraints. The function to be
maximized (or minimized) is called the objective function. Here, the objective function is
x1 + x2 .
Since there are only two variables, we can solve this problem by graphing the set
of points in the plane that satisfies all the constraints (called the constraint set) and
then finding which point of this set maximizes the value of the objective function. Each
inequality constraint is satisfied by a half-plane of points, and the constraint set is the
intersection of all the half-planes. In the present example, the constraint set is the five-
sided figure shaded in Figure 1.
We seek the point (x1 , x2 ), that achieves the maximum of x1 + x2 as (x1 , x2 ) ranges
over this constraint set. The function x1 + x2 is constant on lines with slope −1 , for
example the line x1 + x2 = 1 , and as we move this line further from the origin up and to
the right, the value of x1 + x2 increases. Therefore, we seek the line of slope −1 that is
farthest from the origin and still touches the constraint set. This occurs at the intersection
of the lines x1 + 2x2 = 4 and 4x1 + 2x2 = 12 , namely, (x1 , x2 ) = (8/3, 2/3). The value of
the objective function there is (8/3) + (2/3) = 10/3 .
Exercises 1 and 2 can be solved as above by graphing the feasible set.
It is easy to see in general that the objective function, being linear, always takes on
its maximum (or minimum) value at a corner point of the constraint set, provided the
3
6
4x1 + 2x2 = 12
5
x2
4 -x1 + x2 = 1
1 optimal point
x1 + 2x2 = 4
1 2 x 3 4
1
Figure 1.
constraint set is bounded. Occasionally, the maximum occurs along an entire edge or face
of the constraint set, but then the maximum occurs at a corner point as well.
Not all linear programming problems are so easily solved. There may be many vari-
ables and many constraints. Some variables may be constrained to be nonnegative and
others unconstrained. Some of the main constraints may be equalities and others inequal-
ities. However, two classes of problems, called here the standard maximum problem and
the standard minimum problem, play a special role. In these problems, all variables are
constrained to be nonnegative, and all main constraints are inequalities.
We are given an m -vector, b = (b1 , . . . , bm )T , an n -vector, c = (c1 , . . . , cn )T , and an
m × n matrix,
⎛ ⎞
a11 a12 · · · a1n
⎜ a21 a22 · · · a2n ⎟
A=⎜ ⎝ ... .. .. ⎟
. ⎠
..
. .
am1 am2 ··· amn
of real numbers.
The Standard Maximum Problem: Find an n -vector, x = (x1 , . . . , xn )T , to
maximize
cTx = c1 x1 + · · · + cn xn
subject to the constraints
and
x1 ≥ 0, x2 ≥ 0, . . . , xn ≥ 0 (or x ≥ 0 ).
4
The Standard Minimum Problem: Find an m -vector, y = (y1 , . . . , ym ), to
minimize
y Tb = y1 b1 + · · · + ym bm
subject to the constraints
and
y1 ≥ 0, y2 ≥ 0, . . . , ym ≥ 0 (or y ≥ 0 ).
Note that the main constraints are written as ≤ for the standard maximum problem
and ≥ for the standard minimum problem. The introductory example is a standard
maximum problem.
We now present examples of four general linear programming problems. Each of these
problems has been extensively studied.
for j = 1, . . . , n . We do not consider such a diet unless all the minimum daily requirements
are met, that is, unless
5
Example 2. The Transportation Problem. There are I ports, or produc-
tion plants, P1 , . . . , PI , that supply a certain commodity, and there are J markets,
M1 , . . . , MJ , to which this commodity must be shipped. Port Pi possesses an amount
si of the commodity (i = 1, 2, . . . , I ), and market Mj must receive the amount rj of the
commodity (j = 1, . . . , J ). Let bij be the cost of transporting one unit of the commodity
from port Pi to market Mj . The problem is to meet the market requirements at minimum
transportation cost.
Let yij be the quantity of the commodity shipped from port Pi to market Mj . The
total transportation cost is
I
J
yij bij . (4)
i=1 j=1
J
The amount sent from port Pi is j=1 yij and since the amount available at port Pi is
si , we must have
J
yij ≤ si for i = 1, . . . , I . (5)
j=1
I
The amount sent to market Mj is i=1 yij , and since the amount required there is rj ,
we must have
I
yij ≥ rj for j = 1, . . . , J . (6)
i=1
Our problem is: minimize (4) subject to (5), (6) and (7).
Let us put this problem in the form of a standard minimum problem. The number of
y variables is IJ , so m = IJ . But what is n ? It is the total number of main constraints.
There are n = I + J of them, but some of the constraints are ≥ constraints, and some of
them are ≤ constraints. In the standard minimum problem, all constraints are ≥ . This
can be obtained by multiplying the constraints (5) by −1 :
J
(−1)yij ≥ −sj for i = 1, . . . , I . (5 )
j=1
The problem “minimize (4) subject to (5 ), (6) and (7)” is now in standard form. In
Exercise 3, you are asked to write out the matrix A for this problem.
6
of resource Ri used in operating activity Aj at unit intensity. Let cj be the net value
to the company of operating activity Aj at unit intensity. The problem is to choose the
intensities which the various activities are to be operated to maximize the value of the
output to the company subject to the given resources.
Let xj be the intensity at which Aj is to be operated. The value of such an activity
allocation is
n
cj xj . (8)
j=1
The amount of resource Ri used in this activity allocation must be no greater than the
supply, bi ; that is,
aij xj ≤ bi for i = 1, . . . , m . (9)
j=1
x1 ≥ 0, x2 ≥ 0, . . . , xn ≥ 0. (10)
Our problem is: maximize (8) subject to (9) and (10). This is exactly the standard
maximum problem.
J
xij ≤ 1 for i = 1, . . . , I (11)
j=1
I
xij ≤ 1 for j = 1, . . . , J (12)
i=1
and
xij ≥ 0 for i = 1, . . . , I and j = 1, . . . , J . (13)
Equation (11) reflects the fact that a person cannot spend more than 100% of his time
working, (12) means that only one person is allowed on a job at a time, and (13) says that
no one can work a negative amount of time on any job. Subject to (11), (12) and (13), we
wish to maximize the total value,
I
J
aij xij . (14)
i=1 j=1
7
This is a standard maximum problem with m = I + J and n = IJ .
Terminology.
The function to be maximized or minimized is called the objective function.
A vector, x for the standard maximum problem or y for the standard minimum
problem, is said to be feasible if it satisfies the corresponding constraints.
The set of feasible vectors is called the constraint set.
A linear programming problem is said to be feasible if the constraint set is not empty;
otherwise it is said to be infeasible.
A feasible maximum (resp. minimum) problem is said to be unbounded if the ob-
jective function can assume arbitrarily large positive (resp. negative) values at feasible
vectors; otherwise, it is said to be bounded. Thus there are three possibilities for a linear
programming problem. It may be bounded feasible, it may be unbounded feasible, and it
may be infeasible.
The value of a bounded feasible maximum (resp, minimum) problem is the maximum
(resp. minimum) value of the objective function as the variables range over the constraint
set.
A feasible vector at which the objective function achieves the value is called optimal.
8
Exercises.
1. Consider the linear programming problem: Find y1 and y2 to minimize y1 + y2
subject to the constraints,
y1 + 2y2 ≥ 3
2y1 + y2 ≥ 5
y2 ≥ 0.
Graph the constraint set and solve.
2. Find x1 and x2 to maximize ax1 + x2 subject to the constraints in the numerical
example of Figure 1. Find the value as a function of a.
3. Write out the matrix A for the transportation problem in standard form.
4. Put the following linear programming problem into standard form. Find x1 , x2 ,
x3 , x4 to maximize x1 + 2x2 + 3x3 + 4x4 + 5 subject to the constraints,
and
x1 ≥ 0, x3 ≥ 0, x4 ≥ 0.
9
2. Duality.
To every linear program there is a dual linear program with which it is intimately
connected. We first state this duality for the standard programs. As in Section 1, c and
x are n -vectors, b and y are m -vectors, and A is an m × n matrix. We assume m ≥ 1
and n ≥ 1 .
maximize cTx
(1)
subject to the constraints Ax ≤ b and x ≥ 0
minimize y Tb
(2)
subject to the constraints y TA ≥ cT and y ≥ 0
Let us reconsider the numerical example of the previous section: Find x1 and x2 to
maximize x1 + x2 subject to the constraints x1 ≥ 0 , x2 ≥ 0 , and
x1 + 2x2 ≤ 4
4x1 + 2x2 ≤ 12 (3)
−x1 + x2 ≤ 1.
The dual of this standard maximum problem is therefore the standard minimum problem:
Find y1 , y2 , and y3 to minimize 4y1 + 12y2 + y3 subject to the constraints y1 ≥ 0 , y2 ≥ 0 ,
y3 ≥ 0 , and
y1 + 4y2 − y3 ≥ 1
(4)
2y1 + 2y2 + y3 ≥ 1.
If the standard minimum problem (2) is transformed into a standard maximum prob-
lem (by multiplying A, b , and c by −1 ), its dual by the definition above is a standard
minimum problem which, when transformed to a standard maximum problem (again by
changing the signs of all coefficients) becomes exactly (1). Therefore, the dual of the stan-
dard minimum problem (2) is the standard maximum problem (1). The problems (1) and
(2) are said to be duals.
The general standard maximum problem and the dual standard minimum problem
may be simultaneously exhibited in the display:
x1 x2 ··· xn
y1 a11 a12 ··· a1n ≤ b1
y2 a21 a22 ··· a2n ≤ b2
.. .. .. .. .. (5)
. . . . .
ym am1 am2 ··· amn ≤ bm
≥ c1 ≥ c2 ··· ≥ cn
10
Our numerical example in this notation becomes
x1 x2
y1 1 2 ≤4
y2 4 2 ≤ 12 (6)
y3 −1 1 ≤1
≥1 ≥1
The relation between a standard problem and its dual is seen in the following theorem
and its corollaries.
Theorem 1. If x is feasible for the standard maximum problem (1) and if y is feasible
for its dual (2), then
cTx ≤ y Tb. (7)
Proof.
cTx ≤ y TAx ≤ y Tb.
The first inequality follows from x ≥ 0 and cT ≤ y TA. The second inequality follows
from y ≥ 0 and Ax ≤ b .
Corollary 1. If a standard problem and its dual are both feasible, then both are bounded
feasible.
Proof. If y is feasible for the minimum problem, then (7) shows that y Tb is an upper
bound for the values of cTx for x feasible for the maximum problem. Similarly for the
converse.
Corollary 2. If there exists feasible x∗ and y ∗ for a standard maximum problem (1) and
its dual (2) such that cTx∗ = y ∗ Tb , then both are optimal for their respective problems.
Proof. If x is any feasible vector for (1), then cTx ≤ y ∗ Tb = cTx∗ . which shows that x∗
is optimal. A symmetric argument works for y ∗ .
The following fundamental theorem completes the relationship between a standard
problem and its dual. It states that the hypothesis of Corollary 2 are always satisfied
if one of the problems is bounded feasible. The proof of this theorem is not as easy
as the previous theorem and its corollaries. We postpone the proof until later when we
give a constructive proof via the simplex method. (The simplex method is an algorithmic
method for solving linear programming problems.) We shall also see later that this theorem
contains the Minimax Theorem for finite games of Game Theory.
11
There are three possibilities for a linear program. It may be feasible bounded (f.b.),
feasible unbounded (f.u.), or infeasible (i). For a program and its dual, there are therefore
nine possibilities. Corollary 1 states that three of these cannot occur: If a problem and
its dual are both feasible, then both must be bounded feasible. The first conclusion of the
Duality Theorem states that two other possiblities cannot occur. If a program is feasible
bounded, its dual cannot be infeasible. The x’s in the accompanying diagram show the
impossibilities. The remaining four possibilities can occur.
Standard Maximum Problem
f.b. f.u. i.
f.b. x x (8)
Dual f.u. x x
i. x
The Equilibrium Theorem. Let x∗ and y ∗ be feasible vectors for a standard maximum
problem (1) and its dual (2) respectively. Then x∗ and y ∗ are optimal if, and only if,
n
yi∗ = 0 for all i for which j=1 aij x∗j < bi (11)
and m
x∗j = 0 for all j for which ∗
i=1 yi aij > cj (12)
Proof. If: Equation (11) implies that yi∗ = 0 unless there is equality in j aij x∗j ≤ bi .
Hence
m
m n
m n
∗ ∗ ∗
yi bi = yi aij xj = yi∗ aij x∗j . (13)
i=1 i=1 j=1 i=1 j=1
12
Similarly Equation (12) implies
m
n
n
yi∗ aij x∗j = cj x∗j . (14)
i=1 j=1 j=1
By the Duality Theorem, if x∗ and y ∗ are optimal, the left side is equal to the right side
so we get equality throughout. The equality of the first and second terms may be written
as
n
m
cj − yi∗ aij x∗j = 0. (16)
j=1 i=1
Since x∗ and y ∗ are feasible, each term in this sum is nonnegative. The sum can be zero
only if each term is zero. Hence if i=1 yi∗ aij > cj , then x∗j = 0 . A symmetric argument
m
n
shows that if j=1 aij x∗j < bi , then yi∗ = 0 .
Equations (11) and (12) are sometimes called the complementary slackness con-
ditions. They require that a strict inequality (a slackness) in a constraint in a standard
problem implies that the complementary constraint in the dual be satisfied with equality.
As an example of the use of the Equilibrium Theorem, let us solve the dual to the
introductory numerical example. Find y1 , y2 , y3 to minimize 4y1 + 12y2 + y3 subject to
y1 ≥ 0 , y2 ≥ 0 , y3 ≥ 0 , and
y1 + 4y2 − y3 ≥ 1
2y1 + 2y2 + y3 ≥ 1. (17)
We have already solved the dual problem and found that x∗1 > 0 and x∗2 > 0 . Hence, from
(12) we know that the optimal y ∗ gives equality in both inequalities in (17) (2 equations
in 3 unknowns). If we check the optimal x∗ in the first three main constraints of the
maximum problem, we find equality in the first two constraints, but a strict inequality in
the third. From condition (11), we conclude that y3∗ = 0 . Solving the two equations,
y1 + 4y2 = 1
2y1 + 2y2 = 1
we find (y1∗ , y2∗ ) = (1/3, 1/6). Since this vector is feasible, the “if” part of the Equilibrium
Theorem implies it is optimal. As a check we may find the value, 4(1/3) + 12(1/6) = 10/3 ,
and see it is the same as for the maximum problem.
In summary, if you conjecture a solution to one problem, you may solve for a solution
to the dual using the complementary slackness conditions, and then see if your conjecture
is correct.
13
Interpretation of the dual. In addition to the help it provides in finding a solution,
the dual problem offers advantages in the interpretation of the original, primal problem.
In practical cases, the dual problem may be analyzed in terms of the primal problem.
As an example, consider the diet problem, a standard minimum problem of the form
(2). Its dual is the standard maximum problem (1). First, let us find an interpretation of
the dual variables, x1 , x2 , . . . , xn . In the dual constraint,
n
aij xj ≤ bi , (18)
j=1
the variable bi is measured as price per unit of food, Fi , and aij is measured as units
of nutrient Nj per unit of food Fi . To make the two sides of the constraint comparable,
xj must be measured in of price per unit of food Fi . (This is known as a dimensional
n
analysis.) Since cj is the amount of Nj required per day, the objective function, 1 cj xj ,
represents the total price of the nutrients required each day. Someone is evidently trying
to choose vector x of prices for the nutrients to maximize the total worth of the required
nconstraints that x ≥ 0 , and that the total value of the
nutrients per day, subject to the
nutrients in food Fi , namely, j=1 aij xj , is not greater than the actual cost, bi , of that
food.
We may imagine that an entrepreneur is offering to sell us the nutrients without the
food, say in the form of vitamin or mineral pills. He offers to sell us the nutrient Nj at a
price xj per unit of Nj . If he wants to do business with us, he would choose the xj so
that price he charges for a nutrient mixture substitute of food Fi would be no greater than
the original cost to us of food Fi . This is the constraint, (18). If this is true for
all i, we
n
may do business with him. So he will choose x to maximize his total income, 1 cj xj ,
subject to these constraints. (Actually we will not save money dealing with him since the
m n
duality theorem says that our minimum, 1 yi bi , is equal to his maximum, 1 cj xj .)
The optimal price, xj , is referred to as the shadow price of nutrient Nj . Although no
such entrepreneur exists, the shadow prices reflect the actual values of the nutrients as
shaped by the market prices of the foods, and our requirements of the nutrients.
Exercises.
1. Find the dual to the following standard minimum problem. Find y1 , y2 and y3 to
minimize y1 + 2y2 + y3 , subject to the constraints, yi ≥ 0 for all i, and
y1 − 2y2 + y3 ≥ 2
−y1 + y2 + y3 ≥ 4
2y1 + y3 ≥ 6
y1 + y2 + y3 ≥ 2.
14
3. Consider the problem: Maximize 3x1 +2x2 +x3 subject to x1 ≥ 0 , x2 ≥ 0 , x3 ≥ 0 ,
and
x1 − x2 + x3 ≤ 4
2x1 + x2 + 3x3 ≤ 6
−x1 + 2x3 ≤ 3
x1 + x2 + x3 ≤ 8.
15
3. The Pivot Operation.
Consider the following system of equations.
3y1 + 2y2 = s1
y1 − 3y2 + 3y3 = s2 (1)
5y1 + y2 + y3 = s3
y1 − 3( 12 s1 − 32 y1 ) + 3y3 = s2
5y1 + ( 12 s1 − 32 y1 ) + y3 = s3 .
− 32 y1 + 1
s
2 1
= y2
2 y1 −
11 3
2 s1 + 3y3 = s2
7 1
2 y1 + 2 s1 + y3 = s3 . (2)
This example is typical of the following class of problems. We are given a system of
n linear functions in m unknowns, written in matrix form as
y TA = sT (3)
In this form, s1 , . . . , sn are the dependent variables, and y1 , . . . , ym are the independent
variables.
16
Suppose that we want to interchange one of the dependent variables for one of the
independent variables. For example, we might like to have s1 , . . . , sj−1 , yi , sj+1 , . . . , sn in
terms of y1 , . . . , yi−1 , sj , yi+1 , . . . , ym , with yi and sj interchanged. This may be done if
and only if aij = 0 . If aij = 0 , we may take the j th equation and solve for yi , to find
1
yi = (−y1 a1j − · · · − yi−1 a(i−1)j + sj − yi+1 a(i+1)j − · · · − ym amj ). (5)
aij
Then we may substitute this expression for yi into the other equations. For example, the
k th equation becomes
aik a1j aik aik amj
y1 a1k − + · · · + sj + · · · + ym amk − = sk . (6)
aij aij aij
We arrive at a system of equations of the form
y1 â11 + · · · + sj âi1 + · · · + ym âm1 = s1
.. .. ..
. . .
y1 â1j + · · · + sj âij + · · · + ym âmj = yi (7)
.. .. ..
. . .
y1 â1n + · · · + sj âin + · · · + ym âmn = sn .
The relation between the âij ’s and the aij ’s may be found from (5) and (6).
1
âij =
aij
ahj
âhj =− for h = i
aij
aik
âik = for k = j
aij
aik ahj
âhk = ahk − for k = j and h = i.
aij
17
In the introductory example, this becomes
s1 s2 s3 y2 s2 s3
y1 3 1 5 y1 −3/2 11/2 7/2
−→
y2 2 −3 1 s1 1/2 −3/2 1/2
y3 0 3 1 y3 0 3 1
(Note that the matrix A appearing on the left is the transpose of the numbers as they
appear in equations (1).) We say that we have pivoted around the circled entry from the
first matrix to the second.
The pivoting rules may be summarized in symbolic notation:
p r 1/p r/p
−→
c q −c/p q − (rc/p)
This signifies: The pivot quantity goes into its reciprocal. Entries in the same row as the
pivot are divided by the pivot. Entries in the same column as the pivot are divided by the
pivot and changed in sign. The remaining entries are reduced in value by the product of
the corresponding entries in the same row and column as themselves and the pivot, divided
by the pivot.
We pivot the introductory example twice more.
y2 s2 s3 y2 s2 y3 y2 y1 y3
y1 −3/2 11/2 7/2
−→
y1 −3/2
−5 −7/2
−→
s2 .3 −.2 .7
s1 1/2 −3/2 1/2 s1 1/2 −3 −1/2 s1 1.4 −.6 1.6
y3 0 3 1 s3 0 3 1 s3 −.9 .6 −1.1
y1 y2 y3 ⎛ ⎞
−.6 1.4 1.6
s1 −.6 1.4 1.6
so A−1 = ⎝ −.2 .3 .7 ⎠
s2 −.2 .3 .7
.6 −.9 −1.1
s3 .6 −.9 −1.1
s1 s2 s3 s4
y1
1 1 0 2
y2 0 2 −1 1
y3 −1 1 0 3
y4 1 −2 2 1
18
for y1 , y2 , y3 and y4 , by pivoting, in order, about the entries
(1) first row, first column (circled)
(2) second row, third column (the pivot is −1 )
(3) fourth row, second column (the pivot turns out to be 1)
(4) third row, fourth column (the pivot turns out to be 3).
Rearrange rows and columns to find A−1 , and check that the product with A gives
the identity matrix.
19
4. The Simplex Method
= tTb̂ + v̂
20
This is represented by the last column in the new tableau.
We have transformed our problem into the following: Find vectors, y and s, to
minimize tTb̂ subject to y ≥ 0 , s ≥ 0 and r = tTÂ − ĉ (where tT represents the vector,
(s1 , y2 , . . . , ym ), and r T represents (y1 , s2 , . . . , sn )). This is just a restatement of the
original problem.
Again, if −ĉ ≥ 0 and b̂ ≥ 0 , we have the obvious solution: t = 0 and r = −ĉ with
value v̂ .
It is easy to see that this process may be continued. This gives us a method, admittedly
not very systematic, for finding the solution.
The Pivot Madly Method. Pivot madly until you suddenly find that all entries in
the last column and last row (exclusive of the corner) are nonnegative Then, setting the
variables on the left to zero and the variables on top to the corresponding entry on the
last row gives the solution. The value is the lower right corner.
This same “method” may be used to solve the dual problem: Maximize cTx subject
to x ≥ 0 and Ax ≤ b . This time, we add the slack variables u = b − Ax . The problem
becomes: Find x and u to maximize cTx subject to x ≥ 0 , u ≥ 0 , and u = b − Ax .
We may use the same tableau to solve this problem if we write the constraint, u = b − Ax
as −u = Ax − b .
x1 x2 ··· xn −1
−u1 a11 a12 ··· a1n b1
−u2 a21 a22 ··· a2n b2
.. .. .. .. ..
. . . . .
−um am1 am2 ··· amn bm
−c1 −c2 ··· −cn 0
p r 1/p r/p
−→
c q −c/p q − (rc/p)
21
If you pivot until the last row and column (exclusive of the corner) are nonnegative, you
can find the solution to the dual problem and the primal problem at the same time.
In summary, you may write the simplex tableau as
x1 x2 ··· xn −1
y1 a11 a12 ··· a1n b1
y2 a21 a22 ··· a2n b2
.. .. .. .. ..
. . . . .
ym am1 am2 ··· amn bm
1 −c1 −c2 ··· −cn 0
If we pivot until all entries in the last row and column (exclusive of the corner) are non-
negative, then the value of the program and its dual is found in the lower right corner.
The solution of the minimum problem is obtained by letting the yi ’s on the left be zero
and the yi ’s on top be equal to the corresponding entry in the last row. The solution of
the maximum problem is obtained by letting the xj ’s on top be zero, and the xj ’s on the
left be equal to the corresponding entry in the last column.
Example 1. Consider the problem: Maximize 5x1 + 2x2 + x3 subject to all xj ≥ 0
and
x1 + 3x2 − x3 ≤ 6
x2 + x3 ≤ 4
3x1 + x2 ≤ 7.
The dual problem is : Minimize 6y1 + 4y2 + 7y3 subject to all yi ≥ 0 and
y1 + 3y3 ≥ 5
3y1 + y2 + y3 ≥ 2
−y1 + y2 ≥ 1.
x1 x2 x3
y1 1 3 −1 6
y2 0 1 1 4
y3 3 1 0 7
−5 −2 −1 0 .
If we pivot once about the circled points, interchanging y2 with x3 , and y3 with x1 , we
arrive at
y3 x2 y2
y1 23/3
x3 4
x1 7/3
5/3 2/3 1 47/3 .
22
From this we can read off the solution to both problems. The value of both problems is
47/3 . The optimal vector for the maximum problem is x1 = 7/3 , x2 = 0 and x3 = 4 .
The optimal vector for the minimum problem is y1 = 0 , y2 = 1 and y3 = 5/3 .
The Simplex Method is just the pivot madly method with the crucial added ingredi-
ent that tells you which points to choose as pivots to approach the solution systematically.
Suppose after pivoting for a while, one obtains the tableau
r
t A b
−c v
where b ≥ 0 . Then one immediately obtains a feasible point for the maximum problem
(in fact an extreme point of the constraint set) by letting r = 0 and t = b , the value of
the program at this point being v .
Similarly, if one had −c ≥ 0 , one would have a feasible point for the minimum problem
by setting r = −c and t = 0 .
Pivot Rules for the Simplex Method. We first consider the case where we have
already found a feasible point for the maximum problem.
Case 1: b ≥ 0 . Take any column with last entry negative, say column j0 with −cj0 < 0 .
Among those i for which ai,j0 > 0 , choose that i0 for which the ratio bi /ai,j0 is smallest.
(If there are ties, choose any such i0 .) Pivot around ai0 ,j0 .
Here are some examples. In the tableaux, the possible pivots are circled.
r1 r2 r3 r4 r1 r2 r3
t1 1 −1 3 1 6 t1 5 2 1 1
t2 0 1 2 4 4 t2 1 0 −1 0
t3 3 0 3 1 7 t3 3 −1 4 2
−5 −1 −4 2 0. −1 −2 −3 0 .
What happens if you cannot apply the pivot rule for case 1? First of all it might
happen that −cj ≥ 0 for all j . Then you are finished — you have found the solution. The
only other thing that can go wrong is that after finding some −cj0 < 0 , you find ai,j0 ≤ 0
for all i. If so, then the maximum problem is unbounded feasible. To see this, consider any
vector, r , such that rj0 > 0 , and rj = 0 for j = j0 . Then r is feasible for the maximum
problem because
n
ti = (−ai,j )rj + bi = −ai,j0 rj0 + bi ≥ 0
j=1
for all i, and this feasible vector has value cj rj = cj0 rj0 , which can be made as large
as desired by making rj0 sufficiently large.
23
Such pivoting rules are good to use because:
1. After pivoting, the b column stays nonnegative, so you still have a feasible point for
the maximum problem.
2. The value of the new tableau is never less than that of the old (generally it is greater).
Proof of 1. Let the new tableau be denoted with hats on the variables. We are to show
b̂i ≥ 0 for all i. For i = i0 we have b̂i0 = bi0 /ai0 ,j0 still nonnegative, since ai0 ,j0 > 0 . For
i = i0 , we have
ai,j0 bi0
b̂i = bi − .
ai0 ,j0
If ai,j0 ≤ 0 , then b̂i ≥ bi ≥ 0 since ai,j0 bi0 /ai0 ,j0 ≤ 0 . If ai,j0 > 0 , then by the pivot rule,
bi /ai,j0 ≥ bi0 /ai0 ,j0 , so that b̂i ≥ bi − bi = 0 .
Proof of 2. v̂ = v − (−cj0 )(bi0 /ai0 ,j0 ) ≥ v , because −cj0 < 0 , ai0 ,j0 > 0 , and bi0 ≥ 0 .
These two properties imply that if you keep pivoting according to the rules of the
simplex method and the value keeps getting greater, then because there are only a finite
number of tableaux, you will eventually terminate either by finding the solution or by
finding that the problem is unbounded feasible. In the proof of 2, note that v increases
unless the pivot is in a row with bi0 = 0 . So the simplex method will eventually terminate
unless we keep pivoting in rows with a zero in the last column.
Example 2. Maximize x1 + x2 + 2x3 subject to all xi ≥ 0 and
x2 + 2x3 ≤ 3
−x1 + 3x3 ≤ 2
2x1 + x2 + x3 ≤ 1.
We pivot according to the rules of the simplex method, first pivoting about row three
column 2.
x1 x2 x3 x1 y3 x3 x1 y3 y2
y1 0 1 2 3 y1 −2 −1 1 2 y1 4/3
y2 −1 0 3 2 −→ y2 −1 0 3 2 −→ x3 2/3
y3 2 1 1 1 x2 2 1 1 1 x2 1/3
−1 −1 −2 0 1 1 −1 1 2/3 1 1/3 5/3
The value for the program and its dual is 5/3 . The optimal vector for the maximum
problem is given by x1 = 0 , x2 = 1/3 and x3 = 2/3 . The optimal vector for the minimum
problem is given by y1 = 0 , y2 = 1/3 and y3 = 1 .
Case 2: Some bi are negative. Take the first negative bi , say bk < 0 (where b1 ≥
0, . . . , bk−1 ≥ 0 ). Find any negative entry in row k , say ak,j0 < 0 . (The pivot will be
in column j0 .) Compare bk /ak,j0 and the bi /ai,j0 for which bi ≥ 0 and ai,j0 > 0 , and
choose i0 for which this ratio is smallest (i0 may be equal to k ). You may choose any
such i0 if there are ties. Pivot on ai0 ,j0 .
24
Here are some examples. In the tableaux, the possible pivots according to the rules
for Case 2 are circled.
r1 r2 r3 r4 r1 r2 r3
t1 2 3 1 0 2 t1 1 −1 0 0
t2
−1 −1
−2 2 −1 t2 −1 −2
−3 −2
t3 1 −1 0 −1 −2 t3 2 2 1 1
1 −1 0 2 0 1 0 −2 0
What if the rules of Case 2 cannot be applied? The only thing that can go wrong is
that for bk < 0 , we find akj ≥ 0 for all j . If so, then the maximum problem is infeasible,
since the equation for row k reads
n
−tk = akj rj − bk .
j=1
For all feasible vectors (t ≥ 0 , r ≥ 0 ), the left side is negative or zero, and the right side
is positive.
The objective in Case 2 is to get to Case 1, since we know what to do from there. The
rule for Case 2 is likely to be good because:
1. The nonnegative bi stay nonnegative after pivoting, and
2. bk has become no smaller (generally it gets larger).
Proof of 1. Suppose bi ≥ 0 , so i = k . If i = i0 , then b̂i0 = bi0 /ai0 ,j0 ≥ 0 . If i = i0 ,
then
ai,j0
b̂i = bi − bi .
ai0 , j0 0
Now bi0 /ai0 ,j0 ≥ 0 . Hence, if ai,j0 ≤ 0 , then b̂i ≥ bi ≥ 0 . and if ai,j0 > 0 , then
bi0 /ai0 ,j0 ≤ bi /ai,j0 , so that b̂i ≥ bi − bi = 0 .
Proof of 2. If k = i0 , then b̂k = bk /ak,j0 > 0 (both bk < 0 and ak,j0 < 0 ). If k = i0 ,
then
ak,j0
b̂k = bk − bi ≥ bk ,
ai0 ,j0 0
since bi0 /ai0 ,j0 ≥ 0 and ak,j0 < 0 .
These two properties imply that if you keep pivoting according to the rule for Case 2,
and bk keeps getting larger, you will eventually get bk ≥ 0 , and be one coefficient closer
to having all bi ≥ 0 . Note in the proof of 2, that if bi0 > 0 , then b̂k > bk .
Example 3. Minimize 3y1 − 2y2 + 5y3 subject to all yi ≥ 0 and
− y2 + 2y3 ≥ 1
y1 + y3 ≥ 1
2y1 − 3y2 + 7y3 ≥ 5 .
25
We pivot according to the rules for Case 2 of the simplex method, first pivoting about row
two column one.
x1 x2 x3 y2 x2 x3
y1 0 1 2 3 y1 0 1 2 3
y2
− 1 0 −3 −2 −→ x1 −1 0 3 2
y3 2 1 7 5 y3 2 1 1 1
−1 −1 −5 0 −1 −1 −2 2
Note that after this one pivot, we are now in Case 1. The tableau is identical to the example
for Case 1 except for the lower right corner and the labels of the variables. Further pivoting
as is done there leads to
y2 y3 x1
y1 4/3
x3 2/3
x2 1
2/3 1 1/3 11/3
The value for both programs is 11/3 . The solution to the minimum problem is y1 = 0 ,
y2 = 2/3 and y3 = 1 . The solution to the maximum problem is x1 = 0 , x2 = 1/3 and
x3 = 2/3 .
The Dual Simplex Method. The simplex method has been stated from the point
of view of the maximum problem. Clearly, it may be stated with regard to the minimum
problem as well. In particular, if a feasible vector has already been found for the minimum
problem (i.e. the bottom row is already nonnegative), it is more efficient to improve this
vector with another feasible vector than it is to apply the rule for Case 2 of the maximum
problem.
We state the simplex method for the minimum problem.
Case 1: −c ≥ 0 . Take any row with the last entry negative, say bi0 < 0 . Among those j
for which ai0 ,j < 0 , choose that j0 for which the ratio −cj /ai0 ,j is closest to zero. Pivot
on ai0 ,j0 .
Case 2: Some −cj are negative. Take the first negative −cj , say −ck < 0 (where
−c1 ≥ 0, . . . , −ck−1 ≥ 0 ). Find any positive entry in column k , say ai0 ,k > 0 . Compare
−ck /ai0 ,k and those −cj /ai0 ,j for which −cj ≥ 0 and ai0 ,j < 0 , and choose j0 for which
this ratio is closest to zero. (j0 may be k ). Pivot on ai0 ,j0 .
Example:
x1 x2 x3 y1 x2 x3
y1
−2 −1 −2 −1 x1 1/2
y2 2 3 5 2 −→ y2 1
y3 −3 4 −1 1 y3 5/2
1 2 3 0 1/2 3/2 2 −1/2
26
If this example were treated as Case 2 for the maximum problem, we might pivot about
the 4 or the 5. Since we have a feasible vector for the minimum problem, we apply Case
1 above, find a unique pivot and arrive at the solution in one step.
Exercises. For the linear programming problems below, state the dual problem, solve
by the simplex (or dual simplex) method, and state the solutions to both problems.
1. Maximize x1 − 2x2 − 3x3 − x4 subject to the constraints xj ≥ 0 for all j and
x1 − x2 − 2x3 − x4 ≤ 4
2x1 + x3 − 4x4 ≤ 2
−2x1 + x2 + x4 ≤ 1.
2y1 − y2 + y3 ≥ −1
y1 + 2y3 ≥ 2
−7y1 + 4y2 − 6y3 ≥ 1 .
−3x1 + 3x2 + x3 ≤ 3
2x1 − x2 − 2x3 ≤ 1
−x1 + x3 ≤ 1 .
−2y1 + 3y3 ≥ −1
2y1 − y2 + y3 ≥ 1
3y1 + 2y2 − y3 ≥ 0 .
−y1 − 2y2 ≥ −3
4y1 + y2 + 7y3 ≥ −1
2y1 − 3y2 + y3 ≥ −5.
6. Maximize 3x1 + 4x2 + 5x3 subject to the constraints xj ≥ 0 for all j and
x1 + 2x2 + 2x3 ≤ 1
−3x1 + x3 ≤ −1
−2x1 − x2 ≤ −1 .
27
5. Generalized Duality.
We consider the general form of the linear programming problem, allowing some con-
straints to be equalities, and some variables to be unrestricted (−∞ < xj < ∞ ).
The General Maximum Problem. Find xj , j = 1, . . . , n , to maximize xTc subject to
n
aij xj ≤ bi for i = 1, . . . , k
j=1
n
aij xj = bi for i = k + 1, . . . , m
j=1
and
xj ≥ 0 for j = 1, . . . ,
xj unrestricted for j = + 1, . . . , n.
m
yi aij ≥ cj for j = 1, . . . ,
i=1
m
yi aij = cj for j = + 1, . . . , n
i=1
and
yi ≥ 0 for i = 1, . . . , k
yi unrestricted for i = k + 1, . . . , m.
28
special attention for the general programming problems since some of the yi∗ and x∗j may
be negative. However, it is also valid. (Exercise 2.)
Solving General Problems by the Simplex Method. The simplex tableau and
pivot rules may be used to find the solution to the general problem if the following modi-
fications are introduced.
1. Consider the general minimum problem. We add the slack variables, sT = y TA−cT ,
but the constraints now demand that s1 ≥ 0, . . . , s ≥ 0, s+1 = 0, . . . , sn = 0 . If we pivot
in the simplex tableau so that s+1 , say, goes from the top to the left, it becomes an
independent variable and may be set equal to zero as required. Once s+1 is on the left,
it is immaterial whether the corresponding b̂i in the last column is negative or positive,
since this b̂i is the coefficient multiplying s+1 in the objective function, and s+1 is zero
anyway. In other words, once s+1 is pivoted to the left, we may delete that row — we
will never pivot in that row and we ignore the sign of the last coefficient in that row.
This analysis holds for all equality constraints: pivot s+1 , . . . , sn to the left and
delete. This is equivalent to solving each equality constraint for one of the variables and
substituting the result into the other linear forms.
2. Similarly, the unconstrained yi , i = k +1, . . . , m , must be pivoted to the top where
they represent dependent variables. Once there we do not care whether the corresponding
−ĉj is positive or not, since the unconstrained variable yi may be positive or negative. In
other words, once yk+1 , say, is pivoted to the top, we may delete that column. (If you
want the value of yk+1 in the solution, you may leave that column in, but do not pivot in
that column — ignor the sign of the last coefficient in that column.)
After all equality constraints and unrestricted variables are taken care of, we may
pivot according to the rules of the simplex method to find the solution.
Similar arguments apply to the general maximum problem. The unrestricted xi may
be pivoted to the left and deleted, and the slack variables corresponding to the equality
constraints may be pivoted to the top and deleted.
3. What happens if the above method for taking care of equality constraints cannot
be made? It may happen in attempting to pivot one of the sj for j ≥ + 1 to the left,
that one of them, say sα , cannot be so moved without simultaneously pivoting some sj
for j < α back to the top, because all the possible pivot numbers in column α are zero,
except for those in rows labelled sj for j ≥ + 1 . If so, column α represents the equation
sα = yj âj,α − ĉα .
j≥+1
This time there are two possibilities. If ĉα = 0 , the minimum problem is infeasible since all
sj for j ≥ + 1 must be zero. The original equality constraints of the minimum problem
were inconsistent. If ĉα = 0 , equality is automatically obtained in the above equation and
column α may be removed. The original equality constraints contained a redundency.
A dual argument may be given to show that if it is impossible to pivot one of the
unrestricted yi , say yβ , to the top (without moving some unrestricted yi from the top
29
back to the left), then the maximum problem is infeasible, unless perhaps the corresponding
last entry in that row, b̂β , is zero. If b̂β is zero, we may delete that row as being redundant.
4. In summary, the general simplex method consists of three stages. In the first stage,
all equality constraints and unconstrained variables are pivoted (and removed if desired).
In the second stage, one uses the simplex pivoting rules to obtain a feasible solution for
the problem or its dual. In the third stage, one improves the feasible solution according
to the simplex pivoting rules until the optimal solution is found.
Example 1. Maximize 5x2 + x3 + 4x4 subject to the constraints x1 ≥ 0 , x2 ≥ 0 ,
x4 ≥ 0 , x3 unrestricted, and
−x1 + 5x2 + 2x3 + 5x4 ≤ 5
3x2 + x4 = 2
−x1 + x3 + 2x4 = 1.
In the tableau, we put arrows pointing up next to the variables that must be pivoted
to the top, and arrows pointing left above the variables to end up on the left.
← ↑y3
x1 x2 x3 x4 x1 x2 x4
y1 −1 5 2 5 5 y1 1 5 −2 1 3
↑y2 0 3 0 1 2 −→ ↑y2 0 3 0 1 2
←
↑y3 −1 0 1 2 1 x3 −1 0 1 2 1
0 −5 −1 −4 0 −1 −5 1 −2 1
After deleting the third row and the third column, we pivot y2 to the top, and we have
found a feasible solution to the maximum problem. We then delete y2 and pivot according
to the simplex rule for Case 1.
x1 x2 ↑y2 y1 x2 ↑y2
y1 1 2 −1 1 x1 1 2 1
−→ −→
x4 0 3 1 2 x4 0 3 2
−1 1 2 5 1 3 1 6
After one pivot, we have already arrived at the solution. The value of the program is 6 ,
and the solution to the maximum problem is x1 = 1 , x2 = 0 , x4 = 2 and (from the
equality constraint of the original problem) x3 = −2 .
Solving Matrix Games by the Simplex Method. Consider a matrix game n with
n × m matrix A. If Player I chooses a mixed strategy, x = (x1 , . . . , xn ) with
n 1 xi = 1
and xi ≥ 0 for all i, he wins at least λ on the average, where λ ≤ i=1 xi aij for
j = 1, . . . , m . He wants to choose x1 , . . . , xn to maximize this minimum amount he
wins. This becomes a linear programming problem if we add λ to the list of variables
chosen by I. The problem becomes: Choose x1 , . . . , xn and λ to maximize λ subject to
x1 ≥ 0, . . . , xn ≥ 0 , λ unrestricted, and
n
λ− xi aij ≤ 0 for j = 1, . . . , n, and
i=1
n
xi = 1.
i=1
30
This is clearly a general minimum problem.
m
Player II chooses
m y1 , . . . , ym with yi ≥ 0 for all i and 1 yi = 1 , and loses at most
µ, where µ ≥ j=1 aij yj for all i. The problem is therefore: Choose y1 . . . , ym and µ to
minimize µ subject to y1 ≥ 0, . . . , ym ≥ 0 , µ unrestricted, and
m
µ− aij yj ≥ 0 for i = 1, . . . , n, and
j=1
m
yj = 1.
j−1
This is exactly the dual of Player I’s problem. These problems may be solved simultane-
ously by the simplex method for general programs.
Note, however, that if A is the game matrix, it is the negative of the transpose of A
that is placed in the simplex tableau:
←
x1 x2 · · · xn λ
y1 −a11 −a21 · · · −an1 1 0
.. .. .. ..
. . . .
ym −a1m −a2m · · · −anm 1 0
↑µ 1 1 ··· 1 0 1
0 0 ··· 0 −1 0
Example 2. Solve the matrix game with matrix
⎛ ⎞
1 4 0 −1
A = ⎝ 2 −1 3 1 ⎠ .
−1 1 0 3
The tableau is:
x1 x2 x3 ← λ
y1 −1 −2 1 1 0
y2 −4 1 −1 1 0
y3 0 −3 0 1 0
y4 1 −1 −3 1 0
↑µ 1 1 1 0 1
0 0 0 −1 0
We would like to pivot to interchange λ and µ. Unfortunately, as is always the case for
solving games by this method, the pivot point is zero. So we must pivot twice, once to
move µ to the top and once to move λ to the left. First we interchange y3 and λ and
delete the λ row. Then we interchange x3 and µ and delete the µ column.
x1 x2 x3 y3 x1 x2 y3
y1 −1 1 1 −1 0 y1 −2 0 −1 −1
y2 −4 4 −1 −1 0 y2 −3 5 −1 1
−→
y4 1 2 −3 −1 0 y4 4 5 −1 3
↑µ 1 1 1 0 1 x3 1 1 0 1
0 −3 0 1 0 0 −3 1 0
31
Now, we use the pivot rules for the simplex method until finally we obtain the tableau, say
y4 y2 y1
y3 3/7
x2 16/35
x1 2/7
x3 9/35
13/35 8/35 14/35 33/35
Therefore, the value of the game is 33/35. The unique optimal strategy for Player I is
(2/7,16/35,9/35). The unique optimal strategy for Player II is (14/35,8/35,0,13/35).
Exercises.
1. (a) Transform thegeneral maximum problem to standard form by (1) replacing
each equality constraint, j aij xj = bi by the two inequality constraints, j aij xj ≤ bi
and j (−aij )xj ≤ −bi , and (2) replacing each unrestricted xj by xj − xj , where xj and
xj are restricted to be nonnegative.
(b) Transform the general minimum problem to standard form by (1) replacing each
equality constraint,
i yi aij = cj by the two inequality constraints, i yi aij ≤ cj and
y
i j (−a ij ) ≤ −c j , and (2) replacing each unrestricted yi by yi − yi , where yi and yi
are restricted to be nonnegative.
(c) Show that the standard programs (a) and (b) are duals.
2. Let x∗ and y ∗ be feasible vectors for a general maximum problem and its dual
respectively. Assuming the Duality Theorem for the general problems, show that x∗ and
y ∗ are optimal if, and only if,
n
yi∗ = 0 for all i for which j=1 aij x∗j < bj
and (∗)
m
x∗j = 0 for all j for which i=1 yi∗ aij > cj .
32
6. Cycling.
Unfortunately, the rules of the simplex method as stated give no visible improvement
if br , the constant term in the pivot row, is zero. In fact, it can happen that a sequence of
pivots, chosen according to the rules of the simplex method, leads you back to the original
tableau. Thus, if you use these pivots you could cycle forever.
Example 1. Maximize 3x1 − 5x2 + x3 − 2x4 subject to all xi ≥ 0 and
x1 − 2x2 − x3 + 2x4 ≤ 0
2x1 − 3x2 − x3 + x4 ≤ 0
x3 ≤1
If you choose the pivots very carefully, you will find that in six pivots according the the
rules of the simplex method you will be back with the original tableau. Exercise 1 shows
how to choose the pivots for this to happen.
x1 x2 ··· xn
y1 a11 a12 ··· a1n b1 1 0 ... 0
y2 a21 a22 ··· a2n b2 0 1 ... 0
.. .. .. .. .. ..
. . . . . .
ym am1 am2 ··· amn bm 0 0 ... 1
−c1 −c2 ··· −cn v cn+1 cn+2 . . . cn+m
m
αi bi = 0 implies αi = 0 for i = 1, 2, . . . , m.
i=1
33
We will be pivoting about various elements ars = 0 and it is important to notice that
these vectors stay linearly independent after pivoting. This is because if b1 , . . . , bm are
linearly independent, and if after pivoting, the new b-vectors become
m
αi bi = αi b i − (αi ais /ars )br + (αr /ars )br = 0
i=1 i=r i=r
34
Exercises.
1. (a) Set up the simplex tableau for Example 1.
(b) Pivot as follows.
1. Interchange x1 and y1 .
2. Interchange x2 and y2 .
3. Interchange x3 and x1 .
4. Interchange x4 and x2 .
5. Interchange y1 and x3 .
6. Interchange y2 and x4 .
Now, note you are back where you started.
2. Solve the problem of Example 1 by pivoting according to the modified simplex rule.
35
7. Four problems with nonlinear objective functions solved by linear methods.
and
xj ≥ 0 for j = 1, . . . ,
(3)
(xj unrestricted for j = + 1, . . . , n)
This problem may be considered as a generalization of the matrix game problem from
player I’s viewpoint, and may be transformed in a similar manner into a general linear
program, as follows. Add λ to the list of unrestricted variables, subject to the constraints
n
λ− cij xj ≤ 0 for i = 1, . . . , p (4)
j=1
The problem becomes: maximize λ subject to the constraints (2), (3) and (4).
Example 1. The General Production Planning Problem (See Zukhovitskiy
and Avdeyeva, “Linear and Convex Programming”, (1966) W. B. Saunders pg. 93) There
are n activities, A1 , . . . , An , a company may employ using the available supplies of m
resources, R1 , . . . , Rm . Let bi be the available supply of Ri and let aij be the amount
of Ri used in operating Aj at unit intensity. Each activity may produce some or all of
the p different parts that are used to build a complete product (say, a machine). Each
product consists of N1 parts #1,... , Np parts # p. Let cij denote the number of parts # i
produced in operating Aj at unit intensity. The problem is to choose activity intensities
to maximize the number of complete products built.
Let xj be the
nintensity at which Aj is operated, j = 1, . . . , n . Such a choice
n of inten-
sities produces j=1 cij xj parts # i, which would be required in building j=1 cij xj /Ni
complete products. Therefore, such an intensity selection may be used to build
⎡ ⎤
n
min ⎣ cij xj /Ni ⎦ (5)
1≤i≤p
j=1
36
complete products. The amount of Ri used in this intensity selection must be no greater
than bi ,
n
aij xj ≤ bi for i = 1, . . . , m (6)
j=1
xj ≥ 0 for j = 1, . . . , n (7)
We are required to maximize (5) subject to (6) and (7). When p = 1 , this reduces to the
Activity Analysis Problem.
Exercise 1. In the general production planning problem, suppose there are 3 activi-
ties, 1 resource and 3 parts. Let b1 = 12 , a11 = 2 , a12 = 3 and a13 = 4 , N1 = 2 , N2 = 1 ,
and N3 = 1 , and let the cij be as given in the matrix below. (a) Set up the simplex
tableau of the associated linear program. (b) Solve. (Ans. x1 = x2 = x3 = 4/3 , value =
8.)
A A2 A3
⎛ 1 ⎞
part #1 2 4 6
C = part #2 ⎝ 2 1 3 ⎠
part #3 1 3 2
and
yi ≥ 0 for i = 1, . . . , k
(10)
(yi unrestricted for i = k + 1, . . . , m.)
To transform this problem to a linear program, add p more variables, ym+1 , . . . , ym+p ,
where
p ym+j is to be an upper bound of the j th term of (8), and try to minimize
j=1 ym+j . The constraints
m
yi bij − bj ≤ ym+j for j = 1, . . . , p
i=1
37
are equivalent to the 2p linear constraints
m
yi bij − bj ≤ ym+j for j = 1, . . . , p
i=1
(11)
m
− yi bij + bj ≤ ym+j for j = 1, . . . , p
i=1
p
The problem becomes minimize j=1 ym+j subject to the constraints (9), (10) and (11).
In this problem, the constraints (11) imply that ym+1 , . . . , ym+p are nonnegative, so it does
not matter whether these variables are restricted to be nonnegative or not. Computations
are generally easier if we leave them unrestricted.
Example 2. It is desired to find an m -dimensional vector, y , whose average distance
to p given hyperplanes
m
yi bij = bj for j = 1, . . . , p
i=1
1
p m
yi b − bj .
p j=1 i=1 ij
There are no constraints of the form (9) or (10) to the problem as stated.
Exercise 2. Consider the problem of finding y1 and y2 to minimize |y1 + y2 − 1| +
|2y1 − y2 + 1| + |y1 − y2 − 2| subject to the constraints y1 ≥ 0 and y2 ≥ 0 . (a) Set up the
simplex tableau of the associated linear program. (b) Solve. (Ans. (y1 , y2 ) = (0, 1), value
= 3.)
subject to the general constraints (9) and (10). This objective function combines features
of the objective functions of 1. and 2. A similar combination of methods transforms this
problem to a linear program. Add µ to the list of unrestricted variables subject to the
constraints
m
yi bij − bj ≤ µ for j = 1, . . . , p
i=1
38
and try to minimize µ. These p constraints are equivalent to the following 2p linear
constraints
m
yi bij − bj ≤ µ for j = 1, . . . , p
i=1
(13)
m
− yi bij + bj ≤ µ for j = 1, . . . , p
i=1
m
ψj (y1 , . . . , ym ) = yi bij − bj for j = 1, . . . , p, (14)
i=1
m
yi bij = bj for j = 1, . . . , p.
i=1
Without this normalization, one can think of the maximum deviation as a “weighted”
maximum distance. (See Zukhovitskiy and Avdeyeva, pg. 191, or Stiefel “Note on Jordan
Elimination, Linear Programming, and Tchebycheff Approximation” Numerische Mathe-
matik 2 (1960), 1-17.
Exercise 3. Find a Chebyshev point (unnormalized) for the system
ψ1 (y1 , y2 ) = y1 + y2 − 1
ψ2 (y1 , y2 ) = 2y1 − y2 + 1
ψ3 (y1 , y2 ) = y1 − y2 − 2
by (a) setting up the associated linear program, and (b) solving. (Ans. y1 = 0 , y2 = −1/2 ,
value = 3/2.)
39
subject to the general constraints (2) and (3). Here, c and d are n -dimensional vectors
and α and β are real numbers. To avoid technical difficulties we make two assumptions:
that the constraint set is nonempty and bounded, and that the denominator dTx + β is
strictly positive throughout the constraint set.
Note that the objective function remains unchanged upon multiplication of numerator
and denominator by any number t > 0 . This suggests holding the denominator fixed say
(dTx + β)t = 1 , and trying to maximize cTxt + αt . With the change of variable z = xt ,
this becomes embedded in the following linear program. Find z = (z1 , . . . , zn ) and t to
maximize
cTz + αt
subject to the constraints
dTz + βt = 1
n
aij zj ≤ bi t for i = 1, . . . , k
j=1
n
aij zj = bi t for i = k + 1, . . . , m
j=1
and
t≥0
zj ≥ 0 for j = 1, . . . ,
zj unrestricted for j = + 1, . . . , n.
40
Exercise 4. There are two activities and two resources. There are 2 units of R1 and
3 units of R2 available. Activity A1 operated at unit intensity requires 1 unit of R1 and
3 units of R2 , yields a return of 2, and uses up 1 time unit. Activity A2 operated at unit
intensity requires 3 units of R1 and 2 units of R2 , yields a return of 3, and uses up 2
time units. It requires 1 time unit to get the whole procedure started at no return. (a)
Set up the simplex tableau of the associated linear program. (b) Find the intensities that
maximize the rate of return. (Ans. A1 at intensity 5/7, A2 at intensity 3/7, maximal rate
= 19/18.)
41
8. The Transportation Problem.
The transportation problem was described and discussed in Section 1. Briefly, the
problem is to find numbers yij of amounts to ship from Port Pi to Market Mj to minimize
the total transportation cost,
I J
yij bij , (1)
i=1 j=1
subject to the nonnegativity constraints, yij ≥ 0 for all i and j , the supply constraints,
J
yij ≤ si for i = 1, . . . , I (2)
j=1
Clearly, the transportation problem is not feasible unless supply is at least as great
as demand:
I J
si ≥ rj . (6)
i=1 j=1
42
Under this assumption, the inequalities in constraints (2) and (3) must be satisfied
with equalities, because if there were a strict inequality in one of the constraints (2) or (3),
then summing (2) over i and (3) over j would produce a strict inequality in (7). Thus we
may replace (2) and (3) with
J
yij = si for i = 1, . . . , I (8)
j=1
and
I
yij = rj for j = 1, . . . , J . (9)
i=1
Hence, in order to solve both problems, it is sufficient (and necessary) to find feasible
vectors, yij and ui and vj , that satisfy the equilibrium conditions. Due to the equalities
in the constraints (8) and (9), the equilibrium conditions reduce to condition that for all
i and j
yij > 0 implies that vj − ui = bij . (10)
This problem can, of course, be solved by the simplex method. However, the simplex
tableau for this problem invoves an IJ by I + J constraint matrix. Instead, we use a more
efficient algorithm that may be described easily in terms of the I by J transportation
array.
M1 M2 ... MJ
b11 b12 ... b1J
P1
y11 y12 y1J s1
P2 b21 b22 ... b2J
y21 y22 y2J s2
.. .. .. .. (11)
. . . .
bI1 bI2 ... bIJ
PI
yI1 yI2 yIJ sI
r1 r2 rJ
M1 M2 M3 M4
4 7 11 3
P1 5
7 5 6 4
P2 (12)
7
P3 1 3 4 8
8
2 9 4 5
43
This indicates there are three ports and four markets. Port P1 has 5 units of the commod-
ity, P2 has 7 units, and P3 has 8 units. Markets M1 , M2 , M3 and M4 require 2 , 9 , 4
and 5 units of the commodity respectively. The shipping costs per unit of the commodity
are entered in the appropriate squares. For example, it costs 11 per unit sent from P1 to
M3 . We are to enter the yij , the amounts to be shipped from Pi to Mj , into the array.
M1 M2 M3 M4
4 7 11 3
P1
2
3 5
7 5 6 4
P2 (13)
6
1 7
P3 1 3 4 8
3
5 8
2 9 4 5
We have circled those variables, yij , that have appeared in the solution for use later
in finding an improved basic feasible shipping schedule. Occasionally, it is necessary to
circle a variable, yij , that is zero. The general method may be stated as follows.
A1. (a) Choose any available square, say (i0 , j0 ), specify yi0 j0 as large as possible subject
to the constraints, and circle this variable.
(b) Delete from consideration whichever row or column has its constraint satisfied,
but not both. If there is a choice, do not delete a row (column) if it is the last row (resp.
column) undeleted.
(c) Repeat (a) and (b) until the last available square is filled with a circled variable,
and then delete from consideration both row and column.
We note two properties of this method of choosing a basic feasible shipping schedule.
44
Lemma 1. (1) There are exactly I + J − 1 circled variables. (2) No submatrix of r rows
and c columns contains more than r + c − 1 circled variables.
Proof. One row or column is deleted for each circled variable entered xcept for the last
one for which a row and a column are deleted. Since there are I + J rows and columns,
there must be I + J − 1 circled variables, proving (1). A similar argument proves (2) by
concentrating on the r rows and c columns, and noting that at most one circled variable
is deleted from the submatrix for each of its rows and columns, and the whole submatrix
is deleted when r + c − 1 of its rows and columns are deleted.
The converse of Lemma 1 is also valid.
Lemma 2. Any feasible set of circled variables satisfying (1) and (2) of Lemma 1 is
obtainable by this algorithm.
Proof. Every row and column has at least one circled variable since deleting a row or
column with no circled variable would give a submatrix contradicting (3). From (2), since
there are I + J rows and columns but only I + J − 1 circled variables, there is at least
one row or column with exactly one circled variable. We may choose this row or column
first in the algorithm. The remaining (I − 1) × J or I × (J − 1) subarray satisfies the
same two properties, and another row or column with exactly one circled variable may be
chosen next in the algorithm. This may be continued until all circled variables have been
selected.
To illustrate the circling of a zero and the use of (b) of algorithm A1, we choose a
different order for selecting the squares in the example above. We try to find a good initial
solution by choosing the squares with the smallest transportation costs first. This is called
the Least-Cost Rule.
The smallest transportation cost is in the lower left square. Thus y31 = 2 is circled
and M1 is deleted. Of the remaining squares, 3 is the lowest transportation cost and we
might choose the upper right corner next. Thus, y14 = 5 is circled and we may delete
either P1 or M4 , but not both, according to rule (b). Say we delete P1 . Next y32 = 6 is
circled and P3 is deleted. Of the ports, only P2 remains, so we circle y22 = 3 , y23 = 4
and y24 = 0 .
4 7 11 3
5 5
7 5 6 4
3
4 0 7 (14)
1 3 4 8
2 6 8
2 9 4 5
45
One method is to solve the equations
vj − ui = bij (15)
for all (i, j)-squares containing circled variables (whether or not the variables are zero).
There are I + J − 1 circled variables and so I + j − 1 equations in I + J unknowns.
Therefore, one of the variables may be fixed, say equal to zero, and the equations may be
used to solve for the other variables. Some of the ui or vj may turn out to be negative,
but this does not matter. One can always add a large positive constant to all the ui and
vj to make them positive without changing the values of vj − ui .
Once the ui and vj have been determined to satisfy equilibrium, feasibility must be
checked by checking that vj − ui ≤ bij for all (i, j)-squares without circled variables. In
summary,
A2. (a) Set one of the vj or ui to zero, and use (15) for squares containing circled
variables to find all the vj and ui .
(b) Check feasibility, vj − ui ≤ bij , for the remaining squares. If feasible, the solution
is optimal for the problem and its dual.
We must prove that part (a) of A2 can always be carried out. That is, we must show
that when one of the variables, vj or ui , is set equal to zero, there exists a unique solution
to (15) for the (i, j)-squares containing circled variables. As in the proof of Lemma 2,
we may find a row (or column) with exactly one circled variable. The ui (resp. vj )
corresponding to this row (resp. column) may be found uniquely once the rest of the ui
and vj have been determined. We delete this row (resp. column) and note that the same
is also true of the reduced array. Continuing in like manner, we may reduce the array to
a single element. Either dual variable corresponding to this square may be fixed and the
rest of the variables found uniquely. The initial fixed variable may be adjusted to give any
preassigned ui or vj the value zero.
Let us check the feasible shipping schedule (14) for optimality.
First solve for the ui and vj . We put u2 = 0 because that allows us to solve quickly for
v2 = 5 , v3 = 6 , and v4 = 4 . (Generally, it is a good idea to start with a ui = 0 (or
vj = 0 ) for which there are many circled variables in the ith row (j th column).) Knowing
v4 = 4 allows us to solve for u1 = 1 . Knowing v2 = 5 allows us to solve for u3 = 2 , which
allows us to solve for v1 = 3 . We write the vj variables across the top of the array and
ui along the left.
3 5 6 4
1 4 7 11 3
5 5
0 7 5 6 4
(16)
3 4
0 7
2 1 3 4 8
2 6 8
2 9 4 5
46
Then, check feasibility of the remaining six squares. The upper left square satisfies the
constraint vj − ui ≤ bij , since 3 − 1 = 2 ≤ 4 . Similarly, all the squares may be seen to
satisfy the constraints, and hence the above gives the solution to both primal and dual
problems. The optimal shipping schedule is as noted, and the value is yij bij =
2 · 1 + 6 · 3 + 3 · 5 + 4 · 6 + 0 · 4 + 5 · 3 = 74 . As a check, vj rj − ui si = 95 − 21 = 74 .
Notice that if b21 were equal to 2 instead of 7 , then the same shipping schedule may
be obtained from the least cost rule, yet it would not be optimal, because v1 −u2 > b21 = 2 .
4 7 11 3
5 5
7 5 6 4
+θ −θ
3
4
0 7 (17)
1 3 4 8
− θ 2 +θ
6 8
2 9 4 5
We choose θ as large as possible, bearing in mind that negative shipments are not allowed.
This means we choose θ to be the minimum of the yij in the squares in which we are
subtracting θ . In the example, θ = 2 .
At least one of the yij is put to, or remains at, 0 . Remove any one such from the
circled variables and circle yi0 j0 . Then perform the check for optimality. This is done for
the example where it is seen that the new schedule is optimal, with value 72.
2 5 6 4
1 4 7 11 3
5 5
0 2 5 6 4
(18)
2
1
4
0 7
2 1 3 4 8
8 8
2 9 4 5
In summary,
47
A3. (a) Choose any square (i, j) with vj − ui > bij , set yij = θ , but keep the constraints
satisfied by subtracting and adding θ to appropriate circled variables.
(b) Choose θ to be the minimum of the variables in the squares in which θ is sub-
tracted.
(c) Circle the new variable and remove from the circled variables one of the variables
from which θ was subtracted that is now zero.
Note that if all non-circled variables yij are given any values, we may solve for the
circled variables one at a time using (8) and (9) by choosing a row or column with one circled
variable first, and continuing in like manner until all variables are specified. Therefore,
step (a) of A3 may always be carried out.
We must show that step (c) of A3 leaves a set of circled variables abtainable by the
method of A1 of the algorithm so that A2 and A3 may be repeated. To see this, note
that when θ is circled as a new variable, the set of variables depending on θ is contained
in a square subarray of say k rows and columns containing 2k circled variables, with 2
circled variables in each row and column. The other I + J − 2k rows and columns with
circled variables can be deleted one at a time as in the proof of Lemma 2. If any one of
the remaining circled variables may also be deleted one row or column at a time.
Let us see what improvement is made in the transportation cost by this procedure.
The cost before the change minus the cost afterward may be computed as yij bij −
+ − +
yij bij = θ bij − θ bij , where is the sum over the squares to which θ has
−
been added, and is the sum over the squares to which θ has been subtracted. Since
bij = vj − ui for all those squares except the new one, call it (i0 , j0 ), we may write this
improvement in the cost as
+ −
θ(vj0 − ui0 − bi0 j0 ) − θ (vi − uj ) + θ (vj − ui ) = θ(vj0 − ui0 − bi0 j0 ) (19)
since each vj and ui that is added is also subtracted. This is never negative, and it is
strictly positive if θ > 0 . That is the improvement routine gives a strict improvement
when θ > 0 .
It may happen that θ = 0 , in which case the improvement routine gives no improve-
ment, but changes the basic shipping schedule into a new one from which one can hope
for an improvement or even an optimality check.
48
2.
1 3 5 8
6
2 5 6 7
5
1 2 3 5
3.
10 8 9
15
5 2 3
20
6 7 4
30
7 6 8
35
25 25 50
4.
4 3 4 2
4
8 6 7 5
4
6 4 5 3
6
7 5 6 4
4
2 7 3 6
49
9. Solutions to Exercises.
6
2y1 + y2 = 5
5
y2 4
3
2
y1 + 2y2 = 3
1
optimal point
1 2 3 4 5
y1
Figure 1.
2. For a less than −1 , the optimal vector is (0, 1). For a from −1 to 12 , the optimal
vector is ( 23 , 53 ). For a from 12 to 2, the optimal vector is ( 83 , 83 ). For a from 0 to 12 , the
optimal vector is (3, 0). Therefore, the value is
⎧
⎪ 1 for a ≤ −1
⎨
(2a + 5)/3 for −1 ≤ a ≤ 1/2
Value =
⎪
⎩ (8a + 2)/3 for 1/2 ≤ a ≤ 2
3a for a ≥ 2.
3. Let y T = (y11 , . . . , y1J , y21 , . . . , y2J , · · · , yI1 , . . . , yIJ ). Then the main constraints
50
may be written as y TA ≤ cT , where
⎛ ⎞
−1 0 · · · 0 1 0 ··· 0
⎜ −1 0 · · · 0 0 1 ··· 0⎟
⎜ . .. ⎟
⎜ . .. .. .. .. ⎟
⎜ . . . . . .⎟
⎜ ⎟
⎜ −1 0 · · · 0 0 0 ··· 1⎟
⎜ ⎟
⎜ 0 −1 · · · 0 1 0 ··· 0⎟
⎜ ⎟
⎜ 0 −1 · · · 0 0 1 ··· 0⎟
⎜ . .. .. .. ⎟
⎜ . .. .. ⎟
⎜ . . . . . .⎟
⎜
A = ⎜ 0 −1 · · · ⎟
0 0 0 ··· 1⎟
⎜ ⎟
⎜ . . . .⎟
⎜ . .⎟
⎜ . . ⎟
⎜ ⎟
⎜ . . . .⎟
⎜ ⎟
⎜ 0 0 ··· −1 0 0 ··· 0⎟
⎜ ⎟
⎜ 0 0 ··· −1 0 1 ··· 0⎟
⎜ . .. .. .. .. .. ⎟
⎝ .. . . . . .⎠
0 0 ··· −1 0 0 ··· 1
and
cT = (−s1 , −s2 , . . . , −sI , r1 , r2 , . . . , rJ ).
and
x1 ≥ 0, u2 ≥ 0, v2 ≥ 0, x3 ≥ 0, x4 ≥ 0.
51
Solutions to Exercises of Section 2.
x1 − x2 − 2x3 + x4 ≤ 1
−2x1 + x2 + x4 ≤ 2
x1 + x2 + x3 + x4 ≤ 1
and
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0.
2. We check that y = ( 23 , 0, 14 1 2
3 ) and x = (0, 3 , 3 , 0) are feasible for their respective
problems, and that they have the same value. Clearly, y ≥ 0 and x ≥ 0 . Substituting
y into the main constraints of Exercise 1, we find 23 + 14 3 = 3 ≥ 2, −3 + 3 = 4 ≥ 4,
16 2 14
4
3
+ 14
3
= 6 ≥ 6 , and 23 + 14
3
= 163
≥ 2 , so y is feasible. Similarly substituting x into
the main constraints of the solution of Exercise 1, we find − 13 + 43 = 1 ≤ 1 , 13 ≤ 2 , and
3 + 3 = 2 ≤ 2 , so x is feasible. The value of y is 3 + 3 = 3 , and the value of x is
1 2 2 14 16
4 12 16
3 + 3 = 3 . Since these are equal, both are optimal.
y1 + 2y2 − y3 + y4 ≥ 3
−y1 + y2 + y4 ≥ 2
y1 + 3y2 + 2y3 + y4 ≥ 1
and
y1 ≥ 0, y2 ≥ 0, y3 ≥ 0, y4 ≥ 0.
(b) If x = (0, 6, 0) is optimal for the maximum problem, then the strict inequality in
the first, third and fourth main constraints implies that y1 = y3 = y4 = 0 . Also, x2 > 0
implies that there is equality in the second constraint in the minimum problem. Solving
this gives y2 = 2 . After checking that y = (0, 2, 0, 0) is feasible, we conclude it is optimal.
I J
4. (a) Find x = (x1 , . . . , xI , xI+1 , . . . , xI+J ) to maximize − i=1 si xi + j=1 rj xI+j
subject to
−xi + xI+j ≤ bij for all i and j
and
xi ≥ 0 for all i.
(b) Since bij is measured in cost, say in dollars, per unit of the commodity, the main
constraints show that the xi are also measured in dollars per unit of the commodity. The
objective function is therefore measured in dollars. (This is the dimensional analysis.) We
may imagine an independent entrepreneur who offers to buy the commodities at port Pi
52
for xi dollars per unit, and to sell them at market Mj for xI+j dollars per unit. If the min
constraints are satisfied, we can essentially get all our goods transported from the ports to
the markets at no increase in cost, so we would accept the offer. Naturally
I he will
Jchoose the
xi to maximize his profit, which is just the objective function, − i=1 si xi + j=1 rj xI+j .
Thus, xi for 1 ≤ i ≤ I represents the shadow value of a unit of the commodity at port
Pi , and xI+j for 1 ≤ j ≤ J represents the shadow value of a unit of the commodity at
market Mj .
53
Solution to the Exercise of Section 3.
s1 s2 s3 s4 y1 s2 s3 s4 y1 s2 y2 s4
y1
1 1 0 2 s1 1 1 0 2 s1 1 1 0 2
y2 0 2 −1 1 −→ y2 0 2 −1 1 −→ s3 0 −2 −1 −1
y3 −1 1 0 3 y3 1 2 0 5 y3 1 2 0 5
y4 1 −2 2 1 y4 −1 −3 2 −1 y4 −1 1 2 1
y1 y4 y2 s4 y1 y4 y2 y3 y1 y2 y3 y4
s1 2 −1 −2 1 s1 1 − 13 − 32 − 13 s1 1 − 23 − 13 − 31
−→ s3 −2 2 3 1 −→ s3 −3 83 13 3 −3
1
= s2 −2 10
3 − 13 − 35
y3 3 −2 −4 3 s4 1 − 23 − 34 31 s3 −3 13
3 − 13 83
s2 −1 1 2 1 s2 −2 53 10 3 −3
1
s4 1 − 43 3 −3
1 2
Therefore,
⎛ ⎞
3 −2 −1 −1
1 ⎜ −6 10 −1 −5 ⎟
A−1 = ⎝ ⎠
3 −9 13 −1 8
3 −4 1 −2
54
Solutions to the Exercises of Section 4.
y1 + 2y2 − 2y3 ≥ 1
−y1 + + y3 ≥ −2
and y1 ≥ 0, y2 ≥ 0, y3 ≥ 0.
−2y1 + y2 ≥ −3
−y1 − 4y2 + y3 ≥ −1
x1 x2 x3 x4 y2 x2 x3 x4
y1 1 −1 −2 −1 4 y1 − 12 −1 − 25 1 3
y2 2 0 1 −4 2 −→ x1 1
2 0 12 −2 1
y3 −2 1 0 1 1 y3 1 1 1 −3 3
−1 2 3 1 0 1
2
2 72 −1 1
y2 x2 x3 y1
x4 3
−→ x1 7
y3 12
0 1 1 1 4
From this we see that the value for both programs is 4, the solution to the minimum
problem is y1 = 1 , y2 = 0 , y3 = 0 , and the solution to the maximum problem is x1 = 7 ,
x2 = 0 , x3 = 0 , x4 = 3 .
2x1 + x2 − 7x3 ≤ 3
−x1 + 4x3 ≤ −1
and y1 ≥ 0, y2 ≥ 0, y3 ≥ 0.
−2y1 + y2 ≥ −3
−y1 − 4y2 + y3 ≥ −1
x1 x2 x3 y2 x2 x3 y2 y3 x3
y1 2 1 −7 3 y1 2 −1 1 1 y1 3/2
y2
−1 0 4 −1 −→ x1 −1 0 4 1 −→ x1 1
y3 1 2 −6 2 y3 1 2 −2 1 x2 1/2
1 −2 −1 0 1 −2 3 −1 2 1 1 0
55
3.
x1 x2 x3 x1 x2 y3
y1 −3 3 1 3 y1 −2 3 −1 2
y2 2 −1 −2 1 −→ y2 0 −1 2 3
y3 −1 0 1 1 x3 −1 0 1 1
1 1 −2 0 −1 1 2 2
The first column shows that the maximum problem is unbounded feasible.
4.
x1 x2 x3 x1 x2 y3
y1 −2 2 3 5 y1 7 5 3 2
y2 0 −1 2 −2 −→ y2 6 1 2 −4
y3 3 1
− 1 −1 x3 −3 −1 −1 1
1 −1 0 0 1 −1 0 0
The second row shows that the maximum problem is infeasible.
x1 x2 x3 y2 x2 x3
y1 −1 4 2 0 y1 1
y2
−2 1 −3 −2 −→ x1 1
y3 0 7 1 1 y3 1
3 1 5 0 3
2
5
2
1
2 −3
x1 x2 x3 y1 x2 x3
y1 1 2 2 1 x1 1
y2 −3 0 1 −1 −→ y2 2
y3 −2 −1 0 −1 y3 1
−3 −4 −5 0 3 2 1 3
56
Solutions to the Exercises of Section 5.
n
n
1. (a) Maximize j=1 cj xj + j=+1 cj xj + j=+1 (−cj )xj subject to
n
n
aij xj + aij xj + (−aij )xj ≤ bi for i = 1, . . . , k
j=1 j=+1 j=+1
n
n
aij xj + aij xj + (−aij )xj ≤ bi for i = k + 1, . . . , m
j=1 j=+1 j=+1
n
n
aij xj + (−aij )xj + aij xj ≤ bi for i = k + 1, . . . , m
j=1 j=+1 j=+1
and
xj ≥ 0 for j = 1, . . . ,
xj ≥ 0 and xj ≥ 0 for j = + 1, . . . , n
k m
m
(b) Minimize i=1 bi yi + i=k+1 bi yi + i=k+1 (−bi )yi subject to
k
m
m
yi aij + yj aij + yi (−aij ) ≥ cj for j = 1, . . . ,
i=1 i=k+1 i=k+1
k
m
m
yi aij + yj aij + yi (−aij ) ≥ cj for j = + 1, . . . , n
i=1 i=k+1 i=k+1
k
m
m
yi aij + yj (−aij ) + yi aij ≥ cj for j = + 1, . . . , n
i=1 i=k+1 i=k+1
and
yi ≥ 0 for i = 1, . . . , k
yi ≥ 0 and yi ≥ 0 for i = k + 1, . . . , m
2. One can mimic the proof of the Equilibrium Theorem for Standard Problems. Let
x and y ∗ be feasible for the General Maximum Problem and its dual. If the condition
∗
m
m
n
m
n
yi∗ bi = yi∗ ( aij x∗j ) = yi∗ aij x∗j
i=1 i=1 j=1 i=1 j=1
57
n
since yi∗ = 0 whenever bi = ∗
j=1 aij xj . Similarly,
n n m
m
n
cj x∗j = ( yi∗ aij )x∗j = yi∗ aij x∗j .
j=1 j=1 i=1 i=1 j=1
∗ ∗
Since the values are equal, both x and y are optimal.
∗
Nowsuppose x and y ∗ are optimal. By the Duality Theorem, their values are equal,
that is, j cj x∗j = i yi∗ bi . But
cj xj ≤ yi aij xj ≤ yi bi
j j i i
∗ ∗
for all feasible x and y . So for x and y , we get equality throughout. Therefore,
(cj − aij yi )x∗j = 0
j i
∗
and since cj ≤ i aij yiforall j , we must have that x∗j = 0 whenever cj < i aij yi∗ .
Similarly, yi∗ = 0 whenever j aij x∗j < bi , as was to be shown.
58
Solutions to the Exercises of Section 6.
x1 x2 x3 x4 y1 x2 x3 x4 y1 y2 x3 x4
y1 1 −2 −1 2 0 x1 1 −2 −1 2 0 x1 −3 2 1 −4 0
y2 2 −3 −1 1 0 −→ y2 −2 1 1 −3 0 −→ x2 −2 1 1 −3 0
y3 0 0 1 0 1 y3 0 0 1 0 1 y3 0 0 1 0 1
−3 5 −1 2 0 3 −1 −4 8 0 1 1 −3 5 0
y1 y2 x1 x4 y1 y2 x1 x2
x3 −3 2 1 −4 0 x3 1 −2 −3 4 0
−→ x2 1 −1 −1 1 0 −→ x4 1 −1 −1 1 0
y3 3 −2 −1 4 1 y3 −1 2 3 −4 1
−8 7 3 −7 0 −1 0 −4 7 0
x3 y2 x1 x2 x3 x4 x1 x2
y1 1 −2 −3 4 0 y1 −1 2 1 −2 0
−→ x4 −1 1 2 3 0 −→ y2 −1 1 2 3 0
y3 1 0 0 0 1 y3 1 0 0 0 1
1 −2 −7 11 0 −1 2 −3 5 0
and we are back where we started with just some columns interchanged.
2.
x1 x2 x3 x4 y2 x2 x3 x4
y1 1 −2 −1 2 0 1 0 0 y1 −.5 −.5 −.5 1.5 0 1 −.5 0
y2 2 −3 −1 1 0 0 1 0 −→ x1 .5 −1.5 −.5 .5 0 0 .5 0
y3 0 0 1 0 1 0 0 1 y3 0 0 1 0 1 0 0 1
−3 5 −1 2 0 0 0 0 1.5 .5 −2.5 3.5 0 0 1.5 0
y2 x2 y3 x4
y1 −.5 −.5 .5 1.5 .5 1 −.5 .5
−→ x1 .5 −1.5 .5 .5 .5 0 .5 .5
x3 0 0 1 0 1 0 0 1
1.5 .5 2.5 3.5 2.5 0 1.5 2.5
The value is 2.5, the solution to the maximum problem is x = (.5, 0, 1, 0), and the solution
to the minimum problem is y = (0, 1.5, 2.5).
59
3. The first four pivots are the same as for Problem 1. Then
y1 y2 x1 x2 y1 y2 y3 x2 x4 y2 y3 x2
x3 1 −2 −3 4 0 x3 0 0 1 0 1 x3 0 0 1 0 1
x4 1 −1 −1 1 0 −→ x4 2
3
− 31 31 − 13 13 −→ y1 2 −2 2 −2 2
3 1 1 1 1
y3 −1 2 3 −4 1 x1 − 3 3 31 − 43 13
1 2
x1 1
2
1
2 2 −2 2
1 3 1
−1 0 −4 7 0 − 73 83 34 53 43 7
2
3
2
5
2
1
2
5
2
This is the solution found in Problem 2, but with some columns interchanged and some
rows interchanged.
60
Solutions to the Exercises of Section 6.
x1 x2 x3 x4 y1 x2 x3 x4 y1 y2 x3 x4
y1 1 −2 −1 2 0 x1 1 −2 −1 2 0 x1 −3 2 1 −4 0
y2 2 −3 −1 1 0 −→ y2 −2 1 1 −3 0 −→ x2 −2 1 1 −3 0
y3 0 0 1 0 1 y3 0 0 1 0 1 y3 0 0 1 0 1
−3 5 −1 2 0 3 −1 −4 8 0 1 1 −3 5 0
y1 y2 x1 x4 y1 y2 x1 x2
x3 −3 2 1 −4 0 x3 1 −2 −3 4 0
−→ x2 1 −1 −1 1 0 −→ x4 1 −1 −1 1 0
y3 3 −2 −1 4 1 y3 −1 2 3 −4 1
−8 7 3 −7 0 −1 0 −4 7 0
x3 y2 x1 x2 x3 x4 x1 x2
y1 1 −2 −3 4 0 y1 −1 2 1 −2 0
−→ x4 −1 1 2 3 0 −→ y2 −1 1 2 3 0
y3 1 0 0 0 1 y3 1 0 0 0 1
1 −2 −7 11 0 −1 2 −3 5 0
and we are back where we started with just some columns interchanged.
2.
x1 x2 x3 x4 y2 x2 x3 x4
y1 1 −2 −1 2 0 1 0 0 y1 −.5 −.5 −.5 1.5 0 1 −.5 0
y2 2 −3 −1 1 0 0 1 0 −→ x1 .5 −1.5 −.5 .5 0 0 .5 0
y3 0 0 1 0 1 0 0 1 y3 0 0 1 0 1 0 0 1
−3 5 −1 2 0 0 0 0 1.5 .5 −2.5 3.5 0 0 1.5 0
y2 x2 y3 x4
y1 −.5 −.5 .5 1.5 .5 1 −.5 .5
−→ x1 .5 −1.5 .5 .5 .5 0 .5 .5
x3 0 0 1 0 1 0 0 1
1.5 .5 2.5 3.5 2.5 0 1.5 2.5
The value is 2.5, the solution to the maximum problem is x = (.5, 0, 1, 0), and the solution
to the minimum problem is y = (0, 1.5, 2.5).
61
3. The first four pivots are the same as for Problem 1. Then
y1 y2 x1 x2 y1 y2 y3 x2 x4 y2 y3 x2
x3 1 −2 −3 4 0 x3 0 0 1 0 1 x3 0 0 1 0 1
x4 1 −1 −1 1 0 −→ x4 2
3
− 31 31 − 13 13 −→ y1 2 −2 2 −2 2
3 1 1 1 1
y3 −1 2 3 −4 1 x1 − 3 3 31 − 43 13
1 2
x1 1
2
1
2 2 −2 2
1 3 1
−1 0 −4 7 0 − 73 83 34 53 43 7
2
3
2
5
2
1
2
5
2
This is the solution found in Problem 2, but with some columns interchanged and some
rows interchanged.
62
Solutions to the Exercises of Section 8.
1. The Northwest Corner Rule and the Least-Cost Rule lead to the same feasible
shipping schedule. Solve for the dual variables and find that the constraint vj − ui ≤ bij
is not satisfied for i = 1 , j = 2 . Add θ to that square, and add and subtract θ from
other squares keeping the constraints satisfied. The transporation cost can be improved
by taking θ = 1 .
2 6 1 4
1 4 1 1 4 0 1 4
2 2 −θ 2 +θ 2
1
1 2
−→ −→
2 6 0 2 6 −1 2 6
1
1 2
+ θ 1 −θ
1 2
2 2
3 1 3 1 3 1
2. The Least-Cost Rule, which gives the same result no matter how the rows and
columns are rearranged, leads to success on the first try. The value is 1 + 6 + 15 + 35 = 57 .
1 3 5 6
0 1 3 5 8
1
2
3 6
−1 2 5 6 7
0
5 5
1 2 3 5
3. After finding the Least-Cost shipping schedule and the dual varaibles, we see that
the constraint vj − ui ≤ bij is not satisfied for i = 2 , j = 3 . This leads to an improvement
by adding θ = 5 to that square. The new schedule is optimal, with value 535.
7 6 8 7 6 7
−1 10 8 9 −2 10 8 9
15 15
15 15
4 5 2 3 4 5 2 3
−θ
20 +θ 20
−→
15
5 20
4 6 7 4 3 6 7 4
30 30
30 30
0 7 6 8 0 7 6 8
25 +θ
5 −θ
5 35
25
10 35
25 25 50 25 25 50
63
4. After finding an initial shipping schedule using the Least-Cost Rule, it takes two
more applications of the improvment routine with θ = 1 in each to arrive at the optimal
schedule.
8 6 7 5
3 4 3 4 2
+θ −θ 4 4
0 8 6 7 5
−θ 2 2 4
2 6 4 5 3
−θ 4 +θ 2 6
1 7 5 6 4
+θ 3 −θ 1 4
2 7 3 6
8 7 7 6
4 4 3 4 2
+θ
1 −θ
3 4
0 8 6 7 5
−θ
1
3 +θ 4
3 6 4 5 3
3
3 6
2 7 5 6 4
4 4
2 7 3 6
7 6 7 5
3 4 3 4 2
2
2 4
0 8 6 7 5
3
1 4
2 6 4 5 3
3
3 6
1 7 5 6 4
4 4
2 7 3 6
64
Related Texts
65