Page 1 of 4 You may know about Cellular Automata. If not you may have come across them in John Conway's game of Life, but why is this whole subject so interesting? We take a look at not only what a CA is, but why it is so important.
A Programmers Guide To Theory First Draft
There is a more recent version of this:
Now available as a paperback and ebook from Amazon.
Contents
 What Is Computable?
 Finite State Machines
 What is a Turing Machine?
 Computational Complexity
 Noncomputable numbers
 The Transfinite
 Axiom Of Choice
 Lambda Calculus
 Grammar and Torture
 Reverse Polish Notation  RPN
 Introduction to Boolean Logic
 Confronting The Unprovable  Gödel And All That
 The Programmer's Guide to Fractals
 The Programmer's Guide to Chaos*
 Prime Numbers And Primality Testing
 Cellular Automata  The How and Why
 Information Theory
 Coding Theory
 Kolmogorov Complexity
*To be revised
The origins of CAs are difficult to pin down, but back in the early 1950s Stanislaw Ulam, a mathematician at Los Alamos, used the first digital computers to play with patterns that evolved with time. He called them “recursively defined geometry”.
The first true CAs were probably invented by Ulam’s close friend, the wellknown mathematician and computer scientist Johnny Von Neumann. Ulam suggested that Von Neumann try to construct rulebased machines in an artificial universe that would help model self reproduction. He chose a chessboard universe in which each square represents a cell that can obey a set of rules. This was the first cellular automaton.
A Cellular Automaton is a very simple form of computation. If you look at the world around you what you see are things that have a position and a state. A biological cell sits at a particular spot in a clump of other cells and its state is that it is either alive or dead. You can think up other examples that are less biological, but it is this one that really drives the CA idea.
So we have something, a cell, that has a location and a state.
The key next step is to ask what is it that affects the cell's state?
In most cases you would assume that the cell's state is influenced by its local neighbourhood. What matters is what is going on where the cell is not something happening miles away.
This is the assumption of localization and it is inherent in most of classical physics. A wave, say, is described by a differential equation which relates what happens at a point to what happens in an infinitesimal region around the point.
You might want to say that the local assumption is too restrictive in that it doesn't allow for long range interactions but in the physical world long range interactions occur by an influence that moves from pointtopoint. Long range interactions occur by propagation of pulses and waves which depend only on local interactions.
The final CA assumption is that of locality of influence. A cell's state is only affected by the local conditions. In most cases we reduce this even further to say that a cell's state is only influenced by its current state and the states of neighboring cells.
The idea is that you start of with an initial colony of cells, each one with an initial state, and then you allow the colony to develop. This is usually done using discrete time steps  you can run CAs in continuous time, but this is more difficult.
At time t you have the positions and states of all the cells; you then apply a rule that gives the state of each cell according to its current state and the state of neighbouring cells. At time t+1 the cells all change their state according to the same rule.
Clearly to define a CA you have to specify the possible states, the initial arrangement of cells and the update rule.
So what do you hope this sort of computation might be good for?
You can think of CAs as the digital version of classical differential equations which are used to describe so much of physics. However CAs aren't as easy to analyze as you might expect. The nature of the rule used in a typical CA makes it very difficult to predict what will happen given any initial condition.
For example, you might like to ask if a given set of cells will oscillate, die away or grow without bound  you might like to ask, but finding an answer is much more difficult. CAs are intriguing because they are unpredictable and mostly unfathomable.
CAs are examples of how local rules can result in globally organized behaviour  or at least what looks like globally organized behaviour.
