Evolutionary Programming

A common scare tactic used by militant evolutionists is the claim that the theory of evolution is somehow central to all branches of science, and that if evolution isn’t taught in the public schools, then America will become a second-rate scientific power. Anyone who is against Darwin is “anti-science.” One example of this was seen in this month’s feature article, where the authors of The Plausibility of Life tried to make the point that an understanding of their theory of facilitated variation could have profound impact on engineering.

Last month we got an email from Ven, who wrote:

I was surprised to read about how genetic algorithms, randomized mutations, can be used for engineering things in the real world.

GE developed a more efficient turbine engine, not through an intelligent designer, but through a randomized process. Perhaps you could find more information on the “Engeneous” system that GE used. From the looks of it, it seems that a completely random process can produce something that even humans cannot design.

Here’s what Ven is talking about:

Evolutionary algorithm is an umbrella term used to describe computer-based problem solving systems which use computational models of evolutionary processes as key elements in their design and implementation. A variety of evolutionary algorithms have been proposed. The major ones are: GENETIC ALGORITHMs (see Q1.1), EVOLUTIONARY PROGRAMMING (see Q1.2), EVOLUTION STRATEGIEs (see Q1.3), CLASSIFIER SYSTEMs (see Q1.4), and GENETIC PROGRAMMING (see Q1.5). They all share a common conceptual base of simulating the EVOLUTION of INDIVIDUAL structures via processes of SELECTION, MUTATION, and REPRODUCTION. The processes depend on the perceived PERFORMANCE of the individual structures as defined by an ENVIRONMENT.

More precisely, EAs maintain a POPULATION of structures, that evolve according to rules of SELECTION and other operators, that are referred to as "search operators", (or GENETIC OPERATORs), such as RECOMBINATION and MUTATION. Each INDIVIDUAL in the population receives a measure of it's FITNESS in the ENVIRONMENT. REPRODUCTION focuses attention on high fitness individuals, thus exploiting (cf. EXPLOITATION) the available fitness information. Recombination and mutation perturb those individuals, providing general heuristics for EXPLORATION. Although simplistic from a biologist's viewpoint, these algorithms are sufficiently complex to provide robust and powerful adaptive search mechanisms. --- "An Overview of Evolutionary Computation" [ECML93], 442-459. 1 [capitals in the original]

Genetic algorithms are nothing new.

Genetic algorithms were formally introduced in the United States in the 1970s by John Holland at University of Michigan. 2

In the 1970’s, when I employed this technique to evaluate warhead design, it was called “Monte Carlo analysis” (because that sounded more sophisticated than “trial-and-error”). Actually, it was an established computer programming technique long before 1970. Simply start with an existing design and make random changes to various parameters and analyze the results of those changes. If the new parameters work better, replace the old parameters with the new parameters. Make more random changes and compare the results with the best results so far. Finally, after thousands of different combinations, use the set of randomly selected parameters that work the best.

Trial-and-error programming is usually used as a last resort because it is a de facto admission of failure. We would all like to believe that we are smart enough to solve any differential equation, or find the roots of any polynomial. But, if you don’t know how to solve a nasty differential equation, or can’t analytically calculate the roots of a complex polynomial, guessing the answer does eventually work. It isn’t efficient or elegant, but since modern computers can make millions of guesses per second, it doesn’t really matter how inefficient the process is, as long as you get the job done in time.

There are a few ugly facts of life that we don’t like to admit. One is that you can’t get funding for doing the same old thing—unless you can figure out a way to make the same old thing to sound like something radically new. If you submit a proposal titled, “Ways to improve trial-and-error programming,” you probably won’t get the money. But, if you propose, “Application of evolutionary principles in adaptive computer algorithms that determine optimal fitness,” somebody will probably pony up the big bucks. So, if you model the turbine engine as a “gene,” and “mutate” it by “replicating” fan blades, and evaluate it for “fitness,” and use all the jargon of evolutionary biology you can to describe all the guesses you are making, it sounds like cutting-edge technology, instead of the crude, brute-force method it really is.

Some evolutionists (notably Richard Dawkins) think evolutionary programming gives credibility to biological evolution. It fails to do this because, although the parameters are randomly selected, the general framework was consciously designed. The program that varies the parameters is consciously designed. The results are compared to a pre-programmed goal (such as a sentence written by Shakespeare). It doesn’t prove that undirected, random processes can produce something useful. It merely proves that a carefully guided random process can achieve a desired result, usually very inefficiently.

The attempt to connect trial-and-error programming to biological evolution by using similar terms is simply bogus.