Page 1 of 1

Naming scheme for Margolus rules

Posted: January 25th, 2018, 4:16 pm
by 77topaz
I've noticed that there doesn't seem to be any established notation to refer to the 64 different Margolus rules (besides writing out all the transitions), so I've thought up a system of referring to them similar to the one for Wolfram cellular automata. I'd be surprised if no-one thought of a system like this before, but I don't see it in use anywhere, so...

Firstly, take the six transitions of the rule; for convenience, let's list them in the order David Eppstein's website does (each digit represents a 2x2 block):

Code: Select all

00    00    00    01    11    11
00    01    11    10    10    11
Eppstein's website writes "-> 1" if a live block is produced, and "-> 0" otherwise. For the Margolus rule simulated by 2x2 blocks in the 2x2 rule (B36/S125), which is the most well-known of the Margolus rules to the point of often being referred to as simply "the Margolus rule", we have:

Code: Select all

0     0     1     0     0     0
Now, we concatenate those six digits into one binary string, and convert that to a decimal number, like the Wolfram rule naming scheme does. Thus, the Margolus rule in B36/S125 can be referred to as Margolus Rule 8, or M8.

Thoughts?

EDIT: I have decided to adopt dvgrn's suggestion below; the binary string is now converted to an octal number instead of decimal, meaning the Margolus rule in B36/S125 is now Margolus Rule 10, or M10.

Re: Naming scheme for Margolus rules

Posted: January 25th, 2018, 4:42 pm
by Majestas32
Of course there are actually 2^16 anisotropic Margolus rules.

Re: Naming scheme for Margolus rules

Posted: January 25th, 2018, 4:57 pm
by 77topaz
Majestas32 wrote:Of course there are actually 2^16 anisotropic Margolus rules.
Yes, that's true, but there are only 64 totalistic ones, and the totalistic Margolus rules are used a lot more often than non-totalistic ones.

Re: Naming scheme for Margolus rules

Posted: January 25th, 2018, 6:39 pm
by dvgrn
77topaz wrote:Now, we concatenate those six digits into one binary string, and convert that to a decimal number, like the Wolfram rule naming scheme does. Thus, the Margolus rule in B36/S125 can be referred to as Margolus Rule 8, or M8.
I suppose this is a reasonable standard, with the weight of some precedent behind it.

That said, the Wolfram naming scheme always seemed painfully unintuitive -- the conversion to decimal is just a way of obscuring the bits on which the rule is based.

In this case, the number fits really nicely into two digits in base 8. Any takers for numbering Margolus rules in octal?

Re: Naming scheme for Margolus rules

Posted: January 25th, 2018, 7:20 pm
by 77topaz
dvgrn wrote:I suppose this is a reasonable standard, with the weight of some precedent behind it.

That said, the Wolfram naming scheme always seemed painfully unintuitive -- the conversion to decimal is just a way of obscuring the bits on which the rule is based.

In this case, the number fits really nicely into two digits in base 8. Any takers for numbering Margolus rules in octal?
That also seems acceptable to me. With an octal system, the Margolus rule that B36/S125 simulates becomes Margolus Rule 10, or M10.



Another, related standard I think might be useful to establish is a way of referring to each of the five media that can support Margolus simulations in Life-like cellular automata (each digit represents a single cell in this case):

Code: Select all

00    00    01    11    11
01    11    10    10    11
We could use something like, from left to right, "s" (for "single"/"solo"; my first thought, "dot", conflicts with "diagonal"), "o" (for "orthogonal"), "d" (for "diagonal"), "p" (for "preblock") and "b" (for "block"). Combining this with the numbering system above gives a way of describing exactly the Margolus simulations a Life-like/Moore rule supports without requiring diagrams: "B36/S125 supports M10b", or "B2c3-cekq4ikt5i8/S2-in3-acky4aijry5eiky6i supports M10s, M10o, M10d and M10b".

Re: Naming scheme for Margolus rules

Posted: October 2nd, 2018, 7:21 am
by 77topaz
Recently, I found out about a new class of Margolus emulation in isotropic non-totalistic Life-like cellular automata: a diagonal version. Whereas the simplest orthogonal Margolus emulation requires only B2c to function (M10s in B2c/S), this version requires only B2e:

Code: Select all

x = 25, y = 6, rule = B2e/S
24bo$13bo9bo$3bo8bo9bo$2bo8bo9bo$bo8bo9bo$o8bo9bo!
These diagonal Margolus oscillators can also coexist with spaceships:

Code: Select all

x = 36, y = 6, rule = B2e3-ce/S2-cn3-ce
24bo$13bo9bo$3bo8bo9bo$2bo8bo9bo11b2o$bo8bo9bo11bo2bo$o8bo9bo14bo!

Re: Naming scheme for Margolus rules

Posted: January 6th, 2020, 9:36 pm
by muzik
77topaz wrote:
October 2nd, 2018, 7:21 am
Recently, I found out about a new class of Margolus emulation in isotropic non-totalistic Life-like cellular automata: a diagonal version.
Those had been known for pretty much forever though.


Other media that can support M10:

Code: Select all

x = 55, y = 25, rule = DeficientSeeds
A.A19.A.A27.A.A6$A.A19.A.A27.A.A6$22.A.A27.A.A6$22.A.A27.A.A6$52.A.A!

Code: Select all

x = 25, y = 9, rule = B1c/S1c|B2a/S1c2e
24bo$21bo$18bo$15bo$12bo$9bo$6bo$3bo$o!

Re: Naming scheme for Margolus rules

Posted: January 31st, 2020, 12:23 pm
by muzik
Also this recent discovery:
muzik wrote:
January 30th, 2020, 5:04 pm
Here's another rule that exhibits that same kind of Margolus behaviour:

Code: Select all

 x = 48, y = 48, rule = R2,C0,M0,S5..5,B3..3,NN
bo$obo$bo$4bo$3bobo$4bobo$5bobo$6bo$9bo$8bobo$9bobo$10bobo$11bobo$12bo
bo$13bo$16bo$15bobo$16bobo$17bobo$18bobo$19bobo$20bobo$21bobo$22bo$25b
o$24bobo$25bobo$26bobo$27bobo$28bobo$29bobo$30bobo$31bobo$32bobo$33bo$
36bo$35bobo$36bobo$37bobo$38bobo$39bobo$40bobo$41bobo$42bobo$43bobo$
44bobo$45bobo$46bo!