Von Neumann universal constructor

Last updated
The first implementation of von Neumann's self-reproducing universal constructor. Three generations of machine are shown: the second has nearly finished constructing the third. The lines running to the right are the tapes of genetic instructions, which are copied along with the body of the machines. The machine shown runs in a 32-state version of von Neumann's cellular automata environment, not his original 29-state specification. Nobili Pesavento 2reps.png
The first implementation of von Neumann's self-reproducing universal constructor. Three generations of machine are shown: the second has nearly finished constructing the third. The lines running to the right are the tapes of genetic instructions, which are copied along with the body of the machines. The machine shown runs in a 32-state version of von Neumann's cellular automata environment, not his original 29-state specification.

John von Neumann's universal constructor is a self-replicating machine in a cellular automaton (CA) environment. It was designed in the 1940s, without the use of a computer. The fundamental details of the machine were published in von Neumann's book Theory of Self-Reproducing Automata, completed in 1966 by Arthur W. Burks after von Neumann's death. [2] While typically not as well known as von Neumann's other work[ according to whom? ], it is regarded as foundational for automata theory, complex systems, and artificial life. [3] [4] Indeed, Nobel Laureate Sydney Brenner considered Von Neumann's work on self-reproducing automata (together with Turing's work on computing machines) central to biological theory as well, allowing us to "discipline our thoughts about machines, both natural and artificial." [5]

Contents

Von Neumann's goal, as specified in his lectures at the University of Illinois in 1949, [2] was to design a machine whose complexity could grow automatically akin to biological organisms under natural selection. He asked what is the threshold of complexity that must be crossed for machines to be able to evolve. [4] His answer was to specify an abstract machine which, when run, would replicate itself. In his design, the self-replicating machine consists of three parts: a "description" of ('blueprint' or program for) itself, a universal constructor mechanism that can read any description and construct the machine (sans description) encoded in that description, and a universal copy machine that can make copies of any description. After the universal constructor has been used to construct a new machine encoded in the description, the copy machine is used to create a copy of that description, and this copy is passed on to the new machine, resulting in a working replication of the original machine that can keep on reproducing. Some machines will do this backwards, copying the description and then building a machine. Crucially, the self-reproducing machine can evolve by accumulating mutations of the description, not the machine itself, thus gaining the ability to grow in complexity. [4] [5]

To define his machine in more detail, von Neumann invented the concept of a cellular automaton. The one he used consists of a two-dimensional grid of cells, each of which can be in one of 29 states at any point in time. At each timestep, each cell updates its state depending on the states of the surrounding cells at the prior timestep. The rules governing these updates are identical for all cells.

The universal constructor is a certain pattern of cell states in this cellular automaton. It contains one line of cells that serve as the description (akin to Turing's tape), encoding a sequence of instructions that serve as a 'blueprint' for the machine. The machine reads these instructions one by one and performs the corresponding actions. The instructions direct the machine to use its 'construction arm' (another automaton that functions like an Operating System [4] ) to build a copy of the machine, without the description tape, at some other location in the cell grid. The description cannot contain instructions to build an equally long description tape, just as a container cannot contain a container of the same size. Therefore, the machine includes the separate copy machine which reads the description tape and passes a copy to the newly constructed machine. The resulting new set of universal constructor and copy machines plus description tape is identical to the old one, and it proceeds to replicate again.

Purpose

Von Neumann's System of Self-Replication Automata with the ability to evolve (Figure adapted from Luis Rocha's Lecture Notes at Binghamton University ). i) the self-replicating system is composed of several automata plus a separate description (an encoding formalized as a Turing 'tape') of all the automata: Universal Constructor (A), Universal Copier (B), Operating System (C), extra functions not involved with replication (D), and separate description Ph(A,B,C,D) encoding all automata. ii) (Top) Universal Constructor produces (decodes) automata from their description (active mode of description); (Bottom) Universal Copier copies description of automata (passive mode of description); Mutations Ph(D') to description Ph(D) (not changes in automaton D directly) propagate to the set of automata produced in next generation, allowing (automata + description) system to continue replicating and evolving (D - D'). The active process of construction from a description parallels DNA translation, the passive process of copying the description parallels DNA replication, and inheritance of mutated descriptions parallels Vertical inheritance of DNA mutations in Biology, and were proposed by Von Neumann before the discovery of the structure of the DNA molecule and how it is separately translated and replicated in the Cell. Von Neuman Self-replication 2.jpg
Von Neumann's System of Self-Replication Automata with the ability to evolve (Figure adapted from Luis Rocha's Lecture Notes at Binghamton University ). i) the self-replicating system is composed of several automata plus a separate description (an encoding formalized as a Turing 'tape') of all the automata: Universal Constructor (A), Universal Copier (B), Operating System (C), extra functions not involved with replication (D), and separate description Φ(A,B,C,D) encoding all automata. ii) (Top) Universal Constructor produces (decodes) automata from their description (active mode of description); (Bottom) Universal Copier copies description of automata (passive mode of description); Mutations Φ(D') to description Φ(D) (not changes in automaton D directly) propagate to the set of automata produced in next generation, allowing (automata + description) system to continue replicating and evolving (D → D'). The active process of construction from a description parallels DNA translation, the passive process of copying the description parallels DNA replication, and inheritance of mutated descriptions parallels Vertical inheritance of DNA mutations in Biology, and were proposed by Von Neumann before the discovery of the structure of the DNA molecule and how it is separately translated and replicated in the Cell.

Von Neumann's design has traditionally been understood to be a demonstration of the logical requirements for machine self-replication. [3] However, it is clear that far simpler machines can achieve self-replication. Examples include trivial crystal-like growth, template replication, and Langton's loops. But von Neumann was interested in something more profound: construction, universality, and evolution. [4] [5]

Note that the simpler self-replicating CA structures (especially, Byl's loop and the Chou–Reggia loop) cannot exist in a wide variety of forms and thus have very limited evolvability. Other CA structures such as the Evoloop are somewhat evolvable but still don't support open-ended evolution. Commonly, simple replicators do not fully contain the machinery of construction, there being a degree to which the replicator is information copied by its surrounding environment. Although the Von Neumann design is a logical construction, it is in principle a design that could be instantiated as a physical machine. Indeed, this universal constructor can be seen as an abstract simulation of a physical universal assembler. The issue of the environmental contribution to replication is somewhat open, since there are different conceptions of raw material and its availability.

Von Neumann's crucial insight is that the description of the machine, which is copied and passed to offspring separately via the universal copier, has a double use; being both an active component of the construction mechanism in reproduction, and being the target of a passive copying process. This part is played by the description (akin to Turing's tape of instructions) in Von Neumann's combination of universal constructor and universal copier. [4] The combination of a universal constructor and copier, plus a tape of instructions conceptualizes and formalizes i) self-replication, and ii) open-ended evolution, or growth of complexity observed in biological organisms. [3]

This insight is all the more remarkable because it preceded the discovery of the structure of the DNA molecule by Watson and Crick and how it is separately translated and replicated in the cell—though it followed the Avery–MacLeod–McCarty experiment which identified DNA as the molecular carrier of genetic information in living organisms. [6] The DNA molecule is processed by separate mechanisms that carry out its instructions (translation) and copy (replicate) the DNA for newly constructed cells. The ability to achieve open-ended evolution lies in the fact that, just as in nature, errors (mutations) in the copying of the genetic tape can lead to viable variants of the automaton, which can then evolve via natural selection. [4] As Brenner put it:

Turing invented the stored-program computer, and von Neumann showed that the description is separate from the universal constructor. This is not trivial. Physicist Erwin Schrödinger confused the program and the constructor in his 1944 book What is Life?, in which he saw chromosomes as ″architect's plan and builder's craft in one″. This is wrong. The code script contains only a description of the executive function, not the function itself. [5]

Evolution of Complexity

Von Neumann's goal, as specified in his lectures at the University of Illinois in 1949, [2] was to design a machine whose complexity could grow automatically akin to biological organisms under natural selection. He asked what is the threshold of complexity that must be crossed for machines to be able to evolve and grow in complexity. [4] [3] His “proof-of-principle” designs showed how it is logically possible. By using an architecture that separates a general purpose programmable (“universal”) constructor from a general purpose copier, he showed how the descriptions (tapes) of machines could accumulate mutations in self-replication and thus evolve more complex machines (the image below illustrates this possibility.). This is a very important result, as prior to that, it might have been conjectured that there is a fundamental logical barrier to the existence of such machines; in which case, biological organisms, which do evolve and grow in complexity, could not be “machines”, as conventionally understood. Von Neumann's insight was to think of life as a Turing Machine, which, is similarly defined by a state-determined machine "head" separated from a memory tape. [5]

In practice, when we consider the particular automata implementation Von Neumann pursued, we conclude that it does not yield much evolutionary dynamics because the machines are too fragile - the vast majority of perturbations cause them effectively to disintegrate. [3] Thus, it is the conceptual model outlined in his Illinois lectures [2] that is of greater interest today because it shows how a machine can in principle evolve. [7] [4] This insight is all the more remarkable because the model preceded the discovery of the structure of the DNA molecule as discussed above. [6] It is also noteworthy that Von Neumann's design considers that mutations towards greater complexity need to occur in the (descriptions of) subsystems not involved in self-reproduction itself, as conceptualized by the additional automaton D he considered to perform all functions not directly involved in reproduction (see Figure above with Von Neumann's System of Self-Replication Automata with the ability to evolve.) Indeed, in biological organisms only very minor variations of the genetic code have been observed, which matches Von Neumann's rationale that the universal constructor (A) and Copier (B) would not themselves evolve, leaving all evolution (and growth of complexity) to automaton D. [4] In his unfinished work, Von Neumann also briefly considers conflict and interactions between his self-reproducing machines, towards understanding the evolution of ecological and social interactions from his theory of self-reproducing machines. [2] :147

A demonstration of the ability of von Neumann's machine to support inheritable mutations. (1) At an earlier timestep, a mutation was manually added to the second generation machine's tape. (2) Later generations both display the phenotype of the mutation (a drawing of a flower) and pass the mutation on to their children, since the tape is copied each time. This example illustrates how von Neumann's design allows for complexity growth (in theory) since the tape could specify a machine that is more complex than the one making it. Pesavento replicator inherited mutations.png
A demonstration of the ability of von Neumann's machine to support inheritable mutations. (1) At an earlier timestep, a mutation was manually added to the second generation machine's tape. (2) Later generations both display the phenotype of the mutation (a drawing of a flower) and pass the mutation on to their children, since the tape is copied each time. This example illustrates how von Neumann's design allows for complexity growth (in theory) since the tape could specify a machine that is more complex than the one making it.

Implementations

In automata theory, the concept of a universal constructor is non-trivial because of the existence of Garden of Eden patterns (configurations that have no predecessor). But a simple definition is that a universal constructor is able to construct any finite pattern of non-excited (quiescent) cells.

Arthur Burks and others extended the work of von Neumann, giving a much clearer and complete set of details regarding the design and operation of von Neumann's self-replicator. The work of J. W. Thatcher is particularly noteworthy, for he greatly simplified the design. Still, their work did not yield a complete design, cell by cell, of a configuration capable of demonstrating self-replication.

Renato Nobili and Umberto Pesavento published the first fully implemented self-reproducing cellular automaton in 1995, nearly fifty years after von Neumann's work. [1] [8] They used a 32-state cellular automaton instead of von Neumann's original 29-state specification, extending it to allow for easier signal-crossing, explicit memory function and a more compact design. They also published an implementation of a general constructor within the original 29-state CA but not one capable of complete replication - the configuration cannot duplicate its tape, nor can it trigger its offspring; the configuration can only construct. [8] [9]

In 2004, D. Mange et al. reported an implementation of a self-replicator that is consistent with the designs of von Neumann. [10]

In 2007, Nobili published a 32-state implementation that uses run-length encoding to greatly reduce the size of the tape. [11]

In 2008, William R. Buckley published two configurations which are self-replicators within the original 29-state CA of von Neumann. [9] Buckley claims that the crossing of signal within von Neumann 29-state cellular automata is not necessary to the construction of self-replicators. [9] Buckley also points out that for the purposes of evolution, each replicator should return to its original configuration after replicating, in order to be capable (in theory) of making more than one copy. As published, the 1995 design of Nobili-Pesavento does not fulfill this requirement but the 2007 design of Nobili does; the same is true of Buckley's configurations.

In 2009, Buckley published with Golly a third configuration for von Neumann 29-state cellular automata, which can perform either holistic self-replication, or self-replication by partial construction. This configuration also demonstrates that signal crossing is not necessary to the construction of self-replicators within von Neumann 29-state cellular automata.

C. L. Nehaniv in 2002, and also Y. Takada et al. in 2004, proposed a universal constructor directly implemented upon an asynchronous cellular automaton, rather than upon a synchronous cellular automaton. [12] [13]

Comparison of implementations

ImplementationSourceRulesetRectangular areaNumber of cellsLength of tapeRatioPeriodTape code compressionTape code lengthTape code typeReplication mechanismReplication typeGrowth rate
Nobili-Pesavento, 1995 [1] [14] Nobili 32-state97 × 1706,329145,31522.966.34 × 1010none5 bitsbinaryholistic constructornon-repeatablelinear
Nobili, 2007SR_CCN_AP.EVN [11] Nobili 32-state97 × 1005,31356,32510.609.59 × 109run-length limited encoding5 bitsbinaryholistic constructorrepeatablesuper-linear
Buckley, 2008codon5.rle [15] Nobili 32-state112 × 503,34344,15513.215.87 × 109auto-retraction5 bitsbinaryholistic constructorrepeatablelinear
Buckley, 2008 [9] replicator.mcvon Neumann 29-state312 × 13218,589294,84415.862.61 × 1011auto-retraction5 bitsbinaryholistic constructorrepeatablelinear
Buckley, 2008codon4.rle [15] Nobili 32-state109 × 593,57437,78010.574.31 × 109auto-retraction/bit generation4 bitsbinaryholistic constructorrepeatablelinear
Buckley, 2009codon3.rleNobili 32-state116 × 954,85523,5774.861.63 × 109auto-retraction/bit generation/code overlay3 bitsbinaryholistic constructorrepeatablesuper-linear
Buckley, 2009PartialReplicator.mc [15] von Neumann 29-state2063 × 377264,321≈1.12 × 1014none4 bitsbinarypartial constructorrepeatablelinear
Goucher & Buckley, 2012phi9.rle [16] Nobili 32-state122 × 60395789202.25auto-retraction/bit generation/code overlay/run length limited3+ bitsternaryholistic constructorrepeatablesuper-linear

As defined by von Neumann, universal construction entails the construction of passive configurations, only. As such, the concept of universal construction constituted nothing more than a literary (or, in this case, mathematical) device. It facilitated other proof, such as that a machine well constructed may engage in self-replication, while universal construction itself was simply assumed over a most minimal case. Universal construction under this standard is trivial. Hence, while all the configurations given here can construct any passive configuration, none can construct the real-time crossing organ devised by Gorman. [9]

Practicality and computational cost

All the implementations of von Neumann's self-reproducing machine require considerable resources to run on computer. For example, in the Nobili-Pesavento 32-state implementation shown above, while the body of the machine is just 6,329 non-empty cells (within a rectangle of size 97x170), it requires a tape that is 145,315 cells long, and takes 63 billion timesteps to replicate. A simulator running at 1,000 timesteps per second would take over 2 years to make the first copy. In 1995, when the first implementation was published, the authors had not seen their own machine replicate. However, in 2008, the hashlife algorithm was extended to support the 29-state and 32-state rulesets in Golly. On a modern desktop PC, replication now takes only a few minutes, although a significant amount of memory is required.

See also

Related Research Articles

<span class="mw-page-title-main">Self-replication</span> Type of behavior of a dynamical system

Self-replication is any behavior of a dynamical system that yields construction of an identical or similar copy of itself. Biological cells, given suitable environments, reproduce by cell division. During cell division, DNA is replicated and can be transmitted to offspring during reproduction. Biological viruses can replicate, but only by commandeering the reproductive machinery of cells through a process of infection. Harmful prion proteins can replicate by converting normal proteins into rogue forms. Computer viruses reproduce using the hardware and software already present on computers. Self-replication in robotics has been an area of research and a subject of interest in science fiction. Any self-replicating mechanism which does not make a perfect copy (mutation) will experience genetic variation and will create variants of itself. These variants will be subject to natural selection, since some will be better at surviving in their current environment than others and will out-breed them.

<span class="mw-page-title-main">Conway's Game of Life</span> Two-dimensional cellular automaton devised by J. H. Conway in 1970

The Game of Life, also known simply as Life, is a cellular automaton devised by the British mathematician John Horton Conway in 1970. It is a zero-player game, meaning that its evolution is determined by its initial state, requiring no further input. One interacts with the Game of Life by creating an initial configuration and observing how it evolves. It is Turing complete and can simulate a universal constructor or any other Turing machine.

Von Neumann machine may refer to:

<span class="mw-page-title-main">Cellular automaton</span> Discrete model studied in computer science

A cellular automaton is a discrete model of computation studied in automata theory. Cellular automata are also called cellular spaces, tessellation automata, homogeneous structures, cellular structures, tessellation structures, and iterative arrays. Cellular automata have found application in various areas, including physics, theoretical biology and microstructure modeling.

In computer science, a universal Turing machine (UTM) is a Turing machine capable of computing any computable sequence, as described by Alan Turing in his seminal paper "On Computable Numbers, with an Application to the Entscheidungsproblem". Common sense might say that a universal machine is impossible, but Turing proves that it is possible. He suggested that we may compare a man in the process of computing a real number to a machine which is only capable of a finite number of conditions q 1: q 2. .... qI; which will be called "m-configurations". He then described the operation of such machine, as described below, and argued:

It is my contention that these operations include all those which are used in the computation of a number.

<span class="mw-page-title-main">Automata theory</span> Study of abstract machines and automata

Automata theory is the study of abstract machines and automata, as well as the computational problems that can be solved using them. It is a theory in theoretical computer science with close connections to mathematical logic. The word automata comes from the Greek word αὐτόματος, which means "self-acting, self-willed, self-moving". An automaton is an abstract self-propelled computing device which follows a predetermined sequence of operations automatically. An automaton with a finite number of states is called a Finite Automaton (FA) or Finite-State Machine (FSM). The figure on the right illustrates a finite-state machine, which is a well-known type of automaton. This automaton consists of states and transitions. As the automaton sees a symbol of input, it makes a transition to another state, according to its transition function, which takes the previous state and current input symbol as its arguments.

<span class="mw-page-title-main">Self-replicating machine</span> Device able to make copies of itself

A self-replicating machine is a type of autonomous robot that is capable of reproducing itself autonomously using raw materials found in the environment, thus exhibiting self-replication in a way analogous to that found in nature. The concept of self-replicating machines has been advanced and examined by Homer Jacobson, Edward F. Moore, Freeman Dyson, John von Neumann, Konrad Zuse and in more recent times by K. Eric Drexler in his book on nanotechnology, Engines of Creation and by Robert Freitas and Ralph Merkle in their review Kinematic Self-Replicating Machines which provided the first comprehensive analysis of the entire replicator design space. The future development of such technology is an integral part of several plans involving the mining of moons and asteroid belts for ore and other materials, the creation of lunar factories, and even the construction of solar power satellites in space. The von Neumann probe is one theoretical example of such a machine. Von Neumann also worked on what he called the universal constructor, a self-replicating machine that would be able to evolve and which he formalized in a cellular automata environment. Notably, Von Neumann's Self-Reproducing Automata scheme posited that open-ended evolution requires inherited information to be copied and passed to offspring separately from the self-replicating machine, an insight that preceded the discovery of the structure of the DNA molecule by Watson and Crick and how it is separately translated and replicated in the cell.

<span class="mw-page-title-main">Codd's cellular automaton</span> 2D cellular automaton devised by Edgar F. Codd in 1968

Codd's cellular automaton is a cellular automaton (CA) devised by the British computer scientist Edgar F. Codd in 1968. It was designed to recreate the computation- and construction-universality of von Neumann's CA but with fewer states: 8 instead of 29. Codd showed that it was possible to make a self-reproducing machine in his CA, in a similar way to von Neumann's universal constructor, but never gave a complete implementation.

<span class="mw-page-title-main">Von Neumann cellular automaton</span> Cellular automaton used to model universal construction

Von Neumann cellular automata are the original expression of cellular automata, the development of which was prompted by suggestions made to John von Neumann by his close friend and fellow mathematician Stanislaw Ulam. Their original purpose was to provide insight into the logical requirements for machine self-replication, and they were used in von Neumann's universal constructor.

<span class="mw-page-title-main">Cyclic cellular automaton</span>

A cyclic cellular automaton is a kind of cellular automaton rule developed by David Griffeath and studied by several other cellular automaton researchers. In this system, each cell remains unchanged until some neighboring cell has a modular value exactly one unit larger than that of the cell itself, at which point it copies its neighbor's value. One-dimensional cyclic cellular automata can be interpreted as systems of interacting particles, while cyclic cellular automata in higher dimensions exhibit complex spiraling behavior.

<span class="mw-page-title-main">Langton's loops</span> Self-reproducing cellular automaton patterns

Langton's loops are a particular "species" of artificial life in a cellular automaton created in 1984 by Christopher Langton. They consist of a loop of cells containing genetic information, which flows continuously around the loop and out along an "arm", which will become the daughter loop. The "genes" instruct it to make three left turns, completing the loop, which then disconnects from its parent.

Humans have considered and tried to create non-biological life for at least 3000 years. As seen in tales ranging from Pygmalion to Frankenstein, humanity has long been intrigued by the concept of artificial life.

<span class="mw-page-title-main">Von Neumann neighborhood</span> Cellular automaton neighborhood consisting of four adjacent cells

In cellular automata, the von Neumann neighborhood is classically defined on a two-dimensional square lattice and is composed of a central cell and its four adjacent cells. The neighborhood is named after John von Neumann, who used it to define the von Neumann cellular automaton and the von Neumann universal constructor within it. It is one of the two most commonly used neighborhood types for two-dimensional cellular automata, the other one being the Moore neighborhood.

Cellular automata, as with other multi-agent system models, usually treat time as discrete and state updates as occurring synchronously. The state of every cell in the model is updated together, before any of the new states influence other cells. In contrast, an asynchronous cellular automaton is able to update individual cells independently, in such a way that the new state of a cell affects the calculation of states in neighbouring cells.

A quantum cellular automaton (QCA) is an abstract model of quantum computation, devised in analogy to conventional models of cellular automata introduced by John von Neumann. The same name may also refer to quantum dot cellular automata, which are a proposed physical implementation of "classical" cellular automata by exploiting quantum mechanical phenomena. QCA have attracted a lot of attention as a result of its extremely small feature size and its ultra-low power consumption, making it one candidate for replacing CMOS technology.

<span class="mw-page-title-main">BioWall</span>

The BioWall is a bio-inspired computing surface made of several thousand electronic modules which can be seen as artificial molecules. Each of these modules contains a programmable electronic circuit, a touch sensor and a display composed of 64 LEDs. As a result, each module enables the visitor to communicate with the surface by touching it with his finger, calculates its new status and indicates it immediately on a coloured display.

<span class="mw-page-title-main">Rule 90</span> Elementary cellular automaton

In the mathematical study of cellular automata, Rule 90 is an elementary cellular automaton based on the exclusive or function. It consists of a one-dimensional array of cells, each of which can hold either a 0 or a 1 value. In each time step all values are simultaneously replaced by the XOR of their two neighboring values. Martin, Odlyzko & Wolfram (1984) call it "the simplest non-trivial cellular automaton", and it is described extensively in Stephen Wolfram's 2002 book A New Kind of Science.

<span class="mw-page-title-main">Nobili cellular automata</span> Type of cellular automaton

Nobili cellular automata (NCA) are a variation of von Neumann cellular automata (vNCA), in which additional states provide means of memory and the interference-free crossing of signal. Nobili cellular automata are the invention of Renato Nobili, a professor of physics at the University of Padova in Padova, Italy. Von Neumann specifically excluded the use of states dedicated to the crossing of signal.

<span class="mw-page-title-main">Byl's loop</span> Cellular automaton

The Byl's loop is an artificial lifeform similar in concept to Langton's loop. It is a two-dimensional, 5-neighbor cellular automaton with 6 states per cell, and was developed in 1989 by John Byl, from the Department of Mathematical Sciences of Trinity Western University.

<span class="mw-page-title-main">Reversible cellular automaton</span> Cellular automaton that can be run backwards

A reversible cellular automaton is a cellular automaton in which every configuration has a unique predecessor. That is, it is a regular grid of cells, each containing a state drawn from a finite set of states, with a rule for updating all cells simultaneously based on the states of their neighbors, such that the previous state of any cell before an update can be determined uniquely from the updated states of all the cells. The time-reversed dynamics of a reversible cellular automaton can always be described by another cellular automaton rule, possibly on a much larger neighborhood.

References

  1. 1 2 3 Pesavento, Umberto (1995), "An implementation of von Neumann's self-reproducing machine" (PDF), Artificial Life, 2 (4), MIT Press: 337–354, doi:10.1162/artl.1995.2.337, PMID   8942052, archived from the original (PDF) on June 21, 2007
  2. 1 2 3 4 5 von Neumann, John; Burks, Arthur W. (1966), Theory of Self-Reproducing Automata. (Scanned book online), University of Illinois Press, retrieved 2017-02-28
  3. 1 2 3 4 5 McMullin, B. (2000), "John von Neumann and the Evolutionary Growth of Complexity: Looking Backwards, Looking Forwards..." , Artificial Life, 6 (4): 347–361, doi:10.1162/106454600300103674, PMID   11348586, S2CID   5454783
  4. 1 2 3 4 5 6 7 8 9 10 11 12 Rocha, Luis M. (1998), "Selected Self-Organization and the Semiotics of Evolutionary Systems", Evolutionary Systems , Springer, Dordrecht, pp. 341–358, doi:10.1007/978-94-017-1510-2_25, ISBN   978-90-481-5103-5
  5. 1 2 3 4 5 6 Brenner, Sydney (2012), "Life's code script" , Nature, 482 (7386): 461, doi:10.1038/482461a, PMID   22358811, S2CID   205070101
  6. 1 2 3 4 Rocha, Luis M. (2015), "Chapter 6. Von Neumann and Natural Selection.", Lecture Notes of SSIE-583-Biologically Inspired Computing and Evolutionary Systems Course, Binghamton University
  7. Pattee, Howard, H. (2012), "Evolving Self-reference: Matter, Symbols, and Semantic Closure", LAWS, LANGUAGE and LIFE, Biosemiotics, vol. 12, pp. 9–27, doi:10.1007/978-94-007-5161-3_14, ISBN   978-94-007-5160-6 {{citation}}: CS1 maint: multiple names: authors list (link)
  8. 1 2 Nobili, Renato; Pesavento, Umberto (1996), "Generalised von Neumann's Automata", in Besussi, E.; Cecchini, A. (eds.), Proc. Artificial Worlds and Urban Studies, Conference 1 (PDF), Venice: DAEST
  9. 1 2 3 4 5 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 (eds.), Proc. Automata 2008 (PDF), Luniver Press, pp. 453–503
  10. Mange, Daniel; Stauffer, A.; Peparaolo, L.; Tempesti, G. (2004), "A Macroscopic View of Self-replication", Proceedings of the IEEE, 92 (12): 1929–1945, doi:10.1109/JPROC.2004.837631, S2CID   22500865
  11. 1 2 Nobili, Renato (2007). "The Cellular Automata of John von Neumann". Archived from the original on January 29, 2011. Retrieved January 29, 2011.
  12. Nehaniv, Chrystopher L. (2002), "Self-Reproduction in Asynchronous Cellular Automata", 2002 NASA/DoD Conference on Evolvable Hardware (15-18 July 2002, Alexandria, Virginia, USA), IEEE Computer Society Press, pp. 201–209
  13. Takada, Yousuke; Isokawa, Teijiro; Peper, Ferdinand; Matsui, Nobuyuki (2004), "Universal Construction on Self-Timed Cellular Automata", in Sloot, P.M.A. (ed.), ACRI 2004, LNCS 3305, pp. 21–30
  14. "Von Neumann's Self-Reproducing Universal Constructor".[ dead link ]
  15. 1 2 3 andykt (18 July 2023). "Golly, a Game of Life simulator". SourceForge.
  16. "Self-replication". Complex Projective 4-Space. 12 November 2012.