
to the left with different velocities. The interactions
between different particles may be solitonic (the
particles emerge unchanged but shifted) or annihila-
tion–creation phenomena can occur (see Figures 18a–d).
Applications of CAs
CAs as Universal Constructors and
Turing Machines
In the 1950s, von Neumann, who contributed to the
development of the first computer (ENIAC), decided
to work out a mathematical theory of automata.
Such a theory was finalized to give an answer to the
following question: is it possible to build an
automaton such that it allows universal computa-
tion (i.e., it embodies a universal Turing machine)
and, moreover, it is able to build (in order of
decreasing generality)
1. an arbitrary automata (universal constructor);
2. a copy of itself (self-reproducing); and
3. an automaton that is itself a universal Turing
machine (constructor)?
The last question von Neumann had intention to
address was if in the process of automata self-
reproduction (if possible) a process of evolution
could take place, that is, if a simpler automaton
could generate a more complex one.
In the beginning, the idea of von Neumann was to
describe, using mathematical axioms, an automaton
moving inside a warehouse and selecting various
elementary spare parts (e.g., ‘ ‘muscles,’’ switches, rigid
girders) and then assembling them into a new auto-
maton. While this original idea was very realistic, it was
also very difficult to pursue, so that von Neumann,
following a suggestion by Ulam, decided to consider his
questions in the more abstract framework of CAs.
The particular CA he considered is an infinite
square CA with 29 possible states. The transition rule
is dependent upon the cell to update and its north,
east, south, and west neighbor cell (the von Neumann
neighborhood). Among the 29 possible states there is
one state that is ‘‘quiescent’’ (the vacuum state).
von Neumann proved the existence of a configura-
tion of 50 000 cells immersed in a sea of quiescent
states that embodies a universal Turing machine and
that is a universal constructor. An infinite one-
dimensional ‘‘tape’’ is used to store a description of
the automaton to build. The universal constructor
reads the description on the tape, develops a
‘‘constructing arm’’ that builds the configuration
described on the tape in an unoccupied part of the
cellular space, makes a copy of the tape and finally
attaches it to the newly built automaton and retracts
the constructing arm. When on the tape, it stores a
description of the universal constructor itself, then it
self-reproduces. The total size of the self-reproducing
automaton amounts to 200 000 cells. (Some com-
puter simulations of von Neumann self-reproducing
automaton are available on the web.)
Since von Neumann’s CA is a very complex one,
it led researchers to think that a CA able to simulate
a universal Turing machine should also be quite
complex. The perspective changed completely after
the introduction of CA Life. Conway was looking
for a simple CA with a possible rich dynami cs;
however, it was subsequently realized that Life was
much more complicated that anyone could have
thought. Finally, thanks to the development of faster
computers that allowed visualization of the evolu-
tion of quite large populations and through the
contribution of a large number of researchers, it was
proved that a universal Turing machine could be
embedded in Life.
The discovery that even a simple CA such as Life
could incorporate a universal Turing machine led to
the question whether it could be possible to build a
universal Turing machine inside a simple one-
dimensional CA. This is indeed the case: up to
now, the simplest CA capable of universal computa-
tion is the W110 CA (see Figure 10), as proved
recently by Cook after a conje cture formulated by
Wolfram in 1985.
CAs for Computer Simulations
One of the major applications of CAs is the
computer simulation of various dynamical pro-
cesses. Even if CAs were not invented for this
purpose, they possess peculiarities that make them
particularly suitable for this task. The main advan-
tage of using a CA for a dynamical simulation is due
to their completely discrete nature that allows exact
simulations on a computer. Thus, any spurious
effect due to rounding errors is ruled out. Another
advantage is that the EL of a CA can be seen as a
function between finite sets. For this reason, one can
specify the EL through a ‘‘lookup table’’ (see [2]):
then when running the simulations, the computer
has only to access the table instead of computing the
function every time, shortening considerably the
computation time. Another great advantage of CAs
in computer simulations is that, for their very nature
(at least for local EL), they can be implemented on
parallel machines. These two concepts are at the
basis of dedicated computers for CAs simulations
developed by Toffoli, Margolus, and co-workers
(CAM series). The possibility to use efficiently
parallel computers for CA simulation could prove
464 Cellular Automata