Cellular automata are algorithms that describe the discrete spatial and temporal evolution of complex systems by applying
local (or sometimes longrange) deterministic or probabilistic transformation rules to the cells of a regular (or non-regular)
lattice.