[Cellular automaton] rules based on algebraic systems

If the values of cells are taken to be elements of some finite algebraic system, then one can set up a cellular automaton with rule

a[t_, i_] := f[a[t - 1, i - 1], a[t - 1, i]]

where f is the analog of multiplication for the system (see also page 1094). The pattern obtained after t steps is then given by

NestList[f[RotateRight[#], #]&, init, t]

The pictures below show results with f being Times, and cells having values (a) {1, -1}, (b) the unit complex numbers {1, , -1, -}, (c) the unit quaternions.

In general, with n elements f can be specified by an n × n "multiplication table". For n = 2, the patterns obtained are at most nested. Pictures (a) and (b) below however correspond to the n = 3 multiplication tables {{1, 1, 3}, {3, 3, 2}, {2, 2, 1}} and {{3, 1, 3}, {1, 3, 1}, {3, 1, 2}}. Note that for (b) the table is symmetric, corresponding to a commutative multiplication operation.

If f is associative (flat), so that f[f[i, j], k] f[i, f[j, k]], then the algebraic system is known as a semigroup. (See also page 805.) With a single cell seed, no pattern more complicated than nested can be obtained in such a system. And with any seed, it appears to require a semigroup with at least six elements to obtain a more complicated pattern.

If f has an identity element, so that f[1, i] i for all i, and has inverses, so that f[i, j] 1 for some j, then the system is a group. (See page 945.) If the group is Abelian, so that f[i, j] f[j, i], then only nested patterns are ever produced (see page 955). But it turns out that the very simplest possible non-Abelian group yields the pattern in (c) above. The group used is S_{3}, which has six elements and multiplication table

{{1, 2, 3, 4, 5, 6}, {2, 1, 5, 6, 3, 4}, {3, 4, 1, 2, 6, 5}, {4, 3, 6, 5, 1, 2}, {5, 6, 2, 1, 4, 3}, {6, 5, 4, 3, 2, 1}}

The initial condition contains {5, 6} surrounded by 1's.