Cellular Automata FRES 1010 Eileen Kraemer Fall 2005
What is a cellular automaton? a collection of "colored" cells on a grid of specified shape that evolves through a number of discrete time steps according to a set of rules based on the states of neighboring cells.
Why do we care about CA? Can be used to model simple individual behaviors Complex group behaviors can emerge from these simple individual behaviors
Elementary Cellular Automaton The simplest cellular automaton Consists of only black and white squares Each column represents a possible state of one square and its left and right neighbors. Let 1 = Black and 0=White = 250
Rules… There are 256 ‘elementary’ rules that range from complete white (rules 0 and 128) and complete black (rule 255)
Rule 250 Start with single black square in center of white row; repeat for 100 steps
Totalistic Cellular Automaton Three colors: black, white and grey Rule is to take the average color of neighboring cells
Mobile Automata Differ from cellular automata in that instead of updating all cells in parallel at each step, they have just a single “active cell” that gets updated at each step, and then moves to a new cell. Black dot indicates location of active cell.
Mobile Automata
Generalized Mobile Automata Allow more than one cell to be active at a time
Turing Machines Consist of: a line of cells (“the tape”) A single active cell (“the head”), which can have several possible states Rule can depend on state of the head and on the color of the cell at the position of the head, but not on the colors of any neighboring cells
Turing machines Direction of arrows indicates state of head
Execution of a Turing machine
Turing machine
Substitution Systems For CA, MA, TMs – a fixed array of cells In substitution systems the number of elements can change
Substitution Systems
In a substitution system the number of elements can grow very rapidly To keep the visualization within boundaries, may split elements into parts rather than increasing number of elements Most systems depend only on a single element Complexity can be introduce by including neighboring cells as influence for the change of the patterns
Substitution Systems
Can also model this as a branching tree
SS – additional complexity if neighbors affect outcome
Substitution Systems
Now if you add the ability to add and destroy elements based on the rules, you have the ability to destroy the pattern completely But some rules will find a balance
Sequential Substitution Systems Works on strings of elements rather than a single element Previous substitution system discussed replaced each element with a new sequence of elements Sequential substitution systems perform replacements for multiple elements based on the patterns defined in the rule set Similar to the functionality of a search-and- replace function in a text editor
Sequential substitution system
Sequential Substitution Systems
Tag Systems A sequence of elements of two colors:black and white. The rule is : a fixed number of elements are removed from the beginning depending on the colors of the removed elements, a particular block of elements is attached at the end
Tag Systems
Turns out that if only one element is chosen for removal and addition, the behavior of the system is similar to the neighbor-independent substitution system producing repetitive or nested forms If two elements are removed then the behavior exhibits complexity
Cyclic Tag Systems Has phases (cycles) At each phase, only a certain block can be added
Cyclic Tag Systems
Register Machines very simplified versions of present-day computers Simplest form of consists of two registers each storing a number of any size and just two kinds of instructions: “increments” and “decrement-jumps”
Register Machine Instructions Increment instructions increase by one the number stored in a particular register Decrement-jump instructions do two things: decrease by one the number in a particular register jump to some specified other point in the program and begin execution from there BUT – if register is zero, don’t jump or decrement, just go on to the next instruction
Register Machines
Symbolic Systems Apply transformations to symbolic expressions Example, find expressions of the form e[x_][y_] Replace with x[x[y]] Scan once from left to right, apply rule wherever possible without overlapping
Symbolic Systems
Wolfram’s conclusions.. Cellular automata have many special features and exhibit complex behavior from simple rules. He removed special features to show that they were not necessary to produce complex behavior. In most systems, a “complexity threshhold” exists; that threshold may be simpler than previously thought. Making the rules more complex than the threshold may not increase the chance for complexity.