Assignment
Cellular Automata
You now have the full workflow for a one-dimensional cellular automaton: encode the rule, update the row synchronously, build a space-time diagram, and compare outcomes across experiments (Wolfram 1983).
You can follow the guide here:
1D Cellular Automata Rule Exploration
Summary of Goals
Your submission should show that you can do three things:
- Translate a rule number into a working local update.
- Simulate repeated synchronous updates on a one-dimensional lattice.
- Interpret how rule choice and initial condition shape the global pattern.
Required
- Implement
apply_rule()and a reusablesimulate_ca()function. - Reproduce a space-time diagram for Rule 30 starting from a single occupied cell at the center.
- Compare at least three rules from the set
{30, 90, 110, 184}using the same initial condition. - For one chosen rule, compare two different initial conditions, one single-seed row and one random row.
- Write a short discussion that explains which features are controlled by the rule and which features depend strongly on the initial condition.
Short Discussion
Include a brief paragraph that answers these questions:
- Which rule in your experiments produced the most regular pattern?
- Which rule was most sensitive to the initial condition?
- Did you find one rule that already looks like transport or directed motion? Explain why.
Optional Extensions
- Implement periodic boundary conditions and compare the result with fixed-zero edges.
- Add a stochastic flip rule, for example flipping a cell with small probability after each update.
- Track the density of occupied cells over time for one rule and interpret the trend.
- Add interactivity to the initial row, either in a notebook or with the reference script.
Tips for Success
- Test
apply_rule()on a short row before you run a long simulation. - Print the rule table once so you know which output corresponds to each neighborhood.
- Keep the first experiments small enough that you can inspect the pattern visually.
- Reuse the same plotting code when you compare rules so the differences are easier to see.
Tip
Reference code is available in amlab/cellular_automata/cellular.py.
Good luck.
References
Wolfram, Stephen. 1983. “Statistical Mechanics of Cellular Automata.” Reviews of Modern Physics 55 (3): 601–44. https://doi.org/10.1103/RevModPhys.55.601.