Emulating larger 1D neighbourhoods by Golly 4.0

For discussion of other cellular automata.
Post Reply
Yoel
Posts: 384
Joined: July 2nd, 2020, 1:02 am
Location: Electronic jungle
Contact:

Emulating larger 1D neighbourhoods by Golly 4.0

Post by Yoel » November 17th, 2020, 2:41 am

New features of Golly 4.0, as a side effect of the extended Larger than Life notation, give an opportunity to explore all possible 2-state 1D CA with neighborhood ranges 2 and 3, as well as some important classes of larger 1D neighborhoods, e.g. totalistic, outer-totalistic or weighted by distance regardless of the cell's right or left position (up to range 5). The following rulestrings enable encoding of all 1D rules for range 2 and 3 neighborhoods:

Code: Select all

R2,C0,S0-31,B,NW00000000000802010410000000000000000000000000000000

Code: Select all

R3,C0,S0-127,B,NW00000000000000000000000000002008020104104000000000000000000000000000000000000000000000000000000000
Each possible rule can be encoded by a unique combination of birth rules:

Code: Select all

x = 83, y = 1, rule = R2,C0,S0-31,B3,5-7,9-10,12,15,17-18,20,23-24,27,29-30,NW00000000000802010410000000000000000000000000000000
b2ob3o2bo16b2obo3bob2o13bob3obo10bo2bob5obo2bo!

Code: Select all

x = 49, y = 12, rule = R2,C0,S0-31,B3,5-6,9-10,12,15,17-18,20,23-24,26-29,31,NW00000000000802010410000000000000000000000000000000
4$11b7o5bobo3bo2b2o!

Code: Select all

x = 605, y = 16, rule = R2,C0,S0-31,B3,5-7,9-10,12,15,17-18,20,23-25,27,29-30,NW00000000000802010410000000000000000000000000000000
8$29b2ob3ob3obo3bob9o2b2obo20bo3bo2b3o4b2ob3ob2obo95b2ob4obo4bob4obo
22b2ob2obo2b3ob2o36bobob2obob4obob5obob4o2bo2bob6ob13ob2o27bobob2ob3ob
obob3ob3obobo7b2obob3ob2o63b2o2bob2ob2obo64bobob5obobo!

Code: Select all

x = 268, y = 15, rule = R2,C0,S0-31,B3,5-7,9-10,12,15,17-18,20,23-24,30,NW00000000000802010410000000000000000000000000000000
7$15b7obobo2b4o217b6o2bo2bobo!

Code: Select all

x = 75, y = 7, rule = R3,C0,S0-127,B7,13-15,19,22-23,25-30,35,37-39,41-46,49-54,56-58,60,63,67,69-71,73-78,81-86,88-90,92,95,97-102,104-106,108,111-114,116,119-120,123,125-126,NW00000000000000000000000000002008020104104000000000000000000000000000000000000000000000000000000000
3$7b4o2b2o10b3o9b2o2b6obob2o9b6ob6o!

Code: Select all

x = 70, y = 7, rule = R3,C0,S0-127,B7,13-15,19,22-23,25-30,35,37-39,41-46,49-54,56-58,60,63,67,69-71,73-78,81-86,88-90,92,95,97-102,104-106,108,111-114,116,119-120,123,125,NW00000000000000000000000000002008020104104000000000000000000000000000000000000000000000000000000000
3$11b10o4b10o15b10o!
I suggest the same notation as Wolfram codes for such rules with some suffix or prefix denoting the radius. For example, the following two rules emulate Rule 110:

Code: Select all

x = 9, y = 1, rule = R2,C0,S0-31,B1,9,16-17,24,NW00000000000802010410000000000000000000000000000000
4bo!

Code: Select all

x = 26, y = 1, rule = R3,C0,S0-127,B1,33,64-65,96,NW00000000000000000000000000002008020104104000000000000000000000000000000000000000000000000000000000
13bo!
Their Wolfram code could be written as W1179698R2 and W4759259971017064317698R3 (binary 100100000000000110010 and 1000000100000000000000000000000000000000000000000000000000000001100000010).

The entire rulespace is 2^32 for radius 2 and 2^128 for radius 3, of which 2^20 and 2^72 rules have mirror symmetry. I also wrote a little toolkit in Lisp for producing such rulestrings by a list of birth/survival patterns, Wolfram encoding/decoding, checking and enforcing reflection etc.

Post Reply