Genetic programming and evolution

2020 Apr 30

Does genetic programming (a software computer programming technique) validate biological life by evolution?

In biological reproduction, a mixture of DNA from the parents produces variations in the offspring. Genetic programming in computing uses concepts similar to this.

Genetic programming mixes the “DNA” of versions of software together with random variation to produce successive generations of software. note Each new version is tested to see how it ranks against others. The best instances are retained and then used to make new versions. This genetic programming class of methods can evolve blocks of software from randomness towards function, and they have been found to be pragmatically useful in certain fields.

Computer genetic programming is like sexual reproduction in biology.

In biology the genetic information from the parents is mixed to produce an offspring that is different from the parents, but that contains parts from them. In some situations biological reproduction of this type can produce accelerated fitness advantages. It also resists the accumulation of mutations.

These software environments were invented in an exploration of ideas from evolutionary biology. They have been suggested as demonstrating the validity of evolutionary concepts. However, even though the idea for genetic programming may have come out of Darwinian ideas, genetic programming is never Darwinian.

End Goals

In Darwinian evolution there emphatically is no end goal. In contrast, genetic programming only works if knowledge of the goal is known ahead of time (the purpose). note The physical world is indifferent (and even toxic) to living things. However, genetic programming also only works if there is a software environment that nurtures the genetic search toward the goal.

All of biology is driven by information in very complex and integrated control and adaptation systems. Life uses molecular machines made from incredibly rare proteins. (See The Probability of Life) The Darwinian evolution theory must be able to demonstrate with certainty, by experimental evidence, that it is at least adequate to produce this information, or else it is a falsehood or fairytale.

Genetic programming has been suggested as demonstrating that evolutionary methods do produce the information that is necessary. However in every case that is suggested to show this success, the necessary information had already been added to the environment by the designers of the genetic environment. For instance, the environment measures success against some known specific goal of performance. This is not a vague goal of survival like in evolution, but it is a purposeful software performance goal. (See also about Free Lunch in Search in Living Systems and Conservation of Information)

Note that if a genetic algorithm solves the problem but is allowed to continue to run, it will not produce anything new or better than the programmed goal. This is exactly what happens if all the knowledge of what was to be solved had been put into the program by a programmer. Genetic algorithms in this way therefore cannot simulate biological evolution.

Note that Darwinian evolution is purposeless. It has only a single motivation in life: reproduction. In genetic programming there always is a performance purpose. Genetic programming also removes the Darwinian motivation from the software that is being bred. It puts all the reproduction motivation into the environment, so none exists in the generations of software being developed.


The physical world has natural selection; this is a weak sorting effect in reproduction. The natural selection of Darwinian theory cuts off the propagation of less fit organisms. The genetic programming environment does a good analog of this because it has reproducible scoring against the goal.

However, in the real world, death has a very strong random component to it, and it is unlikely that any very slight fitness advantage can overcome this randomness. In many cases, a slightly more fit organism simply does not reproduce. This is why it takes a lot of reproductive cycles for a beneficial mutation to get fixed into a population; the fitness test in life is usually insufficiently compelling to ensure selection. So genetic programming has some similarity to Darwinian theory in this aspect, but it is not like the real biological world.

Sustaining Life

Let us consider bacteria: we know that they reproduce very well and seem to be among the most simple of life forms. Darwinian evolution says that all life today is a mutated descendant of a universal common ancestor. Bacteria might be similar to the most ancestral of Darwinian species.

Now, in the software evolution environment, the mutated software candidate that is scored to be the most fit is retained in each iteration. Therefore “life” for some intermediate version of the developing software is assured regardless of how it was mutated.

However, in the real world we know with certainty that mutations are overwhelmingly harmful to life, and that they accumulate. We don’t have assurance of continued life in the physical world for even the most fit of organisms. This should imply that a thriving bacteria-like ancestor would be “motivated” to reject evolutionary mutations, and that evolutionary mechanisms should “motivate” to stasis. (The reason why is that any mutations would risk reproduction, and eventually the mutations would accumulate into extinction. These things are what is observed. note) In this, genetic programming does not represent physical reality.

Stasis actually is what we observe in history and in living systems. As evolutionist Stephan Jay Gould has said, “stasis is data.” This is a big problem for evolution.

Starting Up

Additionally, since bacteria has no helpful environment like in genetic software, how did the bacteria get started as a living and reproducing entity? There is no solution to the problem of abiogenesis. Chemical evolution (abiogenesis) is an utter failure.

Genetic programming evolution is successful precisely because it has an environment that starts and cultivates and preserves the work in progress, but the physical world does none of these things for biological life. So then, because the genetic software environment guarantees life for the software, it cannot be a model of the natural world.


Finally, animals are uniquely different from what can happen in genetic programming. In animal biology there is the stage of embryogenesis where the initial undifferentiated cell is transformed into a differentiated multicellular body.

There is no analog in genetic programming for this incredibly complex biological process. note Therefore, genetic programming can at best simulate only the most “simple” kinds of life, and does not simulate any of the “higher” animals.

The embryogenesis stage in biology is a bottleneck that allows no changes in the established development process. Repeated experiments show that all modifications to the control networks of embryonic development will result in death. This harsh inflexibility in biology certainly disallows the biological evolution of new body plans. It is this process that is the actual instantiation of the bodies and it always fails if it is modified. So regardless of any hopes or opinions from theory: if there are no new body plans, there are no new animals.

And So

So no: Genetic programming does not, and cannot validate biological life by evolution.