Thomas S. Ray
Biology Department, University of Delaware, Newark, Delaware 19716,
firstname.lastname@example.org, email@example.com, firstname.lastname@example.org
The digital organisms are self-replicating computer programs, however, they can not escape because they run exclusively on a virtual computer in its unique machine language. From a single ancestral ``creature'' there have evolved tens of thousands of self-replicating genotypes of hundreds of genome size classes. Parasites evolved, then creatures that were immune to parasites, and then parasites that could circumvent the immunity. Hyper-parasites evolved which subvert parasites to their own reproduction and drive them to extinction. The resulting genetically uniform communities evolve sociality in the sense of creatures that can only reproduce in cooperative aggregations, and these aggregations are then invaded by cheating hyper-hyper-parasites.
Diverse ecological communities have emerged. These digital communities have been used to experimentally study ecological and evolutionary processes: e.g., competitive exclusion and coexistance, symbiosis, host/parasite density dependent population regulation, the effect of parasites in enhancing community diversity, evolutionary arms races, punctuated equilibrium, and the role of chance and historical factors in evolution. It is possible to extract information on any aspect of the system without disturbing it, from phylogeny or community structure through time to the ``genetic makeup'' and ``metabolic processes'' of individuals. Digital life demonstrates the power of the computational approach to science as a complement to the traditional approaches of experiment, and theory based on analysis through calculus and differential equations.
Optimization experiments have shown that freely evolving digital organisms can optimize their algorithms by a factor of 5.75 in a few hours of real time. In addition, evolution discovered the optimization technique of ``unrolling the loop''. Evolution may provide a new method for the optimization or generation of application programs. This method may prove particularly useful for programming massively parallel machines.
Keywords: evolution, ecology, artificial life, synthetic life, emergence, self-replication, diversity, adaptation, coevolution, optimization