Linear Programming Notes
Linear Programming Notes
Carl W. Lee
Department of Mathematics
University of Kentucky
Lexington, KY 40506
lee@ms.uky.edu
January 3, 1996
Latest Revision: Fall 2003
i
Contents
1 References 1
3 Introduction 5
3.1 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 Back to the Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
7 Duality 28
7.1 Economic Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7.2 The Dual Linear Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.3 The Duality Theorems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.4 Comments on Good Characterization . . . . . . . . . . . . . . . . . . . . . . 36
7.5 Complementary Slackness . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.6 Duals of General LP’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.7 Geometric Motivation of Duality . . . . . . . . . . . . . . . . . . . . . . . . 42
8 Exercises: Duality 44
ii
10 Exercises: The Simplex Method 74
iii
1 References
Four good references for linear programming are
I used some material from these sources in writing these notes. Also, some of the exercises
were provided by Jon Lee and Francois Margot. Thanks in particular to Francois Margot
for many useful suggestions for improving these notes.
Exercise 1.1 Find as many errors in these notes as you can and report them to me. 2
1
2 Exercises: Linear Algebra
It is important to have a good understanding of the content of a typical one-semester un-
dergraduate matrix algebra course. Here are some exercises to try. Note: Unless otherwise
specified, all of my vectors are column vectors. If I want a row vector, I will transpose a
column vector.
Exercise 2.1 Consider the product C = AB of two matrices A and B. What is the formula
for cij , the entry of C in row i, column j? Explain why we can regard the ith row of C as
a linear combination of the rows of B. Explain why we can regard the jth column of C as
a linear combination of the columns of A. Explain why we can regard the ith row of C as a
sequence of inner products of the columns of B with a common vector. Explain why we can
regard the jth column of C as a sequence of inner products of the rows of A with a common
vector. Consider the block matrices
A B E F
and .
C D G H
Assume that the number of columns of A and C equals the number of rows of E and F , and
that the number of columns of B and D equals the number of rows of G and H. Describe
the product of these two matrices. 2
Exercise 2.2 Associated with a matrix A are four vector spaces. What are they, how can
you find a basis for each, and how are their dimensions related? Give a “natural” basis for
the nullspace of the matrix [A|I], where A is an m × n matrix and I is an m × m identity
matrix concatenated onto A. 2
Exercise 2.3 Suppose V is a set of the form {Ax : x ∈ Rk }, where A is an n × k matrix.
Prove that V is also a set of the form {y ∈ Rn : By = O} where B is an × n matrix, and
explain how to find an appropriate matrix B. Conversely, suppose V is a set of the form
{y ∈ Rn : By = O}, where B is an × n matrix. Prove that V is also a set of the form
{Ax : x ∈ Rk }, where A is an n × k matrix, and explain how to find an appropriate matrix
A. 2
Exercise 2.4 Consider a linear system of equations, Ax = b. What are the various elemen-
tary row operations that can be used to obtain an equivalent system? What does it mean
for two systems to be equivalent? 2
Exercise 2.5 Consider a linear system of equations, Ax = b. Describe the set of all solutions
to this system. Explain how to use Gaussian elimination to determine this set. Prove that
the system has no solution if and only if there is a vector y such that y T A = OT and y T b = 0.
2
2
Exercise 2.6 If x ∈ Rn , what is the definition of x1 ? Of x2 ? Of x∞ ? For fixed
matrix A (not necessarily square) and vector b, explain how to minimize Ax − b2 . Note:
From now on in these notes, if no subscript appears in the notation x, then the norm x2
is meant. 2
Exercise 2.8 Consider a linear system of equations Ax = b where A is square and nonsin-
gular. Describe the set of all solutions to this system. What is Cramer’s rule and how can
it be used to find the complete set of solutions? 2
Exercise 2.9 Consider a square matrix A. When does it have an inverse? How can Gaussian
elimination be used to find the inverse? How can Gauss-Jordan elimination be used to find
the inverse? Suppose ej is a vector of all zeroes, except for a 1 in the jth position. What does
the solution to Ax = ej have to do with A−1 ? What does the solution to xT A = eTj have to
do with A−1 ? Prove that if A is a nonsingular matrix with integer entries and determinant
±1, then A−1 is also a matrix with integer entries. Prove that if A is a nonsingular matrix
with integer entries and determinant ±1, and b is a vector with integer entries, then the
solution to Ax = b is an integer vector. 2
Exercise 2.11 What does it mean for a matrix to be orthogonal? Prove that if A is or-
thogonal and x and y are vectors, then x − y2 = Ax − Ay2 ; i.e., multiplying two vectors
by A does not change the Euclidean distance between them. 2
Exercise 2.12 What is the definition of an eigenvector and an eigenvalue of a square matrix?
The remainder of the questions in this problem concern matrices over the real numbers, with
real eigenvalues and eigenvectors. Find a square matrix with no eigenvalues. Prove that if
A is a symmetric n × n matrix, there exists a basis for Rn consisting of eigenvectors of A. 2
3
Exercise 2.13 What does it mean for a symmetric matrix A to be positive semi-definite?
Positive definite? If A is positive definite, describe the set {x : xT Ax ≤ 1}. What is the
geometrical interpretation of the eigenvectors and eigenvalues of A with respect to this set?
2
Exercise 2.14 Suppose E is a finite set of vectors in Rn . Let V be the vector space spanned
by the vectors in E. Let I = {S ⊆ E : S is linearly independent}. Let C = {S ⊆ E : S is
linearly dependent, but no proper subset of S is linearly dependent}. Let B = {S ⊆ E : S
is a basis for V }. Prove the following:
1. ∅ ∈ I.
2. If S1 ∈ I, S2 ∈ I, and card S2 > card S1 , then there exists an element e ∈ S2 such that
S1 ∪ {e} ∈ I.
3. If S ∈ I and S ∪ {e} is dependent, then there is exactly one subset of S ∪ {e} that is
in C.
4
3 Introduction
3.1 Example
Consider a hypothetical company that manufactures gadgets and gewgaws.
1. One kilogram of gadgets requires 1 hour of labor, 1 unit of wood, 2 units of metal, and
yields a net profit of 5 dollars.
2. One kilogram of gewgaws requires 2 hours of labor, 1 unit of wood, 1 unit of metal,
and yields a net profit of 4 dollars.
3. Available are 120 hours of labor, 70 units of wood, and 100 units of metal.
What is the company’s optimal production mix? We can formulate this problem as the
linear program
max z = 5x1 + 4x2
s.t. x1 + 2x2 ≤ 120
x1 + x2 ≤ 70
2x1 + x2 ≤ 100
x1 , x2 ≥ 0
In matrix notation, this becomes
x1
max 5 4
x2
1 2 120
x1
s.t. 1 1 ≤ 70
x
2 1 2 100
x1 0
≥
x2 0
5
O(0,0)
A(0,60)
B(20,50)
5x+4y=310
C(30,40) (optimal)
A
D(50,0)
B
C
O D
3.2 Definitions
A linear function is a function of the form a1 x1 + · · · + an xn , where a1 , . . . , an ∈ R. A
linear equation is an equation of the form a1 x1 + · · · + an xn = β, where a1 , . . . , an , β ∈ R.
If there exists at least one nonzero aj , then the set of solutions to a linear equation is called
a hyperplane. A linear inequality is an inequality of the form a1 x1 + · · · + an xn ≤ β or
a1 x1 + · · · + an xn ≥ β, where a1 , . . . , an , β ∈ R. If there exists at least one nonzero aj , then
the set of solutions to a linear inequality is called a halfspace. A linear constraint is a linear
equation or linear inequality.
A linear programming problem is a problem in which a linear function is to be maximized
(or minimized), subject to a finite number of linear constraints. A feasible solution or feasible
point is a point that satisfies all of the constraints. If such a point exists, the problem is
feasible; otherwise, it is infeasible . The set of all feasible points is called the feasible region
or feasible set. The objective function is the linear function to be optimized. An optimal
solution or optimal point is a feasible point for which the objective function is optimized. The
value of the objective function at an optimal point is the optimal value of the linear program.
In the case of a maximization (minimization) problem, if arbitrarily large (small) values of
the objective function can be achieved, then the linear program is said to be unbounded.
More precisely, the maximization (minimization) problem is unbounded if for all M ∈ R
there exists a feasible point x with objective function value greater than (less than) M .
Note: It is possible to have a linear program that has bounded objective function value but
unbounded feasible region, so don’t let this confusing terminology confuse you. Also note
6
that an infeasible linear program has a bounded feasible region.
Exercise 3.1 Graphically construct some examples of each of the following types of two-
variable linear programs:
1. Infeasible.
6. Unbounded.
7
tempting, because they would receive $350, more than what they would gain by their current
manufacturing plan. However, observe that if they manufactured some gadgets instead, for
each kilogram of gadgets they would lose $4.50 from the potential sale of their resources
but gain $5 from the sale of the gadgets. (Note, however, that it would be better to sell
their resources than make gewgaws.) So they should not accept the offer to sell all of their
resources at these prices.
Exercise 3.2 In the example above, GGMC wouldn’t want to sell all of their resources at
those prices. But they might want to sell some. What would be their best strategy? 2
Exercise 3.3 Suppose now that GGMC is offered $3 for each unit of wood and $1 for each
unit of metal that they are willing to sell, but no money for hours of labor. Explain why
they would do just as well financially by selling all of their resources as by manufacturing
their products. 2
Exercise 3.4 In general, what conditions would proposed prices have to satisfy to induce
GGMC to sell all of their resources? If you were trying to buy all of GGMC’s resources as
cheaply as possible, what problem would you have to solve? 2
Exercise 3.5 If you want to purchase just one hour of labor, or just one unit of wood, or
just one unit of metal, from GGMC, what price in each case must you offer to induce GGMC
to sell? 2
8
4 Exercises: Linear Programs
Exercise 4.1 Consider the following linear program (P ):
max z = x1 + 2x2
s.t. 3x1 + x2 ≤ 3 (1)
x1 + x2 ≤ 3/2 (2)
x1 ≥ 0 (3)
x2 ≥ 0 (4)
3. Explain why the four constraints have the following respective outer normal vectors
(an outer normal vector to a constraint is perpendicular to the defining line of the
constraint and points in the opposite direction of the shaded side of the constraint):
Explain why the gradient of the objective function is the vector [1, 2]T . For each corner
point of the feasible region, compare the outer normals of the binding constraints at
that point (the constraints satisfied with equality by that point) with the gradient of z.
From this comparison, how can you tell geometrically if a given corner point is optimal
or not?
4. Vary the objective function coefficients and consider the following linear program:
max z = c1 x1 + c2 x2
s.t. 3x1 + x2 ≤ 3
x1 + x2 ≤ 3/2
x1 , x 2 ≥ 0
Carefully and completely describe the optimal value z ∗ (c1 , c2 ) as a function of the pair
(c1 , c2 ). What kind of function is this? Optional: Use some software such as Maple to
plot this function of two variables.
9
5. Vary the right hand sides and consider the following linear program:
max z = x1 + 2x2
s.t. 3x1 + x2 ≤ b1
x 1 + x 2 ≤ b2
x1 , x2 ≥ 0
Carefully and completely describe the optimal value z ∗ (b1 , b2 ) as a function of the pair
(b1 , b2 ). What kind of function is this? Optional: Use some software such as Maple to
plot this function of two variables.
6. Find the best nonnegative integer solution to (P ). That is, of all feasible points for
(P ) having integer coordinates, find the one with the largest objective function value.
max z = −x1 − x2
s.t. x1 ≤ 1/2 (1)
x1 − x2 ≤ −1/2 (2)
x1 ≥ 0 (3)
x2 ≥ 0 (4)
max z = 2x1 + x2
s.t. x1 ≤ 2 (1)
x2 ≤ 2 (2)
x1 + x 2 ≤ 4 (3)
x1 − x2 ≤ 1 (4)
x1 ≥ 0 (5)
x2 ≥ 0 (6)
Associated with each of the 6 constraints is a line (change the inequality to equality in
the constraint). Consider each pair of constraints for which the lines are not parallel,
and examine the point of intersection of the two lines. Call this pair of constraints a
primal feasible pair if the intersection point falls in the feasible region for (P ). Call
10
this pair of constraints a dual feasible pair if the gradient of the objective function can
be expressed as a nonnegative linear combination of the two outer normal vectors of
the two constraints. (The movitation for this terminology will become clearer later
on.) List all primal-feasible pairs of constraints, and mark the intersection point for
each pair. List all dual-feasible pairs of constraints (whether primal-feasible or not),
and mark the intersection point for each pair. What do you observe about the optimal
point(s)?
Exercise 4.4 We have observed that any two-variable linear program appears to fall into
exactly one of three categories: (1) those that are infeasible, (2) those that have unbounded
objective function value, and (3) those that have a finite optimal objective function value.
Suppose (P ) is any two-variable linear program that falls into category (1). Into which of
the other two categories can (P ) be changed if we only alter the right hand side vector b?
The objective function vector c? Both b and c? Are your answers true regardless of the
initial choice of (P )? Answer the analogous questions if (P ) is initially in category (2). In
category (3). 2
max cT x
(P ) s.t. Ax ≤ b
x≥O
max cT x
(IP ) s.t. Ax ≤ b
x ≥ O and integer
such that (P ) has unbounded objective function value, but (IP ) has a finite optimal objective
function value. Note: “x integer” means that each coordinate xj of x is an integer. 2
Exercise 4.6 Prove the following: For each positive real number d there exists a two-
variable linear program (P ) with associated integer linear program (IP ) such that the entries
of A, b, and c are rational, (P ) has a unique optimal solution x∗ , (IP ) has a unique optimal
solution x∗ , and the Euclidean distance between x∗ and x∗ exceeds d. Can you do the same
with a one-variable linear program? 2
11
Exercise 4.7 Find a subset S of R2 and a linear objective function cT x such that the
optimization problem
max cT x
s.t. x ∈ S
is feasible, has no optimal objective function value, but yet does not have unbounded objec-
tive function value. 2
Exercise 4.8 Find a quadratic objective function f (x), a matrix A with two columns, and
a vector b such that the optimization problem
max f (x)
s.t. Ax ≤ b
x≥O
Exercise 4.9 (Chvátal problem 1.5.) Prove or disprove: If the linear program
max cT x
(P ) s.t. Ax ≤ b
x≥O
max xk
s.t. Ax ≤ b
x≥O
is unbounded. 2
Exercise 4.10 (Bertsimas and Tsitsiklis problem 1.12.) Consider a set S ⊆ Rn described
by the constraints Ax ≤ b. The ball with center y ∈ Rn and radius r ∈ R+ is defined as
{x ∈ Rn : x − y ≤ r}. Construct a linear program to solve the problem of finding a ball
with the largest possible radius that is entirely contained within the set S. 2
12
5 Theorems of the Alternatives
5.1 Systems of Equations
Let’s start with a system of linear equations:
Ax = b.
Suppose you wish to determine whether this system is feasible or not. One reasonable
approach is to use Gaussian elimination. If the system has a solution, you can find a
particular one, x. (You remember how to do this: Use elementary row operations to put
the system in row echelon form, select arbitrary values for the independent variables and
use back substitution to solve for the dependent variables.) Once you have a feasible x (no
matter how you found it), it is straightforward to convince someone else that the system is
feasible by verifying that Ax = b.
If the system is infeasible, Gaussian elimination will detect this also. For example, con-
sider the system
x1 + x 2 + x 3 + x 4 = 1
2x1 − x2 + 3x3 = −1
8x1 + 2x2 + 10x3 + 4x4 = 0
which in matrix form looks like
1 1 1 1 1
2 −1 3 0 −1
.
8 2 10 4 0
which implies
1 0 0 1 1 1 1 1 1 1 1 1 1
−2 1 0 2 −1 3 0 −1 = 0 −3 1 −2 −3
.
−4 −2 1 8 2 10 4 0 0 0 0 0 −2
Immediately it is evident that the original system is infeasible, since the resulting equivalent
system includes the equation 0x1 + 0x2 + 0x3 + 0x4 = −2.
13
This equation comes from multiplying the matrix form of the original system by the third
row of the matrix encoding the row operations: [−4, −2, 1]. This vector satisfies
1 1 1 1
−4 −2 1 2 −1 3 0 = 0 0 0 0
8 2 10 4
and
1
−4 −2 1 −1
= −2.
0
In matrix form, we have found a vector y such that y T A = O and y T b = 0. Gaussian
elimination will always produce such a vector if the original system is infeasible. Once you
have such a y (regardless of how you found it), it is easy to convince someone else that the
system is infeasible.
Of course, if the system is feasible, then such a vector y cannot exist, because otherwise
there would also be a feasible x, and we would have
0 = OT x = (y T A)x = y T (Ax) = y T b = 0,
which is impossible. (Be sure you can justify each equation and inequality in the above
chain.) We have established our first Theorem of the Alternatives:
Theorem 5.1 Either the system
(I) Ax = b
has a solution, or the system
y T A = OT
(II)
y T b = 0
has a solution, but not both.
As a consequence of this theorem, the following question has a “good characterization”:
Is the system (I) feasible? I will not give an exact definition of this concept, but roughly
speaking it means that whether the answer is yes or no, there exists a “short” proof. In this
case, if the answer is yes, we can prove it by exhibiting any particular solution to (I). And
if the answer is no, we can prove it by exhibiting any particular solution to (II).
Geometrically, this theorem states that precisely one of the alternatives occurs:
1. The vector b is in the column space of A.
2. There is a vector y orthogonal to each column of A (and hence to the entire column
space of A) but not orthogonal to b.
14
5.2 Fourier-Motzkin Elimination — A Starting Example
Now let us suppose we are given a system of linear inequalities
Ax ≤ b
and we wish to determine whether or not the system is feasible. If it is feasible, we want to
find a particular feasible vector x; if it is not feasible, we want hard evidence!
It turns out that there is a kind of analog to Gaussian elimination that works for systems
of linear inequalities: Fourier-Motzkin elimination. We will first illustrate this with an
example:
x1 − 2x2 ≤ −2
x1 + x2 ≤ 3
x1 ≤ 2
(I)
−2x1 + x2 ≤ 0
−x1 ≤ −1
8x2 ≤ 15
Our goal is to derive a second system (II) of linear inequalities with the following properties:
(Do you see why Gaussian elimination does the same thing for systems of linear equations?)
Here is how it works. Let’s eliminate the variable x1 . Partition the inequalities in (I) into
three groups, (I− ), (I+ ), and (I0 ), according as the coefficient of x1 is negative, positive, or
zero, respectively.
x1 − 2x2 ≤ −2
−2x1 + x2 ≤ 0
(I− ) (I+ ) x1 + x2 ≤ 3 (I0 ) 8x2 ≤ 15
−x1 ≤ −1
x1 ≤ 2
For each pair of inequalities, one from (I− ) and one from (I+ ), multiply by positive
numbers and add to eliminate x1 . For example, using the first inequality in each group,
( 12 )(−2x1 + x2 ≤ 0)
+(1)(x1 − 2x2 ≤ −2)
− 32 x2 ≤ −2
15
System (II) results from doing this for all such pairs, and then also including the in-
equalities in (I0 ):
− 32 x2 ≤ −2
3
x ≤3
2 2
1
x ≤2
2 2
(II) −2x2 ≤ −3
x2 ≤ 2
0x2 ≤ 1
8x2 ≤ 15
The derivation of (II) from (I) can also be represented in matrix form. Here is the
original system:
1 −2 −2
1 1 3
1 0 2
−2 1 0
−1 0 −1
0 8 15
Obtain the new system by multiplying on the left by the matrix that constructs the
desired nonnegative combinations of the original inequalities:
1 0 0 1/2 0 0
1 −2 −2
0 1 0 1/2 0 0
1 1 3
1 1/2 0 0
0 0 1 0 2
1 0 0 0 1 0
−2 1 0
0 0 1 0
0 1 −1 0 −1
0 0 1 0 1 0
0 8 15
0 0 0 0 0 1
0 −3/2 −2
0 3/2 3
0 1/2 2
= 0 −2 −3 .
0 1 2
0 0 1
0 8 15
To see why the new system has the desired properties, let’s break down this process a bit.
First scale each inequality in the first two groups by positive numbers so that each coefficient
16
of x1 in (I− ) is −1 and each coefficient of x1 in (I+ ) is +1.
x1 − 2x2 ≤ −2
−x1 + 12 x2 ≤ 0
(I− ) (I+ ) x1 + x2 ≤ 3 (I0 ) 8x2 ≤ 15
−x1 ≤ −1
x1 ≤ 2
Isolate the variable x1 in each of the inequalities in the first two groups.
1 x1 ≤ 2x2 − 2
x
2 2
≤ x1
(I− ) (I+ ) x1 ≤ −x2 + 3 (I0 ) 8x2 ≤ 15
1 ≤ x1
x1 ≤ 2
For each pair of inequalities, one from (I− ) and one from (I+ ), create a new inequality
by “sandwiching” and then eliminating x1 . Keep the inequalities in (I0 ).
1
x ≤ x1 ≤ 2x2 − 2
2 2
1
x ≤ x1 ≤ −x2 + 3
2 2
1
x 2x2 − 2
1
x ≤ x1 ≤ 2
2 2 ≤ x1 ≤ −x2 + 3 2 2
(IIa) 1
−→ (IIb) 1 ≤ x1 ≤ 2x2 − 2
2
1 ≤ x1 ≤ −x2 + 3
8x2 ≤ 15
1 ≤ x1 ≤ 2
8x2 ≤ 15
1
x ≤ 2x2 − 2
2 2
− 32 x2 ≤ −2
1 3
x
2 2
≤ −x2 + 3 x ≤3
2 2
1 1
x ≤2
2 2
x ≤2
2 2
−→ (IIc) 1 ≤ 2x2 − 2 −→ (II) −2x2 ≤ −3
1 ≤ −x2 + 3 x2 ≤ 2
1≤2 0x2 ≤ 1
8x2 ≤ 15 8x2 ≤ 15
Observe that the system (II) does not involve the variable x1 . It is also immediate that
if (I) is feasible, then (II) is also feasible. For the reverse direction, suppose that (II) is
feasible. Set the variables (in this case, x2 ) equal to any specific feasible values (in this case
we choose a feasible value x2 ). From the way the inequalities in (II) were derived, it is
evident that
2x2 − 2
1
x
max 2 2 ≤ min −x2 + 3 .
1
2
17
So there exists a specific value x1 of x1 such that
1
x 2x2 − 2
2 2 ≤ x1 ≤ −x2 + 3
1
2
8x2 ≤ 15
18
Each final inequality, such as 0x1 + 0x2 ≤ 2/3, is feasible, since the left-hand side is zero
and the right-hand side is nonnegative. Therefore the original system is feasible. To find
one specific feasible solution, rewrite (II) as
We can choose, for example, x2 = 3/2. Substituting into (I) (or (IIa)), we require
19
and
2/3 2/3 0 0 0 0 0
2/3 0 2 0 0 0 0 0 −3/2 −2
2/3 0 0 0 1 0 0 0 3/2 3
2/3 0 0 0 0 0 1/8 0 1/2 2
0 2/3 0 1/2 0 0 0 0 −2 −3
0 0 2 1/2 0 0 0 0 1 2
0 0 0 1/2 1 0 0 0 0 1
0 0 0 1/2 0 0 1/8 0 8 11
0 0 0 0 0 1 0
0 0 2/3
0 0 8/3
0 0 2/3
0 0 1/24
= 0 0 1/2 (III)
0 0 5/2
0 0 1/2
0 0 −1/8
0 0 1
Since one inequality is 0x1 +0x2 ≤ −1/8, the final system (III) is clearly infeasible. Therefore
the original system (I) is also infeasible. We can go directly from (I) to (III) by collecting
together the two nonnegative multiplier matrices:
2/3 2/3 0 0 0 0 0
2/3 0 2 0 0 0 0 1 0 0 1/2 0 0
2/3 0 0 0 1 0 0 0 1 0 1/2 0 0
2/3 0 0 0 0 0 1/8 0 0 1 1/2 0 0
0 2/3 0 1/2 0 0 0 1 0 0 0 1 0
0 0 2 1/2 0 0 0 0 1 0 0 1 0
0 0 0 1/2 1 0 0 0 0 1 0 1 0
0 0 0 1/2 0 0 1/8 0 0 0 0 0 1
0 0 0 0 0 1 0
20
2/3 2/3 0 2/3 0 0
2/3 0 2 4/3 0 0
2/3 1 0 1/3 1 0
2/3 0 0 1/3 0 1/8
=
1/2 2/3 0 1/3 1/2 0 = M.
1/2 0 2 1 1/2 0
1/2 1 0 0 3/2 0
1/2 0 0 0 1/2 1/8
0 0 1 0 1 0
You can check that M (I) = (III). Since M is a product of nonnegative matrices, it will itself
be nonnegative. Since the infeasibility is discovered in the eighth inequality of (III), this
comes from the eighth row of M , namely, [1/2, 0, 0, 0, 1/2, 1/8]. You can now demonstrate
directly to anyone that (I) is infeasible using these nonnegative multipliers:
( 12 )(x1 − 2x2 ≤ −2)
+( 12 )(−x1 ≤ −1)
+( 18 )(8x2 ≤ 11)
0x1 + 0x2 ≤ − 18
In particular, we have found a nonnegative vector y such that y T A = OT but y T b < 0.
21
For each (p, q) ∈ I− × I+ , construct the inequality
1 1
− (Ap x ≤ bp ) + (Aq x ≤ bq ).
apk aqk
By this I mean the inequality
1 1 q 1 1
− Ap + A x ≤ − bp + bq . (1)
apk aqk apk aqk
System (II) consists of all such inequalities, together with the original inequalities in-
dexed by the set I0 .
It is clear that if we have a solution (x1 , . . . , xn ) to (I), then (x1 , . . . , xk−1 , xk+1 , . . . , xn )
satisfies (II). Now suppose we have a solution (x1 , . . . , xk−1 , xk+1 , . . . , xn ) to (II). Inequal-
ity (1) is equivalent to
1 1
(bp − apj xj ) ≤ (bq − aqj xj ).
apk j=k aqk j=k
As this is satisfied by (x1 , . . . , xk−1 , xk+1 , . . . , xn ) for all (p, q) ∈ I− × I+ , we conclude that
1 1
max (bp − apj xj ) ≤ min (bq − aqj xj ) .
p∈I− apk j=k
q∈I+ aqk j=k
Choose xk to be any value between these maximum and minimum values (inclusive). Then
for all (p, q) ∈ I− × I+ ,
1 1
(bp − apj xj ) ≤ xk ≤ (bq − aqj xj ).
apk j=k aqk j=k
Now it is not hard to see that (x1 , . . . , xk−1 , xk , xk+1 , . . . , xn ) satisfies all the inequalities in
(I). Therefore (I) is feasible if and only if (II) is feasible.
Observe that each inequality in (II) is a nonnegative combination of inequalities in (I),
so there is a nonnegative matrix Mk such that (II) is expressible as Mk (Ax ≤ b). If we
start with a system Ax ≤ b and eliminate all variables sequentially via nonnegative matrices
M1 , . . . , Mn , then we will arrive at a system of inequalities of the form 0 ≤ bi , i = 1, . . . , m .
This system is expressible as M (Ax ≤ b), where M = Mn · · · M1 . If no bi is negative, then
the final system is feasible and we can work backwards to obtain a feasible solution to the
original system. If bi is negative for some i, then let y T = M i (the ith row of M ), and we
have a nonnegative vector y such that y T A = OT and y T b < 0.
This establishes a Theorem of the Alternatives for linear inequalities:
22
Theorem 5.2 Either the system
(I) Ax ≤ b
has a solution, or the system
y T A = OT
(II) yT b < 0
y≥O
has a solution, but not both.
Note that the “not both” part is the easiest to verify. Otherwise, we would have a feasible
x and y satisfying
0 = OT x = (y T A)x = y T (Ax) ≤ y T b < 0,
which is impossible.
As a consequence of this theorem, we have a good characterization for the question: Is
the system (I) feasible? If the answer is yes, we can prove it by exhibiting any particular
solution to (I). If the answer is no, we can prove it by exhibiting any particular solution to
(II).
Proof. System (I) is feasible if and only if the following system is feasible:
A b
(I ) x≤
−I O
23
System (II) is feasible if and only if the following system is feasible:
A
T T
y w = OT
−I
b
(II ) T
y w T
<0
O
y T wT ≥ OT OT
Equivalently,
y T A − wT = OT
yT b < O
y, w ≥ O
Now apply Theorem 5.2 to the pair (I ), (II ). 2
24
6 Exercises: Systems of Linear Inequalities
Exercise 6.1 Discuss the consequences of having one or more of I− , I+ , or I0 being empty
during the process of Fourier-Motzkin elimination. Does this create any problems? 2
Exercise 6.2 Fourier-Motzkin elimination shows how we can start with a system of linear
inequalities with n variables and obtain a system with n − 1 variables. Explain why the
set of all feasible solutions of the second system is a projection of the set of all feasible
solutions of the first system. Consider a few examples where n = 3 and explain how you can
classify the inequalities into types I− , I+ , and I0 geometrically (think about eliminating the
third coordinate). Explain geometrically where the new inequalities in the second system
are coming from. 2
Exercise 6.3 Consider a given system of linear constraints. A subset of these constraints
is called irredundant if it describes the same feasible region as the given system and no
constraint can be dropped from this subset without increasing the set of feasible solutions.
Find an example of a system Ax ≤ b with three variables such that when x3 , say, is
eliminated, the resulting system has a larger irredundant subset than the original system.
That is to say, the feasible set of the resulting system requires more inequalities to describe
than the feasible set of the original system. Hint: Think geometrically. Can you find such
an example where the original system has two variables? 2
Exercise 6.4 Use Fourier-Motzkin elimination to graph the set of solutions to the following
system:
+x1 + x2 + x3 ≤ 1
+x1 + x2 − x3 ≤ 1
+x1 − x2 + x3 ≤ 1
+x1 − x2 − x3 ≤ 1
−x1 + x2 + x3 ≤ 1
−x1 + x2 − x3 ≤ 1
−x1 − x2 + x3 ≤ 1
−x1 − x2 − x3 ≤ 1
What is this geometrical object called? 2
Exercise 6.5 Prove the following Theorem of the Alternatives: Either the system
Ax ≥ b
25
has a solution, or the system
y T A = OT
yT b > 0
y≥O
has a solution, but not both. 2
Exercise 6.6 Prove the following Theorem of the Alternatives: Either the system
Ax ≥ b
x≥O
(I) Ax = b
has a solution if and only if each of the following systems has a solution:
(I ) Ax ≤ b (I ) Ax ≥ b
Exercise 6.8 (The Farkas Lemma). Derive and prove a Theorem of the Alternatives for
the following system:
Ax = b
x≥O
Give a geometric interpretation of this theorem when A has two rows. When A has three
rows. 2
Exercise 6.9 Give geometric interpretations to other Theorems of the Alternatives that
we have discussed. 2
26
Exercise 6.10 Derive and prove a Theorem of the Alternatives for the system
n
aij xj ≤ bi , i ∈ I1
j=1
n
aij xj = bi , i ∈ I2
j=1
xj ≥ 0, j ∈ J1
xj unrestricted, j ∈ J2
Exercise 6.11 Derive and prove a Theorem of the Alternatives for the system
Ax < b.
27
7 Duality
In this section we will learn that associated with a given linear program is another one, its
dual, which provides valuable information about the nature of the original linear program.
Another company (let’s call it the Knickknack Company, KC) wants to offer money for
GGMC’s resources. If they are willing to buy whatever GGMC is willing to sell, what prices
should be set so that GGMC will end up selling all of its resources? What is the minimum
that KC must spend to accomplish this? Suppose y1 , y2 , y3 represent the prices for one hour
of labor, one unit of wood, and one unit of metal, respectively. The prices must be such
that GGMC would not prefer manufacturing any gadgets or gewgaws to selling all of their
resources. Hence the prices must satisfy y1 + y2 + 2y3 ≥ 5 (the income from selling the
resources needed to make one kilogram of gadgets must not be less than the net profit from
making one kilogram of gadgets) and 2y1 + y2 + y3 ≥ 4 (the income from selling the resources
needed to make one kilogram of gewgaws must not be less than the net profit from making
one kilogram of gewgaws). KC wants to spend as little as possible, so it wishes to minimize
the total amount spent: 120y1 + 70y2 + 100y3 . This results in the linear program
28
In matrix form, this is
y1
min 120 70 100 y2
y3
y1
1 1 2 5
s.t. y2 ≥
2 1 1 4
y
3
y1 0
y2 ≥ 0
y3 0
or
120
min y1 y2 y3 70
100
1 2
s.t. y1 y2 y3 1 1 ≥ 5 4
2 1
y1 0
y2 ≥ 0
y3 0
If we represent the GGMC problem and the KC problem in the following compact forms,
we see that they are “transposes” of each other.
1 2 120
1 1 2 5
1 1 70
2 1 1 4
2 1 100
120 70 100 min
5 4 max
GGM C KC
max cT x
(P ) s.t. Ax ≤ b
x≥O
29
or
n
max c j xj
j=1
n
s.t. aij xj ≤ bi , i = 1, . . . , m
j=1
xj ≥ 0, j = 1, . . . , n
its dual is the LP
min y T b
(D) s.t. y T A ≥ cT
y≥O
or
min bT y
s.t. AT y ≥ c
y≥O
or
m
min bi yi
i=1
m
s.t. aij yi ≥ cj , j = 1, . . . , n
i=1
yi ≥ 0, i = 1, . . . , m
Note the change from maximization to minimization, the change in the direction of the
inequalities, the interchange in the roles of objective function coefficients and right-hand
sides, the one-to-one correspondence between the inequalities in Ax ≤ b and the variables
in (D), and the one-to-one correspondence between the inequalities in y T A ≥ cT and the
variables in (P ). In compact form, the two problems are transposes of each other:
A b AT c
T T
c max b min
(P ) (D)
By the way, the problem (P ) is called the primal problem. It has been explained to me
that George Dantzig’s father made two contributions to the theory of linear programming:
the word “primal,” and George Dantzig. Dantzig had already decided to use the word “dual”
for the second LP, but needed a term for the original problem.
30
7.3 The Duality Theorems
One algebraic motivation for the dual is given by the following theorem, which states that
any feasible solution for the dual LP provides an upper bound for the value of the primal
LP:
Theorem 7.1 (Weak Duality) If x is feasible for (P ) and y is feasible for (D), then
cT x ≤ y T b.
Proof. cT x ≤ (y T A)x = y T (Ax) ≤ y T b. 2
Example 7.2 The prices (1, 2, 3) are feasible for KC’s problem, and yield an objective
function value of 560, which is ≥ 310. 2
As an easy corollary, if we are fortunate enough to be given x and y feasible for (P ) and
(D), respectively, with equal objective function values, then they are each optimal for their
respective problems:
Corollary 7.3 If x and y are feasible for (P ) and (D), respectively, and if cT x = y T b, then
x and y are optimal for (P ) and (D), respectively.
Proof. Suppose x̂ is any feasible solution for (P ). Then cT x̂ ≤ y T b = cT x. Similarly, if ŷ
is any feasible solution for (D), then ŷ T b ≥ y T b. 2
Example 7.4 The prices (0, 3, 1) are feasible for KC’s problem, and yield an objective
function value of 310. Therefore, (30, 40) is an optimal solution to GGMC’s problem, and
(0, 3, 1) is an optimal solution to KC’s problem. 2
Weak Duality also immediately shows that if (P ) is unbounded, then (D) is infeasible:
Corollary 7.5 If (P ) has unbounded objective function value, then (D) is infeasible. If (D)
has unbounded objective function value, then (P ) is infeasible.
Proof. Suppose (D) is feasible. Let y be a particular feasible solution. Then for all
x feasible for (P ) we have cT x ≤ y T b. So (P ) has bounded objective function value if
it is feasible, and therefore cannot be unbounded. The second statement is proved similarly. 2
31
Theorem 7.6 Assume (P ) is feasible. Then (P ) is unbounded (has unbounded objective
function value) if and only if the following system is feasible:
Aw ≤ O
(U P ) cT w > 0
w≥O
Proof. Suppose x is feasible for (P ).
First assume that w is feasible for (U P ) and t ≥ 0 is a real number. Then
A(x + tw) = Ax + tAw ≤ b + O = b
x + tw ≥ O + tO = O
cT (x + tw) = cT x + tcT w
Hence x+tw is feasible for (P ), and by choosing t appropriately large, we can make cT (x+tw)
as large as desired since cT w is a positive number.
Conversely, suppose that (P ) has unbounded objective function value. Then by Corol-
lary 7.5, (D) is infeasible. That is, the following system has no solution:
y T A ≥ cT
y≥O
or
AT y ≥ c
y≥O
By the Theorem of the Alternatives proved in Exercise 6.6, the following system is feasible:
wT AT ≤ OT
wT c > 0
w≥O
or
Aw ≤ O
cT w > 0
w≥O
Hence (U P ) is feasible. 2
Example 7.7 Consider the LP:
max 100x1 + x2
s.t. − 2x1 + 3x2 ≤ 1
(P )
x1 − 2x2 ≤ 2
x1 , x2 ≥ 0
32
The system (U P ) in this case is:
−2w1 + 3w2 ≤ 0
w1 − 2w2 ≤ 0
100w1 + w2 > 0
w1 , w2 ≥ 0
One feasible point for (P ) is x = (1, 0). One feasible solution to (U P ) is w = (2, 1). So
(P ) is unbounded, and we can get points with arbitrarily high objective function values by
x + tw = (1 + 2t, t), t ≥ 0, which has objective function value 100 + 201t. 2
There is an analogous theorem for the unboundedness of (D) that is proved in the obvi-
ously similar way:
Theorem 7.8 Assume (D) is feasible. Then (D) is unbounded if and only if the following
system is feasible:
v T A ≥ OT
(U D) vT b < 0
v≥O
Corollary 7.9 (P ) is feasible if and only if (U D) is infeasible. (D) is feasible if and only
if (U P ) is infeasible.
We now turn to a very important theorem, which is part of the strong duality theorem,
that lies at the heart of linear programming. This shows that the bounds on each other’s
objective function values that the pair of dual LP’s provides are always tight.
Theorem 7.11 Suppose (P ) and (D) are both feasible. Then (P ) and (D) each have finite
optimal objective function values, and moreover these two values are equal.
33
Proof. We know by Weak Duality that if x and y are feasible for (P ) and (D), respectively,
then cT x ≤ y T b. In particular, neither (P ) nor (D) is unbounded. So it suffices to show that
the following system is feasible:
Ax ≤ b
x≥O
(I) y A ≥ cT
T
y≥O
c x ≥ yT b
T
For if x and y are feasible for this system, then by Weak Duality in fact it would have to be
the case that cT x = y T b.
Let’s rewrite this system in matrix form:
A O b
T x
O −A ≤
−c
y
−cT bT 0
x, y ≥ O
We will assume that this system is infeasible and derive a contradiction. If it is not feasible,
then by Theorem 5.3 the following system has a solution v, w, t:
A O
vT wT t O −A T
≥ OT OT
−cT bT
(II) b
v T wT t
−c < 0
0
v, w, t ≥ O
So we have
v T A − tcT ≥ OT
−wT AT + tbT ≥ OT
v T b − wT c < 0
v, w, t ≥ O
Case 1: Suppose t = 0. Then
v T A ≥ OT
Aw ≤ O
v T b < cT w
v, w ≥ O
34
Now we cannot have both cT w ≤ 0 and v T b ≥ 0; otherwise 0 ≤ v T b < cT w ≤ 0, which is a
contradiction.
Case 1a: Suppose cT w > 0. Then w is a solution to (U P ), so (D) is infeasible by
Corollary 7.9, a contradiction.
Case 1b: Suppose v T b < 0. Then v is a solution to (U D), so (P ) is infeasible by
Corollary 7.9, a contradiction.
Case 2: Suppose t > 0. Set x = w/t and y = v/t. Then
Ax ≤ b
x≥O
y A ≥ cT
T
y≥O
c x > yT b
T
Hence we have a pair of feasible solutions to (P ) and (D), respectively, that violates Weak
Duality, a contradiction.
We have now shown that (II) has no solution. Therefore, (I) has a solution. 2
Corollary 7.12 Suppose (P ) has a finite optimal objective function value. Then so does
(D), and these two values are equal. Similarly, suppose (D) has a finite optimal objective
function value. Then so does (P ), and these two values are equal.
Proof. We will prove the first statement only. If (P ) has a finite optimal objective function
value, then it is feasible, but not unbounded. So (U P ) has no solution by Theorem 7.6.
Therefore (D) is feasible by Corollary 7.9. Now apply Theorem 7.11. 2
We summarize our results in the following central theorem, for which we have already
done all the hard work:
Theorem 7.13 (Strong Duality) Exactly one of the following holds for the pair (P ) and
(D):
1. They are both infeasible.
2. One is infeasible and the other is unbounded.
3. They are both feasible and have equal finite optimal objective function values.
Corollary 7.14 If x and y are feasible for (P ) and (D), respectively, then x and y are
optimal for (P ) and (D), respectively, if and only if cT x = y T b.
Corollary 7.15 Suppose x is feasible for (P ). Then x is optimal for (P ) if and only if there
exists y feasible for (D) such that cT x = y T b. Similarly, suppose y is feasible for (D). Then
y is optimal for (D) if and only if there exists x feasible for (P ) such that cT x = y T b.
35
7.4 Comments on Good Characterization
The duality theorems show that the following problems for (P ) have “good characteriza-
tions.” That is to say, whatever the answer, there exists a “short” proof.
1. Is (P ) feasible? If the answer is yes, you can prove it by producing a particular feasible
solution to (P ). If the answer is no, you can prove it by producing a particular feasible
solution to (U D).
2. Assume that you know that (P ) is feasible. Is (P ) unbounded? If the answer is yes,
you can prove it by producing a particular feasible solution to (U P ). If the answer is
no, you can prove it by producing a particular feasible solution to (D).
3. Assume that x is feasible for (P ). Is x optimal for (P )? If the answer is yes, you can
prove it by producing a particular feasible solution to (D) with the same objective
function value. If the answer is no, you can prove it by producing a particular feasible
solution to (P ) with higher objective function value.
cT x ≤ (y T A)x = y T (Ax) ≤ y T b.
y T (b − Ax) = 0
and
(y T A − cT )x = 0.
In each case, we are requiring that the inner product of two nonnegative vectors (for example,
y and b − Ax) be zero. The only way this can happen is if these two vectors are never both
positive in any common component. This motivates the following definition: Suppose x ∈ Rn
and y ∈ Rm . Then x and y satisfy complementary slackness if
m
1. For all j, either xj = 0 or i=1 aij y i = cj or both; and
n
2. For all i, either y i = 0 or j=1 aij xj = bi or both.
36
Theorem 7.16 Suppose x and y are feasible for (P ) and (D), respectively. Then cT x = y T b
if and only if x, y satisfy complementary slackness.
Corollary 7.17 If x and y are feasible for (P ) and (D), respectively, then x and y are
optimal for (P ) and (D), respectively, if and only if they satisfy complementary slackness.
Corollary 7.18 Suppose x is feasible for (P ). Then x is optimal for (P ) if and only if there
exists y feasible for (D) such that x, y satisfy complementary slackness. Similarly, suppose
y is feasible for (D). Then y is optimal for (D) if and only if there exists x feasible for (P )
such that x, y satisfy complementary slackness.
Example 7.19 Consider the optimal solution (30, 40) of GGMC’s problem, and the prices
(0, 3, 1) for KC’s problem. You can verify that both solutions are feasible for their respective
problems, and that they satisfy complementary slackness. But let’s exploit complementary
slackness a bit more. Suppose you only had the feasible solution (30, 40) and wanted to verify
optimality. Try to find a feasible solution to the dual satisfying complementary slackness.
Because the constraint on hours is not satisfied with equality, we must have y1 = 0. Because
both x1 and x2 are positive, we must have both dual constraints satisfied with equality. This
results in the system:
y1 = 0
y2 + 2y3 = 5
y2 + y3 = 4
which has the unique solution (0, 3, 1). Fortunately, all values are also nonnegative. Therefore
we have a feasible solution to the dual that satisfies complementary slackness. This proves
that (30, 40) is optimal and produces a solution to the dual in the bargain. 2
1. Multiply the objective function by −1 and change “max” to “min” or “min” to “max.”
37
3. Replace an equality constraint
n
aij xj = bi
j=1
with two inequality constraints
n
aij xj ≤ bi
j=1
n
− aij xj ≤ −bi
j=1
4. Replace a variable that is nonpositive with a variable that is its negative. For example,
if xj is specified to be nonpositive by xj ≤ 0, replace every occurrence of xj with −x̂j
and require x̂j ≥ 0.
5. Replace a variable that is unrestricted in sign with the difference of two nonnegative
variables. For example, if xj is unrestricted (sometimes called free), replace every
occurrence of xj with x+ − + −
j − xj and require that xj and xj be nonnegative variables.
Using these transformations, every LP can be converted into an equivalent one in standard
form. By equivalent I mean that a feasible (respectively, optimal) solution to the original
problem can be obtained from a feasible (respectively, optimal) solution to the new problem.
The dual to the equivalent problem can then be determined. But you can also apply the
inverses of the above transformations to the dual and get an appropriate dual to the original
problem.
Try some concrete examples for yourself, and then dive into the proof of the following
theorem:
Theorem 7.20 The following is a pair of dual LP’s:
n
m
max c j xj min bi yi
j=1 i=1
n
m
s.t. aij xj ≤ bi , i ∈ I1 s.t. aij yi ≥ cj , j ∈ J1
j=1 i=1
n
m
aij xj ≥ bi , i ∈ I2 aij yi ≤ cj , j ∈ J2
(P ) j=1
(D) i=1
n m
aij xj = bi , i ∈ I3 aij yi = cj , j ∈ J3
j=1 i=1
xj ≥ 0, j ∈ J1 yi ≥ 0, i ∈ I1
xj ≤ 0, j ∈ J2 yi ≤ 0, i ∈ I2
xj unrestricted in sign, j ∈ J3 yi unrestricted in sign, i ∈ I3
38
where (I1 , I2 , I3 ) is a partition of {1, . . . , m} and (J1 , J2 , J3 ) is a partition of {1, . . . , n}.
max c1T x1 + c2T x2 + c3T x3
A11 A12 A13 x1 ≤ b1
s.t.
A21 A22 A23 x2 ≥ b2
Now make the substitutions x̂1 = x1 , x̂2 = −x2 and x̂3 − x̂4 = x3 :
39
Transform the constraints:
min b1T ŷ 1 − b2T ŷ 2 + b3T ŷ 3 − b3T ŷ 4
T ŷ 1 1
A11 −A21 A31 −A31 2 ≥
T T T
c
T T ŷ 2
s.t. A12 −A22 A32 −A32 3 ≤ c
T T
ŷ
AT13 −AT23 AT33 −AT33 = c3
ŷ 4
ŷ 1 , ŷ 2 , ŷ 3 , ŷ 4 ≥ O
min b1T y 1 + b2Ty2 + b3T 3
y
1
T T
A11 A21 A31 T
y ≥ c1
s.t.
AT12 AT22 AT32 y 2 ≤ c2
Whew! Anyway, this pair of dual problems will satisfy all of the duality theorems,
so it was probably worth working through this generalization at least once. We say that
(D) is the dual of (P ), and also that (P ) is the dual of (D). Note that there is still a
one-to-one correspondence between the variables in one LP and the “main” constraints (not
including the variable sign restrictions) in the other LP. Hillier and Lieberman (Introduction
to Operations Research) suggest the following mnemonic device. Classify variables and
constraints of linear programs as standard (S), opposite (O), or bizarre (B) as follows:
Then in the duality relationship, standard variables are paired with standard constraints,
opposite variables are paired with opposite constraints, and bizarre variables are paired with
bizarre constraints. If we express a pair of dual linear programs in compact form, labeling
40
columns according to the type of variable and rows according to the type of constraint, we
see that they are still transposes of each other:
S O B S O B
S A11 A12 A13 b1 S A11 A21 A31 c1
O A21 A22 A23 b2 O A12 A22 A32 c2
B A31 A32 A33 b3 B A13 A23 A33 c3
c1T c2T c3T max b1T b2T b3T min
(P ) (D)
O B S O
S O O B S
S 1 1 −6 0 3
O 1 1 0 0 0 3
O 1 −1 0 9 −2
B 1 −1 1 −1 1 10
O 0 1 2 0 0
S −6 0 2 4 1 2
B 0 −1 4 −11 4
O 0 9 0 −11 0 0
S 0 1 1 0 5
3 −2 0 4 5 max
3 10 2 0 min
2
41
and
max cT x
min y T b
(P ) s.t. Ax = b (D)
s.t. y T A ≥ cT
x≥O
Exercise 7.22 Suppose (P ) and (D) are as given in Theorem 7.20. Show that the appro-
priate general forms of (U P ) and (U D) are:
n
m
aij wj ≤ 0, i ∈ I1 aij vi ≥ 0, j ∈ J1
j=1 i=1
n
m
aij wj ≥ 0, i ∈ I2 aij vi ≤ 0, j ∈ J2
j=1 i=1
n m
aij wj = 0, i ∈ I3 aij vi = 0, j ∈ J3
(U P ) j=1
(U D) i=1
n
m
c j wj > 0 bi v i < 0
j=1 i=1
wj ≥ 0, j ∈ J1 vi ≥ 0, i ∈ I1
wj ≤ 0, j ∈ J2 vi ≤ 0, i ∈ I2
wj unrestricted in sign, j ∈ J3 vi unrestricted in sign, i ∈ I3
2
42
to a particular solution to the dual problem (though there are other solutions to the dual
as well), and a pair of constraints that is both primal-feasible and dual feasible corresponds
to a pair of solutions to (P ) and (D) that satisfy complementary slackness and hence are
optimal.
43
8 Exercises: Duality
Note: By e is meant a vector consisting of all 1’s.
Exercise 8.1 Consider the classic diet problem: Various foods are available, each unit of
which contributes a certain amount toward the minimum daily requirements of various nutri-
tional needs. Each food has a particular cost. The goal is to choose how many units of each
food to purchase to meet the minimum daily nutritional requirements, while minimizing the
total cost. Formulate this as a linear program, and give an “economic interpretation” of the
dual problem. 2
Exercise 8.2 Find a linear program (P ) such that both (P ) and its dual (D) are infeasible.
2
Aw ≤ O
w≥O
w = O
44
Exercise 8.5 Suppose you use Lagrange multipliers to solve the following problem:
max cT x
s.t. Ax = b
What is the relationship between the Lagrange multipliers and the dual problem? 2
Exercise 8.6 Suppose that the linear program
max cT x
s.t. Ax ≤ b
x≥O
is unbounded. Prove that, for any b̂, the following linear program is either infeasible or
unbounded:
max cT x
s.t. Ax ≤ b̂
x≥O
2
Exercise 8.7 Consider the following linear programs:
max cT x max cT x min y T b
(P ) s.t. Ax ≤ b (P ) s.t. Ax ≤ b + u (D) s.t. y T A ≥ cT
x≥0 x≥O y≥0
Here, u is a vector the same size as b. (u is a vector of real numbers, not variables.) Assume
that (P ) has a finite optimal objective function value z ∗ . Let y ∗ be any optimal solution to
(D). Prove that cT x ≤ z ∗ + uT y ∗ for every feasible solution x of (P ). What does this mean
economically when applied to the GGMC problem? 2
Exercise 8.8 Consider the following pair of linear programs:
max cT x min y T b
(P ) s.t. Ax ≤ b (D) s.t. y T A ≥ cT
x≥0 y≥0
For all nonnegative x and y, define the function φ(x, y) = cT x + y T b − y T Ax. Assume that x
and y are nonnegative. Prove that x and y are feasible and optimal for the above two linear
programs, respectively, if and only if
φ(x, y) ≥ φ(x, y) ≥ φ(x, y)
for all nonnegative x and y (whether x and y are feasible for the above linear programs or
not). (This says that (x, y) is a saddlepoint of φ.) 2
45
Exercise 8.9 Consider the fractional linear program
T
max c T x + α
d x+β
(F P ) s.t. Ax ≤ b
x≥O
max cT w + αt
s.t. Aw − bt ≤ O
(P )
dT w + βt = 1
w ≥ O, t ≥ 0
1. Suppose that the feasible region of (F P ) is a bounded set. Prove that t∗ > 0.
Exercise 8.10
max cT x
s.t. Ax ≤ b
x≥O
46
Exercise 8.11 Consider the linear program
min cT x
(P ) s.t. Ax = b
≤x≤u
where and u are vectors of constants and i < ui for all i. Suppose that x is feasible for
(P ). Prove that x is optimal for (P ) if and only if there exists a vector y such that, for all i,
(AT y)i ≥ ci if xi > i
(AT y)i ≤ ci if xi < ui .
2
Exercise 8.12 There are algorithmic proofs using the simplex method of Theorem 7.13 that
do not explicitly rely upon Theorem 5.3—see the discussion leading up to Theorem 9.24.
Assume that Theorem 7.13 has been proved some other way. Now reprove Theorem 5.3
using Theorem 7.13 and the fact that (I) is feasible if and only if the following LP is feasible
(and thus has optimal value 0):
max OT x
(P ) s.t. Ax ≤ b
x≥O
2
Exercise 8.13 Derive and prove a Theorem of the Alternatives for the system
(I) Ax < b
in the following way: Introduce a scalar variable t and a vector e of 1’s, and consider the LP
max t
(P )
s.t. Ax + et ≤ b
Begin by noting that (P ) is always feasible, and proving that (I) is infeasible if and only if
(P ) has a nonpositive optimal value. 2
Exercise 8.14 Consider the pair of dual LP’s
max cT x min y T b
(P ) s.t. Ax ≤ b (D) s.t. y T A ≥ cT
x≥O y≥O
Suppose x and y are feasible for (P ) and (D), respectively. Then x and y satisfy strong
complementary slackness if
47
m
1. For all j, either xj = 0 or i=1 aij y i = cj , but not both; and
n
2. For all i, either y i = 0 or j=1 aij xj = bi , but not both.
Prove that if (P ) and (D) are both feasible, then there exists a pair x, y of optimal solutions
to (P ) and (D), respectively, that satisfies strong complementary slackness. Illustrate with
some examples of two variable LP’s. Hint: One way to do this is to consider the following
LP:
max t
s.t. Ax ≤ b
Ax − Iy + et ≤ b
−AT y ≤ −c
−Ix − AT y + f t ≤ −c
−cT x + bT y ≤ 0
x, y, t ≥ O
Here, both e and f are vectors of all 1’s, and t is a scalar variable. 2
Exercise 8.15 Consider the quadratic programming problem
1
min Q(x) = cT x + xT Dx
(P ) 2
s.t. Ax ≥ b
x≥O
where A is an m × n matrix and D is a symmetric n × n matrix.
1. Assume that x is an optimal solution of (P ). Prove that x is an optimal solution of
the following linear program:
min(cT + xT D)x
(P ) s.t. Ax ≥ b
x≥O
Suggestion: Let x̂ be any other feasible solution to (P ). Then λx̂ + (1 − λ)x is also a
feasible solution to (P ) for any 0 < λ < 1.
2. Assume that x is an optimal solution of (P ). Prove that there exist nonnegative vectors
y ∈ Rm , u ∈ Rn , and v ∈ Rm such that
u D −AT x c
− =
v A O y −b
48
2
Exercise 8.17 Look up the definitions and some theorems about Eulerian graphs. Explain
why the question: “Is a given graph G Eulerian?” has a good characterization. 2
Exercise 8.18 Chvátal, 5.1, 5.3, 5.8, 9.1–9.3, 9.5, 16.4, 16.5, 16.9–16.12, 16.14. 2
49
9 The Simplex Method
9.1 Bases and Tableaux
In this section we finally begin to discuss how to solve linear programs. Let’s start with a
linear program in standard form
max z = ĉT x̂
(P̂ ) s.t. Âx̂ ≤ b
x̂ ≥ O
where  is an m × n matrix.
The dual of (P̂ ) is
min ŷ T b
(D̂) s.t. ŷ T Â ≥ ĉT
ŷ ≥ O
In summation notation, (P̂ ) is of the form
n
max z = c j xj
j=1
n
s.t. aij xj ≤ bi , i = 1, . . . , m
j=1
xj ≥ 0, j = 1, . . . , n
The first step will be to turn this system into a system of equations by introducing m
nonnegative slack variables, one for each inequality in Âx̂ ≤ b:
n
max z = c j xj
j=1
n
s.t. ( aij xj ) + xn+i = bi , i = 1, . . . , m
j=1
xj ≥ 0, j = 1, . . . , n + m
max cT x
(P ) s.t. Ax = b
x≥O
50
where x = (x̂, xn+1 , . . . , xn+m ), c = (ĉ, 0, . . . , 0), and A = [Â|I]. In particular, the rows of A
are linearly independent (A has full row rank ).
The dual of (P ) is
min y T b
(D)
s.t. y T A ≥ cT
We can write (P ) as a tableau:
A O b
cT 1 0
which represents the system
A O x b
= .
cT 1 −z 0
Example 9.1 With the addition of slack variables, the GGMC problem becomes
51
Given a basis B, we can perform elementary row operations on the tableau so that the
columns associated with B and −z form an identity matrix within the tableau. (Arrange it
so that the last row continues to contain the entry 1 in the −z column.) If the ordered basis
is (ji , . . . , jm ), then the columns of the identity matrix appear in the same order, finishing
up with the −z column. The resulting tableau is called a basic tableau. Let us denote it by
A O b
cT 1 −b0
Ax = b
(2)
cT x − z = −b0
Ax = b
(3)
c x−z =0
T
since it was obtained by elementary (invertible) row operations from the original set. That
is to say, (x, z) satisfies (2) if and only if it satisfies (3).
Example 9.3 Some bases and basic tableaux for the GGMC problem.
1. B = (3, 4, 5)
x1 x2 x3 x4 x5 −z
1 2 1 0 0 0 120
1 1 0 1 0 0 70
2 1 0 0 1 0 100
5 4 0 0 0 1 0
2. B = (3, 2, 5)
x1 x2 x3 x4 x5 −z
−1 0 1 −2 0 0 −20
1 1 0 1 0 0 70
1 0 0 −1 1 0 30
1 0 0 −4 0 1 −280
52
3. B = (3, 2, 1)
x1 x2 x3 x4 x5 −z
0 0 1 −3 1 0 10
0 1 0 2 −1 0 40
1 0 0 −1 1 0 30
0 0 0 −3 −1 1 −310
4. B = (4, 2, 1)
x1 x2 x3 x4 x5 −z
0 0 −1/3 1 −1/3 0 −10/3
0 1 2/3 0 −1/3 0 140/3
1 0 −1/3 0 2/3 0 80/3
0 0 −1 0 −2 1 −320
5. B = (5, 2, 1)
x1 x2 x3 x4 x5 −z
0 0 1 −3 1 0 10
0 1 1 −1 0 0 50
1 0 −1 2 0 0 20
0 0 1 −6 0 1 −300
2
By the way, most people do not include the −z column, since it is always the same. I
kept it in so that the full identity matrix would be evident.
Definition 9.4 For every basic tableau there is a natural solution to Ax = b; namely, set
xN = O and read off the values of xB from the last column. The resulting point is called a
basic point. What we are doing is equivalent to solving BxB + N xN = b by setting xN = O
and solving BxB = b to get xB = B −1 b. We can also find the value −z of −z = −cT x
associated with the basic point x in the lower right-hand entry.
Example 9.5 The basic points for the basic tableaux in the previous example are:
1. B = (3, 4, 5): x = (0, 0, 120, 70, 100), cT x = 0.
53
5. B = (5, 2, 1): x = (20, 50, 0, 0, 10), cT x = 300.
Examine the graph for the GGMC problem. In each case the first two coordinates give a point
that is the intersection of two of the lines corresponding to the five original constraints. The
reason for this is that setting a variable equal to zero is equivalent to enforcing a constraint
with equality. In particular, setting one of the two original variables x1 , x2 to zero enforces
the respective constraint x1 ≥ 0 or x2 ≥ 0 with equality; whereas setting one of the three
slack variables x3 , x4 , x5 to zero enforces one of the respective constraints x1 + 2x2 ≤ 120,
x1 +x2 ≤ 70, 2x1 +x2 ≤ 100 with equality. Since in this example every constraint corresponds
to a halfplane and there are always two nonbasic variables, the point is the intersection of
two lines. Think about Exercise 4.3 during the following discussion. 2
Definition 9.6 If B is a basis such that the corresponding basic point x is nonnegative, then
x is feasible for the linear program (P ), and dropping the slack variables yields a feasible
solution for the linear program (P̂ ). In such a case, B is called a (primal) feasible basis, the
tableau is called a (primal) feasible tableau, and x is called a (primal) basic feasible solution
(BFS).
Suppose T is our initial tableau and T is a tableau associated with a basis B. Let’s try
to understand the entries of T . There exists a square matrix M such that M T = T . You can
find this matrix within T by looking where the identity matrix was originally in T ; namely,
it is the submatrix of T determined by the columns for the slack variables and −z. It has
the form
M O
M= .
−y T 1
(I am writing −y T because I know what is coming!) Now multiplying T by M creates an
identity matrix in the basic columns of T , so
M O B O I O
= .
−y T 1 cTB 1 OT 1
B −1 A O B −1 b B −1 A O B −1 b
T = = .
cT − cTB B −1 A 1 −cTB B −1 b cT − y T A 1 −y T b
54
Summarizing the formulas for the entries of T :
y T = cTB B −1
A = B −1 A
b = B −1 b
cT = cT − y T A
b0 = cTB B −1 b = yT b
Observe that while the ordered basis (j1 , . . . , jm ) indexes the columns of B, it indexes
the rows of B −1 .
Exercise 9.7 For each of the bases in Example 9.3, determine the matrices B and B −1 (pay
attention to the ordering of the rows and columns), find the vector y T , and check some of
the formulas for cT , b, and b0 . For example, if the ordered basis is (4, 2, 1), then
0 2 1
B= 1 1 1
,
0 1 2
−1/3 1 −1/3
B −1 = 2/3 0 −1/3 ,
−1/3 0 2/3
Note that −y T itself can be found in the last row beneath the columns for the slack
variables, and that the lower right-hand entry equals −y T b. The above calculations also
confirm that the lower right-hand entry equals −cT x for the associated basic point x, since
cT x = cTB xB + cTN xN = cTB B −1 b.
Example 9.8 The vectors y for the basic tableaux in the previous example are:
55
3. B = (3, 2, 1): y = (0, 3, 1), y T b = 310.
Now we can also see a connection with the dual problem (D̂). For suppose the last row
of T contains nonpositive entries in the first n + m columns. Then cT = cT − y T A ≤ OT , so
y T A ≥ cT . Hence y is feasible for (D). Recalling that A = [Â|I] and cT = (ĉT , OT ), we have
y T Â ≥ ĉT
y T I ≥ OT
Definition 9.9 Suppose a basic tableau T is given in which y = cTB B −1 is feasible for (D).
Then the basis B is called a dual feasible basis, the tableau is called a dual feasible tableau,
and y is called a dual basic feasible solution.
Another way to derive the entries in T is to solve for xB in terms of xN and substitute
into z = cT x:
BxB + N xn = b
xB + B −1 N xN = B −1 b
This accounts for the upper portion of T .
xB = B −1 b − B −1 N xN
z = cTB xB + cTN xN
= cTB (B −1 b − B −1 N xN ) + cTN xN
= cTB B −1 b + (cTN − cTB B −1 N )xN
z = y T b + (cTN − y T N )xN
= y T b + (cT − y T A)x
56
Definition 9.10 Now suppose a basic tableau T is both primal and dual feasible. Then
we know that the associated basic feasible solutions x and y are feasible for (P ) and (D),
respectively, and have equal objective function values, since cT x = cTB (B −1 b) = (cTB B −1 )b =
y T b. So Weak Duality implies that x and y are optimal for (P ) and (D), respectively. In
this case, B is called an optimal basis, the tableau is called an optimal tableau, x is called an
optimal (primal) basic feasible solution or basic optimal solution, and y is called an optimal
dual basic feasible solution or dual basic optimal solution. Note in this case that dropping the
slack variables from x gives a feasible solution to (P̂ ) which has the same objective function
value as y, which is feasible for (D̂). So we also have a pair of optimal solutions to (P̂ ) and
(D̂).
9.2 Pivoting
The simplex method solves the linear program (P ) by attempting to find an optimal tableau.
One can move from a basic tableau to an “adjacent” one by pivoting.
Given a matrix M and a nonzero entry mrs , a pivot is carried out in the following way:
2. For each i = r, add the necessary multiple of row r to row i so that the (i, s)th entry
becomes zero. This is done by adding −mis /mrs times row r to row i.
Row r is called the pivot row , column s is called the pivot column, and mrs is called the
pivot entry. Note that if M is m × n and contains an m × m identity matrix before the
pivot, then it will contain an identity matrix after the pivot. Column s will become er (the
vector with all components equal 0 except for a 1 in the rth position). Any column of M
that equals ei with i = r will remain unchanged by the pivot.
57
Example 9.12 Pivoting on the entry in row 1, column 4 of Tableau 5 of Example 9.3 results
in Tableau 4. 2
Pivoting on any positive entry of As will not cause the lower right-hand entry to increase.
So the objective function value of the new basic point will not be smaller than that of the
old.
To ensure that the new tableau is also primal feasible, we require that all right-hand sides
remain nonnegative. So if ars is the pivot entry, we need:
1
br ≥ 0
ars
ais
bi − br ≥ 0, i = r
ars
There is no problem with the first condition. The second condition is satisfied if ais ≤ 0.
For all i such that ais > 0 we require
bi br
≥ .
ais ars
58
This can be ensured by choosing r such that
br bi
= min .
ars i:ais >0 ais
Example 9.13 Tableau 5 in Example 9.3 is primal feasible. c3 is positive, so the tableau is
not dual feasible and x3 is a candidate for an entering variable. Therefore we wish to pivot
on a positive entry of this column. Checking ratios 10/1 and 50/1 we see that we must pivot
in the first row. The result is Tableau 3, which is also primal feasible. The objective function
value of the corresponding BFS has strictly increased from 300 to 310. 2
Here is another way to understand this pivoting process: The equations in T are equiv-
alent to the equations in (P ). So T represents the following equivalent reformulation of
(P ):
max z = b0 + cT x
s.t. Ax = b
x≥O
If all cj are nonpositive, then x = (xB , O) is feasible and has objective function value b0
since cB = O. If x̃ is any other feasible solution, then z(x̃) = b0 + cT x̃ ≤ b0 since x̃ ≥ O and
c ≤ O. Therefore x is optimal.
Example 9.14 Consider Tableau 3 in Example 9.3. It represents the set of equations:
x3 − 3x4 + x5 = 10
x2 + 2x4 − x5 = 40
x1 − x4 + x5 = 30
−3x4 − x5 − z = −310
Setting x4 = x5 = 0 yields the basic feasible solution (30, 40, 10, 0, 0) with objective function
value 310. The last equation implies that for any feasible point, z = 310 − 3x4 − x5 ≤ 310,
since both x4 and x5 must be nonnegative. Therefore the point (30, 40, 10, 0, 0) is optimal
since it attains the objective function value 310. 2
Now suppose that there exists an index s such that cs > 0. Of course, xs is a nonbasic
variable. The argument in the preceding paragraph suggests that we might be able to do
better than x by using a positive value of xs instead of setting it equal to 0. So let’s try setting
59
x̃s = t ≥ 0, keeping x̃j = 0 for the other nonbasic variables, and finding the appropriate
values of x̃B .
The equations of T are
xB + N xN = b
cTN xN − z = −b0
or
xB = b − N xN
z = b0 + cTN xN
Setting x̃s = t and x̃j = 0 for all j ∈ N \ {s} yields the point x̃(t) given by
x̃N \{s} = O
x̃s = t
(4)
x̃B = b − dt
z̃ = b0 + cs t
60
Example 9.15 Let’s take the equations associated with Tableau 5 of Example 9.3:
x3 − 3x4 + x5 = 10
x2 + x3 − x4 = 50
x1 − x3 + 2x4 = 20
x3 − 6x4 − z = −300
Solving for the basic variables in terms of the nonbasic variables:
x5 = 10 − x3 + 3x4
x2 = 50 − x3 + x4
x1 = 20 + x3 − 2x4
z = 300 + x3 − 6x4
Setting the nonbasic variables to zero gives the associated basic feasible solution
(20, 50, 0, 0, 10) with objective function value 300. Since the coefficient of x3 in the ex-
pression for z is positive, we try to increase x3 while maintaining feasibility of the resulting
point. Keep x4 = 0 but let x3 = t. Then
x̃4 = 0
x̃ = t
3
x̃5 10 1
x̃2 = 50 − 1 t
x̃1 20 −1
z̃ = 300 + t
These correspond to Equations (4). The maximum value of t that maintains the nonnega-
tivity of the basic variables is 10. Setting t = 10 yields the new feasible point (30, 40, 10, 0, 0)
with objective function value 310. Since x5 is now zero and x3 is now positive, x3 is the
entering variable, x5 is the leaving variable, and our new basis becomes (3, 2, 1). 2
Suppose there are several choices of entering variable. Which one should be chosen? One
rule is to choose s such that cs is maximum. This is the largest coefficient rule and chooses
the entering variable with the largest rate of change of objective function value as a function
of xs . Another rule is to choose s that results in the largest total increase in objective
function value upon performing the pivot. This is the largest increase rule. A third rule is
to choose the smallest s such that cs is positive. This is part of the smallest subscript rule,
mentioned below. For a discussion of some of the relative merits and disadvantages of these
rules, see Chvátal.
What if there are several choices of leaving variable? For now, you can choose to break
ties arbitrarily, or perhaps choose the variable with the smallest subscript (see below).
61
9.3 The (Primal) Simplex Method
The essential idea of the (primal) simplex method is this: from a basic feasible tableau, pivot
in the above manner until a basic optimal tableau is reached. But there are some unresolved
issues:
Let’s first consider the possibility that we have a basic feasible tableau such that there
exists an s for which cs > 0, but d ≤ O.
0 ⊕
.. .. ..
. . .
0 ⊕
∗ · · · ∗ + ∗ · · · ∗ 1 −b0
In this case, we can choose t to be any positive number, and the point given in (4) will be
feasible. Further, z̃ → ∞ as t → ∞, so it is clear that (P ) is an unbounded LP. Indeed, it
is easy to check directly that w = x̃(1) − x is a solution to (U P ). w satisfies:
wN \{s} = O
ws = 1
wB = −d
You can see that Aw = O (and so Aw = O), w ≥ O, and cT w = cs > 0. You can
verify this directly from the tableau, or by using the fact that w = x̃(1) − x. Consequently,
cT w is also positive, for we have 0 < cs = (cT − y T A)w = cT w − y T BwB − y T N wN =
cT w + y T Bd − y T Ns = cT w + y T Ns − y T Ns = cT w. Geometrically, when the above situation
occurs, the BFS x corresponds to a corner point of the feasible region, and the vector w
points in the direction of an unbounded edge of the feasible region.
62
Inserting slack variables yields the basic tableau:
x1 x2 x3 x4 x5 −z
−1 −2 1 0 0 0 −120
−1 −1 0 1 0 0 −70
−2 −1 0 0 1 0 −100
5 4 0 0 0 1 0
The tableau for the basis (1, 4, 5):
x1 x2 x3 x4 x5 −z
1 2 −1 0 0 0 120
0 1 −1 1 0 0 50
0 3 −2 0 1 0 140
0 −6 5 0 0 1 −600
has associated basic feasible solution (120, 0, 0, 50, 140) with objective function value 600.
We see that c3 is positive but there is no positive pivot entry in that column. Writing out
the equations, we get:
x1 + 2x2 − x3 = 120
x2 − x3 + x4 = 50
3x2 − 2x3 + x5 = 140
−6x2 + 5x3 − z = −600
Solving for the basic variables in terms of the nonbasic variables:
x1 = 120 − 2x2 + x3
x4 = 50 − x2 + x3
x5 = 140 − 3x2 + 2x4
z = 600 − 6x2 + 5x3
Setting the nonbasic variables to zero gives the associated basic feasible solution
(120, 0, 0, 50, 140) with objective function value 600. Since the coefficient of x3 in the ex-
pression for z is positive, we try to increase x3 while maintaining feasibility of the resulting
point. Keep x2 = 0 but let x3 = t. Then
x̃2 = 0
x̃ = t
3
x̃1 120 1
x̃4 = 50 + 1 t
x̃5 140 2
z̃ = 600 + 5t
63
The number t can be made arbitrarily large without violating nonnegativity, so the linear
program is unbounded. We can rewrite the above equations as
x̃1 120 1
x̃2 0 0
x̃3 = 0 + 1 t
x̃4 50 1
x̃5 140 2
The vector w is [1, 0, 1, 1, 2]T .
We can confirm that w is feasible for (U P ):
−w1 − 2w2 + w3 = 0
−w1 − w2 + w4 = 0
−2w1 − w2 + w5 = 0
5w1 + 4w2 > 0
w≥O
You should graph the original LP and confirm the above results geometrically. 2
In general, regardless of objective function, if B is any basis and s is any element not
in B, there is a unique way of writing column s as a linear combination of the columns of
B. That is to say, there is a unique vector w such that Aw = O, ws = 1 and wj = 0 for
j ∈ B + s. When you have such a vector w that is also nonnegative, then w is called a basic
feasible direction (BFD). The above discussion shows that if the simplex method halts by
discovering that (P ) is unbounded, it finds a BFD with positive objective function value.
Now consider the possibility that we never encounter the situation above. Hence a pivot
is always possible. There is only a finite number of bases, so as long as the value of the
objective function increases with each pivot, we will never repeat tableaux and must therefore
terminate with an optimal tableau.
Unfortunately, it may be the case that bi = 0 for some i for which di > 0, forcing t = 0.
In this case, the new tableau T̃ and the old tableau T correspond to different bases, but have
the same BFS since none of the values of any of the variables change during the pivot. Such
a pivot is called degenerate, and the associated BFS is a degenerate point.
Example 9.17 Here is an example from Chvátal. Suppose we have the tableau
x1 x2 x3 x4 x5 x6 x7 −z
0.5 −5.5 −2.5 9 1 0 0 0 0
0.5 −1.5 −0.5 1 0 1 0 0 0
1 0 0 0 0 0 1 0 1
10 −57 −9 −24 0 0 0 1 0
64
with basis (5, 6, 7), associated basic feasible solution (0, 0, 0, 0, 0, 0, 1) and objective function
value 0. We wish to pivot in column 1, but the ratios 0/0.5, 0/0.5, and 1/1 force us to pivot
in rows 5 or 6 (we are labeling the rows by the elements of the basis). We will choose to
pivot in the row with the smallest label. The resulting tableau is different:
x1 x2 x3 x4 x5 x6 x7 −z
1 −11 −5 18 2 0 0 0 0
0 4 2 −8 −1 1 0 0 0
0 11 5 −18 −2 0 1 0 1
0 53 41 −204 −20 0 0 1 0
and the associated basis is now (1, 6, 7), but the corresponding basic feasible solution is still
(0, 0, 0, 0, 0, 0, 0, 1). 2
It is conceivable that a sequence of degenerate pivots might eventually bring you back to
a tableau that was seen before. This can in fact occur, and is known as cycling.
Example 9.18 Continuing the example from Chvátal, we will pivot in the column with the
most positive cs . If there is a tie for the leaving variable, we always choose the variable
with the smallest index. Starting from the second tableau above, we generate the following
sequence of tableaux:
x1 x2 x3 x4 x5 x6 x7 −z
1 0 0.5 −4 −0.75 2.75 0 0 0
0 1 0.5 −2 −0.25 0.25 0 0 0
0 0 −0.5 4 0.75 −2.75 1 0 1
0 0 14.5 −98 −6.75 −13.25 0 1 0
x1 x2 x3 x4 x5 x6 x7 −z
2 0 1 −8 −1.5 5.5 0 0 0
−1 1 0 2 0.5 −2.5 0 0 0
1 0 0 0 0 0 1 0 1
−29 0 0 18 15 −93 0 1 0
x1 x2 x3 x4 x5 x6 x7 −z
−2 4 1 0 0.5 −4.5 0 0 0
−0.5 0.5 0 1 0.25 −1.25 0 0 0
1 0 0 0 0 0 1 0 1
−20 −9 0 0 10.5 −70.5 0 1 0
65
x1 x2 x3 x4 x5 x6 x7 −z
−4 8 2 0 1 −9 0 0 0
0.5 −1.5 −0.5 1 0 1 0 0 0
1 0 0 0 0 0 1 0 1
22 −93 −21 0 0 24 0 1 0
x1 x2 x3 x4 x5 x6 x7 −z
0.5 −5.5 −2.5 9 1 0 0 0 0
0.5 −1.5 −0.5 1 0 1 0 0 0
1 0 0 0 0 0 1 0 1
10 −57 −9 −24 0 0 0 1 0
We have cycled back to the original tableau! 2
There are several ways to avoid cycling. One is a very simple rule called Bland’s rule or
the smallest subscript rule, which is described and proved in Chvátal. The rule is: If there
are several choices of entering variable (i.e., several variables with positive entry in the last
row), choose the variable with the smallest subscript. If there are several choices of leaving
variable (i.e., several variables for which the minimum ratio of the ratio test is attained),
choose the variable with the smallest subscript. If this rule is applied, no tableau will ever
be repeated.
Example 9.19 Applying Bland’s rule beginning with the tableau of Example 9.17 results
in the same sequence of tableaux as before in Examples 9.17 and 9.18, except that when
pivoting in the penultimate tableau, x1 will enter the basis and x4 will leave the basis. This
results in the tableau
x1 x2 x3 x4 x5 x6 x7 −z
0 −4 −2 8 1 −1 0 0 0
1 −3 −1 2 0 2 0 0 0
0 3 1 −2 0 −2 1 0 1
0 −27 1 −44 0 −20 0 1 0
Now x3 enters the basis and x7 leaves, which yields:
x1 x2 x3 x4 x5 x6 x7 −z
0 2 0 4 1 −5 2 0 2
1 0 0 0 0 0 1 0 1
0 3 1 −2 0 −2 1 0 1
0 −30 0 −42 0 −18 −1 1 −1
This tableau is optimal. 2
66
Cycling can also be avoided by a perturbation technique. Adjoin an indeterminate ε to
the field R. Consider the field R(ε) of rational functions in ε. We can make this an ordered
field by defining
a0 + a1 ε + a2 ε2 + · · · + ak εk < b0 + b1 ε + b2 ε2 + · · · + bk εk
if there exists 0 ≤ j < k such that ai = bi for all 0 ≤ i ≤ j and aj+1 < bj+1 . (Think of ε as
being an infinitesimally small positive number if you dare.)
We solve (P ) by replacing b with b + (ε, ε2 , . . . , εm )T and noting that any tableau which
is primal (respectively, dual) feasible with respect to R(ε) is also primal (respectively, dual)
feasible with respect to R when ε is replaced by 0.
Note that expressions involving ε will only appear in the last column of a basic tableau—
pivoting won’t cause any ε’s to pop up anywhere else.
Example 9.20 Let’s try this out on Chvátal’s example. Our starting tableau becomes:
x1 x2 x3 x4 x5 x6 x7 −z
0.5 −5.5 −2.5 9 1 0 0 0 ε
0.5 −1.5 −0.5 1 0 1 0 0 ε2
1 0 0 0 0 0 1 0 1 + ε3
10 −57 −9 −24 0 0 0 1 0
Pivot in column x1 . Check ratios: ε/0.5 = 2ε, ε2 /0.5 = 2ε2 , (1 + ε3 )/1 = 1 + ε3 . The second
ratio is smaller, so we choose x6 to leave, getting:
x1 x2 x3 x4 x5 x6 x7 −z
0 −4 −2 8 1 −1 0 0 ε − ε2
1 −3 −1 2 0 2 0 0 2ε2
0 3 1 −2 0 −2 1 0 1 − 2ε2 + ε3
0 −27 1 −44 0 −20 0 1 −20ε2
Now pivot in column x3 . You must pivot x7 out, which yields:
x1 x2 x3 x4 x5 x6 x7 −z
0 2 0 4 1 −5 2 0 2 + ε − 5ε2 + 2ε3
1 0 0 0 0 0 1 0 1 + ε3
0 3 1 −2 0 −2 1 0 1 − 2ε2 + ε3
0 −30 0 −42 0 −18 −1 1 −1 − 18ε2 − ε3
This tableau is optimal. You can set ε = 0 to see the final table for the original, unperturbed
problem. The optimal solution is (1, 0, 1, 0, 2, 0, 0) with objective function value 1. 2
67
To show that cycling won’t occur under the perturbation method, it suffices to show that
b > 0 in every basic feasible tableau T , for then the objective function value will strictly
increase at each pivot.
Assume that B is a basis for which bk = 0 for some k. Then B −1 (b + (ε, . . . , εm )T ) is zero
in the kth component. Let pT be the kth row of B −1 . Then pT (b + (ε, . . . , εm )T ) = 0 in R(ε).
So pT b + pT e1 ε + pT e2 ε2 + · · · + pT em εm = 0. (Remember, ei is the standard unit vector with
all components equal to 0 except for a 1 in the ith component.) Therefore pT ei = 0 for all i,
which in turn implies that pT = OT . But this is impossible since pT is a row of an invertible
matrix.
Geometrically we are moving the constraining hyperplanes of (P̂ ) a “very small” amount
parallel to themselves so that we avoid any coincidences of having more than n of them
passing through a common point.
Now we know that using this rule will not cause any tableau (i.e., basis) to repeat. Since
there is a finite number of bases, we will eventually discover a tableau that is optimal, or
else we will discover a tableau that demonstrates that (P ) is unbounded.
Now what about getting that initial primal feasible tableau? If b ≥ O there is no problem
because we can use the initial tableau associated with the equations in (P ) itself—our basis
consists of the set of slack variables. The GGMC problem provides a good example of this
situation.
Example 9.21 Pivoting from the initial tableau to optimality in the GGMC problem:
x1 x2 x3 x4 x5 −z
1 2 1 0 0 0 120
1 1 0 1 0 0 70
2 1 0 0 1 0 100
5 4 0 0 0 1 0
x1 x2 x3 x4 x5 −z
0 1.5 1 0 −0.5 0 70
0 0.5 0 1 −0.5 0 20
1 0.5 0 0 0.5 0 50
0 1.5 0 0 −2.5 1 −250
x1 x2 x3 x4 x5 −z
0 0 1 −3 1 0 10
0 1 0 2 −1 0 40
1 0 0 −1 1 0 30
0 0 0 −3 −1 1 −310
68
2
What if at least one component of b is negative (as in Example 9.16? The clever idea
is to introduce a new nonnegative variable x0 . This variable is called an artificial variable.
Put it into each of the equations of (P ) with a coefficient of −1, getting the system
Ax − ex0 = b
(5)
x ≥ O, x0 ≥ 0
Now it is obvious (isn’t it?) that (P ) is feasible if and only if (5) has a feasible solution
in which x0 = 0. So let’s try to solve the following Phase I problem:
max −x0
s.t. Ax − ex0 = b
x ≥ O, x0 ≥ 0
1. If the optimal value of the Phase I problem is negative (i.e., x0 is positive at optimality),
then there is no feasible solution to this problem in which x0 is zero; therefore (P ) is
infeasible.
2. If, on the other hand, the optimal value of the Phase I problem is zero, then it must
have been the case that x0 was removed from the basis at the final pivot; therefore,
there is a feasible solution to this problem in which x0 is zero, and moreover the final
basis B is a primal feasible basis for (P ). If this happens, drop the x0 column and
69
replace the final row of the tableau by the row (cT , 1, 0). Pivot again on the 1’s in the
basic columns to make cTB = OT . (Alternatively, calculate cT − cTB B −1 A. This isn’t
hard since B −1 A is already sitting in the final tableau.) Now you have a basic feasible
tableau for (P ). Proceed to solve (P )—this part is called Phase II.
Example 9.22 We apply the Phase I procedure to the following linear program:
max 5x1 + 4x2
s.t. x1 + 2x2 ≤ 120
−x1 − x2 ≤ −70
−2x1 − x2 ≤ −100
x1 , x2 ≥ 0
The Phase I problem is:
max −x0
s.t. x1 + 2x2 + x3 − x0 = 120
−x1 − x2 + x4 − x0 = −70
−2x1 − x2 + x5 − x0 = −100
x1 , x2 , x3 , x4 , x5 , x0 ≥ 0
The first tableau is:
x1 x2 x3 x4 x5 x0 −z
1 2 1 0 0 −1 0 120
−1 −1 0 1 0 −1 0 −70
−2 −1 0 0 1 −1 0 −100
0 0 0 0 0 −1 1 0
The preliminary pivot takes place in column x0 and the third row (since the right-hand side
−100 is the most negative):
x1 x2 x3 x4 x5 x0 −z
3 3 1 0 −1 0 0 220
1 0 0 1 −1 0 0 30
2 1 0 0 −1 1 0 100
2 1 0 0 −1 0 1 100
Now the tableau is primal feasible, and we proceed to solve the Phase I problem:
x1 x2 x3 x4 x5 x0 −z
0 3 1 −3 2 0 0 130
1 0 0 1 −1 0 0 30
0 1 0 −2 1 1 0 40
0 1 0 −2 1 0 1 40
70
x1 x2 x3 x4 x5 x0 −z
0 0 1 3 −1 −3 0 10
1 0 0 1 −1 0 0 30
0 1 0 −2 1 1 0 40
0 0 0 0 0 −1 1 0
This tableau is optimal with objective function value 0, so the original LP is feasible. We
now delete column x0 and replace the last row with the original objective function:
x1 x2 x3 x4 x5 −z
0 0 1 3 −1 0 10
1 0 0 1 −1 0 30
0 1 0 −2 1 0 40
5 4 0 0 0 1 0
We must perform preliminary pivots in columns x1 and x2 to bring the tableau back into
basic form:
x1 x2 x3 x4 x5 −z
0 0 1 3 −1 0 10
1 0 0 1 −1 0 30
0 1 0 −2 1 0 40
0 4 0 −5 5 1 −150
x1 x2 x3 x4 x5 −z
0 0 1 3 −1 0 10
1 0 0 1 −1 0 30
0 1 0 −2 1 0 40
0 0 0 3 1 1 −310
We now have a basic feasible tableau and may begin a sequence of pivots to solve the
Phase II problem:
x1 x2 x3 x4 x5 −z
0 0 1/3 1 −1/3 0 10/3
1 0 −1/3 0 −2/3 0 80/3
0 1 2/3 0 1/3 0 140/3
0 0 −1 0 2 1 −320
71
x1 x2 x3 x4 x5 −z
0 1 1 1 0 0 50
1 2 1 0 0 0 120
0 3 2 0 1 0 140
0 −6 −5 0 0 1 −600
The optimal solution is (120, 0, 0, 50, 140) with an objective function value of 600. 2
x1 x2 x3 x4 x5 x0 −z
1 2 −1 0 0 1 0 120
2 3 −1 1 0 0 0 190
−1 1 −1 0 1 0 0 20
1 2 −1 0 0 0 1 120
x1 x2 x3 x4 x5 x0 −z
0 1/2 −1/2 −1/2 0 1 0 25
1 3/2 −1/2 1/2 0 0 0 95
0 5/2 −3/2 1/2 1 0 0 115
0 1/2 −1/2 −1/2 0 0 1 25
72
x1 x2 x3 x4 x5 x0 −z
0 0 −1/5 −3/5 −1/5 1 0 2
1 0 2/5 1/5 −3/5 0 0 26
0 1 −3/5 1/5 2/5 0 0 46
0 0 −1/5 −3/5 −1/5 0 1 2
Since the optimal objective function value is nonzero, the original LP is infeasible. 2
Some comments: In the form that I have described it, the simplex method behaves poorly
numerically and is not really implemented in this manner. Also, it is possible to have an
exponential number of pivots in terms of the number of variables or constraints. See Chvátal
for more details on resolving the first problem, and a discussion of the second in which a
slightly skewed hypercube wreaks havoc with reasonable pivot rules.
The existence of the simplex method, however, gives us a brand new proof of Strong Du-
ality! Just observe that the algorithm (1) terminates by demonstrating that (P ), and hence
(P̂ ), is infeasible; (2) terminates by demonstrating that (P ), and hence (P̂ ), is unbounded;
or (3) terminates with a dual pair of optimal solutions to (P̂ ) and (D̂) with equal objective
function values. In fact, we can conclude something stronger:
Suppose we have found optimal x and y from the optimal final tableau of the simplex
method. We already know that they have the same objective function values, so clearly
they must also satisfy complementary slackness. This can be seen directly: Suppose xj > 0.
Then j ∈ B. So cj − y T Aj = 0. Also note that if y i > 0, then 0 − y T ei < 0, hence
n + i ∈ N . Therefore xn+i = 0 and the ith constraint in (P̂ ) is satisfied with equality.
So the corresponding solutions of (P̂ ) and (D̂) also are easily seen to satisfy complementary
slackness. The simplex method in effect maintains primal feasibility, enforces complementary
slackness, and strives for dual feasibility.
73
10 Exercises: The Simplex Method
These questions concern the pair of dual linear programs
max cT x
min y T b
(P ) s.t. Ax = b (D)
s.t. y T A ≥ cT
x≥O
Exercise 10.1 True or false: Every feasible solution of (P ) is a BFS of (P ). If true, prove
it; if false, give a counterexample. 2
Exercise 10.2 True or false: Suppose T is a basic feasible tableau with associated BFS x.
Then x is optimal if and only if cj ≤ O for all j. (This is Chvátal 3.10.) If true, prove it; if
false, give a counterexample. 2
m+n
Exercise 10.3 Prove that the number of basic feasible solutions for (P ) is at most m
.
Can you construct an example in which this number is achieved? 2
Exercise 10.4
2. Do the same as in the previous problem, but in such a way that all of the bases
associated with x are also dual feasible.
3. Do the same as in the previous problem, but in such a way that at least one of the
bases associated with x is dual feasible, while at least one is not.
Exercise 10.5 Geometrically construct a two-variable LP (P̂ ) that has no primal feasible
basis and no dual feasible basis. 2
74
Exercise 10.6 Geometrically construct a two-variable LP (P̂ ) such that both the primal
and the dual problems have more than one optimal solution. 2
Exercise 10.7
1. total unimodularity
2. Suppose that A is a matrix with integer entries and B is a basis such that AB has
determinant −1 or +1. Assume that b also has integer entries. Prove that the solution
to AB xB = b is an integer vector.
3. Suppose  is a matrix with integer entries such that every square submatrix (of what-
ever size) has determinant 0, −1 or +1. Assume that b also has integer entries. Prove
that if (P ) has an optimal solution, then there is an optimal integer solution x∗ .
Exercise 10.8
1. For variable cost coefficients c, consider the function z ∗ (c), which is defined to be the
optimal objective function value of (P ) as a function of c. Take the domain of z ∗ (c) to
be the points c such that (P ) has a finite optimal objective function value. Prove that
there exists a finite set S such that z ∗ (c) is of the form
z ∗ (c) = max{cT x}
x∈S
on its domain.
2. For variable right hand sides b, consider the function z ∗ (b), which is defined to be the
optimal objective function value of (P ) as a function of b. Take the domain of z ∗ (b) to
be the points b such that (P ) has a finite optimal objective function value. Prove that
there exists a finite set T such that z ∗ (b) is of the form
z ∗ (b) = min{y T b}
y∈T
on its domain.
75
Exercise 10.9 Suppose that  and b have integer entries, B is a feasible basis for (P ), and
x is the associated BFS. Let
α = max{|aij |}
i,j
β = max{|bi |}
i
Prove that the absolute value of each entry of B −1 is no more than (m − 1)!αm−1 . Prove
that |xj | ≤ m!αm−1 β for all j (Papadimitriou and Steiglitz). 2
Exercise 10.10 Suppose x is feasible for (P ). We say that x is an extreme point of (P )
if there exists no nonzero vector w such that x + w and x − w are both feasible for (P ).
Illustrate this definition geometrically. Define a point x to be a convex combination of points
x1 , x2 if there exists a real number t, 0 ≤ t ≤ 1, such that x = tx1 + (1 − t)x2 . The support
of a point x is the set of indices supp (x) = {i : xi = 0}.
Prove that the following are equivalent for a feasible point x of (P ):
1. x is a BFS of (P ).
2. x is an extreme point of (P ).
3. x cannot be written as a convex combination of any two other feasible points of (P ),
both different from x.
4. The set of column vectors {Ai : i ∈ supp (x)} is linearly independent.
2
Exercise 10.11 Suppose x is feasible for (P ). We say that x is an exposed point of (P ) if
there exists an objective function dT x such that x is the unique optimal solution to
max dT x
s.t. Ax = b
x≥O
Illustrate this definition geometrically. Prove that x is an exposed point of (P ) if and only
if x is a BFS of (P ). 2
Exercise 10.12 Suppose z is a nonzero vector in Rn . Define z to be a nonnegative combi-
nation of vectors z 1 , z 2 if there exist nonnegative real numbers t1 , t2 such that z = t1 z 1 +t2 z 2 .
Call z an extreme vector of (P ) if it is a nonzero, nonnegative solution to Az = O, and z
cannot be expressed as a nonnegative combination of any two other nonnegative solutions
z 1 , z 2 to Az = O unless both z 1 , z 2 are themselves nonnegative multiples of z. The support
of a vector z is the set of indices supp (z) = {i : z i = 0}.
Prove that the following are equivalent for a nonzero, nonnegative solution z to Az = O:
76
1. z is a positive multiple of a basic feasible direction for (P ).
3. The set of column vectors {Ai : i ∈ supp (z)} is linearly dependent, but dropping any
one vector from this set results in a linearly independent set.
Exercise 10.13 Prove directly (without the simplex method) that if (P ) has a feasible
solution, then it has a basic feasible solution. Hint: If x is feasible and not basic feasible,
find an appropriate solution to Aw = O and consider x ± w. Similarly, prove directly that
if (P ) has a optimal solution, then it has an optimal basic feasible solution. 2
Exercise 10.14 True or false: If (P ) and (D) are both feasible, then there always exist
optimal basic feasible solutions x and y to (P ) and (D), respectively, that satisfy strong
complementary slackness . If true, prove it; if false, give a counterexample. 2
max cT x
s.t. A x ≤ b
x1 unrestricted
xj ≥ O, j = 2, . . . n
and convert it into a problem in standard form by making the substitution x1 = u1 − v1 ,
where u1 , v1 ≥ 0. Prove that the simplex method will not produce an optimal solution in
which both u1 and v1 are positive. 2
Exercise 10.16 Suppose (P̂ ) is infeasible and this is discovered in Phase I of the simplex
method. Use the final Phase I tableau to find a solution to
y T Â ≥ OT
yT b < 0
y≥O
2
Exercise 10.17 Chvátal, problems 2.1–2.2, 3.1–3.9, 5.2. Note: You need to read the book
in order to do problems 3.3–3.7. 2
77
11 The Simplex Method—Further Considerations
11.1 Uniqueness
Suppose that B is an optimal basis with associated T , x, and y. Assume that cj < 0 for all
j ∈ N . Then x is the unique optimal solution to (P ). Here are two ways to see this:
1. We know that any optimal x̃ must satisfy complementary slackness with y. But y T Aj >
cj for all j ∈ N since cj < 0. So x̃j = 0 for all j ∈ N . Hence x̃N = xN . Also B x̃B = b,
so x̃B = B −1 b = xB . So x̃ = x.
2. Assume that x̃ is optimal. If x̃N = O, then z̃ = z + cT x̃ = z + cTN x̃N < z since cN < O.
So x̃N = O, and we again are able to conclude that x̃B = xB and so x̃ = x.
Exercise 11.1 Suppose that B is an optimal basis with associated T , x, and y.
1. Assume that x is the unique optimal solution to (P ) and that b > O. Prove that cj < 0
for all j ∈ N .
2. Construct an example in which x is the unique optimal solution to (P ), b > O, and
cN < O.
2
Exercise 11.2 Suppose again that B is an optimal basis with associated T , x, and y.
Assume that b > O. Prove that y is the unique optimal solution to (D). 2
78
Example 11.3 Solving GGMC using the revised simplex method. We are given the initial
tableau:
x1 x2 x3 x4 x5 −z
1 2 1 0 0 0 120
1 1 0 1 0 0 70
2 1 0 0 1 0 100
5 4 0 0 0 1 0
Our starting basis is (3, 4, 5), So
3
4 5
1 0 0
B=
0 1 0
0 0 1
1. Since our “current” tableau is the same as the initial tableau, we can directly see that
x = (0, 0, 120, 70, 100) and that we can choose x1 as the entering variable.
To find the leaving variable, write x̃B = xB − td:
x̃3 120 1
x̃4 = 70 − t 1
x̃5 100 2
x̃1 = t
x̃2 = 0
Therefore t = 50, x5 is the leaving variable, (3, 4, 1) is the new basis, x =
(50, 0, 70, 20, 0) is the new basic feasible solution, and
3
4 1
1 0 1
B=
0 1 1
0 0 2
79
Thus y = (0, 0, 2.5)T .
Calculate cTN = cN − y T N .
2 5
2 5 2 0 2 5
c2 c5 = 4 0 − 0 0 2.5 1 0 = 1.5 −2.5
1 1
Since c has some positive entries, we must pivot. We choose x2 as the entering variable.
Find d by solving Bd = a where a = A2 :
3 4 1
1 0 1 d3 2
0 1 1
d4 = 1
0 0 2 d1 1
We see that
d3 1.5
4
d = 0.5
d1 0.5
To find the leaving variable, write x̃B = xB − td:
x̃3 70 1.5
x̃4 = 20 − t 0.5
x̃1 50 0.5
x̃2 = t
x̃5 = 0
3
2 1
1 2 1
B=
0 1 1
0 1 2
80
3. Find y by solving y T B = cTB :
3 2 1
1 2 1 3 2 1
y1 y2 y3 0 1 1 = 0 4 5
0 1 2
4 5
4 5 0 0 4 5
c4 c5 = 0 0 − 0 3 1 1
0 = −3 −1
0 1
81
br < 0 for some r ∈ B. Assume that the associated row w of A is nonnegative:
0 ∗
.. ..
. .
0 ∗
⊕ ··· ⊕ 0 −
0 ∗
.. ..
. .
0 ∗
···
1 ∗
Then the corresponding equation reads wT x = br , which is clearly infeasible for nonnegative
x since w ≥ O and br < 0. So (P ) is infeasible.
Now suppose w contains at least one negative entry. We want to pivot on one of these
negative entries ws , for then the lower right-hand entry of the tableau will not decrease, and
so the corresponding objective function value of the dual feasible solution will not increase.
0 ∗
.. ..
. .
0 ∗
−◦ 0 −
0 ∗
.. ..
. .
0 ∗
···
···
1 ∗
We do not want the pivot to destroy dual feasibility, so we require
cs
cj − wj ≤ 0
ws
for all j. There is no problem in satisfying this if wj ≥ 0. For wj < 0 we require that
cj cs
≥ .
wj ws
So choose s such that
cs cj
= min .
ws j:w j <0 wj
This is the dual ratio test to determine the entering variable. Pivoting on ws causes r to
leave the basis and s to enter the basis.
82
Example 11.4 Tableau 4 of Example 9.3 is dual feasible, but not primal feasible. We must
pivot in the first row (which corresponds to basic variable x4 ). Calculating ratios for the two
negative entries in this row, −1/(−1/3) = 3, −2/(−1/3) = 6, we determine that the pivot
column is that for x3 . Pivoting entry results in tableau 3, which is dual feasible. (It also
happens to be primal feasible, so this is an optimal tableau.) 2
Analogously to the primal simplex method, there are methods to initialize the dual
simplex method and to avoid cycling.
Example 11.5 Suppose we are given the initial tableau for the GGMC problem:
x1 x2 x3 x4 x5 −z
1 2 1 0 0 0 120
1 1 0 1 0 0 70
2 1 0 0 1 0 100
5 4 0 0 0 1 0
83
Find x by solving BxB = b:
4 2 1
0 2 1 x4 120
1 1 1
x2 = 70
0 1 2 x1 100
and setting x3 = x5 = 0. Thus x = (80/3, 140/3, 0, −10/3, 0), and we can see that the
basis is not primal feasible.
Find y by solving y T B = cTB :
4
2 1
0 2 1 4 2 1
y1 y2 y3 1 1 1 = 0 4 5
0 1 2
3 5
3 5 1 0 3 5
c3 c5 = 0 0 − 1 0 2 0
0 = −1 −2
0 1
4
2 1
0 2 1 4 2 1
v1 v2 v3 1 1 1 = 1 0 0
0 1 2
84
Calculate the nonbasic portion of the first row w of A (the row of A indexed by x4 ) by
wN = v T N :
3
5
1 0 3 5
w3 w5 = −1/3 1 −1/3 0 0 = −1/3 −1/3
0 1
Both of these numbers are negative, so both are potential pivot entries. Check the
ratios of cj /wj for j = 3, 5: −1/(−1/3) = 3, −2/(−1/3) = 6. The minimum ratio
occurs when j = 3. So the variable x3 enters the basis (while x4 leaves), and the new
basis is (3, 2, 1).
3 2 1
1 2 1 x3 120
0 1 1
x2 = 70
0 1 2 x1 100
and setting x4 = x5 = 0. Thus x = (30, 40, 10, 0, 0), and we can see that the basis is
primal feasible, hence optimal.
85
For example, suppose b is replaced by b . This affects only the last column of T , so the
basis B is still dual feasible and we can solve the new problem with the dual simplex method
starting from the current basis. Or suppose c is replaced by c . This affects only the last row
of T , so the basis is still primal feasible and we can solve the new problem with the primal
simplex method starting from the current basis.
Exercise 11.6 Prove if b > O then there exists ε > 0 such that the basis will remain optimal
if u < ε. 2
Example 11.7 Let’s vary the second right-hand side in the GGMC problem:
x1 x2 x3 x4 x5 −z
1 2 1 0 0 0 120
1 1 0 1 0 0 70 + θ
2 1 0 0 1 0 100
5 4 0 0 0 1 0
86
The final tableau used to be:
x1 x2 x3 x4 x5 −z
0 0 1 −3 1 0 10
0 1 0 2 −1 0 40
1 0 0 −1 1 0 30
0 0 0 −3 −1 1 −310
x1 x2 x3 x4 x5 −z
0 0 1 −3 1 0 10 − 3θ
0 1 0 2 −1 0 40 + 2θ
1 0 0 −1 1 0 30 − θ
0 0 0 −3 −1 1 −310 − 3θ
Note that the coefficients of θ match the entries in column x4 , the slack variable for the second
constraint. The basis and tableau remain feasible and optimal if and only if 10 − 3θ ≥ 0,
40 + 2θ ≥ 0, and 30 − θ ≥ 0; i.e., if and only if −20 ≤ θ ≤ 10/3. In this range,
Should θ drop below −20, perform a dual simplex pivot in the second row:
x1 x2 x3 x4 x5 −z
0 1 1 −1 0 0 50 − θ
0 −1 0 −2 1 0 −40 − 2θ
1 1 0 1 0 0 70 + θ
0 −1 0 −5 0 1 −350 − 5θ
This basis and tableau remain feasible and optimal if and only if 50 − θ ≥ 0, −40 − 2θ ≥ 0,
and 70 + θ ≥ 0; i.e., if and only if −70 ≤ θ ≤ −20. In this range,
Should θ drop below −70, we would want to perform a dual smplex pivot in the third
row, but the absence of a negative pivot entry indicates that the problem becomes infeasible.
87
Should θ rise above 10/3 in the penultimate tableau, perform a dual simplex pivot in the
first row:
x1 x2 x3 x4 x5 −z
0 0 −1/3 1 −1/3 0 −10/3 + θ
0 1 2/3 0 −1/3 0 140/3
1 0 −1/3 0 2/3 0 80/3
0 0 −1 0 −2 1 −320
This basis and tableau remain feasible and optimal if and only if −10/3 + θ ≥ 0; i.e., if and
only if θ ≥ 10/3. In this range,
Exercise 11.8 Carry out the above process for the other two right-hand sides of the GGMC
problem. Use the graph of the feasible reagion to check your results on the ranges of θ and
the values of x∗ , y ∗ , and z ∗ in these ranges. For each of the three right-hand sides, graph z ∗
as a function of θ. 2
c̃T = (c + u)T − ỹ T A
= cT + uT − (y T + v T )A
= c T − y T A + uT − v T A
= cT + uT − v T A.
If the basis is still optimal, then x does not change, but the associated dual basic feasible
solution becomes y + v. Its objective function value is ỹ T b = (y + v)T b = y T b + uTB B −1 b =
z + uT xB . So as long as the basis remains feasible, the primal variables xB give the rate of
change of the optimal objective function value as a function of the changes in the objective
function coefficients.
Exercise 11.9 Prove that if c < 0 then there exists ε > 0 such that the basis will remain
optimal if u < ε. 2
88
Sometimes we are interested in parameterized changes in the objective function coeffi-
cients. We can, for example, replace u by θu where θ is a scalar variable, and determine the
optimal value as a function of θ. As we vary θ, if the basis becomes dual infeasible, then we
can employ the primal simplex method to obtain a new optimal basis.
In particular, if we want to change only one component of c, use c + θek for some k. If
k ∈ N , then v = O and we simply require that ck + θ ≤ 0. If k ∈ B, then v equals the th
row of B −1 (which sits in T ), where k is the th ordered element of the basis. In this case
we require cT + θ(eTk − v T A) ≤ O. Note that v T A is the th row of A and sits within T .
Example 11.10 Let’s vary the first objective function coefficient in the GGMC problem:
x1 x2 x3 x4 x5 −z
1 2 1 0 0 0 120
1 1 0 1 0 0 70
2 1 0 0 1 0 100
5+θ 4 0 0 0 1 0
x1 x2 x3 x4 x5 −z
0 0 1 −3 1 0 10
0 1 0 2 −1 0 40
1 0 0 −1 1 0 30
0 0 0 −3 + θ −1 − θ 1 −310 − 30θ
Note that the nonbasic coefficients of θ match the negatives of the entries in the third row,
because x1 is the third element in the ordered basis of the tableau. The basis and tableau
remain dual feasible and optimal if and only if −3 + θ ≤ 0 and −1 − θ ≤ 0; i.e., if and only
if −1 ≤ θ ≤ 3. In this range,
x∗ = (30, 40, 10, 0, 0)
y ∗ = (0, 3 − θ, 1 + θ)
z ∗ = 310 + 30θ
89
Should θ rise above 3, peform a simplex pivot in the fourth column:
x1 x2 x3 x4 x5 −z
0 3/2 1 0 −1/2 0 70
0 1/2 0 1 −1/2 0 20
1 1/2 0 0 1/2 0 50
0 3/2 − θ/2 0 0 −5/2 − θ/2 1 −250 − 50θ
This basis and tableau remain dual feasible and optimal if and only if 3/2 − θ/2 ≤ 0 and
−5/2 − θ/2 ≤ 0; i.e., if and only if θ ≥ 3. In this range,
x∗ = (50, 0, 70, 20, 0)
y ∗ = (0, 0, 5/2 + θ/2)
z ∗ = 250 + 50θ
On the other hand, should θ fall below −1 in the penultimate tableau, perform a simplex
pivot in the fifth column:
x1 x2 x3 x4 x5 −z
0 0 1 −3 1 0 10
0 1 1 −1 0 0 50
1 0 −1 2 0 0 20
0 0 1 + θ −6 − 2θ 0 1 −300 − 20θ
This basis and tableau remain dual feasible and optimal if and only if 1 + θ ≤ 0 and
−6 − 2θ ≤ 0; i.e., if and only if −3 ≤ θ ≤ −1. In this range,
x∗ = (20, 50, 0, 0, 10)
y ∗ = (−1 − θ, 6 + 2θ, 0)
z ∗ = 300 + 20θ
Should θ fall below −3, perform a simplex pivot in the fourth column:
x1 x2 x3 x4 x5 −z
3/2 0 −1/2 0 1 0 40
1/2 1 1/2 0 0 0 60
1/2 0 −1/2 1 0 0 10
3+θ 0 −2 0 0 1 −240
This basis and tableau remain dual feasible and optimal if and only if 3 + θ ≤ 0; i.e., if and
only if θ ≤ −3. In this range,
x∗ = (0, 60, 0, 10, 40)
y ∗ = (2, 0, 0)
z ∗ = 240
90
2
Exercise 11.11 Carry out the above process for the other four objective function coefficients
of the GGMC problem. Use the graph of the feasible reagion to check your results on the
ranges of θ and the values of x∗ , y ∗ , and z ∗ in these ranges. For each of the five objective
function coefficients, graph z ∗ as a function of θ. 2
Example 11.12 Suppose the GGMC proposes producing a new product: bric-a-brac. One
kilogram of bric-a-brac requires 1 hours of labor, 2 units of wood, and 2 units of metal. How
much profit c6 must be realized before it becomes advantageous to produce this product?
At optimality we saw previously that y = (0, 3, 1). Pricing out the bric-a-brac:
1
y T A6 = [0, 3, 1]
2 = 7.
1
If the profit c6 from bric-a-brac is no more than 7 dollars then it is not worthwhile to produce
it, but if it is more than 7 dollars then a new optimal solution must be found.
Let’s suppose c6 = 8. Then c6 = 8 − 7 = 1. We do not have to start from scratch, but
can amend the optimal tableau by appending a new column d = B −1 A6 , which can be found
by solving Bd = A6 :
3 2 1
1 2 1 d3 1
0 1 1 d2 = 2
0 1 2 d1 1
The solution is d = (−4, 3, −1)T . Appending this column, and the value of c6 , to the final
91
tableau, gives:
x1 x2 x3 x4 x5 x6 −z
0 0 1 −3 1 −4 0 10
0 1 0 2 −1 3 0 40
1 0 0 −1 1 −1 0 30
0 0 0 −3 −1 1 1 −310
One simplex pivot brings us to the new optimal tableau:
x1 x2 x3 x4 x5 x6 −z
0 4/3 1 −1/3 −1/3 0 0 190/3
0 1/3 0 2/3 −1/3 1 0 40/3
1 1/3 0 −1/3 2/3 0 0 130/3
0 −1/3 0 −11/3 −2/3 0 1 −970/3
Example 11.13 After solving the GGMC problem, let’s add the constraint x1 ≤ 18. Using
a new slack variable x6 , we enlarge the final tableau:
x1 x2 x3 x4 x5 x6 −z
0 0 1 −3 1 0 0 10
0 1 0 2 −1 0 0 40
1 0 0 −1 1 0 0 30
1 0 0 0 0 1 0 18
0 0 0 −3 −1 0 1 −310
92
Make the tableau basic again with a preliminary pivot in the first column:
x1 x2 x3 x4 x5 x6 −z
0 0 1 −3 1 0 0 10
0 1 0 2 −1 0 0 40
1 0 0 −1 1 0 0 30
0 0 0 1 −1 1 0 −12
0 0 0 −3 −1 0 1 −310
Pivot to optimality with two dual simplex pivots:
x1 x2 x3 x4 x5 x6 −z
0 0 1 −2 0 1 0 −2
0 1 0 1 0 −1 0 52
1 0 0 0 0 1 0 18
0 0 0 −1 1 −1 0 12
0 0 0 −4 0 −1 1 −298
x1 x2 x3 x4 x5 x6 −z
0 0 − 12 1 0 − 12 0 1
1
0 1 2
0 0 − 12 0 51
1 0 0 0 0 1 0 18
0 0 − 12 0 1 − 32 0 13
0 0 −2 0 0 −3 1 −294
So the new optimal solution is to produce 18 kilograms of gadgets and 51 kilograms of
gewgaws, with a profit of 294 dollars. 2
93
Upon completion of the Phase I problem, either we will have achieved a nonzero objective
function value, demonstrating that the original problem is infeasible, or else we will have
achieved a zero objective function value with all artificial variables necessarily equalling
zero. Suppose in this latter case there is an artificial variable remaining in the basis. In
the final tableau, examine the row associated with this variable. It must have at least one
nonzero entry in some column corresponding to one of the original variables, otherwise we
would discover that the set of equations of the original problem is linearly dependent. Pivot
on any such nonzero entry, whether positive or negative, to remove the artificial variable
from the basis and replace it with one of the original variables. This “artificial” pivot will
not change primal feasibility since the pivot row has a zero in the last column. Repeating
this process with each artificial variable in the basis, we obtain a primal feasible basis for
the original problem. Now throw away the artificial variables and proceed with the primal
simplex method to solve the problem with the original objective function.
If our original problem has a mixture of equations and inequalities, then we can add slack
variables to the inequalities to turn them into equations. In this case we may be able to get
away with fewer artificial variables by using some of the slack variables in the initial feasible
basis.
Example 11.14 To solve the linear program:
max 5x1 + 4x2
s.t. x1 + 2x2 = 120
x1 + x2 ≤ 70
2x1 + x2 ≤ 100
x1 , x2 ≥ 0
we insert an artificial variable x3 into the first equation and slack variables into the next two
inequalities. To test feasibility we try to minimize x3 (or maximize −x3 ).
max −x3
s.t. x1 + 2x2 + x3 = 120
x1 + x2 + x4 = 70
2x1 + x2 + x5 = 100
x1 , x 2 , x 3 , x 4 , x 5 ≥ 0
This is represented by the tableau:
x1 x2 x3 x4 x5 −z
1 2 1 0 0 0 120
1 1 0 1 0 0 70
2 1 0 0 1 0 100
0 0 −1 0 0 1 0
94
Perform a preliminary pivot in the third column to make the tableau basic:
x1 x2 x3 x4 x5 −z
1 2 1 0 0 0 120
1 1 0 1 0 0 70
2 1 0 0 1 0 100
1 2 0 0 0 1 120
One pivot results in optimality:
x1 x2 x3 x4 x5 −z
1/2 1 1/2 0 0 0 60
1/2 0 −1/2 1 0 0 10
3/2 0 −1/2 0 1 0 40
0 0 −1 0 0 1 0
Since the optimal objective function value is zero, the linear program is found to be
feasible. The artificial variable x3 is nonbasic, so its column can be deleted. Replace the
Phase I objective function with the Phase II objective function:
x1 x2 x4 x5 −z
1/2 1 0 0 0 60
1/2 0 1 0 0 10
3/2 0 0 1 0 40
5 4 0 0 1 0
Perform a preliminary pivot in the second column to make the tableau basic again:
x1 x2 x4 x5 −z
1/2 1 0 0 0 60
1/2 0 1 0 0 10
3/2 0 0 1 0 40
3 0 0 0 1 −240
Now one more pivot achieves optimality:
x1 x2 x4 x5 −z
0 1 −1 0 0 50
1 0 2 0 0 20
0 0 −3 1 0 10
0 0 −6 0 1 −300
2
95
11.7 LP’s With Unrestricted Variables
Suppose our original problem has some unrestricted variable xp . We can replace xp with the
difference x+ −
p − xp of two nonnegative variables, as described in an earlier section. Using
the revised simplex method and some simple bookkeeping, we do not increase the size of the
problem by this conversion by any significant amount.
96
not change the basis B; we just have a new normal BFS with xs at its upper bound. If one
of the basic variables xr hits its upper or lower bound first, then s enters the basis, r leaves
the basis, and xr is nonbasic at its upper or lower bound.
Suppose on the other hand that cs < 0 for some s ∈ N for which xs > s . Then we
can try adding t ≤ 0 to xs , keeping the values of the other nonbasic variables constant, and
monitoring the changes in the basic variables using the same equations as above. Choose
t as negative as possible so that xs does not exceed its lower bound and no basic variable
drifts outside its upper or lower bound. If t can be made arbitrarily negative, then the LP
is unbounded, and we stop. If xs hits its lower bound first, then we do not change the basis
B; we just have a new normal BFS with xs at its lower bound. If one of the basic variables
xr hits its upper or lower bound first, then s enters the basis, r leaves the basis, and xr is
nonbasic at its upper or lower bound.
Example 11.15 Assume that we require 5 ≤ x1 ≤ 45, 0 ≤ x2 ≤ 45, and that the three
slack variables have lower bounds of 0 and upper bounds of +∞.
1. We could try to initialize the simplex method with the basis (3, 4, 5), which corresponds
to the tableau:
x1 x2 x3 x4 x5 −z
1 2 1 0 0 0 120
1 1 0 1 0 0 70
2 1 0 0 1 0 100
5 4 0 0 0 1 0
Let us choose to set both nonbasic variables to their lower bounds. Using the equations
from the above tableau to solve for the values of the basic variables, we find:
Fortunately, the values of the three basic variables fall within their required bounds,
so we have an initial normal basic feasible solution.
Since c1 and c2 are both positive, we wish to increase the value of x1 or x2 . As they
are each presently at their lower bounds, we may increase either one. We will choose
97
to increase x1 but keep x2 fixed. Then changes in the basic variables depend upon the
entries of the column x1 of the tableau:
Choose t ≥ 0 as large as possible, keeping all variable values within the required
bounds. Thus 5 + t ≤ 45, 115 − t ≥ 0, 65 − t ≥ 0, and 90 − 2t ≥ 0. This forces t = 40,
and this value of t is determined by the nonbasic variable x1 . Therefore we do not
change the basis, but merely set x1 to its upper bound of 45. Then we have:
2. Now we still have c1 and c2 both positive, which means we wish to increase x1 and x2 .
But x1 is at its upper bound; hence cannot be increased. Hence we fix x1 , increase
x2 , and use the second column of the tableau to determine the changes of the basic
variable values:
Nonbasic Variables Basic Variables
x3 = 75 − 2t
x1 = 45
x4 = 25 − t
x2 = 0 + t
x5 = 10 − t
Choose t ≥ 0 as large as possible, keeping all variable values within the required bounds.
Thus 0 + t ≤ 45, 75 − 2t ≥ 0, 25 − t ≥ 0, and 10 − t ≥ 0. This forces t = 10, and this
value of t is determined by the basic variable x5 . This variable becomes nonbasic at its
lower bound value, and x2 enters the basis. The new basis is (3, 4, 2), and the variable
values are:
98
3. The current tableau is now:
x1 x2 x3 x4 x5 −z
−3 0 1 0 −2 0 −80
−1 0 0 1 −1 0 −30
2 1 0 0 1 0 100
−3 0 0 0 −4 1 −400
99
2
What changes do we need to make to the Phase I procedure to find an initial normal basic
feasible solution? One method is to assume that we have equations Ax = b and introduce
artificial variables xn+1 , . . . , xn+m as before, one for each constraint. Declare each original
variable to be nonbasic with Phase I objective function coefficient zero, and set each original
variable xj to a value xj , which is either its lower bound or its upper bound (or zero if it is
an unrestricted variable). Determine the value xn+i of each artificial variable xn+i by
n
xn+i = bi − aij xj .
j=1
If xn+i ≥ 0, give this variable a lower bound of zero, an upper bound of +∞, and a Phase
I objective function coefficient of −1. If xn+i < 0, give this variable a lower bound of −∞,
an upper bound of zero, and a Phase I objective function coefficient of +1. Then we will
have an initial normal basic feasible solution, and we attempt to find a normal basic feasible
solution for the original problem by maximizing the Phase I objective function.
Exercise 11.16 For each of the computational exercises in this section in which full tableaux
are used, repeat the calculations using the revised simplex or the revised dual simplex meth-
ods. 2
100
12 Exercises: More On the Simplex Method
Exercise 12.1 Discuss why it makes economic sense for the shadow prices to be zero for
constraints of (P̂ ) that are not satisfied with equality by an optimal basic feasible solution
x. 2
Exercise 12.2 Devise a perturbation method to avoid cycling in the dual simplex method,
and prove that it works. 2
Exercise 12.3 Devise a “Phase I” procedure for the dual simplex method, in case the initial
basis consisting of the set of slack variables is not dual feasible. 2
max cT x max cT x
s.t. Ax = b s.t. Ax = b + u
x≥O x≥O
(P ) (P (u))
Assume that (P ) has an optimal objective function value z ∗ . Suppose that there exists a
vector y ∗ and a positive real number ε such that the optimal objective function value z ∗ (u)
of (P (u)) equals z ∗ + uT y ∗ whenever u < ε. Prove or disprove: y ∗ is an optimal solution
to the dual of (P ). If the statement is false, what additional reasonable assumptions can be
made to make it true? Justify your answer. 2
Exercise 12.6 Suppose B is an optimal basis for (P ). Suppose that u1 , . . . , uk are vectors
such that B remains an optimal basis if b is replaced by any one of b + u1 , . . . , b + uk . Let
t1 , . . . , tk be nonnegative real numbers that sum to 1. Prove that B is also an optimal basis
for b + t1 u1 + · · · + tk uk . (This is sometimes called the 100% rule). 2
Exercise 12.7 Give a precise explanation of the following statement: If (P ) and (D) are
a dual pair of linear programs, performing a dual simplex pivot in a tableau of (P ) is “the
same” as performing a primal pivot in a tableau of (D). 2
101
Exercise 12.8 Here is another way to turn a system of equations into an equivalent system
of inequalities: Show that (x1 , . . . , xn ) satisfies
n
aij xj = bi , i = 1, . . . , m
j=1
Exercise 12.9 Read Chapter 11 of Chvátal for a good example of using linear programming
to model, solve, and report on a “real-life” problem. 2
Exercise 12.10 Chvátal, 1.6–1.9, 5.4–5.7, 5.9–5.10, 7.1–7.4, 8.1–8.9, 9.4, 9.6–9.7, 10.1–
10.5. You should especially choose some problems to test your understanding of sensitivity
analysis. 2
102
13 More On Linear Systems and Geometry
This section focuses on the structural properties of sets described by a system of linear
constraints in Rn ; e.g., feasible regions of linear programs. Such a set is called a (convex)
polyhedron. We will usually only consider the case n ≥ 1.
Ax = b
x≥O
Exercise 13.2 Extend the above theorem, if possible, to mixtures of linear equations and
inequalities, with mixtures of free and nonnegative variables. 2
Proof. Suppose the system in question is Ax ≤ b. If this system is infeasible, then the
following system is feasible:
AT y = O
bT y < 0
y≥O
By rescaling a feasible solution to the above system by a positive amount, we conclude that
the following system (which has n + 1 equations) is feasible:
AT y = O
bT y = −1
y≥O
103
By the previous theorem, there is a feasible solution ŷ in which at most n + 1 of the variables
are positive. Let S = {i : ŷi > 0}. Then the system
n
aij xj ≤ bi , i ∈ S
j=1
is infeasible since these are the only inequalities used in the contradictory inequality produced
by the multipliers ŷi . 2
Exercise 13.4 Extend the above theorem, if possible, to mixtures of linear equations and
inequalities, with mixtures of free and nonnegative variables. 2
Definition 13.5 Assume that A has full row rank. Recall that x is a basic feasible solution
to the set S = {x : Ax = b, x ≥ O} if there exists a basis B such that x = (xB , xN ), where
xN = O and xB = B −1 b ≥ O. Recall that w is a basic feasible direction for S if there exists a
basis B and an index s ∈ N such that ws = 1, wN −s = O, and wB = −B −1 As ≥ O. (These
are the coefficients of t when it is discovered that an LP is unbounded.) Note that Aw = O.
Exercise 13.6 Assume that A has full row rank. What are the appropriate definitions of
normal basic feasible solution and normal basic feasible direction for the set S = {x : Ax =
b, ≤ x ≤ u}? 2
Theorem 13.7 Assume that A has full row rank. Let S = {x : Ax = b, x ≥ O}. Then
N
there exist vectors v 1 , . . . , v M and vectors w1 , . . . , wN such that S = { M i
i=1 ri v +
i
i=1 si w :
M
i=1 ri = 1, r ≥ O, s ≥ O}.
Proof. Let v 1 , . . . , v M be the set of basic feasible solutions and w1 , . . . , wM be the set of
basic feasible directions for S.
N M
First, let x = M i=1 si w where r, s ≥ O and i=1 ri = 1. Then x ≥ O since
i i
i=1 ri v +
all basic feasible solutions and basic feasible directions are nonnegative, and r, s ≥ O. Also
x ∈ S, since
M
N
Ax = A( ri v i + si w i )
i=1 i=1
M
N
= ri Av i + si Awi
i=1 i=1
M
N
= ri b + si O
i=1 i=1
M
= ( ri )b
i=1
= b.
104
Now, assume that x ∈ S but x cannot be written in the form x = M i
i=1 ri v +
N
i=1 si w
i
M
where i=1 ri = 1 and r, s ≥ O. We need to show that x ∈ S. Assume otherwise. Now we
are assuming that the following system is infeasible:
v 1 · · · v M w1 · · · wN r x
=
1 ··· 1 0 ··· 0 s 1
r, s ≥ O
But then there exists a vector [y T , t] such that
v 1 · · · v M w1 · · · wN
y T
t ≥ OT OT
1 ··· 1 0 ··· 0
and
x
T
y t <0
1
That is to say,
y T v i + t ≥ 0, i = 1, . . . , M
y T wi ≥ O, i = 1, . . . , N
yT x + t < 0
Let c = −y and consider the LP
max cT x
s.t. Ax = b
x≥O
The LP is feasible since x ∈ S. The LP is bounded since cT w ≤ 0 for all basic feasible
directions. Therefore the LP has an optimal basic feasible solution. But the above cal-
culations show that the objective function value of x exceeds that of every basic feasible
solution, which is a contradiction, since there must be at least one basic feasible solution
that is optimal. Therefore x can be written in the desired form after all. 2
Theorem 13.8 (Finite Basis Theorem) The same holds for systems of linear equations
and inequalities where some variables are free and others nonnegative. In particular, it holds
for a set of the form S = {x : Ax ≤ b}.
Proof. Convert any given system (I) to another (I ) consisting of equations and non-
negative variables by introducing new slack variables to convert inequalities to equations
and writing unrestricted variables as the differences of nonnegative variables. There is a
linear mapping from the feasible region of (I ) onto the feasible region to (I) (that mapping
which recovers the values of the originally unrestricted variables and projects away the slack
variables). The result now follows from the validity of the theorem for (I ). 2
105
Theorem 13.9 (Minkowski) Assume that A has full row rank. Let S = {x : Ax = O, x ≥
O}. Then there exist vectors w1 , . . . , wN such that S = { N
i=1 si w : s ≥ O}.
i
Proof. In this case there is only one basic feasible solution, namely, O (although there
may be many basic feasible tableaux). 2
Theorem 13.10 (Minkowski) The same holds for systems of linear equations and inequal-
ities with zero right-hand sides, where some variables are free and others nonnegative. In
particular, it holds for a set of the form S = {x : Ax ≤ O}.
N M
Theorem 13.11 If S is a set of the form { M i
i=1 ri v + i=1 si w i : i=1 ri = 1, r ≥ O, s ≥
O}, then S is also a set of the form {x : Ax ≤ b}.
Proof. Consider S = {(r, s, x) : M i N
i=1 ri v + i=1 si w
i
−x = O, Mi=1 ri = 1, r ≥ O,s ≥ O}.
i N
Then S = {(r, s, x) : i=1 ri v + i=1 si w −x ≤ O, i=1 ri v + i=1 si wi −x ≥ O, M
M i N i M
i=1 ri ≤
M
1, i=1 ri ≥ 1, r ≥ O, s ≥ O}. Then a description for S in terms of linear inequalities
is obtained from that of S by using Fourier-Motzkin elimination to eliminate the variables
r1 , . . . , r M , s 1 , . . . , s N . 2
N
Theorem 13.12 If S is a set of the form { i=1 si wi : s ≥ O}, then S is also a set of the
form {x : Ax ≤ O}.
Exercise 13.13 Illustrate Theorem 13.11 with the cube, having extreme
points {(±1, ±1, ±1)}, and also with the octahedron, having extreme points
{(±1, 0, 0), (0, ±1, 0), (0, 0, ±1)}. 2
I.e., x cannot be written as a convex combination of points in S other than copies of x itself.
106
Theorem 13.15 Let P = {x ∈ Rn : aiT x ≤ bi , i = 1, . . . , m} be a polyhedron and v ∈ P .
Then v is an extreme point of P if and only if dim span {ai : aiT v = bi } = n.
Proof. Let T = {ai : aiT v = bi }. Note that aiT v < bi for ai ∈ T . Assume that
dim span T < n. Then there exists a nonzero a ∈ Rn such that aT ai = 0 for all ai ∈ T .
Consider v ± εa for sufficiently small ε > 0. Then
aiT v = bi if ai ∈ T
aiT (v ± εa) = aiT v ± εaiT a =
aiT v ± εaiT a < bi if ai ∈ T
bk = akT v
m
= λi akT xi
i=1
m
≤ λi bk
i=1
= bk
This forces akT xi = bk for all ak ∈ T , for all i = 1, . . . , m. Hence for any fixed i we have
akT (v − xi ) = 0 for all ak ∈ T . Because dim span T = n we conclude v − xi = O for all i.
Therefore v is an extreme point of P . 2
107
1. Prove that S is affinely independent if and only if and only if there is no j such that
xj can be written as an affine combination of {xi ∈ S : i = j}.
2. Prove that S is affinely independent if and only if the set S = {(x1 , 1), . . . , (xm , 1)} ⊂
Rn+1 is linearly independent.
2
Definition 13.18 Let S ⊆ Rn . The dimension of S, dim S, is defined to be one less than
the maximum number of affinely independent points in S. (Why does this definition make
sense?)
aT x ≤ β (∗)
is a valid inequality for P defining F . Note that a = O since F is a proper face. There exist
n affinely independent points x1 , . . . , xn ∈ F . Consider the (n + 1) × n matrix
x1 · · · xn
1 ··· 1
108
This matrix has full column rank, so its left nullspace is one dimensional. One element of
this nullspace is (aT , −β). Assume that
dT x ≤ γ (∗∗)
is another valid inequality for P defining F . Then d = O and (dT , −γ) is another element
of the left nullspace. So there exists a nonzero number k such that (dT , −γ) = k(aT , −β).
Because P is full-dimensional, there exists a point w ∈ P such that dT w < γ. This implies
that k > 0, and thus (∗∗) is equivalent to (∗).
Now assume that F is not a facet and
aT x ≤ β (∗)
This matrix has full column rank, so its left nullspace is at least two dimensional. One
member of this nullspace is (aT , −β). Let (dT , −γ) be another, linearly independent, one.
Note that d = O; else γ must also equal zero. Also, (dT , −γ)(xi , 1) = 0, or dT xi = γ, for
i = 1, . . . , p. Define f = a + εd and η = α + εγ for a sufficiently small nonzero real number
ε.
Suppose that x ∈ F , so aT x = β. Then x can be written as an affine combination of
x1 , . . . , x p :
p
x= λi x1
i=1
p
λi = 1
i=1
Thus
p
T
d x = λi dT xi
i=1
p
= λi γ
i=1
= γ
Hence x ∈ F implies dT x = γ. Therefore x ∈ F implies f T x = η.
109
Now suppose x ∈ P \ F . Then aT x < β, so f T x < η if ε is sufficiently small.
Therefore f T x ≤ η is a valid inequality for P that also defines F , yet is not equivalent
to aT x ≤ β. 2
110
Proof. First observe that a = O and ai = O for all i. Let F be the set of points of P that
are tight for (∗). Suppose v ∈ F . Then
β = aT v
m
= λi aiT v
i=1
m
≤ λi bi
i=1
≤ β
From this we conclude that v is tight for each of the inequalities in (∗∗).
Since (∗) is facet-defining and P is full-dimensional, we can find n affinely independent
points v 1 , . . . , v n that are tight for (∗) and hence also for each inequality in (∗∗). The
(n + 1) × n matrix
v1 · · · vn
1 ··· 1
has full column rank, so the left nullspace is one-dimensional. The vector (aT , −β) is a
nonzero member of this nullspace, as is each of (aiT , −bi ), i = 1, . . . , m. Therefore for each i
there is a nonzero number ki such that ai = ki a and bi = ki β. Now since P is full-dimensional,
there is at least one point w ∈ P that is not in F . Thus aT w < β and aiT w < bi for all i. We
conclude each ki must be positive, and therefore that each inequality in (∗∗) is equivalent to
(∗). 2
Proof. It is clear that if one inequality is derivable from the others, then it must be
redundant. So assume the inequality akT x ≤ bk is redundant. Let A be the matrix with
111
rows aiT , i = k, and b be the vector with entries bi , i = k. Consider the dual pair of linear
programs:
min y T b − y0 bk
max t
s.t. y T A − y0 akT = OT
(L) s.t. Ax ≤ b (D)
y0 = 1
−akT x + t ≤ −bk
y, y0 ≥ O
P is nonempty so (L) is feasible (take t to be sufficiently negative).
Then (L) has nonpositive optimal value. Therefore so does (D), and there exists y such
that
y T A = akT
y T b ≤ bk
Therefore the inequality akT x ≤ bk is derivable from the others. 2
Proof. Assume that the inequality is facet-defining. If it were redundant, then by Theo-
rem 13.30 it would be derivable from the other inequalities. But then by Theorem 13.28 it
would be equivalent to some of the other inequalities, which is a contradiction.
Now assume that the inequality is not redundant. Then there is a point x∗ such that
aiT x∗ ≤ bi , i = k
akT x∗ > bk
Also, since P is full dimensional, by Lemma 13.26 there is a point x ∈ P satisfying all of the
inequalities describing P strictly. Consider the (relatively) open line segment joining x to x∗ .
Each point on this segment satisfies all of the inequalities aiT x < bi , i = k, but one point,
v, satisfies the equation akT x = bk . Choose n − 1 linearly independent vectors w1 , . . . , wn−1
orthogonal to ak . Then for ε > 0 sufficiently small, the n points v, v + εw1 , . . . , v + εwn−1 are
affinely independent points in P satisfying the inequality akT x ≤ bk with equality. Therefore
this inequality is facet-defining. 2
112
Proof. By Theorem 13.31, after all redundant inequalities are deleted, only facet-defining
inequalities remain. Now suppose
aT x ≤ β (∗)
is a facet-defining inequality that is not equivalent to any of the inequalities aiT x ≤ bi in the
system describing P . Expand the system by adding in (∗). Of course (∗) is valid for P , so
every point of P must satisfy (∗). Therefore (∗) is redundant in the expanded system, and
hence derivable from the original inequalities by Theorem 13.30. By Theorem 13.28 it must
be the case that one of the inequalities aiT x ≤ bi is in fact equivalent to (∗). 2
Exercise 13.33 Extend the results in this section to polyhedra that are not full-
dimensional. 2
113
14 Exercises: Linear Systems and Geometry
Exercise 14.1 Prove that every polyhedron has a finite number of faces. 2
convex if any convex combination of any finite collection of elements of S is also in S (i.e.,
S is closed under convex combinations).
Prove that S is convex if and only if any convex combination of any two elements of S is
also in S. 2
Exercise 14.3 Prove that the intersection of any collection (whether finite or infinite) of
convex sets is also convex. 2
Exercise 14.4 For a subset S ⊆ Rn , the convex hull of S, denoted conv S, is the intersection
of all convex sets containing S.
1. Prove that conv S equals the collection of all convex combinations of all finite collections
of elements of S.
2. Prove that conv S equals the collection of all convex combinations of all collections of
at most n + 1 elements of S.
2
2. There is a vector a and a scalar α such that aT x < α but aT v i ≥ α for all i; i.e., x can
be separated from v 1 , . . . , v M by a hyperplane,
but not both. 2
114
Exercise 14.7 Let P ⊆ Rn be a polyhedron and x ∈ P . Prove that x is an extreme point
of P if and only if x is a vertex of P . Does this result continue to hold if P is replaced by
an arbitrary subset of Rn ? By a convex subset of Rn ? 2
P
K={ sj z j , s ≥ O}.
j=1
S = {x : Ax ≤ b, x ≥ O}
is nonempty. Let
Ŝ = {αx : x ∈ S, α ≥ 0}.
3. Give an example in R2 to show that Ŝ need not be a finitely generated cone if b is not
required to be nonnegative.
115
Index
e, 44 constraint, binding, 9
constraint, linear, 6
affine combination, 107 convex combination, 76, 101, 114
affinely dependent, 107 convex hull, 114
affinely independent, 107 convex polyhedron, 103
alternatives, theorems of the, 13, 14, 22, convex set, 101, 114
23, 25–27, 47, 77 Cramer’s rule, 3
artificial variable, 69, 100 cycling, 65
basic feasible direction, 64, 77 cycling, avoiding by perturbation, 67
basic feasible solution, 54 Dantzig, George, 30
basic feasible solution, estimate of size, 76 defining inequality for a face, 108
basic point, 53 degenerate pivot, 64
basic tableau, 52 degenerate point, 64
basic variable, 51 dependent, affinely, 107
basis, 50, 51 derivable inequality, 110
basis, dual feasible, 56 diet problem, 44
basis, feasible, 54 dimension, 108
basis, optimal, 57 direction, basic feasible, 64, 77
basis, primal feasible, 54 direction, feasible, 44
binding constraint, 9 direction, normal basic feasible, 104
bizarre, opposite, standard, 40 dual basic feasible solution, 56
Bland’s pivot rule, 66 dual feasible basis, 56
bounded variable, 96 dual feasible tableau, 56
bounded variables, linear programs with, dual linear program, 30, 56
96 dual linear program, algebraic motivation,
characterization, good, 14, 23, 36 31
chessboard, 49 dual linear program, economic motivation,
column, pivot, 57 28
combination, affine, 107 dual linear program, geometric motivation,
combination, convex, 76, 101, 114 42
combination, nonnegative, 76 dual pivot, 81
complementary slackness, 36, 42, 73 dual ratio test, 82
complementary slackness, strong, 47, 77 dual simplex method, 81
cone, finitely-generated, 115 duality, 28, 44
116
duality theorems, 31, 38 fractional linear program, 46
duality, strong, 33, 35 free variable, 38, 96
duality, weak, 31 full-dimensional, 108
duals of general linear programs, 37 function, linear, 6
duals of linear programs in standard form,
29 Gaussian elimination, 2, 3, 13
good characterization, 14, 23, 36
edge, 108 gradient, 9
entering variable, 60 graph, Eulerian, 49
entry, pivot, 57
equation, linear, 6 halfspace, 6
equations, linear programs with, 93 hyperplane, 6
equations, systems of, 13 improper face, 108
equivalent inequalities, 108 independent, affinely, 107
equivalent linear program, 38 inequalities, equivalent, 108
equivalent tableau, 52 inequality, derivable, 110
estimate of size of basic feasible solution, inequality, linear, 6
76 inequality, redundant, 111
Eulerian graph, 49 infeasible linear program, 6
exposed point, 76 initial primal feasible tableau, 68
extreme point, 76, 106, 114, 115 integer linear program, 11
extreme vector, 76 irredundant system, 25
face, defining inequality for, 108 Lagrange multipliers, 45
face, improper, 108 largest coefficient pivot rule, 61
face, proper, 108 largest increase pivot rule, 61
facet, 106, 108 leaving variable, 60
Farkas Lemma, 26 linear constraint, 6
feasible basis, 54 linear equation, 6
feasible direction, 44 linear function, 6
feasible linear program, 6 linear inequalities, systems of, 13, 25, 103,
feasible region, 6 114
feasible region, unbounded, 6 linear inequality, 6
feasible solution, 6 linear program, 6, 9
feasible tableau, 54 linear program in standard form, 7
finite basis theorem, 105 linear program, dual, 30, 56
finitely generated cone, 115 linear program, equivalent, 38
Fourier-Motzkin elimination, 15, 21, 25 linear program, feasible, 6
117
linear program, fractional, 46 pivot, 57
linear program, infeasible, 6 pivot column, 57
linear program, integer, 11 pivot entry, 57
linear program, minimization, 100 pivot row, 57
linear program, primal, 30 pivot rule, Bland’s, 66
linear program, unbounded, 6, 32 pivot rule, largest increase, 61
linear programs with bounded variables, 96 pivot rule, smallest subscript, 61, 66
linear programs with equations, 93 pivot, degenerate, 64
linear programs with unrestricted vari- pivot, dual, 81
ables, 96 pivot, largest coefficient, 61
point, basic, 53
matrix algebra, 2 point, degenerate, 64
minimization linear program, 100 point, exposed, 76
Minkowski’s theorem, 106 point, extreme, 76, 106, 114, 115
nonbasic variable, 51 point, support of, 76
nonnegative combination, 76 point, tight, 108
norm, 3 polyhedron, 103, 114
normal basic feasible direction, 104 pricing out, 91
normal basic feasible solution, 96, 104 primal basic feasible solution, 54, 76, 77
primal feasible basis, 54
objective function, 6 primal feasible tableau, 54
objective function coefficients sensitivity primal linear program, 30
analysis, 88 proper face, 108
objective function coefficients, variable, 75
one hundred percent rule, 101 quadratic program, 48
opposite, standard, bizarre, 40 ratio test, 59
optimal basis, 57 ratio test, dual, 82
optimal dual basic feasible solution, 57 redundant inequality, 111
optimal primal basic feasible solution, 57, revised dual simplex method, 83
77 revised simplex method, 78
optimal solution, 6 right hand sides sensitivity analysis, 86
optimal tableau, 57 right hand sides, variable, 75
optimal value, 6 row, pivot, 57
perturbation to avoid cycling, 67 saddlepoint, 45
phase I, 77 sensitivity analysis, 85
phase I problem, 69, 100 sensitivity analysis, new constraint, 92
phase II problem, 70 sensitivity analysis, new variable, 91
118
sensitivity analysis, objective function co- tableau, basic, 52
efficients, 88 tableau, dual feasible, 56
sensitivity analysis, right hand sides, 86 tableau, equivalent, 52
shadow price, 86, 101 tableau, feasible, 54
simplex method, 50, 62, 74, 78, 101 tableau, initial primal feasible, 68
simplex method detects primal unbound- tableau, optimal, 57
edness, 62 tableau, primal feasible, 54
simplex method, dual, 81 termination of simplex method, 64
simplex method, revised, 78 theorems of the alternatives, 13, 14, 22, 23,
simplex method, revised dual, 83 25–27, 47, 77
simplex method, termination, 64 tight point, 108
slack variable, 50
smallest subscript pivot rule, 61, 66 unbounded feasible region, 6
solution, basic feasible, 54 unbounded linear program, 6, 32
solution, basic optimal, 57 unbounded variable, 96
solution, dual basic feasible, 56 unique optimal solution, 78
solution, dual basic optimal, 57 unrestricted variable, 38
solution, feasible, 6 unrestricted variables, linear programs
solution, geometric, 5 with, 96
solution, normal basic feasible, 96, 104 value, optimal, 6
solution, optimal, 6 variable objective function coefficients, 75
solution, optimal dual basic feasible, 57 variable right hand sides, 75
solution, optimal primal basic feasible, 57, variable, artificial, 69, 100
77 variable, basic, 51
solution, primal basic feasible, 54, 76, 77 variable, bounded, 96
solution, unique optimal, 78 variable, entering, 60
standard form, linear program in, 7 variable, free, 38, 96
standard, opposite, bizarre, 40 variable, leaving, 60
strong complementary slackness, 47, 77 variable, nonbasic, 51
strong duality, 33, 35, 73 variable, slack, 50
structure theorems, 103 variable, unbounded, 96
support of a point, 76 variable, unrestricted, 38
support of a vector, 76 vector, 2
systems of equations, 13 vector, extreme, 76
systems of linear inequalities, 13, 25, 103, vector, support of a, 76
114 vertex, 108, 115
tableau, 50 weak duality, 31, 57
119