
John von Neumanns universeller Konstruktor ist eine sich selbst replizierende Maschine in einer zellulären Automatenumgebung . Er wurde in den 1940er Jahren ohne Computer entwickelt. Die grundlegenden Details der Maschine wurden in von Neumanns Buch „ Theorie der sich selbst reproduzierenden Automaten“ veröffentlicht , das 1966 nach Neumanns Tod von Arthur W. Burks fertiggestellt wurde. [ 2 ] Er gilt als Grundlage für die Automatentheorie , komplexe Systeme und künstliches Leben . [ 3 ] [ 4 ] Nobelpreisträger Sydney Brenner betrachtete von Neumanns Arbeit über sich selbst reproduzierende Automaten (zusammen mit Turings Arbeit über Rechenmaschinen) auch als zentral für die biologische Theorie , da sie es uns ermöglicht, „unsere Gedanken über Maschinen, sowohl natürliche als auch künstliche, zu strukturieren“. [ 5 ]
Von Neumanns Ziel, wie er es 1949 in seinen Vorlesungen an der University of Illinois darlegte [ 2 ] , war die Entwicklung einer Maschine, deren Komplexität sich – ähnlich wie bei biologischen Organismen unter natürlicher Selektion – automatisch steigern kann . Er fragte, welche Komplexitätsschwelle überschritten werden muss, damit Maschinen sich weiterentwickeln können [ 4 ]. Seine Antwort war die Spezifikation einer abstrakten Maschine , die sich nach dem Start selbst repliziert. In seinem Entwurf besteht die selbstreplizierende Maschine aus drei Teilen: einer „Beschreibung“ (einem „Bauplan“ oder Programm) ihrer selbst, einem universellen Konstruktormechanismus, der jede Beschreibung lesen und die darin kodierte Maschine (ohne Beschreibung) konstruieren kann, und einer universellen Kopiermaschine , die Kopien jeder Beschreibung erstellen kann. Nachdem der universelle Konstruktor eine neue, in der Beschreibung kodierte Maschine konstruiert hat, erstellt die Kopiermaschine eine Kopie dieser Beschreibung. Diese Kopie wird an die neue Maschine weitergegeben, wodurch eine funktionierende Replik der ursprünglichen Maschine entsteht, die sich fortwährend reproduzieren kann. Manche Maschinen gehen dabei umgekehrt vor, indem sie die Beschreibung kopieren und anschließend eine Maschine erstellen. Entscheidend ist, dass sich die selbstreproduzierende Maschine durch die Akkumulation von Mutationen der Beschreibung und nicht der Maschine selbst weiterentwickeln kann und dadurch die Fähigkeit erlangt, an Komplexität zuzunehmen. [ 4 ] [ 5 ]
Um seine Maschine genauer zu definieren, griff von Neumann auf Ulams Konzept des zellulären Automaten zurück – Stanisław Ulam prägte den Begriff „zellulärer Automat“ im Kontext von Neumanns Arbeit zum selbstreproduzierenden Automaten. Der von ihm verwendete Automat besteht aus einem zweidimensionalen Gitter von Zellen, von denen jede zu jedem Zeitpunkt einen von 29 Zuständen annehmen kann. In jedem Zeitschritt aktualisiert jede Zelle ihren Zustand in Abhängigkeit von den Zuständen der umliegenden Zellen im vorherigen Zeitschritt. Die Regeln für diese Aktualisierungen sind für alle Zellen identisch.
Der universelle Konstruktor ist ein bestimmtes Muster von Zellzuständen in diesem zellulären Automaten. Er enthält eine Zellzeile, die als Beschreibung dient (ähnlich dem Turing-Band ) und eine Folge von Anweisungen kodiert, die als „Bauplan“ für die Maschine fungiert. Die Maschine liest diese Anweisungen nacheinander und führt die entsprechenden Aktionen aus. Die Anweisungen weisen die Maschine an, mithilfe ihres „Konstruktionsarms“ (einem weiteren Automaten, der wie ein Betriebssystem funktioniert [ 4 ] ) eine Kopie der Maschine ohne das Beschreibungsband an einer anderen Stelle im Zellraster zu erstellen. Die Beschreibung kann keine Anweisungen zum Erstellen eines gleich langen Beschreibungsbandes enthalten, genauso wenig wie ein Behälter einen gleich großen Behälter enthalten kann. Daher enthält die Maschine die separate Kopiermaschine, die das Beschreibungsband liest und eine Kopie an die neu erstellte Maschine weitergibt. Der resultierende neue Satz aus universellem Konstruktor und Kopiermaschinen plus Beschreibungsband ist identisch mit dem alten und wird erneut repliziert.
Zweck

Von Neumanns Entwurf wurde traditionell als Demonstration der logischen Voraussetzungen für die Selbstreplikation von Maschinen verstanden. [ 3 ] Es ist jedoch klar, dass weitaus einfachere Maschinen zur Selbstreplikation fähig sind. Beispiele hierfür sind triviales kristallähnliches Wachstum , Template-Replikation und Langton-Schleifen . Von Neumann interessierte sich jedoch für etwas Tiefergehendes: Konstruktion, Universalität und Evolution. [ 4 ] [ 5 ]
Es ist zu beachten, dass die einfacheren selbstreplizierenden CA-Strukturen (insbesondere die Byl-Schleife und die Chou-Reggia-Schleife ) nicht in einer Vielzahl von Formen existieren können und daher nur sehr begrenzt evolvierbar sind . Andere CA-Strukturen wie die Evoloop sind zwar bedingt evolvierbar, unterstützen aber dennoch keine offene Evolution. Üblicherweise enthalten einfache Replikatoren nicht den gesamten Konstruktionsmechanismus; sie sind in gewissem Maße Informationen, die von ihrer Umgebung kopiert werden. Obwohl der Von-Neumann-Entwurf eine logische Konstruktion ist, könnte er prinzipiell als physische Maschine realisiert werden. Tatsächlich kann dieser universelle Konstruktor als abstrakte Simulation eines physikalischen universellen Assemblers betrachtet werden . Die Frage nach dem Einfluss der Umgebung auf die Replikation ist noch nicht vollständig geklärt, da es unterschiedliche Auffassungen von Rohmaterial und dessen Verfügbarkeit gibt.
Von Neumanns entscheidende Erkenntnis besteht darin, dass die Beschreibung der Maschine, die kopiert und über den universellen Kopierer separat an die Nachkommen weitergegeben wird, eine doppelte Funktion erfüllt: Sie ist sowohl aktiver Bestandteil des Konstruktionsmechanismus bei der Reproduktion als auch Ziel eines passiven Kopierprozesses. Diese Rolle übernimmt die Beschreibung (ähnlich Turings Anweisungsband ) in Von Neumanns Kombination aus universellem Konstruktor und universellem Kopierer. [ 4 ] Die Kombination aus universellem Konstruktor und Kopierer sowie einem Anweisungsband konzeptualisiert und formalisiert i) die Selbstreplikation und ii) die offene Evolution bzw. das in biologischen Organismen beobachtete Wachstum der Komplexität. [ 3 ]
Diese Erkenntnis ist umso bemerkenswerter, als sie der Entdeckung der DNA-Struktur durch Watson und Crick und der getrennten Translation und Replikation in der Zelle vorausging – obwohl sie dem Avery-MacLeod-McCarty-Experiment folgte , das die DNA als molekularen Träger der genetischen Information in lebenden Organismen identifizierte. [ 6 ] Das DNA-Molekül wird durch separate Mechanismen verarbeitet, die seine Anweisungen ausführen ( Translation ) und die DNA für neu gebildete Zellen kopieren ( Replikation ). Die Möglichkeit einer offenen Evolution beruht darauf, dass – genau wie in der Natur – Fehler ( Mutationen ) bei der Kopie des genetischen Materials zu lebensfähigen Varianten des Automaten führen können, die sich dann durch natürliche Selektion weiterentwickeln können . [ 4 ] Wie Brenner es formulierte:
Turing erfand den speicherprogrammierbaren Computer, und von Neumann zeigte, dass die Beschreibung vom universellen Konstruktor getrennt ist. Dies ist nicht trivial. Der Physiker Erwin Schrödinger verwechselte in seinem 1944 erschienenen Buch „Was ist Leben?“ Programm und Konstruktor, indem er Chromosomen als „Architektenplan und Handwerkskunst in einem“ betrachtete. Das ist falsch. Das Code-Skript enthält lediglich eine Beschreibung der ausführenden Funktion, nicht die Funktion selbst. [ 5 ]
Evolution der Komplexität
Von Neumanns Ziel, wie er es 1949 in seinen Vorlesungen an der University of Illinois darlegte [ 2 ] , war die Entwicklung einer Maschine, deren Komplexität sich – ähnlich wie bei biologischen Organismen unter natürlicher Selektion – automatisch steigern könnte . Er fragte, welche Komplexitätsschwelle überschritten werden müsse, damit Maschinen sich weiterentwickeln und komplexer werden könnten. [ 4 ] [ 3 ] Seine Machbarkeitsstudien zeigten, wie dies logisch möglich ist. Durch die Verwendung einer Architektur, die einen universellen programmierbaren Konstruktor von einem universellen Kopierer trennt, demonstrierte er, wie die Beschreibungen (Bänder) von Maschinen durch Selbstreplikation Mutationen akkumulieren und so komplexere Maschinen hervorbringen können (die Abbildung unten veranschaulicht diese Möglichkeit). Dies ist ein sehr wichtiges Ergebnis, da man zuvor vermutet hätte, dass es eine fundamentale logische Barriere für die Existenz solcher Maschinen gäbe; in diesem Fall wären biologische Organismen, die sich entwickeln und komplexer werden, keine „Maschinen“ im herkömmlichen Sinne. Von Neumanns Erkenntnis bestand darin, das Leben als Turingmaschine zu betrachten, die analog durch einen zustandsbestimmten Maschinenkopf definiert ist, der von einem Speicherband getrennt ist. [ 5 ]
In der Praxis zeigt die von Neumann verfolgte Implementierung von Automaten, dass sie kaum evolutionäre Dynamik hervorbringt, da die Maschinen zu fragil sind – die überwiegende Mehrheit der Störungen führt zu ihrer Zerstörung. [ 3 ] Daher ist heute das in seinen Vorlesungen in Illinois [ 2 ] skizzierte konzeptionelle Modell von größerem Interesse, da es zeigt, wie sich eine Maschine prinzipiell entwickeln kann. [ 7 ] [ 4 ] Diese Erkenntnis ist umso bemerkenswerter, als das Modell der Entdeckung der DNA-Struktur, wie oben beschrieben, vorausging. [ 6 ] Bemerkenswert ist auch, dass von Neumanns Entwurf davon ausgeht, dass Mutationen hin zu größerer Komplexität in den (Beschreibungen von) Subsystemen stattfinden müssen, die nicht an der Selbstreproduktion selbst beteiligt sind. Dies wird durch den zusätzlichen Automaten D veranschaulicht , den er für alle Funktionen zuständig machte, die nicht direkt mit der Reproduktion zusammenhängen (siehe Abbildung oben mit von Neumanns System selbstreplizierender Automaten mit Evolutionsfähigkeit). Tatsächlich wurden in biologischen Organismen nur sehr geringfügige Variationen des genetischen Codes beobachtet, was von Neumanns Annahme entspricht, dass der universelle Konstruktor ( A ) und der Kopierer ( B ) sich nicht selbst weiterentwickeln und somit die gesamte Evolution (und das Wachstum der Komplexität) dem Automaten D überlassen . [ 4 ] In seinem unvollendeten Werk betrachtet von Neumann auch kurz Konflikte und Interaktionen zwischen seinen selbstreplizierenden Maschinen, um die Evolution ökologischer und sozialer Interaktionen aus seiner Theorie der selbstreplizierenden Maschinen zu verstehen. [ 2 ] : 147

Implementierungen
In der Automatentheorie ist das Konzept eines universellen Konstruktors aufgrund der Existenz von Garten-Eden-Mustern (Konfigurationen ohne Vorgänger) nicht trivial. Vereinfacht ausgedrückt ist ein universeller Konstruktor jedoch in der Lage, jedes endliche Muster nicht erregter (ruhender) Zellen zu erzeugen.
Arthur Burks und andere erweiterten die Arbeiten von Neumanns und lieferten wesentlich klarere und vollständigere Details zum Aufbau und zur Funktionsweise seines Selbstreplikationssystems. Besonders hervorzuheben ist die Arbeit von J. W. Thatcher, da er den Aufbau stark vereinfachte. Dennoch gelang es ihnen nicht, einen vollständigen, zellenweisen Aufbau einer Konfiguration zu entwickeln, die zur Selbstreplikation fähig gewesen wäre.
Renato Nobili und Umberto Pesavento veröffentlichten 1995, fast fünfzig Jahre nach den Arbeiten von Ursula von Neumann, den ersten vollständig implementierten selbstreproduzierenden zellulären Automaten. [ 1 ] [ 8 ] Sie verwendeten einen zellulären Automaten mit 32 Zuständen anstelle von Neumanns ursprünglicher Spezifikation mit 29 Zuständen und erweiterten diese, um einfachere Signalübergänge, eine explizite Speicherfunktion und eine kompaktere Bauweise zu ermöglichen. Sie veröffentlichten auch eine Implementierung eines allgemeinen Konstruktors innerhalb des ursprünglichen 29-Zustands-CA, jedoch keinen, der zur vollständigen Replikation fähig ist – die Konfiguration kann weder ihr Band duplizieren noch ihre Nachkommen auslösen; die Konfiguration kann lediglich konstruieren. [ 8 ] [ 9 ]
Im Jahr 2004 berichteten D. Mange et al. über die Implementierung eines Selbstreplikators, der mit den Entwürfen von von Neumann übereinstimmt. [ 10 ]
Im Jahr 2007 veröffentlichte Nobili eine 32-Zustands-Implementierung, die Lauflängenkodierung verwendet , um die Größe des Bandes erheblich zu reduzieren. [ 11 ]
Im Jahr 2008 veröffentlichte William R. Buckley zwei Konfigurationen, die innerhalb des ursprünglichen 29-Zustands-Zellulären Automaten von Neumann Selbstreplikatoren sind. [ 9 ] Buckley behauptet, dass die Signalüberschneidung innerhalb von 29-Zustands-Zellulären Automaten von Neumann für die Konstruktion von Selbstreplikatoren nicht notwendig ist. [ 9 ] Buckley weist außerdem darauf hin, dass jeder Replikator im Sinne der Evolution nach der Replikation zu seiner ursprünglichen Konfiguration zurückkehren sollte, um (theoretisch) mehr als eine Kopie erstellen zu können. Der 1995 veröffentlichte Entwurf von Nobili-Pesavento erfüllt diese Anforderung nicht, der Entwurf von Nobili aus dem Jahr 2007 hingegen schon; dasselbe gilt für Buckleys Konfigurationen.
Im Jahr 2009 veröffentlichten Buckley und Golly eine dritte Konfiguration für von-Neumann-Zelluläre Automaten mit 29 Zuständen, die entweder eine ganzheitliche Selbstreplikation oder eine Selbstreplikation durch partielle Konstruktion durchführen können. Diese Konfiguration zeigt außerdem, dass Signalüberschneidungen für die Konstruktion von Selbstreplikatoren innerhalb von von-Neumann-Zellulären Automaten mit 29 Zuständen nicht notwendig sind.
CL Nehaniv schlugen 2002 und Y. Takada et al. 2004 einen universellen Konstruktor vor, der direkt auf einem asynchronen zellulären Automaten implementiert ist , anstatt auf einem synchronen zellulären Automaten. [ 12 ] [ 13 ]
Vergleich der Implementierungen
| Durchführung | Quelle | Regelsatz | Rechteckige Fläche | Anzahl der Zellen | Bandlänge | Verhältnis | Zeitraum | Bandcodekomprimierung | Bandcodelänge | Bandcode-Typ | Replikationsmechanismus | Replikationstyp | Wachstumsrate |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Nobili-Pesavento, 1995 [ 1 ] | . [ 1 ] | Nobili 32-Staaten | 97 × 170 | 6.329 | 145.315 | 22,96 | 6,34 × 10 10 | keiner | 5 Bit | binär | Ganzheitlicher Konstrukteur | nicht wiederholbar | linear |
| Nobili, 2007 | SR_CCN_AP.EVN [ 11 ] | Nobili 32-Staaten | 97 × 100 | 5.313 | 56.325 | 10,60 | 9,59 × 10 9 | Lauflängenbegrenzte Kodierung | 5 Bit | binär | Ganzheitlicher Konstrukteur | wiederholbar | superlinear |
| Buckley, 2008 | codon5.rle [ 14 ] | Nobili 32-Staaten | 112 × 50 | 3.343 | 44.155 | 13.21 | 5,87 × 10 9 | automatische Rückholung | 5 Bit | binär | Ganzheitlicher Konstrukteur | wiederholbar | linear |
| Buckley, 2008 [ 9 ] | replicator.mc | von Neumann 29-Zustände | 312 × 132 | 18.589 | 294.844 | 15,86 | 2,61 × 10 11 | automatische Rückholung | 5 Bit | binär | Ganzheitlicher Konstrukteur | wiederholbar | linear |
| Buckley, 2008 | codon4.rle [ 14 ] | Nobili 32-Staaten | 109 × 59 | 3.574 | 37.780 | 10,57 | 4,31 × 10 9 |
| 4 Bit | binär | Ganzheitlicher Konstrukteur | wiederholbar | linear |
| Buckley, 2009 | codon3.rle | Nobili 32-Staaten | 116 × 95 | 4.855 | 23.577 | 4,86 | 1,63 × 10 9 |
| 3 Bit | binär | Ganzheitlicher Konstrukteur | wiederholbar | superlinear |
| Buckley, 2009 | PartialReplicator.mc [ 14 ] | von Neumann 29-Zustände | 2063 × 377 | 264.321 | N / A | N / A | ≈1,12 × 10 14 | keiner | 4 Bit | binär | Teilkonstruktor | wiederholbar | linear |
| Goucher & Buckley, 2012 | phi9.rle [ 15 ] | Nobili 32-Staaten | 122 × 60 | 3957 | 8920 | 2,25 | 1,8 × 10 8 |
| 3+ Bit | ternär | Ganzheitlicher Konstrukteur | wiederholbar | superlinear |
Wie von Neumann definierte, beinhaltet die universelle Konstruktion ausschließlich die Konstruktion passiver Konfigurationen. Somit stellte das Konzept der universellen Konstruktion nichts weiter als ein literarisches (oder in diesem Fall mathematisches) Hilfsmittel dar. Es erleichterte andere Beweise, etwa dass eine gut konstruierte Maschine zur Selbstreplikation fähig ist, während die universelle Konstruktion selbst lediglich für einen Minimalfall vorausgesetzt wurde. Unter diesem Maßstab ist die universelle Konstruktion trivial. Daher können zwar alle hier angegebenen Konfigurationen jede beliebige passive Konfiguration konstruieren, jedoch keine die von Gorman entwickelte Echtzeit-Kreuzungsorgan. [ 9 ]
Praktikabilität und Rechenkosten
Alle Implementierungen von Neumanns selbstreproduzierender Maschine benötigen erhebliche Computerressourcen. Beispielsweise benötigt die oben gezeigte Nobili-Pesavento-Implementierung mit 32 Zuständen, obwohl der Maschinenkörper nur aus 6.329 nichtleeren Zellen (innerhalb eines Rechtecks der Größe 97x170) besteht, ein 145.315 Zellen langes Band und 63 Milliarden Zeitschritte für die Replikation. Ein Simulator mit 1.000 Zeitschritten pro Sekunde bräuchte über zwei Jahre für die erste Kopie. Als die erste Implementierung 1995 veröffentlicht wurde, hatten die Autoren ihre eigene Maschine noch nicht erfolgreich repliziert. 2008 wurde der Hashlife- Algorithmus jedoch erweitert, um die Regelsätze mit 29 und 32 Zuständen in Golly zu unterstützen . Auf einem modernen Desktop-PC dauert die Replikation nun nur noch wenige Minuten, benötigt aber viel Speicherplatz.
Animationsgalerie
Beispiel eines Lesearms mit 29 Zuständen.
Siehe auch
- Codds zellulärer Automat
- Langtons Schleifen
- Nobili zelluläre Automaten
- Quine , ein Programm, das sich selbst als Ausgabe erzeugt
- Weihnachtsmann-Maschine
- Wireworld
- Conways Spiel des Lebens
Referenzen
- ^ a b c d Pesavento, Umberto (1995), „Eine Implementierung der selbstreproduzierenden Maschine von Neumann“, Artificial Life , 2 (4): 337–354 , doi : 10.1162/artl.1995.2.337 , PMID 8942052
- ^ a b c d e von Neumann, John; Burks, Arthur W. (1966),Theorie der sich selbst reproduzierenden Automaten.(Online-Einscannung des Buches) , University of Illinois Press , abgerufen am 28.02.2017
- ^ a b c d e McMullin, Barry (2000), „John von Neumann und das evolutionäre Wachstum der Komplexität: Rückblick und Ausblick“, Artificial Life , 6 (4): 347–361 , doi : 10.1162/106454600300103674 , PMID 11348586
- Rocha , Luis Mateus ( 1998 ) , „ Selected Self-Organization and the Semiotics of Evolutionary Systems “ , Evolutionary Systems , S. 341–358 , doi : 10.1007 / 978-94-017-1510-2_25 , ISBN 978-90-481-5103-5
- ^ a b c d e f Brenner, Sydney (2012), „Life's code script“, Nature , 482 (7386): 461, doi : 10.1038/482461a , PMID 22358811
- ^ a b c d Rocha, Luis M. (2015), „Kapitel 6. Von Neumann und die natürliche Selektion.“ , Vorlesungsskript zum Kurs SSIE-583 – Biologisch inspirierte Computer und evolutionäre Systeme, Binghamton University
- ^ Pattee, Howard Hunt (2012), „Evolving Self-reference: Matter, Symbols, and Semantic Closure“, LAWS, LANGUAGE and LIFE , Biosemiotics, Bd. 7, S. 211–226 , doi : 10.1007/978-94-007-5161-3_14 , ISBN 978-94-007-5160-6
- ^ ein b Nobili, Renato; Pesavento, Umberto (1996), „Generalised von Neumann's Automata“, in Besussi, E.; Cecchini, A. (Hrsg.), Proc. Künstliche Welten und Stadtstudien, Konferenz 1 (PDF) , Venedig: DAEST
- Buckley , William R. (2008), „Signal Crossing Solutions in von Neumann Self-replicating Cellular Automata“, in Andrew Adamatzky ; Ramon Alonso-Sanz; Anna Lawniczak ; Genaro Juarez Martinez; Kenichi Morita ; Thomas Worsch (Hrsg.), Proc . Automata 2008 (PDF) , Luniver Press, S. 453–503 , archiviert vom Original (PDF) am 1. Februar 2013 , abgerufen am 17. Mai 2014.
- ^ Mange, D.; Stauffer, A.; Peparaolo, L.; Tempesti, G. (2004), „Eine makroskopische Betrachtung der Selbstreplikation“ , Proceedings of the IEEE , 92 (12): 1929–1945 , Bibcode : 2004IEEEP..92.1929M , doi : 10.1109/JPROC.2004.837631
- ^ a b Nobili, Renato (2007). „Die zellulären Automaten von John von Neumann“ . Archiviert vom Original am 29. Januar 2011. Abgerufen am 29. Januar 2011 .
- ^ Nehaniv, CL (2002), „Selbstreproduktion in asynchronen zellulären Automaten“, Proceedings 2002 NASA/DoD Conference on Evolvable Hardware , S. 201–209 , doi : 10.1109/EH.2002.1029886 , ISBN 0-7695-1718-8
- ^ Takada, Yousuke; Isokawa, Teijiro; Peper, Ferdinand; Matsui, Nobuyuki (2004), „Universelle Konstruktion von selbsttaktenden zellulären Automaten“, Cellular Automata , Lecture Notes in Computer Science, Band 3305, S. 21–30 , doi : 10.1007/978-3-540-30479-1_3 , ISBN 978-3-540-23596-5
- ^ a b c andykt (18. Juli 2023). „Golly, ein Game of Life-Simulator“ . SourceForge .
- ^ „Selbstreplikation“ . Komplexer projektiver Vierraum . 12. November 2012.