20.07.2013 Views

The Role of Software in Optimization and Operations Research

The Role of Software in Optimization and Operations Research

The Role of Software in Optimization and Operations Research

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

©UNESCO-EOLSS


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

THE ROLE OF SOFTWARE IN OPTIMIZATION AND<br />

OPERATIONS RESEARCH<br />

Harvey J. Greenberg<br />

University <strong>of</strong> Colorado at Denver, USA<br />

Keywords: optimization, mathematical programm<strong>in</strong>g, computational economics,<br />

mathematical programm<strong>in</strong>g systems<br />

Contents<br />

1. Introduction<br />

2. Historical Perspectives<br />

3. Obta<strong>in</strong><strong>in</strong>g a Solution<br />

4. Model<strong>in</strong>g<br />

5. Computer-Assisted Analysis<br />

6. Intelligent Mathematical Programm<strong>in</strong>g Systems<br />

7. Beyond the Horizon<br />

Acknowledgement<br />

Glossary<br />

Bibliography<br />

Biographical Sketch<br />

Summary<br />

This chapter presents the many roles <strong>of</strong> s<strong>of</strong>tware <strong>in</strong> optimization. Obta<strong>in</strong><strong>in</strong>g a solution<br />

has been the focus <strong>of</strong> mathematical programm<strong>in</strong>g, <strong>and</strong> now one must consider different<br />

architectures <strong>and</strong> algorithm environments. But the role goes beyond the numerical<br />

computation, <strong>in</strong>tegrat<strong>in</strong>g concerns for support<strong>in</strong>g optimization model<strong>in</strong>g <strong>and</strong> analysis.<br />

Beg<strong>in</strong>n<strong>in</strong>g with a historical perspective this chapter describes modern developments,<br />

<strong>in</strong>clud<strong>in</strong>g that <strong>of</strong> an <strong>in</strong>telligent mathematical programm<strong>in</strong>g system.<br />

1. Introduction<br />

<strong>The</strong> promise <strong>of</strong> operations research is to solve decision-mak<strong>in</strong>g problems, <strong>and</strong> a large<br />

part uses optimization. <strong>The</strong> mathematical program is given by the follow<strong>in</strong>g:<br />

optimize f( x): x∈ X, g( x) ≤ 0, h( x)<br />

= 0,<br />

n m<br />

where X ⊆ , f : X , g: , h: X , <strong>and</strong> optimize is either m<strong>in</strong>imize or<br />

maximize.<br />

In words, we seek to f<strong>in</strong>d a m<strong>in</strong>imum or maximum <strong>of</strong> a real-valued function, possibly<br />

subject to some mixture <strong>of</strong> <strong>in</strong>equality <strong>and</strong> equality constra<strong>in</strong>ts. <strong>The</strong>re are variations <strong>of</strong><br />

this form, such as multiple objectives, goals, uncerta<strong>in</strong>ty, <strong>and</strong> logical expressions. Each<br />

variation is approached by us<strong>in</strong>g the above st<strong>and</strong>ard form, <strong>and</strong> generally, this can be<br />

done <strong>in</strong> more than one way. More discussion <strong>of</strong> this <strong>and</strong> particular mathematical<br />

programs are given <strong>in</strong> the Mathematical Programm<strong>in</strong>g Glossary.<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)<br />

M<br />

(1)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

<strong>The</strong> basic role <strong>of</strong> s<strong>of</strong>tware is to enable an expression <strong>of</strong> a mathematical program, obta<strong>in</strong><br />

a solution <strong>and</strong> provide tools to support model management <strong>and</strong> analysis <strong>of</strong> the results. In<br />

this chapter, we beg<strong>in</strong> with some historical perspectives about s<strong>of</strong>tware <strong>and</strong><br />

optimization, followed by overviews <strong>of</strong> s<strong>of</strong>tware designed to obta<strong>in</strong> a solution. S<strong>of</strong>tware<br />

for model<strong>in</strong>g has its own history, but the focus here is on current systems <strong>and</strong> needs for<br />

future designs. <strong>The</strong>n, computer-assisted analysis is expla<strong>in</strong>ed, draw<strong>in</strong>g from two bodies<br />

<strong>of</strong> work <strong>and</strong> po<strong>in</strong>t<strong>in</strong>g towards opportunities for enhanced roles <strong>of</strong> s<strong>of</strong>tware. This leads<br />

naturally <strong>in</strong>to a description <strong>of</strong> <strong>in</strong>telligent mathematical programm<strong>in</strong>g systems, mark<strong>in</strong>g<br />

new roles for future systems. <strong>The</strong> conclud<strong>in</strong>g section discusses current developments<br />

<strong>and</strong> the role <strong>of</strong> s<strong>of</strong>tware <strong>in</strong> the broader field <strong>of</strong> operations research.<br />

2. Historical Perspectives<br />

Orchard-Hays gave an excellent historical account <strong>of</strong> the early years <strong>of</strong> mathematical<br />

programm<strong>in</strong>g <strong>and</strong> its <strong>in</strong>separable ties to the comput<strong>in</strong>g field. (Also see his companion<br />

papers, as well as others, <strong>in</strong> the same proceed<strong>in</strong>gs.) Mathematical programm<strong>in</strong>g was<br />

treated as a process, rather than an object. As such, people needed a way to express their<br />

model, <strong>of</strong>ten with a general language like FORTRAN or with what were then called<br />

matrix generators, which evolved <strong>in</strong>to model<strong>in</strong>g languages. Some evolved further <strong>in</strong>to<br />

model<strong>in</strong>g systems.<br />

This emerged <strong>in</strong> the early years, when system was used to denote the fact that it<br />

conta<strong>in</strong>ed complete optimization, tak<strong>in</strong>g data as an <strong>in</strong>put file <strong>and</strong> produc<strong>in</strong>g a solution<br />

file, rather than be<strong>in</strong>g a subrout<strong>in</strong>e library. Currently, both the mathematical<br />

programm<strong>in</strong>g system (MPS) <strong>and</strong> the library approach (e.g., IBM OSL) are used. With<br />

the growth <strong>of</strong> object-oriented programm<strong>in</strong>g, there is a third paradigm: a shell that serves<br />

as a ma<strong>in</strong> program with generic classes; the programmer adds particular classes with<strong>in</strong><br />

this framework to represent a particular problem <strong>and</strong> algorithm. Current systems that<br />

use this paradigm are ABACUS, MINTO <strong>and</strong> PICO.<br />

<strong>The</strong>re were significant developments <strong>in</strong> the 1980s, not the least <strong>of</strong> which was the<br />

explosive growth <strong>of</strong> affordable computers. Waren, et al., give the status <strong>of</strong> nonl<strong>in</strong>ear<br />

programm<strong>in</strong>g (NLP), with the emergence <strong>of</strong> PCs cited as a significant change that<br />

affects how algorithms are implemented <strong>and</strong> what has changed <strong>in</strong> importance, e.g.,<br />

space (disk <strong>and</strong> memory) is no longer an issue (also see Fourer's guide <strong>in</strong><br />

Bibliography). This is <strong>in</strong> some contrast to most <strong>of</strong> the more recent surveys, which still<br />

emphasize the algorithms apart from their implementation.<br />

In <strong>in</strong>teger programm<strong>in</strong>g, a recent plenary talk by Ralph Gomory suggested that modern<br />

computers can make some <strong>of</strong> the group-theoretic ideas, which had been ab<strong>and</strong>oned <strong>in</strong><br />

the 1970s, more practical. Follow<strong>in</strong>g this note, Karla H<strong>of</strong>fman gave a perceptive <strong>in</strong>sight<br />

us<strong>in</strong>g d<strong>in</strong>osaurs fly<strong>in</strong>g jets as a metaphor to emphasize the role <strong>of</strong> comput<strong>in</strong>g power<br />

runn<strong>in</strong>g old algorithms. Her primary assessment, however, was that it is the formulation<br />

that has the most impact on solvability, <strong>and</strong> this is the theme to consider as the modern<br />

role for s<strong>of</strong>tware. In fact, this was a major goal <strong>of</strong> the project to develop an Intelligent<br />

Mathematical Programm<strong>in</strong>g System (IMPS).<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

3. Obta<strong>in</strong><strong>in</strong>g a Solution<br />

A solution is a global optimum, or a declaration that no optimum exists, preferably with<br />

a reason, such as <strong>in</strong>feasible or unbounded. S<strong>of</strong>tware cannot guarantee that a correct<br />

conclusion is reached. One reason is computational error, caus<strong>in</strong>g <strong>in</strong>accurate results,<br />

even for l<strong>in</strong>ear programs. Some problems use only <strong>in</strong>teger arithmetic, where there is no<br />

computational error, but they are typically hard problems that cannot guarantee an<br />

accurate result due to how long it would take to consider the large number <strong>of</strong> possible<br />

solutions. It is this latter source <strong>of</strong> <strong>in</strong>accuracy, that is the cutt<strong>in</strong>g edge <strong>of</strong> optimization<br />

s<strong>of</strong>tware.<br />

Several recent surveys provide details on the current state <strong>of</strong> the art <strong>in</strong> obta<strong>in</strong><strong>in</strong>g a global<br />

optimum, draw<strong>in</strong>g from classical methods based on local search (e.g., on calculus).<br />

Because we cannot obta<strong>in</strong> exact solutions to hard problems <strong>in</strong> a practical amount <strong>of</strong><br />

time, two basic approaches have been taken: metaheuristics, such as a Tabu Search, <strong>and</strong><br />

approximation algorithms with guaranteed bounds. S<strong>of</strong>tware to implement these can<br />

make a difference <strong>in</strong> their performance (see Global <strong>Optimization</strong>).<br />

In discrete optimization some exact methods exist for special situations, like dynamic<br />

programm<strong>in</strong>g, , but the branch <strong>and</strong> bound/cut rema<strong>in</strong>s the primary exact method. It is<br />

also used <strong>in</strong> cont<strong>in</strong>uous (global) optimization, so branch <strong>and</strong> bound is a general exact<br />

method. <strong>The</strong>se typically use l<strong>in</strong>ear programm<strong>in</strong>g to solve relaxation problems for<br />

bounds, cut generation, <strong>and</strong> search guidance. <strong>The</strong> relaxations drop <strong>in</strong>teger restrictions,<br />

<strong>and</strong> l<strong>in</strong>ear functions are used to approximate nonl<strong>in</strong>ear ones (typically us<strong>in</strong>g the Taylor<br />

expansion). A s<strong>of</strong>tware issue is how fast the l<strong>in</strong>ear programs are solved when used this<br />

way. <strong>The</strong> l<strong>in</strong>ear program (LP) relaxation <strong>of</strong> a comb<strong>in</strong>atorial optimization problem has<br />

very different characteristics than a true LP, such as one that represents product<br />

distribution. This implies, for example, that the LP algorithm control parameters need<br />

adjustments from their default values s<strong>in</strong>ce they are typically tuned with test problems<br />

that are true LPs (see L<strong>in</strong>ear Programm<strong>in</strong>g, Dynamic Programm<strong>in</strong>g <strong>and</strong> Bellman's<br />

Pr<strong>in</strong>ciple , Comb<strong>in</strong>atorial <strong>Optimization</strong> <strong>and</strong> Integer Programm<strong>in</strong>g).<br />

3.1. Data structures, Controls <strong>and</strong> Interfaces<br />

Wirth's charm<strong>in</strong>g equation, Algorithms + Data Structures = Programs, is not quite<br />

enough to be a system capable <strong>of</strong> solv<strong>in</strong>g optimization problems with comput<strong>in</strong>g<br />

paradigms available <strong>in</strong> 2002. To it, we must add:<br />

Programs + Controls + Interfaces = Systems<br />

<strong>The</strong>re have always been algorithm controls, but <strong>in</strong>terfaces have become much more<br />

sophisticated, especially with graphics.<br />

Most publications <strong>in</strong> mathematical programm<strong>in</strong>g present algorithms, but very few<br />

describe the data structures. Fundamentally, an algorithm is a precise sequence <strong>of</strong> steps.<br />

We <strong>of</strong>ten refer to an algorithm family, or algorithm strategy, to mean some steps are not<br />

completely def<strong>in</strong>ed, leav<strong>in</strong>g room for tactical variations. For example, Figure 1 gives<br />

the simplex algorithm strategy that uses the 2-phase method <strong>of</strong> gett<strong>in</strong>g an <strong>in</strong>itial feasible<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

solution (or ascerta<strong>in</strong><strong>in</strong>g that none exists), leav<strong>in</strong>g such steps as pric<strong>in</strong>g open to different<br />

algorithm tactics.<br />

Figure1: Two-Phase Simplex Algorithm Strategy<br />

A data structure is how we store the <strong>in</strong>formation. Even a specific algorithm, such as<br />

Dantzig's Specific Simplex Method, does not specify the type <strong>of</strong> arithmetic or other<br />

th<strong>in</strong>gs that depend upon the data structure (<strong>and</strong> the comput<strong>in</strong>g environment). In the case<br />

<strong>of</strong> a simplex algorithm, a typical data structure is to store the data <strong>in</strong> a sparse format.<br />

For example, the LP matrix is stored by columns with each column hav<strong>in</strong>g a pair <strong>of</strong> data<br />

entries for each nonzero:<br />

row <strong>in</strong>dex | value<br />

In particular, suppose we have a transportation problem with s sources <strong>and</strong> d<br />

dest<strong>in</strong>ations. <strong>The</strong> dimensions <strong>of</strong> the matrix are m = s + d rows (one per node) <strong>and</strong> n = sd<br />

columns (one per arc). Each column <strong>of</strong> the node-arc <strong>in</strong>cidence matrix has exactly two<br />

non-zeroes, -1 for the source <strong>and</strong> +1 for the dest<strong>in</strong>ation. <strong>The</strong> total number <strong>of</strong> nonzeroes,<br />

therefore, is 2n, <strong>and</strong> its density is 2n<br />

2<br />

, which reduces to . <strong>The</strong> greater the number <strong>of</strong><br />

mn m<br />

nodes (m), the greater the sparsity, because the density becomes small as m becomes<br />

large. To illustrate, consider the follow<strong>in</strong>g node-arc <strong>in</strong>cidence matrix, which represents<br />

a transportation problem that has 2 sources <strong>and</strong> 3 dest<strong>in</strong>ations.<br />

⎡−1 −1 −1<br />

0 0 0⎤<br />

⎢<br />

0 0 0 1 1 1<br />

⎥<br />

⎢<br />

− − −<br />

⎥<br />

A = ⎢ 1 0 0 1 0 0⎥<br />

⎢ ⎥<br />

⎢ 0 1 0 0 1 0⎥<br />

⎢<br />

⎣ 0 0 1 0 0 1⎥<br />

⎦<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)<br />

(2)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

<strong>The</strong>re are 12 nonzero entries <strong>in</strong> this 5 × 6 matrix, so its density is 12<br />

30 , which is 0.4. For<br />

more realistic sizes, where m 1000 , the density is less than 1%. Many large LPs have<br />

an embedded network structure, which is one reason they tend to be very sparse.<br />

Nonl<strong>in</strong>ear functions are represented by their parse tree, or someth<strong>in</strong>g very similar.<br />

Figure 2 shows an example.<br />

Figure 2: Parse Tree for<br />

2 3<br />

1 2 = 1 − 1 2 + 2<br />

f ( x ; x ) x x x x<br />

Solvers call upon this tree for function evaluation. Modern methods use automatic<br />

differentiation, which stores nonl<strong>in</strong>ear functions <strong>in</strong> a similar data structure, designed for<br />

rapid calculations <strong>of</strong> the function <strong>and</strong> its derivatives (if they exist).<br />

3.2. Parallel Algorithms<br />

One <strong>of</strong> the current topics <strong>of</strong> research is how to design parallel algorithms. An early use<br />

<strong>of</strong> parallel architecture was for Dantzig-Wolfe decomposition <strong>in</strong> LP. Many types <strong>of</strong><br />

architectures <strong>and</strong> algorithms are <strong>in</strong> the text by Bertsekas <strong>and</strong> Tsitsiklis, <strong>and</strong> more recent<br />

ideas are <strong>in</strong> proceed<strong>in</strong>gs, notably those edited by Heath, et al. <strong>and</strong> by Pardalos, et al.<br />

To illustrate how a parallel architecture can be used effectively, consider a<br />

parallelization <strong>of</strong> the conjugate gradient method (see Nonl<strong>in</strong>ear Programm<strong>in</strong>g). We are<br />

given a quadratic form, 1 T<br />

x Qx − cx , where Q is an n × n symmetric, positive-def<strong>in</strong>ite<br />

2<br />

matrix. We know its (unique) m<strong>in</strong>imum occurs at the solution to the equation, Qx = c,<br />

<strong>and</strong> one way to compute this is by the follow<strong>in</strong>g iterations:<br />

t+ 1 t t t<br />

x = x + α d ,<br />

(3)<br />

where x 0 is given, d 0 = − g 0 = c − Qx 0 , <strong>and</strong><br />

t t<br />

t gd<br />

α =− (4)<br />

t T t<br />

( d ) Qd<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

t t T t 1<br />

( ) β t−<br />

d =− g + d<br />

(5)<br />

t−1 T t−1<br />

t ( g ) Qd<br />

β =<br />

t−1 T t−<br />

1<br />

( d ) Qd<br />

(6)<br />

t t T T<br />

( )<br />

2<br />

1 ( )<br />

g = x Q− c =∇ x Qx− cx<br />

(7)<br />

x= xt<br />

Let us assess the computations at an iteration. At the beg<strong>in</strong>n<strong>in</strong>g <strong>of</strong> iteration t, we have<br />

already computed x t , d t-1 , <strong>and</strong> g t-1 (g t-1 ) T . We must compute g t = Qx t − c <strong>and</strong> g t (g t ) T ;<br />

from these, we use equations (6) <strong>and</strong> (5) to compute β t <strong>and</strong> d t , respectively. F<strong>in</strong>ally, we<br />

use equation (3) to compute x t+1 , thereby complet<strong>in</strong>g the iteration.<br />

Suppose p ≥ n, so we can assign a processor to compute results perta<strong>in</strong><strong>in</strong>g to one<br />

coord<strong>in</strong>ate <strong>of</strong> the vectors. Let processor i be given the i th row <strong>of</strong> Q, denoted Qi•. <strong>The</strong><br />

vector Qx t - c is done completely <strong>in</strong> parallel, with processor i comput<strong>in</strong>g Qi• x t − ci.<br />

<strong>The</strong>se are communicated to a designated processor, which thus obta<strong>in</strong>s g t . This<br />

processor could compute g t (g t ) T , or it could broadcast g t to the other processors <strong>and</strong> have<br />

them compute ( ) 2 t<br />

gi<br />

<strong>and</strong> send its value back for accumulation. Which is better depends<br />

on communication time versus the time to compute an <strong>in</strong>ner product on the ma<strong>in</strong><br />

processor. Alternative schemes use hierarchies to accumulate <strong>in</strong>ner products, <strong>and</strong> much<br />

<strong>of</strong> the design depends not only upon the particular architecture, but also upon whether<br />

the matrix <strong>and</strong> vectors are sparse.<br />

This illustrates the general notion that one way to design a parallel algorithm is to use<br />

parallel l<strong>in</strong>ear algebra. Many optimization algorithms can be parallelized this way, but<br />

some do not use l<strong>in</strong>ear algebra centrally. In particular, comb<strong>in</strong>atorial optimization<br />

algorithms can take other advantage <strong>of</strong> parallel computation.<br />

Consider the dynamic programm<strong>in</strong>g recursion for the 0-1 knapsack problem:<br />

f ( β ) = max{ f ( β), c + f ( β −a )} for β ∈ { a , a + 1, ..., b}.<br />

(8)<br />

j j−1 j j−1 j j j<br />

for j = 1, …, n, where f0 ≡ 0 (see Discrete <strong>Optimization</strong>, Dynamic Programm<strong>in</strong>g <strong>and</strong><br />

Bellman's Pr<strong>in</strong>ciple ). Suppose we decompose each iteration by hav<strong>in</strong>g each processor<br />

compute fj for an equal number <strong>of</strong> state values. For notational convenience, let b = kp<br />

for some positive <strong>in</strong>teger, k. In words, let the total size <strong>of</strong> the knapsack be an <strong>in</strong>teger<br />

multiple <strong>of</strong> the number <strong>of</strong> processors. This means that each processor has k state values<br />

to compute, <strong>and</strong> each takes the same amount <strong>of</strong> time. This is clearly a logical<br />

decomposition, but its merit depends on communication time, which depends upon the<br />

particular parallel architecture.<br />

Schedul<strong>in</strong>g tasks to processors is the key problem <strong>in</strong> design<strong>in</strong>g a parallel algorithm.<br />

Load balanc<strong>in</strong>g is a proxy goal for maximiz<strong>in</strong>g the speedup, whose reciprocal is the<br />

fraction <strong>of</strong> the best possible serial computation time. Let T * (s) be the best time it takes<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

to solve a problem <strong>in</strong> some class <strong>of</strong> size s on a serial computer. (<strong>The</strong> "size" is frequently<br />

taken to mean the number <strong>of</strong> variables, but it could account for other data values.) Let<br />

Tp(s) be the time it takes a parallel algorithm to solve the same problem with p<br />

processors. <strong>The</strong>n,<br />

* ()<br />

T s<br />

Speedup = S p () s = .<br />

(9)<br />

T () s<br />

p<br />

<strong>The</strong> best one can hope for is Sp(s) = p — equivalently, Tp(s) = T * (s)/p. This occurs if the<br />

best serial algorithm can have its computations decomposed perfectly <strong>in</strong>to p parts, each<br />

tak<strong>in</strong>g the same amount <strong>of</strong> time. This could never be fully achieved, even with perfect<br />

load balanc<strong>in</strong>g, due to message pass<strong>in</strong>g that is needed − that is, the <strong>in</strong>formation<br />

produced by a processor must be communicated to at least one other processor.<br />

<strong>The</strong> speedup <strong>of</strong> the dynamic programm<strong>in</strong>g parallelization is nearly l<strong>in</strong>ear. We have<br />

T ( n, b)<br />

Sp( n, b)<br />

=<br />

,<br />

*<br />

T ( n, k) + M( n, k)<br />

*<br />

where M(n, k) is the communication time for n variables <strong>and</strong> k states. <strong>The</strong> size is given<br />

as the number <strong>of</strong> variables (n) <strong>and</strong> the number <strong>of</strong> states (b), but we can consider the cost<br />

per iteration that is, divide by n, s<strong>in</strong>ce both algorithms perform n iterations. <strong>The</strong>n,<br />

τ ( kp)<br />

Sp( n, kp)<br />

=<br />

.<br />

τ( k) + μ(<br />

k)<br />

Further, each state requires a simple comparison <strong>of</strong> two values plus a storage <strong>of</strong> the<br />

result, so τ(kp) = pτ (k). Substitut<strong>in</strong>g this <strong>in</strong>to the above expression simplifies the<br />

speedup, which is now <strong>in</strong>dependent <strong>of</strong> the number <strong>of</strong> variables:<br />

p<br />

Sp( n, b)<br />

= ,<br />

μ(<br />

k)<br />

1+<br />

τ ( k)<br />

<strong>The</strong> speedup depends on the communication time relative to the computation time,<br />

μ(<br />

k)<br />

which is the ratio: . We can see that τ ( K ) ≈ α k for some constant α, but μ(k)<br />

τ ( k)<br />

could be O(k) or O(log k), depend<strong>in</strong>g upon the architecture. A worst case has<br />

Sp( n, kp) ≈ γ p for some constant, γ, which is still very good for large state values.<br />

Doubl<strong>in</strong>g the number <strong>of</strong> processors doubles the speedup. <strong>The</strong> more favorable case is<br />

when μ (k) = O(log k), for then limk→∞ Sp(n, kp) → p. Currently, one <strong>of</strong> the most active<br />

places for such research is S<strong>and</strong>ia National Laboratories, with the ASCI red mach<strong>in</strong>e<br />

that consists <strong>of</strong> more than 9000 tightly-coupled Intel processors.<br />

<strong>The</strong>y have an object-oriented Parallel Integer <strong>and</strong> Comb<strong>in</strong>atorial <strong>Optimization</strong> code,<br />

called PICO. Despite its title, PICO is a framework designed for general parallel branch<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)<br />

(10)<br />

(11)<br />

(12)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

<strong>and</strong> bound, <strong>in</strong>clud<strong>in</strong>g nonl<strong>in</strong>ear programs with cont<strong>in</strong>uous-valued variables. While there<br />

have been some efforts to use parallel algorithms for hard problems, this is still a<br />

frontier with many design decisions <strong>and</strong> experiments ahead. One class <strong>of</strong> algorithms<br />

that have a natural decomposition to balance the load among the processors is the class<br />

<strong>of</strong> stochastic, population-based, evolutionary algorithms.<br />

Some classes <strong>of</strong> hard nonl<strong>in</strong>ear problems, such as <strong>in</strong> design optimization, <strong>in</strong>volve<br />

expensive functional evaluations. Often, f (x) is the solution to a differential equation or<br />

a simulation, where x is a vector <strong>of</strong> design parameters. Although x is not large, obta<strong>in</strong><strong>in</strong>g<br />

f (x) can take hours. Parallel algorithms are be<strong>in</strong>g developed for such problems, some<br />

with a speedup on the order <strong>of</strong> p .<br />

4. Model<strong>in</strong>g<br />

Many model<strong>in</strong>g languages <strong>and</strong> systems have appeared over the past four decades; some<br />

have disappeared. Each current language requires the modeler to adhere to a<br />

predeterm<strong>in</strong>ed way <strong>of</strong> express<strong>in</strong>g the model, <strong>and</strong> we shall discuss some <strong>of</strong> them <strong>in</strong> the<br />

next section. An ideal system is one where the adaptation is the burden <strong>of</strong> the computer,<br />

not the human. As we have different cognitive skills, some algebraic, some processoriented,<br />

some graphic, <strong>and</strong> various mixtures, the role <strong>of</strong> s<strong>of</strong>tware is that the model<strong>in</strong>g<br />

system ought to change its mode to suit the modeler, not the other way around.<br />

Fundamentally, a model can be divided <strong>in</strong>to its parts, as shown <strong>in</strong> Figure 3, where a<br />

model is composed <strong>of</strong> objects <strong>and</strong> relations among those objects. In an optimization<br />

model, there are two fundamental types <strong>of</strong> objects: data <strong>and</strong> decision. Data objects<br />

<strong>in</strong>clude not only numerical values, like parameters, but also symbolic objects, like sets<br />

<strong>of</strong> regions or a network topology, which can vary from one scenario to another. <strong>The</strong><br />

decision objects <strong>in</strong>clude not only variables, but also functionals, which could have other<br />

objects <strong>in</strong> its doma<strong>in</strong>.<br />

<strong>The</strong>re are three types <strong>of</strong> model relations: constra<strong>in</strong>ts, conditions <strong>and</strong> learn<strong>in</strong>g.<br />

Constra<strong>in</strong>ts can be <strong>of</strong> the canonical form, g(x) ≤ 0, where x is a vector <strong>of</strong> decision<br />

objects. This form hides the dependence <strong>of</strong> g on data objects, especially on "primary<br />

data" objects used to compute what the solver sees. For example, the cost <strong>of</strong> capital<br />

might be one <strong>of</strong> the primary data values, from which the model<strong>in</strong>g system is directed to<br />

compute cost coefficients that appear <strong>in</strong> g. Logical constra<strong>in</strong>ts are prevalent, such as<br />

"Select at most 1 from this set…". Most languages do not permit the expression to be <strong>in</strong><br />

English, <strong>and</strong> the modeler must bear the burden <strong>of</strong> how to express this <strong>in</strong> a way that is<br />

eventually understood by the solver. An advantage <strong>of</strong> constra<strong>in</strong>ed logic programm<strong>in</strong>g<br />

(CLP) is that it allows us to express logical relations more naturally than mathematical<br />

programm<strong>in</strong>g languages. <strong>The</strong> conditions perta<strong>in</strong> to when certa<strong>in</strong> objects or constra<strong>in</strong>t<br />

relations are <strong>in</strong> effect. For example, one might build a general network to accommodate<br />

any scenario, then use data to determ<strong>in</strong>e whether a supply constra<strong>in</strong>t or a transportation<br />

variable should be generated. Admissibility conditions perta<strong>in</strong> to data values that are<br />

checked to prevent erroneous scenarios.<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

Figure 3: Anatomy <strong>of</strong> a Model<br />

F<strong>in</strong>ally, learn<strong>in</strong>g is another level <strong>of</strong> relations that can be part <strong>of</strong> an artificially <strong>in</strong>telligent<br />

environment for model formulation <strong>and</strong> management. It <strong>in</strong>cludes learn<strong>in</strong>g relations<br />

among objects from experience with some scenarios, even without human feedback.<br />

One example is when it detects an <strong>in</strong>feasibility <strong>and</strong> diagnoses its cause. This could lead<br />

to an automatic check for those conditions <strong>in</strong> future scenarios.<br />

<strong>The</strong> diagram <strong>in</strong> Figure 3 is simplified. It does not show, for example, whether an object<br />

or relation is primitive or implied; it does not show attributes or other elements that<br />

require discussion if we were to consider implementation. Its purpose is simply to<br />

highlight an anatomy <strong>in</strong> tune with the role <strong>of</strong> s<strong>of</strong>tware <strong>in</strong> optimization, start<strong>in</strong>g with<br />

model formulation. Also, the model<strong>in</strong>g process conta<strong>in</strong>s more than models; it also<br />

conta<strong>in</strong>s guidance for solvers, model management aids, <strong>and</strong> rules to support analysis <strong>of</strong><br />

<strong>in</strong>stances.<br />

4.1. Expressive Power<br />

<strong>The</strong> expressive power <strong>of</strong> a language is its ability to represent different k<strong>in</strong>ds <strong>of</strong> objects<br />

<strong>and</strong> relations. <strong>The</strong>oretically, the languages <strong>in</strong> use today have the same expressive power,<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

but practically, they do differ. Some languages emphasize that they are algebraic, but<br />

what does this mean? What languages are not algebraic? Essentially, an algebraic<br />

language is one that allows you to express the optimization model the way you would<br />

on a blackboard or <strong>in</strong> a textbook. It is some variant <strong>of</strong> the follow<strong>in</strong>g:<br />

Let x(i, j, k) denote the level <strong>of</strong> transportation <strong>of</strong> the k th material from i to j … <strong>The</strong>re is<br />

limited supply: x(, i j, k) S() i ≤ ∑ …<br />

jk ,<br />

Languages like AMPL <strong>and</strong> GAMS are like this. Older languages, like MAGEN/OMNI<br />

<strong>and</strong> RPMS/GAMMA, are process oriented. <strong>The</strong>y would express activities, like the<br />

follow<strong>in</strong>g:<br />

Let x(i, k) denote the level <strong>of</strong> operation <strong>of</strong> a distillation unit <strong>in</strong> region i at mode k … It<br />

uses materials M(i, k) <strong>and</strong> has product yields Y (i, k); capacity is limited by C(i, k).<br />

<strong>The</strong>se have been unnecessarily contentious, <strong>and</strong> now there is another paradigm, based<br />

on logical expressions, called logic programm<strong>in</strong>g. We commonly refer to constra<strong>in</strong>ed<br />

logic programm<strong>in</strong>g to mean logical expressions <strong>of</strong> what to do, subject to constra<strong>in</strong>ts<br />

like:<br />

Choose 1 from the set...<br />

4.2. Logic Programm<strong>in</strong>g <strong>and</strong> <strong>Optimization</strong><br />

<strong>The</strong>re has been a gradual merger <strong>of</strong> operations research methodology with logic<br />

programm<strong>in</strong>g. <strong>The</strong> role <strong>of</strong> the s<strong>of</strong>tware is to provide a different paradigm for express<strong>in</strong>g<br />

comb<strong>in</strong>atorial optimization problems, like schedul<strong>in</strong>g. Rather than require the modeler<br />

to specify some system <strong>of</strong> <strong>in</strong>equalities; constra<strong>in</strong>ts, such as job i must precede job j, can<br />

be expressed more naturally.<br />

To illustrate, consider the travel<strong>in</strong>g salesman problem. <strong>The</strong>re are many <strong>in</strong>teger<br />

programm<strong>in</strong>g formulations, but constra<strong>in</strong>t logic programm<strong>in</strong>g can represent it<br />

differently. Let yi be from the set <strong>of</strong> cities, {1, …, n}. To express the constra<strong>in</strong>t that<br />

every city be visited exactly once, the logical constra<strong>in</strong>t is all different {yi}, <strong>and</strong> that is<br />

precisely all one must specify! This is beyond the expressive power <strong>of</strong> <strong>in</strong>teger<br />

programm<strong>in</strong>g, add<strong>in</strong>g new capabilities to optimization model<strong>in</strong>g, as well as new<br />

opportunities to express bad formulations.<br />

5. Computer-Assisted Analysis<br />

Obta<strong>in</strong><strong>in</strong>g a solution is not enough, <strong>and</strong> we have just described the role <strong>of</strong> s<strong>of</strong>tware <strong>in</strong><br />

formulat<strong>in</strong>g <strong>and</strong> manag<strong>in</strong>g models. In addition, the role <strong>of</strong> optimization s<strong>of</strong>tware must<br />

support analysis. At least <strong>in</strong> l<strong>in</strong>ear programm<strong>in</strong>g, we <strong>of</strong>ten solve larger problems than<br />

we can underst<strong>and</strong>. It is not only post-optimal analysis that is important, but also<br />

debugg<strong>in</strong>g tools to deal with anomalies <strong>and</strong> <strong>in</strong>feasibility diagnosis. This is a underdeveloped<br />

area, which began to emerge <strong>in</strong> the late 1970s. <strong>The</strong> only general-purpose<br />

s<strong>of</strong>tware currently available are ANALYZE, GMSCHK <strong>and</strong> MProbe. Some model<strong>in</strong>g<br />

systems, like ASCEND, MIMI <strong>and</strong> XPRESS-LP, have some analysis aids.<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

In this section, this function is divided <strong>in</strong>to some overlapp<strong>in</strong>g parts <strong>and</strong> elaboration is<br />

given along the l<strong>in</strong>es that are <strong>in</strong> a recent survey by Ch<strong>in</strong>neck <strong>and</strong> Greenberg.<br />

5.1. Query <strong>and</strong> Report<strong>in</strong>g<br />

A fundamental part <strong>of</strong> optimization s<strong>of</strong>tware is to be able to browse a model <strong>in</strong>stance<br />

<strong>and</strong> its solution obta<strong>in</strong>ed by the optimizer. (<strong>The</strong> solution is not necessarily optimal, as <strong>in</strong><br />

debugg<strong>in</strong>g an <strong>in</strong>feasible <strong>in</strong>stance.) Model<strong>in</strong>g languages provide only very basic report<br />

writ<strong>in</strong>g capabilities, with little or no debugg<strong>in</strong>g aids. ANALYZE enables multiple-view<br />

query <strong>and</strong> syntax-directed report writ<strong>in</strong>g for mixed-<strong>in</strong>teger l<strong>in</strong>ear programs, but it does<br />

not have an <strong>in</strong>terface with all model<strong>in</strong>g languages. Rutherford provides extensive report<br />

writ<strong>in</strong>g tools for GAMS.<br />

To appreciate the need for query <strong>and</strong> report<strong>in</strong>g, consider the LP:<br />

m<strong>in</strong> cx : x ≥ 0, Ax = b,<br />

(13)<br />

where A is m × n <strong>and</strong> the vectors conform to those dimensions. When m <strong>and</strong> n are small<br />

enough to see A on one screen (or a sheet <strong>of</strong> paper), we have no problem. When,<br />

realistically, the LP has many thous<strong>and</strong>s <strong>of</strong> rows <strong>and</strong> columns, we face problems <strong>of</strong><br />

what to see <strong>and</strong> how to see it.<br />

<strong>The</strong> functions <strong>of</strong> query <strong>and</strong> report<strong>in</strong>g extend to verification <strong>and</strong> validation. <strong>The</strong> former<br />

perta<strong>in</strong>s to know<strong>in</strong>g that what is <strong>in</strong> the computer-resident model is what is believed to<br />

be there. <strong>The</strong> latter perta<strong>in</strong>s to how well the model represents the world for which it is<br />

<strong>in</strong>tended. Both are fundamental to model management.<br />

5.2. Debugg<strong>in</strong>g<br />

Debugg<strong>in</strong>g is f<strong>in</strong>d<strong>in</strong>g out what went wrong when the result is <strong>in</strong>feasible or anomalous.<br />

<strong>The</strong> only s<strong>of</strong>tware systems designed to assist with this are ANALYZE, GMSCHK,<br />

MPRobe, <strong>and</strong> a suite <strong>of</strong> Ch<strong>in</strong>neck's IIS codes. <strong>The</strong> approaches to <strong>in</strong>feasibility diagnosis<br />

are as follows:<br />

Navigation: This is simply <strong>in</strong>teractive query with a system like ANALYZE,<br />

generally by someone who is expert <strong>in</strong> know<strong>in</strong>g the model.<br />

Parametric<br />

Programm<strong>in</strong>g: This beg<strong>in</strong>s with a feasible system for a parameter, θ, such as<br />

Ax = θb, x ≥ 0. This is feasible for θ = 0 (possibly for θ > 0) <strong>and</strong><br />

parametric programm<strong>in</strong>g is used to drive θ to 1. It will reach a<br />

feasibility threshold <strong>in</strong> (0,1), show<strong>in</strong>g blockage, such as <strong>in</strong>sufficient<br />

supply or capacity.<br />

Phase I<br />

Aggregation: This applies only to l<strong>in</strong>ear programs. It rests on the fact that the dual<br />

variables associated with a phase I solution comprise a solution to the<br />

alternative system. If {Ax = b, L ≤ x ≤ U} is <strong>in</strong>feasible <strong>and</strong> π is a<br />

Phase I dual solution, the s<strong>in</strong>gle equation, πAx = πb is <strong>in</strong>consistent<br />

with the bounds, L ≤ x ≤ U. This reveals which activities are <strong>in</strong>volved<br />

those with nonzero coefficients, πAj ≠ 0 <strong>and</strong> a block<strong>in</strong>g bound.<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

Logical Test<strong>in</strong>g: This applies to when there are b<strong>in</strong>ary variables that represent logical<br />

truth-values. Topological sort<strong>in</strong>g is used to reveal <strong>in</strong>consistencies,<br />

such as a cycle <strong>of</strong> precedence relations. <strong>The</strong>se tests extend to Horn<br />

clauses.<br />

Exploit<strong>in</strong>g<br />

Structures: Special structures <strong>in</strong>clude block <strong>and</strong> l<strong>in</strong>k (which <strong>in</strong>cludes netforms)<br />

<strong>and</strong> <strong>in</strong>ventory equations.<br />

Partition<strong>in</strong>g: This is a powerful approach, which can be fully automated. <strong>The</strong> idea<br />

is to f<strong>in</strong>d a partition <strong>of</strong> the orig<strong>in</strong>al system <strong>of</strong> constra<strong>in</strong>ts <strong>and</strong> explore<br />

at least one <strong>of</strong> those subsystems for probable cause. One type <strong>of</strong><br />

subsystem is the irreducible <strong>in</strong>feasible subsystem (IIS). This is<br />

<strong>in</strong>feasible but the removal <strong>of</strong> any one constra<strong>in</strong>t renders the<br />

subsystem feasible. A necessary condition to become feasible is that<br />

at least one constra<strong>in</strong>t <strong>in</strong> each IIS be deleted, or adjusted <strong>in</strong> a way that<br />

makes the subsystem feasible. A sufficient condition to become<br />

feasible is that at least one constra<strong>in</strong>t from every IIS be deleted. (<strong>The</strong><br />

IISs can overlap, so the removal <strong>of</strong> one constra<strong>in</strong>t that is <strong>in</strong> every IIS<br />

would render a feasible subsystem.)<br />

<strong>The</strong>re are tactical variations with<strong>in</strong> these approaches, <strong>and</strong> the IIS approach extends to<br />

general mathematical programs, where variables can be <strong>in</strong>teger-valued <strong>and</strong> functions<br />

can be nonl<strong>in</strong>ear. Of course, the subproblems to solve <strong>in</strong> order to obta<strong>in</strong> IISs can then be<br />

NP-hard. <strong>The</strong> role <strong>of</strong> s<strong>of</strong>tware is to support all <strong>of</strong> these approaches because how they<br />

behave depends upon the problem, <strong>and</strong> how experienced the analyst is <strong>in</strong> mathematical<br />

programm<strong>in</strong>g. A rule-based <strong>in</strong>telligence is a level <strong>of</strong> ANALYZE that can automate the<br />

diagnostic process <strong>and</strong> use heuristics to guide it.<br />

To illustrate, Figure 4 shows a network with a maximum flow <strong>of</strong> 32 units, but the total<br />

dem<strong>and</strong> is 60 units. One could tell this to the analyst, but there are much smaller<br />

isolations that are causal. In a realistic network, the cut set could have many thous<strong>and</strong>s<br />

<strong>of</strong> arcs, far too many for a person to visualize (see Graph <strong>and</strong> Network <strong>Optimization</strong>).<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)<br />

Figure 4: An Infeasible Network Flow


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

<strong>Optimization</strong> s<strong>of</strong>tware beg<strong>in</strong>s to process this problem by solv<strong>in</strong>g its Phase I:<br />

16<br />

∑<br />

m<strong>in</strong> v : v ≥ 0,<br />

i=<br />

1<br />

Supply at node 1: x14 + v1≤<br />

20<br />

Supply at node 2: x24 + x25 + v2≤<br />

20<br />

Supply at node 3: x35 + v3≤<br />

20<br />

Supply at node 4: x14 + x24 −x46 − x47 + v4=<br />

0<br />

Supply at node 5: x25 + x35 −x57 − x58 + v5=<br />

0<br />

Supply at node 6: x46 + v6≥10<br />

Supply<br />

at node 7: x47 + x57 + v7≥<br />

20<br />

Supply at node 8:<br />

Flow bounds:<br />

x58 + v8≥30<br />

0 ≤ x14 + v 9 ≤ 30 0 ≤ x24 + v10<br />

≤ 20<br />

0 ≤ x25 + v11 ≤ 10 0 ≤ x35 + v12<br />

≤ 10<br />

0 ≤ x46 + v13<br />

≤ 10 0 ≤ x47 + v14<br />

≤ 2<br />

0 ≤ x + v ≤ 20 0 ≤ x + v ≤ 30<br />

i<br />

57 15 58 16<br />

<strong>The</strong> analyst must now debug this <strong>in</strong>feasible LP by diagnos<strong>in</strong>g its cause. Conventional<br />

solvers <strong>and</strong> most model<strong>in</strong>g languages provide only displays <strong>of</strong> values, such as what you<br />

see <strong>in</strong> Figure 5. In a realistic problem this table would be far too large to be useful, so<br />

the analyst needs some screen<strong>in</strong>g aids.<br />

Figure 5: Display <strong>of</strong> Solution Values for Network <strong>in</strong> Figure 4<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)<br />

(14)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

<strong>The</strong>re are several approaches to help analysts diagnose an <strong>in</strong>feasibility. One is to use the<br />

Phase I dual prices to form one <strong>in</strong>feasible aggregate constra<strong>in</strong>t:<br />

x + 2x + x ≥ 70.<br />

(15)<br />

25 35 47<br />

This <strong>in</strong>equality is implied by the orig<strong>in</strong>al system by tak<strong>in</strong>g a weighted sum. Lett<strong>in</strong>g pi<br />

denote the dual price <strong>of</strong> the i-th supply constra<strong>in</strong>t, <strong>and</strong> not<strong>in</strong>g that p ≤ 0, we first obta<strong>in</strong><br />

the follow<strong>in</strong>g:<br />

p ( x + p ( x + x ) + p x ≥ ( p + p + p )20.<br />

(16)<br />

1 14 2 24 25 3 35 1 2 3<br />

S<strong>in</strong>ce p = (−1,−1, 0), this becomes the aggregate supply limit: −x14 −x24 −x25 ≥ − 40 .<br />

Comb<strong>in</strong><strong>in</strong>g the balance equations <strong>in</strong> the same manner, <strong>and</strong> us<strong>in</strong>g its price vector (1,2)<br />

(shown <strong>in</strong> Figure 1: Display <strong>of</strong> Solution Values for Network <strong>in</strong> Figure 4) we obta<strong>in</strong> the<br />

aggregate balance equation:<br />

x + x −x − x + 2( x + x − x − x = 0 .<br />

14 24 46 47 25 35 57 58<br />

<strong>The</strong> dem<strong>and</strong> requirements use the price vector (1, 2, 2) to obta<strong>in</strong> the follow<strong>in</strong>g aggregate<br />

dem<strong>and</strong> requirement: x + 2( x + x ) + 2x ≥ 1× 10 + 2× 20 + 2× 30 = 110 .<br />

46 47 57 58<br />

Add<strong>in</strong>g these three aggregates produces the overall aggregate constra<strong>in</strong>t, <strong>and</strong> this<br />

approach notes that the greatest aggregate value on the left-h<strong>and</strong> side, for the given<br />

bounds, is less than the aggregate requirement:<br />

max{ x + 2 x + x : 0 ≤ x ≤10,0 ≤ x ≤10,0 ≤ x ≤ 2} = 32 < 70. (17)<br />

25 35 47 25 35 47<br />

<strong>The</strong> ANALYZE system does this <strong>and</strong> can provide an English response, such as what is<br />

shown <strong>in</strong> Figure 6. <strong>The</strong> system can cont<strong>in</strong>ue to help the analyst by expla<strong>in</strong><strong>in</strong>g the<br />

aggregate coefficients <strong>and</strong> right-h<strong>and</strong> side.<br />

Figure 6: ANALYZE Diagnosis Us<strong>in</strong>g Phase I Price Aggregation<br />

An IIS approach could produce the subnetworks shown <strong>in</strong> Figure 7. In 7(a), the only<br />

constra<strong>in</strong>ts <strong>in</strong>cluded are the flow bounds on x25, x35 <strong>and</strong> x4t . <strong>The</strong> sources <strong>of</strong> those arcs<br />

are not shown because it does not matter where those flows come from, only that they<br />

are limited to the values shown. Nodes 5, 7 <strong>and</strong> 8 are shown because the constra<strong>in</strong>ts<br />

associated with them are <strong>in</strong> this IIS. Only the dem<strong>and</strong> arcs are oriented; the others are<br />

undirected, which means that the non-negativity constra<strong>in</strong>ts on those flows are not <strong>in</strong> the<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

IIS. <strong>The</strong> dem<strong>and</strong>s at nodes 7 <strong>and</strong> 8 dom<strong>in</strong>ate the direction <strong>of</strong> flow. By its def<strong>in</strong>ition, the<br />

IIS is an <strong>in</strong>feasible subsystem such that dropp<strong>in</strong>g any one constra<strong>in</strong>t renders the proper<br />

subsystem feasible. If, for example, we drop the dem<strong>and</strong> requirement at node 7, we can<br />

ship 10 units from 7 to 5 (i.e., x57 = −10), then send it to node 8, thus render<strong>in</strong>g the<br />

proper subsystem feasible. In 7(b), the dem<strong>and</strong> at node 7 is dropped, but non-negativity<br />

is added to the flow variable, x57.<br />

Figure 7: Two IISs for the Infeasible Network <strong>in</strong> Figure 4<br />

ANALYZE can import IISs created by Ch<strong>in</strong>neck's code, which allows separate<br />

treatment <strong>of</strong> logical constra<strong>in</strong>ts, such as non-negativity. If we reta<strong>in</strong> x ≥ 0 <strong>in</strong> our<br />

subsystem, we obta<strong>in</strong> a smaller subnetwork, shown <strong>in</strong> Figure 8. Node 7 plays no role,<br />

<strong>and</strong> this subnetwork presents the analyst with the two relevant flow bounds <strong>and</strong> the one<br />

dem<strong>and</strong> requirement. Those constra<strong>in</strong>ts, themselves, with flow balance at node 5,<br />

comprise an <strong>in</strong>feasible subsystem.<br />

Figure 8: Good Diagnosis = Small Isolation + Succ<strong>in</strong>ct Explanation<br />

6. Intelligent Mathematical Programm<strong>in</strong>g Systems<br />

What makes an MPS <strong>in</strong>telligent? In artificial <strong>in</strong>telligence, we would say the computer<br />

performs reason<strong>in</strong>g, arriv<strong>in</strong>g at conclusions that we normally attribute to human<br />

problem-solv<strong>in</strong>g. Here, this is broadened to <strong>in</strong>clude discourse models, such as<br />

visualization aids. <strong>The</strong> ma<strong>in</strong> focal po<strong>in</strong>ts, analysis, formulation, <strong>and</strong> discourse, comprise<br />

build<strong>in</strong>g blocks for the IMPS. <strong>The</strong> concepts on which they are built, the functions they<br />

serve, <strong>and</strong> the techniques employed comprise the cornerstone <strong>of</strong> its foundation.<br />

6.1. Formulation<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

Very few optimization model<strong>in</strong>g languages or systems provide <strong>in</strong>telligent aids for<br />

formulation. One exception is the XPRESS-LP system. <strong>The</strong>re have been approaches<br />

taken, <strong>and</strong> the general idea is illustrated <strong>in</strong> Figure 9.<br />

Figure 9: Formulation Component <strong>of</strong> IMPS<br />

<strong>The</strong>re have been experiments with the form <strong>of</strong> the model assistant, rang<strong>in</strong>g from model<br />

libraries to jigsaw puzzle reason<strong>in</strong>g. In all cases the role <strong>of</strong> the s<strong>of</strong>tware was to help<br />

someone who is not an expert <strong>in</strong> mathematical programm<strong>in</strong>g formulate a model. This<br />

has so far not succeeded, <strong>and</strong> if it is to be developed, the formulation phase must be<br />

viewed more broadly. In addition to some expression <strong>of</strong> the model objects <strong>and</strong> relations,<br />

there needs to be support generated for model management, database audit<strong>in</strong>g, solver<br />

selection <strong>and</strong> subsequent analysis support.<br />

6.2. Model <strong>and</strong> Scenario Management<br />

Here we exp<strong>and</strong> the model assistant functions with two components: solver selector <strong>and</strong><br />

scenario manager. <strong>The</strong>se are two fundamental functions, shown <strong>in</strong> Figure 10 <strong>in</strong><br />

conjunction with the formulation assistants. <strong>The</strong> figure is already rather busy, so other<br />

functions <strong>and</strong> files are omitted. Model management aids <strong>in</strong>clude verification <strong>and</strong><br />

validation tasks. Verification is confirm<strong>in</strong>g that what we th<strong>in</strong>k is <strong>in</strong> the computer is<br />

<strong>in</strong>deed there. Validation is determ<strong>in</strong><strong>in</strong>g the extent to which the model, or some scenario,<br />

is sufficiently consistent with what it is supposed to model that results are not<br />

mislead<strong>in</strong>g.<br />

One element <strong>of</strong> verification is shown <strong>in</strong> Figure 10, which is the data. Checks are<br />

produced by the model assistant, <strong>and</strong> this file is read by the Verifier. For example, the<br />

model assistant determ<strong>in</strong>es that a necessary condition for feasibility is that some<br />

function <strong>of</strong> the data must satisfy a relation, f (D) ≥ 0 (viz., total supply - total dem<strong>and</strong> ≥<br />

0). Whenever the data objects <strong>in</strong> D change, the verifier checks that the relation holds. Its<br />

role is to prevent <strong>in</strong>feasible scenarios, giv<strong>in</strong>g causal <strong>in</strong>formation whenever it happens.<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

6.3. Discourse<br />

Figure 10: Formulation Component <strong>of</strong> IMPS<br />

<strong>The</strong> objective <strong>of</strong> a discourse model is to communicate with a user, to which we add: <strong>in</strong> a<br />

manner that is most natural for him or her. Natural language <strong>in</strong>cludes both text <strong>and</strong><br />

graphics. Algebraic <strong>and</strong> functional forms are what we are used to see<strong>in</strong>g <strong>in</strong> textbooks,<br />

but constra<strong>in</strong>ed logic programm<strong>in</strong>g (CLP) is chang<strong>in</strong>g that. We now enlarge our<br />

expressive powers to <strong>in</strong>clude many mathematical <strong>and</strong> logical forms.<br />

<strong>The</strong> idea is to have one fundamental structure from which many different views can be<br />

constructed at the will <strong>of</strong> the analyst. Some <strong>of</strong> the early ideas from neural networks <strong>and</strong><br />

concept graphs have not quite fulfilled their potential <strong>in</strong> discourse for optimization. We<br />

primarily rely on syntax, but there is a grow<strong>in</strong>g development <strong>of</strong> visualization,<br />

particularly for analysis support.<br />

6.4. Analysis<br />

So far, <strong>in</strong>telligent analysis support has been rule-driven. To illustrate, we shall show<br />

some substructures found by ANALYZE, followed by a hypothetical discourse. Figure<br />

11 shows a portion <strong>of</strong> a l<strong>in</strong>ear program that traces the flow <strong>of</strong> activities that generate<br />

baseload electricity <strong>in</strong> a particular region. <strong>The</strong>re are 26 activities that could generate this<br />

electricity. Of these, 13 have zero reduced cost, <strong>in</strong>clud<strong>in</strong>g 9 basic activities. Each <strong>of</strong> the<br />

13 activities is a c<strong>and</strong>idate for be<strong>in</strong>g <strong>in</strong> a marg<strong>in</strong>-sett<strong>in</strong>g path, so other paths were traced.<br />

Each <strong>of</strong> the 12 paths must be blocked by some activity at bound; otherwise, a less<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

expensive path would have produced more, displac<strong>in</strong>g the marg<strong>in</strong>-sett<strong>in</strong>g flows <strong>in</strong><br />

Figure 11.<br />

Figure 11: A Blocked Path <strong>in</strong> a L<strong>in</strong>ear Program<br />

Figure 12 shows a possible discourse with an analyst after the block<strong>in</strong>g path is found.<br />

<strong>The</strong> English translations are made possible by the syntax maps recognized by<br />

ANALYZE.<br />

Figure 12: Discourse Expla<strong>in</strong><strong>in</strong>g Blocked Path <strong>in</strong> Figure<br />

Figure 13 gives an overview <strong>of</strong> an entire IMPS, with three places for <strong>in</strong>telligent support:<br />

dur<strong>in</strong>g model formulation (or revision), select<strong>in</strong>g a solver, <strong>and</strong> analyz<strong>in</strong>g the results.<br />

<strong>The</strong> level <strong>of</strong> detail is m<strong>in</strong>imal, as one notes upon look<strong>in</strong>g at Figure 10. <strong>The</strong> knowledge<br />

bases could be distributed or united, <strong>and</strong> the model manager ma<strong>in</strong>ta<strong>in</strong>s all components.<br />

7. Beyond the Horizon<br />

Many <strong>of</strong> the underly<strong>in</strong>g pr<strong>in</strong>ciples that connect s<strong>of</strong>tware <strong>and</strong> optimization apply to other<br />

techniques <strong>in</strong> operations research. Simulation is notable because the old concept <strong>of</strong><br />

languages evolved <strong>in</strong>to systems (or platforms), <strong>and</strong> <strong>in</strong>telligent model<strong>in</strong>g aids began to<br />

emerge <strong>in</strong> the 1980s. Animation was <strong>in</strong>troduced to help debug simulation models, <strong>and</strong><br />

Jones showed how animation can be used for related <strong>in</strong>sights <strong>in</strong>to sensitivity analysis.<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

Figure 13: IMPS Components<br />

More visualization has been a key to modern s<strong>of</strong>tware systems, <strong>and</strong> modelers have<br />

come to expect graphic user <strong>in</strong>terfaces (GUI). Algorithm animation has not fully<br />

penetrated optimization s<strong>of</strong>tware, but this is also com<strong>in</strong>g.<br />

As visualization <strong>in</strong>creases <strong>in</strong> importance, we can expect to see more on the web.<br />

Websim is the current term that refers to web-based simulation, <strong>and</strong> it is one <strong>of</strong> the<br />

current research areas. <strong>The</strong>re are Java Applets presently on the web to allow people to<br />

model <strong>and</strong> solve optimization problems. <strong>The</strong>se are small, designed for pedagogical<br />

purposes, but we can expect this to develop further <strong>in</strong>to remote capabilities for<br />

production.<br />

Acknowledgement<br />

<strong>The</strong> author is grateful to Pr<strong>of</strong>essor, Dr. U. Derigs, for the opportunity to contribute this<br />

chapter to the EOLSS <strong>and</strong> for his patience while I learned the formatt<strong>in</strong>g requirements.<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

Glossary<br />

Algorithm: A sequence <strong>of</strong> precisely specified computations to reach a<br />

solution.<br />

Algorithm Parameters that affect tactics with<strong>in</strong> an algorithm class, such as<br />

Controls:<br />

whether to conduct some test.<br />

Approximation For an NP-hard problem, this is a procedure that takes a<br />

Algorithm: polynomial amount <strong>of</strong> time to obta<strong>in</strong> a solution that is guaranteed<br />

to be with<strong>in</strong> some percent <strong>of</strong> optimal.<br />

CLP: Constra<strong>in</strong>ed Logic Programm<strong>in</strong>g.<br />

Data structure: How we store <strong>in</strong>formation <strong>in</strong> a computer.<br />

GUI: Graphic user <strong>in</strong>terface.<br />

IMPS: Intelligent Mathematical Programm<strong>in</strong>g System.<br />

Infeasibility: An <strong>in</strong>stance <strong>of</strong> a mathematical program for which there is no<br />

feasible solution.<br />

Load Balanc<strong>in</strong>g: <strong>The</strong> goal <strong>of</strong> hav<strong>in</strong>g each <strong>of</strong> many processors perform the same<br />

amount <strong>of</strong> computation.<br />

Message Pass<strong>in</strong>g: <strong>The</strong> transfer <strong>of</strong> <strong>in</strong>formation from one processor to another <strong>in</strong> a<br />

parallel comput<strong>in</strong>g environment.<br />

Metaheuristics: A general framework for search<strong>in</strong>g a space to solve hard<br />

problems (meta is a prefix, as <strong>in</strong> a meta-language be<strong>in</strong>g a<br />

language to describe languages).<br />

Model Assistant: A component <strong>of</strong> an IMPS designed to assist model formulation.<br />

MPS: Mathematical Programm<strong>in</strong>g System.<br />

NP-Hard: A problem class for, which there is no known algorithm that can<br />

solve any member <strong>in</strong> polynomial time.<br />

Speedup: <strong>The</strong> fraction <strong>of</strong> how close to perfect distribution <strong>of</strong> computation<br />

an algorithm implementation comes.<br />

Bibliography<br />

Ashford R.W. <strong>and</strong> Daniel R.C. (1986). LP-MODEL: XPRESS-LP's model builder. IMA Journal <strong>of</strong><br />

Mathematics <strong>in</strong> Management 1(163), 176. [Downloads are available at ]<br />

Bentley P.J. ed. (1992, 1999). Evolutionary Design by Computers, 446 pp. San Francisco, CA: Morgan<br />

Kaufman. [This is a basic reference for evolutionary algorithms/programm<strong>in</strong>g.]<br />

Bertsekas D.P. <strong>and</strong> Tsitsiklis J.N. (1989). Parallel <strong>and</strong> Distributed Computation, 715 pp. Englewood<br />

Cliffs, NJ: Prentice-Hall. [This presents the fundamentals <strong>of</strong> parallel algorithms, with special attention to<br />

optimization.]<br />

Ch<strong>and</strong>ru V. <strong>and</strong> Hooker J.N. (1953, 1999). <strong>Optimization</strong> Methods for Logical Inference, 365 pp. New<br />

York: John Wiley & Sons. [This organizes the developments <strong>in</strong> apply<strong>in</strong>g <strong>in</strong>teger programm<strong>in</strong>g to the sort<br />

<strong>of</strong> logical <strong>in</strong>ference done <strong>in</strong> artificial <strong>in</strong>telligence. Emphasis is given to the authors' work dur<strong>in</strong>g the past<br />

decade.]<br />

Ch<strong>in</strong>neck J.W. (1997). Computer codes for the analysis <strong>of</strong> <strong>in</strong>feasible l<strong>in</strong>ear programs. Journal <strong>of</strong><br />

Operational <strong>Research</strong> Society 47(1), 61-72. [This describes the author's development <strong>of</strong> comput<strong>in</strong>g IISs<br />

<strong>in</strong> various optimization programs.]<br />

Ch<strong>in</strong>neck J.W. (1997). Feasibility <strong>and</strong> viability. Advances <strong>in</strong> Sensitivity Analysis <strong>and</strong> Parametric<br />

Programm<strong>in</strong>g, (ed. T. Gal <strong>and</strong> Greenberg H.J.), pp. 14-1-14-41, Boston, MA: Kluwer Academic<br />

Publishers. [This surveys the state-<strong>of</strong>-the-art <strong>in</strong> practical methods for help<strong>in</strong>g an analyst underst<strong>and</strong> why a<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

problem is <strong>in</strong>feasible, <strong>in</strong>clud<strong>in</strong>g non-l<strong>in</strong>ear programs. This addresses the related question <strong>of</strong> whether some<br />

variables must be zero <strong>in</strong> every feasible solution.]<br />

Ch<strong>in</strong>neck J.W. Analyz<strong>in</strong>g mathematical programs us<strong>in</strong>g MProbe. Annals <strong>of</strong> <strong>Operations</strong> <strong>Research</strong>, To<br />

appear. Downloads are available at . [This<br />

applies to any mathematical program, but its ma<strong>in</strong> use is to provide shape <strong>in</strong>formation for nonl<strong>in</strong>ear<br />

functions. It probes AMPL source code <strong>and</strong> uses a sampl<strong>in</strong>g technique.]<br />

Ch<strong>in</strong>neck J.W. <strong>and</strong> Greenberg H.J. (1999). Intelligent mathematical programm<strong>in</strong>g s<strong>of</strong>tware: Past, present,<br />

<strong>and</strong> future. Canadian <strong>Operations</strong> <strong>Research</strong> Society Bullet<strong>in</strong> 33(2), 14-28. Also appeared <strong>in</strong> INFORMS<br />

Comput<strong>in</strong>g Society Newsletter 20(1), 1-9, 1999. [This surveys optimization s<strong>of</strong>tware that is <strong>in</strong>telligent <strong>in</strong><br />

its ability to help users formulate <strong>and</strong> analyze mathematical programs <strong>and</strong> generally manage the process<br />

<strong>of</strong> do<strong>in</strong>g so.]<br />

Crescenzi P. <strong>and</strong> Kann V., ed.. (2000). A compendium <strong>of</strong> NP optimization problems.<br />

. [<strong>The</strong> editors ma<strong>in</strong>ta<strong>in</strong> this site, giv<strong>in</strong>g<br />

latest bounds <strong>and</strong> time complexity <strong>of</strong> approximation algorithms for NP-hard problems.]<br />

Dutta A., Siegel H.J., <strong>and</strong> Wh<strong>in</strong>ston A.B.. (1983). On the application <strong>of</strong> parallel architectures to a class <strong>of</strong><br />

operations research problems. R.A.I.R.O. Recherche opérationanelle/<strong>Operations</strong> <strong>Research</strong> 17(4),317-341.<br />

[This is one <strong>of</strong> the first parallel algorithms for l<strong>in</strong>ear programm<strong>in</strong>g. It applies to Dantzig-Wolfe<br />

decomposition.]<br />

Eckste<strong>in</strong> J., Hart W.E., <strong>and</strong> Phillips C.A. (2000). PICO: An object-oriented framework for parallel<br />

branch <strong>and</strong> bound. <strong>Research</strong> report, Albuquerque, NM: S<strong>and</strong>ia National Laboratories. Also available as a<br />

RUTCOR technical report. [This is a primer for the entitled object-oriented system where the user<br />

supplies the classes for a particular problem <strong>and</strong> algorithm.]<br />

Fourer R. (1983). Model<strong>in</strong>g languages versus matrix generators for l<strong>in</strong>ear programm<strong>in</strong>g. ACM<br />

Transactions On Mathematical S<strong>of</strong>tware 9, 143-183. [This was an early description that clarified the<br />

entitled dist<strong>in</strong>ction.]<br />

Fourer R. (1996). S<strong>of</strong>tware for optimization: A buyer's guide, Parts 1 & 2. INFORMS Comput<strong>in</strong>g Society<br />

Newsletter 17(1, 2). [This gives a broad view <strong>of</strong> what is available <strong>in</strong> all areas <strong>of</strong> optimization s<strong>of</strong>tware.]<br />

Glover F. <strong>and</strong> Laguna M. (1997). Tabu Search, 382 pp. Boston, MA: Kluwer Academic Publishers. [This<br />

is the basic book about Tabu Search, written by its pioneers.]<br />

Greenberg H.J. (1993) A Computer-Assisted Analysis System for Mathematical Programm<strong>in</strong>g Models <strong>and</strong><br />

Solutions: A User's Guide for ANALYZE. Boston, MA: Kluwer Academic Publishers. Downloads are<br />

available at . [This describes <strong>and</strong> illustrates the<br />

ANALYZE s<strong>of</strong>tware system, which is part <strong>of</strong> the author's <strong>in</strong>telligent mathematical programm<strong>in</strong>g system.]<br />

Greenberg H.J. (1994). Syntax-directed report writ<strong>in</strong>g <strong>in</strong> l<strong>in</strong>ear programm<strong>in</strong>g. European Journal <strong>of</strong><br />

Operational <strong>Research</strong> 72(2), 300-311 [This shows how the rules <strong>of</strong> composition the syntax <strong>of</strong> a model<br />

can be used to drive the report writ<strong>in</strong>g process, <strong>in</strong>clud<strong>in</strong>g <strong>in</strong>teractive query.]<br />

Greenberg H.J. (1996). A bibliography for the development <strong>of</strong> an <strong>in</strong>telligent mathematical programm<strong>in</strong>g<br />

system. Annals <strong>of</strong> <strong>Operations</strong> <strong>Research</strong> 65, 55-90. Onl<strong>in</strong>e versions are available at:<br />

<strong>and</strong><br />

. [This gives hundreds <strong>of</strong> citation from early works through 1996.]<br />

Greenberg H.J.(1996-2000). Mathematical Programm<strong>in</strong>g Glossary. . [This is an ongo<strong>in</strong>g glossary with about 700 entries <strong>and</strong><br />

supplements.]<br />

Greenberg H.J. <strong>and</strong> Maybee J.S. ed. (1981). Computer-Assisted Analysis <strong>and</strong> Model Simplification, 522<br />

pp. New York: Academic Press. [This <strong>in</strong>troduced computer-assisted analysis as a formal foundation for<br />

what evolved <strong>in</strong>to an <strong>in</strong>telligent aid.]<br />

Greenberg H.J. <strong>and</strong> Murphy F.H. (1991). Approaches to diagnos<strong>in</strong>g <strong>in</strong>feasible l<strong>in</strong>ear programs. ORSA<br />

Journal on Comput<strong>in</strong>g 3(3), 253-261. Note: the journal has been renamed INFORMS Journal on<br />

Comput<strong>in</strong>g. [This describes the ma<strong>in</strong> approaches to the entitled problem, po<strong>in</strong>t<strong>in</strong>g out that Diagnosis =<br />

Isolation + Explanation.]<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

Greenberg H.J. <strong>and</strong> Murphy F.H. (1992). A comparison <strong>of</strong> mathematical programm<strong>in</strong>g model<strong>in</strong>g systems.<br />

Annals <strong>of</strong> <strong>Operations</strong> <strong>Research</strong> 38,177-238. [This uses specific examples to compare <strong>and</strong> contrast three<br />

types <strong>of</strong> systems: process, algebraic <strong>and</strong> schematic.]<br />

Greenberg H.J. <strong>and</strong> Murphy F.H. (1995). Views <strong>of</strong> mathematical programm<strong>in</strong>g models <strong>and</strong> their<br />

<strong>in</strong>stances. Decision Support Systems 13(1), 3-34. [This shows many ways to view optimization models,<br />

with focus on LP. A central data structure is proposed to enable the computer to produce any view that<br />

best meets the cognitive skill <strong>of</strong> the user.]<br />

Heath M.T., Ranade A., <strong>and</strong> Schreiber R.S. ed. (1999). Algorithms for Parallel Process<strong>in</strong>g. New York:<br />

Spr<strong>in</strong>ger. [This is a modern account, with a variety <strong>of</strong> subjects by different authors.]<br />

Hochbaum D.S., ed. (1997). Approximation Algorithms for NP-Hard Problems. Boston, MA: PWS<br />

Publish<strong>in</strong>g Co. [This is the fundamental reference to learn about approximation algorithms <strong>and</strong> their<br />

application to optimization problems.]<br />

H<strong>of</strong>fman K.L. Comb<strong>in</strong>atorial optimization: Current successes <strong>and</strong> directions for the future. Journal <strong>of</strong><br />

Computational <strong>and</strong> Applied Mathematics, (In Press). [This gives perceptive <strong>in</strong>sights about the importance<br />

<strong>of</strong> model<strong>in</strong>g comb<strong>in</strong>atorial optimization problems. It was also a keynote talk at the 1999 SIOPT meet<strong>in</strong>g.]<br />

Hooker J. (2000). Logic-Based Methods for <strong>Optimization</strong>: Comb<strong>in</strong><strong>in</strong>g <strong>Optimization</strong> <strong>and</strong> Constra<strong>in</strong>t<br />

Satisfaction. New York: John Wiley & Sons. [This comb<strong>in</strong>es the strengths <strong>of</strong> the entitled topics <strong>in</strong>to a<br />

coherent theory <strong>of</strong> problem expression <strong>and</strong> algorithm design.]<br />

Jones C.V. (1995). Visualization <strong>and</strong> <strong>Optimization</strong>. Boston, MA: Kluwer Academic Publishers,. An<br />

onl<strong>in</strong>e version is at . [This is a complete compendium <strong>of</strong> the<br />

many visualizations that have been developed, <strong>in</strong>clud<strong>in</strong>g many by the author.]<br />

McAloon K. <strong>and</strong> Tretko C. ( 1995). Logic <strong>and</strong> <strong>Optimization</strong>. New York: John Wiley & Son. [This is an<br />

important <strong>in</strong>troduction, tak<strong>in</strong>g problem descriptions from the view <strong>of</strong> artificial <strong>in</strong>telligence, <strong>and</strong> solution<br />

methodology from <strong>in</strong>teger programm<strong>in</strong>g.]<br />

McCarl B. (1996.). GMSCHK User Documentation. .<br />

Lubbock, TX: Texas A&M University. [This is one-<strong>of</strong>-a-k<strong>in</strong>d s<strong>of</strong>tware that applies directly to GAMS<br />

source code.]<br />

Nemhauser G.L., Savelsbergh M.W.P., <strong>and</strong> Sigismondi G.C. (1994). MINTO, A Mixed INTeger<br />

Optimizer. <strong>Operations</strong> <strong>Research</strong> Letters 15, 47-58. Downloads available at . [This is an object-oriented system where the user<br />

supplies the classes for a particular problem <strong>and</strong> algorithm.]<br />

Orchard-Hays W. (1978). History <strong>of</strong> mathematical programm<strong>in</strong>g systems. Design <strong>and</strong> Implementation <strong>of</strong><br />

<strong>Optimization</strong> S<strong>of</strong>tware, (ed. H.J. Greenberg) 551 pp., <strong>The</strong> Netherl<strong>and</strong>s: Alphen aan den Rijn : Sijth<strong>of</strong>f &<br />

Noordh<strong>of</strong>f. [This gives the early history <strong>of</strong> mathematical programm<strong>in</strong>g <strong>and</strong> how it was <strong>in</strong>tertw<strong>in</strong>ed with<br />

the history <strong>of</strong> computer science dur<strong>in</strong>g the years 1950-75.]<br />

Pardalos P.M., Resende M.G.C., <strong>and</strong> Ramakrishnan K.G. ed. (1995). Parallel Process<strong>in</strong>g <strong>of</strong> Discrete<br />

<strong>Optimization</strong> Problems, DIMACS Series <strong>in</strong> Discrete Mathematics <strong>and</strong> <strong>The</strong>oretical Computer Science 22.<br />

Providence, RI: American Mathematical Society. [This has an important collection <strong>of</strong> papers <strong>and</strong> an<br />

<strong>in</strong>sightful <strong>in</strong>troduction.]<br />

Robb<strong>in</strong>s T. (1970). Antenna Design. Doctoral <strong>The</strong>sis, Southern Methodist University, Dallas, TX. [This<br />

was an early example <strong>of</strong> apply<strong>in</strong>g optimization to a very difficult objective, requir<strong>in</strong>g significant<br />

computer time for each evaluation.]<br />

Rumelhart D.E. <strong>and</strong> McClell<strong>and</strong> J.L. ed. (1986). Parallel Distributed Process<strong>in</strong>g, Explorations <strong>in</strong> the<br />

Microstructure <strong>of</strong> Cognition, Vol. 1: Foundations. Cambridge, MA: MIT Press, [This was a very <strong>in</strong>spir<strong>in</strong>g<br />

book that helped to create major research efforts <strong>in</strong> neural network computers.]<br />

Rutherford T. (1999). Some GAMS Programm<strong>in</strong>g Utilities. . Boulder, CO: University <strong>of</strong> Colorado. [This is a useful suite <strong>of</strong><br />

tools, <strong>in</strong>clud<strong>in</strong>g <strong>in</strong>terfaces with build<strong>in</strong>g output tables.]<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)


OPTIMIZATION AND OPERATIONS RESEARCH – <strong>The</strong> <strong>Role</strong> <strong>of</strong> S<strong>of</strong>tware <strong>in</strong> <strong>Optimization</strong> <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> - Harvey J.<br />

Greenberg<br />

Sowa J.F. (1984). Conceptual Information Process<strong>in</strong>g, 374 pp. Amsterdam; New York: American<br />

Elsevier. [This presented new concepts connect<strong>in</strong>g language <strong>and</strong> <strong>in</strong>telligence. It led to new<br />

implementations <strong>of</strong> natural language process<strong>in</strong>g.]<br />

Spedicato E. ed. (1994). Algorithms for Cont<strong>in</strong>uous <strong>Optimization</strong>: <strong>The</strong> State <strong>of</strong> the Art. NATO ASI<br />

Series, 565 pp. Dordrecht, <strong>The</strong> Netherl<strong>and</strong>s: Kluwer Academic Publishers. [This has an excellent<br />

collection <strong>of</strong> papers, focused on numerical methods to solve nonl<strong>in</strong>ear programs.]<br />

Stasko J.T., Dom<strong>in</strong>que J.B., Brown M.H., <strong>and</strong> Price B.A., ed. (1998). S<strong>of</strong>tware Visualization;<br />

Programm<strong>in</strong>g as a Multimedia Experience, 562 pp. Cambridge, MA: MIT Press. [This is a general book<br />

on visualization that <strong>in</strong>cludes algorithm animation.]<br />

Thienel S. (1995). ABACUS A Branch-And-CUt System. Doctoral <strong>The</strong>sis, Universität zu Köln, Germany.<br />

More <strong>in</strong>formation is available at .<br />

[This is an object-oriented system where the user supplies the classes for a particular problem <strong>and</strong><br />

algorithm.]<br />

V<strong>and</strong>erplaats G. (1995). DOT Users Manual. Colorado Spr<strong>in</strong>gs, CO: V<strong>and</strong>erplaats <strong>Research</strong> <strong>and</strong><br />

Development, Inc. Downloads available at . [This describes a Design<br />

<strong>Optimization</strong> System, which addresses problems that are hard because the objective function requires a<br />

significant amount <strong>of</strong> time for each evaluation. Generally, f (x) is the numerical solution to a PDE, where<br />

x is a vector <strong>of</strong> design parameters.]<br />

Waren A.D., Hung M.S., <strong>and</strong> Lasdon L.S. (1987). <strong>The</strong> status <strong>of</strong> nonl<strong>in</strong>ear programm<strong>in</strong>g s<strong>of</strong>tware: An<br />

update. <strong>Operations</strong> <strong>Research</strong> 35(4), 489-503. [One <strong>of</strong> the significant advances addressed <strong>in</strong> this survey is<br />

the emergence <strong>of</strong> PCs, mak<strong>in</strong>g computer storage space no longer an issue, as it had been.]<br />

Wirth N. (1976). Algorithms + Data Structures = Programs, 366 pp. Englewood Cliffs, N.J.: Prentice-<br />

Hall. [This is a classic book about Algorithms + Data Structures = Programs.]<br />

Biographical Sketch<br />

Harvey Greenberg is Pr<strong>of</strong>essor <strong>of</strong> Mathematics at the University <strong>of</strong> Colorado at Denver. After receiv<strong>in</strong>g<br />

his Ph.D. <strong>in</strong> <strong>Operations</strong> <strong>Research</strong> from <strong>The</strong> Johns Hopk<strong>in</strong>s University <strong>in</strong> 1968, he jo<strong>in</strong>ed the Faculty <strong>of</strong><br />

Computer Science <strong>and</strong> <strong>Operations</strong> <strong>Research</strong> at Southern Methodist University. Dr. Greenberg has<br />

pioneered the <strong>in</strong>terfaces between operations research <strong>and</strong> computer science s<strong>in</strong>ce that time. He was a<br />

founder <strong>of</strong> what is now the INFORMS Comput<strong>in</strong>g Society, hav<strong>in</strong>g served as its Chairman twice, <strong>and</strong> he<br />

was the found<strong>in</strong>g Editor <strong>of</strong> the INFORMS Journal <strong>of</strong> Comput<strong>in</strong>g. While at the U.S. Department <strong>of</strong><br />

Energy, 1976-83, Dr. Greenberg developed Computer Assisted Analysis (CAA), deal<strong>in</strong>g with advanced<br />

analysis techniques, <strong>in</strong>clud<strong>in</strong>g debugg<strong>in</strong>g scenarios that might be <strong>in</strong>feasible or anomalous. Shortly after<br />

jo<strong>in</strong><strong>in</strong>g CU-Denver <strong>in</strong> 1983, he formed a Consortium to develop an Intelligent Mathematical<br />

Programm<strong>in</strong>g System, which extended CAA <strong>in</strong> breadth <strong>and</strong> depth. Dur<strong>in</strong>g that time, the project generated<br />

several s<strong>of</strong>tware systems <strong>and</strong> about 50 papers. One <strong>of</strong> the systems, ANALYZE, was recognized with the<br />

first “ORSA/CSTS Award for Excellence <strong>in</strong> the Interfaces Between <strong>Operations</strong> <strong>Research</strong> <strong>and</strong> Computer<br />

Science.” <strong>The</strong> system is still used today, <strong>and</strong> it was a major part <strong>of</strong> Dr. Greenberg’s plenary talk at the<br />

Canadian Operational <strong>Research</strong> Society, when he accepted their Harold Lardner Prize for hav<strong>in</strong>g<br />

“achieved <strong>in</strong>ternational dist<strong>in</strong>ction <strong>in</strong> Operational <strong>Research</strong>.” S<strong>in</strong>ce 1996, Dr. Greenberg has been an<br />

active developer <strong>of</strong> web materials to support teach<strong>in</strong>g. In addition to his own site, which conta<strong>in</strong>s the<br />

Mathematical Programm<strong>in</strong>g Glossary, he developed a site as a service to the Mathematics Department,<br />

called “Us<strong>in</strong>g the Web to Teach Mathematics.” Most recently, Dr. Greenberg established a collaborative<br />

relationship with S<strong>and</strong>ia National Laboratories, help<strong>in</strong>g to develop parallel algorithms for NP-hard<br />

problems, notably <strong>in</strong> computational biology, such as prote<strong>in</strong> fold<strong>in</strong>g. Dr. Greenberg has published 104<br />

papers <strong>and</strong> four books; he has (co)edited seven additional books or proceed<strong>in</strong>gs. He serves on six editorial<br />

boards, <strong>and</strong> has been Guest Editor for the Annals <strong>of</strong> Mathematics <strong>and</strong> Artificial <strong>Research</strong> on such topics<br />

as “Reason<strong>in</strong>g about Mathematical Models” <strong>and</strong> “Representations <strong>of</strong> Uncerta<strong>in</strong>ty”.<br />

©Encyclopedia <strong>of</strong> Life Support Systems (EOLSS)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!