A General Theory of Evolution
Various phenomena that closely resemble biological evolution are observed to operate in arenas not directly associated with the modification and creation of new life forms, i.e. the traditional focus of evolution study. Among these are the refinement of antibodies produced by the body in response to infection, social and technological changes of all kinds, and evolutionary computer algorithms. Each can be formally described in computational terms. Doing so allows one to identify a process common to all such processes. I call this process the “engine of complexity,” and it constitutes nothing less than a general theory of evolution – by this I mean a theory not limited to biology. When one accepts a computational definition of evolution, then biological evolution is naturally seen as a particular implementation, or a special case, of a more general information processing strategy.
It is convenient, at least for non-mathematicians, to present this definition in a visual way. My favorite (where “inputs” and “outputs” refer to information inputs and outputs to a computation) is shown below.
Figure 5-2 taken from the Engine of Complexity, Evolution as Computation. Evolution diagramed as a cyclic (iterative) computation. The superscripts, t and t+1 indicate the cycle number, and m ≤ n.
It is easy to see that this definition describes biological evolution by changing the labels. If “inputs” is changed to “parental DNA”, “probabilistic copying” to “reproduction”, “outputs” to “offspring DNA”, and “outcomes” to “offspring”, we have a perfectly good schematic diagram of biological evolution.
An advantage to using a computational definition of evolution is that it divorces the underlying essential process from the messy details of the system in which it operates. Thus, in biology, the fundamental process that enables evolution to perform its magic is the manipulation and accumulation of information encoded in DNA (the inner cycle in the diagram). This inner cycle is the engine of complexity. One wishing to study the basic computational process can ignore the details of plants and animals living in the natural world!
The “outcomes” in the diagram are not a required part of a computational definition of evolution and indeed, one can easily write evolutionary computer algorithms that do not have outcomes that are distinct from outputs. When distinct outcomes are present in a system their performance often plays a central role in selection. Thus in biology, DNA is selected by the survival and reproduction of organisms (outcomes) that carry it. This is essentially the same observation that Richard Dawkins made in The Selfish Gene, when he said, to paraphrase, “bodies are simply vehicles for transmitting their genes to the next generation.”
The process that is depicted as arrows from outputs to outcomes in the diagram is the subject of instructions – a very different topic than that of evolution.