Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

Introduction to Cellular Automata

Seminar “Organic Computing”


SS2006

Harald Niesche

haraldn@cs.tu-berlin.de

Abstract. Cellular Automata, or Cellular Spaces as they were called


then, were invented by John von Neumann half a century ago. They were
meant to be a model for self-replicating organisms, and some people think
they are a good model for how the universe works. Cellular automata
are used for many things, among them simulation of particle-based phe-
nomena, formulation of image processing algorithms, circuit-diagnosis in
VLSI design and cryptography.
Although interesting things can be done with them, there are no simple
recipes, or design methodologies.

1 Introduction
This paper should give a short overview of what cellular automata are, how they
work and what they can be used for.
The next section starts with the history, how cellular automata were invented
and briefly discusses some of their properties. Following that, in Sect. 3, some
applications are discussed. In the last section variations and extensions to the
standard model are described and it is argued whether the extended models
should be called cellular automata or not.
The rules for Conway’s Game of Life and a formal definition of cellular au-
tomata are presented in the appendix.

1.1 The Basic Idea


What are cellular automata? The word “cellular” here means “consisting of
cells” – a cellular automaton is made up of cells. Each of those cells contains
an “automaton”, a finite state machine. The resulting construct is a space filled
with cells, each of those cells containing a finite state machine. We say “a cell
has a state”, meaning the state, the cell’s finite state machine is in. Usually the
space is divided into a grid or lattice structure, a 2-dimensional cellular space
looks like a piece of graphpaper – an infinitely large piece of graphpaper. Cellular
spaces can have any number of dimensions, the most commonly used ones have
1, 2 or 3 dimensions (see Fig. 1).
In the cellular space, all the cells go from their current state to some next
state according to the “local rule”, the switching rule of their state machine.
Fig. 1. Some Cellular Spaces in one, two and three dimensions.
Note how cells always look like little white squares.

The input for the local rule is the neighborhood of the cell, which is usually a
small number of cells surrounding the cell. All the cells use the same local rule.
All the cells switch from their current state to the next state at the same time,
the space is synchronous.
These simple rules allow complex behaviour to emerge; the resulting com-
plexity is what makes cellular automata so interesting. Certain cellular automata
reduce entropy and create complex ordered systems.
Some researchers have argued that the “apparent self-organization of CAs is
an artifact of the synchronization of clocks” ([1], citing [2]).

1.2 Some Terms

The following terms will be used in the remainder of this paper.

Cell A single element of a cellular space, the smallest unit of the space.
Cellular Space A lattice space made up of cells, each of which is in one of
several predefined states. This is what most people nowadays call a Cellular
Automaton, but I find the distinction useful.
Cellular Automaton A structure built in a cellular space, an automaton built
out of cells. The term is often used as a synonym for Cellular Space, but to
be clearer, I’ll try not use it that way. “CA” is an abbreviation that is often
used for these terms.
Cellular Automata Plural of Cellular Automaton, sometimes used instead of
the singular form.
Local Rule The rule governing the transition between states. The definition
of a cell’s finite state machine. It’s called “local”, because it only uses the
Neighborhood as it’s input.
Neighborhood The cells surrounding a cell, that influence it’s next state. The
choice of neighborhood influences the behaviour of the cellular space.
Configuration A snapshot of all cell states, representing a single point in time.
When we talk about a configuration, it’s usually the starting point or a result
of running a cellular space.
Generation One step in the evolution of a cellular space, an intermediate con-
figuration. Passage of time in a cellular space is measured in generations.

The distinction between Cellular Space and Cellular Automaton seems less
interesting when one views the contents (the original meaning of “cellular au-
tomata”) of the space as something that evolves, more or less by accident. As
you will see, when the terms were created, the contents of the space were de-
signed for a certain purpose, while nowadays most researchers just gather up
things that develop all by themselves in the cellular space. At least, that’s my
best guess why the terms have converged to the point where the term “Cellular
Space” is hardly ever used.
For definitions of what these terms mean exactly, see Appendix B

2 History

In the 1950s, John von Neumann tried to construct self-replicating machines.


He wanted to find the simplest machines that could build copies of themself,
but to be useful, they also had to be universal computers. According to [3]
von Neumann started out working with differential equations until his colleague
Stanislaw Ulam suggested a different model, similar to the lattice spaces Ulam
used to study crystals, which lead to a significant simplification.

2.1 Von Neumann’s Automata

Von Neumann realized that a 2-dimensional model would be sufficient. In his


2-dimensional model, a cellular space was formed of cells that could be in one
of several possible states. Each cell would change it’s state according to a local
rule that calculated the new state as a function of the four nearest neighboring
cells (the orthogonal neighbors, this type of neighborhood is now called a “von
Neumann” neighborhood).
Von Neumann called his creation a “cellular space” and the constructions
in that space were the “cellular automata”. The cells in von Neumann’s space
could be in one of 29 states and there was a complicated set of rules for the
movement between these states. For a detailed explanation of these states see
e.g. [4].
But self-replication was only half of the problem, there were actually two
properties von Neumann was looking for: universal computation and universal
construction. The first was to make sure that the automata he constructed were
not trivial, the second was the basis for self-replication.
Universal computation meant that constructions in the cellular space were
capable of computing any computable function. The simplest way of proving this
property was showing that a Turing machine can be built in the cellular space.
Universal construction meant that an automaton could be built that could
create other constructions in the cellular space. A programmable construction
machine was created by coupling a Turing machine with a universal constructor.
Although von Neumann developed the core of his self-replicating machines,
he didn’t finish the work. The complete model was published after his death in
1966 by Arthur W. Burks.
Following this publication, a small number of other works were published,
including a monograph by E. F. Codd.

2.2 Codd’s Space


In his Monograph [5], Codd summarizes his research into the requirements for
universal computation and construction. He shows that there exists no cellular
space with 2 states and a local rule using the von Neumann neighborhood that
exhibits universality.
He then proceeds to develop a cellular space that does exhibit universality
but has simpler rules than von Neumann’s space. He shows how both universal
computation and universal construction can be realized in his simpler space.
Another first is the fact that he tries out his cellular automata “on-line”, ie.
on a computer terminal as opposed to having simulations run in batch mode.
In a section titled “Why On-Line?” he argues “Rapid interaction between man
and machine tends to develop the intuition and perceptivity of the experimenter.
The immediacy of the machine’s response has the effect of maintaining a high
level of cerebral activity in the experimenter.” – he may have been the first to
experience the fascination of cellular automata first hand!
Codd was not the first to create a simpler cellular space, though. According
to Sarkar [6], in 1966 Arbib [7] created self-replicating universal computers in a
space with 4 different states and von Neumann neighborhood.

2.3 Konrad Zuse’s “Rechnender Raum”


Konrad Zuse described in an article [8] in 1967 and two years later in a book [9]
how the whole of space might be in reality a cellular space of the kind von Neu-
mann described. He called this space “Computing Space” (“Rechnender Raum”
in german).
The idea was later picked up by both Edward Fredkin [10] and Stephen
Wolfram. Compelling as the idea may be, there are no practical applications
(yet).

2.4 Conway’s Game of Life


Short after Codd’s experiments, the british mathematician John Horton Con-
way developed another cellular space that he called “Game of Life” ([3, p. 877],
[6], [11]). The Game of Life was a breakthrough because it is one of the sim-
plest cellular spaces to exhibit universal computation and universal construction,
although that was not known when the Game of Life was first published.
Martin Gardner wrote about the Game of Life in his column in Scientific
American and it became very popular to run simulations of it on the minicom-
puters of the time.
Although Conway constructed the rules for his cellular space in a way that
should allow for complex interaction, the constructions that are possible in this
space were discovered after the rules for the space had been set. In contrast, most
of the patterns used by Codd and von Neumann to construct their automata
were developed at the same time as the rules governing their spaces, the rules are
complex and it seems clear that they were crafted specifically to enable certain
constructions. The rules for Conway’s Game of Life are actually very different
from the ones von Neumann and Codd used – they are totalistic, which means
that only the number of neighbors that are in a certain state is important, their
positions are not taken into account. In Codd’s and von Neumann’s spaces, most
of the rules had directional components – only neighbors in certain positions are
considered in each state. This difference means that Conway’s rules are much
simpler than Codd’s and von Neumann’s. An important property of totalistic
rule-sets is that they are completely symmetric if the neighborhood is.
Around this time a trend started to call the cellular spaces “cellular au-
tomata”, the former distinction blurring, possibly because no one thought of the
gliders and guns in Conway’s Game of Life as “automata”, they seemed more
like multi-celled organisms that sprang to life in this foreign universe.

2.5 Wolfram’s Surveys of Cellular Space

On a quest to figure out where the complexity in nature comes from, Stephen
Wolfram encountered cellular automata (a colleague told him to have a look and
look he did). In constrast to Codd, who thought that “exhaustive search is out
of the question” ([5]), he wanted to do an exhaustive survey of possible cellular
automata (or spaces, as Codd would have called them). But there are too many
2-dimensional cellular spaces – so he simplified the model even further. Wolfram
looked at the simplest possible cellular automata: 1-dimensional automata with
two states and a three cell neighborhood. Since there are eight possible input
configurations of three cells with two possible states, there are 256 possible local
rules for these cellular automata.
Of these 256 possible rules, only 32 are legal under the restrictions he used
in his initial survey ([12]).
As a result of his experiments, he grouped the rules into three three classes –
the first class that evolves from arbitrary initial conditions into a static pattern,
like rules numbers 0 or 4; the second class that evolves into simple crystalline
structures and the third class that evolves into complex self-similar patterns.
Wolfram refined his classification scheme later into four classes, splitting the
class of rules with complex behaviour into complex and chaotic rules. The rules
with chaotic behaviour can be used to generate randomness, while some of the
rules with complex behaviour are computation universal.
Although he derived the classifications from experiments with very simple
cellular spaces, it is believed that the results can be generalized to other spaces.
Wolfram also proposed “harvesting” rules that can solve interesting problems,
so instead of writing programs to solve those programs, we’d generate all possible
programs and pick out the ones that work well. This is very similar to what
evolutionary programming does.

2.6 A New Kind of Science


Cellular automata demonstrated for Wolfram that complexity can arise from
very simple rules. He found evidence that several of the complex phenomena in
our environment are in fact caused by CA-like processes. Certain sea shells have
patterns that look just like the patterns generated by some of the more complex
rules. Inspired by this idea he wrote his book “A New Kind of Science” [3] which
he published in 2002 after about 20 years of research. 1
The “New Kind of Science” could be one of two things: In the world of
cellular automata, a lot is to be discovered. The science of the cellular spaces is
a new kind of science. The other interpretation is that this new kind of science
can explain the structure of our world (building on Zuse’s ideas) – that this new
kind of science might be able to provide us with the Grand Unified Theory that
Physicists have been trying to find for a long time now. Schmidhuber described
a program that computes all possible universes in [13].

2.7 Langton’s Artificial Life


At about the same time that Wolfram encountered cellular automata, the new
discipline of “Artificial Life” was invented.
Christopher Langton, improving on the ideas of Codd, invented another self-
replicating structure, the “Langton Loop” that built upon a similar (or the same)
cellular space as Codd’s constructions.2
Realizing that this structure had several properties of living organisms3 , he
coined the term “Artificial Life” to describe this kind of structure.
Langton expanded on Wolfram’s classification and defined the parameter λ
that measures the probability of a cell to stay “alive” – he worked with cellular
spaces that had 2 states, “dead” and “alive”. Rules with λ = 0 lead to immediate
death, these belong to Wolfram’s class 0. For rules with λ = 1, cells stay alive as
long as at least one neighbor is alive. Langton proposed that there is a relation
between a rule-set’s λ value and it’s Wolfram classification. He also postulated
that the most interesting rule-sets would be found on the boundaries between
the classes, the so-called “Edge of Chaos” [15].
Melanie Mitchell and James Crutchfield, who did a lot of work on evolution of
rule-sets for cellular spaces (e.g. [16]) argue that there was an error in the original
measurements and that the “Edge of Chaos” is an artefact of the evolution
techniques used in the experiments of Langton and Packard ([17]).
1
He claims that his company Mathematica was always meant as a vehicle to finance
this research.
2
This Loop is a small rectangular structure that has an outer hull containing a small
rotating program. The loop reproduces itself by building replicas of itself in all four
directions.
3
They were kind of autopoietic.[14]
2.8 Past, Present and Future: Some Conclusions
Cellular Automata (as everybody calls the cellular spaces now), continue to
fascinate and inspire researchers. We will see several examples for applications
of the CA model later on. It is still an open question whether we can classify
cellular spaces into 3, 4, 5 or more classes of similar behaviours and if that
classification will help us design rule-sets that will enable us to solve problems
using “cellular automata”.
As we shall see in Sect. 3 (Applications), the main role for the original model
of cellular spaces is to serve as an inspiration for algorithms that are highly
parallel.

3 Applications
Several applications have been proposed for cellular automata, ranging from se-
rious algorithmic applications (routing, pattern recognition) to the playful game
of life.
Two very interesting applications are simulation of particle systems and cryp-
tography, where the inherent parallelism can improve the runtime of algorithms
considerably.
But there is something else that drives applications: the ability to implement
models efficiently.

3.1 Efficient Implementation


What makes cellular automata such a compelling model is the close correspon-
dence to SIMD (single instruction, multiple data4 ) hardware. As described in
[4], it is possible to implement cellular automata on large SIMD arrays, leading
to very good performance in the simulation of cellular space. Modern comput-
ers have several SIMD units, starting in the lower end with AltiVec, 3Dnow!,
MMX and similar extensions directly inside the processor and ranging to in-
clude powerful hardware like the programmable pixel shaders in modern 3D
graphics cards.
Specialized hardware for cellular spaces has been built using FPGA (field pro-
grammable gate array) technology, de Garis and Korkin [18] and Peréz-Uribe and
Sanchez [19] describe implementations of neural networks as cellular automata
using programmable hardware.
Hartka [20] describes another implementation of cellular automata in FPGA
hardware, his goal is to optimize circuitry using cellular automata.
Although a gate array resembles a cellular space (they are usually rectangular
lattices of identical logic cells), these implementation do not use the primitive
logic cell directly to implement the CA cell. Most implementations don’t even
have a high degree of inherent parallelism.
4
This type of hardware processes several data items in parallel using the same program
instructions.
3.2 Particle Simulations

In [21] Burstedde et al. describe the simulation of pedestrians using cellular


automata. Their model is non-deterministic, simulated pedestrians move with a
certain probability to another cell. Their model correctly models several aspect
of pedestrian behaviour, like lane separation. The model can be used to optimize
buildings for faster evacuation.

3.3 Image Processing

In order to support collaboration between robots and humans, a novel approach


at object recognition is described by Fey and Schmidt in [22], where they have
a cellular space overlaid on an image sensor. The image sensor can influence
the state of the cell and the local rule is a rather large program (the cells are
called “processing element” and contain a small processor), which results in the
exchange of information packets which are called “Marching Pixels”.
The state of a cell is a combination of the sum of all marching pixels having
passed through that cell, some properties of the pixel itself and the marching
pixel passing through right now, if any.
Fey and Schmidt demonstrate (using a simulation, no actual hardware had
been built), that their chip will be able to process a single image of 640x480
pixels in 10 milliseconds, extracting the positions and types of simple geometric
shapes in images taken.

3.4 Pattern Classification

The general principle of operation for pattern classification systems using cellular
automata is called “multiple attractor cellular automaton”. An attractor in a
cellular space is an end configuration that is reached from several different initial
configuration after some finite number of generations.
Wuensche has mapped out the attractor basins of many one-dimensional
cellular spaces in [23], the most common type of cellular space seems to have
not several separate attractor states but a single loop of states that form an
attractor – for classification purposes these can’t be used. What is needed is a
cellular space that converges on one of several attractor configuration depending
on the input configuration.
Mitchel and Crutchfield [16] genetically evolved local rules for r = 3 1-
dimensional cellular spaces / cellular automata to solve the p=1/2 classification
problem (deciding whether the amount of ones in a configuration is about one
half of all the cells). Unfortunately, the problem is hard for a cellular automaton
and the resulting automata were not very good at solving this problem. Others
have used evolutionary algorithms to evolve “hybrid CA” (with inhomogenous
cells) to solve the classification problem, reportedly with better success [1].
Pattern classification schemes have been used for circuit diagnosis and BIST
(built-in self test) circuitry in VLSI (very large scale integration) chip design.5
Maji et.al. describe this in [24], more on the subject can be found at Maji’s web-
page [25] or Ganguly’s webpage [26]. Maji and Ganguly also use chaotic cellular
spaces to generate random numbers as stimuli for their diagnostic circuitry.

3.5 Random Number Generation, Cryptography


Using 1-dimensional finite cellular spaces from Wolfram’s “chaotic” class as a
replacement for linear feedback shift registers6 is very common in VLSI related
CA research. The advantage of cellular spaces seems to be that routing is sim-
plified because there is only local interaction between cells (in a linear feedback
shift register longer tracks need to be laid down).
Again, Wuensche’s work on the attractor basins [23] comes in handy here:
a cellular space that has a small attractor is unusable as a random number
generator of for cryptography – for these purposes we need cellular spaces that
can reach a large number of their possible states from any input state. (I believe
this means the whole graph needs to be strongly connected.)

3.6 Art: Computer Generated Images and Music


If cellular automata can create randomness, then they can certainly be used to
drive generation of images and music.
The visualization of different aspects of cellular automata (the space’s con-
figuration itself, evolution of a space’s configuration etc.) usually ends up aes-
thetically pleasing. There are lots of examples, e.g. [23] or [3].
Generation of music seems to be more involved, but Wolfram offers “Wol-
fram Tones” [27] for sale, these ringtones are generated on the fly using pseudo-
randomness from some cellular automaton.

3.7 Molecular Computing


In 1983 Stephen Wolfram wrote about cellular spaces “Their locality and sim-
plicity might ultimately permit their implementation at a molecular level.”.
Miller and Fredkin [28] have developed a model for a cellular space that has
a structure like the molecular structure of a salt crystal. They have two types of
nodes that are located alternating in a cubic 3-dimensional structure, just like
the N a+ and the Cl− ions in a salt crystal.
The rules for this cellular space support universal computation and they
believe it will be possible to show that it also supports universal construction.
5
The problem with highly integrated chips is that large parts of their circuitry are
inaccessible and can only be tested indirectly. Using Built-In SelfTest circuitry is
one way of alleviating this problem.
6
LFSRs are a very popular way of generating pseudo random numbers. They consist
of a shift-register and some feedback logic, hence the name. For a better description
see e.g. [?] or [?].
In short, they believe it would be possible to build computers using this if there
was a way to create this cellular space. They are actively researching physical
implementation of their model.
They demonstrate computation universality by showing how gliders can be
built in this space and what happens when these gliders collide.

4 Variations and Extensions

Here we describe some common variations and extensions of the original defi-
nition of “cellular space”. Most of these variations were already mentioned in
Sect. 3.

4.1 Variations

There are some variations to the standard model for cellular spaces that I can’t
cover in depth.

Finite vs. Infinite Spaces Throughout this paper, we have ignored the issue
of how large a cellular space is. Von Neumann imagined his spaces as infinite,
but in simulations it is often more practical to have a bounded space. Finite
cellular spaces can either have boundaries with special treatment for the cells
at those boundaries or they can be folded back into themselves. E.g. when the
left and right sides and the top and bottom sides of a rectangle are connected,
a torus results. The space is finite but has no borders.

Non-rectangular tilings Most cellular spaces are divided into rectangular


(or cubic) cells, but other tilings are possible (and follow logically from Codd’s
definition presented in Appendix B).
From the available literature, it is not completely clear if there are applica-
tions for non-rectangular tilings as the basis of cellular spaces – but the following
reasons are apparent:

– It’s nice because it extends the theory to be more complete.


– Non-rectangular tilings can fill non-euclidean spaces.
– Some underlying substrates favor non-rectangular tilings (like implementa-
tions on some crystal or chemical base).
– It allows for differently sized neighborhoods that still include all cells that
touch the center cell.

4.2 Extensions

Some changes to the standard model of cellular automata lead to radically dif-
ferent things that I think shouldn’t be called cellular automata (although they
usually are). Some of them are listed here.
Asynchronous operation One problem for hardware implementations of cel-
lular spaces is the synchronous operation that can limit the size of spaces that
can be simulated efficiently. Several approaches have been used to reduce the
problem. In an adaptation of the model for route-finding in a robotics applica-
tion ([29]) a fully asynchronous model was used with a set of rules that yield the
same results whether used with synchronous or asynchronous updating. Most
local rules behave differently when the updating strategy is changed, and most
emergent behaviour will not emerge when the cells are updated asynchronously
([1]).
A variation of asynchronous operation is the asynchronous block operation
– the cellular space is divided into large sub-spaces. Cells within the same sub-
space block are then updated synchronously while the communication between
the blocks is asynchronous. This organization would allow much larger cellular
spaces while avoiding the loss of self-organization or emergent behaviour.

Continuous state-space Replacing the discrete states of the finite state ma-
chine with a continuous representation of space and the transition rules by a
function, we get a very interesting construction that can simulate processes in
gases and fluids ([11]).
The resulting structure is often called a “Lattice Gas” or “Lattice Boltz-
mann”.
For some interesting uses see [30] or [31], the applet at [32] is probably also
made using this technique.

Non-homogenous spaces, “Hybrid Cellular Automata” It is hard to


design rules for homogenous cellular spaces that fulfill a certain purpose. The
rules that allow complexity to emerge are hard to control. Researchers have used
genetic algorithms to evolve cellular spaces that are good at certain tasks, but it
is far easier to design cellular spaces that have different rules for every cell ([1]).
The resulting cellular spaces are called “hybrid cellular automata” ([11]).
There are different types of these hybrid cellular automata:

– Different rules for every cell


– Different rules for different regions, e.g. in a finite space the cells at the
boundary might have specialized rules
– The rules could be determined according to some data external to the cellular
space

Another example for a hybrid CA is the “Salt” CA mentioned above – there


are two different rule sets and every other cell follows the other rule set.
Hybrid CA are especially useful in chip-design (VLSI) where some researchers
have genetically evolved hybrid CA to implement self test circuitry for chip
designs.
Non-Deterministic Rules Whenever a Cellular space is used to simulate par-
ticles or entities whose behaviour is not completely deterministic, researchers
often use a non-deterministic local rule where the next state is not only depen-
dent on the neighborhood but also on some random input. The next state is then
one of several possible states, each having an associated probability of entry.

5 Conclusion

The original model of cellular spaces as it was conceived by Stanislaw Ulam and
John von Neumann has been very successful. Not only did von Neumann succeed
in devising a self-replicating automaton in his cellular space, he also created a
whole new field of research.
There is an enormous amount of literature about cellular automata and the
model has been adapted for many areas of computer science, but real-world
applications don’t seem to exist, yet. Maybe we just don’t know about them – if
the chips in your computer used cellular automata for self-diagnosis, would you
know?

References

1. Sipper, M., Tomassini, M., Capcarrere, M.S.: Evolving asynchronous and scalable
non-uniform cellular automata. In Smith, G.D., Steele, N.C., Albrecht, R.F., eds.:
Proceedings of International Conference on Artificial Neural Networks and Genetic
Algorithms (ICANNGA97), Springer-Verlag (1997) pp. 66–70. Available from:
http://www.leitl.org/docs/icannga97.ps.gz
2. Ingerson, T.E., Buvel, R.L.: Structure in asynchronous cellular automata. Physica
D Nonlinear Phenomena 10 (1984) 59–68. doi:10.1016/0167-2789(84)90249-5
3. Wolfram, S.: A New Kind of Science. online edn. Wolfram Media (2002). Available
from: http://www.wolframscience.com/nksonline/toc.html
4. Signorini, J.: How a simd machine can implement a complex cellular automata? a
case study: von neumann’s 29-state cellular automaton. In: Supercomputing ’89:
Proceedings of the 1989 ACM/IEEE conference on Supercomputing, New York,
NY, USA, ACM Press (1989) 175–186. Available from: http://doi.acm.org/
10.1145/76263.76282 http://dx.doi.org/http://doi.acm.org/10.1145/76263.76282
doi:http://doi.acm.org/10.1145/76263.76282
5. Codd, E.F.: Cellular Automata. ACM Monograph Series. Academic Press, Inc.
New York and London (1968)
6. Sarkar, P.: A brief history of cellular automata. ACM Comput. Surv.
32(1) (2000) 80–107. Available from: http://doi.acm.org/10.1145/
349194.349202 http://dx.doi.org/http://doi.acm.org/10.1145/349194.349202
doi:http://doi.acm.org/10.1145/349194.349202
7. Arbib, M.A.: Simple self-reproducing universal automata. Information and Control
9(2) (1966) 177–189
8. Zuse, K.: Rechnender raum. Elektronische Datenverarbeitung 8 (1967) 336–344.
Available from: ftp://ftp.idsia.ch/pub/juergen/zuse67scan.pdf
9. Zuse, K.: Rechnender Raum. Vieweg Sohn (1969)
10. Fredkin, E.: Finite nature. online (1992). Available from: http://www.
digitalphilosophy.org/finite nature.htm [cited 2006-08-09]
11. Ganguly, N., Sikdar, B.K., Deutsch, A., Canright, G., Chaudhuri, P.P.: A survey
on cellular automata. Technical report, Centre for High Performance Computing,
Dresden University of Technology (2003). Available from: http://www.facweb.
iitkgp.ernet.in/∼niloy/PAPER/CAsurvey.pdf [cited 2006-08-13]
12. Wolfram, S.: Cellular automata as simple self-organizing systems. Caltech
preprint CALT-68-938 (1982). Available from: http://www.stephenwolfram.com/
publications/articles/ca/82-cellular/
13. Schmidhuber, J. Lecture Notes in Computer Science. In: A Computer Scientist’s
View of Life, the Universe, and Everything. Springer (1997) 201–208. Available
from: http://www.idsia.ch/∼juergen/everything/ [cited 2006-08-09]
14. Rath, O.: (Autopoiesis) Presentation given during the Seminar Organic Computing
at TU Berlin in the summer of 2006. Available from: http://kbs.cs.tu-berlin.
de/teaching/sose2006/oc/folien/AutopoiesisSlides.pdf
15. Eck, D.J. The edge of chaos [online, cited 2006-08-09]. Available from: http:
//math.hws.edu/xJava/CA/EdgeOfChaos.html
16. Crutchfield, J.P., Mitchell, M.: The evolution of emergent computation. Proceed-
ings of the National Academy of Sciences 92:23 (1995) 10742–10746. Available
from: http://www.santafe.edu/projects/evca/Papers/EvEmComp.html
17. Mitchell, M., Crutchfield, J.P., Peter T. Hraber, V..: Dynamics, computation,
and the ’edge of chaos’: A re-examination. In Cowan, G.A., Pines, D., Meltzer, D.,
eds.: Complexity: Metaphors, Models, and Reality. Volume 19 of Santa Fe Institute
Studies in the Sciences of Complexity, Proceedings., Addison-Wesley (1994) 497–
513
18. de Garis, H., Korkin, M.: The cam-brain machine (cbm) an fpga based hardware
tool which evolves a 1000 neuron net circuit module in seconds and updates a 75
million neuron artificial brain for real time robot control. Neurocomputing journal
(2002). Available from: http://www.cs.usu.edu/∼degaris/papers/evolnrlsys.
pdf [cited 2006-08-10]
19. Pérez-Uribe, A., Sanchez, E.: (Fpga implementation of an adaptable-size neural
network). Available from: citeseer.ist.psu.edu/116304.html
20. Hartka, T.R.: Cellular automata for structural optimization on recongfigurable
computers. Master’s thesis, Virginia Polytechnic Institute and State University
(2004)
21. Burstedde, C., Kirchner, A., Klauck, K., Schadschneider, A., Zittartz, J.: Cellular
automaton approach to pedestrian dynamics - applications (2001). Available from:
http://www.citebase.org/abstract?id=oai:arXiv.org:cond-mat/0112119
22. Fey, D., Schmidt, D.: Marching-pixels: A new organic computing paradigm for
smart sensor processor arrays. In: Proceedings ACM International Conference on
Computing Frontiers 2005, ACM (2005) 1–7
23. Wuensche, A., M.J.Lesser: ”The Global Dynamics of Cellular Automata; An Atlas
of Basin of Attraction Fields of One-Dimensional Cellular Automata”. Santa Fe
Institute Studies in the Sciences of Complexity. Addison-Wesley, Reading, MA
(1992). Available from: ftp://ftp.cogs.susx.ac.uk/pub/users/andywu/papers/
global dynamics of CA.pdf
24. Maji, P., Shaw, C., Ganguly, N., Sikdar, B.K., Chaudhuri, P.P.: Theory and appli-
cation of cellular automata for pattern classification. Fundam. Inf. 58(3-4) (2003)
321–354. Available from: http://www.facweb.iitkgp.ernet.in/∼niloy/PAPER/
MACAAPPLICATION.pdf [cited 2006-08-12]
25. Publication of pradipta maji [online]. Available from: http://www.isical.ac.in/
∼pmaji/paper.html

26. Publication, niloy [online]. Available from: http://www.facweb.iitkgp.ernet.


in/∼niloy/cuvi.html
27. How wolframtones works [online, cited 2006-08-12]. Available from: http://tones.
wolfram.com/about/how.html
28. Miller, D.B., Fredkin, E.: Two-state, reversible, universal cellular automata in
three dimensions. In: proceedings of ACM Computing Frontiers 2005 (CF’05).
(2005). arXiv:nlin.CG/0501022
29. Støy, K.: Using cellular automata and gradients to control self-reconfiguration.
Robotics and Autonomous Systems 54 (2006) 135–141 Special issue on the best
papers presented at IAS-8. Available from: http://www.mip.sdu.dk/∼kaspers/
papers/stoy ias8.pdf
30. Luebke, D., Harris, M., Krüger, J., Purcell, T., Govindaraju, N., Buck, I., Woolley,
C., Lefohn, A.: GPGPU: general purpose computation on graphics hardware. In:
SIGGRAPH ’04: Proceedings of the conference on SIGGRAPH 2004 course notes,
New York, NY, USA, ACM Press (2004). doi:10.1145/1103900.1103933
31. Luebke, D., Harris, M., Krüger, J., Purcell, T., Govindaraju, N., Buck, I., Woolley,
C., Lefohn, A.: GPGPU: general purpose computation on graphics hardware.
In: SIGGRAPH ’05: Proceedings of the conference on SIGGRAPH 2005 course
notes. (2005). Available from: http://www.gpgpu.org/s2005/FullCourseNotes.
pdf [cited 2006-08-08]
32. Cellular automata faq [online, cited 2006-08-08]. Available from: http://www.
cafaq.com
33. Eppstein, D.: Searching for spaceships. In Nowakowski, R.J., ed.: More Games of
No Chance. Number 42 in MSRI Publications. Cambridge Univ. Press (2002) 433–
453. Available from: http://www.msri.org/publications/books/Book42/files/
eppstein.pdf http://arxiv.org/abs/cs.AI/0004003 arXiv:cs.AI/0004003
34. Eppstein, D. Which ”life”-like systems have gliders? [online]. Available from:
http://www.ics.uci.edu/%7Eeppstein/ca
A Conway’s Game of Life
For the interested reader I present the rules and some interesting examples for
Conway’s Game of Life. This section is a variation on the introductory section
of my presentation.

A.1 Rules
The rules for the Game of Life are “totalistic”. That means, the new state of
a cell depends only on the number of neighbors which are in a certain state, it
does not depend on which neighbors are in a certain state.
In the case of the Game of Life, we have cells with two possible states (dead
and alive), that depend on a Moore neighborhood, which consists of the eight
cells surrounding the cell. The rules are called “Game of Life”, because they
are usually explained with the assumption that a cell symbolizes some living
organism that needs it’s neighbors to survive:
– Cells with less than two neighbors die of loneliness.
– Cells with two neighbors stay alive, if they already are alive.
– Cells with three neighbors become alive if they aren’t already. Alive cells
stay alive.
– Cells with more than three neighbors die of overcrowding.

Fig. 2. Rules for the Game of Life

Let’s have a look at some configurations in the cellular space of the Game of
Life.

A.2 Simple stable patterns


These patterns never change unless some glider crashes into them. Sometimes
they even survive crashes.

A.3 Dynamic patterns


The following patterns are not stable, but they are part of short loops of pattern
that always return to the original pattern. Some stay at the same place like the
blinker, some move through cellular space like the glider and other spaceships.
Fig. 3. Some very simple stable patterns.

The Blinker Probably the smallest pattern that can stay alive on its own –
the blinker consists of exactly three cells and alternates between two states.

Fig. 4. The two states of the blinker


Debris from collisions often contains these.

The Glider These Gliders are the simplest moving structures in the Game of
Life universe. There are larger structures that are usually called “spaceships”.

Fig. 5. A simple glider


This glider moves up and to the left one step every 4 iterations of the world.

For more structures like these see [33] and Eppstein’s website [34].

A.4 Some Examples


To illustrate the claim of emergent complexity in the game of life, we’ll look at
two examples.
While it is fascinating to watch the simple cross of 5 alive cells grow into 4
blinkers, it is quite amazing to see how one moved cell can create a pattern that
does not stop growing. There are three gliders in the right pattern (on the north,
east and south sides of the cloud) and if the space is allowed to evolve further
several more gliders are created until the core stabilizes into some blinkers and
several stable blocks surrounded by 6 gliders that continue moving away from
the core.
Fig. 6. Evolution of a very simple pattern
In seven steps from a simple cross to four blinkers (the eighth step is just the other
state of the blinkers.

Fig. 7. Evolution of another simple pattern


The pattern on the left evolves into the cloud on the right in 150 steps.

Fig. 8. The stable core evolved from the modified cross


B Formal Definition
For the formally inclined reader we present this formal definition of what a
cellular space is.
Codd defined a 2-dimensional cellular space in [5] like this:
Let I denote the set of integers. To obtain a cellular space we associate
with the set I × I:
1. The neighborhood function 7 g : I × I → 2I×I , defined by
g(α) = {α + δ1 , α + δ2 , . . . , α + δn }for allα ∈ I × I
where δi (i = 1,2,. . . ,n) ∈ I × I is fixed.
2. The finite automaton (V, v0 , f ) where V is the set of cellular states,
v0 is a distinguished element of V called the quiescent state, and f
is the local transition function from n-tuples of elements of V int V .
The function f is subject to the restriction,
f (v0 , v0 , . . . , v0 ) = v0 ,.
[. . . ] Each cell contains an identical copy of the finite automaton (V, v0 , f ),
and the state v t (α) of a cell α at time t is precisely the state of its associ-
ated automaton at time t. Each cell α is connected to the n neighboring
cells α + δ1 , α + δ2 , . . . , α + δn . [. . . ] we shall assume that one of the
neighbors of α is α itself and, in line with this assumption, we adopt the
convention that δ1 = 0.
The neighborhood state function is defined by
ht (α) = (v t (α), v t (α + δ2 ), . . . , v t (α + δn ))
Now we can relate the neighborhood state of a cell α at time t to the
cellular state of that cell at time t + 1 by
f (ht (α)) = v t+1 (α)
The cellular space he describes is 2-dimensional, a “plane assemblage of a
countable number of interconnected cells”, each cell having a cartesian coordi-
nate. Imagine graphpaper with colored cells, one color per state. White cells are
in the quiescent state.
The quiescent state is important, because the local rule is not allowed to
modify cells whose neighborhood consists entirely of cells in the quiescent state.
The definition can be extended to cover arbitrary numbers of dimensions if
the set I × I is replaced with I n , with n ≥ 1. If we drop the requirement for
cartesian coordinates, any regular tiling of the plane would fit the definition.
Although Codd’s definition of neighborhood allows arbitrary shapes, usually
the elements to include in the neighborhood are chosen by their distance from
the center cell. We can obtain the von Neumann neighborhood by only including
cells with a distance of 0 (the cell itself) and exactly 1
Some defining properties of a cellular space are:
Regularity The cellular space is sub-divided using a regular pattern, usually
into rectangular cells.
7
Intuitively, this function maps coordinates to sets of coordinates
Fig. 9. The von Neumann and the Moore neighborhood.
These two neighborhoods have r <= 1 and r < 2, respectively.

Uniformity All the cells work according to the same rules. There is only one
“local rule” or rule-set for all the cells in the space.
Local interaction A proper cellular space is much larger than the neighbor-
hoods influencing a single cell. This is an important property if cellular spaces
are used to parallelize a task.
Infinite Size Von Neumann and Codd assume their spaces to be infinite in size.
Conway, Wolfram and Langton have also looked at finite cellular spaces.
In Sect. 4 we looked at these properties and saw what happens when the
restrictions are lifted.

You might also like