Natural Selection for Computers
Randomly stringing together a handful of resistors, capacitors and transistors hardly seems the way to design and build a radio. But that's one way of picturing the starting point for a novel computer-based method used to design jet engines, establish schedules and cope with situations offering a wide range of choices.
The idea is to start with several random arrangements of components that each represent a complete but unorganized system. Most of these chance designs would fare very poorly, but some are bound to be better than others. The superior designs are then "mated" by combining parts of different arrangements to produce "offspring" with characteristics derived from both their "parents."
From this second generation, the computer selects the best or most efficient designs for further "breeding" and rejects the rest. The process continues until an acceptable design or solution to a specific problem emerges.
Methods that incorporate this kind of strategy are known as genetic algorithms. Rooted in the mechanics of natural selection and evolution, they represent a sophisticated kind of search that combines blind groping with precise bookkeeping. Once it has the criteria in hand, the computer itself picks its way through in trial-and-error fashion, recording and building on its best guesses, eventually to find a good answer.
Pioneered more than 25 years ago by computer scientist John H. Holland of the University of Michigan at Ann Arbor, genetic algorithms constitute a field of computer science inspired by biological models and strewn with biological terms. In essence, Holland links the question of how biological systems adapt to their environments with the problem of programming computers so they can learn and solve problems.
The genetic algorithm approach to problem-solving has developed slowly. Only in recent years have researchers begun to appreciate and exploit its flexibility and versatility, especially for designing complex systems or finding near-optimal solutions to problems. Engineers are beginning to use genetic algorithms for such applications as designing integrated-circuit chips, scheduling work in a busy machine shop, operating gas-pipeline pumping stations and recognizing patterns.
"People are finding that genetic algorithms work well in lots of different problems," says engineer David E. Goldberg of the University of Alabama at Tuscaloosa. "It's the combination of reasonable efficiency over a broad spectrum of environments that makes genetic algorithms interesting."
The first step in using a genetic algorithm to find a good design for, say, an integrated-circuit chip is to express all the chip's major components as a string of digits, or "chromosome," in which small groups of digits (somewhat analogous to genes on a chromosome) correspond to different components. The list of all possible chromosomes -- different random arrangements of the components -- would correspond to all available design choices. In addition, the designer must specify a way of numerically evaluating the efficiency or quality of any given design.
Because trying every combination to find the best one would take too long, the genetic algorithm approach offers a way of narrowing and thereby speeding up the process of selecting a suitable design. The trick lies in starting with a small selection of chromosomes. In each succeeding generation, the method creates a new set of chromosomes using the best pieces of the previous generation -- a kind of survival of the fittest.
Such an approach turns out surprisingly efficient, partly because it builds on previous "answers," making it unnecessary to search the entire field of possible designs. Each trial after the first becomes less and less random. Once it eliminates bad parent strings, the method automatically eliminates their offspring, the offspring …