A Practical Approach to Computerizing Optimization Problems

Article excerpt

An increase in power and sophistication, and a reduction in cost, of computer hardware and software, combined with an expansion of sensing and control device capabilities, make feasible the automatic control of many processes and decisions that was impossible until very recently. This control amplifies the economic consequences of our good, bad, and thoughtless decisions. Good decisions have better consequences than before; bad decisions have worse consequences; and random, thoughtless choices result in a distribution of results with a much broader spread. The incentive to make good decisions and avoid bad ones, and to make thoughtful decisions, has increased proportionately.

These same changes, however, have made our lives much more complicated. The very computers that we have come to depend on inundate us with informationraw data, actually-with only the slightest hint of the useful things we can do with it. Decisions made on the basis of increasingly up-to-date data are not necessarily better decisions. Who can say, when confronted with a screen full of stock prices, which is the best to purchase? Can't we train these powerful but stupid machines to make these decisions for us, or at least suggest which decision to make?

Mathematical models

In McGraw-Hill's Encyclopedia of Science and Technology, "optimization" is defined as follows: "In its most general meaning, the efforts and processes of making a decision, a design, or a system as perfect, effective, or functional as possible." When those efforts and processes take the form of a computer system, we have an optimization system. In designing an optimization system, we set up a mathematical model and use it to find a minimum or maximum of some variable.

A mathematical model is a set of mathematical and logical rules, and items of data, with which we can answer certain questions about the object of the model. For example, a mathematical model of the Great Pyramid might include the dimensions of its base, the slope of its sides, and the geometric rules that would allow us to calculate its altitude at any point. This information could be used to write a computer program that will perform the necessary calculations and present the answers in some useful form.

For example, the following set of logical and arithmetic rules form a model of a square pyramid:

Let the pyramid have base b and slope s, and let a corner be placed at the origin, one adjacent side on the x-axis, and the other along the y-axis. Then, the altitude at any point (x,y) is given by the minimum of: z =s x z =s y

From this, we see that the altitude at each of the corners, (0, 0), (0, b), (b, 0), (b, b), is zero and that the altitude at the center (1/2 b, 1/2 b) is 1/2 b s. We can see that the altitude along the edge at (1/4 b, 1/4 b) is 1/4 b s, while that in the middle of the side at (1/2 b, 1/4 b) is 1/4 b s.

A model simulates certain activities, behaviors, or properties, and answers certain types of questions. The model described above tells us nothing of the volume, mass, or other properties of a pyramid.

Computer models are much more common than we would expect. In fact, it is difficult to conceive a computer system that cannot be interpreted as a mathematical model, at least in the very general sense described here. Any accounting system, for example, forms a model of the business for which it is established.

Two important points to remember are that a mathematical model answers questions about the object of the model, and that we can control the behavior of the model by changing inputs or parameters. When we change the inputs to minimize or maximize certain measurements of the model-that is, when we attempt to optimize certain behaviors-we approach an optimization system. Including in the system the ability to modify parameters to optimize certain measurements gives us a true optimization system.

Analytical and nonanalytical models Let us distinguish between two kinds of models. …