CELLULAR AUTOMATA

Automata
Theory
Excitable
Medium
Rule 30
Hashlife
Garden of
Eden Pattern
 

Hashlife

Hashlife is an algorithm for computing the long-term fate of a given starting configuration in Conway's Game of Life. The algorithm was invented by Bill Gosper in the early 1980s while he was engaged in research at the Xerox Palo Alto research center. Hashlife was originally implemented on Symbolics Lisp machines with the aid of the Flavors extension.

As the name suggests, it uses hash tables to store the field of the game. Since hashes have the property that a number of keys can point to the same value, each distinct area of a Game of Life is treated as a pattern (subpattern) itself, and stored only once in the array even if it appears many times in the Game (like an empty square would); this is because of the properties of hash tables- the same pattern will hash down to the same key, which will point to the precomputed results. Only entries which change need ever actually be calculated by the algorithm. All other entries are assumed to be static or are examined rarely, so different portions of the pattern can be in radically different time periods (an empty portion of the field can race forward billions of generations quickly since it is static and unchanging, whereas at the same time a complex and cell-saturated portion of that same field might only have advanced a few thousand generations since so much of it needs to be calculated and re-calculated); hence, this algorithm is generally allowed to run and not used to display the cells. This algorithm uses a large amount of memory to store the entire Game in the array.