I have been reading Thomas Miconi‘s doctoral thesis, “The Road to Everywhere: Evolution, Complexity and Progress in Natural and Artificial Systems.” It is available online, and it is very accessible, fascinating stuff. If you think you understand evolution (I did), read this paper and then consider whether you understood it as well as you thought you did (I didn’t).
One of the most interesting aspects of Miconi’s work is his replication and extension of the earlier work of Karl Sims on simulated evolution of “virtual creatures.” These are by no means the only instances of simulated evolution (one section of Miconi’s paper describes various historical and current approaches, and is a great read even on its own)… but they are certainly some of the coolest. The virtual creatures are not just abstract mathematical representations as is often the case, but realistic physical objects that move and interact with each other in a 3D world. Miconi provides an entire page of links to videos showing these evolved creatures in action; if you only visit one link from this post, this is the one you want.
My particular interest and motivation for this post deals with simulation of (1) “open-ended” evolution, and (2) speciation, and how these two concepts relate to creationists’ difficulties with the theory of evolution. Simulations of evolution like those described above are sometimes presented as counter-arguments against creationists’ claims of a need for an intelligent designer. (One interesting such presentation can be found here. Before continuing, I recommend checking it out to see if you find the same problems with it that I did.)
The difficulty with using results of simulations like these as arguments against ID is that most of them involve an explicit fitness function. That is, when two creatures (or clocks, or whatever) compete or are otherwise compared to determine who survives or reproduces and who does not, this determination is typically made by measuring how each performs some pre-specified behavior, such as traveling a certain distance, picking up a block, or telling time with a certain accuracy. The result is that the simulated evolutionary process yields successive generations that tend toward better and better performance of that pre-specified behavior.
In the natural world, however, there is no pre-specified optimal behavior. Organisms interact, some reproduce, some don’t, some are killed, some starve. What evolves is simply whatever persists and propagates, not necessarily what might be “best” according to some explicit fitness function.
For a computer simulation to address this issue, its fitness function must be implicit. Miconi addresses in some detail what is meant by this distinction; my take on it is that the determination of who reproduces and who doesn’t should be based on the result of simulation of physical processes that is explicit only at the lowest possible level. For example, Sims’ original virtual creatures had oscillators as a primitive building block; Miconi’s later work was an improvement in this sense in that his virtual creatures’ building blocks were more primitive, representing lower-level behavior… and oscillation (critical to locomotion) evolved as a higher-level behavior “implemented” in terms of these lower-level building blocks. This admittedly comes at a price of higher computational complexity… which is in part why it took us 3.8 billion years to get here. (One of the more interesting attempts at such “open-ended” evolution is Tierra.)
Another characteristic common to many computer simulations of evolution is the explicit concept of species. Indeed, in many simulations there is only one species, with no opportunity for divergence; in other cases where there are multiple species, a creature’s species is “hard-wired,” so that species A only reproduces with species A, and only fights with species B.
This last is what got me thinking about all of this in the first place. Creationists like to make what is to me a rather baffling distinction between “micro-evolution” and “macro-evolution.” This seems to me to be mostly a difficulty with speciation. The idea is that, “Okay, maybe members of any given species evolve over time (micro-evolution), but species do not diverge into separate species that subsequently do not interbreed (macro-evolution).” We might become better humans, but we don’t share ancestors with apes.
To respond to this reluctance, can we simulate speciation? To do so would require less “hard-wiring” than that mentioned above. That is, in addition to letting evolution control the morphology and behavior of the simulated creatures, it must also be able to control and modify the mechanism for reproduction. A simple example of this might be preventing interbreeding between two creatures if the Hamming distance between their genotypes exceeds some threshold. Different criteria might be suitable for simulations where the genotype is encoded not as a string– as it is in life as we know it– but as a tree, which can be handy and more robust to “crossover” when the encoding is similar to that of a computer program.
This is mostly all just musing on my part, but I am currently between “projects,” and it is fascinating and tempting to pursue such a simulation. But it turns out that this sort of analysis is certainly not new; links to several interesting papers on the subject can be found here.