From news@news.udel.edu Sat Jul 11 17:57:08 1992 Received: from IUBIO.BIO.INDIANA.EDU by sunflower.bio.indiana.edu (4.1/9.5jsm) id AA16575; Sat, 11 Jul 92 17:57:07 EST Date: Sat, 11 Jul 1992 18:53:58 -0400 From: news@news.udel.edu Message-Id: <199207112253.AA13259@news.udel.edu> To: uunet!bionet-software-sources@uunet.UU.NET Status: R Newsgroups: bionet.software.sources Path: chopin.udel.edu!ray From: ray@chopin.udel.edu (Thomas Ray) Subject: Evolving Machine Codes: Tierra V3.13 Message-ID: Sender: usenet@news.udel.edu Nntp-Posting-Host: chopin.udel.edu Organization: University of Delaware Distribution: udel Date: Sat, 11 Jul 1992 22:53:55 GMT TIERRA UPDATE: Version V3.13 Now Available; Unified License Agreement; FTP Site Reorganized; Bug Fixes; Virtual Debugger; Instruction Set Documented; Genome Injector; Genebank Hash Function; Haploid Sex; Resolution Toggle; Diversity Tool Improved; Chris Stephenson, Kurt Thearling and Walter Tackett visit SFI; Future Phylogeny; Tierra in the News; Tierra Publications; Mailing Lists; What Tierra Is; This message contains: 1) Availability of Tierra V3.13 Source Code a) by ftp b) by snail mail on disk 2) Unified License Agreement 3) FTP Site Reorganized 4) Bug Fixes 5) Virtual Debugger 6) Instruction Set Documented 7) Genome Injector 8) Genebank Hash Function 9) Haploid Sex 10) Resolution Toggle 11) Diversity Tool Improved 12) Chris Stephenson, Kurt Thearling and Walter Tackett visit SFI 13) Converation with Paul Barton-Davis (Evolution of a Decision) 14) Future Phylogeny 15) Tierra Funding 16) Tierra in the News 17) Tierra Publications 18) Mailing Lists 19) What Tierra Is (If you don't know what Tierra is, read this first) 1) Availability of Tierra V3.13 Source Code The Tierra V3.13 source code; and the source code, and DOS executables of all tools is available now. Please note that the source code in the ftp site and the source code provided on disk will each compile and run on either DOS or UNIX platforms. It is exactly the same source code in either case. The DOS executables are available only on disk, and can not be freely distributed. If you purchase this program on disk, thank you for your support. If you obtain the source code through the net or friends, we invite you to contribute an amount that represents the program's worth to you. You may make a check in US dollars payable to Virtual Life, and mail the check to one of the two addresses listed below. a) by ftp If you use the software, be sure to pick up new versions from the ftp site. The source in the ftp site will be replaced on a roughly monthly or bi-monthly basis. The complete source code and documentation is available by anonymous ftp at: tierra.slhs.udel.edu [128.175.41.34] and life.slhs.udel.edu [128.175.41.33] in the directories: almond/, beagle/, doc/, and tierra/. To get it, ftp to tierra or life, log in as user "anonymous" and give your email address (eg. tom@udel.edu) as a password. Be sure to transfer binaries in binary mode (it is safe to transfer everything in binary mode). Each directory contains a compressed tar file (filename.tar.Z) and a SRC directory that contains all the files in raw ascii format. You can just pick up the .tar.Z files, and they will expand into the complete directory structure with the following commands (Unix only): uncompress tierra.tar.Z tar oxvf tierra.tar b) by snail mail on disk The source code, documentation and the beagle.exe file can be distributed freely, however, the executables (the .exe files in DOS) are for sale and cannot be freely distributed (with the exeception of beagle.exe). If you do not have ftp access you may obtain everything on DOS disks by making a check for $65 (US dollars drawn on a US bank) payable to Virtual Life. Specify 3.5" or 5.25" disks. Send the check to one of the following addresses: Tom Ray (January through August) Santa Fe Institute 1660 Old Pecos Trail Suite A Santa Fe, NM 87501 Virtual Life (September through December) P.O. Box 625 Newark, Delaware 19715 The DOS disks contain everything but ALmond (ALmond can be provided on disk by request, but it only runs on a Unix platform). The disks include DOS executables, source code and documentation. The DOS disks include an easy installation program. This is the same source code available in the ftp site. If you have ftp access, there is no need to buy the disks. 2) Unified License Agreement If you have seen the earlier versions (pre V3.12), you may have noticed that there were different license agreements for the DOS and Unix versions. There is now a single and perhaps more coherent license agreement. 3) FTP Site Reorganized With Version 3.11 the ftp site was reorganized. The files are no longer distributed in shar format. They are in both raw form, and in compressed tar files. All the documentation has been moved to the doc/ directory. The doc/ directory also includes manuscripts on Tierra in LaTeX and Postscript formats. 4) Bug Fixes new in V3.13: adr() - the parse function for the adr instruction, previous to V3.13, set is.iip = 0, which meant that the instruction pointer would not increment. This means that if ever the adr instruction were executed, the virtual cpu would hang on this instruction. This has been fixed in V3.13. GarbageCollectGB() - previous to V3.13, this function (in bookeep.c) caused some empty .gen files to be created, which would clutter up the genebank directory. This has been fixed. genotype histogram - there were some problems with the genotype histogram display in V3.12, these have been fixed. new in V3.12: template search - Version 3.11 and earlier had a bug in the bi-directional template search algorithm. God intended that the search should move outward at equal rates in both directions. However, some situations caused one direction to get ahead of the other. This does not matter to the creatures or evolution; evolution makes due with whatever physics or chemistry it has at hand. However, it makes it difficult for the observer reading the genome files to tell what the outcome of a bi-directional template search might be. Another problem with the same algorithm is that the limit on the distance of the template search was not properly implemented, they tend to search farther than the intended limit. Both these bugs are fixed in V3.12. 5) Virtual Debugger In V3.13 the virtual debugger has been spiffed up, and the system is configured to compile with the debugger implemented, and the dubugger is documented in the tierra.doc file. This allows the user to single step through the code of a creature, while viewing the virutal cpu. This will be useful to anyone writing a creature, or trying to see what a creature does. 6) Instruction Set Documented With V3.13, the tierra.doc file includes a new section that provides a detailed documentation of what each of the 32 Tierran instructions actually does. 7) Genome Injector With V3.13, a mechanism has been provided for injecting genomes into a running simulation. The tool is available through the menu system, and allows a genome from the genebank to be injected into the run at the users command. However, there is a function Inject(), in the genebank.c module, which takes a pointer to a genome as an argument. This function can be used to inject genomes from any source. An interesting use of this function would be to facilitate migration of genomes between simulations running on separate machines, creating an archipelago. 8) Genebank Hash Function In V3.13 a hash function has been added to the genebanker. The function CheckGenotype() applies the hash function to each new genome. This means that when a new genotype appears, its sequence no longer must be compare to the sequence of every same-sized genome in the bank. Generally, only a single integer must be compared. This means that the .gen files for V3.13 are not compatible with earlier versions. 9) Haploid Sex An option is now available to force creatures to cross-over their genomes with other creatures while reproducing. This feature is documented in the tierra.doc file. 10) Resolution Toggle In V3.12 and higher on DOS machines with a VGA display, the simulator will come up in low resolution mode. If you select a histogram or size list display, it will toggle into high resolution mode. When you return to the plan display, it will toggle back into low resolution mode. This is easier on the eyes. 11) Diversity Tool Improved Several changes have been made to the diversity tool to improve its utility. The divrange file now also contains the average value of each of the eight variables, in addition to the minimum and maximum values that it formerly contained. Also when multiple divdat.X output files are produced, they now each contain header information so that they can be processed independently by the diversity graphics tools in Beagle. To facilitate this, a brkrange file is also produced which contains the maximum value of each variable at the end of each divdat.X file. 12) Chris Stephenson, Kurt Thearling and Walter Tackett visit SFI Kurt Thearling of Thinking Machines Corporation (kurt@think.com) is visiting the Santa Fe Institute from June 12 through May 12 to work on the Tierra project. His primary objective will be to port Tierra to the CM5. Chris Stephenson of the IBM T. J. Watson Research Center (cjs@yktem.vnet.ibm.com) will visit SFI from June 29 through July 13 to work on the Tierra project. His primary objective will be to provide a new memory allocator for Tierra. He will use a memory allocation scheme that he developed, which will allow us to specify where we would like the new creature to be placed in memory. Walter Tackett of Hughes Aircraft (tackett@ipld01.hac.com) will visit SFI from June 12 through July 3. His main objective will be discuss his work in applying artificial selection to Tierran creatures in order to evolve them to do ``useful'' work. 13) Converation with Paul Barton-Davis (Evolution of a Decision) At the recent Artificial Life III conference in Santa Fe I had an interesting conversation with Paul Barton-Davis (pauld@cs.washington.edu) about his work with his own implementation of Tierra. Paul built his version of Tierra from scratch, but used the same instruction set described in Ray's publications. However, one thing he did differently was to eliminate the reaper. Instead his creatures become increasingly flawed as they age, and eventually die from these effects. One of the consequences of this is that free memory is not always available when a creature requests it. Paul provided the following details: You might or might want to note the other conditions that, in addition to the reaper-removal, led to this adapatation and that are absent in the release version of Tierra: 1) a memory allocator that uses virtual memory addresses beginning at 1, not zero (thus creating a "flag" value that can specifically and easily be tested for by a tierran creature). 2) selection pressure (via the slice size) for medium size creatures (256 to 5K instructions in size) (gaussian distribution of slice size around a mean creature size of about 2K) 3) memory protect bits turned on, and used in a significant fashion. 4) a more complex ancestor, although the copy code is almost identical to Ray's 80aaa. An adaptation which evolved under these conditions is the first example I know of in which a Tierran creature evolved a decision making mechanism. If memory is not available when a creature requests it, the memory allocator returns a value of zero in the AX register, rather than the address of the allocated block. The adaptation then, is to somehow move the value in the AX register into CX (for example by first pushing AX onto the stack and then popping that value into the CX register). Then the creature executes if_cz, which tests to see if the CX register is zero. If CX is not zero, the creature proceeds with reproduction, if CX is zero the creature executes some code which leads to making another request for memory rather than trying to copy the genome without having a cell to copy it into. Paul provided the following details: I recall seeing both: mal ; 111 push_ax ; 111 pop_cx ; 111 if_cz ; 111 as well as the slightly more expensive: mal ; 111 mov_ab ; 111 push_bx ; 111 pop_cx ; 111 if_cz ; 111 14) Future Phylogeny At the moment, the primary effort in new code development is dedicated to an extension to the genebanker that will produce an ironclad phylogeny. The requires that we trace the genetic source of every instruction written into every creature. Stay tuned. 15) Tierra Funding The National Science Foundation has awared a Small Grant for Exploratory Research to Dr. Ray to support the Tierra project. The grant is titled: ``Computer Architectures for the Natural Evolution of Machine Code''. It is jointly funded through the Computer Systems Architecutre program and the Computational Biology Activities programs. 16) Tierra in the News The Tierra Simulator has been widely reported in the media. Below is a list of most of the national or international reports that I am aware of. If you know of some news report not on this list, please send me a hard copy. Nature (John Maynard Smith, UK) February 27, 1992: ``Byte-sized evolution. ...we badly need a comparative biology. So far, we have been able to study only one evolving system and we cannot wait for interstellar flight to provide us with a second. If we want to discover generalizations about evolving systems, we will have to look at artificial ones. Ray's study is a good start.'' Nature (Laurence Hurst & Richard Dawkins, UK) May 21, 1992: ``Life in a test tube.'' New York Times (Malcolm Browne, USA) August 27, 1991: ``Lively Computer Creation Blurs Definition of Life. Software forms, obeying Darwin's rules, vie to avoid the `reaper'.'' Science News (John Travis, USA) August 10, 1991: ``Digital Darwinism: Electronic Ecosystem. Evolving `life' flourishes and surprises in a novel electronic world''. Scientific American (John Rennie, USA) January 1992: ``Cybernetic Parasites... Tierra... has been hailed as the most sophisticated artificial-life program yet developed...'' New Scientist (Roger Lewin, UK) February 22, 1992: ``Life and death in a digital world. No one can turn back the evolutionary clock, but we can follow the fate of a rich menagerie of artificial organisms as they evolve in a model world.'' The Economist (Anon, UK) January 4, 1992: ``The meaning of `life'. In order to understand the origin of life, scientists are switching from the chemistry set to the computer. In the process, they are beginning to understand what it means to be alive.'' Guardian (Jocelyn Paine, UK) January 9, 1992: ``Unravelling the loop in the primordial soup. Tierran machine code is so adaptable it survives. Jocelyn Paine charts the evolution of artificial life within the computer.'' Actuel (Ariel Kyrou, France) April 1992: ``Visite Guidee Aux Extremes De La Science: La Vie Artificielle. Etes-vous pr\^{e}ts \`{a} entrer dans l'univers vertigineux de la vie artificielle? Un champ scientifique tout neuf sur lequel se penchent les grosses t\^{e}tes et les Nobel de labos am\'{e}ricains.'' The Chronicle of Higher Education (David Wilson, USA) December 4, 1991: ``Approaching Artificial Life on a Computer. Survival-of-the-fittest electronic organisms dramatically illustrate Darwinian principles.'' Mikrobitti (Pekka Tolonen, Finland) November 1991: ``Olemmeko humanoiden biologinen koe? Tierra simuloi el\"{a}m\"{a}\"{a}.'' Europeo (Giovanni Caprara, Italy) September 1991: ``Anche il computer ha fatto un figlio. Un biologo americano ha creato un software capace di elaborare programmi che si evolvono da soli.'' GenteMoney (Riccardo Orizio, Italy) November 1991: ``Cos\`{\i} ho dato la vita al software.'' Computerworld (Michael Alexander, USA) September 30, 1991: ``Tierra adds to evolutionary studies. A computerized world created on an IBM PC could have real-world benefits for scientists.'' Sueddeutsche Zeitung (Konrad Peters, Germany) October 21, 1991: ``Die Evolution im Computer. `K\"{u}nstliches Leben' hilft Biologen und Informatikern auf die Spr\"{u}nge.'' Super Interessante (Anon, Brazil) November 1991: ``A vida dentro do computador.'' Technology Review (Susan Scheck, USA) April 14, 1991: ``Is It Live Or Is It Memory?'' Corriere Della Sera (Giovanni Capara, Italy) August 28, 1991: ``Pronto in USA il programma che si riproduce. Il computer `padre' crea vita informatica.'' Fakta (Tom Ottmar, Norway) March 1992: ``Den Lever! En `skabning', der best\aa r af nuller og \'{e}nere, er vokset ud af indamaden p\aa \ en computer og er blevet en videnskabelig sensation i USA.'' Associated Press (Theresa Humphrey, USA) October 1991: ``Bringing life to computer. U of D biologist's program is self-replicating, shows evolution.'' Hovedomr\aa det (Jakob Skipper, Denmark) December 6, 1990: ``Kunstigt liv. Nu kommer det kunstige liv. En voksende gruppe af dataloger, biologer, fysikere, psykologer og mange andre forskere efterlinger p\aa \ computer det naturlige liv.'' 17) Tierra Publications Ray, T. S. 1991. ``Is it alive, or is it GA?'' Proceedings of the 1991 International Conference on Genetic Algorithms, Eds. Belew, R. K., and L. B. Booker, San Mateo, CA: Morgan Kaufmann, 527-534. Ray, T. S. 1991. ``An approach to the synthesis of life.'' Artificial Life II, Santa Fe Institute Studies in the Sciences of Complexity, vol. XI, Eds. Farmer, J. D., C. Langton, S. Rasmussen, & C. Taylor, Redwood City, CA: Addison-Wesley, 371-408. Ray, T. S. 1991. ``Population dynamics of digital organisms.'' Artificial Life II Video Proceedings, Ed. C.G. Langton, Redwood City, CA: Addison Wesley. Ray, T. S. 1991. ``Evolution and optimization of digital organisms.'' Scientific Excellence in Supercomputing: The IBM 1990 Contest Prize Papers, Eds. Keith R. Billingsley, Ed Derohanes, Hilton Brown, III. Athens, GA, 30602, The Baldwin Press, The University of Georgia. 18) Mailing Lists There are two mailing lists for Tierra users. The first list is for people who only want to get the official announcements, updates and bug-fixes. The other will carry the official postings, and are intended for discussion of Tierra by users. This one is distributed in digest form, when there is enough material. The lists are: tierra-announce official updates, patches and announcements only tierra-digest discussion, updates, etc. (digest form) The addresses are: tierra-request@life.slhs.udel.edu the list administrator (Tom Uffner). to be added, removed, or complain about problems with any of these lists. tierra-digest@life.slhs.udel.edu to post to the list. tierra-bug@life.slhs.udel.edu for bug-reports or questions about the code or installation. You may also be interested in the Artificial Life mailing list. Subscribe to the list by sending a message to: alife-request@cognet.ucla.edu Post to the list by sending a message to: alife@cognet.ucla.edu 19) What Tierra Is The C source code creates a virtual computer and its operating system, whose architecture has been designed in such a way that the executable machine codes are evolvable. This means that the machine code can be mutated (by flipping bits at random) or recombined (by swapping segments of code between algorithms), and the resulting code remains functional enough of the time for natural (or presumably artificial) selection to be able to improve the code over time. Along with the C source code which generates the virtual computer, we provide several programs written in the assembler code of the virtual computer. One of these was written by a human and does nothing more than make copies of itself in the RAM of the virtual computer. The others evolved from the first, and are included to illustrate the power of natural selection. The operating system of the virtual computer provides memory management and timesharing services. It also provides control for a variety of factors that affect the course of evolution: three kinds of mutation rates, disturbances, the allocation of CPU time to each creature, the size of the soup, etc. In addition, the operating system provides a very elaborate observational system that keeps a record of births and deaths, sequences the code of every creature, and maintains a genebank of successful genomes. The operating system also provides facilities for automating the ecological analysis, that is, for recording the kinds of interactions taking place between creatures. This system results in the production of synthetic organisms based on a computer metaphor of organic life in which CPU time is the ``energy'' resource and memory is the ``material'' resource. Memory is organized into informational patterns that exploit CPU time for self-replication. Mutation generates new forms, and evolution proceeds by natural selection as different genotypes compete for CPU time and memory space. Diverse ecological communities have emerged. These digital communities have been used to experimentally examine ecological and evolutionary processes: e.g., competitive exclusion and coexistence, host/parasite density dependent population regulation, the effect of parasites in enhancing community diversity, evolutionary arms race, punctuated equilibrium, and the role of chance and historical factors in evolution. This evolution in a bottle may prove to be a valuable tool for the study of evolution and ecology.