# Cellular automaton

A **cellular automaton** (pl. **cellular automata**, abbrev. **CA**) is a discrete model of computation studied in automata theory. Cellular automata are also called **cellular spaces**, **tessellation automata**, **homogeneous structures**, **cellular structures**, **tessellation structures**, and **iterative arrays**.[2] Cellular automata have found application in various areas, including physics, theoretical biology and microstructure modeling.

A cellular automaton consists of a regular grid of *cells*, each in one of a finite number of *states*, such as *on* and *off* (in contrast to a coupled map lattice). The grid can be in any finite number of dimensions. For each cell, a set of cells called its *neighborhood* is defined relative to the specified cell. An initial state (time *t* = 0) is selected by assigning a state for each cell. A new *generation* is created (advancing *t* by 1), according to some fixed *rule* (generally, a mathematical function)[3] that determines the new state of each cell in terms of the current state of the cell and the states of the cells in its neighborhood. Typically, the rule for updating the state of cells is the same for each cell and does not change over time, and is applied to the whole grid simultaneously,[4] though exceptions are known, such as the stochastic cellular automaton and asynchronous cellular automaton.

The concept was originally discovered in the 1940s by Stanislaw Ulam and John von Neumann while they were contemporaries at Los Alamos National Laboratory. While studied by some throughout the 1950s and 1960s, it was not until the 1970s and Conway's Game of Life, a two-dimensional cellular automaton, that interest in the subject expanded beyond academia. In the 1980s, Stephen Wolfram engaged in a systematic study of one-dimensional cellular automata, or what he calls elementary cellular automata; his research assistant Matthew Cook showed that one of these rules is Turing-complete.

The primary classifications of cellular automata, as outlined by Wolfram, are numbered one to four. They are, in order, automata in which patterns generally stabilize into homogeneity, automata in which patterns evolve into mostly stable or oscillating structures, automata in which patterns evolve in a seemingly chaotic fashion, and automata in which patterns become extremely complex and may last for a long time, with stable local structures. This last class is thought to be computationally universal, or capable of simulating a Turing machine. Special types of cellular automata are *reversible*, where only a single configuration leads directly to a subsequent one, and *totalistic*, in which the future value of individual cells only depends on the total value of a group of neighboring cells. Cellular automata can simulate a variety of real-world systems, including biological and chemical ones.