Cellular automata is a discrete model studied in complexity science. Basically, there is a regular grid of cells. Each cell is in one of a finite number of states. For Conway’s life game, there are two states. A cell can be either dead or alive. We have to initialize the grid. It is like solving a differential equation numerically: we need an initial solution. So starting from the initial state, the algorithm generates newer and newer generations.
Conway’s life game
Conway’s life game is the most famous cellular automaton. The main feature of this game is that it has very simple rules. There are just four of them:
- a given cell with less than 2 live neighbors dies – “underpopulation”
- any live cell with more than 3 live neighbors dies – “overpopulation”
- a given live cell with exactly 2 or 3 live neighbors lives on to the next generation
- any dead cell with exactly 3 live neighbors becomes a live cell
What is the conclusion of life game? The conclusion is that with extremely simple rules, rather complex structures and patterns can evolve. Fractals are very similar in this aspect. Again, very simple rules result in very complex self-similar patterns. These are the fractals. These patterns are not programmed into the simple rules we discussed above. Yet, these rules give rise to higher-level patterns or coordinated behavior.
If you want to take a look at the concrete implementation of Conway’s life game in Java, here is the source code.