An evolutionary simulation is one which attempts to model the process of evolution. They are often used to attempt to provide evidence for the entire process of evolution. They are related to but not entirely the same as genetic algorithms. While both are inspired by evolutionary theory, Genetic algorithms merely seek to use the principles of evolution to produce something useful while an evolutionary simulation is seeking to demonstrate something about evolution and probably does not produce anything generally useful.
The Simulations are Invalid
For various reasons, some argue that the simulations are too far away from real biology to actually be useful. It is commonly claimed that:
- Critical parts of the program are created by humans
- Critical parts of the simulation cannot be affected by mutation
- The simulations are too simple
- The mutation rates are too high
However, Darwinists will simply make the claim that these only speed up evolution. It fails to answer questions about what actually does evolve. Clearly, evolution has produced designs for radios, bitwise operations, and the like.
The Simulations are Valid and Support Creationism
The opposite approach is to state that the simulations are valid and in fact are arguably a way to test evolution in a way which it cannot be tested in real biology. Due to the nature of evolutionary theory, it is possible to test it with simplified models in a way which most other science cannot. One of the greatest advantages of this approach over and against the opposite approach is that this approach actually makes predictions and can test those predictions providing a much stronger case then the first approach.
From this vantage point some claims can be made:
The Lack of Irreducible Complexity.
No computer simulation of evolution has ever produced irreducible complexity. Instead the simulations consistently fail to produce systems which are irreducibly complex.
Examples of Failures
AntFarm was a large scale project to evolve "ants" which would gather food and bring it back to a nest. The ants could drop Pheromones and also detect the location of the Pheromones in theory allowing the ants to more easily locate the location of food to improve gathering behavior. While they did manage decent gathering techniques with regards to individual ants, the experiment failed to produce co-operative behavior.
Consider what actually had to happen:
- The ants had to drop Pheromones in the appropriate locations
- The ants had to follow the Pheromone trails
We have in this case, irreducible complexity because neither ability is of any good without the other thus presenting what appears to be an impassable barriar.
Purported Counter Examples
According to Talk.Origins:
Genetic algorithms have produced irreducibly complex systems. For example, the voice-recognition circuit Dr. Adrian Thompson evolved (Davidson 1997) is composed of 37 core logic gates. Five of them are not even connected to the rest of the circuit, yet all 37 are required for the circuit to work; if any of them are disconnected from their power supply, the entire system ceases to function. This fits Behe's definition of an irreducibly complex system and shows that an evolutionary process can produce such things.
However, an investigation of the actual paper on the simulation finds that:
- The cells shaded gray cannot be clamped without degrading performance
- Clamping one of the gray cells in the top-left corner has only a small impact on behavior, introducing either unwanted pulses into the output, or a small time delay before the output changes state when the input frequency is changed.
- However, there was still a problem: clamping some of the cells in the extreme top-left corner produced such a tiny decrement in [quality] that the evaluations did not detect it.
Clearly, while clamping degraded performance it did not result in the entire system ceasing to function.
Avida evolved code to perform the "equals" operation in nineteen instructions. If any of these instructions were removed the equals operation would fail. However, the equals operation will actually break down into a simpler operation the nor operation. This continues until decomposed into very basic operations. It is clear and not under dispute that the equals operation is made up of combining simpler operations together.
The argument is that the system has changed function. After all, it used to perform the "nor" operation, now it performs the "equals" operation. But, both operations have the same effect on the program, only differing in the size of that effect. Both give the program "energy" which gives it a speed boost making it run faster. The equals operation gives considerably more energy, but the difference is quantitative not qualitative. Equals is just a better energy maker. To argue from this example to injection systems and flagellums or sexual attractors and wings is simply not feasible.