0% found this document useful (0 votes)
609 views40 pages

Linear Programming: Optimization), Comparative Statics, and Dynamics, Let Us Return To The Problem of

This document discusses linear programming and provides two examples. 1) It presents a diet optimization problem that seeks to minimize cost while meeting daily nutrient requirements. This is modeled as a linear program with constraints and an objective to minimize cost. 2) The diet problem is solved graphically by plotting the constraints and objective function on a graph. The optimal solution occurs at the extreme point that intersects the lowest cost line within the feasible region defined by the constraints. 3) In general, linear programming involves optimizing a linear objective subject to linear constraints, allowing for inequality constraints. Graphical analysis can be used to find the optimal solution for problems with two variables.

Uploaded by

ansarabbas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
609 views40 pages

Linear Programming: Optimization), Comparative Statics, and Dynamics, Let Us Return To The Problem of

This document discusses linear programming and provides two examples. 1) It presents a diet optimization problem that seeks to minimize cost while meeting daily nutrient requirements. This is modeled as a linear program with constraints and an objective to minimize cost. 2) The diet problem is solved graphically by plotting the constraints and objective function on a graph. The optimal solution occurs at the extreme point that intersects the lowest cost line within the feasible region defined by the constraints. 3) In general, linear programming involves optimizing a linear objective subject to linear constraints, allowing for inequality constraints. Graphical analysis can be used to find the optimal solution for problems with two variables.

Uploaded by

ansarabbas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

18

LINEAR PROGRAMMING

Now that we have covered the entire analytical spectrum of statics (including
optimization), comparative statics, and dynamics, let us return to the problem of
optimization and present some relatively recent developments in that area of
analysis. These consist of mathematical programming (a general term covering
linear programming as well as nonlinear programming) and game theory.
Mathematical programming differs from classical optimization in that it
seeks to tackle problems in which the optimizer faces inequality constraints―
constraints in the form of, say, g(x,y) ≤ c rather than g(x,y) = c. As a specific
illustration, instead of requiring a consumer to spend the exact amount of $250,
the mathematical-programming framework will allow him the freedom of
spending either $250 or less if he chooses. By thus liberalizing the constraint
requirement, this new framework of optimization makes the problem at once
more interesting and more realistic. But it also calls for the development of new
methods of solution, since inequality constraints cannot be handled by the
classical techniques of calculus.
Game theory, the other development, departs from our earlier framework
of optimization in a still more radical way. Instead of seeking a maximum or
minimum value of a variable, the optimizer will be assumed to be looking for a
so-called “minimax” or “maximin” value. Thus, there is even to be a new
optimization criterion. However, as we shall see, even though it was developed
independently of mathematical programming, game theory nevertheless bears a
close relationship to the latter.
We shall first discuss the simpler variety of mathematical programming,
known as linear programming, in which the objective function as well as the
constraint inequalities are all linear.

Linear Programming 625


18.1 Simple Examples of Linear Programming

The essence of linear programming can best be conveyed by means of concrete


examples. We shall present two, with one illustrating minimization and the other
illustrating maximization.

a problem of diet To maintain his health, a person must fulfill certain


minimum daily requirements for several kinds of nutrients. Assume for the sake
of simplicity, that only three kinds of nutrients need to be considered: calcium,
protein, and calories. Also assume that the person’s diet is to consist of only two
food items, I and II, whose price and nutrient contents are as shown in Table
18.1, where we have also listed the minimum daily requirement for each nutrient.
Problem: What combination of the two food items will satisfy the daily require-
ments and entail the least cost?
If we denote the quantities of the two food items to be purchased each day
by x1 and x2 (regarded as continuous variables), the problem can be stated
mathematically as follows:

Minimize C  0.6 x1  x2
subject t o 10x1  4 x2  20
(18.1) 5 x1  5 x2  20
2 x1  6 x2  12
and x1 , x2  0

The first equation in (18.1), which is a cost function based on the price information
in Table 18.1, constitutes the objective function of the linear program; here the
function is to be minimized. The three inequalities that follow are the constraints
necessitated by the daily requirements; these are readily translated from the last

TABLE 18.1
Food I (per lb) Food II (per lb)
Minimum daily
Price ($) 0.60 1.00
requirement
Calcium (unit*) 10 4 20
Protein (unit*) 5 5 20
Calories (unit*) 2 6 12
* Hypothetical units are employed to allow the use of convenient round numbers in the example.

626 Mathematical Programming and Game Theory


three rows of the table. The reader will note that although it is forbidden to fall
below the daily requirements, the optimizer is (in view of the use of the weak
inequality signs ≥) allowed to exceed the minimum amounts indicated; it is this
feature that mainly distinguishes linear programming from the optimization
problems discussed earlier. Lastly, by means of the two additional inequalities
x1, x2 ≥ 0, referred to as nonnegativity restrictions, we bring into the open a
requirement which, on account of the limitations of the calculus, has to be left
implicit in the classical optimization framework, namely, negative purchases are
not permissible. It is also worth noting that our problem actually contains more
constraints than choice- variables. This is something that can never occur in
classical optimization problems but is now made feasible because the constraints
have been weakened from equalities to inequalities, and are thus much easier to
satisfy.
In short, then, there are three essential ingredients in a linear program: an
objective function a set of constraints, and a set of nonnegativity restrictions. The
reader will note that linearity prevails throughout because no variable is raised
to a power other than 1, or is multiplied by any other variable. It is this fact, of
course, that gives rise to the name linear programming.

the graphical solution Since our problem involves only two choice
variables, it is amenable to graphical analysis. In Fig. 18.1, let us plot x1 and
x2 on the two axes. Because of the nonnegativity restrictions, we need only to
consider the nonnegative quadrant.
To see what the constraints will entail graphically, let us first pretend that
the three constraints are given as equations and plot them as three straight lines
as seen in Fig. 18.1a. Each of these lines―labeled as calcium border, protein
border, and calorie border, respectively,―divides the quadrant into two nonover-
lapping regions. Since each constraint is of the ≥ type, only the points (ordered
pairs) lying in the northeast region or on the border line itself will satisfy the
particular constraint involved. To satisfy all three constraints simultaneously we
can thus accept only those ordered pairs (x1,x2) which do not lie to the southeast
of any border line we have constructed. The point (1,2), for instance, does satisfy
the calorie constraint, but it fails the other two; it is therefore unfeasible in our
linear program. On the other hand, all the points located in the shaded area in
diagram b do satisfy all three constraints simultaneously. For this reason, the
shaded area is called the feasible region and each point (ordered pair) in that
region is known as a feasible solution. It should be understood that the feasible
region includes the points on its (heavy) kinked boundary. In particular, the set
of points on the horizontal axis {(x1,x2) | x1 ≥ 6, x2 = 0}, as well as the set of
points on the vertical axis {(x 1,x 2 ) | x1 = 0, x 2 ≥ 5}, are also members of the

Linear Programming 627


FIGURE 18.1

feasible region Therefore, the feasible region can be considered as a closed set (of
ordered fairs), a concept which, akin to that of a closed interval means a set
that includes all its boundary points.
The reader will note that the kinked boundary of the feasible region is
composed of selected segments of the three constraint borders and of the axes.
Note also that, in our present (two-dimensional) case, the corner points on the

628 Mathematical Programming and Game Theory


boundary―to be referred to as extreme points―occur either at, the intersection
of two borderlines [e.g., (3,1) and (⅔,3⅓)] or at the intersection of one borderline
and one axis [e.g. (0,5) and (6,0)]. These extreme points will prove of great
significance in our solution.
The points in the feasible region represent the set of all food combinations
that satisfy all the constraints as well as the nonnegativity restrictions, but some
of these would entail a lower purchase cost than others. To minimize cost C, it
is necessary also to take the objective function into account. Writing the cost
function in the form
x2  C  0.6 x1
and taking C to be a parameter, we can plot this equation as a family of parallel
straight lines with the common slope of –0.6. Among these, three possible ones
are shown―as dashed lines―in Fig. 18.1b. Inasmuch as each of these corresponds
to a definite value of C, what have been drawn are in effect three isocosts. To
minimize cost, then, we must select the lowest possible isocost while still staying
in the feasible region. In Fig. 18.1b, such a selection leads us to the extreme point
(3,1). Thus, the optimal feasible solution (or optimal solution, for short) of our
linear program is (x̄ 1, x̄ 2) = (3,1). It follows that the minimized cost of diet,
calculated at the food prices given, will amount to C̄ = $2.80 per day. With this
steady daily diet of 3 lb of food I and 1 lb of food II, our hypothetical optimizer
may very well get tired of eating, but as far as the cost of living is concerned,
the optimal combination certainly cannot be topped.
As described the diet-problem is nothing but a modified version of the
least-cost-combination problem. The isocost idea is entirely the same as before,
but the smooth isoquant encountered before is now replaced by a feasible region
with a kinked boundary. As a result of this, the idea of point of tangency in
differential calculus must be given up in favor of what may be termed the point
of contact. In Fig. 18.1b, the point of contact is an extreme point on the boundary.
This fact, let us point out, is no mere coincidence. As we shall show below, the
optimal solutions of all linear programs are always to be found at extreme
points. Since an extreme point always represents the intersection of two constraint
borders (or of one border and one axis), we can, after pinpointing the optimal
corner, find the- optimal solution (x̄ 1, x̄ 2) by simultaneously solving the equations
of the two relevant intersecting lines. In our present example, the optimal corner
is at the intersection of the protein and calorie borders. Thus, by solving the
following two equations
5 x1  5 x2  20
2 x1  6 x2  12
we can find (x̄ 1, x̄ 2) = (3,1).

Linear Programming 629


The reader should note that while this solution exactly fulfills the require-
ments for protein and calorie, it overfulfills the calcium requirement. This is a
situation that cannot possibly arise if all the constraints are strict equations.

effect of price changes Let us now pose a comparative-static question:


What will happen to the optimal solution if food prices P1 and P2 are changed?
Since the slope of the isocosts is measured by the ratio –P1/P2 (in our example,
–0.60/1.00 = –0.6), the immediate effect of price changes will be upon the
isocosts. But several possibilities may arise.
First, if the two prices change in exactly the same proportion, then the
slope of the isocosts will remain unchanged. In that event, the original optimal
solution (x̄1, x̄2) must continue to prevail although the cost figure C̄ will, naturally,
rise or fall pari passu with P1 and P2.
Second, the two prices may change by different proportions, but the
difference may be relatively minor. In such a case, the slope of the isocosts will
undergo a small change, say, from –0.6 to –0.4 or to –0.8. As the reader can
verify―by drawing a family of isocosts with slope –0.8 in Fig. 18.1b―a slope
change of this magnitude will still leave the original optimal solution unaffected.
Thus, unlike the point of tangency in differential calculus, the point of contact
(the optimal corner) is insensitive to small changes in the price parameters.
As yet another possibility, suppose that both prices now become equal, say,
at P1 = P2 = 1. Then the isocosts, now having a slope of –1, will be parallel
to the protein border. The lowest possible new isocost will then contact the
feasible region not at a single point but along an entire edge of its boundary, with
the result that each point on the line segment extending from (3,1) to (⅔,3⅓) is
equally optimal. As far as the optimizing individual is concerned, the multiple-
optimum phenomenon poses no problem; on the contrary, it may be counted as
a blessing because it can now make possible some variation in his menu. But,
for us, this phenomenon seems to call for a retraction of our earlier statement
that optimal solutions are always to be found at extreme points. A moment’s
reflection will indicate, however, that we are still on safe ground, for even in this
multiple-optimum case, an optimal solution has occurred at a corner―say, at two
corners! In fact, if we confine our attention to extreme points only, we run no
risk of missing any better solution. We shall find that it is this line of thinking
which underlies the so-called “simplex method” of solution to be introduced
below.

a production problem Let us turn next to another simple example, this


time in the realm of production.

630 Mathematical Programming and Game Theory


The assumptions are as follows: A business firm produces two lines of
product, I and II, with a plant that consists of three production departments:
cutting, mixing, and packaging. The equipment in each department can be used
for 8 hr a day; thus we shall regard 8 hr as the daily capacity in each department.
The process of production can be summarized as follows: (1) Product I is first
cut, then packaged. Each ton of this product uses up ½ hr of the cutting capacity
and ⅓ hr of the packaging capacity. (2) Product II is first mixed, then packaged.
Each ton of this product uses up 1 hr of the mixing capacity and ⅔ hr of the
packaging capacity. Finally, products I and II can be sold at prices of $80 and
$60 per ton, respectively, but after deducting the variable costs incurred, they
yield on a net basis $40 and $30 per ton. These latter amounts may be considered
either as net-revenue figures (net of variable costs) or as gross-profit figures
(gross of fixed costs). For simplicity, we shall refer to them here as “profits per
ton.” Problem: What output combination should the firm choose in order to
maximize the total (gross) profit?
To answer this, we may first arrange the given information in tabular form,
as in Table 18.2, and then translate the problem into the following linear program
in the two continuous choice variables x1 and x2:

Maximize π  40x1  30x2


subject t o x1  16 [cutting const raint]
(18.2) x2  8 [m ixing const raint]
x1  2 x2  24 [ packagingconst raint]
and x1 , x2  0

Note that, although the cutting constraint should, according to Table 18.2, be
½x1 ≤ 8, we have multiplied both sides by 2 to get rid of the fractional expression.

TABLE 18.2
Hours of processing
needed per ton of
Daily capacity
Product I Product II
(hours)
Cutting ½ 0 8
Mixing 0 1 8
Packaging ⅓ ⅔ 8

Profit per ton $40 $30

Linear Programming 631


x2

12
Cutting
border
(8, 8 x 1 = 16

Mixing (16,4)
4 border Packaging
x2 = 8 border
x 1 + 2 x 2 = 24

x1
0
0 4 8 12 16 20 24
(a )

x2

12

(8, 8
8

Feasible (16,4)
4
region

x1
0
0 4 8 12 16 20 24
(b )

FIGURE 18.2

Similarly, we have modified the packaging constraint by a multiplier of 3. The


problem encountered is now one of maximization. Also, the constraints are now
of the ≤ type, for even though we can never exceed the capacity, we are
nevertheless free to leave part of it idle. However, the nonnegativity restrictions
still appear in the same form as in the minimization problem.

the graphical solution The linear program in (18.2) can again be solved
graphically, as is shown in Fig. 18.2. By virtue of the nonnegativity restrictions,
the problem is again confined to the nonnegative quadrant in which we can draw
three constraint borders. The cutting border (x1 = 16) and the mixing border

632 Mathematical Programming and Game Theory


(x2 = 8) plot, respectively, as a vertical line and a horizontal line in Fig. 18.2a,
whereas the packaging border spears as a slanting line that intersects the other
two borders at the points (16,4) and (8,8).
Our constraints being of the ≤ type, the feasible region will this time
consist of the set of points which meet the following three locational specifications
simultaneously: (1) on or below the mixing border, (2) on or to the left of the
cutting border, and (3) on or below the packaging border. The set of all qualified
points is graphically represented by the shaded area in Fig. 18.2b. Since the
boundary points on all sides of this area are feasible as well as the interior points,
the feasible region is a closed set. In the present case, the set is also said to be
strictly bounded, which means, roughly speaking, that the shaded area is capable
of being “packed” into a box of a definite size. (In contrast, the feasible region
in Fig. 18.2b is only bounded from below.)
Finally, let us consider the objective function. Rewriting the latter as
π 4
x2   x1
30 3
and taking π to be a parameter, we may plot this equation as a family of straight
lines with the common slope of –4⁄3, three of which are shown (as dashed lines)
in diagram b. Since each of these is associated with a specific value of the profit
parameter π, we may call them isoprofits. Our objective, of course, is to attain
the highest possible isoprofit while still remaining in the feasible region. Thus we
must select the extreme point (16,4) as representing the best output combination.
That is, the optimal solution is x̄1 = 16 tons per day, and x̄2 = 4 tons per day.
Substituting these values into the objective function, we can then find the
maximized profit to be π̄ = $760 per day.
The reader will note that, while the cutting and packaging constraints are
exactly fulfilled by the solution (16,4), the mixing constraint is not; to maximize
profit, part of the mixing capacity is to be left unused. Such a result will be
inconceivable if the constraints are all in the form of strict equations.
Speaking of the form of constraints, we should mention that, although the
constraints in the above two examples are either all of the ≤ type (maximization
problem) or all of the ≥ type (minimization problem), they need not always be
so. It may be desired, for example, to restrict the calorie intake in the diet
problem by the dual constraint of “no less than 2000” (for health) and “no more
than 3500” (for weight control), in which case both types of inequalities will
appear. But this will not affect our method of solution, for in (18.2) we have
already seen the ≥ type of nonnegativity restrictions capable of coexisting with
the ≤ type of capacity constraints. When both types of constraints are present,
however, there does arise the possibility of inconsistent constraints; if, in the case
of Fig. 18.3a, the problem requires us to be above border I and yet also to be

Linear Programming 633


x2 x2

An equational
constraint

Border II

Border I
x1 x1
0 (a ) 0 (b )

FIGURE 18.3

below border II, the feasible region will be a null set, and the problem cannot
be solved.
A linear program may in fact also include one or more equational constraints.
Figure 18.3b shows a (shaded) feasible region similar to the one in Fig. 18.2b, but
if an equational constraint is added, the set of feasible solutions will shrink from
the shaded area to the dotted-line segment―the intersection of the shaded area
and the new constraint line. Nevertheless, the same method of solution will apply.

18.2 General Formulation of Linear Programs


The two examples of the preceding section illustrated the case of two choice
variables and three constraints. When there are n choice variables and m con-
straints instead, the linear program will still take the same general form―with a
linear objective function, a set of linear-inequality constraints, and a set of
nonnegativity restrictions as its major ingredients. The generalized n-variable
linear program can be stated in three alternative ways: in longhand, in Σ
notation, or in matrix notation.

longhand When completely written out, a maximization program in n


variables and subject to m constraints will appear as follows:

634 Mathematical Programming and Game Theory


Maximize π  c1 x1  c2 x2  ...  cn x n
subject t o a11x1  a12 x2  ...  a1n xn  r1
a21x1  a22 x2  ...  a2 n xn  r2
(18.3)
... ... ... ... ...
am1 x1  am 2 x2  ...  amn xn  rm
and xj  0 ( j  1, 2, ..., n)

In (18.3), we have borrowed the π symbol from the production example to serve
as a general symbol for the maximand (the object to be maximized), even though
in many contexts the objective function, may be something other than a profit
function. The choice variables are denoted by xj (with j = 1, 2, ..., n), and their
coefficients in the objective function are symbolized by cj (with j = 1, 2, ..., n),
which are a set of given constants. The ri symbols (i = 1, 2, ... , m)―another
set of constants―represent, on the other hand, the “restrictions” imposed in the
program. For the sake of uniformity, we have written all the m constraints as ≤
inequalities, but no loss of generality is thereby entailed. In particular, it may
be noted that, in case a ≥ constraint appears, we can always convert it into the
≤ form simply by multiplying both sides by –1. Lastly, the reader will note
that the coefficients of the choice variables in the constraints are denoted by aij,
where the double subscripts can serve to pinpoint the specific location of each
coefficient. Since there are altogether m constraints in n variables (where m can
be greater than, equal to, or less than n), the coefficients aij will form a rectangular
matrix of dimension m × n.
Analogously, a minimization problem may be written in longhand as
follows:
Minimize C  c1 x1  c2 x2  ...  cn xn
subject t o a11x1  a12 x2  ...  a1n xn  r1
a21x1  a22 x2  ...  a2 n xn  r2
(18.4)
... ... ... ... ...
am1 x1  am 2 x2  ...  amn xn  rm
and x j  0 ( j  1, 2, ..., n)
Again, we have borrowed the C symbol from the diet problem to serve as a
general symbol for the minimand (the object to be minimized), even though the
objective function in many contexts may not be a cost function. The cj in the
objective function still represent a set of given constant coefficients, as are rj in
the constraints, but the symbol r in the present context will signify requirements
rather than restrictions. The symbolism for the choice variables and the

Linear Programming 635


coefficients in the constraints has been retained intact. The constraints, however,
now appear as ≥ inequalities.

Σ notation A substantial saving in space can be achieved by expressing the


linear programs (18.3) and (18.4) in Σ notation:
n
Maximize π   c j x j
j 1
n
subject to  aij x j  rj (i  1, 2, ..., m)
j 1
and x j  0 ( j  1, 2, ..., n)
and similarly,
n
Minimize C   c j x j
j 1
n
subject t o  aij x j  rj (i  1, 2, ..., m)
j 1
and x j  0 ( j  1, 2, ..., n)
Though concise, statements written in Σ notation are inconvenient to
operate upon mathematically; therefore we shall not make use of them below.

matrix notation To see how matrix notation can be applied, let us first
define the following four matrices:
 c1   x1   a11 a12 ... a1n   r1 
c  x  a a22 ... a2 n  r 
(18.5) c   2 x   2 A   21 r  2
 ...  ...   ... ... ... ...   ... 
       
cn   xn  am1 am 2 ... amn  rm 
Three of these are column vectors―c and x being of dimension n × 1, but r
being m × 1. Matrix A is an m × n array.
Upon these definitions, the objective function in (18.3) can be expressed by
the equation
π  c' x
(1 n ) ( n1)
where, it will be recalled, the vector product c'x is 1 × 1 and, therefore,
represents a scalar. It is in regard to the m constraints, however, that the
advantage of matrix notation manifests itself distinctly for the entire set of
constraints in (18.3) can be summarized in a single inequality as follows:
A x  r
( m n ) ( n1) ( m1)

636 Mathematical Programming and Game Theory


Here, the inequality sign is to be interpreted to mean element-by-element
inequality, that is, the ith row of matrix Ax is to be less than or equal to the
ith row of matrix r, for every i. Similarly, we can express the n nonnegativity
restrictions by the single inequality
x  0
( n1) ( n1)
In short, the linear program in (18.3) is expressible concisely in the form
Maximize π = c'x
(18.3) subject to Ax ≤ r
and x ≥0
By the same token, it is possible to state the minimization program in (18.4) in
the following simple form:
Minimize C = c'x
(18.4) subject to Ax ≥ r
andx≥ 0

toward a method of solution In the two-variable case (n= 2), the


graphical method of solution can lead us to an optimal solution without difficulty.
This is true regardless of the number of constraints present in the linear program,
because additional constraints can increase only the number of extreme points,
but not the dimension of the diagram. When there are three choice variables,
however, the method becomes unwieldy, for a three-dimensional graph will be
required. And, for the general n-variable case, the method completely breaks
down! We must therefore search for a nongraphical method of solution that can
apply to any number of variables.
First, let us see how the procedure of solution of the two-variable case
should normally extend to the n-variable context. For the case of n = 2, our
field of operation is a 2-space (a plane). By virtue of the nonnegativity restrictions
and the constraints, however, we are able to narrow the field down and simply
focus our attention on the feasible region, a subset of the 2-space. Then, via the
objective function, we finally locate a particular point (x̄1, x̄2) in that subset as
the optimal solution. For the general n-variable case, we must work instead with
an n-space, in which each point represents an ordered n-tuple―(x1, x2, ... , xn)
―or an n-vector. The nonnegativity restrictions will now confine us to the non-
negative orthant (the n-dimensional analog of the nonnegative quadrant), and the
constraints will together delineate a subset of the nonnegative orthant as the
feasible region. Then, finally, by means of the objective function, we can locate


The inequality sign ≤, when applied to numbers, is often used interchangeably with the sign ≤. When applied
to vectors, however, the two signs may be assigned different meanings. For a discussion, see Kelvin Lancaster,
Mathematical Economics, The Macmillan Company, New York, 1968, p. 250.

Linear Programming 637


e

a g

c
d h

FIGURE 18.4

a particular point in the feasible region―(x̄1, x̄2, ... , x̄n)―as the optimal
solution.
As was intimated earlier, however, the optimal solution is always to be
found at one of the extreme points of the feasible region: as will be explained
below, this happens to be true even for the n-variable case. Consequently,
instead of finding the entire feasible region, all we need is a method of deter-
mining the set of all extreme points, from among which we can then select the
optimal solution.
This convenient result is based on the fact that, regardless of the number
of choice variables the feasible region in a linear program is always what is
referred to as a closed convex set. Since the theory of convex sets plays a significant
part in mathematical programming (and in game theory), it is advisable to get
acquainted with it before proceeding to the development of a method of solution
for the general n-variable linear program.

18.3 Convex Sets

Generally speaking, a set can be a collection of any kind of objects but in the
present context our concern is one with sets of points in an n-space, which
includes, as special cases, points on a line (1-space)) and, points in a plane (2-space).
Since a point in an n-space may also be considered an n-tuple or an n-vector,
point sets are also sets of n-tuples or of n-vectors. Convex sets represent a special
genre of point sets.

638 Mathematical Programming and Game Theory


the geometric definition In a 2-space or 3-space, a convex set can be
defined geometrically as a set with the property that, for any two points in the
set, the line segment connecting these two points is also in the set.
It should be obvious that a straight line fulfills this definition and constitutes
a convex set. By convention, a single point is also considered a convex set, and
so is a null set (no point). For additional examples, let us look at Fig. 18.4. The
disk―i.e., the “solid” circle, or a circle plus all the points within it―is a convex
set, because a line joining any two points in the disk lies also in the latter. This
is exemplified by line ab, which links two boundary points, and line cd, which
joins two interior points. Note, however, that a (hollow) circle is not in itself a
convex set. Similarly, a triangle (or a pentagon) is not in itself a convex set, but
its solid version is.
Reference has already been made to boundary points as against interior
points. In particular, a boundary point which does not lie on a line segment
between any other two points in the convex set, such as point e, is called an
extreme point. An extreme point must be a boundary point, but the converse is
not true. For instance, point f is a boundary point, but since it lies on a line
segment in the set, it does not qualify as an extreme point. The set of all extreme
points must therefore be a subset of the set of all boundary points. It is interesting
to note that, in the special case of a disk, all the boundary points happen to be
extreme points as well.
The remaining two solid figures in Fig. 18.4 are not convex sets. The
palette-shaped figure is reentrant, and thus a line segment such as gh does not
lie entirety in the set. In the key-shaped figure, moreover, we find not only the
feature of reentrance but also the presence of a hole, which is yet another cause
of nonconvexity. Generally speaking, to qualify as a convex set, the set of points
must contain no holes, and its boundary must not be indented anywhere.
The geometric definition of convexity also applies readily to point sets in a
3-space. For instance, a solid cube is a convex set, whereas a hollow cylinder is
not. When a 4-space or a space of higher dimension is involved, however, the
geometric interpretation becomes less obvious. Let us therefore turn to the
algebraic definition of convex sets.

the algebraic definition To this end, it is essential to introduce the


concept of convex combination of vectors (points), which is a special type of linear
combination.
A linear combination of two vectors u and v can be written as
k1u  k2v
where k1 and k2 are two scalars. When these two scalars are such that they both
lie in the closed interval [0,1] and add up to unity, the linear combination is a
convex combination which can thus be defined as the combination

Linear Programming 639


(18.6) ζu  (1  ζ )v (0  ζ  1)

1  2 2  4

As an illustration, the combination 3 0 3 9 is a convex combination. In
view of the fact that these two scalar multipliers are positive fractions adding up
to 1, such a convex combination may be interpreted as a weighted average of the
two vectors.1
The unique characteristic of the combination in (18.6) is that, for every
acceptable value of ζ, the resulting sum vector always lies on the line segment
connecting the points u and v. This can be demonstrated by means of Fig. 18.5,

x2

u
(u 1 , u 2 )

q
v
(v 1 , v 2 )
ζq

x1
0

FIGURE 18.5

u  v 
where we have plotted two vectors u   1  and v   1  as two points with
u2  v2 
coordinates (u1, u2) and (v1, v2), respectively. If we plot another vector q such that
Oquv forms a parallelogram, then we have (by virtue of the discussion in Fig. 4.3)
u  q  v or q  u  v
It follows that a convex combination of vectors u and v (let us call it w) can be
expressed in terms of vector q, because
w  ζu  (1  ζ )v  ζu  v  ζv  ζ (u  v)  v  ζq  v

1
The reader will recall that this interpretation has been made use of earlier, in the discussion of concave and
convex functions in Sec. 11.4.

640 Mathematical Programming and Game Theory


f (x ) g (x )

f (x )

k k

g (x )

x x
0 0

Ser S ≤ Ser S ≥
(a ) (b )

FIGURE 18.6

Hence, to plot the vector w we can simply add ζq and v by the familiar paral-
lelogram method. If-the scalar ζ is a positive fraction, the vector ζq will merely
be an abridged version of vector q; thus ζq must lie on the line segment Oq.
Adding ζq and v, therefore, we must find vector w lying on the line segment uv,
for the new, smaller parallelogram is nothing but the original parallelogram with
the qu side shifted downward. The exact location of vector w will, of course, vary
according to the- value of the scalar ζ; by varying ζ from zero to unity, the
location of w will shift from v to u. Thus the set of all points on the line segment
uv, including u and v themselves, corresponds to the set of all convex combina-
tions of vectors u and v.
In view of the above, a convex set may be defined as follows: A set S is
convex if and only if, for any two points u  S and v  S, and for every scalar
0 ≤ ζ ≤ 1, it is true that w = ζu + (1 – ζ)v  S. This definition is applicable
regardless of the dimension of the space in which the vectors u and v are located.

convex set versus convex function Even though the identical word
convex appears in both the term convex set and the term convex function, it has a
widely different connotation in each context. In describing a set, the word convex
is concerned with whether the set has any holes in it, whereas, in describing a
function, the word has to do with how a curve or surface bends. What, then, is
the rationale for using the same adjective? The answer will become clear if we
compare the definition of convex set (given in the preceding paragraph) with that
of convex function [see (11.14) and the ensuing sentence]. As the reader will note,
both definitions depend on the concept of convex combinations (weighted

Linear Programming 641


averages) of vectors (points), and this makes the word convex an appropriate
adjective in both contexts.
Aside from the similarity of their names, the concepts of convex set and
convex function are related in the sense that the former can be generated by the
latter in a certain manner. Specifically, given a convex function, f(x), and some
constant, k, we can always identify an associated convex set, S≤, defined as
follows
(18.7) S   {x | f ( x)  k} [ f ( x) convex]
As illustrated in Fig. 18.6a, the set S≤ consists of all the x values corresponding
to the segment of the f(x) curve lying on or below the broken horizontal line.
Hence it is the line segment on the horizontal axis marked by the heavy dots,
which constitutes a convex set. Note that if the value of the constant k is changed,
the definition (18.7) will yield a different line segment, but in any case the result
will be a convex set.
Going a step further, we may observe that, even if we are given a concave
function instead, say, g(x), along with some constant, k, we can still generate an
associated convex set, S≤. But the definition of this convex set will differ from
(18.7):
(18.8) S   {x | g ( x)  k} [ g ( x) concave]
in which the ≥ sign wears instead of ≤. Geometrically, as shown in Fig. 18.6b,
the set S≥ contains all the x values corresponding to the segment of the g(x)
curve lying on or above the broken horizontal line. Thus it is again a line segment
on the horizontal axis―a convex set.
In the above discussion we have for simplicity stated the definitions of sets
S≤ and S≥ in terms of functions of a single variable, f(x) and g(x). However, the
underlying idea can be extended in a straightforward manner to functions of
several variables. (See Exercise 18.3-8.)

convex sets in linear programming The major ingredients of a linear


program are the objective function and its m constraints and n nonnegativity
restrictions. It turns out that each of these gives rise to a convex set. Moreover,
the feasible region is also a convex set.
The objective function always comes in a linear form. For any given value
of π (or C), it takes these general forms:
2  space π0  c1 x1  c2 x2 [giving a line]
(18.9) 3  space π0  c1 x1  c2 x2  c3 x3 [giving a plane]
n  space π0  c1 x1  c2 x2  ...  cn xn [giving a hyperplane]

642 Mathematical Programming and Game Theory


Lines and planes―special cases of hyperplanes―are easily seen to be convex
sets. Let us now demonstrate that a hyperplane in an n-space is also a convex set.
Let the set of points that satisfy (18.9) be called the set H; then each point
in H will be on the hyperplane defined by the said equation.1 If we select any
two points u and v in the set H, with coordinates (ul, u2, ... , un) and
(vl, v2, ... , vn), respectively, then, since these coordinates satisfy the equation
(18.9), we must―by substituting ui for xi and doing the same for vi―find the
following to be true:
π 0  c1u1  c2u 2  ...  cn un
(18.10)
π 0  c1v1  c2 v2  ...  cn vn
In the more succinct vector notation these can be written as
(18.10) π0  c' u and π0  c' v
To prove the set H to be convex, it is necessary to show that any convex
combination of u and v (call it w) will be in the set H also. That is, w must satisfy
(18.9), so that we may validly write π0 = c'w. The required demonstration is
relatively simple. Since
c' w  c' [ζu  (1  ζ )v]  c' ζu  c' (1  ζ )v [distributive law]
 ζc' u  (1  ζ )c' v [scalar multiplication is commutativ e]
 ζπ 0  (1  ζ )π 0 [by (18.10' )]
 π0
the convex combination w is in the set H, for any value of ζ in the closed interval
[0,1]. Consequently, the set H is indeed convex. In fact, H is a closed convex
set, since every point on the hyperplane is a boundary point, and the set H does
contain all its boundary points.
Considered in relation to the n-space in which it is located, a hyperplane
always serves to divide the n-space into two half spaces. In the 2-space case, for
example, a straight line will divide the coordinate plane into 2 two-dimensional
halfspaces, one to each side of the line―as we have seen from the borders
constructed in Figs. 18.1 and 18.2. An n-space can be similarly divided into two
n-dimensional halfspaces, but it takes a hyperplane to do it. Depending on
whether or not the dividing hyperplane is considered as part of the halfspace in
1
While a formal definition of the set H calls for the expression
H  {( x1 , x 2 ,..., xn ) | π 0  c1 x1  ..  cn xn }

or, in vector notation,


H  { x | π 0  c' x} [by (18.5)]

the set H (the hyperplane) can be more simply specified by (18.9) or by its vector version, π0 = c'x.

Linear Programming 643


question, we may have either an open or a closed halfspace. For instance, if we
write the two inequalities
c' x  9 and c' x  9
the former will define an open halfspace lying to one side of the hyperplane
c'x = 9, whereas the latter will define a closed halfspace containing the points
lying to the other side of the said hyperplane as well as the points on the
hyperplane itself.
In view of the above, every constraint in (18.3) and (18.4) is seen to define
a closed halfspace. Furthermore, so does every nonnegativity restriction, for the
inequality (say) x1 ≥ 0 is but a special case of the constraint
(18.11) a11x1  a12 x2  ...  a1n xn  r1
with a11 = 1 and all the other coefficients (including rl) set equal to zero. It
happens that each of these closed halfspaces is again a convex set.
The validity of this last statement is fairly obvious in the 2-space case. In
Fig. 18.1, the set of points lying on or to the right of any constraint border is a
convex set because the line segment joining any two points therein must be in
the set, too. Let us now demonstrate that a closed halfspace in an n-space is also
convex. Consider the closed halfspace defined by the inequality (18.11), which is
alternatively expressible in vector notation as
(18.11) a' x  r1 (where a'  [a11 a12 ... a1n ])
Let u and v be any two points in that halfspace. Then, since u and v both satisfy
(18.11), it follows that
a' u  r1 and a' v  r1 [cf (18.10' )]
For any scalar 0 ≤ ζ ≤ 1, moreover, we may deduce that
(18.12) ζa' u  ζr1 and (1  ζ )a' v  (1  ζ )r1
Now let w = ζu + (1 – ζv) be a convex combination of u and v. If w can be
shown to satisfy (18.11) also, then the halfspace in question must be convex. For
this purpose, we need to form the vector product a'w:
a' w  a' [ζu  (1  ζ )v]  ζa' u  (1  ζ )a' v
But, by virtue of (18.12), it is clear that
a' w  ζr1  (1  ζ )r1 or a' w  r1
Thus the convex combination w, like u and v, also satisfies (18.11). This proves
that a closed halfspace in an n-space is a (closed) convex set.
Pursuing this line of reasoning a bit further, we can also establish the
feasible region of a general n-variable linear-program to be a closed convex set.

644 Mathematical Programming and Game Theory


S
T
S T

FIGURE 18.7

As a preliminary, the reader will note that the feasible region always represents
the intersection of a total of m + n closed convex sets. In general, any point in
the feasible region must by definition simultaneously satisfy a system of m + n
linear (weak) inequalities―the m constraints plus the n nonnegativity restric-
tions. Thus it must simultaneously be a member of m + n closed halfspaces,
i.e., must be a point in the intersection of those m + n closed convex sets. This
being the case, the following theorem will establish the feasible region as a closed
convex set: The intersection of a finite number of convex sets is a convex set,
and if each of the sets is closed, the intersection will also be closed.
The essence of this theorem can be grasped from Fig. 18.7, where the set S
(a solid square) and the set T (a solid triangle) are both convex. Their intersection
S  T, represented by the heavy-shaded area, evidently is also convex. Moreover,
if S and T are both closed, then S  T will also be closed, because the boundary
points of the intersection set, which are merely a subset of the boundary points
of S and of T, do belong to the intersection set.1
For a formal proof of this theorem, let u and v be a ny two points2 in the
intersection of two convex sets S and T. This means that
u, v  S and concurrently u, v T
If w is any convex combination of u and v then since S is convex by assumption,
we must find w  S. Similarly, since T is also assumed convex, it is true that
w  T. But the concurrent membership in S and T implies that w  (S  T); that
is, any convex combination of u and v will, like u and v themselves, be in the
intersection set. This proves that the intersection is convex. By repeating the
process, it can then be proved that the intersection of any finite number of
convex sets must be a convex set.

1
Observe that the union of two convex sets is not necessarily convex. In Fig. 18.7, the union set S  T consists
of the entire shaded area, which is reentrant.
2
The special case of ST being a null set or a set with only one point are trivial, because such sets are
considered to be convex by convention.

Linear Programming 645


extreme points and optimal solution Two major results that emerge
from the foregoing are: 1) For any given value of π (or C), the objective function
of an n-variable linear program always defines a hyperplane, which is a closed
convex set. (2) The feasible region, being the intersection of m + n closed
halfspaces, is also a closed convex set―call it set F. These two results may now
be related to each other.
In attempting to optimize, it is always our purpose to “push” the objective
hyperplane―by varying the value of π or C―either to the highest possible
position (to attain π̄), or to the lowest possible position (to attain C̄), while still
staying in the set F. When the optimal position is reached, the optimal hyperplane
H̄ can contain no interior points of the set F, for if it does we can always “push”
it farther, to attain a better position. Thus only the boundary points of the set F
can appear in the intersection set H̄  F. This leads us to the concept of
supporting the hyperplanes.
x3
x2

f Line 1 u

Line 2 H

Line 3
F
g 0
x2
F
h
x1
x1
0 (b )
(a )

FIGURE 18.6
A supporting hyperplane, (say, H̄) is a hyperplane which has one or more
points in common with a convex set (F) but which is so situated that the set F
lies on one side of H̄ exclusively. Figure 18.8 illustrates this concept for the
2-space and 3-space cases. In diagram a, lines 1, 2, and 3 are examples of
supporting hyperplanes (here, lines). Line 1 (or line 2) has only one point in
common with the solid polygon F, but line 3 has several. In either case, however,
the set F lies exclusively on one side of the supporting line; consequently, only
boundary points of F can appear on each of these lines. Note that each supporting
line contains at least one extreme point of the set F, such as f, g, and h. The
3-space illustration in diagram b is similar, except that the supporting line is now
replaced by a supporting plane. Again, the intersection of H̄ and F (this time a
solid polyhedron) can consist only of the boundary points of F; as illustrated,
only one point (u) is involved, and that point is an extreme point of the set F.

646 Mathematical Programming and Game Theory


For the general n-space case, the essence of the discussion concerning
Figure 18.8 finds embodiment in the following two theorems:

THEOREM I Given u, a boundary point of a closed convex set, there is at


least one supporting hyperplane at u.

THEOREM II For a closed convex set bounded from below, there is at least
one extreme point in every supporting hyperplane.

The relevance of these to linear programming is obvious. When we attain


an optimal solution, the objective hyperplane-representing the optimal isoprofit
or isocost―will be a supporting hyperplane. According to Theorem I, every
boundary point of the feasible region is a possible candidate for the optimal
solution. But Theorem II narrows down the problem by enabling us to confine
our attention to extreme points only. For even though there may be nonextreme
boundary points present in the same supporting hyperplane, they are associated
with the same π (or C) value and, accordingly, are no better than the extreme
points and can be disregarded without any loss.
This simple but important fact is used to good advantage in the simplex
method of solving an n-variable linear program, originally developed by George
B. Dantzig,1 which we shall explain in the next section. A simplex is a sort of
n-dimensional analog of a triangle with corners that represent extreme points,
and the simplex method provides a systematic procedure whereby we can
move from one extreme point of the feasible region to another, till the optimal
one is reached. The fact that we may narrow down the field of choice to the
extreme points only is one of the special features ‘that distinguish linear
programming from classical optimization problems.

local versus global optimum Another important feature of linear pro-


gramming which distinguishes it from classical optimization problems is that any
solution obtained will give us not only a local (relative) optimum, but also a
global (absolute) optimum. The reason for this particular feature is to be found
in the following theorem (the globality theorem), which gives sufficient―though
not necessary―conditions under which a local optimum will also qualify as a
global optimum:
If the feasible set F is a closed convex set, and if the objective function is a
continuous concave (convex) function over the feasible set, then (a) any
local maximum (minimum) will be a global maximum (minimum), and (b)

1
George B Dantzig, “Maximization of a Linear Function of Variables Subject to Linear Inequalities,” in Tjalling
C. Koopmans (ed.), Activity Analysis of Production and Allocation, John Wiley & Sons, Inc., New York, 1951,
pp. 339-347.

Linear Programming 647


the points in F at which the objective function is optimized will constitute
a convex set. If the objective function happens to be strictly concave (convex)
over the feasible set, then the global maximum (minimum) will be unique.
While these sufficient conditions are not necessarily satisfied in the classical
optimization framework, they invariably are in linear programming. As we have
seen, the feasible region in linear programming is always a closed convex set.
Besides, the objective function being continuous and linear in the choice variables,
it can be considered as either a concave or a convex function, depending on
whether the problem is one of maximization or minimization. Thus the sufficient
conditions stated in the theorem are indeed satisfied, and any optimum found
will be global in nature in line with part (a) of the theorem.
To understand part (b) of the theorem, let us take another look at Fig. 18.8.
If the optimal solution of a linear program occurs at a single extreme point, such
as point f in diagram a or point u in diagram b, then, by convention, that point
constitutes a convex set in itself and the assertion of the theorem is duly verified.
But what if there are multiple optima? Multiple optima occur when the
supporting hyperplane touches the feasible set at more than one point, such as
when line 3 (diagram a) is the supporting line, or when the supporting plane H̄
(diagram b) coincides with one of the faces (flat sides) of the solid polyhedron F.
In these instances, the set of all optimal points will find embodiment either in
the line segment hg, or some face of the polyhedron F, as the case may be. Thus
the set is again a convex set, as the theorem asserts. In view of this, we can be
sure that, if there exist a pair of optimal solutions to a linear program (two
solutions being equally optimal), then any convex combination or weighted
average of the two must also be an optimal solution.

18.4 Simplex Method: Finding the Extreme Points

The optimal solution of a linear program is to be found among the extreme


points. Given a graphable feasible region F, it is a simple task to find its extreme
points, but how do we do it for the nongraphable n-variable case? Let us
reexamine the extreme points of the 2-variable case for possible clues.

slacks and surpluses The extreme points in Figs 18.1 and 18.2 fall into
three major types. These can be adequately illustrated in Figure 18.9, which
reproduces the feasible region of Fig. 18.2b.

648 Mathematical Programming and Game Theory


x2

12

Cutting
border
(8, 8) x 1 = 16
8

Mixing
(16,4) Packaging
border
4 Feasible border
x2 =8 region x 1 + 2 x 2 = 24

x1
0
0 4 8 12 16 20 24
(b )

FIGURE 18.9

The first type consists of those which occur at the intersection of two
constraint borders; examples of these are found in the points (8,8) and (16,4).
While such points do fulfill two of the constraints exactly, the remaining constraint
is inexactly fulfilled. The point (16, 4), for instance, exactly fulfills the cutting and
packaging constraints but not the mixing constraint, because the point lies below
the mixing border. With the inexact fulfillment of some constraint, there must
be an underutilization of capacity (or, in the diet problem, an overintake of some
nutrient beyond the minimum requirement). That is, a slack in capacity utiliza-
tion (or a surplus in nutrient intake) will develop.
Extreme points of the second type, exemplified by (0,8) and (16,0), occur
where a constraint border intersects an axis. Being located on one constraint
border only, such points can fulfill only one constraint exactly. Viewed differently,
there will now develop slacks in two constraints.
Lastly, as the third type of extreme point, we have the point of origin
(0,0), which fulfills none of the constraints exactly. The (0,0) extreme point,
however, is only found in a maximization program, for the feasible region of a
minimization program normally excludes the point of origin, as the reader can
see from Fig. 18.1b.
The upshot is that in the present example―where the number of constraints
(3) exceeds the number of choice variables (2)―each and every extreme point
will involve a slack in at least one of the constraints. Furthermore, as should be
evident from Fig. 18.9, the specific magnitude of the slacks entailed by each
extreme point is easily calculable. When settling on a particular extreme point
as the optimal solution, therefore, we are in effect deciding not only the values
of x̄1 and x̄2 but also the optimal values of the slacks. Let us try to consider the
slacks explicitly, denoting the slack in the ith constraint by the symbol si. The

Linear Programming 649


si represent slack variables, although in the minimization context they will become
surplus variables instead. These are collectively referred to as dummy variables.
Explicit consideration of slacks or surpluses will enable us to transform
each constraint inequality into a strict equation. More importantly, it will lead
us to an algebraic method of finding the extreme points of the feasible region.
linear program transformed Let us return to the production problem in
(18.2) whose feasible region is already depicted in Fig. 18.9. By adding a slack
variable to each constraint and appropriately modifying-the objective function
and the nonnegativity restrictions, we can rewrite that linear program into
the form
Maximize π  40x1  30x2  0s1  0s2  0s3
subject t o x1  s1  16 [cutting]
(18.13) x2  s2  8 [m ixing]
x1  2 x2  s3  24 [ packaging]
and x1 , x2 , s1 , s2 , s3  0
The reader will note that the three transformed constraints in (18.13) can also
be expressed by the following matrix equation:
 x1 
x 
1 0 1 0 0  2  16
0 1 0 1 0   s1    8
(18.14)      
1 2 0 0 1  s2  24
 s3 
 
There are now five variables in all. The slack variables si are, like x1 and x2,
restricted to be nonnegative. When si > 0, a slack exists in the ith constraint;
when si = 0, the ith constraint is exactly fulfilled. But si can never be negative.
In the objective function, the si variables are given zero coefficients because
slacks do not contribute to profit. Actually, they may be omitted from the
objective function altogether. Note that, in a minimization problem, the (non-
negative) dummy variables must appear in the constraints as –si instead.
It is an easy matter to find the values of the slacks implied by each extreme
point. For the point (0,0), for instance, we can substitute x1 = 0 and x2 = 0 into
the three transformed constraints and find that s1 = 16, s2 = 8, and s3 = 24.
Thus the point (x1,x2) = (0,0) in the two-dimensional output space of Fig. 18.9
can be mapped into the point
( x1 , x2 , s1 , s2 , s3 )  (0,0,16,8,24)
in a five-dimensional solution space, as shown in the first row of Table 18.3. By
the same procedure, the reader can verify the mapping of the remaining four
extreme points listed there.

650 Mathematical Programming and Game Theory


What is remarkable about the results of Table 18.3 is the fact that all these
five points in the solution space, which represent extreme points, share the
common property that exactly three of the five variables assume nonzero values.
Of course, this is no mere coincidence; besides, three is not just any number, but
is the precise number of constraints in our linear program.
To understand this result, let us recall the earlier discussion about counting
the number of equations and the number of variables. Normally, assuming
consistency and independence, we can expect a system of m equations to yield a
determinate solution only when there are exactly m variables in it. In our present
case, there are three constraints being considered in (18.14), so that m = 3;
consequently no more than three of the five variables can be included in the
determinate solution with a nonzero value.1 This will perhaps become clearer
when we consider the following vector-equation version of the constraints:
 1  0  1 0 0  16
0 x   1 x  0 s   1 s  0 s   8
(18.14')   1   2   1   2   3  
 1 2 0 0  1 24

If we set ay two of the five variables equal to zero, thereby in effect deleting
two terms from the left of (18.14), there will result a system of three equations
in three variables. A unique solution can then be obtained, provided that the
(retained) coefficient vectors on the left are linearly independent. When the
solution values of these three variables are combined with the arbitrarily assigned
zero values of the other two variables, the result will be an ordered quintuple
such as shown in Table 18.3.

basic feasible solutions and extreme points However, from the proc-
ess just described, there can arise two possible situations. First, a negative

1
It may happen, however, that less than m variables actually take nonzero values in the solution space. This
is known as the case of degeneracy, which will be discussed briefly in Sec. 18.6.

TABLE 18.3
Output space Solution space
(x1,x2) → (x1,x2,s1,s2,s3)
(0,0) (0, 0,16, 8, 24)
(16,0) (16, 0, 0, 8, 8)
(16,4) (16, 4, 0, 4, 0)
(8,8) (8, 8, 8, 0, 0)
(0,8) (0, 8,16, 0, 8)

Linear Programming 651


solution value may appear; for instance, if we set x1 = s3 = 0, then (18.14) will
yield x2 = 12, s1 = 16 and s2 = –4. Being in violation of the nonnegativity
restrictions, such a solution is obviously unfeasible and must be rejected.
Graphically, this particular unfeasible solution represents the intersection of the
packaging border with the vertical axis, which clearly lies beyond the feasible
region―in the complement set F̃.
Second, all the solution values may turn out to be nonnegative. In this
eventuality, the solution will correspond to one of the extreme points of the
feasible region, and the solution will constitute a basic feasible solution (BFS) of
the linear program. It is feasible because the solution is in the feasible region:
it satisfies the constraints as well as the nonnegativity restrictions. It is basic
because the availability of this solution is contingent upon the presence of three
linearly independent coefficient vectors, which together form a basis for a 3-space.
(This latter 3-space, referred to as the requirement space, has to do with the
constraints; its dimension is, of course, determined by the number of constraints
we have.) In view of the correspondence noted above, the search for the extreme
points now amounts to the search for the basic feasible solutions of the trans-
formed constraint equations.
As an illustration, let us set xl = x2 = 0 in (18.14). Then we have
 1 0  0  16
0 s   1 s  0 s   8
(18.15)   1   2   3  
0 0  1 24
or equivalently,
1 0 0  s1  16
    
(18.15) 0 1 0  s2    8
0 0 1  s3  24
Since the leftmost matrix is an identity matrix that can be dropped without
affecting the equation, the solution can be read off directly: sl = 16, s2 = 8,
s3 = 24. The existence of this unique solution is guaranteed by the linear
independence of the three coefficient (column) vectors, which, the reader will
note, are the unit vectors spanning a 3-space (the requirement space). Inasmuch
as the solution is nonnegative, it is a BFS. And, since the solution values give
rise to the point (0,0,16,8,24) in the solution space, or the point (0,0) in Fig. 18.9,
the BFS does indeed correspond to an extreme point.
Setting another. pair off variables in (18.14) equal to zero will clearly result
in an entirely new equation system. If the coefficient vectors are again linearly
independent, we shall have a new basis for the requirement space, and a new
BFS―provided that the solution is nonnegative―which can locate for us another
extreme point. Thus, to move to a different extreme point in the feasible region

652 Mathematical Programming and Game Theory


means essentially to switch to a new basis, for the three-dimensional requirement
space. This is a fundamental fact-that will be utilized in the ensuing discussion.
The significant thing about the BFS concept is that the method of its
determination is algebraic instead of geometric, so that it permits a ready
extension to the general linear program with m constraints and n choice variables.
In the latter case, the requirement space will be m-dimensional, and the solution
space of dimension m + n. To find a BFS, we now have to set n of the m + n
variables to zero in the transformed constraint equations; but the procedure is
otherwise no different from the simpler case illustrated in (18.15).

18.5 Simplex Method: Finding the Optimal Extreme Point

To locate an extreme point is to find a basic feasible solution. But how do we


find the optimal extreme point and BFS? In a low-dimension program, we
can of course find all the BFS’s, calculate the corresponding values of the
maximand (or minimand), and then select the optimal one therefrom. When
many variables and constraints are involved, this procedure can entail a great
deal of computation. The idea of the simplex method is to start with some
initial extreme point, compute the value of the objective function, and then see
whether the latter can be improved upon by moving to an adjacent extreme
point. If so we can make the move and then seek to determine whether further
improvement is possible by a subsequent move. When finally an extreme point
is attained that does not admit of further improvement, it will constitute the
optimal solution. This iterative procedure of moving from one corner of the
feasible region to another can contribute to computational economy, because
only a subset of the set of all extreme points will need to enter in the process.
We shall illustrate the technique involved by continuing our discussion of
the transformed linear program in (18.13), which is a maximization problem.

simplex tableau From (18.15) and (18.15), we have already found an


initial BFS by setting x1 = x2 = 0. That gives rise to the following quintuple
in the solution space, S1, and a corresponding profit figure, π1:
S1  (0,0,16,8,24)
(18.16)
π1  40(0)  30(0)  0
This same answer can also be obtained schematically by the use of what is called
a simplex tableau, as shown in Table 18.4.†

What is described hereinafter is the revised simplex method, which differs from the simplex method by inclusion
of the objective function in the tableau.

Linear Programming 653


In such a tableau, we reserve a column for each choice variable and slack
variable; in addition we have a π column and a constant column. The inclusion
of a π column is to enable us to embody in the tableau the information contained
in the objective function (row 0) as well as the data for the three transformed
constraints (rows 1, 2, and 3). All the numbers appearing beneath each variable
are merely the coefficients of that variable in the relevant equations, whereas the
numbers in the constant column are those unattached to any variable. The
vertical line to the left of the constant column is where the equals sign should
be in the various equations. Thus, row 0 can be read as π – 40x1 – 30x2 = 0,
which is simply a transposed version of our objective function. Similarly, row 1
states that x1 + s1 = 16 (the first constraint), etc. It may help the reader to
note that, if row 0 and the π column are disregarded, the remaining entries in
the tableau are exactly those of (18.14) duly transplanted.
According to our previous discussion, to find a BFS is to find a particular
basis for the three-dimensional requirement space. This means that, disregarding
row 0 for the time being, we must pick out from the last three rows three linearly
independent column vectors. An obvious choice is the asterisked columns, which
together form a 3 × 3 identity matrix. Consequently, we can take sl, s2, and s3
into the basis―and accordingly set xl = x2 = 0. When the xl and x2 columns
are (mentally) deleted from the tableau, the three bottom rows will reduce
exactly to the form of (18.15), giving us (sl,s2,s3) = (16,8,24), which is non-
negative and, hence, a BFS.
Inasmuch as no output is being produced, the profit will be zero, and this
BFS is obviously not optimal. Nevertheless, in maximization problems, it is
desirable always to adopt as the initial BFS one that includes slack variables
only. The slack variables always have linearly independent unit vectors as their
coefficient vectors; thus they will invariably supply a ready-made basis.
Actually the profit information can also be read directly from the tableau.
For if row 0 is considered along with the three bottom rows―while still dis-
regarding the x1 and x2 columns―the tableau translates into the equation system

TABLE 18.4
Tableau I π x1 x2 s1 s2 s3 Constant
Row 0 1 –40 –30 0 0 0 0
Row 1 0 1 0 1 0 0 16
Row 2 0 0 1 0 1 0 8
Row 3 0 1 2 0 0 1 24
* * *

654 Mathematical Programming and Game Theory


1 0 0 0 π   0 
0 s   
 1 0 0  1   16
(18.17)
0 0 1 0  s2   8
     
0 0 0 1  s3  24
which reveals not only the slack values but also the additional information that
π1 = 0 (the subscript 1 here refers to the initial BFS)._As a general rule, when
a 4 x 4 identity matrix is present in a tableau, as in Table 18.4, so that a BFS
is specified, the value of the objective function associated with that BFS can
always be read off the tableau, along with the values of the variables forming
the basis of the requirement space. A comparison of (18.17) with Table 18.4
indicates, moreover, that the top element in the constant column of the tableau
(boxed for emphasis) is what tells the profit figure whereas the remaining entries
in the constant column show the values of the variables in the basis. In order
to avail ourselves of the profit information, henceforth let us always consider the
4 × 4 rather than the 3 × 3 identity matrix―or more generally, the
(m + 1) × (m + l) rather than the m × m one.

a pivot step Now let us endeavor to improve upon the profit by switching
to a new BFS, by forming a new basis. The main idea of the basis-changing
process, known as pivoting, is to replace a column vector currently in the basis
by another column vector that is currently excluded. Or, what amounts to the
same thing, we must expel a currently included variable (sl, s2, or s3) in favor
of a current excluded one (x1 or x2). What criterion can we employ in the
selection of the outgoing and incoming vectors (or variables)?
Since our purpose is to improve upon the profit, it is natural to turn to the
objective function for a clue. As written in (18.13), the objective function indicates
that the marginal profit rate of xl is $40 and that of x2 is $30. It stands to reason
that the selection of xl as the incoming variable is more promising as a profit
booster. In terms of the tableau, the criterion is that we should select that
variable which has the negative entry with the largest absolute value in row 0. Here,
the appropriate entry is –40, and the incoming variable is to be xl; let us call
the xl column the pivot column.
The pivot column is destined to replace one of the si columns, but this
raises two problems. First, we must decide which of the latter columns is to go.
Second, we must see to it that, as the new member of the basis, the pivot column
is linearly independent of the old vectors that are retained. It happens that both
problems can be resolved in one sweep, by transforming the pivot column into a
unit vector, with 1 in either of thee three bottom rows, and 0s elsewhere. Leaving

Linear Programming 655


aside the mechanics of this transformation, let us first examine its implication.
If the transformed pivot column has its unit element in row 1, so that it looks
exactly like the s1 column, we can certainly let s1 be the outgoing variable, for
this replacement will preserve the linear independence in the basis. Similarly, if
the unit element is in row 2, we can let the transformed pivot column replace
the s2 column. In this way, the twin problems of the choice of the outgoing
variable and the preservation of linear independence can always be disposed of
at once.
It remains to decide on the exact placement of the unit element in the pivot
column. For convenience, the pivot-column element to be set equal to 1 will be
referred to as the pivot element. The overriding consideration in the choice of the
pivot element is that we must stay within the capacity limitations of all three
production departments. If we let the element in row 3 be the pivot element, for
instance, the x1 column will―after transformation into a unit vector―be
identical with the present s3 column. This means that the variable x1 will displace
the s3 variable in the second BFS, and as we can see from (18.17), the solution
value of x1 will be x1 = 24 (replacing s3 = 24). However, according to (18.13),
this output will violate the cutting constraint and, therefore, is unfeasible.
Another way of looking at it is that, if x1 replaces s3, the new tableau will have
a negative element in the constant column for row 1 (cutting constraint). The
resulting solution is then unfeasible, and must be ruled out. On the other hand,
if we pick the element in row 1 (encircled) as the pivot element, then the x1
variable will displace the s1 variable, and the solution value of x1 will be x1 = 16
(replacing s1 = 16). Since this (smaller) output does not violate any constraint
in (18.13), we can safely accept the encircled element (1) as the pivot element.
In this latter case, all the constants in the constant column will remain non-
negative in the new tableau. Note that we do not have to worry about the
element 0 in row 2 in this connection; the zero coefficient indicates that the x1
variable is unrelated to the second constraint, so that the introduction of the
x1 variable into the new basis will in- no way meet any obstacle from that
particular constraint.
The constraint consideration just outlined can be fully taken care of if the
pivot element is chosen thus: (1) Pick out those elements in the pivot column―
in all rows except row 0―that are positive. (2) Divide each of these positive
elements into its counterpart in the constant column. (3) Compare the resulting
quotients, which we shall refer to as displacement quotients, and take the row with
the smallest quotient as the pivot row. (4) Select the element at the intersection
of the pivot column and the. pivot row as the pivot element.
By selecting the smallest displacement quotient, we can make sure that the
output added (x1) will be small enough to stay within the bounds of all the
constraints and that none of the variables will violate the nonnegativity
restrictions. In our present example, there are only two such quotients to be

656 Mathematical Programming and Game Theory


compared: 16/1 and 24/1. Since the former is the smallest quotient, row 1 should be
the pivot row, with the encircled element (1) as the pivot element.
Our next task is, to transform the pivot column into a unit vector by
setting the pivot element equal to 1, and the other elements therein to 0s. In
the present case, the pivot element is already equal to 1, so that nothing has to
be done. In general, however, if the pivot element is a number k, we can transform
it to 1 by dividing all the elements in the pivot row by k, including the constant-
column entry. (This amounts to dividing all the terms in a constraint equation
by the same constant.) The row-2 element, already zero, requires no operation
either. To transform the element –40 in row 0 to a zero, we add 40 times the
pivot row (row 1) to row 0. (This amounts to adding a constant multiple of an
equation to another equation, which in no way disturbs the equality.) Similarly,
to transform the element 1 in row 3 to a zero, we can subtract the pivot row
(row 1) from row 3. The results are given in Table 18.5, where we have a new
simplex tableau (Tableau II).

If the reader mentally deletes the x2 and s1 columns, Tableau II is seen to


represent the following system of equations:
1 0 0 0 π  640
0 1 0 0  x   16
(18.18)    1   
0 0 1 0  s2   8
    
0 0 0 1  s3   8
from which the solution values of the four variables can be read off readily, since
the identity matrix on the left can be dropped. The appearance of the identity
matrix is of course not coincidental, for the transformation procedure which led
to the solution in (18.18) is intrinsically that of solving an equation system by
matrix inversion. But instead of determining the inverse matrix, this time we
have gone directly to the identity matrix AA–1 = I.
Actually, it is possible to read off the solution directly from the constant
column of Tableau II without writing out (18.18). In the π column, the unit
element of this unit vector is in row 0; thus we can read the constant in row 0
as the solution value of π, and similarly for the variables x1, s2, and s3 in the new

TABLE 18.5
Tableau II π x1 x2 s1 s2 s3 Constant
Row 0 1 0 –30 40 0 0 640
Row 1 0 1 0 1 0 0 16
Row 2 0 0 1 0 1 0 8
Row 3 0 0 2 –1 0 1 8

Linear Programming 657


basis. The x2 and sl columns, which do not contain unit vectors, on the other
hand, are excluded from the basis, and their solution values are automatically
read to be zero. Consequently, the second basic feasible solution implies that
S 2  (16,0,0,8,8)
(18.19)
π 2  640
As compared with S1, we now have a substantially larger profit (640 against 0).
In terms of Table 18.3, we have―in undertaking this pivoting step―moved
from the first extreme point to the second extreme point.

another pivot step In row 0 of Tableau II, there is an entry –30 asso-
ciated with the variable x2. Since, a negative entry in row 0 indicates a positive
marginal profit rate, further profit improvement is possible by letting x2 replace
a zero-profit-rate or a negative-profit-rate variable in the basis. Therefore, we
adopt the x2 column as the next pivot column. As for the pivot row, since the
smallest displacement quotient is

min{8 /1 ,8 / 2 }  min{8,4}  4

row 3 should be chosen. Hence the pivot element is 2, which we have encircled
to call attention.
In order to transform the elements in the x2 column into 0, 0, 0, and 1 (in
that order), we must: (1) add 15 times row 3 (the pivot row) to row 0; (2) leave
row 1 intact; subtract 1/2 times row 3 from row 2; and, (4) divide row 3 by 2.
The reader is urged to carry out these operations and check the results against
Tableau III in Table 18.6.
In Tableau III, the columns with unit vectors pertain to the variables
π, xl, x2, and s2, whose solution values can be read off as follows: π = 760,
x1 = 16, x2 = 4 (from row 3), and s2 = 4 (from row 2). Consequently, we
can write

TABLE 18.6
Tableau III π x1 x2 s1 s2 s3 Constant
Row 0 1 0 0 25 0 15 760
Row 1 0 1 0 1 0 0 16
1
Row 2 0 0 0 /2 1 –1/2 4
1 1
Row 3 0 0 1 – /2 0 /2 4

658 Mathematical Programming and Game Theory


S 2  (16,4,0,4,0)
(18.20)
π3  760

Two products are now being produced, and the profit has been raised to 760.
Again, we, can see from Table 18.3 that the second pivot step has taken us to a
new extreme point of the feasible region.
We are ready for another pivot step, but since row 0 of Tableau III contains
no more negative entries, no further pivoting will prove profitable. To appreciate
this fact, let us convert row 0 into the equation
π  760 25s1  15s3
To maximize π in this equation we must set s1 = s3 = 0; but the solution S3
does just that. Hence S3 must be optimal! As expected, this optimal solution is
identical with the results obtained graphically in Sec. 18.1.
In terms of Fig. 18.9, the simplex method has led us systematically from
the point of origin―the initial extreme point―to the next extreme point (16,0),
followed by a move to the optimal extreme point (16,4). Note that we have
arrived at the optimal solution without having to compare all five extreme
points. Also note that, by choosing x1 as the pivot column in Tableau I (in
accordance with the marginal-profit-rate criterion), we have traveled to the
optimum via a shorter route; had we chosen x2 as the pivot column, we would
have moved to the point (0,8) in Fig. 18.9 first, and that would have required
three pivot steps to reach the point (16,4).

18.6 Further Notes on the Simplex Method

minimization programs and artificial variables In the maximization


problem discussed above, there is no need to search for an initial BFS, because a
ready-made one is always available at the point of origin. For minimization
problems, however, this is not true, because in those problems the point of origin
lies outside the feasible region.
To illustrate, let us transform the diet problem of Sec. 18.1 into the form
Minimize C  0.6 x1  x2
 x1 
1 x 
10 4 0 0  2  20
(18.21) subject t o  5 5 0 1 0  s1   20
   
 2 6 0 0  1  s2  12
 s3 
 
and x1 , x2 , s1 , s2 , s3  0

Linear Programming 659


Note that the (nonnegative) si variables, representing surpluses (rather than
slacks), are to be subtracted from the left sides of the constraints. Hence the last
three columns in the coefficient matrix in (18.21) appear as the negative of an
identity matrix. If we try to set x1 = x2 =0, the three constraints will yield the
solution (s1,s2,s3) = (–20,–20,–12), which is clearly unfeasible. Therefore we
must actively search for some suitable initial BFS.
One method that will obviate this search is to augment the program by
adding a nonnegative artificial variable to every constraint. For reasons to be
explained below, the artificial variables, denoted by vi, should be assigned some
large coefficients in the objective function―large in relation to the coefficients of
the choice variables. If we let these be 100, then the program in (18.21) can be
written as follows1
Minimize C  0.6 x1  x2  100(v1  v2  v3 )
 x1 
x 
 2
 s1 
10 4 1 0 0 1 0 0   20
subject t o  5 5 0 1 0 0 1 0  s 2   20
(18.21)   s3   
 2 6 0 0 1 0 0 1   12
v1 
v 
 2
v3 
and x1 , x2 , s1 , s 2 , s3 , v1 , v2 , v3  0
Since the artificial variables are associated with three linearly independent unit
vectors (which form an identity matrix), similar to the si variables in Table 18.4,
we may now accept the vi variables into the initial basis without conducting any
real search.
While acceptable in an initial BFS to get us started, these vi variables―
being mere mathematical artifice―must somehow be prevented from entering
into our optimal solution. In this regard, we need not worry if the vi variables
are given large coefficients in the objective function, for these coefficients (in our
example, 100) represent the prices of some artificially created food items, just as
0.6 is the price of food I, so the assignment of inordinately large values to these
will automatically make the artificial food items too expensive to be included in
the optimal diet. This will then assure v1 = v2 = v3 = 0 in the optimal solution
and render the augmented linear program (18.21) optimally equivalent to the
original version in (18.21).
The simplex method can now be applied in substantially the same way,
except for a few simple modifications. First, upon arranging the program in

1
We have inserted two broken lines in the 3 × 8 coefficient matrix to clarify the association between the three
groups of column vectors and the three groups of variables (choice, surplus, and artificial).

660 Mathematical Programming and Game Theory


(18.21) into Tableau I in Table 18.7, we see that the vi columns are not yet in
the form of 4-element unit vectors. We first add 100 × (row 1 + row 2 + row 3)
to row 0, in order too convert Tableau I to Tableau II. Since the latter does
contain a 4 × 4 identity matrix, we are now able to read off the solution
(C,v1,v2,v3) = (5200,20,20,12).
Another modification in the method concerns the criterion for the choice
of the pivot column. For minimization programs we should look for the column
―not counting the C column and the constant column―with the largest positive
element in row 0. The rationale of this new criterion can easily be seen when we
convert row 0 of Tableau II into the equation

C  52008497 / 5 x1  1499x2  100(s1  s2  s3 )

If we are to choose one of the five variables as the incoming variable to replace
an artificial variable in the initial basis, x1 can obviously contribute most to cost
minimization because it has-the negative coefficient with the highest absolute
value. In terms of Tableau II, however, x1 is the variable with the largest positive
coefficient in row 0―hence the above criterion. Accordingly, the x1 column
should be picked as the pivot column.
Here, since the smallest displacement quotient is
min{20 /10 , 20 / 5 ,12 / 2 }  min{2,4,6}  2
row 1 is the pivot row, and the (encircled) element 10 is the pivot element. By
transforming the pivot column into a unit vector, we end up with Tableau III,
which gives us the solution (C,x1,v2,v3) = (9006/5,2,10,8). Now that x1 has replaced
TABLE 18.7
Choice Surplus
variables variables Artificial variables
Con-
Tableau Row C x1 x1 s1 s2 s3 v1 v2 v3 stant

0 1 –6/10 –1 0 0 0 –100 –100 –100 0

1 0 10 4 –1 0 0 1 0 0 20
I
2 0 5 5 0 –1 0 0 1 0 20

3 0 2 6 0 0 –1 0 0 1 12
8497
0 1 /5 1499 –100 –100 –100 0 0 0 5200

1 0 10 4 –1 0 0 1 0 0 20
II
2 0 5 5 0 –1 0 0 1 0 20

3 0 2 6 0 0 –1 0 0 1 12

Linear Programming 661


9006
0 1 0 20,481
/25 3497
/50 –100 –100 –8497/50 0 0 /5

1 0 1 2
/5 –1/10 0 0 1
/10 0 0 2
III
2 0 0 3 1
/2 –1 0 – 1/ 2 1 0 10

3 0 0 26
/5 1
/5 0 –1 – /5
1
0 1 8
35,154
0 1 0 0 2498
/65 –100 7481
/130 –8998/65 0 –20,481/130 /65

1 0 1 0 –3/26 0 1
/13 3
/26 0 –1/13 18
/13
IV 15
2 0 0 0 5
/13 –1 /26 – /13
5
1 – /26
15 70
/13

3 0 0 1 1
/26 0 –5/26 –1/26 0 5
/26 20
/13

0 1 0 0 1
/15 – /75
19
0 – 1501
/15 – 7481
/75 –100 56
/15

1 0 1 0 –1/6 2
/15 0 1
/6 –2/15 0 2
/3
V 2
2 0 0 0 /3 –26/15 1 – 2/ 3 26
/15 –1 28
/3

3 0 0 1 1
/6 – /3 1
0 – /6
1 1
/3 0 10
/3

0 1 0 0 0 –2/25 –1/10 –100 –2498/25 –999/10 14


/5

1 0 1 0 0 –3/10 1
/4 0 3
/10 – 1/ 4 3
VI
2 0 0 0 1 – /5
13 3
/2 –1 13
/5 – /2
3
14

3 0 0 1 0 1
/10 – 1/ 4 0 –1/10 1
/4 1
v1 in the basis, the cost of diet is substantially reduced: from $5200 to only
slightly over $1800.
The subsequent steps are nothing but the same process repeated. But note
that it will take two more pivot steps to drive out the remaining two artificial
variables. Inasmuch as the introduction of the vi variables inevitably lengthens
the computation process, we should try whenever possible to reduce the number
of such variables added. This can be done, for instance, if the first column of the
coefficient matrix happens to contain the elements 0, 1 and 0 (rather than
10, 5, 2), for then we may omit v2 and let x1 take its place in the initial basis.
Similarly, if the elements of that column are 0, 0 and 1, we can instead omit v3.
From Tableau II on, each successive tableau in Table 18.7 shows a reduction
in cost. When the cost is reduced to 14/5 = 2.80 in Tableau VI, we can tell from
row 0 that no further reduction is possible because no more positive entries are
present in the xi, si and vi columns. Our optimal solution is therefore
( x1 , x2 , s1 , s2 , s3 )  (3,1,14,0,0)
C  $2.80
which is identical with the graphical solution obtained in Sec. 18.1.

662 Mathematical Programming and Game Theory


another application of artificial variables The use of artificial variables
is not exclusive to minimization problems. In some maximization programs,
artificial variables can be used to good advantage, too.
When, in the maximization contest one of the constraints (say, the third)
happens to be a strict equation, there will be no need for an s3 variable. In that
event, we are “cheated” out of a unit vector in the, simplex tableau, and the
so-called “ready-made initial BFS” will no longer be available. To remedy the
situation, we can let an artificial variable v3 (for the third constraint) fill the void
left by the absence of the s3 variable, for it too can give rise to a unit vector of
the correct type.
Of course, to assure that v3 will be duly barred from the optimal solution,
we must in this case assign to it a large negative coefficient (negative marginal-
profit rate) in the objective function. But otherwise, the application of the
simplex method will be the same as before.

degeneracy The linear programs discussed above have the common


property that the vector of constants in the m constraint equations is not
expressible as a linear combination of less than m coefficient vectors. In (18.14),
e.g., the vector on the right side cannot be expressed as a linear combination of
less than three of the left-side vectors. As a result, each of the m variables in a
basis must take a nonzero value; this is why each point in the solution space of
Table 18.3 has exactly three nonzero elements. When this property does not
hold the linear program is said to be degenerate.
Insofar as the simplex method is concerned, the only manifestation of
degeneracy lies in the appearance of “tied” displacement quotients. That is, two
or more quotients will share the distinction of being the smallest, so that two or
more rows will be equally strong candidates for the pivot row. Since it is not
possible to displace more than one variable at a time, some criterion must be
found to break the tie.
One practical, if arbitrary method, is simply to pick the pivot row in such
a way that, among the tied variables, the one with the leftmost location in the
simplex tableau will actually get to be displaced. With this tie-breaking criterion,
it then becomes possible to proceed with the remaining steps in a systematic
fashion.
In degeneracy cases, a pivot stems may fail to improve profit or reduce cost
at all. It may indeed take several pivot steps of the zero-improvement type before
the iterative process succeeds in breaking out of the deadlock. Aside from the
tie, and the possibility of zero improvement, however, the application of the
simplex method to degeneracy cases is again the same as before.

Linear Programming 663


This concludes our introduction to the simplex method, or simplex
algorithm.1 The process involved is by itself not difficult, but in linear programs
of substantial dimensions the computation task will inevitably be lengthy and
tedious. Fortunately, the modern computer is well adapted to precisely the type
of repetitive calculations that a linear program entails. By properly giving the
computer a set of detailed instructions (i.e., by proper computer programming),
wee can rely on the machine to carry out the successive steps of the simplex
algorithm faithfully, untiringly, and at a superhuman speed. High dimensionality
then poses little problem.

1
Algorithm is a fancy word, meaning a routinized computational procedure.

664 Mathematical Programming and Game Theory

You might also like