How to Analyze the Results of Linear
Programs—Part 1: Preliminaries
HARVEY J. GREENBERG Mathematics Department
University of Colorado at Denver
PO Box 173364
Denver. Colorado 80217-3364
In a four part series, I describe ways to analyze the results of
linear programs beyond what is commonly described in text-
books. My intent is to capture the thought process in analysis
with two objectives. First, I want to provide a guide to those
getting started in applications of linear programming by sug-
gesting useful ways of looking at the results. Second, I want to
help create an artificially intelligent environment for the analy-
sis of results by presenting a protocol that a knowledge engi-
neer can use. The former has been in the folklore for decades;
the latter is part of a project to develop an intelligent mathe-
matical programming system. This first part of the series con-
tains basic terms and concepts used in the other three parts:
price interpretation, infeasibility diagnosis, and forcing
substructures.
A great deal of research and develop-ment activity in large-scale linear
programming (LP) has been devoted to
solving problems faster. A medium-size
problem by today's standards contains
about 5,000 equations and 20,000 vari-
ables. Even microcomputer versions can
handle thousands of equations and vari-
ables, and supercomputers have been used
for problems with millions of variables!
How can we understand the results? At
one level, in the interests of model man-
agement, we must verify that the solution
obtained makes sense with respect to the
Cupyrighr S) 1993, The Inslilute of Management Sciencos
OO91-21U2/93/23O4/OO56S0I.25
This paptr was refereed.
PROCRAMMENG—LINEAR
INTERFACES 23: 4 July-August 1993 (pp. 56-67)
LINEAR PROGRAMS
problem represented by tho linear pro-
gram.
Once we think we have a good run, we
must delve into the meaning of a solution.
Questions of sensitivity play a direct role,
such as What if . . .? and Why . . .? For
example, we may ask the following. What
if the demand for a commodity increases?
What if capacity is expanded? What if
some resource is made available? Why did
this plant not operate? Why is total pro-
duction so low? Why is the price of some
commodity so large? Why does a certain
flow pattern occur? Is it preferred to others
because of the economic trade-off, or are
the flows forced by the constraints?
Textbook wisdom does not go far
enough in answering these questions in
practical terms (see Gal [1979] for an excel-
lent mathematical treatment). Also, once
an answer is obtained in some mathemati-
cal way, how can we present the answer to
problem owners who might not know lin-
ear programming? We must be able to look
at different views of linear programs and
their pieces, for example, using graphic tech-
niques to present information about flows.
Before we can venture into this world of
analysis, we must understand how linear
programs are constructed. In this overview,
I describe and illustra ...
How to Analyze the Results of LinearPrograms—Part 1 Prelimi.docx
1. How to Analyze the Results of Linear
Programs—Part 1: Preliminaries
HARVEY J. GREENBERG Mathematics Department
University of Colorado at Denver
PO Box 173364
Denver. Colorado 80217-3364
In a four part series, I describe ways to analyze the results of
linear programs beyond what is commonly described in text-
books. My intent is to capture the thought process in analysis
with two objectives. First, I want to provide a guide to those
getting started in applications of linear programming by sug-
gesting useful ways of looking at the results. Second, I want to
help create an artificially intelligent environment for the analy-
sis of results by presenting a protocol that a knowledge engi-
neer can use. The former has been in the folklore for decades;
the latter is part of a project to develop an intelligent mathe-
matical programming system. This first part of the series con-
tains basic terms and concepts used in the other three parts:
price interpretation, infeasibility diagnosis, and forcing
substructures.
A great deal of research and develop-ment activity in large-
scale linear
programming (LP) has been devoted to
solving problems faster. A medium-size
problem by today's standards contains
about 5,000 equations and 20,000 vari-
ables. Even microcomputer versions can
handle thousands of equations and vari-
2. ables, and supercomputers have been used
for problems with millions of variables!
How can we understand the results? At
one level, in the interests of model man-
agement, we must verify that the solution
obtained makes sense with respect to the
Cupyrighr S) 1993, The Inslilute of Management Sciencos
OO91-21U2/93/23O4/OO56S0I.25
This paptr was refereed.
PROCRAMMENG—LINEAR
INTERFACES 23: 4 July-August 1993 (pp. 56-67)
LINEAR PROGRAMS
problem represented by tho linear pro-
gram.
Once we think we have a good run, we
must delve into the meaning of a solution.
Questions of sensitivity play a direct role,
such as What if . . .? and Why . . .? For
example, we may ask the following. What
if the demand for a commodity increases?
What if capacity is expanded? What if
some resource is made available? Why did
this plant not operate? Why is total pro-
duction so low? Why is the price of some
commodity so large? Why does a certain
flow pattern occur? Is it preferred to others
because of the economic trade-off, or are
3. the flows forced by the constraints?
Textbook wisdom does not go far
enough in answering these questions in
practical terms (see Gal [1979] for an excel-
lent mathematical treatment). Also, once
an answer is obtained in some mathemati-
cal way, how can we present the answer to
problem owners who might not know lin-
ear programming? We must be able to look
at different views of linear programs and
their pieces, for example, using graphic tech-
niques to present information about flows.
Before we can venture into this world of
analysis, we must understand how linear
programs are constructed. In this overview,
I describe and illustrate some terms, con-
cepts, and principles that one needs to un-
derstand bow to analyze LP results. I have
published earlier tutorials on new ap-
proaches to analysis [Greenberg 1978,
1981, 1982]. The references I give here are
not exhaustive of the attention devoted to
analysis (for an extensive bibliography, see
Greenberg [1992c]).
LP Structure and Syntax
It is important to understand how linear
programs are formulated in order to de-
velop practical analysis techniques
[Williams 1978]. The rules of LP composi-
tion comprise the syntax of the linear pro-
gram.
4. Mathematically, we use the algebraic
representation, y ^ Ax and L < {x, y) < (J.
Subject to these equations and bounds,
some linear function, like cost, is mini-
mized. I call the A"-variab!es levels of activi-
ties, and 1 call the ly-variables logical levels
because y is determined logically from x
and the equations. The bound constraints
typically have L, > 0 for the level, x,, and
many of the (explicit) upper bounds (L/,)
are infinite for x's. Positive lower bounds
arise to represent minimal levels of opera-
tion or contracted shipments. Finite upper
bounds arise to represent capacity limits of
physical units or market limits of sales.
The canonical form, generally found in
textbooks (for example, Dantzig [1963]), is
to minimize ex subject to AY > b and x > 0.
Bounds can be incorporated into the con-
straints, and free variables (that is, those
allowed tt) be negative) can be partitioned
into their positive and negative parts.
Many different algebraic forms are treated
in most textbooks and shown to be mathe-
matically equivalent to the canonical form.
To reach our form, simply define y = Ax,
set the lower bound of y equal to b, and let
all upper bounds be infinite. Conceptually,
however, it is better to segregate bounds
on variables from equations that represent
relations among the variables.
The coefficient matrix. A, is highly struc-
tured. Often, it decomposes into blocks
with special equations or activities that link
5. the blocks in a well-formulated linear pro-
gram. For example, the blocks could be
July-August 1993 57
GREENBERG
processes in different regions, and the links
could be aggregate resource limits or trans-
shipment activities. Knowledge of such
structures can be useful in analysis [Baker
1990 and Welch 1987].
Sometimes the structures are known or
can easily be inferred from the model's
syntax—that is, from the rules for compos-
ing the objects and relations that comprise
the LP. Other times, structures are inferred
by executing a recognition algorithm. One
example is recognizing a network embed-
ded in the LP,
Typically, the analysis process has two
steps. First, tbe analyst must work tbrougb
the relevant portions of tbe linear program,
generally witb analytical techniques, to
compute implied relations using the LP
structure. Second, once tbe mathematical
phase of analysis is completed, tbe analyst
must translate the results so that they will
be comprebensible to someone concerned
witb the analysis, generally with linguistic
techniques using tbe LP syntax. Tbis some-
one could be a problem owner for whom
6. tbe linear program is used, sucb as an en-
gineer or corporate executive. Tbe some-
one could also be a data-base manager
wbo must become involved if questions of
data arise.
In practice, variables tend to fall into
classes. Activity classes can be production,
consumption, transportation, conversion,
capacity expansion, or inventory carrying.
Equation classes can be resource limits, de-
mand requirements, flow balances, or
quality assurance ranges. Tbese lists are
not exhaustive, but typically a linear pro-
gram bas fewer tban a dozen classes of ac-
tivities and even fewer classes of equa-
tions. Wbat makes a linear program large
are tbe dimensions of basic entities, like re-
gions, materials, and time periods [Glover,
Klingman, and Phillips 1990, 1992].
To understand a solution, one must have
a sense of the basic dimensions and classes
of variables. Traditionally, tbe names of
rows and columns in a linear program con-
tain the underlying syntax.
One way to express an LP model, which
is tbe way of most textbooks, is first to de-
fine sets, domains, data tables, and vari-
ables, and second to define the constraints.
To illustrate, I shall explain a production-
distribution model.
Given are
(1) A collection of plants distinguished by
7. their locations and processes of opera-
tion, wbicb require raw material inputs
and produce finisbed products;
(2) Markets, distinguisbed by tbeir loca-
tions and products; and
(3) Transportation links from plants to
markets.
Tbe data for a specific instance are:
R,,,i = unit amount of raw material i used
by process p at plant j;
Ypjk = unit yield of product k from process
p at plant j;
S, ^ total supply of raw material /';
COST—OPpi = unit operation cost of pro-
cess p at plant j;
K, ^ capacity limit of plant /, measured in
terms of its total output;
COST—SHjnit, ^ unit shipping cost of prod-
uct k from plant; to market
m (if there is no link from
plant ;• to market m for
product k, tbe value of
COST^SHj,,,), = GO); and
D,,,( ^ demand for product k tbat must be
satisfied in market m.
8. INTERFACES 23:4 58
LINEAR PROGRAMS
The variables are:
Pf,i ^ level of production using process p at
plant /;
T,,,,i = amount of product k sent from plant
/ to market m; and
COST ^ total cost of production and trans-
portation.
The LP model is:
Minimize COST subject to: P,,,, T,,,,̂ > 0;
COST - ^,,i
(Raw material availabihties),
C{/) - XpPp, < Kj (Capacity limits),
B{j. k) - 2,,y,,,P,,, - 2«,T,,,,i - 0
(Balance equations), and
D{m, k) - 2,T,,,,t > D ,̂i (Demands).
9. Notice that I began with the definition of
sets and data tables. In expressing the
model, I defined each variable with a sym-
bol (P and T) over domains (set products);
then, I wrote the objective and the con-
straints. This is the algebraic form. Alter-
natively, 1 could express the model in
schema form (Figure 1).
In the schema form of the model, the
rows have been classified with COST as the
objective row, and the other row types be-
gin with A, B, C, and D. The activities have
been classified as production (P) and trans-
portation (T). The subscripts in the original
problem definition become domains in this
expression. Each domain is a cross product
of sets, usually restricted to only some of
the many products. For example, the trans-
10. portation activity has three domain sets:
source (plant), destination (market), and
material (product). The distribution net-
work, however, is usually sparse in that
not every plant ships every product to ev-
ery market.
In our example, the sets are as follows:
(' ^ raw material;
p = process;
/ ^ plant (location);
k = finished product; and
m = market location.
When forming the name of a row or col-
umn, ! distinguish its type by its first char-
acter. Then, I specify its domain member,
but without the parentheses and commas.
For example, consider the transportation
activity T{j, m, k) for the particular plant)
11. = S (a code for South), the particular mar-
ket m - CH (a code for Chicago), and the
particular finished product /c = T (a code
for table). Then, I name the column
TSCHT. (1 use this name syntax here and I
shall use it in the sequel papers).
Suppose, for example, I specify the fol-
lowing set elements.
i = {S, W}: S means steel, W means wood;
COST
A(i)
B(j, k)
C(j)
D(m, k)
COST_OP(p, j)
R(i, p. j)
Y(p, j , k)
1
T(j. m, k)
COST_SH(j, m, k)
- 1
1
12. = MIN
< = S(i)
= 0
< = K(j)
> = D(m, k)
Figure 1: The schema form of the production-distribution model
offers an alternative view
from the algebraic form.
July-August 1993 59
GREENBERG
;' ^ {1, 2, 3[: 1 means process 1, 2 means
process 2, 3 means process 3;
j = {N, S]: N means North and S means
South;
m - {DE,CH}: D£ means Denver and CH
means Chicago;
k ^ {C, T]: C means chair and T means
table.
Suppose further that the shipping links are
only those shown in Figure 2,
Then, an equation listing for the particu-
lar linear program is as follows (where d
simply indicates some data value).
13. Minimize COST subject to:
COST ^ dPlS + d P2N + d P2S
+ d TSCHT + d TNDEC + d TNDET
d PIS + dP3N + d P3S
= d P2N + dP2S + d P3N + d P3S
<d
BNC = d PIN + dPSN - TNCHC
- TNDEC = 0
BNT - d P2N + d P3N - TNDET = 0
BST ^dP2S + d P3S - TSCHT = 0
CS ^ PIS + PIS ^ P3S < d
DCHC = TNCHC > d
DCHT = TSCHT > d
DDEC - TNDEC > d
DDET = TNDET > d
All activity levels > 0.
Consider, for example, the first column,
associated with activity PIN. This is the
name of activity P{p, j) for p = I and /
14. ^ N. It uses steel, so it appears in equation
AS, which is row A{i) for / = S. The activi-
ties that produce with process 2, namely
P2N and P2S, each use wood; and, those
with process 3 use fixed shares of steel and
wood. The capacity equation, CN, limits
the total capacities used by the associated
production activities, PIN, P2N and P3JV.
An equation listing is not always the
best way to view a linear program, es-
pecially when it is large. I shall describe
some alternative views that support
analysis.
Alternative Views of Linear Programs
The most common view of a linear pro-
gram, found in textbooks, is an algebraic
one. It presents a dictionary for what the
data and variables mean, followed by a
system of equatioap that represent con-
straints. The sheer size of today's problems
can make an algebraic view confounding
when one is trying to understand patterns
of relationships.
The entire subject of views has been in-
vestigated elsewhere [Greenberg and
Murphy forthcoming]. Here I consider two
views that have been helpful to me in
Plants Markets
(N)
(S)
15. DE
CH
Figure 2: Shipping links for an instance of
the production-distribution model connect
the north (/V) and south (S) plants to Denver
(DE) and Chicago {CH). The labels on the arcs
show which products (tables and chairs) each
plant can ship to each city.
INTERFACES 23:4 60
LINEAR PROGRAMS
gaining insight quickly for analysis. The
first is a picture of sign patterns in the LP
matrix, and the second is a directed graph.
Figure 3 shows a picture of the example
product distribution LP. Over the columns,
the activity names are printed vertically,
and the entries are the signs of the nonze-
roes (a blank means the coefficient is zero).
The picture gives us a cognitive view of a
pattern, which is often more useful than
an equation listing.
Computer graphics offer us more oppor-
tunities for visual insights, for example,
graph-based views of activity paths from
production through consumption. Graph-
based views can be obtained from a vari-
16. ety of fundamental graphs associated with
a linear program (the ones I use here were
developed by several authors [Choobineh
1991; Glover 1983; Glover, Klingman, and
Phillips 1990, 1992; Greenberg 1978;
Schrage 1981]; alternative graphs, based
AS
AW
BNC
BNT
BST
CN
COST
CS
DCHC
DCHT
DDEC
DDET
P P
1 1
N S
21. 4
0
D
0
4
MIN
4-
4-
4-
4
4-
Figure 3: A picture of Ihe product distribution
linear program shows the sign pattern for a
relational view.
on the structured modeling formalism,
were given by Geoffrion [1987, 1989], and
those based on graph grammars were
given by Jones [1990, 1991]).
The particular graph that I use in this se-
ries is one that relates activities and equa-
tions [Greenberg 1978], The nodes are the
rows and columns, giving a natural divi-
sion into two node types that makes the
22. graph bipartite. Each link corresponds to a
nonzero in the coefficient matrix, A. The
picture is a view of the adjacency matrix of
this bipartite graph, where each link ap-
pears as either a plus (+) or a minus (-).
There are two ways to account for sign
patterns; either sign each link or orient it.
The former leads to representations of eco-
nomic correlation, which I do not consider
here (see Greenberg, Lundgren, and
Maybee [1989]), and the latter leads to
flow representations, which I now de-
scribe.
Consider an activity that represents an
exchange, where negative coefficients rep-
resent inputs and positive coefficients rep-
resent outputs. Based on this notion of ac-
tivity I/O, orient an arc from its row node
to its column node if the coefficient is neg-
ative, and from the column node to the
row node if it is positive.
(row i)
(row ()
Aihvily Inpul
A,,>0
[column /]
Activity Outp
»• [column ;]
23. utput ' ^ '
I call this the fundamental digraph, which
can be used with the syntax to give an al-
ternative view of equations, which com-
prise the rows, and activities, which com-
prise the columns. From the fundamental
digraph, there are two projections that of-
fer insights. These are called the row di-
July-August 1993 61
GREENBERG
graph and tbe column di^^raph.
The row digrapb consists of row nodes
(only), and an arc from one row node to
another means there is at least one activity
with one arc from the first row node, and
one arc into the second. Such arcs tend to
represent flows, where the activity trans-
forms some basic entity that is represented
by the two equations. In the standard
transportation problem, for example, the
entity is a location and the transformation
changes the location of the material that is
transported from location at / to location
atk.
... other nonzeroes.
Activity j creates an arc from row node / to
24. row node k in the row digraph (entities of i
transformed into entities of k).
The column digraph consists of column
nodes (only), and an arc from one column
node to another means there is at least one
equation that is an output of the first activ-
ity and an input to the second. Such arcs
tend to represent an ordering of the activi-
ties.
:... othernonzeroes.
Equation i creates an arc from column
node j to column node k in the column di-
graph (output of j is input to k).
For an ordinary network, the coefficient
matrix is the usual incidence relation, from
sources to destinations. More generally, in
canonical form, negative coefficients corre-
spond to activity inputs and positive coeffi-
cients to outputs. When an activity has
more than one input or more than one
output, the LP is sometimes called a net-
form [Glover 1983] and sometimes called a
process network [Chinneck 1990].
For example, consider the following
2 X 3 system.
S - 2P - T and
D = {T - C.
25. Think of P, T, and C as production, trans-
portation, and consumption activities, re-
spectively; and think of S and D as supply
and demand stocks. For example, suppose
we produce one unit, transport two units
and consume one unit; that is, P ^ 1, T ^
2, and C - 1. Then, S - D - 0; that is, the
stocks are balanced (no excess or shortage).
Figure 4 shows all three digraphs for this
2 X 3 system.
The row digraph shows flow from sup-
ply (S) to demand (D), The column digraph
shows a precedence, where production (P)
precedes transportation (T), which pre-
cedes consumption (C).
1 can also apply these digraphs to por-
tions of an LP, for example, to the portion
of the product distribution LP (compare
Figure 3) that is shown in Figure 5. This
digraph represents a portion pertaining to
demand for tables in Denver (row node
DDET). The headless arc out of row node
DDET denotes a demand requirement, and
the tailless arcs into row nodes AW and CN
denote availabilities of wood and capacity,
respectively.
Figure 6 shows the row and column di-
graphs associated with the fundamental
INTERFACES 23:4 62
26. LINEAR PROGRAMS
(S)
(D)
[P]
[T]
•[C]
[P]
(S)
I
(D)
[T]
I
[C]
Fundamental Row Column
Digraph Digraph Digraph
Figure 4: The digraphs for the 2 x 3 system
show flows and activity precedence.
digraph in Figure 5. The row digraph gives
a view of flows: wood {AW) and capacity
in the North (CN) are transformed into a
table in the North (BNT), which is trans-
ported to Denver (DDET). The column di-
graph gives a view of activity sequence:
27. produce a table in the North by process 2
[P2N], then transport the table to Denver
[TNDET].
Re-organization of Equations
In any system of equations, such as y
= Ax, I regard the variables on the right (x)
as independent and those on the left (y) as
dependent. In linear programming, the ter-
minology given to dependent variables is
basic and to independent variables is non-
basic, and these roles oi variables can
change from the original expression to a
form that results from a solution. This
change of role is important to analysis
questions because the dependence of y, on
X, is no longer measured by the original
coefficient, A,,, and dependencies among
the x-variables become revealed by the re-
organization.
(AW)
(CN)
[P2N] (BNT)
For example, consider the 2 X 3 system.
In its original form, we can make such
statements as the following:
—An increase in production (P) causes an
increase in supply stock (S) at double the
rate;
—̂A decrease in transportation (T) causes
28. an equal increase in supply stock (S) and
a decrease in demand stock (D) at half
the rate.
Notice that the causality is from the in-
dependent variable (on the right) to the
dependent variable (on the left). An alge-
braically equivalent system of equations is
obtained by rewriting the original ones, for
example, the following:
P= ^,S+ jTand
C - {T -D.
In this form, I have kept T as an inde-
pendent variable on the right-hand side,
but I exchanged P for S in the first equa-
tion and C for D in the second. Now P and
C are dependent, or basic, variables, and S
and D are independent, or nonbasic, vari-
ables.
In this form, we can make such state-
ments as the following:
—An increase in supply stock (S) causes an
increase in production (P) at half the
rate;
—A decrease in transportation (7) causes a
decrease in both production (P) and con-
sumption (C), each at half the rate.
The roles the variables assume in any re-
organization of the equations determine
29. •• [TNDET] • • (DDET)
Figure 5: The fundamental digraph for a portion of the product
distribution LP traces a path
from production to demand.
July-August 1993 63
GREENBERG
(BNT) (DDET) [P2N] [TNDET]
(a) Row Digraph (b) Column Digraph
Figure 6: Row and column digraphs for the portion of the
product distribution LP shown in
Figure 5 show flows and the activity sequence associated with
the flow trace.
causality relationships: what happens to
the dependent, or basic, variable when an
independent, or nonbasic, variable is
changed. The details of how one obtains
the new system of equations from the orig-
inal system are a matter of computation,
and I do not consider them here. What is
important is to recognize marginal rates of
substitution that depend upon the parti,cu-
lar roles, basic versus nonbasic, which is
part of the solution information.
Let us consider an example of how this
information is used for an analysis ques-
30. tion. Suppose a solution to the product dis-
tribution LP has activities P2N and TNDET
basic, and activity P3JV nonbasic (at its
lower bound of zero). Note, from Figure 3,
that P3N is a substitute for activity P2N~
that is, they are substitutes, or competitors,
because they use the same inputs (wood
and capacity), and they produce the same
output (tables in the North). Activity P3N
uses an additional input (steel) and pro-
duces an additional output (chairs in the
North). The question is. What if activity
P3N were forced to increase to a positive
level?
Figure 7 shows some rates of substitu-
tion, using hypothetical data. Among the
basic variables affected is P2N, whose level
is displaced one-for-one—that is, for each
unit increase in P3N, there is a unit de-
crease in P2N. The level of row AS in-
creases at a rate of 0.4 because activity
P3N uses 0.4 units of steel for each table it
produces (hypothetically). The net effect
on wood used (row AW) is a decrease at a
rate of 0.4 because P3N uses 0.6 units of
wood to produce one table, while P2iV
uses one unit of wood to produce a table;
the displacement of P'5N for P2N results in
a net decrease of 0.4 units of wood per
unit of P3N. The COST row is also af-
fected, where each unit of increase in P3N
results in an increase of $9.00.
Other basic variables are affected by an
31. increase in P3N, such as the increase in the
level of transportation of chairs produced
by P3N with accompanying displacements
of other chair transportation and produc-
tion.
The rates of substitution can be ob-
tained, but one must take care in interpret-
ing their meaning in the presence of a
property called degeneracy. Although 1
AS = current level + 0.4P3N
+ other non-basic rates
AW = current level - 0AP3N
+ other non-basic rates
COST - current level + 9P3/V
+ other non-basic rates
P2N = current level - P3N
+ other non-basic rates
Figure 7: Rates of substitution, from a rewrite
of the equations, reveal how a change in the
level of activity P3N affects basic variables.
INTERFACES 23:4 64
LINEAR PROGRAMS
32. shall not consider it in detail here, degen-
eracy will arise in some of our exercises in
the sequels. One form of degeneracy,
which affects the use of rates for sensitivity
questions, occurs when the level of a basic
variable is at its bound, such as zero.
When that is the case, additional analysis
is required to address what-if questions.
The information obtained from rates of
substitution directly addresses not only the
paradigm what if . . .? sensitivity ques-
tion, but also other questions of analysis,
such as the meaning of redundancy in the
interests of model management and deeper
understanding of the results.
The Analysis Processes
I conclude our preliminaries with an
overview of the analysis process. Three
types of analysis processes are (1) validity
testing, (2) postoptimal analysis, and (3)
debugging. Validity pertains to how well
the LP represents the world it is intended
to, but I include, in validity testing, ele-
ments of verification: whether what is in
the LP is what is believed to be there. Post-
optimal analysis is probing into the mean-
ing of an optimal solution. This includes
conventional questions of sensitivity, and it
includes some additional analyses that are
unconventional in the sense that they go
beyond textbook definitions. Debugging is
the process of diagnosing the cause of a
failure, for example, an infeasible LP.
33. The first thing one checks after a solver
has terminated is whether an optimal solu-
tion has been found. It could be that the
solver detected that the linear program is
infeasible or unbounded. This is called a
mechanical failure, and its detection
launches an analysis effort to diagnose the
cause in order to repair it.
Diagnosing the cause of a mechanical
failure is sometimes called debugging. De-
bugging also applies more generally to op-
timal linear programs, such as checking
that the results make sense. To make
sense, one must explain the results in
problem domain terms. Failure to do so
can lead to erroneous conclusions.
Once we have a run that is not a me-
chanical failure, we check some things that
are particular to the model, and I call this
validity testing. One case that occurred had
the following result. All the variables were
zero, contrary to what makes sense for the
problem. 1 discovered that demands were
inadvertently omitted from the scenario
specification, so a do-nothing solution had
minimum cost. This was easy to detect and
remedy just by looking at the right-hand
sides of the equations.
Other validity tests are not as easy, but
part of the maturation of a model is the
maturation of the personnel that run it.
The tests can become increasingly complex
34. with this maturation, so what comprises
the vahdity test depends upon accumu-
lated experiences with what can go wrong.
A deep validity test, for example, is to
impute price elasticities from scenarios.
This measures how quantities change with
respect to percentage changes in prices.
Suppose one has a sense that the price
elasticity of a product is about 10 per-
cent—that is, if the price doubles, the pro-
duction is expected to increase by 10 per-
cent. If the imputed value is more like 100
percent, something might be wrong with
the run. (To compute an elasticity, there
must be some other run, such as a base
case, against which to compare the cur-
rent run.)
July-August 1993 65
GREENBERG
In general, a validity test is a test of so-
lution values with a sense of what they
should be. The test looks for gross devia-
tions from the expected results. This is part
of model management, and it has so far
been passed on from one generation to an-
other by on-the-job training. The time is
undoubtedly right for an in-depth treat-
ment of applied Hnear programming that
includes a substantive description of model
management.
35. In sequels to this overview 1 shall pre-
sent the following examples of analysis.
—Price interpretation: What a dual price
means.
—Infeasibitity diagnosis: Why a mechani-
cal failure occurred.
—Forcing substructures: Separating eco-
nomic trade-offs from forced values.
Collectively, these illustrate some princi-
ples that have been used in practice and
some new ones introduced with the avail-
ability of ANALYZE [Greenberg 1983,
1987, 1988, 1989, 1992a, 1993], a software
system designed to provide computer-
assisted analysis, including rule-based
intelligence.
Acknowledgments
I gratefully acknowledge encouragement
and technical help from Frederic H.
Murphy. I also received valuable com-
ments from ]ohn Stone and an anonymous
referee that led to an improved version. In
addition, support for the ongoing project
that produced ANALYZE (among other
things) comes from a consortium of com-
panies: Amoco Oil Company, IBM, Shell
Development Company, Chesapeake Deci-
sion Sciences, GAMS Development Corp.,
Ketron Management Science, and
MathPro, Inc.
36. References
Baker, T. E. 1990, "Integrating AI/OR/DATA-
BASE technology for production planning
and scheduling," Technical report, Chesa-
peake Decision Sciences, Inc., New Provi-
dence, Nevv' lersey.
Chinneck, J. W. 1990, "Formulating processing
network models: Viability theory," Naval Re-
search Logistics, Vol. 37, No. 2, pp. 245-261.
Choobineh, I. 1991, "A diagramming technique
for representation of linear models," OMEGA
International journal of Management Science,
Vol. 19, No. 1, pp. 4 3 - 5 1 .
Dantzig, G. B. 1963, Linear Programming and Ex-
tensions, Princeton University Press, Prince-
ton, New Jersey.
Gal, T. 1979, Postoptimal Analyses, Parametric
Programming, and Related Topics, McGraw-
Hill International, New York.
Geoffrion, A. M. 1987, "An introduction to
structured modeling," Management Science,
Vol. 33, No. 5, pp. 547-588.
Geoffrion, A. M. 1989, "The formal aspects of
structured modeling," Operations Research,
Vol. 37, No. l , p p . 3 0 - 5 1 .
Glover, F. 1983, "Netform modeling," Draft
monograph. School of Business, University of
Colorado, Buulder, Colorado.
37. Glover, F.; Klingman, D.; and Phillips, N. 1990,
"Netform modeling and applications,"
interfaces. Vol. 20, No. 4, pp. 7-27.
Glover, F.; Klingman, D.; and Phillips, N. V.
1992, Network Models in Optimization and
Their Applications in Practice, Wiley-
Interscience, New York.
Greenberg, H. J. 1978, "A new approach to an-
alyze information contained in a model," in
Energy Models Validation and Assessment, ed.
S. I. Gass, NBS Pub. 569, National Bureau of
Standards, Gaithersburg, Maryland, pp. 5 1 7 -
524.
Greenberg, H. J. 1981, "Implementation aspects
of model management: A focus on computer-
assisted analysis," in Energy Policy Planning,
eds. B. A. Bayraktar, E. A. Gherniavsky,
M. A. Laughton, and L. E. Ruff, Plenum
Press, New York, pp. 443-459.
Greenberg, H. J, 1982, "A tutorial on computer-
assisted analysis," in Advanced Techniques in
the Practice of Operations Research, eds. H . ) .
Greenberg, F. H. Murphy, and S. H. Shaw,
American Elsevier, Nevy York, pp. 212-249.
INTERFACES 23:4 66
LINEAR PROGRAMS
38. Greenberg, H. J. 1983, "A functional descrip-
tion of ANALYZE: A computer-assisted anal-
ysis system for linear programming models,"
ACM Transactions on Mathematical Software,
Vol. 9, No, 1, pp, 18-56.
Greenberg, H, J. 1987, "ANALYZE: A com-
puter-assisted analysis system for linear pro-
gramming models," Operations Research Let-
ters. Vol, 6, No. 5, pp. 249-255.
Greenberg, H. J. 1988, "ANALYZE rulebase,"
in Mathematical Models for Decision Support,
eds. G. Mitra, H. j , Greenberg, F. A. Lootsma,
M. J. Rijckaert, and H-J. Zimmerman, Pro-
ceedings of NATO ASl, July 26-August 6,
Springer-Verlag, Berlin, pp. 229-238.
Greenberg, H. J. 1989, "Intelligent user inter-
faces for mathematical programming," Pro-
ceedings of Shell Conference: Logistics: Where
Ends Have to Meet, ed, C. Van Rijgn, Perga-
mon Press, Oxford, United Kingdom, pp.
198-223,
Greenberg, 11. J, 1992a, "Intelligent analysis
support for linear programs," Computers and
Chemical Engineering, Vol. 16, No, 7, pp, 6 5 9 -
674.
Greenberg, H. J. 1992b, ' A bibliography for the
development of an intelligent mathematical
programming system," Technical report.
Mathematics Department, University of Colo-
rado at Denver.
39. Greenberg, H. J. 1993, A Computer-Assisted
Analysis System for Mathematical Programming
Models and
Solution
s: A User's Guide for ANA-
LYZE. Kluwer, Boston, Massachusetts,
Greenberg, H, J.; Lundgren, J, R.; and Maybee,
J. S. 1989, "Extensions of graph inversion to
support an artificially intelligent modeling en-
vironment," Annals of Operations Research,
Vol, 21, No. , p p , 127-142.
Greenberg, H. j . and Murphy, F. H. forthcom-
ing, "Views of mathematical programming
models and their instances," Decision Support
Systems.
Jones, C. V, 1990, "An introduction to graph-
based modeling systems. Part 1: Overview,"
ORSA Journal on Computing, Vol, 2, No. 2, pp.
136-151.
40. Jones, C. V. 1991, "An introduction to graph-
based modeling systems. Part 2: Graph-gram-
mars and the implementation," ORSA Journal
on Computing, Vol. 2, No, 2, pp, 136-151,
Schrage, L. 1981, User's Manual for LINDO. Sci-
entific Press, Palo Alto, California.
Welch, Jr., J. S. 1987, "PAM—A practitioners'
approach to modeling," Management Science.
Vol, 33, No. 5, pp, 610-625.
Williams, H. P, 1978, Model Building in Mathe-
matical Programming, Wiley-Interscience, New
York.
July-August 1993 67