| Welcome to the World of John von Neumann's Cellular Automata
What is WJVN.EXE and what does it do?
Author: Renato Nobili, Copyright ã 2006 - All right reserved.
WJVN.EXE is the first complete Microsoft Windows version of an application for the practical implementation of John von Neumann's cellular automata. Compared to previous versions, this is much more stable, user-friendly and provided with examples and detailed explanations on usage and scope. The program works under Windows 98, 2000, XP and Vista. To install the program in your PC, simply decompress WJVN.ZIP in a new directory (typically \WJVN; hereafter referred to as main) and click on WJVN.EXE to start the program. The main directory contains the files listed in README.TXT and the folders EVN and JVN respectively including the automata of the extended von Neumann (EVN) type and the John von Neumann (JVN) type (EVN and JVN files). To remedy for possible file corruptions or accidental modifications, you can recover in any moment the original EVN and JVN files provided by the Author from EVN.ZIP and JVN.ZIP in the main directory.
The Program is compiled under Watcom IDE 11.0c (Sybase Inc.,1997) with BlueSky 2.51 as visual C++ programmer, but in origin it was planned and set up to run under DOS by the Author in winter 1989-1990 and further developed for Watcom DOS Extender in cooperation with Umberto Pesavento during the years 1992-94. Most work was done by Umberto when he was 16-17 years old, under Author's tutoring and supervision. The results were presented at the meeting Artificial Worlds and Urban Studies in Venice (Italy) in November 1994 and published two years later in meeting's proceedings (E.Besussi and A.Cecchini Editors, University of Venice, Italy, 1996) with the title Generalised von Neumann's Automata. Pesavento implemented and released a demonstrative version running under Linux and published autonomously a paper entitled An Implementation of von Neumann's Self-Reproducing Machine in Artificial Life Journal 2, 337-354 (1995) when he was attending the studies in Physics at the Princeton University (USA).
The basic idea advanced by von Neumann since the late 1940's was that any system capable of self-reproducing must include at least two basic components: a universal constructor and a tape. The latter is a sequence of inactive (quiescent) elements coding for machine instructions (genetic code). Remarkably, this idea anticipated by a few years the discovery of the deoxyribonucleic acid (DNA) helices (Watson and Crick, 1956), now viewed as the tapes of real self-reproducing systems.
Von Neumann advanced also the hypothesis that a universal constructor capable of generating a machine much more complex than itself must also include a universal computer, i.e., a universal Turing machine (otherwise, the tape would be too large). The idea that fertilized eggs capable of generating complex multicellular embryos should possess computational capabilities is gaining attention in genetic biology.
For many years after the publication of von Neumann's drafts on cellular automata, the general opinion was that the self-reproducing automata designed by von Neumann are too complicated to be computationally implemented. This opinion survived until the development of modern powerful computers and the first demonstration of the program here presented.
The self-reproducing automata implementable by the program here presented would take a very long time to self-reproduce in practice. Actually, the so-called self-reproducing automata described in the JVN-automaton gallery and the EVN-automaton gallery should be better characterized as universal constructors that, once started up by a suitable activation pulse, do the following operations:
ii) Create the cell assembly encoded by the tape in the proximity of the tape origin.
iii) Release an activation pulse to the cell assembly just created. This operation is necessary for the subsequent self-reproduction of the copied automaton.
Thus, were the tape coding for the automaton itself (with all cell states in their quiescent modes), the automaton would create a copy of itself and, at the end of the construction process, the copy would be in turn activated so as to produce another copy, and so on.
The self-reproducing automaton implemented by Pesavento and the Author in 1994 is now available with slight modifications in the EVN folder under the name SR_CBC_AP_OLD.EVN. Unfortunately, it suffers from two unpleasant drawbacks: it does not return to the initial state after accomplishing its job and, if the cell assembly encoded by the tape is the automaton itself, it does not position the cell assembly in a way suitable for a second replication. The EVN-folder gallery, however, contains examples of self-reproducing automata that do not suffer from these drawbacks, namely SR_CBC_AP.EVN and the SR_CCN_AP.EVN, which differ in their tape coding modes.
WJVN.EXE provides the tools for creating and processing von Neumann's automata and many other machines in two main environments or program modes. Actually, it deals with two different sorts of cellular automata: the automata with 29 cell-states as originally planned by von Neumann himself in the early 1950's (JVN automata) and an extension of these with 32 cell-states, called EVN automata.
EVN automata differ from JVN automata by the addition of three new excitation levels of the so-called confluent state and by an adequate extension of the transition rules. More specifically, the confluent state, which in the JVN environment plays the role of both the logical AND and a bifurcation unit, in the EVN environment plays also that of crossing unit, which allows the activation trains to propagate across orthogonal transmission lines. Despite the modest change of the original transition rules, this extension simplifies greatly the implementation of complicated automata. In Author's opinion, without an extension of this sort the implementation of self-reproducing automata, although possible in principle, would be prohibitively difficult.
Unfortunately, JVN and EVN automata as models of living systems have two capital defects: they are strictly deterministic and highly vulnerable. Their strict determinism prevents them from evolving creatively, as all living creatures instead do. Moreover, because of their total lack of redundancy, any small error in their structure results into a complete loss of functionality. Their importance for biology is mainly in that they help us to understand certain logical and algorithmic aspects of self-reproduction.