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:

  1. Translate a rule number into a working local update.
  2. Simulate repeated synchronous updates on a one-dimensional lattice.
  3. Interpret how rule choice and initial condition shape the global pattern.

Required

  1. Implement apply_rule() and a reusable simulate_ca() function.
  2. Reproduce a space-time diagram for Rule 30 starting from a single occupied cell at the center.
  3. Compare at least three rules from the set {30, 90, 110, 184} using the same initial condition.
  4. For one chosen rule, compare two different initial conditions, one single-seed row and one random row.
  5. 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:

  1. Which rule in your experiments produced the most regular pattern?
  2. Which rule was most sensitive to the initial condition?
  3. 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.