Evolving Digital Ecological Networks
The circular genome of a digital organism, on the left, consists of a set of instructions (represented here as letters). Some of these instructions are involved in the copy process and others in completing computational tasks. The experimenter determines the probability of mutations. Copy mutations occur when an instruction is copied incorrectly, and is instead replaced by a random instruction in the forming offspring's genome (as can be seen in the offspring, on the right). Other types of mutations, such as insertions and deletions are also implemented. All three of the parent's hardware pointers are represented: the instruction pointer (indicated by an i), the write-head pointer (indicated by a w), and the flow pointer (indicated by an f). Arcs inside the circular genome represent the execution flow, showing most of the CPU cycles being used during the copying process. After genome replication is complete, the parent organism divides off its offspring, which must now fend for itself within the Avida world. The last snapshot of an animation representing the self-replication process of a digital organism, Video S1, is shown. It was generated using Avida-ED, which is available under the terms of the GNU Lesser General Public License at http://avida-ed.msu.edu/.