Cellular automata are computational models capable of interesting emergent behavior. A major challenge is to understand which CA rules are doing useful or efficient computations. It is not clear how these systems could be programmed or made to compute a particular function.
Hand-engineered CA rules
Below images show CA rules that can compute non trivial functions (Images are from (Wolfram 2002), see A new kind of science online ). These examples are nice but likely challenging to produce for complex computations.
Binary adder CA rule
Square CA rule
Prime CA rule (sieve of Eratosthenes)
Evolution of CA rules
CA rules can also be evolved with Genetic algorithms to perform a particular type of computation. Because it uses a genetic algorithm, this method requires a clear reward/objective function to be effective, which might not be achievable for complex functions were input/output pairs aren’t enough of a signal for finding a solution. (Packard 1988; Mitchell, Crutchfield, and Das 1997)
Link with reservoir computing
Computation in cellular automata are difficult to construct and control finely, which is why many have tried to use the Reservoir computing framework to try and discover useful computations in cellular automata.
Mitchell, Melanie, James P Crutchfield, and Rajarshi Das. 1997. “Evolving Cellular Automata to Perform Computations.” In Handbook of Evolutionary Computation, edited by Thomas Bdbendck, David B Fogel, and Zbigniew Michalewicz. IOP Publishing Ltd.