home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / xplatfrm / tierra / tierra1.tex < prev    next >
Text File  |  1992-04-26  |  56KB  |  1,031 lines

  1. Please let me know if you receive this.
  2.  
  3. The enclosed manuscript is a draft, which contains more than any
  4. published paper.  Papers that have been published or are in press are:
  5.  
  6. Ray, T. S.  1991.  ``Is it alive, or is it GA?''
  7. Proceedings of the 1991 International Conference on Genetic Algorithms,
  8. Eds. Belew, R. K., and L. B. Booker, San Mateo, CA: Morgan Kaufmann, 527--534.
  9.  
  10. Ray, T. S.  1991.  ``An approach to the synthesis of life.''
  11. Artificial Life II, Santa Fe Institute Studies in the Sciences of
  12. Complexity, vol. XI, Eds. C. Langton, C. Taylor, J. D. Farmer, & S. Rasmussen,
  13. Redwood City, CA: Addison-Wesley, 371--408.
  14.  
  15. Ray, T. S.  1991.  ``Population dynamics of digital organisms.''
  16. Artificial Life II Video Proceedings,  Ed. C. G. Langton,
  17. Redwood City, CA: Addison Wesley.
  18.  
  19. Ray, T. S.  1991.  ``Evolution and optimization of digital organisms.''
  20. Scientific Excellence in Supercomputing: The IBM 1990 Contest Prize Papers,
  21. Eds. Keith R. Billingsley, Ed Derohanes, Hilton Brown, III.
  22. Athens, GA, 30602, The Baldwin Press, The University of Georgia.
  23. Publication date: December 1991.
  24.  
  25. I don't have a paper in it, but you might be interested in the
  26. following book:
  27.  
  28. Langton, Christopher G. [ed.].  1989.  Artificial life: proceedings of an
  29. interdisciplinary workshop on the synthesis and simulation of living systems.
  30. Vol. VI in the series: Santa Fe Institute studies in the sciences of
  31. complexity.  Addison-Wesley.
  32.  
  33. I will be at the Santa Fe Institute Feb. 1 thru Aug. 31, 1992.
  34. This work will also be presented in the following upcoming seminars:
  35.  
  36. National Science Foundation, Washington, September 20, 1991
  37. University of Rochester, Biology, October 18, 1991
  38. University of Illinois, Complex Systems Colloquia, October 25, 1991
  39. University of Maryland, Zoology, October 29, 1991
  40. University of Kentucky, Lexington, Biology, October 31, 1991
  41. University of Delaware, Entomology, November 5, 1991
  42. Stony Brook, Department of Ecology and Evolution, November 6, 1991
  43. Drexel University, Electrical Engineering, November 8, 1991
  44. The University of the Arts, Philadelphia, Design in Cyberspace lectures,
  45.      November 12, 1991
  46. IBM, T. J. Watson Research Center, Yorktown Heights, NY, November 13, 1991
  47. Thinking Machines Corp., Cambridge, November 14, 1991
  48. Digital Equipment Corp., Hudson, MA, November 15, 1991
  49. American Society of Information Science, New Jersey, November 19, 1991
  50. Texas Instruments, Dallas, November 21, 1991
  51. Harvard University, Biology (Lewontin's lab), December 2, 1991
  52. Boston University, Computational Sciences Center, December 3, 1991
  53. MIT Nanotechnology Study Group, December 3, 1991
  54. University of Massachusetts Boston, Biology, December 5, 1991
  55. Yale University, Biology, December 6, 1991
  56. University of Arizona, Ecology & Evolutionary Biology, March 10, 1992
  57. Cornell University, Mathematical Sciences Institute, CA Workshop, May 1992
  58. Gordon Conference on Theoretical Biology, New Hampshire, June 8-12, 1992
  59.  
  60. A DOS version of the Tierra software with a decent front end will be ready
  61. for distribution by December.  The source code is available by ftp at:
  62. tierra.slhs.udel.edu or life.slhs.udel.edu  in a directory named tierra
  63.  
  64. The source code in the ftp site will compile and run on DOS (tested with
  65. Turbo C) but does not have a nice front end).
  66.  
  67. There is an Artificial Life mailing list.  It is distributed as a digest
  68. to avoid chaos.  You may subscribe to the list by sending a message to:
  69.  
  70.                    alife-request@cognet.ucla.edu
  71.  
  72. and you may post to the list by sending a message to:
  73.  
  74.                 alife@cognet.ucla.edu
  75.  
  76.                              Tom Ray
  77.                        University of Delaware
  78.                   School of Life & Health Sciences
  79.                       Newark, Delaware  19716
  80.                       ray@tierra.slhs.udel.edu
  81.                        ray@life.slhs.udel.edu
  82.                         ray@brahms.udel.edu
  83.                          302-451-2281 (FAX)
  84.                             302-451-2753
  85.  
  86.  
  87.      The figures for this paper are in available on request in Generic CADD
  88. batch file format.  This paper is being sent in two parts.  You will have
  89. to cut the headers of the two parts at the scissors marks, then cat them
  90. together.
  91.  
  92.                                  O /
  93. ================================= x -------------------------------------
  94.                   o \
  95. \documentstyle[12pt]{article}
  96.  
  97. \flushbottom
  98. \textheight 9in
  99. \textwidth 6.5in
  100. \textfloatsep 30pt plus 3pt minus 6pt
  101. \parskip 7.5pt plus 1pt minus 1pt
  102. \oddsidemargin 0in
  103. \evensidemargin 0in
  104. \topmargin 0in
  105. \headheight 0in
  106. \headsep 0in
  107.  
  108. % Hanging Paragraph
  109. \def\XP{\par\begingroup\parindent 0in\everypar{\hangindent .3in}}
  110. \def\eXP{\par\endgroup}
  111.  
  112. % Left Justified Paragraph
  113. \def\LP{\par\begingroup\parindent 0in\everypar{\hangindent 0in}}
  114. \def\eLP{\par\endgroup}
  115.  
  116. \begin{document}
  117. \thispagestyle{empty}
  118.  
  119. \LP
  120. \bf Thomas S. Ray\rm \\
  121. School of Life \& Health Sciences, University of Delaware, Newark, Delaware
  122. 19716,\\
  123. ray@brahms.udel.edu\\
  124. \rule[6pt]{6.5in}{1pt}
  125. \Large \bf Evolution and Optimization of Digital Organisms\rm \normalsize\\
  126. \rule[6pt]{6.5in}{2pt}
  127. \eLP
  128.  
  129. Digital organisms have been synthesized based on a computer metaphor of
  130. organic life in which CPU time is the ``energy'' resource and memory is
  131. the ``material'' resource.  Memory is organized into informational ``genetic''
  132. patterns that exploit CPU time for self-replication.  Mutation generates
  133. new forms, and evolution proceeds by natural selection as different
  134. ``genotypes'' compete for CPU time and memory space.  In addition, new
  135. genotypes appear which exploit other ``creatures'' for informational or
  136. energetic resources.
  137.  
  138. The digital organisms are self-replicating computer programs, however,
  139. they can not escape because they run exclusively on a virtual computer
  140. in its unique machine language.  From a single ancestral ``creature''
  141. there have evolved tens of thousands of self-replicating genotypes of
  142. hundreds of genome size classes.  Parasites evolved, then creatures that
  143. were immune to parasites, and then parasites that could circumvent the
  144. immunity.  Hyper-parasites evolved which subvert parasites to their own
  145. reproduction and drive them to extinction.  The resulting genetically
  146. uniform communities evolve sociality in the sense of creatures that can
  147. only reproduce in cooperative aggregations, and these aggregations are
  148. then invaded by cheating hyper-hyper-parasites.
  149.  
  150. Diverse ecological communities have emerged.  These digital communities
  151. have been used to experimentally study ecological and evolutionary processes:
  152. e.g., competitive exclusion and coexistance, symbiosis, host/parasite density
  153. dependent population regulation, the effect of parasites in enhancing
  154. community diversity, evolutionary arms races, punctuated equilibrium, and
  155. the role of chance and historical factors in evolution.  It is possible to
  156. extract information on any aspect of the system without disturbing it, from
  157. phylogeny or community structure through time to the ``genetic makeup'' and
  158. ``metabolic processes'' of individuals.  Digital life demonstrates the
  159. power of the computational approach to science as a complement to the
  160. traditional approaches of experiment, and theory based on analysis through
  161. calculus and differential equations.
  162.  
  163. Optimization experiments have shown that freely evolving digital organisms
  164. can optimize their algorithms by a factor of 5.75 in a few hours of real
  165. time.  In addition, evolution discovered the optimization technique of
  166. ``unrolling the loop''.  Evolution may provide a new method for the
  167. optimization or generation of application programs.  This method may
  168. prove particularly useful for programming massively parallel machines.
  169.  
  170. \LP
  171. \rule[6pt]{6.5in}{1pt}
  172. evolution, ecology, artificial life, synthetic life, emergence,
  173. self-replication, diversity, adaptation, coevolution, optimization
  174. \eLP
  175.  
  176. \newpage
  177.  
  178. % \baselineskip = 20pt
  179.  
  180. \LP
  181. \bf Thomas S. Ray\rm \\
  182. School of Life \& Health Sciences, University of Delaware, Newark, Delaware
  183. 19716,\\
  184. ray@brahms.udel.edu\\
  185. \rule[6pt]{6.5in}{1pt}
  186. \Large \bf Evolution and Optimization of Digital Organisms\rm \normalsize\\
  187. \rule[6pt]{6.5in}{2pt}
  188. \vspace{6cm}
  189.  
  190. \begin{quote}
  191. Marcel, a mechanical chessplayer... his exquisite 19th-century brainwork
  192. --- the human art it took to build which has been flat lost, lost as the
  193. dodo bird ...  But where inside Marcel is the midget Grandmaster, the
  194. little Johann Allgeier?  where's the pantograph, and the magnets?  Nowhere.
  195. Marcel really is a mechanical chessplayer.  No fakery inside to give
  196. him any touch of humanity at all.\\
  197. \hspace*{2in}--- Thomas Pynchon, \it Gravity's Rainbow\rm .
  198. \end{quote}
  199.  
  200. \large \bf 1 INTRODUCTION\rm \normalsize
  201. \eLP
  202.  
  203. Ideally, the science of biology should embrace all forms of life.  However
  204. in practice, it has been restricted to the study of a single instance of
  205. life, life on earth.  Life on earth is very diverse, but it is presumably
  206. all part of a single phylogeny.  Because biology is based on a sample size
  207. of one, we can not know what features of life are peculiar to earth, and
  208. what features are general, characteristic of all life.  A truly comparative
  209. natural biology would require inter-planetary travel, which is light
  210. years away.  The ideal experimental evolutionary biology would involve
  211. creation of multiple planetary systems, some essentially identical,
  212. others varying by a parameter of interest, and observing them for billions
  213. of years.
  214.  
  215. A practical alternative to an inter-planetary or mythical biology is to
  216. create synthetic life in a computer.  The objective is not necessarily
  217. to create life forms that would serve as models for the study of natural
  218. life, but rather to create radically different life forms, based on a
  219. completely different physics and chemistry, and let these life forms
  220. evolve their own phylogeny, leading to whatever forms are natural to their
  221. unique physical basis.  These truly independent instances of life may
  222. then serve as a basis for comparison, to gain some insight into what is
  223. general and what is peculiar in biology.  Those aspects of life that prove
  224. to be general enough to occur in both natural and synthetic systems can then
  225. be studied more easily in the synthetic system.  ``Evolution in a bottle''
  226. provides a valuable tool for the experimental study of evolution and ecology.
  227.  
  228. The intent of this work is to synthesize rather than simulate life.  This
  229. approach starts with hand crafted organisms already capable of replication
  230. and open-ended evolution, and aims to generate increasing diversity and
  231. complexity in a parallel to the Cambrian explosion.  To state such a goal
  232. leads to semantic problems, because life must be defined in a way that does
  233. not restrict it to carbon based forms.  It is unlikely that there could be
  234. general agreement on such a definition, or even on the proposition that life
  235. need not be carbon based.  Therefore, I will simply state my conception of
  236. life in its most general sense.  I would consider a system to be living if
  237. it is self-replicating, and capable of open-ended evolution.  Synthetic life
  238. should self-replicate, and evolve structures or processes that were not
  239. designed-in or pre-conceived by the creator (Pattee [30]; Cariani [5]).
  240.  
  241. Core Wars programs, computer viruses, and worms (Cohen [6]; Dewdney [10,
  242. 11, 13, 14]; Denning [9]; Rheingold [32]; Spafford et al. [33]) are capable
  243. of self-replication, but fortunately, not evolution.  It is unlikely that
  244. such programs will ever become fully living, because they are not likely
  245. to be able to evolve.
  246.  
  247. Most evolutionary simulations are not open-ended.  Their potential is limited
  248. by the structure of the model, which generally endows each individual with a
  249. genome consisting of a set of pre-defined genes, each of which may exist
  250. in a pre-defined set of allelic forms (Holland [20]; Dewdney [12]; Dawkins
  251. [7, 8]; Packard [29]; Ackley \& Littman [1]).  The object being evolved
  252. is generally a data structure representing the genome, which the simulator
  253. program mutates and/or recombines, selects, and replicates according to
  254. criteria designed into the simulator.  The data structures do not contain the
  255. mechanism for replication, they are simply copied by the simulator if they
  256. survive the selection phase.
  257.  
  258. Self-replication is critical to synthetic life because without it, the
  259. mechanisms of selection must also be pre-determined by the simulator.  Such
  260. artificial selection can never be as creative as natural selection.  The
  261. organisms are not free to invent their own fitness functions.  Freely
  262. evolving creatures will discover means of mutual exploitation and
  263. associated implicit fitness functions that we would never think of.
  264. Simulations constrained to evolve with pre-defined genes, alleles and fitness
  265. functions are dead ended, not alive.
  266.  
  267. The approach presented here does not have such constraints.  Although the
  268. model is limited to the evolution of creatures based on sequences of machine
  269. instructions, this may have a potential comparable to evolution based on
  270. sequences of organic molecules.  Sets of machine instructions similar to
  271. those used in the Tierra Simulator have been shown to be capable of
  272. ``universal computation'' (Aho et al. [2]; Minsky [26]; Langton [24]).
  273. This suggests that evolving machine codes should be able to generate any
  274. level of complexity.
  275.  
  276. Other examples of the synthetic approach to life can be seen in the work of
  277. Holland [21], Farmer et al.\ [16], Langton [22], Rasmussen et al.\
  278. [31], and Bagley et al.\ [3].  A characteristic these efforts
  279. generally have in common is that they parallel the origin of life event by
  280. attempting to create prebiotic conditions from which life may emerge
  281. spontaneously and evolve in an open ended fashion.
  282.  
  283. While the origin of life is generally recognized as an event of the first
  284. order, there is another event in the history of life that is less well known
  285. but of comparable significance: the origin of biological diversity and
  286. macroscopic multicellular life during the Cambrian explosion 600 million
  287. years ago.  This event involved a riotous diversification of life forms.
  288. Dozens of phyla appeared suddenly, many existing only fleetingly, as
  289. diverse and sometimes bizarre ways of life were explored in a relative
  290. ecological void (Gould [18]; Morris [27]).
  291.  
  292. The work presented here aims to parallel the second major event in the
  293. history of life, the origin of diversity.  Rather than attempting to create
  294. prebiotic conditions from which life may emerge, this approach involves
  295. engineering over the early history of life to design complex evolvable
  296. organisms, and then attempting to create the conditions that will set off
  297. a spontaneous evolutionary process of increasing diversity and complexity
  298. of organisms.  This work represents a first step in this direction, creating
  299. an artificial world which may roughly parallel the RNA world of
  300. self-replicating molecules (still falling far short of the Cambrian explosion).
  301.  
  302. The approach has generated rapidly diversifying communities of self-replicating
  303. organisms exhibiting open-ended evolution by natural selection.  From a single
  304. rudimentary ancestral creature containing only the code for self-replication,
  305. interactions such as parasitism, immunity, hyper-parasitism, sociality and
  306. cheating have emerged spontaneously.  This paper presents a methodology and
  307. some first results.
  308.  
  309. Apart from its value as a tool for the study or teaching of ecology and
  310. evolution, synthetic life may have commercial applications.  Evolution of
  311. machine code provides a new approach to the design and optimization of
  312. computer programs.  In an analogy to genetic engineering, pieces of
  313. application code may be inserted into the genomes of digital organisms,
  314. and then evolved to new functionality or greater efficiency.
  315.  
  316. \LP
  317. \rule[6pt]{6.5in}{1pt}
  318.  
  319. \begin{quote}
  320. Here was a world of simplicity and certainty...
  321. a world based on the one and zero of life and
  322. death.  Minimal, beautiful.  The patterns of lives and deaths....
  323. weightless, invisible chains of electronic presence or absence.  If
  324. patterns of ones and zeros were ``like'' patterns of human lives and
  325. deaths, if everything about an individual could be represented in a
  326. computer record by a long string of ones and zeros, then what kind of
  327. creature would be represented by a long string of lives and deaths?
  328. It would have to be up one level at least --- an angel, a minor god,
  329. something in a UFO.\\
  330. \hspace*{2in} --- Thomas Pynchon, \it Vineland\rm .
  331. \end{quote}
  332.  
  333. \large \bf 2 METHODS\rm \normalsize
  334.  
  335. \bf 2.1 THE METAPHOR\rm
  336. \eLP
  337.  
  338. Organic life is viewed as utilizing energy, mostly derived
  339. from the sun, to organize matter.  By analogy, digital life can be
  340. viewed as using CPU (central processing unit) time, to organize memory.
  341. Organic life evolves through natural selection as individuals compete for
  342. resources (light, food, space, etc.) such that genotypes which leave the
  343. most descendants increase in frequency.  Digital life evolves through the
  344. same process, as replicating algorithms compete for CPU time and memory
  345. space, and organisms evolve strategies to exploit one another.  CPU time is
  346. thought of as the analog of the energy resource, and memory as the analog
  347. of the spatial resource.
  348.  
  349. The memory, the CPU and the computer's operating system are viewed as elements
  350. of the ``abiotic'' (physical) environment.  A ``creature'' is then designed
  351. to be specifically adapted to the features of the computational environment.
  352. The creature consists of a self-replicating assembler language program.
  353. Assembler languages are merely mnemonics for the machine codes that are
  354. directly executed by the CPU.  These machine codes have the characteristic
  355. that they directly invoke the instruction set of the CPU and services provided
  356. by the operating system.
  357.  
  358. All programs, regardless of the language they are written in, are converted
  359. into machine code before they are executed.  Machine code is the natural
  360. language of the machine, and machine instructions are viewed by this
  361. author as the ``atomic units'' of computing.  It is felt that machine
  362. instructions provide the most natural basis for an artificial chemistry
  363. of creatures designed to live in the computer.
  364.  
  365. In the biological analogy, the machine instructions are considered to be
  366. more like the amino acids than the nucleic acids, because they are
  367. ``chemically active''.  They actively manipulate bits, bytes, CPU registers,
  368. and the movements of the instruction pointer (see below).  The digital
  369. creatures discussed here are entirely constructed of machine instructions.
  370. They are considered analogous to creatures of the RNA world, because the
  371. same structures bear the ``genetic'' information and carry out the
  372. ``metabolic'' activity.
  373.  
  374. A block of RAM memory (random access memory, also known as ``main'' or
  375. ``core'' memory) in the computer is designated as a ``soup'' which can
  376. be inoculated with creatures.  The ``genome'' of the creatures consists of
  377. the sequence of machine instructions that make up the creature's
  378. self-replicating algorithm.  The prototype creature consists of 80 machine
  379. instructions, thus the size of the genome of this creature is 80 instructions,
  380. and its ``genotype'' is the specific sequence of those 80 instructions
  381. (Appendix C).
  382.  
  383. \LP
  384. \bf 2.2 THE VIRTUAL COMPUTER --- TIERRA SIMULATOR\rm
  385. \eLP
  386.  
  387. The computers we use are general purpose computers, which means, among
  388. other things, that they are capable of emulating through software, the
  389. behavior of any other computer that ever has been built or that could be
  390. built (Aho et al. [2]; Minsky [26]; Langton [24]).  We can utilize
  391. this flexibility to design a computer that would be especially hospitable
  392. to synthetic life.
  393.  
  394. There are several good reasons why it is not wise to attempt to synthesize
  395. digital organisms that exploit the machine codes and operating systems of
  396. real computers.  The most urgent is the potential threat of natural evolution
  397. of machine codes leading to virus or worm type of programs that could
  398. be difficult to eradicate due to their changing ``genotypes''.  This potential
  399. argues strongly for creating evolution exclusively in programs that run only
  400. on virtual computers and their virtual operating systems.  Such programs
  401. would be nothing more than data on a real computer, and therefore would
  402. present no more threat than the data in a data base or the text file of a
  403. word processor.
  404.  
  405. Another reason to avoid developing digital organisms in the machine code of
  406. a real computer is that the artificial system would be tied to the hardware
  407. and would become obsolete as quickly as the particular machine it was
  408. developed on.  In contrast, an artificial system developed on a virtual
  409. machine could be easily ported to new real machines as they become available.
  410.  
  411. A third issue, which potentially makes the first two moot, is that
  412. the machine languages of real machines are not designed to be evolvable,
  413. and in fact might not support significant evolution.  Von Neuman type
  414. machine languages are considered to be ``brittle'', meaning that the
  415. ratio of viable programs to possible programs is virtually zero.  Any
  416. mutation or recombination event in a real machine code is almost certain
  417. to produce a non-functional program.  The problem of brittleness can be
  418. mitigated by designing a virtual computer whose machine code is designed
  419. with evolution in mind.  Farmer \& Belin [17] have suggested that
  420. overcoming this brittleness and ``Discovering how to make such self-replicating
  421. patterns more robust so that they evolve to increasingly more complex states
  422. is probably the central problem in the study of artificial life.''
  423.  
  424. The work described here takes place on a virtual computer known as Tierra
  425. (Spanish for Earth).  Tierra is a parallel computer of the MIMD (multiple
  426. instruction, multiple data) type, with a processor (CPU) for each creature.
  427. Parallelism is imperfectly emulated by allowing each CPU to execute a small
  428. time slice in turn.  Each CPU of this virtual computer contains two address
  429. registers, two numeric registers, a flags register to indicate error
  430. conditions, a stack pointer, a ten word stack, and an instruction pointer.
  431. Each virtual CPU is implemented via the C structure listed in Appendix A.
  432. Computations performed by the Tierran CPUs are probabilistic due to flaws
  433. that occur at a low frequency (see Mutation below).
  434.  
  435. The instruction set of a CPU typically performs simple arithmetic
  436. operations or bit manipulations, within the small set of registers contained
  437. in the CPU.  Some instructions move data between the registers in the CPU,
  438. or between the CPU registers and the RAM (main) memory.  Other instructions
  439. control the location and movement of an ``instruction pointer'' (IP).  The
  440. IP indicates an address in RAM, where the machine code
  441. of the executing program (in this case a digital organism) is located.
  442.  
  443. The CPU perpetually performs a fetch-decode-execute-increment\_IP
  444. cycle:  The machine code instruction currently addressed by the IP
  445. is fetched into the CPU, its bit pattern is decoded to determine which
  446. instruction it corresponds to, and the instruction is executed.  Then
  447. the IP is incremented to point sequentially to the next position in RAM,
  448. from which the next instruction will be fetched.  However, some instructions
  449. like JMP, CALL and RET directly manipulate the IP, causing execution to
  450. jump to some other sequence of instructions in the RAM.  In the Tierra
  451. Simulator this CPU cycle is implemented through the time\_slice routine
  452. listed in Appendix B.  
  453.  
  454. \LP
  455. \bf 2.3 THE TIERRAN LANGUAGE\rm
  456. \eLP
  457.  
  458. Before attempting to set up a synthetic life system, careful thought must
  459. be given to how the representation of a programming language affects its
  460. adaptability in the sense of being robust to genetic operations such as
  461. mutation and recombination.  The nature of the virtual computer is defined
  462. in large part by the instruction set of its machine language.  The approach
  463. in this study has been to loosen up the machine code in a ``virtual
  464. bio-computer'', in order to create a computational system based on a hybrid
  465. between biological and classical von Neumann processes.
  466.  
  467. In developing this new virtual language, which is called ``Tierran'', close
  468. attention has been paid to the structural and functional properties of the
  469. informational system of biological molecules: DNA, RNA and proteins.  Two
  470. features have been borrowed from the biological world which are considered
  471. to be critical to the evolvability of the Tierran language.
  472.  
  473. First, the instruction set of the Tierran language has been defined to be
  474. of a size that is the same order of magnitude as the genetic
  475. code.  Information is encoded into DNA through 64 codons, which are
  476. translated into 20 amino acids.  In its present manifestation, the Tierran
  477. language consists of 32 instructions, which can be represented by five bits,
  478. \it operands included\rm.
  479.  
  480. Emphasis is placed on this last point because some instruction sets are
  481. deceptively small.  Some versions of the redcode language of Core Wars
  482. (Dewdney [10, 13]; Rasmussen et al. [31]) for example are defined to have
  483. ten operation codes.  It might appear on the surface then that the
  484. instruction set is of size ten.  However, most of the ten instructions have
  485. one or two operands.  Each operand has four addressing modes, and then an
  486. integer.  When we consider that these operands are embedded into the machine
  487. code, we realize that they are in fact a part of the instruction set, and
  488. this set works out to be about $10^{11}$ in size.  Similarly, RISC machines
  489. may have only a few opcodes, but they probably all use 32 bit instructions,
  490. so from a mutational point of view, they really have $2^{32}$ instructions.
  491. Inclusion of numeric operands will make any instruction set extremely large
  492. in comparison to the genetic code.
  493.  
  494. In order to make a machine code with a truly small instruction set, we must
  495. eliminate numeric operands.  This can be accomplished by allowing the CPU
  496. registers and the stack to be the only operands of the instructions.  When
  497. we need to encode an integer for some purpose, we can create it in a numeric
  498. register through bit manipulations: flipping the low order bit and shifting
  499. left.  The program can contain the proper sequence of bit flipping and shifting
  500. instructions to synthesize the desired number, and the instruction set need
  501. not include all possible integers.
  502.  
  503. A second feature that has been borrowed from molecular biology in the design
  504. of the Tierran language is the addressing mode, which is called ``address
  505. by template''.  In most machine codes, when a piece of data is addressed, or
  506. the IP jumps to another piece of code, the exact numeric address of the data
  507. or target code is specified in the machine code.  Consider that in the
  508. biological system by contrast, in order for protein molecule A in the cytoplasm
  509. of a cell to interact with protein molecule B, it does not
  510. specify the exact coordinates where B is located.  Instead, molecule A
  511. presents a template on its surface which is complementary to some surface on
  512. B.  Diffusion brings the two together, and the complementary conformations
  513. allow them to interact.
  514.  
  515. Addressing by template is illustrated by the Tierran JMP (jump) instruction.
  516. Each JMP instruction is followed by a sequence of NOP (no-operation)
  517. instructions, of which there are two kinds: NOP\_0 and NOP\_1.  Suppose we
  518. have a piece of code with five instruction in the following order:
  519. JMP NOP\_0 NOP\_0 NOP\_0 NOP\_1.  The system will search outward in both
  520. directions from the JMP instruction looking for the nearest occurrence of the
  521. complementary pattern: NOP\_1 NOP\_1 NOP\_1 NOP\_0.  If the pattern is found,
  522. the instruction pointer will move to the end of the complementary pattern
  523. and resume execution.  If the pattern is not found, an error condition (flag)
  524. will be set and the JMP instruction will be ignored (in practice, a limit
  525. is placed on how far the system may search for the pattern).
  526.  
  527. The Tierran language is characterized by two unique features: a truly small
  528. instruction set without numeric operands, and addressing by template.
  529. Otherwise, the language consists of familiar instructions typical of most
  530. machine languages, e.g., MOV, CALL, RET, POP, PUSH etc.  The complete
  531. instruction set is listed in Appendix B.
  532.  
  533. \LP
  534. \bf 2.4 THE TIERRAN OPERATING SYSTEM\rm
  535. \eLP
  536.  
  537. The Tierran virtual computer needs a virtual operating system that will be
  538. hospitable to digital organisms.  The operating system will determine the
  539. mechanisms of interprocess communication, memory allocation, and the
  540. allocation of CPU time among competing processes.  Algorithms will
  541. evolve so as to exploit these features to their advantage.  More than being
  542. a mere aspect of the environment, the operating system together with the
  543. instruction set will determine the
  544. topology of possible interactions between individuals, such as the ability
  545. of pairs of individuals to exhibit predator-prey, parasite-host or 
  546. mutualistic relationships.
  547.  
  548. \LP
  549. \bf 2.4.1 Memory Allocation --- Cellularity\rm
  550. \eLP
  551.  
  552. The Tierran computer operates on a block of RAM of the real computer which
  553. is set aside for the purpose.  This block of RAM is referred to as the
  554. ``soup''.  In most of the work described here the soup consisted of about
  555. 60,000 bytes, which can hold the same number of Tierran machine instructions.
  556. Each ``creature'' occupies some block of memory in this soup.
  557.  
  558. Cellularity is one of the fundamental properties of organic life, and can
  559. be recognized in the fossil record as far back as 3.6 billion years (Barbieri
  560. [4]).  The cell is the original individual, with the cell membrane defining
  561. its limits and preserving its chemical integrity.  An analog to the cell
  562. membrane is needed in digital organisms in order to preserve the integrity of
  563. the informational structure from being disrupted easily by the activity of
  564. other organisms.  The need for this can be seen in Artificial Life models
  565. such as cellular automata where virtual state machines pass through one
  566. another (Langton [22, 23]), or in core wars type simulations where
  567. coherent structures demolish one another when they come into contact
  568. (Dewdney [10, 13]; Rasmussen et al. [31]).
  569.  
  570. Tierran creatures are considered to be cellular in the sense that they are
  571. protected by a ``semi-permeable membrane'' of memory allocation.  The Tierran
  572. operating system provides memory allocation services.  Each creature has
  573. exclusive write privileges within its allocated block of memory.  The ``size''
  574. of a creature is just the size of its allocated block (e.g., 80 instructions).
  575. This usually corresponds to the size of the genome.  This ``membrane'' is
  576. described as ``semi-permeable'' because
  577. while write privileges are protected, read and execute privileges are not.
  578. A creature may examine the code of another creature, and even execute it,
  579. but it can not write over it.  Each creature may have exclusive write
  580. privileges in at most two blocks of memory: the one that it is born with
  581. which is referred to as the ``mother cell'', and a second block which it
  582. may obtain through the execution of the MAL (memory allocation) instruction.
  583. The second block, referred to as the ``daughter cell'', may be used to grow
  584. or reproduce into.
  585.  
  586. When Tierran creatures ``divide'', the mother cell loses write privileges
  587. on the space of the daughter cell, but is then free to allocate another
  588. block of memory.  At the moment of division, the daughter cell is given
  589. its own instruction pointer, and is free to allocate its own second block of
  590. memory.
  591.  
  592. \LP
  593. \bf 2.4.2 Time Sharing --- The Slicer\rm
  594. \eLP
  595.  
  596. The Tierran operating system must be multi-tasking (or parallel) in order for
  597. a community of individual creatures to live in the soup simultaneously.  The
  598. system doles out small slices of CPU time to each creature in the soup in turn.
  599. The system maintains a circular queue called the ``slicer queue''.  As each
  600. creature is born, a virtual CPU is created for it, and it enters the slicer
  601. queue just ahead of its mother, which is the active creature at that time.
  602. Thus the newborn will be the last creature in the soup to get another time
  603. slice after the mother, and the mother will get the next slice after its
  604. daughter.  As long as the slice size is small relative to the generation
  605. time of the creatures, the time sharing system causes the world to approximate
  606. parallelism.  In actuality, we have a population of virtual CPUs, each of
  607. which gets a slice of the real CPU's time as it comes up in the queue.
  608.  
  609. The number of instructions to be executed in each time slice may be set
  610. proportional to the size of the genome of the creature being executed, raised
  611. to a power.  If the ``slicer power'' is equal to one, then the slicer is size
  612. neutral, the probability of an instruction being executed does not depend on
  613. the size of the creature in which it occurs.  If the power is greater than one,
  614. large creatures get more CPU cycles per instruction than small creatures.
  615. If the power is less than one, small creatures get more CPU cycles per
  616. instruction.  The power determines if selection favors large or small
  617. creatures, or is size neutral.  A constant slice size selects for small
  618. creatures. 
  619.  
  620. \LP
  621. \bf 2.4.3 Mortality --- The Reaper\rm
  622. \eLP
  623.  
  624. Self-replicating creatures in a fixed size soup would rapidly fill the
  625. soup and lock up the system.  To prevent this from occurring, it is
  626. necessary to include mortality.  The Tierran operating system includes a
  627. ``reaper'' which begins ``killing'' creatures from a queue when the memory
  628. fills to some specified level (e.g., 80\%).  Creatures are killed by
  629. deallocating their memory, and removing them from both the reaper and
  630. slicer queues.  Their ``dead'' code is not removed from the soup.
  631.  
  632. In the present system, the reaper uses a linear queue.  When a creature is
  633. born it enters the bottom of the queue.  The reaper always kills the creature
  634. at the top of the queue.  However, individuals may move up or down in the
  635. reaper queue according to their success or failure at executing certain
  636. instructions.  When a creature executes an instruction that generates an
  637. error condition, it moves one position up the queue, as long as the
  638. individual ahead of it in the queue has not accumulated a greater number
  639. of errors.  Two of the instructions are somewhat difficult to execute
  640. without generating an error, therefore successful execution of these
  641. instructions moves the creature down the reaper queue one position, as long
  642. as it has not accumulated more errors than the creature below it.
  643.  
  644. The effect of the reaper queue is to cause algorithms which are fundamentally
  645. flawed to rise to the top of the queue and die.  Vigorous algorithms have a
  646. greater longevity, but in general, the probability of death increases with age.
  647.  
  648. \LP
  649. \bf 2.4.4 Mutation\rm
  650. \eLP
  651.  
  652. In order for evolution to occur, there must be some change in the genome
  653. of the creatures.  This may occur within the lifespan of an individual,
  654. or there may be errors in passing along the genome to offspring.  In order
  655. to insure that there is genetic change, the operating system randomly flips
  656. bits in the soup, and the instructions of the Tierran language are
  657. imperfectly executed.
  658.  
  659. Mutations occur in two circumstances.  At some background rate, bits are
  660. randomly selected from the entire soup (e.g., 60,000 instructions totaling
  661. 300,000 bits) and flipped.  This is analogous to mutations caused by
  662. cosmic rays, and has the effect of preventing any creature from being
  663. immortal, as it will eventually mutate to death.  The background mutation
  664. rate has generally been set at about one bit flipped for every 10,000
  665. Tierran instructions executed by the system.
  666.  
  667. In addition, while copying instructions during the replication
  668. of creatures, bits are randomly flipped at some rate in the copies.  The copy
  669. mutation rate is the higher of the two, and results in replication errors.
  670. The copy mutation rate has generally been set at about one bit flipped for
  671. every 1,000 to 2,500 instructions moved.  In both classes of mutation,
  672. the interval between mutations varies randomly within a certain range to
  673. avoid possible periodic effects.
  674.  
  675. In addition to mutations, the execution of Tierran instructions is flawed
  676. at a low rate.  For most of the 32 instructions, the result is off by plus
  677. or minus one at some low frequency.  For example, the increment instruction
  678. normally adds one to its register, but it sometimes adds two or zero.  The
  679. bit flipping instruction normally flips the low order bit, but it sometimes
  680. flips the next higher bit or no bit.  The shift left instruction normally
  681. shifts all bits one bit to the left, but it sometimes shifts left by two
  682. bits, or not at all.  In this way, the behavior of the Tierran instructions
  683. is probabilistic, not fully deterministic.
  684.  
  685. It turns out that bit flipping mutations and flaws in instructions are not
  686. necessary to generate genetic change and evolution, once the community
  687. reaches a certain state of complexity.  Genetic parasites evolve which are
  688. sloppy replicators, and have the effect of moving pieces of code around
  689. between creatures, causing rather massive rearrangements of the genomes.
  690. The mechanism of this ad hoc sexuality has not been worked out, but is
  691. likely due to the parasites' inability to discriminate between live, dead
  692. or embryonic code.
  693.  
  694. Mutations result in the appearance of new genotypes, which are watched
  695. by an automated genebank manager.  In one implementation of the manager,
  696. when new genotypes replicate twice, producing a genetically identical
  697. offspring at least once, they are given a unique name and saved to disk.
  698. Each genotype name contains two parts, a number and a three letter code.
  699. The number represents the number of instructions in the genome.  The three
  700. letter code is used as a base 26 numbering system for assigning a unique
  701. label to each genotype in a size class.  The first genotype to appear in
  702. a size class is assigned the label aaa, the second is assigned the label
  703. aab, and so on.  Thus the ancestor is named 80aaa, and the first mutant
  704. of size 80 is named 80aab.  The first creature of size 45 is named 45aaa.
  705.  
  706. The genebanker saves some additional information with each genome: the
  707. genotype name of its immediate ancestor which makes possible the
  708. reconstruction of the entire phylogeny; the time and date of origin;
  709. ``metabolic'' data including the number of instructions executed in the
  710. first and second reproduction, the number of errors generated in the first
  711. and second reproduction, and the number of instructions copied into the
  712. daughter cell in the first and second reproductions (see Appendix C, D); some
  713. environmental parameters at the time of origin including the search limit
  714. for addressing, and the slicer power, both of which affect selection for size.
  715.  
  716. \LP
  717. \bf 2.5 THE TIERRAN ANCESTOR\rm
  718. \eLP
  719.  
  720. I have used the Tierran language to write a single self-replicating program
  721. which is 80 instructions long.  This program is referred to as the
  722. ``ancestor'', or alternatively as genotype 0080aaa (Fig.\ 1).  The ancestor
  723. is a minimal self-replicating algorithm which was originally written for use
  724. during the debugging of the simulator.  No functionality was designed into
  725. the ancestor beyond the ability to self-replicate, nor was any specific
  726. evolutionary potential designed in.  The commented Tierran assembler and
  727. machine code for this program is presented in Appendix C.
  728.  
  729. The ancestor examines itself to determine where in memory it begins and ends.
  730. The ancestor's beginning is marked with the four no-operation template:
  731. 1 1 1 1, and its ending is marked with 1 1 1 0.  The ancestor locates its
  732. beginning with the five instructions: ADRB, NOP\_0, NOP\_0, NOP\_0, NOP\_0.
  733. This series of instructions causes the system to search backwards
  734. from the ADRB instruction for a template complementary to the four NOP\_0
  735. instructions, and to place the address of the complementary template
  736. (the beginning) in the ax register of the CPU (see Appendix A).  A similar
  737. method is used to locate the end.
  738.  
  739. Having determined the address of its beginning and its end, it subtracts
  740. the two to calculate its size, and allocates a block of memory of this size
  741. for a daughter cell.  It then calls the copy procedure which copies the entire
  742. genome into the daughter cell memory, one instruction at a time.
  743. The beginning of the copy procedure is marked by the four no-operation
  744. template: 1 1 0 0.  Therefore the call to the copy procedure is accomplished
  745. with the five instructions: CALL, NOP\_0, NOP\_0, NOP\_1, NOP\_1.
  746.  
  747. When the genome has been copied, it executes the DIVIDE instruction, which
  748. causes the creature to lose write privileges on the daughter cell memory,
  749. and gives an instruction pointer to the daughter cell (it also enters the
  750. daughter cell into the slicer and reaper queues).  After this first
  751. replication, the mother cell does not examine itself again; it proceeds
  752. directly to the allocation of another daughter cell, then the copy procedure
  753. is followed by cell division, in an endless loop.
  754.  
  755. Fourty-eight of the eighty instructions in the ancestor are no-operations.
  756. Groups of four no-operation instructions are used as complementary templates
  757. to mark twelve sites for internal addressing, so that the creature can locate
  758. its beginning and end, call the copy procedure, and mark addresses for loops
  759. and jumps in the code, etc.  The functions of these templates are commented
  760. in the listing in Appendix C.
  761.  
  762. \pagebreak
  763.  
  764. \LP
  765. \rule[6pt]{6.5in}{1pt}
  766.  
  767. \large \bf 3 RESULTS\rm \normalsize
  768.  
  769. \bf 3.1 EVOLUTION\rm
  770. \eLP
  771.  
  772. Evolutionary runs of the simulator are begun by inoculating the soup of about
  773. 60,000 instructions with a single individual of the 80 instruction ancestral
  774. genotype.  The passage of time in a run is measured in terms of how many
  775. Tierran instructions have been executed by the simulator.  The original
  776. ancestral cell executes 839 instructions in its first replication, and 813 for
  777. each additional replication.  The initial cell and its replicating daughters
  778. rapidly fill the soup memory to the threshold level of 80\% which starts the
  779. reaper.  Typically, the system executes about 400,000 instructions in filling
  780. up the soup with about 375 individuals of size 80 (and their gestating
  781. daughter cells).  Once the reaper begins, the memory remains roughly 80\%
  782. filled with creatures for the remainder of the run.
  783.  
  784. \LP
  785. \bf 3.1.1 Micro-Evolution\rm
  786. \eLP
  787.  
  788. If there were no mutations at the outset of the run, there would be no
  789. evolution.  However, the bits flipped as a result of copy errors or background
  790. mutations result in creatures whose list of 80 instructions (genotype) differs
  791. from the ancestor, usually by a single bit difference in a single instruction.
  792.  
  793. Mutations in and of themselves, can not result in a change in the size of
  794. a creature, they can only alter the instructions in its genome.  However,
  795. by altering the genotype, mutations may affect the process whereby the
  796. creature examines itself and calculates its size, potentially causing it
  797. to produce an offspring that differs in size from itself.
  798.  
  799. Four out of the five possible mutations in a no-operation instruction convert
  800. it into another kind of instruction, while one out of five converts it into
  801. the complementary no-operation.  Therefore 80\% of mutations in templates
  802. destroy or change the size of the template, while one in five alters the
  803. template pattern.  An altered template may cause the creature to make
  804. mistakes in self examination, procedure calls, or looping or jumps of the
  805. instruction pointer, all of which use templates for addressing.
  806.  
  807. \LP
  808. \bf 3.1.1.1 parasites\rm
  809. \eLP
  810.  
  811. An example of the kind of error that can result from a mutation in a
  812. template is a mutation of the low order bit of instruction 42 of the
  813. ancestor (Appendix C).  Instruction 42 is a NOP\_0, the third component
  814. of the copy procedure template.  A mutation in the low order bit would
  815. convert it into NOP\_1, thus changing the template from 1 1 0 0 to: 1 1 1 0.
  816. This would then be recognized as the template used to mark the end of the
  817. creature, rather than the copy procedure.
  818.  
  819. A creature born with a mutation in the low order bit of instruction 42 would
  820. calculate its size as 45.  It would allocate a daughter cell of size 45 and
  821. copy only instructions 0 through 44 into the daughter cell.  The daughter
  822. cell then, would not include the copy procedure.  This daughter genotype,
  823. consisting of 45 instructions, is named 0045aaa.
  824.  
  825. Genotype 0045aaa (Fig.\ 1) is not able to self-replicate in isolated culture.
  826. However, the semi-permeable membrane of memory allocation only protects write
  827. privileges.  Creatures may match templates with code in the allocated memory
  828. of other creatures, and may even execute that code.  Therefore, if creature
  829. 0045aaa is grown in mixed culture with 0080aaa, when it attempts to call the
  830. copy procedure, it will not find the template within its own genome, but if
  831. it is within the search limit (generally set at 200--400 instructions) of the
  832. copy procedure of a creature of genotype 0080aaa, it will match templates, and
  833. send its instruction pointer to the copy code of 0080aaa.  Thus a parasitic
  834. relationship is established (see ECOLOGY below).  Typically, parasites begin
  835. to emerge within the first few million instructions of elapsed time in a run.
  836.  
  837. \LP
  838. \bf 3.1.1.2 immunity to parasites\rm
  839. \eLP
  840.  
  841. At least some of the size 79 genotypes demonstrate some measure of
  842. resistance to parasites.  If genotype 45aaa is introduced into a soup,
  843. flanked on each side with one individual of genotype 0079aab, 0045aaa will
  844. initially reproduce somewhat, but will be quickly eliminated from the soup.
  845. When the same experiment is conducted with 0045aaa and the ancestor, they
  846. enter a stable cycle in which both genotypes coexist indefinitely.  Freely
  847. evolving systems have been observed to become dominated by size 79 genotypes
  848. for long periods, during which parasitic genotypes repeatedly appear, but
  849. fail to invade.
  850.  
  851. \LP
  852. \bf 3.1.1.3 circumvention of immunity to parasites\rm
  853. \eLP
  854.  
  855. Occasionally these evolving systems dominated by size 79 were successfully
  856. invaded by parasites of size 51.  When the immune genotype 0079aab was tested
  857. with 0051aao (a direct, one step, descendant of 0045aaa in which instruction
  858. 39 is replaced by an insertion of seven instructions of unknown origin), they
  859. were found to enter a stable cycle.  Evidently 0051aao has evolved some way to
  860. circumvent the immunity to parasites possessed by 0079aab.  The fourteen
  861. genotypes 0051aaa through 0051aan were also tested with 0079aab, and none were
  862. able to invade.
  863.  
  864. \LP
  865. \bf 3.1.1.4 hyper-parasites\rm
  866. \eLP
  867.  
  868. Hyper-parasite have been discovered, (e.g., 0080gai, which differs by 19
  869. instructions from the ancestor, Fig.\ 1).  Their ability to subvert the energy
  870. metabolism of parasites is based on two changes.  The copy procedure does not
  871. return, but jumps back directly to the proper address of the reproduction loop.
  872. In this way it effectively seizes the instruction pointer from the parasite.
  873. However it is another change which delivers the coup de gr\^{a}ce: after
  874. each reproduction, the hyper-parasite re-examines itself, resetting the bx
  875. register with its location and the cx register with its size.  After the
  876. instruction pointer of the parasite passes through this code, the CPU of the
  877. parasite contains the location and size of the hyper-parasite and the
  878. parasite thereafter replicates the hyper-parasite genome.
  879.  
  880. \LP
  881. \bf 3.1.1.5 social hyper-parasites\rm
  882. \eLP
  883.  
  884. Hyper-parasites drive the parasites to extinction.  This results in a
  885. community with a relatively high level of genetic uniformity, and therefore
  886. high genetic relationship between individuals in the community.  These are
  887. the conditions that support the evolution of sociality, and social
  888. hyper-parasites soon dominate the community.  Social hyper-parasites (Fig.\ 2)
  889. appear in the 61 instruction size class.  For example, 0061acg is social in
  890. the sense that it can only self-replicate when it occurs in aggregations.
  891. When it jumps back to the code for self-examination, it jumps to a template
  892. that occurs at the end rather than the beginning of its genome.  If the
  893. creature is flanked by a similar genome, the jump will find the target
  894. template in the tail of the neighbor, and execution will then pass into
  895. the beginning of the active creature's genome.  The algorithm will fail unless
  896. a similar genome occurs just before the active creature in memory.  Neighboring
  897. creatures cooperate by catching and passing on jumps of the instruction
  898. pointer.
  899.  
  900. It appears that the selection pressure for the evolution of sociality is that
  901. it facilitates size reduction.  The social species are 24\% smaller than the
  902. ancestor.  They have achieved this size reduction in part by shrinking their
  903. templates from four instructions to three instructions.  This means that there
  904. are only eight templates available to them, and catching each others jumps
  905. allows them to deal with some of the consequences of this limitation as well
  906. as to make dual use of some templates.
  907.  
  908. \LP
  909. \bf 3.1.1.6 cheaters: hyper-hyper-parasites\rm
  910. \eLP
  911.  
  912. The cooperative social system of hyper-parasites is subject to cheating,
  913. and is eventually invaded by hyper-hyper-parasites (Fig.\ 2).  These cheaters
  914. (e.g., 0027aab) position themselves between aggregating hyper-parasites so
  915. that when the instruction pointer is passed between them, they capture it.
  916.  
  917. \LP
  918. \bf 3.1.1.7 a novel self-examination\rm
  919. \eLP
  920.  
  921. All creatures discussed thus far mark their beginning and end with templates.
  922. They then locate the addresses of the two templates and determine their genome
  923. size by subtracting them.  In one run, creatures evolved without a template
  924. marking their end.  These creatures located the address of the template
  925. marking their beginning, and then the address of a template in the middle of
  926. their genome.  These two addresses were then subtracted to calculate half of
  927. their size, and this value was multiplied by two (by shifting left) to
  928. calculate their full size.
  929.  
  930. \LP
  931. \bf 3.1.1.8 an intricate adaptation\rm
  932. \eLP
  933.  
  934. The arms race described in the paragraphs above took place over a period of
  935. a billion instructions executed by the system.  Another run was allowed to
  936. continue for fifteen billion instructions, but was not examined in detail.
  937. A creature present at the end of the run was examined and found to have
  938. evolved an intricate adaptation.  The adaptation is an optimization technique
  939. known as ``unrolling the loop''.
  940.  
  941. The central loop of the copy procedure performs the following operations:
  942. 1) copies an instruction from the mother to the daughter, 2) decrements the
  943. cx register which initially contains the size of the parent genome, 3) tests
  944. to see if cx is equal to zero, if so it exits the loop, if not it remains
  945. in the loop, 4) increment the ax register which contains the address in the
  946. daughter where the next instruction will be copied to, 5) increment the
  947. bx register which contains the address in the mother where the next instruction
  948. will be copied from, 6) jump back to the top of the loop.
  949.  
  950. The work of the loop is contained in steps 1, 2, 4 and 5.  Steps 3 and 6 are
  951. overhead.  The efficiency of the loop can be increased by duplicating the
  952. work steps within the loop, thereby saving on overhead.  The creature from
  953. the end of the long run had repeated the work steps three times within the
  954. loop, as illustrated in Appendix E, which compares the copy loop of the
  955. ancestor with that of its decendant.
  956.  
  957. \LP
  958. \bf 3.1.2 Macro-Evolution\rm
  959. \eLP
  960.  
  961. When the simulator is run over long periods of time, hundreds of millions or
  962. billions of instructions, various patterns emerge.  Under selection for small
  963. sizes there is a proliferation of small parasites and a rather interesting
  964. ecology (see below).  Selection for large creatures has usually lead to
  965. continuous incrementally increasing sizes (but not to a trivial concatenation
  966. of creatures end-to-end) until a plateau in the upper hundreds is reached.
  967. In one run, selection for large size lead to apparently open ended size
  968. increase, evolving genomes larger than 23,000 instructions in length.
  969. These evolutionary patterns might be described as phyletic gradualism.
  970.  
  971. The most thoroughly studied case for long runs is where selection, as
  972. determined by the slicer function, is size neutral.  The longest runs to date
  973. (as much as 2.86 billion Tierran instructions) have been in a size neutral
  974. environment, with a search limit of 10,000, which would allow large creatures
  975. to evolve if there were some algorithmic advantage to be gained from larger
  976. size.  These long runs illustrate a pattern which could be described as
  977. periods of stasis punctuated by periods of rapid evolutionary change, which
  978. appears to parallel the pattern of punctuated equilibrium described by
  979. Eldredge \& Gould [15] and Gould \& Eldredge [19].
  980.  
  981. Initially these communities are dominated by creatures with genome sizes
  982. in the eighties.  This represents a period of relative stasis, which has
  983. lasted from 178 million to 1.44 billion instructions in the several long
  984. runs conducted to date.  The systems then very abruptly (in a span of 1 or
  985. 2 million instructions) evolve into communities dominated by sizes ranging
  986. from about 400 to about 800.  These communities have not yet been seen to
  987. evolve into communities dominated by either smaller or substantially larger
  988. size ranges.
  989.  
  990. The communities of creatures in the 400 to 800 size range also show a
  991. long-term pattern of punctuated equilibrium.  These communities regularly come
  992. to be dominated by one or two size classes, and remain in that condition for
  993. long periods of time.  However, they inevitably break out of that stasis
  994. and enter a period where no size class dominates.  These periods of rapid
  995. evolutionary change may be very chaotic.  Close observations indicate that
  996. at least at some of these times, no genotypes breed true.  Many
  997. self-replicating genotypes will coexist in the soup at these times, but at
  998. the most chaotic times, none will produce offspring which are even their same
  999. size.  Eventually the system will settle down to another period of stasis
  1000. dominated by one or a few size classes which breed true.
  1001.  
  1002. \LP
  1003. \bf 3.2 DIVERSITY\rm
  1004. \eLP
  1005.  
  1006. Most observations on the diversity of Tierran creatures have been based on
  1007. the diversity of size classes.  Creatures of different sizes are clearly
  1008. genetically different, as their genomes are of different sizes.  Different
  1009. sized creatures would have some difficulty engaging in recombination if they
  1010. were sexual, thus it is likely that they would be different species.
  1011. In a run of 526 million instructions, 366 size classes were generated, 93
  1012. of which achieved abundances of five or more individuals.  In a run of
  1013. 2.56 billion instructions, 1180 size classes were generated, 367 of which
  1014. achieved abundances of five or more.
  1015.  
  1016. Each size class consists of a number of distinct genotypes which also vary
  1017. over time.  There exists the potential for great genetic diversity within a
  1018. size class.  There are 32$^{80}$ distinct genotypes of size 80, but how many
  1019. of those are viable self-replicating creatures?  This question remains
  1020. unanswered, however some information has been gathered through the use
  1021. of the automated genebank manager.
  1022.  
  1023. In several days of running the genebanker, over 29,000 self-replicating
  1024. genotypes of over 300 size classes accumulated.  The size classes and
  1025. the number of unique genotypes banked for each size are listed in Table 1.
  1026. The genotypes saved to disk can be used to inoculate new soups individually,
  1027. or collections of these banked genotypes may be used to assemble ``ecological
  1028. communities''.  In ``ecological'' runs, the mutation rates can be set to zero
  1029. in order to inhibit evolution.
  1030.  
  1031.