Difference between revisions of "Isotropic non-totalistic rule"

From LifeWiki
Jump to navigation Jump to search
 
(130 intermediate revisions by 13 users not shown)
Line 1: Line 1:
'''Non-totalistic Life-like cellular automata''' are a generalization of [[Life-like cellular automata]]. The term is often erroneously<ref>http://conwaylife.com/forums/viewtopic.php?f=7&t=2036&p=49830#p49815</ref> used to refer to ''isotropic non-totalistic Life-like cellular automata'', rules in which any transition function which is isotropic (that is, invariant under rotations and reflections) is allowed.
An '''isotropic non-totalistic rule''' (abbreviated '''INT''') is a generalization of the concept of a [[Life-like rule]], where the state of a cell after one [[tick]] depends on the configuration of the alive neighbours, not just their counts.


Non-totalistic rules are described using [[Hensel notation]], an extension of [[rulestring|B/S notation]] developed by [[Alan Hensel]] additionally describing allowed or forbidden configurations. Each digit in the rule's birth and survival conditions is followed by an optional suffix, with each allowed configuration described by a specific letter; a minus sign may be used to forbid configurations rather than allow them. If no configurations are specified, all are considered to be allowed, as in the totalistic case. This notation is not used by [[non-isotropic Life-like cellular automata]].
== Hensel notation ==
[[Isotropic]] non-totalistic rules (on the [[square grid]] with range-1 [[Moore neighbourhood]] and two [[cellstate]]s) are described using '''Hensel notation''' developed by [[Alan Hensel]], an extension of the birth/survival [[Rulestring|notation]] additionally describing allowed or forbidden configurations. Each digit in the rule's birth and survival conditions can be followed by an optional suffix, with each allowed configuration described by a specific letter; a minus sign may be used to forbid configurations rather than allow them. If no configurations are specified, all are considered to be allowed, as in the totalistic case. This notation is not used by [[Non-isotropic cellular automaton|non-isotropic cellular automata]].


For instance, B2-a/S12 (the "[[Just Friends]]" rule) indicates that a live cell will survive on 1 or 2 neighbors, or a dead cell get born on 2 neighbors, except when they are adjacent.
For instance, B2-a/S12 (the {{rl|Just Friends}} rule) indicates that a dead cell will be born with 2 neighbours, except when they are adjacent (indicated by the "-a"), and that a live cell will survive with 1 or 2 neighbours in any configuration. This exclusion of the "B2a" transition prevents the rule from exploding in a similar manner to {{rl|Seeds}}.


This notation has the following symmetry: For any letter ''x'' and number ''n''≠4, ''nx'' is defined if and only ''x''(8-''n'') is defined and moreover ''x''(8-''n'') is the complement (change live cells to dead and dead cells to live; ignore the center cell) of ''xn''.
This notation has the following symmetry: For any letter ''x'' and number {{nowrap|''n'' ≠ 4}}, ''nx'' is defined if and only {{nowrap|(8 - ''n'')''x''}} is defined and moreover {{nowrap|(8 - ''n'')''x''}} is the complement (change live cells to dead and dead cells to live; ignore the center cell) of ''nx''.


The following table describes all possible neighborhood configurations for the [[Moore neighbourhood]]; where appropriate, the same configurations apply to the [[von Neumann neighbourhood]]:
Alongside the conventional [[Moore neighbourhood]], this notation can also be used to describe transitions on the 8-cell "exploded" Moore neighbourhoods,<ref name="post128801" /> such as the "Far Corners" and "Far Edges" neighbourhoods supported by [[CAViewer]].


The following table describes all possible neighbourhood configurations for the Moore neighbourhood of range 1:
{{HenselTable}}
=== Subsets ===
To allow patterns to exceed their initial bounding box, a rule must have at least one of b1(c,e), b2(c,a) and b3i enabled, and to escape their bounding diamond, at least one of b1(c,e), b2(e,a), b3a. Irrespective of other transitions, for patterns in a rule to be able to exit their bounding octagon, of the 2<sup>7</sup> combinations across these 7 transitions, those where any of b1c,b1e and b2a are enabled provide 2<sup>6</sup>+2<sup>5</sup>+2<sup>4</sup>, leaving only 2<sup>4</sup> cases in which both b2e and b2c, or both b3i and b3a, must be on, of which there are 7 such cases, providing an upper bound of 119/128ths of the 2<sup>102</sup> such INT rules. These are necessary for spaceships, as well as for a finite pattern to be [[Turing-complete]] (because otherwise, it may only enter fixedly many states depending on its initial size).
The <tt>2<sup>6</sup>=64</tt> isotropic 2-state rules in the [[von Neumann neighbourhood]] can be simulated via isotropic non-totalistic rules on the Moore neighbourhood; for example, B1/SV becomes B1e2ak3inqy4ny5e/S.
To be a von Neumann rule, birth and survival transitions in the following equivalence classes must be the same:
:<tt>0 : 0=1c=2n=2c=3c=4c</tt>
:<tt>1 : 1e=2a=2k=3i=3n=3y=3q=4n=4y=5e</tt>
:<tt>2e: 2e=3k=3a=3j=4k=4a=4q=4w=5a=5j=5k=6e</tt>
:<tt>2i: 2i=3r=4i=4t=4z=5r=6i</tt>
:<tt>3 : 3e=4j=4r=5i=5n=5y=5q=6a=6k=7e</tt>
:<tt>4 : 4e=5c=6c=6n=7c=8</tt>
For it to be outer-totalistic, the <tt>2e</tt> and <tt>2i</tt> transitions must be equivalent.
A similar set of constraints is given in the static symmetry article, that are sufficient for the preservation of [[Static_symmetry#D8|D8_2 symmetry]].
=== Dualities ===
<div class="mw-collapsible mw-collapsed">Note that though the black/white reversal exists for all rules, in general the [[strobing dual]] of a rule is a pair of INT rules that alternate over time (even and odd iterations), and the [[checkerboard dual]] a pair that alternate over space (even and odd squares in a chequerboard tiling). The members of each pair coincide in duals of [[self-complementary]] rules (that are their own [[black/white reversal]]), such as [[OCA:Day & Night|Day & Night]]. Each self-complementary rule is a member of an equivalence class of not a pair but a quartet.<div class="mw-collapsible-content">
They are generated as follows,
*For the black/white reversal, take the bitwise NOT of the input and output.
*For the strobing dual,
::in even generations, take the bitwise NOT of the output, and
::in odd generations, take the bitwise NOT of the input.
*For the checkerboard dual,
::for even-parity cells, XOR the input with an "X" in the four corners and centre, and
::for odd-parity cells, XOR the input with an "O" in the four edges.
<tt>
{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none;"
{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none;"
| style="border: none; background: #fff;" |
!Outer{{br}}total!!Identity!!colspan="2"|[[Black/white reversal|Black/white{{br}}reversal]]!!colspan="4"|[[Strobing dual|Strobing{{br}}dual]]
! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8
! colspan="4" |[[Checkerboard dual|Checkerboard{{br}}dual]]
|-
|rowspan="2"| ||rowspan="2"| ||rowspan="2"|b||rowspan="2"|s||colspan="2"|even||colspan="2"|odd|| colspan="2" |even
| colspan="2" |odd
|-
|                                b  || s  || b  || s  || b  || s  || b  || s
|-
|            0|| ||~s8 ||~b8 ||~b0 ||~s0 || s8 || b8 ||~s4c||~b4c|| b4e|| s4e
|-
|rowspan=" 2"|1||c||~s7c||~b7c||~b1c||~s1c|| s7c|| b7c||~s3c||~b3c|| b5c|| s5c
|-
                |e||~s7e||~b7e||~b1e||~s1e|| s7e|| b7e||~s5e||~b5e|| b3e|| s3e
|-
|rowspan=" 6"|2||c||~s6c||~b6c||~b2c||~s2c|| s6c|| b6c||~s2c||~b2c|| b6c|| s6c
|-
                |e||~s6e||~b6e||~b2e||~s2e|| s6e|| b6e||~s6e||~b6e|| b2e|| s2e
|-
                |k||~s6k||~b6k||~b2k||~s2k|| s6k|| b6k||~s4n||~b4n|| b4r|| s4r
|-
                |a||~s6a||~b6a||~b2a||~s2a|| s6a|| b6a||~s4y||~b4y|| b4j|| s4j
|-
                |i||~s6i||~b6i||~b2i||~s2i|| s6i|| b6i||~s6i||~b6i|| b2i|| s2i
|-
                |n||~s6n||~b6n||~b2n||~s2n|| s6n|| b6n||~s2n||~b2n|| b6n|| s6n
|-
|rowspan="10"|3||c||~s5c||~b5c||~b3c||~s3c|| s5c|| b5c||~s1c||~b1c|| b7c|| s7c
|-
                |e||~s5e||~b5e||~b3e||~s3e|| s5e|| b5e||~s7e||~b7e|| b1e|| s1e
|-
                |k||~s5k||~b5k||~b3k||~s3k|| s5k|| b5k||~s5a||~b5a|| b3a|| s3a
|-
                |a||~s5a||~b5a||~b3a||~s3a|| s5a|| b5a||~s5k||~b5k|| b3k|| s3k
|-
                |i||~s5i||~b5i||~b3i||~s3i|| s5i|| b5i||~s3y||~b3y|| b5y|| s5y
|-
                |n||~s5n||~b5n||~b3n||~s3n|| s5n|| b5n||~s3n||~b3n|| b5n|| s5n
|-
                |y||~s5y||~b5y||~b3y||~s3y|| s5y|| b5y||~s3i||~b3i|| b5i|| s5i
|-
                |q||~s5q||~b5q||~b3q||~s3q|| s5q|| b5q||~s3q||~b3q|| b5q|| s5q
|-
                |j||~s5j||~b5j||~b3j||~s3j|| s5j|| b5j||~s5j||~b5j|| b3j|| s5j
|-
                |r||~s5r||~b5r||~b3r||~s3r|| s5r|| b5r||~s5r||~b5r|| b3r|| s3r
|-
|rowspan="13"|4||c||~s4e||~b4e||~b4c||~s4c|| s4e|| b4e||~s0 ||~b0 || b8 || s8
|-
                |e||~s4c||~b4c||~b4e||~s4e|| s4c|| b4c||~s8 ||~b8 || b0 || s0
|-
                |k||~s4k||~b4k||~b4k||~s4k|| s4k|| b4k||~s4a||~b4a|| b4a|| s4a
|-
                |a||~s4a||~b4a||~b4a||~s4a|| s4a|| b4a||~s4k||~b4k|| b4k|| s4k
|-
                |i||~s4t||~b4t||~b4t||~s4t|| s4t|| b4t||~s4i||~b4i|| b4t|| s4t
|-
                |n||~s4r||~b4r||~b4r||~s4r|| s4r|| b4r||~s2k||~b2k|| b6k|| s6k
|-
                |y||~s4j||~b4j||~b4j||~s4j|| s4j|| b4j||~s2a||~b2a|| b6a|| s6a
|-
                |q||~s4w||~b4w||~b4w||~s4w|| s4w|| b4w||~s4w||~b4w|| b4q|| s4q
|-
                |j||~s4y||~b4y||~b4y||~s4y|| s4y|| b4y||~s6a||~b6a|| b2a|| s2a
|-
                |r||~s4n||~b4n||~b4n||~s4n|| s4n|| b4n||~s6k||~b6k|| b2k|| s2k
|-
                |t||~s4i||~b4i||~b4i||~s4i|| s4i|| b4i||~s4t||~b4t|| b4i|| s4i
|-
                |w||~s4q||~b4q||~b4q||~s4q|| s4q|| b4q||~s4q||~b4q|| b4w|| s4w
|-
                |z||~s4z||~b4z||~b4z||~s4z|| s4z|| b4z||~s4z||~b4z|| b4z|| s4z
|-
|rowspan="10"|5||c||~s3c||~b3c||~b5c||~s5c|| s3c|| b3c||~s7c||~b7c|| s1c|| b1c
|-
                |e||~s3e||~b3e||~b5e||~s5e|| s3e|| b3e||~s1e||~b1e|| b7e|| s7e
|-
                |k||~s3k||~b3k||~b5k||~s5k|| s3k|| b3k||~s3a||~b3a|| b5a|| s5a
|-
                |a||~s3a||~b3a||~b5a||~s5a|| s3a|| b3a||~s3k||~b3k|| b5k|| s5k
|-
                |i||~s3i||~b3i||~b5i||~s5i|| s3i|| b3i||~s5y||~b5y|| b3y|| s3y
|-
|-
! —<small style="font-weight: normal;"> (no<br/>letter)</small>
                |n||~s3n||~b3n||~b5n||~s5n|| s3n|| b3n||~s5n||~b5n|| b3n|| s3n
| [[File:Neighborhood 0.png]] || || || || || || || || [[File:Neighborhood 8.png]]
|-
|-
! c<br/><small style="font-weight: normal;">(corner)</small>
                |y||~s3y||~b3y||~b5y||~s5y|| s3y|| b3y||~s5i||~b5i|| b3i|| s3i
| || [[File:Neighborhood 1c.png]] || [[File:Neighborhood 2c.png]] || [[File:Neighborhood 3c.png]] || [[File:Neighborhood 4c.png]] || [[File:Neighborhood 5c.png]] || [[File:Neighborhood 6c.png]] || [[File:Neighborhood 7c.png]] ||  
|-
|-
! e<br/><small style="font-weight: normal;">(edge)</small>
                |q||~s3q||~b3q||~b5q||~s5q|| s3q|| b3q||~s5q||~b5q|| b3q|| s3q
| || [[File:Neighborhood 1e.png]] || [[File:Neighborhood 2e.png]] || [[File:Neighborhood 3e.png]] || [[File:Neighborhood 4e.png]] || [[File:Neighborhood 5e.png]] || [[File:Neighborhood 6e.png]] || [[File:Neighborhood 7e.png]] ||  
|-
|-
! k<br/><small style="font-weight: normal;">(knight)</small>
                |j||~s3j||~b3j||~b5j||~s5j|| s3j|| b3j||~s3j||~b3j|| b5j|| s5j
| || || [[File:Neighborhood 2k.png]] || [[File:Neighborhood 3k.png]] || [[File:Neighborhood 4k.png]] || [[File:Neighborhood 5k.png]] || [[File:Neighborhood 6k.png]] || ||  
|-
|-
! a<br/><small style="font-weight: normal;">(adjacent)</small>
                |r||~s3r||~b3r||~b5r||~s5r|| s3r|| b3r||~s3r||~b3r|| b5r|| s5r
| || || [[File:Neighborhood 2a.png]] || [[File:Neighborhood 3a.png]] || [[File:Neighborhood 4a.png]] || [[File:Neighborhood 5a.png]] || [[File:Neighborhood 6a.png]] || ||  
|-
|-
! i
|rowspan=" 6"|6||c||~s2c||~b2c||~b6c||~s6c|| s2c|| b2c||~s6c||~b6c|| b2c|| s2c
| || || [[File:Neighborhood 2i.png]] || [[File:Neighborhood 3i.png]] || [[File:Neighborhood 4i.png]] || [[File:Neighborhood 5i.png]] || [[File:Neighborhood 6i.png]] || ||  
|-
|-
! n
                |e||~s2e||~b2e||~b6e||~s6e|| s2e|| b2e||~s2e||~b2e|| b6e|| s5e
| || || [[File:Neighborhood 2n.png]] || [[File:Neighborhood 3n.png]] || [[File:Neighborhood 4n.png]] || [[File:Neighborhood 5n.png]] || [[File:Neighborhood 6n.png]] || ||  
|-
|-
! y
                |k||~s2k||~b2k||~b6k||~s6k|| s2k|| b2k||~s4r||~b4r|| b4n|| s4n
| || || || [[File:Neighborhood 3y.png]] || [[File:Neighborhood 4y.png]] || [[File:Neighborhood 5y.png]] || || ||  
|-
|-
! q
                |a||~s2a||~b2a||~b6a||~s6a|| s2a|| b2a||~s4j||~b4j|| b4y|| s4y
| || || || [[File:Neighborhood 3q.png]] || [[File:Neighborhood 4q.png]] || [[File:Neighborhood 5q.png]] || || ||  
|-
|-
! j
                |i||~s2i||~b2i||~b6i||~s6i|| s2i|| b2i||~s2i||~b2i|| b6i|| s6i
| || || || [[File:Neighborhood 3j.png]] || [[File:Neighborhood 4j.png]] || [[File:Neighborhood 5j.png]] || || ||  
|-
|-
! r
                |n||~s2n||~b2n||~b6n||~s6n|| s2n|| b2n||~s6n||~b6n|| b2n|| s2n
| || || || [[File:Neighborhood 3r.png]] || [[File:Neighborhood 4r.png]] || [[File:Neighborhood 5r.png]] || || ||  
|-
|-
! t
|rowspan=" 2"|7||c||~s1c||~b1c||~b7c||~s7c|| s1c|| b1c||~s5c||~b5c|| b3c|| s3c
| || || || || [[File:Neighborhood 4t.png]] || || || ||  
|-
|-
! w
                |e||~s1e||~b1e||~b7e||~s7e|| s1e|| b1e||~s3e||~b3e|| b5e|| s5e
| || || || || [[File:Neighborhood 4w.png]] || || || ||  
|-
|-
! z
            |8|| ||~s0 ||~b0 ||~b8 ||~s8 || s0 || b0 ||~s4e||~b4e|| b4c|| s4c
| || || || || [[File:Neighborhood 4z.png]] || || || ||  
|}</tt>
|}
</div></div>
== Generalizations ==


Rules using the [[von Neumann neighbourhood]] can be simulated via non-totalistic rules on the [[Moore neighbourhood]]; for example, B1/SV becomes B1e/S.
=== Von Neumann extensions ===
While not a rulespace in itself, a notation exists that allows for existing neighbourhoods to be extended by four cells. This is the notation used for range-2 von Neumann isotropic non-totalistic rules (in which it is combined with the range-1 Moore isotropic non-totalistic notation), and range-3 cross isotropic non-totalistic rules (in which it is combined with the range-2 cross isotropic non-totalistic notation).


==Hexagonal neighbourhood==
This extension notation was initially proposed on February 24, 2019 by [[AforAmpere]] and [[Milo Jacquet]] for range-2 von Neumann isotropic non-totalistic rules.<ref name="post71574" />


It is possible to define non-totalistic Life-like CAs on a hexagonal grid as well. The following table describes all possible neighborhood configurations for the [[hexagonal neighbourhood]], using notation due to [[Paul Callahan]];<ref>{{cite web|url=http://www.radicaleye.com/lifepage/hexrule.txt|title=Experiments with a somewhat "Life-like" hexagonal CA (long)|author=Paul Callahan|date=December 3, 1997|accessdate=September 29, 2017}}</ref><ref>http://www.conwaylife.com/forums/download/file.php?id=261</ref> the names ''ortho'', ''meta'' and ''para'' were chosen in analogy to [https://en.wikipedia.org/wiki/Arene_substitution_pattern arene substitution patterns] in aromatic chemistry:
For each transition, use the transition corresponding to the configuration of the center 8 cells, aligned with the canonical directions in the table above. Then take the outside 4 cells, and depending on the configurations in the table below, add that letter.


{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none;"
{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none;"
| style="border: none; background: #fff;" |
| style="border: none; background: #fff;" |
! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6
! a !! c !! d !! e !! f !! g !! i !! j
|-
! —
| [[File:INT vN Extensions a.png]] || [[File:INT vN Extensions c.png]] || [[File:INT vN Extensions d.png]] || [[File:INT vN Extensions e.png]] || [[File:INT vN Extensions f.png]] || [[File:INT vN Extensions g.png]] || [[File:INT vN Extensions i.png]] || [[File:INT vN Extensions j.png]]
|}
{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none;"
| style="border: none; background: #fff;" |
! k !! l !! m !! n !! o !! p !! q !! r
|-
|-
! —<small style="font-weight: normal;"> (no<br/>letter)</small>
! —
| [[File:Hexagonal neighborhood 0.png]] || [[File:Hexagonal neighborhood 1.png]] || || || || [[File:Hexagonal neighborhood 5.png]] || [[File:Hexagonal neighborhood 6.png]]
| [[File:INT vN Extensions k.png]] || [[File:INT vN Extensions l.png]] || [[File:INT vN Extensions m.png]] || [[File:INT vN Extensions n.png]] || [[File:INT vN Extensions o.png]] || [[File:INT vN Extensions p.png]] || [[File:INT vN Extensions q.png]] || [[File:INT vN Extensions r.png]]
|}
 
For transitions that are the same under reflections or rotations, the canonical transition is the lowest alphabetically.
 
'x' is used after a totalistic number. An example range-2 von Neumann rulestring is 'B3x2ic1ei5x-3kr/S0x8x'.
 
[[bubblegum]] has also proposed to use the 'v' character to represent outer totalistic transitions for the inner 8 cells for range-2 von Neumann rules.<ref name="post102838" />
 
=== Range-2 von Neumann neighbourhood ===
There are 618 different transitions possible in the range-2 von Neumann neighbourhood. Four notations have been proposed as of February 2018.<ref name="post70180" />
 
As of 27 November 2020, the only CA simulation software which natively supports such rules is [[CAViewer]].<ref name="post113480"/>
 
An earlier proposed notation for range-2 von Neumann isotropic non-totalistic rules is based on Hensel notation.<ref name="post71574" /> It never entered common use.
 
=== Range-2 cross neighbourhood ===
A proposal for this neighbourhood was mistakenly created in 2017,<ref name="post50386" /> and a second notation was created in mid-2020<ref name="post101003" /> (although missing a 3-cell and 5-cell transition).<ref name="p128945">{{LinkForumThread|f=3|t=1622|p=128945|title=Re: Pattern viewer for forum threads|format=ref}}</ref>
 
=== Range-2 knight neighbourhood ===
A notation for this was proposed in mid-2020<ref name="post101003"/> (with a duplicated 4-cell transition).<ref name="p128945"/>
 
=== 3-state Moore neighbourhood ===
 
A notation for 3-state range-1 rules is underway.<ref name="post87744" />
 
=== Hexagonal neighbourhood ===
{{main|Hexagonal neighbourhood#Isotropic non-totalistic rules}}
It is possible to define isotropic non-totalistic CAs on a hexagonal grid as well, using a notation due to [[Paul Callahan]].
 
=== Table of isotropic non-totalistic rulespaces ===
{{split|List of rulespaces}}
The number of unique transitions for higher ranges tends to be extremely large, and the development of notations for such rules is generally infeasible. The following table documents notable examples (grids are notated with [[Schläfli symbol]]s as to simultaneously convey grid type and dimension):
 
{| class="wikitable" style="margin-left:auto;margin-right:auto;text-align:center;"
! rowspan="2" | Common name
! colspan="4" | Rulespace definitions
! rowspan="2" | Transitions
! rowspan="2" | Notated?
! colspan="3" | Major software support
|-
|-
! o<br/><small style="font-weight: normal;">(ortho)</small>
! Grid
| || || [[File:Hexagonal neighborhood 2o.png]] || [[File:Hexagonal neighborhood 3o.png]] || [[File:Hexagonal neighborhood 4o.png]] || ||
! Range
! States
! Neighbourhood
! Golly
! LifeViewer
! lifelib
|-
|-
! m<br/><small style="font-weight: normal;">(meta)</small>
! Block cellular automata
| || || [[File:Hexagonal neighborhood 2m.png]] || [[File:Hexagonal neighborhood 3m.png]] || [[File:Hexagonal neighborhood 4m.png]] || ||  
| {4,4}
| 1/2
| 2
| Moore
| 6
| style="background-color:#c6efce;" | [https://conwaylife.com/forums/viewtopic.php?f=11&t=3243&p=55536#p55536 Yes]
| colspan="3" style="background-color:#c6efce;" | (Unnecessary)
|-
|-
! p<br/><small style="font-weight: normal;">(para)</small>
! -
| || || [[File:Hexagonal neighborhood 2p.png]] || [[File:Hexagonal neighborhood 3p.png]] || [[File:Hexagonal neighborhood 4p.png]] || ||  
| {4,4}
| 1
| 2
| von Neumann
| 6
| style="background-color:#c6efce;" | Trivial
| colspan="3" style="background-color:#c6efce;" | (Unnecessary)
|-
! 3D vN non-totalistic
| {4,3,4}
| 1
| 2
| von Neumann
| 10
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
|-
! Non-totalistic hexagonal
| {6,3}
| 1
| 2
| hexagonal
| 13
| style="background-color:#c6efce;" | [https://conwaylife.com/ref/lifepage/hexrule.txt Yes]
| style="background-color:#ffc7ce;" | No<ref group="n">The rulespace can be simulated via MAP strings, or, less preferably, ruletables, however no direct support for the notation exists.</ref>
| style="background-color:#c6efce;" | Yes
| style="background-color:#c6efce;" | Yes
|-
! Knight INT
| {4,4}
| 2
| 2
| knight
| 43
| style="background-color:#c6efce;" | [https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=101003#p101003 Yes]
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
|-
! Isotropic non-totalistic
| {4,4}
| 1
| 2
| Moore
| 51
| style="background-color:#c6efce;" | [http://www.ibiblio.org/lifepatterns/neighbors2.html Yes]
| style="background-color:#c6efce;" | Yes
| style="background-color:#c6efce;" | Yes
| style="background-color:#c6efce;" | Yes
|-
! Exploded
| {4,4}
| ≥1
| 2
| variable<ref group="n">Based on the Moore neighbourhood, with the four edge cells and/or the four corner cells moved away from the origin a defined distance.</ref>
| 51
| style="background-color:#c6efce;" | [https://conwaylife.com/forums/viewtopic.php?f=11&t=4763#p128801 Yes]
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffffdd;" | Some<ref group="n">The range-N "far corners" + range-M "far edges" cases are supported, but the general case of exploded Moore neighbourhoods are not.</ref>
| style="background-color:#ffffdd;" | Some<ref group="n">The range-2 "far corners" and range-3 "far edges" cases are supported, but the general case of exploded Moore neighbourhoods are not.</ref>
|-
! Cross INT
| {4,4}
| 2
| 2
| cross
| 55
| style="background-color:#c6efce;" | [https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=101003#p101003 Yes]
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
|-
! -
| {4,4}
| 2
| 2
| nonstandard<ref group="n">The number is the same for a "circle" formed of four three-cell lines at distance 2 from the center, and four "pre-blocks" with the gaps all facing the center or all facing outwards (or any configuration of eight eightfold neighbours and two fourfold ones)</ref>
| 570
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
|-
! R2 von Neumann INT
| {4,4}
| 2
| 2
| von Neumann
| 618
| style="background-color:#c6efce;" | [https://conwaylife.com/forums/viewtopic.php?t=&p=70180#p70180 Yes]
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#c6efce;" | Yes
|-
! -
| {4,4}
| 2
| 2
| nonstandard<ref group="n">Range-1 Moore, with added range-2 corners</ref>
| 618
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
|-
! 3-state knight INT
| {4,4}
| 2
| 3
| knight
| 873
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
|-
! 3-state INT
| {4,4}
| 1
| 3
| Moore
| 954
| style="background-color:#c6efce;" | [https://conwaylife.com/forums/viewtopic.php?p=164994#p164994 Yes]
| style="background-color:#ffc7ce;" | No<ref group="n" name="no3">The rulespace can be simulated via ruletables, however no direct support for the notation exists.</ref>
| style="background-color:#ffc7ce;" | No<ref group="n" name="no3"/>
| style="background-color:#ffc7ce;" | No<ref group="n" name="no3"/>
|-
! 3-state cross INT
| {4,4}
| 2
| 3
| cross
| 1035
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
|-
! 4-state knight INT
| {4,4}
| 2
| 4
| knight
| 8356
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
|-
! 4-state INT
| {4,4}
| 1
| 4
| Moore
| 8740
| style="background-color:#c6efce;" | [https://conwaylife.com/forums/viewtopic.php?f=11&t=6126 Yes]
| style="background-color:#ffc7ce;" | No<ref group="n" name="no3"/>
| style="background-color:#ffc7ce;" | No<ref group="n" name="no3"/>
| style="background-color:#ffc7ce;" | No<ref group="n" name="no3"/>
|-
! 4-state cross INT
| {4,4}
| 2
| 4
| cross
| 9316
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
|-
! R2 hexagonal INT
| {6,3}
| 2
| 2
| hexagonal
| 22668
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
|-
! 3-state R2 vN INT
| {4,4}
| 2
| 3
| von Neumann
| 68715
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
|-
! R2 Moore-without-corners
| {4,4}
| 2
| 2
| circular
| 132744
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
|-
! 3D non-totalistic
| {4,3,4}
| 1
| 2
| Moore
| 1426144<ref group="n">first calculated by Milo Jacquet</ref>
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
|-
! R2 Moore INT
| {4,4}
| 2
| 2
| Moore
| 2105872
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
|-
! 4D non-totalistic
| {4,3,3,4}
| 1
| 2
| Moore
| 3148244699232062849152<ref group="n">first calculated using the [[Pólya enumeration theorem]] by [https://gist.github.com/DroneBetter/90318584a0ad6a0f4d1c418d3da132cd DroneBetter's <tt>dimensional_INT_enumerator.py</tt>] (explained [[User:DroneBetter/dimensional INT enumerator|here]])</ref>
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
| style="background-color:#ffc7ce;" | No
|}
|}
<references group="n"/>
<!--The number of unique transitions in rulespaces with range-1 von Neumann neighbourhoods (or equivalent) with <tt>n</tt> states follows the {{LinkWikipedia|Doubly_triangular_number|name=doubly-triangular numbers|nobullet=nobullet|nosuffix=nosuffix}}, <tt>{{OEIS|A002817}}(n)</tt>.-->
A rule with an <tt>n</tt>-dimensional range-<tt>k</tt> Moore neighbourhood has <tt>{{OEIS|A361870}}(n,2*k+1)</tt> transitions.


==Soup-searching non-totalistic rules==
== Soup-searching non-totalistic rules ==
[[Adam P. Goucher]]'s [[apgsearch]] was modified to support non-totalistic rules by [[Aidan F. Pierce]] on December 17, 2015.<ref>{{cite web|url=http://www.conwaylife.com/forums/viewtopic.php?f=9&t=1480&p=25942#p25942|author=Aidan F. Pierce|title=Re: Hacking apgsearch|date=December 17, 2015|accessdate=June 12, 2016|work=ConwayLife.com forums}}</ref> [[Catagolue]] gained the ability to census non-totalistic rules in late January 2016.<ref>{{cite web|url=http://www.conwaylife.com/forums/viewtopic.php?f=7&t=1784&start=225#p26878|author=Adam P. Goucher|title=Re: apgsearch v2.2|date=January 21, 2016|accessdate=June 12, 2016|work=ConwayLife.com forums}}</ref> apgsearch (apgluxe) 4.2, released on September 10, 2017, can search non-totalistic rules without B0.
[[Adam P. Goucher]]'s [[apgsearch]] was modified to support isotropic non-totalistic rules by [[praosylen]] on December 17, 2015.<ref name="post25942" /> This hacked version was later modified in late January 2016 to be able to upload the search results to [[Catagolue]].<ref name="post26878" /> However, apgsearch did not gain native support for these rules until v4.2, released on September 10, 2017, which can search isotropic non-totalistic rules without [[B0]].<ref name="post50771" /> v4.66 and above also support the searching of isotropic hexagonal neighbourhood rules.<ref name="post66090" /> Range 2 von Neumann isotropic rules can also be searched by means of a ruletable using a custom neighbourhood.<ref name="post99110" /> However, note that GPU censuses support only outer-totalistic rules.


==See also==
== See also ==
* [[Totalistic Life-like cellular automaton]]
* [[Life-like cellular automaton]]
* [[Non-isotropic Life-like cellular automaton]]
* [[Non-isotropic cellular automaton]]
* [[Generations]]
* [[Generations]]
* [[Larger than Life]]
* [[Larger than Life]]
* [[:Category:Dualities|Dualities]]
:* [[Checkerboard dual]]
* [[List of isotropic non-totalistic cellular automata]]


==References==
==References==
<references />
<references>
<ref name="post128801">{{LinkForumThread
|format = ref
|title  = Re: Lemon41625's Cellular Automaton
|p      = 128801
|author = Connor Steppie
|date  = April 23, 2021
}}</ref>
<ref name="post71574">{{LinkForumThread
|format = ref
|title  = Re: Range-2 von Neumann isotropic non-totalistic rulespace
|p      = 71574
|author = AforAmpere
|date  = February 23, 2019
}}</ref>
<ref name="post50386">{{LinkForumThread
|format = ref
|title  = Re: Golly suggestions
|p      = 50386
|author = toroidalet
|date  = September 2, 2017
}}</ref>
<ref name="post101003">{{LinkForumThread
|format = ref
|title  = Re: Pattern viewer for forum threads
|p      = 101003
|author = lemon41625
|date  = July 23, 2020
}}</ref>
<ref name="post87744">{{LinkForumThread
|format = ref
|title  = Re: 3-state range-1 outer-totalistic rulespace
|p      = 87744
|author = Connor Steppie
|date  = January 19, 2020
}}</ref>
<ref name="post70180">{{LinkForumThread
|format = ref
|title  = Range-2 von Neumann isotropic non-totalistic rulespace
|p      = 70180
|author = Connor Steppie
|date  = February 9, 2019
}}</ref>
<ref name="post102838">{{LinkForumThread
|format = ref
|title  = Re: Range-2 von Neumann isotropic non-totalistic rulespace
|p      = 102838
|author = bubblegum
|date  = August 26, 2020
}}</ref>
<ref name="post113480">{{LinkForumThread
|format = ref
|title  = Re: CAViewer - A Cellular Automaton Simulator written in Java
|p      = 113480
|author = lemon41625
|date  = November 29, 2020
}}</ref>
<ref name="post25942">{{LinkForumThread
|format = ref
|f      = 9
|t      = 1480
|p      = 25942
|author = praosylen
|title  = Re: Hacking apgsearch
|date  = December 17, 2015
}}</ref>
<ref name="post26878">{{LinkForumThread
|format = ref
|f      = 7
|t      = 1784
|p      = 26878
|author = Adam P. Goucher
|title  = Re: apgsearch v2.2
|date  = January 21, 2016
}}</ref>
<ref name="post50771">{{LinkForumThread
|format = ref
|title  = Re: apgsearch v4.2
|p      = 50771
|author = Adam P. Goucher
|date  = September 10, 2017
}}</ref>
<ref name="post66090">{{LinkForumThread
|format = ref
|p      = 66090
|title  = Re: Non-totalistic hex rules
|author = Adam P. Goucher
|date  = December 1, 2018
}}</ref>
<ref name="post99110">{{LinkForumThread
|format = ref
|title  = Re: Range-2 von Neumann isotropic non-totalistic rulespace
|p      = 99110
|author = lemon41625
|date  = June 19, 2020
}}</ref>
</references>


==External links==
==External links==
* {{cite web|author=Alan Hensel|url=http://www.ibiblio.org/lifepatterns/neighbors2.html|title=Table of non-totalistic neighborhoods|accessdate=2016-06-12}}
* {{cite web|author=Alan Hensel|url=http://www.ibiblio.org/lifepatterns/neighbors2.html|title=Table of non-totalistic neighborhoods|accessdate=2016-06-12}}
* {{cite web|author=Alan Hensel|url=http://www.ibiblio.org/lifepatterns/neighbors.html|title=Rule notation|accessdate=2016-06-12}} (note that the table on this page describes an earlier version of Hensel notation that has fallen into disuse)
* {{cite web|author=Alan Hensel|url=http://www.ibiblio.org/lifepatterns/neighbors.html|title=Rule notation|accessdate=2016-06-12}} (note that the linked page describes an earlier version of Hensel notation that has fallen into disuse)
* {{LinkForumThread|f=11|t=936|title=Non-totalistic Rules - notations, projects, & discussion}}


[[Category:Cellular automata| Non-totalistic Life-like cellular automaton]]
[[Category:Cellular automata| Isotropic non-totalistic cellular automaton]]
__NOTOC__
[[Category:Isotropic non-totalistic rules| Isotropic non-totalistic cellular automaton]]

Latest revision as of 20:47, 10 September 2023

An isotropic non-totalistic rule (abbreviated INT) is a generalization of the concept of a Life-like rule, where the state of a cell after one tick depends on the configuration of the alive neighbours, not just their counts.

Hensel notation

Isotropic non-totalistic rules (on the square grid with range-1 Moore neighbourhood and two cellstates) are described using Hensel notation developed by Alan Hensel, an extension of the birth/survival notation additionally describing allowed or forbidden configurations. Each digit in the rule's birth and survival conditions can be followed by an optional suffix, with each allowed configuration described by a specific letter; a minus sign may be used to forbid configurations rather than allow them. If no configurations are specified, all are considered to be allowed, as in the totalistic case. This notation is not used by non-isotropic cellular automata.

For instance, B2-a/S12 (the Just Friends rule) indicates that a dead cell will be born with 2 neighbours, except when they are adjacent (indicated by the "-a"), and that a live cell will survive with 1 or 2 neighbours in any configuration. This exclusion of the "B2a" transition prevents the rule from exploding in a similar manner to Seeds.

This notation has the following symmetry: For any letter x and number n ≠ 4, nx is defined if and only (8 - n)x is defined and moreover (8 - n)x is the complement (change live cells to dead and dead cells to live; ignore the center cell) of nx.

Alongside the conventional Moore neighbourhood, this notation can also be used to describe transitions on the 8-cell "exploded" Moore neighbourhoods,[1] such as the "Far Corners" and "Far Edges" neighbourhoods supported by CAViewer.

The following table describes all possible neighbourhood configurations for the Moore neighbourhood of range 1:

0 1 2 3 4 5 6 7 8
(no
letter)
INT Moore R1 0.png INT Moore R1 8.png
c
(corner)
INT Moore R1 1c.png INT Moore R1 2c.png INT Moore R1 3c.png INT Moore R1 4c.png INT Moore R1 5c.png INT Moore R1 6c.png INT Moore R1 7c.png
e
(edge)
INT Moore R1 1e.png INT Moore R1 2e.png INT Moore R1 3e.png INT Moore R1 4e.png INT Moore R1 5e.png INT Moore R1 6e.png INT Moore R1 7e.png
k
(knight)
INT Moore R1 2k.png INT Moore R1 3k.png INT Moore R1 4k.png INT Moore R1 5k.png INT Moore R1 6k.png
a
(adjacent)
INT Moore R1 2a.png INT Moore R1 3a.png INT Moore R1 4a.png INT Moore R1 5a.png INT Moore R1 6a.png
i INT Moore R1 2i.png INT Moore R1 3i.png INT Moore R1 4i.png INT Moore R1 5i.png INT Moore R1 6i.png
n INT Moore R1 2n.png INT Moore R1 3n.png INT Moore R1 4n.png INT Moore R1 5n.png INT Moore R1 6n.png
y INT Moore R1 3y.png INT Moore R1 4y.png INT Moore R1 5y.png
q INT Moore R1 3q.png INT Moore R1 4q.png INT Moore R1 5q.png
j INT Moore R1 3j.png INT Moore R1 4j.png INT Moore R1 5j.png
r INT Moore R1 3r.png INT Moore R1 4r.png INT Moore R1 5r.png
t INT Moore R1 4t.png
w INT Moore R1 4w.png
z INT Moore R1 4z.png

Subsets

To allow patterns to exceed their initial bounding box, a rule must have at least one of b1(c,e), b2(c,a) and b3i enabled, and to escape their bounding diamond, at least one of b1(c,e), b2(e,a), b3a. Irrespective of other transitions, for patterns in a rule to be able to exit their bounding octagon, of the 27 combinations across these 7 transitions, those where any of b1c,b1e and b2a are enabled provide 26+25+24, leaving only 24 cases in which both b2e and b2c, or both b3i and b3a, must be on, of which there are 7 such cases, providing an upper bound of 119/128ths of the 2102 such INT rules. These are necessary for spaceships, as well as for a finite pattern to be Turing-complete (because otherwise, it may only enter fixedly many states depending on its initial size).

The 26=64 isotropic 2-state rules in the von Neumann neighbourhood can be simulated via isotropic non-totalistic rules on the Moore neighbourhood; for example, B1/SV becomes B1e2ak3inqy4ny5e/S.

To be a von Neumann rule, birth and survival transitions in the following equivalence classes must be the same:

0 : 0=1c=2n=2c=3c=4c
1 : 1e=2a=2k=3i=3n=3y=3q=4n=4y=5e
2e: 2e=3k=3a=3j=4k=4a=4q=4w=5a=5j=5k=6e
2i: 2i=3r=4i=4t=4z=5r=6i
3 : 3e=4j=4r=5i=5n=5y=5q=6a=6k=7e
4 : 4e=5c=6c=6n=7c=8

For it to be outer-totalistic, the 2e and 2i transitions must be equivalent.

A similar set of constraints is given in the static symmetry article, that are sufficient for the preservation of D8_2 symmetry.

Dualities

Note that though the black/white reversal exists for all rules, in general the strobing dual of a rule is a pair of INT rules that alternate over time (even and odd iterations), and the checkerboard dual a pair that alternate over space (even and odd squares in a chequerboard tiling). The members of each pair coincide in duals of self-complementary rules (that are their own black/white reversal), such as Day & Night. Each self-complementary rule is a member of an equivalence class of not a pair but a quartet.

They are generated as follows,

  • For the black/white reversal, take the bitwise NOT of the input and output.
  • For the strobing dual,
in even generations, take the bitwise NOT of the output, and
in odd generations, take the bitwise NOT of the input.
  • For the checkerboard dual,
for even-parity cells, XOR the input with an "X" in the four corners and centre, and
for odd-parity cells, XOR the input with an "O" in the four edges.

Outer
total
Identity Black/white
reversal
Strobing
dual
Checkerboard
dual
b s even odd even odd
b s b s b s b s
0 ~s8 ~b8 ~b0 ~s0 s8 b8 ~s4c ~b4c b4e s4e
1 c ~s7c ~b7c ~b1c ~s1c s7c b7c ~s3c ~b3c b5c s5c
e ~s7e ~b7e ~b1e ~s1e s7e b7e ~s5e ~b5e b3e s3e
2 c ~s6c ~b6c ~b2c ~s2c s6c b6c ~s2c ~b2c b6c s6c
e ~s6e ~b6e ~b2e ~s2e s6e b6e ~s6e ~b6e b2e s2e
k ~s6k ~b6k ~b2k ~s2k s6k b6k ~s4n ~b4n b4r s4r
a ~s6a ~b6a ~b2a ~s2a s6a b6a ~s4y ~b4y b4j s4j
i ~s6i ~b6i ~b2i ~s2i s6i b6i ~s6i ~b6i b2i s2i
n ~s6n ~b6n ~b2n ~s2n s6n b6n ~s2n ~b2n b6n s6n
3 c ~s5c ~b5c ~b3c ~s3c s5c b5c ~s1c ~b1c b7c s7c
e ~s5e ~b5e ~b3e ~s3e s5e b5e ~s7e ~b7e b1e s1e
k ~s5k ~b5k ~b3k ~s3k s5k b5k ~s5a ~b5a b3a s3a
a ~s5a ~b5a ~b3a ~s3a s5a b5a ~s5k ~b5k b3k s3k
i ~s5i ~b5i ~b3i ~s3i s5i b5i ~s3y ~b3y b5y s5y
n ~s5n ~b5n ~b3n ~s3n s5n b5n ~s3n ~b3n b5n s5n
y ~s5y ~b5y ~b3y ~s3y s5y b5y ~s3i ~b3i b5i s5i
q ~s5q ~b5q ~b3q ~s3q s5q b5q ~s3q ~b3q b5q s5q
j ~s5j ~b5j ~b3j ~s3j s5j b5j ~s5j ~b5j b3j s5j
r ~s5r ~b5r ~b3r ~s3r s5r b5r ~s5r ~b5r b3r s3r
4 c ~s4e ~b4e ~b4c ~s4c s4e b4e ~s0 ~b0 b8 s8
e ~s4c ~b4c ~b4e ~s4e s4c b4c ~s8 ~b8 b0 s0
k ~s4k ~b4k ~b4k ~s4k s4k b4k ~s4a ~b4a b4a s4a
a ~s4a ~b4a ~b4a ~s4a s4a b4a ~s4k ~b4k b4k s4k
i ~s4t ~b4t ~b4t ~s4t s4t b4t ~s4i ~b4i b4t s4t
n ~s4r ~b4r ~b4r ~s4r s4r b4r ~s2k ~b2k b6k s6k
y ~s4j ~b4j ~b4j ~s4j s4j b4j ~s2a ~b2a b6a s6a
q ~s4w ~b4w ~b4w ~s4w s4w b4w ~s4w ~b4w b4q s4q
j ~s4y ~b4y ~b4y ~s4y s4y b4y ~s6a ~b6a b2a s2a
r ~s4n ~b4n ~b4n ~s4n s4n b4n ~s6k ~b6k b2k s2k
t ~s4i ~b4i ~b4i ~s4i s4i b4i ~s4t ~b4t b4i s4i
w ~s4q ~b4q ~b4q ~s4q s4q b4q ~s4q ~b4q b4w s4w
z ~s4z ~b4z ~b4z ~s4z s4z b4z ~s4z ~b4z b4z s4z
5 c ~s3c ~b3c ~b5c ~s5c s3c b3c ~s7c ~b7c s1c b1c
e ~s3e ~b3e ~b5e ~s5e s3e b3e ~s1e ~b1e b7e s7e
k ~s3k ~b3k ~b5k ~s5k s3k b3k ~s3a ~b3a b5a s5a
a ~s3a ~b3a ~b5a ~s5a s3a b3a ~s3k ~b3k b5k s5k
i ~s3i ~b3i ~b5i ~s5i s3i b3i ~s5y ~b5y b3y s3y
n ~s3n ~b3n ~b5n ~s5n s3n b3n ~s5n ~b5n b3n s3n
y ~s3y ~b3y ~b5y ~s5y s3y b3y ~s5i ~b5i b3i s3i
q ~s3q ~b3q ~b5q ~s5q s3q b3q ~s5q ~b5q b3q s3q
j ~s3j ~b3j ~b5j ~s5j s3j b3j ~s3j ~b3j b5j s5j
r ~s3r ~b3r ~b5r ~s5r s3r b3r ~s3r ~b3r b5r s5r
6 c ~s2c ~b2c ~b6c ~s6c s2c b2c ~s6c ~b6c b2c s2c
e ~s2e ~b2e ~b6e ~s6e s2e b2e ~s2e ~b2e b6e s5e
k ~s2k ~b2k ~b6k ~s6k s2k b2k ~s4r ~b4r b4n s4n
a ~s2a ~b2a ~b6a ~s6a s2a b2a ~s4j ~b4j b4y s4y
i ~s2i ~b2i ~b6i ~s6i s2i b2i ~s2i ~b2i b6i s6i
n ~s2n ~b2n ~b6n ~s6n s2n b2n ~s6n ~b6n b2n s2n
7 c ~s1c ~b1c ~b7c ~s7c s1c b1c ~s5c ~b5c b3c s3c
e ~s1e ~b1e ~b7e ~s7e s1e b1e ~s3e ~b3e b5e s5e
8 ~s0 ~b0 ~b8 ~s8 s0 b0 ~s4e ~b4e b4c s4c

Generalizations

Von Neumann extensions

While not a rulespace in itself, a notation exists that allows for existing neighbourhoods to be extended by four cells. This is the notation used for range-2 von Neumann isotropic non-totalistic rules (in which it is combined with the range-1 Moore isotropic non-totalistic notation), and range-3 cross isotropic non-totalistic rules (in which it is combined with the range-2 cross isotropic non-totalistic notation).

This extension notation was initially proposed on February 24, 2019 by AforAmpere and Milo Jacquet for range-2 von Neumann isotropic non-totalistic rules.[2]

For each transition, use the transition corresponding to the configuration of the center 8 cells, aligned with the canonical directions in the table above. Then take the outside 4 cells, and depending on the configurations in the table below, add that letter.

a c d e f g i j
INT vN Extensions a.png INT vN Extensions c.png INT vN Extensions d.png INT vN Extensions e.png INT vN Extensions f.png INT vN Extensions g.png INT vN Extensions i.png INT vN Extensions j.png
k l m n o p q r
INT vN Extensions k.png INT vN Extensions l.png INT vN Extensions m.png INT vN Extensions n.png INT vN Extensions o.png INT vN Extensions p.png INT vN Extensions q.png INT vN Extensions r.png

For transitions that are the same under reflections or rotations, the canonical transition is the lowest alphabetically.

'x' is used after a totalistic number. An example range-2 von Neumann rulestring is 'B3x2ic1ei5x-3kr/S0x8x'.

bubblegum has also proposed to use the 'v' character to represent outer totalistic transitions for the inner 8 cells for range-2 von Neumann rules.[3]

Range-2 von Neumann neighbourhood

There are 618 different transitions possible in the range-2 von Neumann neighbourhood. Four notations have been proposed as of February 2018.[4]

As of 27 November 2020, the only CA simulation software which natively supports such rules is CAViewer.[5]

An earlier proposed notation for range-2 von Neumann isotropic non-totalistic rules is based on Hensel notation.[2] It never entered common use.

Range-2 cross neighbourhood

A proposal for this neighbourhood was mistakenly created in 2017,[6] and a second notation was created in mid-2020[7] (although missing a 3-cell and 5-cell transition).[8]

Range-2 knight neighbourhood

A notation for this was proposed in mid-2020[7] (with a duplicated 4-cell transition).[8]

3-state Moore neighbourhood

A notation for 3-state range-1 rules is underway.[9]

Hexagonal neighbourhood

Main article: Hexagonal neighbourhood#Isotropic non-totalistic rules

It is possible to define isotropic non-totalistic CAs on a hexagonal grid as well, using a notation due to Paul Callahan.

Table of isotropic non-totalistic rulespaces

Ambox notice.png It has been suggested that this page or section be split into List of rulespaces. (Discuss)

The number of unique transitions for higher ranges tends to be extremely large, and the development of notations for such rules is generally infeasible. The following table documents notable examples (grids are notated with Schläfli symbols as to simultaneously convey grid type and dimension):

Common name Rulespace definitions Transitions Notated? Major software support
Grid Range States Neighbourhood Golly LifeViewer lifelib
Block cellular automata {4,4} 1/2 2 Moore 6 Yes (Unnecessary)
- {4,4} 1 2 von Neumann 6 Trivial (Unnecessary)
3D vN non-totalistic {4,3,4} 1 2 von Neumann 10 No No No No
Non-totalistic hexagonal {6,3} 1 2 hexagonal 13 Yes No[n 1] Yes Yes
Knight INT {4,4} 2 2 knight 43 Yes No No No
Isotropic non-totalistic {4,4} 1 2 Moore 51 Yes Yes Yes Yes
Exploded {4,4} ≥1 2 variable[n 2] 51 Yes No Some[n 3] Some[n 4]
Cross INT {4,4} 2 2 cross 55 Yes No No No
- {4,4} 2 2 nonstandard[n 5] 570 No No No No
R2 von Neumann INT {4,4} 2 2 von Neumann 618 Yes No No Yes
- {4,4} 2 2 nonstandard[n 6] 618 No No No No
3-state knight INT {4,4} 2 3 knight 873 No No No No
3-state INT {4,4} 1 3 Moore 954 Yes No[n 7] No[n 7] No[n 7]
3-state cross INT {4,4} 2 3 cross 1035 No No No No
4-state knight INT {4,4} 2 4 knight 8356 No No No No
4-state INT {4,4} 1 4 Moore 8740 Yes No[n 7] No[n 7] No[n 7]
4-state cross INT {4,4} 2 4 cross 9316 No No No No
R2 hexagonal INT {6,3} 2 2 hexagonal 22668 No No No No
3-state R2 vN INT {4,4} 2 3 von Neumann 68715 No No No No
R2 Moore-without-corners {4,4} 2 2 circular 132744 No No No No
3D non-totalistic {4,3,4} 1 2 Moore 1426144[n 8] No No No No
R2 Moore INT {4,4} 2 2 Moore 2105872 No No No No
4D non-totalistic {4,3,3,4} 1 2 Moore 3148244699232062849152[n 9] No No No No
  1. The rulespace can be simulated via MAP strings, or, less preferably, ruletables, however no direct support for the notation exists.
  2. Based on the Moore neighbourhood, with the four edge cells and/or the four corner cells moved away from the origin a defined distance.
  3. The range-N "far corners" + range-M "far edges" cases are supported, but the general case of exploded Moore neighbourhoods are not.
  4. The range-2 "far corners" and range-3 "far edges" cases are supported, but the general case of exploded Moore neighbourhoods are not.
  5. The number is the same for a "circle" formed of four three-cell lines at distance 2 from the center, and four "pre-blocks" with the gaps all facing the center or all facing outwards (or any configuration of eight eightfold neighbours and two fourfold ones)
  6. Range-1 Moore, with added range-2 corners
  7. 7.0 7.1 7.2 7.3 7.4 7.5 The rulespace can be simulated via ruletables, however no direct support for the notation exists.
  8. first calculated by Milo Jacquet
  9. first calculated using the Pólya enumeration theorem by DroneBetter's dimensional_INT_enumerator.py (explained here)


A rule with an n-dimensional range-k Moore neighbourhood has OEISicon light 11px.pngA361870(n,2*k+1) transitions.

Soup-searching non-totalistic rules

Adam P. Goucher's apgsearch was modified to support isotropic non-totalistic rules by praosylen on December 17, 2015.[10] This hacked version was later modified in late January 2016 to be able to upload the search results to Catagolue.[11] However, apgsearch did not gain native support for these rules until v4.2, released on September 10, 2017, which can search isotropic non-totalistic rules without B0.[12] v4.66 and above also support the searching of isotropic hexagonal neighbourhood rules.[13] Range 2 von Neumann isotropic rules can also be searched by means of a ruletable using a custom neighbourhood.[14] However, note that GPU censuses support only outer-totalistic rules.

See also

References

  1. Connor Steppie (April 23, 2021). Re: Lemon41625's Cellular Automaton (discussion thread) at the ConwayLife.com forums
  2. 2.0 2.1 AforAmpere (February 23, 2019). Re: Range-2 von Neumann isotropic non-totalistic rulespace (discussion thread) at the ConwayLife.com forums
  3. bubblegum (August 26, 2020). Re: Range-2 von Neumann isotropic non-totalistic rulespace (discussion thread) at the ConwayLife.com forums
  4. Connor Steppie (February 9, 2019). Range-2 von Neumann isotropic non-totalistic rulespace (discussion thread) at the ConwayLife.com forums
  5. lemon41625 (November 29, 2020). Re: CAViewer - A Cellular Automaton Simulator written in Java (discussion thread) at the ConwayLife.com forums
  6. toroidalet (September 2, 2017). Re: Golly suggestions (discussion thread) at the ConwayLife.com forums
  7. 7.0 7.1 lemon41625 (July 23, 2020). Re: Pattern viewer for forum threads (discussion thread) at the ConwayLife.com forums
  8. 8.0 8.1 Re: Pattern viewer for forum threads (discussion thread) at the ConwayLife.com forums
  9. Connor Steppie (January 19, 2020). Re: 3-state range-1 outer-totalistic rulespace (discussion thread) at the ConwayLife.com forums
  10. praosylen (December 17, 2015). Re: Hacking apgsearch (discussion thread) at the ConwayLife.com forums
  11. Adam P. Goucher (January 21, 2016). Re: apgsearch v2.2 (discussion thread) at the ConwayLife.com forums
  12. Adam P. Goucher (September 10, 2017). Re: apgsearch v4.2 (discussion thread) at the ConwayLife.com forums
  13. Adam P. Goucher (December 1, 2018). Re: Non-totalistic hex rules (discussion thread) at the ConwayLife.com forums
  14. lemon41625 (June 19, 2020). Re: Range-2 von Neumann isotropic non-totalistic rulespace (discussion thread) at the ConwayLife.com forums

External links