Isotropic non-totalistic rule

From LifeWiki
(Redirected from Hensel notation)
Jump to navigation Jump to search

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 how the alive neighbours are arranged, not just their counts.

Patterns in isotropic non-totalistic rules preserve their behaviour when mirrored or rotated, as is the case in totalistic and outer-totalistic rulespaces. This is not necessarily the case for non-isotropic rules.

Square grid

For generalisations of usual outer-totalistic rules,[note 1] the following notation system is used. This notation is often referred to as Hensel notation, a system originally devised and named after Alan Hensel.

Rulestrings use the standard B[counts]/S[counts] system, the same as with outer-totalistic rules. Letters can be appended to each number to specify if birth or survival should happen depending on how surrounding cells are arranged; a minus sign can be placed between the number and letters to instead exclude listed arrangements. If a number is not followed by any letters, all arrangements will be accepted, as is the case for outer-totalistic rules.

For example, the rule tlife differs from Life in two ways:

  • a living cell will not survive if it has two diametrically-opposite orthogonal neighbours, like the central cell of a blinker,
  • a living cell will survive if it has four neighbours, like the two middle cells in the beacon's dense phase.

tlife otherwise functions identically to Life. We can express tlife using Hensel notation, which gives the rulestring B3/S2-i34q - survival on 2i is negated using a preceding minus sign, and survival on 4q is permitted. Birth and survival on 3 neighbours do not have any extra letters, indicating that arrangement is ignored for these. Note the similarity to Life's rulestring, B3/S23, since there are only two cases where behaviour is different.

A full list of letters and what arrangements they correspond to is as follows:

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

Hexagonal grid

Much like the Moore neighbourhood of the square grid, it is possible to define isotropic non-totalistic rules on the hexagonal grid. The standard notation used for the hexagonal grid, Callahan notation, was devised by Paul Callahan and generalises outer-totalistic hexagonal rulestrings in much the same way as for square-grid Moore rulestrings. The higher symmetry of hexagons combined with the smaller number of neighbours results in a comparatively smaller transition table, requiring only three letters compared to the thirteen needed for the square grid; these were chosen in analogy to arene substitution patterns[1] in aromatic chemistry.[2][3]

A full list of transitions is as follows:

0 1 2 3 4 5 6

(no letter)
INT hexagonal R1 0.png INT hexagonal R1 1.png INT hexagonal R1 5.png INT hexagonal R1 6.png
o
(ortho)
INT hexagonal R1 2o.png INT hexagonal R1 3o.png INT hexagonal R1 4o.png
m
(meta)
INT hexagonal R1 2m.png INT hexagonal R1 3m.png INT hexagonal R1 4m.png
p
(para)
INT hexagonal R1 2p.png INT hexagonal R1 3p.png INT hexagonal R1 4p.png

Generalizations

Main article: Higher-range isotropic non-totalistic rule

Isotropic non-totalistic rules can be generalized to higher ranges, higher cell state counts and other grid types.

Properties

Hensel's notation

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.

Ability for a pattern to escape its bounding shape

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).

What restrictions apply for rules with B0 remain to be described.

von Neumann emulation

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, not of a pair, but of 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

Software support

Support for isotropic non-totalistic rules on the square grid was implemented into Golly in August 2016 with the release of version 2.8. Prior to this, they could be ran as custom table rules under the RuleLoader algorithm, for which this was widely used. As of August 2024, Golly does not support Callahan notation for hexagonal rules.

LifeViewer supports Hensel notation for the square grid as of build 177 (officially build 182),[4] and Callahan notation as of build 313.[5]

Adam P. Goucher's apgsearch was modified to support isotropic non-totalistic rules by praosylen on December 17, 2015.[6] This hacked version was later modified in late January 2016 to be able to upload the search results to Catagolue.[7] 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.[8] v4.66 and above also support the searching of isotropic hexagonal neighbourhood rules.[9]

See also

Notes

  1. rules that operate on the square grid, with a Moore neighbourhood of range 1, and two cellstates

References

  1. Arene substitution pattern at Wikipedia
  2. Experiments with a somewhat "Life-like" hexagonal CA (long) at Paul Callahan's Page of Conway's Life Miscellany
  3. "ExtendedCallahanHexagonal.gif". ConwayLife.com forums. Retrieved on December 8, 2018.
  4. https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=29766#p29766
  5. https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=73364#p73364
  6. praosylen (December 17, 2015). Re: Hacking apgsearch (discussion thread) at the ConwayLife.com forums
  7. Adam P. Goucher (January 21, 2016). Re: apgsearch v2.2 (discussion thread) at the ConwayLife.com forums
  8. Adam P. Goucher (September 10, 2017). Re: apgsearch v4.2 (discussion thread) at the ConwayLife.com forums
  9. Adam P. Goucher (December 1, 2018). Re: Non-totalistic hex rules (discussion thread) at the ConwayLife.com forums

External links