Game of Comparch

An exploration and implementation of cellular automata and computing for Olin College Computer Architecture FA18.

View the Project on GitHub anushadatar/game-of-comparch

Overview
Mathematical Representations and Computational Implications of Cellular Automata
Cellular Automata as a Computing Platform
Conway's Game of Life
Our Implementation
References

Conway’s Game of Life

Overview

Conway’s Game of Life is a well-known simple cellular automaton. Its behavior is quite straightforward:

Survival: If the cell is alive and two or three of its neighbors are alive, the cell remains alive

Birth: If the cell is dead and exactly three of its neighbors are alive, the cell becomes alive

Death: If the cell is alive and fewer than two or more than three of its neighbors are alive, the cell dies

Patterns and Properties

From these rules come a large number of patterns common to the game. These patterns include

Small structures can be combined to form larger and more computationally interesting structures. The most obvious example of this is the creation of logic gates. Below we can see examples of an AND, OR, and NOT gate, respectively.

AND

OR

NOT

This is incredibly significant – knowing that we can create any logic function using the Game of Life leads us to the conclusion that we could create full computers using only the Game of Life as a platform. In fact, this has been proven. Conway and a few others proved shortly after the creation of the Game of Life that it is Turing-complete and can theoretically be used to compute anything that is computable. The first Game of Life Turing machine was created by Paul Rendell and can duplicate a pattern of ones that it is fed.

TuringMachine

Further work has even shown that full CPUs can be constructed entirely using the Game of Life.