Von Neumann universal constructor
John von Neumann's Universal Constructor is a self-replicating machine in a cellular automata (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.
Von Neumann's goal was to specify an abstract machine which, when run, would replicate itself. In his design, the machine consists of three parts: a 'blueprint' for itself, a mechanism that can read any blueprint and construct the machine (sans blueprint) specified by that blueprint, and a 'copy machine' that can make copies of any blueprint. After the mechanism has been used to construct the machine specified by the blueprint, the copy machine is used to create a copy of that blueprint, and this copy is placed into the new machine, resulting in a faithful replication of the original machine.
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 a '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' to build a copy of the machine, without tape, at some other location in the cell grid. The tape cannot contain instructions to build a copy of the tape however. Therefore, the machine contains a separate 'copy machine' which reads the tape and places a faithful copy into the newly constructed machine. The resulting new machine with tape is identical to the old one, and it proceeds to replicate again.
Von Neumann's design has traditionally been understood to be a demonstration of the logical requirements for machine self-replication. 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.
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. The issue of the environmental contribution to replication is somewhat open, since there are different conceptions of raw material and its availability.
The concept of a universal constructor is non-trivial because of the existence of garden of eden patterns. But a simple definition is that a universal constructor is able to construct any finite pattern of non-excited (quiescent) cells.
Von Neumann's crucial insight is that part of the replicator has a double use; being both an active component of the construction mechanism, and being the target of a passive copying process. This part is played by the tape of instructions in Von Neumann's combination of universal constructor plus instruction tape.
The combination of a universal constructor and a tape of instructions would i) allow self-replication, and also ii) guarantee that the open-ended complexity growth observed in biological organisms was possible. The image below illustrates this possibility.
This insight is all the more remarkable because it preceded the discovery of the structure of the DNA molecule by Watson and Crick, though it followed the Avery–MacLeod–McCarty experiment which identified DNA as the molecular carrier of genetic information in living organisms. The DNA molecule is processed by separate mechanisms that carry out its instructions and copy the DNA for insertion for the newly constructed cell. 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.
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. 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.
In 2004, D. Mange et al. reported an implementation of a self-replicator that is consistent with the designs of von Neumann.
In 2008, William R. Buckley published two configurations which are self-replicators within the original 29-state CA of von Neumann. Buckley claims that the crossing of signal within von Neumann 29-state cellular automata is not necessary to the construction of self-replicators. 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.  
Comparison of implementations
|implementation||source||ruleset||rectangular area||number of cells||length of tape||ratio||timesteps for replication||tape code compression||tape code length||tape code type||replication mechanism||replication type||growth rate|
|Nobili-Pesavento, 1995 ||||Nobili 32-state||97 × 170||6,329||145,315||22.96||6.34 × 1010||none||5 bits||binary||holistic constructor||non-repeatable||linear|
|Nobili, 2007||SR_CCN_AP.EVN ||Nobili 32-state||97 × 100||5,313||56,325||10.60||9.59 × 109||run-length limited encoding||5 bits||binary||holistic constructor||repeatable||super-linear|
|Buckley, 2008||codon5.rle ||Nobili 32-state||112 × 50||3,343||44,155||13.21||5.87 x 109||auto-retraction||5 bits||binary||holistic constructor||repeatable||linear|
|Buckley, 2008||replicator.mc ||von Neumann 29-state||312 × 132||18,589||294,844||15.86||2.61 × 1011||auto-retraction||5 bits||binary||holistic constructor||repeatable||linear|
|Buckley, 2008||codon4.rle ||Nobili 32-state||109 × 59||3,574||37,780||10.57||4.31 x 109||auto-retraction/bit generation||4 bits||binary||holistic constructor||repeatable||linear|
|Buckley, 2009||codon3.rle||Nobili 32-state||116 × 95||4,855||23,577||4.86||1.63 x 109||auto-retraction/bit generation/code overlay||3 bits||binary||holistic constructor||repeatable||super-linear|
|Buckley, 2009||PartialReplicator.mc ||von Neumann 29-state||2063 × 377||264,321||NA||-||~1.12 x 1014||none||4 bits||binary||partial constructor||repeatable||linear|
|Goucher & Buckley, 2012||phi9.rle ||Nobili 32-state||122 × 60||3957||8920||2.25||-||auto-retraction/bit generation/code overlay/run length limited||3+ bits||ternary||holistic constructor||repeatable||super-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.
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.
It has been argued that the problem Von Neumann was trying to address was not self-reproduction per se, but the evolutionary growth of complexity. His “proof-of-principle” designs showed how it is logically possible, by using a general purpose programmable (“universal”) constructor, to exhibit an indefinitely large class of self-reproducing machines, spanning a wide range of “complexity” (in von Neumann's sense of “the ability to do complicated things”), interconnected by a network of potential mutational pathways, including pathways from the most simple to the most complex. This is an important result, as prior to that it might have been conjectured that there is a fundamental logical barrier to the existence of such pathways; in which case, biological organisms, which do support such pathways, could not be “machines”, as conventionally understood. But the result does not show what other conditions are necessary, in practice, for evolution along such pathways from simple to complex to be spontaneously realised or followed. In his unfinished work he briefly considers conflict and interactions between his self-reproducing machines;:147 but in practice, his particular model cannot yield evolutionary dynamics because the machines are too fragile - the vast majority of perturbations cause them effectively to disintegrate.
- Codd's cellular automaton
- Langton's loops
- Nobili cellular automata
- Quine, a program that produces itself as output
- Santa Claus machine
- Pesavento, Umberto (1995), "An implementation of von Neumann's self-reproducing machine" (PDF), Artificial Life, MIT Press, 2 (4): 337–354, PMID 8942052, doi:10.1162/artl.1995.2.337, archived from the original (PDF) on June 21, 2007
- von Neumann, John; Burks, Arthur W. (1966), Theory of Self-Reproducing Automata. (Scanned book online), University of Illinois Press, retrieved 2017-02-28
- McMullin, B. (2000), "John von Neumann and the Evolutionary Growth of Complexity: Looking Backwards, Looking Forwards...", Artificial Life, 6 (4): 347–361, PMID 11348586, doi:10.1162/106454600300103674
-  Archived June 13, 2008, at the Wayback Machine.
- Rocha, Luis M., "Von Neumann and Natural Selection.", Lecture Notes of I-585-Biologically Inspired Computing Course, Indiana University (PDF)
- Nobili, Renato; Pesavento, Umberto (1996), "Generalised von Neumann's Automata", in Besussi, E.; Cecchini, A., Proc. Artificial Worlds and Urban Studies, Conference 1 (PDF), Venice: 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, Proc. Automata 2008 (PDF), Luniver Press, pp. 453–503
- 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
- "Archived copy". Archived from the original on January 29, 2011. Retrieved January 29, 2011.
- 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
- Takada, Yousuke; Isokawa, Teijiro; Peper, Ferdinand; Matsui, Nobuyuki (2004), "Universal Construction on Self-Timed Cellular Automata", in Sloot, P.M.A., ACRI 2004, LNCS 3305, pp. 21–30
- "Von Neumann's Self-Reproducing Universal Constructor".
- The Cellular Automata of John von Neumann
- andykt. "Golly, a Game of Life simulator". SourceForge.
- "Self-replication". Complex Projective 4-Space.
- Golly - the Cellular Automata Simulation Accelerator Very fast implementation of state transition and support for JvN, GoL, Wolfram, and other systems.
- von Neumann's Self-Reproducing Universal Constructor The original Nobili-Pesavento source code, animations and Golly files of the replicators.
- John von Neumann's 29 state Cellular Automata Implemented in OpenLaszlo by Don Hopkins
- A Catalogue of Self-Replicating Cellular Automata. This catalogue complements the Proc. Automata 2008 volume.