ABSTRACT
Amoeba, a computer platform inspired by the Tierra system, is designed to study the generation of self-replicating sequences of machine operations (opcodes) from a prebiotic world initially populated by randomly selected opcodes. Point mutations drive opcode sequences to become more fit as they compete for memory and CPU time. Significant features of the Amoeba system include the lack of artificial encapsulation (there is no write protection) and a computationally universal opcode basis set. Amoeba now includes two additional features: pattern-based addressing and injecting entropy into the system. It was previously thought such changes would make it highly unlikely that an ancestral replicator could emerge from a fortuitous combination of randomly selected opcodes. Instead, Amoeba shows a far richer emergence, exhibiting a self-organization phase followed by the emergence of self-replicators. First, the opcode basis set becomes biased. Second, short opcode building blocks are propagated throughout memory space. Finally, prebiotic building blocks can combine to form self-replicators. Self-organization is quantified by measuring the evolution of opcode frequencies, the size distribution of sequences, and the mutual information of opcode pairs.
Subject(s)
Biological Evolution , Computer Simulation , Origin of Life , Models, BiologicalABSTRACT
Amoeba is a computer model designed to facilitate the study of the origin and evolution of digital life. Specifically, an initially disordered system, consisting of random sequences of machine instructions, self-organizes into an ordered system containing self-replicating programs. The current version of Amoeba broadens the original system's capability by using a basis set of 32 machine instructions that is computationally universal. In addition, Amoeba uses a set of 64 address labels, each of which is randomly assigned to a machine instruction each time a sequence is randomly created. This eliminates the constraint that occurs when the complements of predefined codons are used for addressing. A more open-ended system results because programs can now form subroutines that are arranged in an arbitrary manner.