TIERRA - Ankündigung des Evolutionssimulators
Thomas Ray
TIERRA Update:
(Quellenveröffentlichung, Abstract, Publikationen, Vorträge, neue Ergebnisse)
Diese Nachricht enthält:
- Veröffentlichung des Tierra-Quellcodes angekündigt
- Zusammenfassung, die Tierra beschreibt
- Liste verwandter Veröffentlichungen und bevorstehender Vorträge
- Einige interessante neue und unveröffentlichte Ergebnisse
Veröffentlichung der Tierra-Quellcode
Wir stellen den Quellcode jetzt zur Verfügung, obwohl er sich in rascher Entwicklung befindet und wesentliche Verbesserungen nur noch Tage entfernt sind. Wenn Sie die Software verwenden, sorgen Sie bitte dafür, dass Sie bald neue Versionen von der FTP-Website herunterladen. Der Quellcode auf der FTP-Website wird etwa wöchentlich ersetzt.
Der vollständige Quellcode für den Tierra-Simulator ist über anonymen FTP unter folgender Adresse verfügbar:
tierra.slhs.udel.edu [128.175.41.34] undin the directory /tierra.
life.slhs.udel.edu [128.175.41.33]
Um darauf zuzugreifen, ftpen Sie zu tierra oder life, melden Sie sich als Benutzer "anonymous" an und geben Sie Ihren echten Namen (z. B. tom@udel.edu) als Passwort ein. Geben Sie dann den Befehl `cd tierra' ein, um eine Liste der Dateien anzuzeigen. Geben Sie zum Anzeigen der Dateiliste `dir' ein. Sie werden die folgenden Dateien sehen:
The shar files contain the README files, so if you want the source code, you don't need to copy README separately. To unpack the shar files, use `unshar', or `sh'.README.T1 Eine detaillierte Beschreibung von Tierra und wie man es verwendet. README.T2 in zwei Teilen Part01 der Quellcode im Shar-Format ... in sieben Teilen Part07 announce diese Ankündigung tierra1.tex Teil 1 & 2 eines Manuskripts, das Tierra beschreibt, tierra2.tex im LaTeX-Format.
Die veröffentlichte Version enthält wesentliche Beiträge von Tom Uffner, Dan Pirone und Marc Cygnus. Die Software bleibt urheberrechtlich geschützt ("alle Rechte vorbehalten") und wird nicht in den öffentlichen Bereich gestellt. Sie wird jedoch kostenlos zur Verfügung gestellt und darf frei verteilt werden. Die Absicht ist, dass sie nicht für gewinnbringende Aktivitäten genutzt wird, es sei denn, es wird eine Lizenzvereinbarung mit den Autoren getroffen.
Eine DOS-Version der Tierra-Software mit einem anständigen Frontend wird bis November zum Verkauf bereitstehen ($70).
Zusammenfassung zu Tierra
Synthetische Organismen wurden auf Basis eines Computer-Metapherns für das organische Leben erstellt, bei dem CPU-Zeit die „Energie"-Ressource und Speicher die „Material"-Ressource darstellt. Der Speicher ist in informationelle Muster organisiert, die CPU-Zeit für die Selbstreplikation nutzen. Mutationen erzeugen neue Formen, und die Evolution verläuft durch natürliche Selektion, während sich verschiedene Genotypen um CPU-Zeit und Speicherplatz bewerben.
Beobachtungen der Natur zeigen, dass die Evolution durch natürliche Selektion sowohl Optimierung als auch Kreativität ermöglicht. Künstliche Modelle der Evolution haben die Optimierungsfähigkeit der Evolution demonstriert, wie beispielsweise im Bereich der genetischen Algorithmen. Die kreativen Aspekte der Evolution waren schwieriger zu modellieren. Diese Schwierigkeit ergibt sich teilweise aus der Tendenz von Modellen, die Bedeutung des ``Genoms'' der sich entwickelnden Entitäten vorzugeben, wodurch neue Bedeutungen nicht entstehen können. Ich werde ein natürliches Modell der Evolution vorstellen, das sowohl Optimierung als auch Kreativität demonstriert, bei dem das Genom aus Sequenzen ausführbaren Maschinencodes besteht.
Aus einem einzigen rudimentären urtümlichen „Organismus" entwickeln sich sehr schnell Parasiten, die nicht in der Lage sind, sich isoliert zu replizieren, da ihnen ein großer Teil des Genoms fehlt. Diese Parasiten suchen jedoch nach den fehlenden Informationen und wenn sie diese in einem nahen Organismus finden, parasitieren sie die Informationen aus dem benachbarten Genom und bewirken dadurch ihre eigene Replikation.
In einigen Simulationen entwickeln Wirtsorganismen Immunität gegen Angriffe durch Parasiten. Wenn immunisierte Wirte auftreten, nehmen sie oft zu und vernichten die Parasitenpopulationen. In einigen Simulationen, bei denen die Gemeinschaft von immunisierten Wirten dominiert wird, entwickeln Parasiten, die gegen die Immunität resistent sind.
Wirtsorganismen entwickeln manchmal eine Reaktion auf Parasiten, die über die Immunität hinausgeht und zu tatsächlichem (fakultativem) Hyperparasitismus führt. Der Hyperparasit täuscht den Parasiten vor, sodass dieser seine energetischen Ressourcen der Replikation des Hyperparasiten-Genoms widmet. Dies treibt die Parasitenpopulationen zur Ausrottung.
Wenn sich Organismen in Abwesenheit von Parasiten entwickeln, dominieren Hyperparasiten die Gemeinschaft vollständig, was zu einer relativ einheitlichen Gemeinschaft führt, die durch einen hohen Grad an Verwandtschaft zwischen den Individuen gekennzeichnet ist. Unter diesen Umständen entwickelt sich Sozialität in Form von Wesen, die sich nur in Aggregationen vermehren können.
Das kooperative Verhalten der sozialen Hyperparasiten macht sie anfällig für eine neue Klasse von Parasiten. Diese Betrüger, die Hyper-Hyperparasiten, setzen sich zwischen den kooperierenden sozialen Individuen ein, täuschen die sozialen Wesen und veranlassen sie, die Genome der Betrüger zu replizieren.
Die einzige genetische Veränderung, die dem Simulator auferlegt wird, sind zufällige Bit-Umkehrungen im Maschinencode der Kreaturen. Es stellt sich jedoch heraus, dass Parasiten sehr ungenaue Replikatoren sind. Sie verursachen eine erhebliche Rekombination und Neuordnung der Genome. Diese spontane Sexualität ist eine mächtige Kraft für evolutionäre Veränderungen im System.
Eines der interessantesten Aspekte dieses Lebensbeispiels ist, dass der Großteil der Evolution auf der Anpassung an die biotische Umwelt und nicht an die physikalische Umwelt basiert. Es ist die Koevolution, die das System antreibt.
Liste verwandter Veröffentlichungen und bevorstehender Vorträge
Die jüngste Berichterstattung über meine Arbeit (Technology Review, April 1991; Science News, 10. August 1991; New York Times, 27. August 1991; Computerworld 30. September 1991) hat viel Interesse geweckt. Ich wollte die relevanten Publikationen auflisten sowie die bevorstehenden Seminare.
Ray, T. S. 1991. ``Ist es lebendig, oder ist es GA?'' Proceedings of the 1991 International Conference on Genetic Algorithms, Hrsg. Belew, R. K., und L. B. Booker, San Mateo, CA: Morgan Kaufmann, 527--534.
Ray, T. S. 1991. „Ein Ansatz zur Synthese des Lebens." Artificial Life II, Santa Fe Institute Studies in the Sciences of Complexity, vol. XI, Hrsg. C. Langton, C. Taylor, J. D. Farmer, & S. Rasmussen, Redwood City, CA: Addison-Wesley, 371--408.
Ray, T. S. 1991. „Populationsdynamik digitaler Organismen.'' Artificial Life II Video Proceedings, Hrsg. C. G. Langton, Redwood City, CA: Addison Wesley.
Ray, T. S. 1991. „Evolution und Optimierung digitaler Organismen." Scientific Excellence in Supercomputing: The IBM 1990 Contest Prize Papers, Hrsg. Keith R. Billingsley, Ed Derohanes, Hilton Brown, III. Athens, GA, 30602, The Baldwin Press, The University of Georgia. Veröffentlichungsdatum: Dezember 1991.
Ich werde vom 1. Februar bis zum 31. August 1992 am Santa Fe Institute sein. Diese Arbeit wird auch in den folgenden kommenden Seminaren vorgestellt:
University of Maryland, Zoologie, 29. Oktober 1991
University of Kentucky, Lexington, Biologie, 31. Oktober 1991
University of Delaware, Entomologie, 5. November 1991
Stony Brook, Abteilung für Ökologie und Evolution, 6. November 1991
Drexel University, Elektrotechnik, 8. November 1991
The University of the Arts, Philadelphia, Vorträge zu Design im Cyberspace,
12. November 1991
IBM, T. J. Watson Research Center, Yorktown Heights, NY, 13. November 1991
Thinking Machines Corp., Cambridge, 14. November 1991
Digital Equipment Corp., Hudson, MA, 15. November 1991
American Society of Information Science, New Jersey, 19. November 1991
Texas Instruments, Dallas, 21. November 1991
Harvard University, Biologie (Lewontins Labor), 2. Dezember 1991
Boston University, Computational Sciences Center, 3. Dezember 1991
MIT Nanotechnology Study Group, 3. Dezember 1991
University of Massachusetts Boston, Biologie, 5. Dezember 1991
Yale University, Biologie, 6. Dezember 1991
University of Arizona, Ökologie & Evolutionsbiologie, 10. März 1992
Cornell University, Mathematical Sciences Institute, CA Workshop, Mai 1992
Gordon Conference on Theoretical Biology, New Hampshire, 8.--12. Juni 1992
Einige interessante neue und unveröffentlichte Ergebnisse
Nachfolgend finden Sie einen Bericht über ein interessantes Ergebnis, das in keiner der oben aufgeführten Publikationen beschrieben wird: Eine komplexe Anpassung
Die unten beschriebene Anpassung ist ein klassisches Beispiel für ein komplexes Design in der Evolution. Man fragt sich, wie sie durch zufällige Bit-Umkehrungen entstanden sein könnte, da jeder Bestandteil des Codes vorhanden sein muss, damit der Algorithmus funktioniert. Dennoch enthält der Code eine klassische Mischung aus scheinbar intelligentem Design und dem chaotischen Einfluss der Evolution. Die Optimierungstechnik ist eine sehr clevere von Menschen erfundene Methode, doch sie ist in einem durcheinandergeratenen, aber funktionierenden Stil implementiert, den kein Mensch verwenden würde (es sei denn, er ist sehr betrunken).
Der in den Manuskripten beschriebene Wettlauf um die Überlebensfähigkeit erstreckte sich über einen Zeitraum von einer Milliarde vom System ausgeführter Anweisungen. Ein weiterer Durchlauf wurde für fünfzehn Milliarden Anweisungen fortgesetzt, wurde jedoch nicht im Detail untersucht. Ein am Ende des Durchlaufs vorhandenes Wesen wurde untersucht und erwies sich als eine komplexe Anpassung entwickelt zu haben. Diese Anpassung ist eine Optimierungstechnik, die als „Entrollen des Schleifens" bekannt ist.
Der zentrale Schleifenabschnitt des Kopiervorgangs führt folgende Operationen durch: 1) kopiert eine Anweisung von der Mutter zur Tochter, 2) dekrementiert das cx-Register, das zunächst die Größe des Eltern-Genoms enthält, 3) prüft, ob cx gleich null ist; falls ja, verlässt es die Schleife, falls nein, bleibt es in der Schleife, 4) inkrementiert das ax-Register, das die Adresse in der Tochter enthält, an die die nächste Anweisung kopiert werden soll, 5) inkrementiert das bx-Register, das die Adresse in der Mutter enthält, von der die nächste Anweisung kopiert wird, 6) springt zurück zum Anfang der Schleife.
Die Arbeit des Loops ist in den Schritten 1, 2, 4 und 5 enthalten. Die Schritte 3 und 6 sind Overhead. Die Effizienz des Loops kann durch Verdopplung der Arbeitsschritte innerhalb des Loops erhöht werden, wodurch Overhead eingespart wird. Das Wesen am Ende des langen Laufs hat die Arbeitsschritte dreimal innerhalb des Loops wiederholt, wie unten illustriert.
Die entrollte Schleife ist ein Beispiel dafür, dass die Evolution die Fähigkeit besitzt, eine Zunahme der Komplexität allmählich über einen langen Zeitraum zu erzeugen. Das Interessante an der Optimierungstechnik der Schleifenentrollung ist, dass sie einen komplexeren Code erfordert. Das resultierende Geschöpf hat eine Genomgröße von 36, verglichen mit seiner Vorfahrengröße von 80, hat jedoch einen viel komplexeren Algorithmus in weniger als der Hälfte des Raums untergebracht.
Im Folgenden ist der Assembler-Code für die zentrale Kopierschleife des Vorfahren (80aaa) und des Nachfolgers nach fünfzehn Milliarden Anweisungen (72etq) enthalten. Innerhalb der Schleife führt der Vorfahre jede der folgenden Operationen einmal aus: Kopiere Anweisung (51), dekrementiere cx (52), inkrementiere ax (59) und inkrementiere bx (60). Der Nachfolger führt jede der folgenden Operationen dreimal innerhalb der Schleife aus: Kopiere Anweisung (15, 22, 26), inkrementiere ax (20, 24, 31) und inkrementiere bx (21, 25, 32). Die Operation dekrementiere cx tritt fünfmal innerhalb der Schleife auf (16, 17, 19, 23, 27). Anweisung 28 invertiert das niederwertigste Bit des Registers cx. Sobald diese nachfolgende Anweisung erreicht wird, ist der Wert des niederwertigsten Bits eins, was einer sechsten Instanz von dekrementiere cx entspricht. Dies bedeutet, dass es zwei Dekrementierungen für jedes Inkrementierung gibt.
Der Grund dafür hängt mit einer weiteren Anpassung dieses Wesens zusammen. Wenn es seine Größe berechnet, verschiebt es sich nach links (12), bevor es Platz für den Nachwuchs (13) zuweist. Dies hat zur Folge, dass doppelt so viel Platz zugewiesen wird, wie tatsächlich benötigt wird, um das Genom unterzubringen. Das Genom des Wesens ist 36 Anweisungen lang, aber es weist einen Platz von 72 Anweisungen zu. Dies geschah in einer Umgebung, in der die Slice-Größe gleich der Zellgröße gesetzt wurde. Auf diese Weise konnten die Wesensdoppelte so viel Energie gewinnen. Allerdings mussten sie diese Änderung durch Verdopplung der Anzahl der Dekrementierungen im Schleifen kompensieren.
nop_1 ; 01 47 Kopierschleife-Vorlage KOPIER-SCHLEIFE VON 80AAA nop_0 ; 00 48 Kopierschleife-Vorlage nop_1 ; 01 49 Kopierschleife-Vorlage nop_0 ; 00 50 Kopierschleife-Vorlage mov_iab ; 1a 51 Inhalt von [bx] nach [ax] übertragen (Kopierbefehl) dec_c ; 0a 52 cx dekrementieren if_cz ; 05 53 wenn cx = 0, nächsten Befehl ausführen, sonst überspringen jmp ; 14 54 Sprung zur Vorlage unten (Kopierverfahren-Ausgang) nop_0 ; 00 55 Kopierverfahren-Ausgang Komplement nop_1 ; 01 56 Kopierverfahren-Ausgang Komplement nop_0 ; 00 57 Kopierverfahren-Ausgang Komplement nop_0 ; 00 58 Kopierverfahren-Ausgang Komplement inc_a ; 08 59 ax inkrementieren (Zeiger auf nächsten Befehl der Tochter) inc_b ; 09 60 bx inkrementieren (Zeiger auf nächsten Befehl der Mutter) jmp ; 14 61 Sprung zur Vorlage unten (Kopierschleife) nop_0 ; 00 62 Kopierschleife-Komplement nop_1 ; 01 63 Kopierschleife-Komplement nop_0 ; 00 64 Kopierschleife-Komplement nop_1 ; 01 65 Kopierschleife-Komplement (10 Befehle pro Schleife ausgeführt) shl ; 000 03 12 cx links verschieben KOPIER-SCHLEIFE VON 72ETQ mal ; 000 1e 13 Tochterzelle zuweisen nop_0 ; 000 00 14 Schleifenkopf mov_iab ; 000 1a 15 Kopierbefehl dec_c ; 000 0a 16 cx dekrementieren dec_c ; 000 0a 17 cx dekrementieren jmpb ; 000 15 18 Junk dec_c ; 000 0a 19 cx dekrementieren inc_a ; 000 08 20 ax inkrementieren inc_b ; 000 09 21 bx inkrementieren mov_iab ; 000 1a 22 Kopierbefehl dec_c ; 000 0a 23 cx dekrementieren inc_a ; 000 08 24 ax inkrementieren inc_b ; 000 09 25 bx inkrementieren mov_iab ; 000 1a 26 Kopierbefehl dec_c ; 000 0a 27 cx dekrementieren or1 ; 000 02 28 niedrigstes Bit von cx umschalten if_cz ; 000 05 29 wenn cx == 0, nächsten Befehl ausführen ret ; 000 17 30 Schleife beenden inc_a ; 000 08 31 ax inkrementieren inc_b ; 000 09 32 bx inkrementieren jmpb ; 000 15 33 zum Schleifenkopf (6 Befehle pro Kopie) nop_1 ; 000 01 34 Schleifenfuß (18 Befehle pro Schleife ausgeführt)
Universität Delaware
Fakultät für Lebens- & Gesundheitswissenschaften
Newark, Delaware 19716
ray@tierra.slhs.udel.edu
ray@life.slhs.udel.edu
ray@brahms.udel.edu
302-451-2281 (FAX)
302-451-2753