Game of Life

From Esolang
Jump to: navigation, search
This article is a stub, which means that it is not detailed enough and needs to be expanded. Please help us by adding some more information.

Conway's Game of Life (often simply Life) is a cellular automaton invented by John Horton Conway in 1970. It is notable for its complex and diverse emergent behavior compared to other cellular automata, despite the simplicity of its definition, and the relative ease in which powerful artificial constructions (such as Turing machines) can be constructed within it.

The state (pattern) of game of life is a square grid filling the whole plane, in which each cell of the grid is either dead or alive. Each cell is considered to have eight neighbors, which are the cells a chess king's move away (this is called Moore neighborhood). The state is updated at each clock cycle (generation), in which the state of each cell is replaced simultaneously. A cell will be alive in the next clock cycle iff it is alive and has exactly 2 or 3 alive neighbors or dead and has exactly 3 neighbors.

It is common to consider only finite states, which are states in which all but a finite number of cells are dead. (It is easy to see that Game of Life started in a finite state will always be in a finite state.) Game of Life was proven Turing-complete starting from finite configurations by John H. Conway in 1982.

Game of Life is universal (the cellular automaton analogue of Turing-completeness), and was proven to have a self-replicating pattern in 2010 with the discovery of the Gemini pattern. The fact that this pattern eluded construction for so long is surprising (although that one was incredibly likely to exist had been known for decades), as many other cellular automata of similar complexity have very trivial self-replicators; Gemini, on the other hand, is incredibly complex (with a bounding box of 4217807 by 4220191 cells).

Game of Life still has a large active research communinty (as of 2018), and LifeWiki offers a glimpse into some of the most attractive results. The size of the bounding box and the number of cells alive in the starting state are usually considered useful measures of the size of a program in Game of Life, although technically the latter is flawed because a Life program can be encoded in the positions of living cells; a universal construction for any glider-constructible object is known starting from 35 gliders + one block (144 living cells), with the object to construct encoded in the position of the gliders (and there are known Turing-complete glider-constructible programs). Research is active in both finding small programs with interesting behavior, and constructing gigantic machines (with bounding boxes whose sides are millions) as the first example to prove certain behaviors possible.

External resources