Details
ResourceFunction["RandomCA"] takes two options: "Quiescent" and "Type".
When "Quiescent" is set to
True, input blocks of all zeros must output to zero. Setting "Quiescent" to a list of integers {
x1,
x2,…} forces input blocks of all
xi to output to a single
xi, i.e. sets the rule {
xi,
xi,…,
xi} ↦
xi.
When "Type" is set to "Symmetric", "Totalistic", "OuterTotalistic", "Multiset" or "OuterMultiset", the defining data is chosen from the corresponding subset of the full {k, r} rule space.
"Totalistic" and "OuterTotalistic" are as described in the
CellularAutomaton reference page.
For "Symmetric", whenever two inputs are equivalent by a space-like reflection, so too must their outputs be equivalent by space-like reflection.
The "Multiset" subspace identifies input blocks of length 2
r+1 as if they were multisets, i.e. the update rule ignores the order in which values appear in an input block. That is, when lists
x and
y satisfy
Length[
x]
=Length[
y]
=2
r+1 and
Sort[
x]
=Sort[
y]
=z, this means that
CellularAutomaton[
data][
x]
=CellularAutomaton[
data][
y]
=CellularAutomaton[
data][z]
={c,c,…,c}, where
c is a valid color integer.
The "OuterMultiset" subspace is to "Multiset" as "OuterTotalistic" is to "Totalistic". To construct the canonical signature of an input block, the central cell is kept separate, while 2r values remaining to left and right are listed in some chosen order, typically ascending. When two blocks have the same signature, they also have the same output.