380 likes | 685 Views
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. .
E N D
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.
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
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
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
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
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
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
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.