Upload
peter-chandler
View
218
Download
0
Tags:
Embed Size (px)
Citation preview
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 128 64 32 16 8 4 2 1 1 1 1 1 1 0 1 0 128+ 64 + 32 +16 + 8 + 2 = 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
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
Substitution Systems
Can also model this as a branching tree
SS – additional complexity if neighbors affect outcome
Substitution Systems
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
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
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.