Multistate Higher-Range Anisotropic Rule Notation Specification
Posted: December 10th, 2022, 2:35 pm
I haven't been able to find a notation that fully covers this rulespace, so I've decided to make one myself.
The specification of the rulestring is as follows:
neighborhood,symmetry,transitions
neighborhood - The cells considered around the current cell when deciding what its next state will be. Valid symbols are 0, which represents a cell not being included in the neighborhood, 1, which represents a cell being included, and x, which represents the neighborhood's center cell. The neighborhood will be bound by a square, so the number of valid symbols in a neighborhood representation must be a perfect square. The neighborhood representation will be read from left to right, than up to down within the bounding square. The symbol x may only occur once in the neighborhood string (what would multiple center cells for a neighborhood even look like?). Any symbols other than those already specified will be ignored.
symmetry - Which symmetries will be respected by the transitions. These will affect how transitions is laid out, which will be elaborated upon later. Valid symmetries are C1, C2, C4, D2+, D2x, D4+, D4x, D8, and totalistic. For a symmetry to be allowed, the neighborhood surrounding the center cell must respect that symmetry. In the case of totalistic, the neighborhood must respect C1 symmetry, and the center cell is not included (so it is specifically outer-totalistic).
transitions - Which configurations of cells within a neighborhood correspond to a change in the center cell's state. Transitions will be represented in a similar way to MAPrule notation: each transition is listed in numerical order. As the cell configuration is encoded implicitly, only the state the cell changes to needs to be listed per transition.
The presence of a non-C1 symmetry will change the transition representation as such: only the first instance of a given configuration will be included in the transition list, any equivalent configurations in the given symmetry that would ordinarily occur later in the list will not appear. This serves to significantly cut down on the length of the rulestring when symmetries appear.
Since this rulespace is so large, there will be a great number of transitions for any given neighborhood, meaning the rulestring will be similarly large. Because of this, the transition list will be subject to run-length encoding. As such, numerals can't be used to represent a state, so letters will be used instead. The letter representation for a state may be any length, but must begin with a capital letter, which unambiguously will demark a separate state from the previous letter.
The specification of the rulestring is as follows:
neighborhood,symmetry,transitions
neighborhood - The cells considered around the current cell when deciding what its next state will be. Valid symbols are 0, which represents a cell not being included in the neighborhood, 1, which represents a cell being included, and x, which represents the neighborhood's center cell. The neighborhood will be bound by a square, so the number of valid symbols in a neighborhood representation must be a perfect square. The neighborhood representation will be read from left to right, than up to down within the bounding square. The symbol x may only occur once in the neighborhood string (what would multiple center cells for a neighborhood even look like?). Any symbols other than those already specified will be ignored.
symmetry - Which symmetries will be respected by the transitions. These will affect how transitions is laid out, which will be elaborated upon later. Valid symmetries are C1, C2, C4, D2+, D2x, D4+, D4x, D8, and totalistic. For a symmetry to be allowed, the neighborhood surrounding the center cell must respect that symmetry. In the case of totalistic, the neighborhood must respect C1 symmetry, and the center cell is not included (so it is specifically outer-totalistic).
transitions - Which configurations of cells within a neighborhood correspond to a change in the center cell's state. Transitions will be represented in a similar way to MAPrule notation: each transition is listed in numerical order. As the cell configuration is encoded implicitly, only the state the cell changes to needs to be listed per transition.
The presence of a non-C1 symmetry will change the transition representation as such: only the first instance of a given configuration will be included in the transition list, any equivalent configurations in the given symmetry that would ordinarily occur later in the list will not appear. This serves to significantly cut down on the length of the rulestring when symmetries appear.
Since this rulespace is so large, there will be a great number of transitions for any given neighborhood, meaning the rulestring will be similarly large. Because of this, the transition list will be subject to run-length encoding. As such, numerals can't be used to represent a state, so letters will be used instead. The letter representation for a state may be any length, but must begin with a capital letter, which unambiguously will demark a separate state from the previous letter.