Non-totalistic Rules - notations, projects, & discussion

For discussion of other cellular automata.
Post Reply
EricG
Posts: 199
Joined: August 19th, 2011, 5:41 pm
Location: Chicago-area, USA

Non-totalistic Rules - notations, projects, & discussion

Post by EricG » July 20th, 2012, 7:23 pm

This thread is for the general discussion of non-totalistic rules.


Life is called a "totalistic" rule or an "outer totalistic" rule because the cells surrounding the center cells are totaled, and these totals determine what happens next. There are also completely totalistic rules in which the center cell is included in the total, instead of allowing its status to create the distinction between birth rules and survival rules as Life does. "Non-totalistic" might refer to any other scheme, but for the purposes of this thread, it can refer to allowing the position of neighboring cells to play a role in determining the center cell's state. MCell's weighted life algorithm is a good introduction to non-totalistic rules. (See http://www.mirekw.com/ca/rullex_wlif.html)

What comes next will be very basic for many of you, but it took me awhile to see the big picture, and I thought it might be helpful for other beginners as well.



Non-totalistic Notations

As I recently surveyed various MCell Weighted life rules, it jumped out at me that I really couldn't tell how each rule worked at a glance. SimpleInverseFire is one of my favorite rules in the MCell Weighted Life collection, but looking at its specifications left me unclear on how it worked. I don't know about you, but I couldn't immediately see why patterns and inverse patterns work the same way, and I certainly didn't understand its relationship to various totalistic lifelike rules.

SimpleInverseFire
NW5,NN1,NE5,WW1, ME0,EE1,SW5,SS1,SE5,HI0,RS1,RS5,RS9,RS13, RS17,RS18,RS19,RS21, RS23,RS24,RB2,RB4,RB8,RB9,RB10,RB12,RB13, RB14,RB16,RB17,RB18, RB20,RB21,RB22,RB24

I did notice that MCell's Simple, SimpleInverse, and SimpleInverseFire rules were rather similar to David Bell's JustFriends rule, and were also similar to Tropylium's SansDomino rulespace.
JustFriends: http://members.tip.net.au/~dbell/
SansDomino: viewtopic.php?f=11&t=836

In David Bell's archive for the JustFriends rule, there is a collection of old mailing list messages in a file named "spaceships" that was really eye-opening. The participants there discuss three different notations which can represent JustFriends. Have a look, if you haven't already! David Bell and Alan Hensel suggest alternative more user-friendly ways to represent non-totalistic rules like Just Friends, while Jason Summers and Dean Hickerson discuss the best way to represent JustFriends in Weighted Life. I'm going to discuss each in turn, and list a few other schemes as well.


David Bell's notation: I found David Bell's notation a bit harder to use than Alan Hensel's, and so I haven't done much with it. If someone else would like to discuss its merits, I'd be very interested!

Alan Hensel's notation: Hensel's notation is an easier way to describe rules which are isotropic -- that is, patterns will work the same way after they rotated 90 or 180 degrees, and after they are flipped left-right or top-bottom. Alan Hensel introduces his scheme here: http://www.ibiblio.org/lifepatterns/neighbors.html
Alan does a really nice job of describing how his scheme works, and he provides a terrific graphical table of configurations.

Unfortunately, there is an opportunity for confusion over the lettering scheme. The notation on the above webpage appears to be the original version, the one referred to in the JustFriends spaceships file, but it doesn't appear to be used anywhere else. (It is because Alan Hensel does such a nice job of explaining his overall idea that I want to link to the page, despite the potential for confusion. ) Alan Hensel's applet, found elsewhere on his website, used an alternative version of the notation, but this capability isn't advertised.

Johan Bontes Life32 program also uses the same alternative version of Alan Hensel's notation, and it is intended for use by the public. Life32 can be found here: http://psoup.math.wisc.edu/Life32.html
Confusingly, "r" and "y" are swapped in Life32. Life32's rule dialog box shows the correct arrangements, but they are swapped in the implementation. What should work as 3r, 4r, and 5r, actually work as 3y, 4y, and 5y, and vice versa.

The "r" and "y" swap issue means that there is no official place to look up Hensel's notation as it is used in the Life32 program. However, to preserve compatibility with Life32, I vote for people to continue to use the Life32 version, as it is actually implemented. I'm including a graphical table of this version of Alan Hensel's notation below, and I've posted a script to allow Golly users to explore non-totalistic rules using this version of Hensel's notation here: viewtopic.php?f=9&t=933#p6815

Alan Hensel's notation, as implemented in Life32:

Code: Select all

x = 147, y = 97, rule = B/S012345678
21b3o6b5o5bo3bo6b3o6b5o5bo3bo5bo3bo6b3o10bo5b4o6b5o5bobobo5b5o$20bo3bo
5bo9bo2bo6bo3bo7bo7bo3bo5bo3bo5bo3bo9bo5bo3bo7bo7bobobo9bo$20bo9bo9bob
o7bo3bo7bo7bo3bo5bo3bo5bo3bo9bo5bo3bo7bo7bobobo8bo$20bo9b3o7b2o8b5o7bo
7bo3bo6bobo6bo3bo9bo5b4o8bo7bobobo7bo$20bo9bo9bobo7bo3bo7bo7bo3bo7bo7b
obobo5bo3bo5bo3bo7bo7bobobo6bo$20bo3bo5bo9bo2bo6bo3bo7bo8bobo8bo7bo2bo
6bo3bo5bo3bo7bo7bobobo5bo$21b3o6b5o5bo3bo5bo3bo5b5o7bo9bo8b2obo6b3o6bo
3bo7bo8bobo6b5o4$b3o6b7o$o3bo5bo5bo$o2b2o5bo5bo$obobo5bo2bo2bo$2o2bo5b
o5bo$o3bo5bo5bo$b3o6b7o4$b2o17b7o3b7o$obo17bo5bo3bo5bo$2bo17bobo3bo3bo
2bo2bo$2bo17bo2bo2bo3bo2bo2bo$2bo17bo5bo3bo5bo$2bo17bo5bo3bo5bo$5o15b
7o3b7o4$b3o16b7o3b7o3b7o3b7o3b7o3b7o$o3bo15bo5bo3bo5bo3bo5bo3bo5bo3bo
5bo3bo5bo$4bo15bobobobo3bo2bo2bo3bobo3bo3bobo3bo3bo2bo2bo3bo3bobo$3bo
16bo2bo2bo3bob2o2bo3bo2bo2bo3bob2o2bo3bo2bo2bo3bo2bo2bo$2bo17bo5bo3bo
5bo3bo2bo2bo3bo5bo3bo2bo2bo3bobo3bo$bo18bo5bo3bo5bo3bo5bo3bo5bo3bo5bo
3bo5bo$5o15b7o3b7o3b7o3b7o3b7o3b7o4$b3o16b7o3b7o3b7o3b7o3b7o3b7o3b7o3b
7o3b7o3b7o$o3bo15bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo
3bo5bo$4bo15bobobobo3bo2bo2bo3bobo3bo3bob2o2bo3bo3bobo3bobobobo3bo2b2o
bo3bo3bobo3bo3bobo3bobobobo$2b2o16bo2bo2bo3bob2o2bo3bo2b2obo3bob2o2bo
3bo2b2obo3bob2o2bo3bo2bo2bo3bo2bo2bo3bo2b2obo3bo2bo2bo$4bo15bobo3bo3bo
2bo2bo3bo2bo2bo3bo5bo3bo3bobo3bo5bo3bo2bo2bo3bob2o2bo3bo2bo2bo3bo2bo2b
o$o3bo15bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo$b
3o16b7o3b7o3b7o3b7o3b7o3b7o3b7o3b7o3b7o3b7o4$2b2o16b7o3b7o3b7o3b7o3b7o
3b7o3b7o3b7o3b7o3b7o3b7o3b7o3b7o$bobo16bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3b
o5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo$o2bo16bobobobo3bo2bo2bo
3bo2b2obo3bob3obo3bob2o2bo3bobobobo3bob2o2bo3bob2o2bo3bo3bobo3bobobobo
3bob3obo3bobo3bo3bob2o2bo$5o15bo2bo2bo3bob3obo3bob2o2bo3bob2o2bo3bo2bo
2bo3bob2o2bo3bob2o2bo3bob2o2bo3bob3obo3bo2bo2bo3bo2bo2bo3bob2o2bo3bo2b
o2bo$3bo16bobobobo3bo2bo2bo3bo3bobo3bo5bo3bob2o2bo3bobo3bo3bo2bo2bo3bo
3bobo3bo2bo2bo3bob2o2bo3bo2bo2bo3bo2b2obo3bo2b2obo$3bo16bo5bo3bo5bo3bo
5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo$3bo16b
7o3b7o3b7o3b7o3b7o3b7o3b7o3b7o3b7o3b7o3b7o3b7o3b7o4$5o15b7o3b7o3b7o3b
7o3b7o3b7o3b7o3b7o3b7o3b7o$o19bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5b
o3bo5bo3bo5bo3bo5bo$4o16bo2bo2bo3bobobobo3bo2b2obo3bo3bobo3bob2o2bo3bo
bo3bo3bobobobo3bob2o2bo3bob2o2bo3bobobobo$4bo15bob3obo3bo2b2obo3bob2o
2bo3bo2b2obo3bob2o2bo3bob3obo3bob3obo3bob2o2bo3bob2o2bo3bob3obo$4bo15b
o2b2obo3bobobobo3bobobobo3bob3obo3bob2o2bo3bob2o2bo3bobo3bo3bo2b2obo3b
obobobo3bo2bo2bo$o3bo15bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo
3bo5bo3bo5bo$b3o16b7o3b7o3b7o3b7o3b7o3b7o3b7o3b7o3b7o3b7o4$b3o16b7o3b
7o3b7o3b7o3b7o3b7o$o3bo15bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo$o19bo2bo
2bo3bobobobo3bo2b2obo3bo2b2obo3bobobobo3bob2o2bo$4o16bob3obo3bo2b2obo
3bob3obo3bo2b2obo3bob3obo3bob3obo$o3bo15bob3obo3bob3obo3bobobobo3bob3o
bo3bobobobo3bo2b2obo$o3bo15bo5bo3bo5bo3bo5bo3bo5bo3bo5bo3bo5bo$b3o16b
7o3b7o3b7o3b7o3b7o3b7o4$5o15b7o3b7o$4bo15bo5bo3bo5bo$3bo16bo2b2obo3bob
3obo$3bo16bob3obo3bo2b2obo$2bo17bob3obo3bob3obo$2bo17bo5bo3bo5bo$2bo
17b7o3b7o4$b3o6b7o$o3bo5bo5bo$o3bo5bob3obo$b3o6bob3obo$o3bo5bob3obo$o
3bo5bo5bo$b3o6b7o!
And here is the same table in Generations, so that the center cell can be a different color:

Code: Select all

x = 147, y = 97, rule = 012345678//3
21.3A6.5A5.A3.A6.3A6.5A5.A3.A5.A3.A6.3A10.A5.4A6.5A5.A.A.A5.5A$20.A3.
A5.A9.A2.A6.A3.A7.A7.A3.A5.A3.A5.A3.A9.A5.A3.A7.A7.A.A.A9.A$20.A9.A9.
A.A7.A3.A7.A7.A3.A5.A3.A5.A3.A9.A5.A3.A7.A7.A.A.A8.A$20.A9.3A7.2A8.5A
7.A7.A3.A6.A.A6.A3.A9.A5.4A8.A7.A.A.A7.A$20.A9.A9.A.A7.A3.A7.A7.A3.A
7.A7.A.A.A5.A3.A5.A3.A7.A7.A.A.A6.A$20.A3.A5.A9.A2.A6.A3.A7.A8.A.A8.A
7.A2.A6.A3.A5.A3.A7.A7.A.A.A5.A$21.3A6.5A5.A3.A5.A3.A5.5A7.A9.A8.2A.A
6.3A6.A3.A7.A8.A.A6.5A4$.3A6.7A$A3.A5.A5.A$A2.2A5.A5.A$A.A.A5.A2.B2.A
$2A2.A5.A5.A$A3.A5.A5.A$.3A6.7A4$.2A17.7A3.7A$A.A17.A5.A3.A5.A$2.A17.
A.A3.A3.A2.A2.A$2.A17.A2.B2.A3.A2.B2.A$2.A17.A5.A3.A5.A$2.A17.A5.A3.A
5.A$5A15.7A3.7A4$.3A16.7A3.7A3.7A3.7A3.7A3.7A$A3.A15.A5.A3.A5.A3.A5.A
3.A5.A3.A5.A3.A5.A$4.A15.A.A.A.A3.A2.A2.A3.A.A3.A3.A.A3.A3.A2.A2.A3.A
3.A.A$3.A16.A2.B2.A3.A.AB2.A3.A2.B2.A3.A.AB2.A3.A2.B2.A3.A2.B2.A$2.A
17.A5.A3.A5.A3.A2.A2.A3.A5.A3.A2.A2.A3.A.A3.A$.A18.A5.A3.A5.A3.A5.A3.
A5.A3.A5.A3.A5.A$5A15.7A3.7A3.7A3.7A3.7A3.7A4$.3A16.7A3.7A3.7A3.7A3.
7A3.7A3.7A3.7A3.7A3.7A$A3.A15.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.
A3.A5.A3.A5.A3.A5.A$4.A15.A.A.A.A3.A2.A2.A3.A.A3.A3.A.2A2.A3.A3.A.A3.
A.A.A.A3.A2.2A.A3.A3.A.A3.A3.A.A3.A.A.A.A$2.2A16.A2.B2.A3.A.AB2.A3.A
2.BA.A3.A.AB2.A3.A2.AB.A3.A.AB2.A3.A2.B2.A3.A2.B2.A3.A2.BA.A3.A2.B2.A
$4.A15.A.A3.A3.A2.A2.A3.A2.A2.A3.A5.A3.A3.A.A3.A5.A3.A2.A2.A3.A.2A2.A
3.A2.A2.A3.A2.A2.A$A3.A15.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A
5.A3.A5.A3.A5.A$.3A16.7A3.7A3.7A3.7A3.7A3.7A3.7A3.7A3.7A3.7A4$2.2A16.
7A3.7A3.7A3.7A3.7A3.7A3.7A3.7A3.7A3.7A3.7A3.7A3.7A$.A.A16.A5.A3.A5.A
3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A$A
2.A16.A.A.A.A3.A2.A2.A3.A2.2A.A3.A.3A.A3.A.2A2.A3.A.A.A.A3.A.2A2.A3.A
.2A2.A3.A3.A.A3.A.A.A.A3.A.3A.A3.A.A3.A3.A.2A2.A$5A15.A2.B2.A3.A.ABA.
A3.A.AB2.A3.A.AB2.A3.A2.B2.A3.A.AB2.A3.A.AB2.A3.A.AB2.A3.A.ABA.A3.A2.
B2.A3.A2.B2.A3.A.AB2.A3.A2.B2.A$3.A16.A.A.A.A3.A2.A2.A3.A3.A.A3.A5.A
3.A.2A2.A3.A.A3.A3.A2.A2.A3.A3.A.A3.A2.A2.A3.A.A3.A3.A2.A2.A3.A2.2A.A
3.A2.2A.A$3.A16.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A
3.A5.A3.A5.A3.A5.A3.A5.A$3.A16.7A3.7A3.7A3.7A3.7A3.7A3.7A3.7A3.7A3.7A
3.7A3.7A3.7A4$5A15.7A3.7A3.7A3.7A3.7A3.7A3.7A3.7A3.7A3.7A$A19.A5.A3.A
5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A$4A16.A2.A2.A3.A.A
.A.A3.A2.2A.A3.A3.A.A3.A.2A2.A3.A.A3.A3.A.A.A.A3.A.2A2.A3.A.2A2.A3.A.
A.A.A$4.A15.A.ABA.A3.A2.BA.A3.A.AB2.A3.A2.AB.A3.A.AB2.A3.A.ABA.A3.A.A
BA.A3.A.AB2.A3.A.AB2.A3.A.ABA.A$4.A15.A2.2A.A3.A.A.A.A3.A.A.A.A3.A.3A
.A3.A.2A2.A3.A.2A2.A3.A.A3.A3.A2.2A.A3.A.A.A.A3.A2.A2.A$A3.A15.A5.A3.
A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A$.3A16.7A3.7A3.7A
3.7A3.7A3.7A3.7A3.7A3.7A3.7A4$.3A16.7A3.7A3.7A3.7A3.7A3.7A$A3.A15.A5.
A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A$A19.A2.A2.A3.A.A.A.A3.A2.2A.A3.A2.2A.
A3.A.A.A.A3.A.2A2.A$4A16.A.ABA.A3.A2.BA.A3.A.ABA.A3.A2.BA.A3.A.ABA.A
3.A.ABA.A$A3.A15.A.3A.A3.A.3A.A3.A.A.A.A3.A.3A.A3.A.A.A.A3.A2.2A.A$A
3.A15.A5.A3.A5.A3.A5.A3.A5.A3.A5.A3.A5.A$.3A16.7A3.7A3.7A3.7A3.7A3.7A
4$5A15.7A3.7A$4.A15.A5.A3.A5.A$3.A16.A2.2A.A3.A.3A.A$3.A16.A.ABA.A3.A
2.BA.A$2.A17.A.3A.A3.A.3A.A$2.A17.A5.A3.A5.A$2.A17.7A3.7A4$.3A6.7A$A
3.A5.A5.A$A3.A5.A.3A.A$.3A6.A.ABA.A$A3.A5.A.3A.A$A3.A5.A5.A$.3A6.7A!
(The font is from this thread: viewtopic.php?f=7&t=403&p=2542 - thanks ExtremeEnthusiast!)

So back to Simple Inverse Fire....

Simple Inverse Fire in Alan Hensel's notation is B2ceiv4568/S156ak78. That's better -- now you can see the rule's inverse nature. And you can see the rule's relationship to B2 rules, and its relationship to JustFriends and the SansDomino rulespace. (JustFriends is B2-a/S12, or alternatively, B2ceikv/S12).
MCell's "Simple" rule is B2ceix/S1, and MCell's "Simple Inverse" is B2eicv56/S1456ak7, so again, you can see those rules relationship to each other, and to JustFriends and other SansDomino rules.

George Maydwell's notation: One problem using Hensel's notation is that it is hard to remember which letter goes with which configuration. Despite Hensel's attempt to use mnemonics, you really need to consult a chart to use the notation. George Maydwell solves this problem with his notation -- and you'll have to read his webpage to understand what comes next.
George Maydwell's notation: http://www.collidoscope.com/modernca/words.html
In Maydwell's notation, you only need to know the number of side neighbors (N, S, E, and W, as opposed to the corner neighbors NE, NW, SE, and SW). This means you can reconstruct the notation in your head -- you don't need to go find a special table. Brilliant!

You can look for interesting rules using Maydwell's rule checklab program here: http://www.collidoscope.com/cgolve/rulechecklab.html
It would be quite easy to create a Maydwell script for Golly, as I did for Hensel notation and Weighted life. And it is easy to convert Maydwell's notaion into Hensel notation or Weighted Life notation. If anyone wants scripts to do this and doesn't know how to create them, just ask.

Unfortunately, Maydwell's notation covers fewer cases than Alan Hensel, and in particular, you can't represent JustFriends in Maydwell's notation. This chart explains it:

Code: Select all

   Hensel     Maydwell
------------------------
   2c           2a (zero side cells)
   2v           2a (zero side cells)
   2k           2b (one side cells)
   2a           2b (one side cells) 
   2e           2c (two side  cells)
   2i           2c (two side cells)
Maydwell's notation "2b" means the central cell has two neighbors, and one of them is a side neighbor and one is a corner neighbor. Hensel's notation uses two ways to represent this situation: 2a (one way to have a side neighbor and a corner neighbor) and 2k (another way to have a side neighbor and a corner neighbor). JustFriends is B2ceikv/S12, and so 2k is allowed. There is no way to say yes to 2a but no to 2k in Maydwell's notation.


The clarity of Maydwell's notation comes at the expense of being able represent fewer rules. Of course, that's true of Hensel's notation as well -- its readablity comes at the expense of not being able to represent non-isotropic rules. It would be interesting to see a notation that allowed the generality of Weighted Life, but with greater readability. Maybe David Bell's notation?

Weights in Weighted Life: Understanding the distinction between George Maydwell's notation and Alan Hensel's notation helped me understand why MCell's weighted life rules look the way they do. If you run through the MCell collection, you'll see the same few weightings again and again -- essentially, these common weightings are different notation schemes.

Many MCell rules, such as Simple and Simple Inverse Fire, use this set of weights:
5 1 5
1 C 1
5 1 5
This set of weights distinguishes between corner cells and side cells -- it captures the same distinction George Maydwell does. All rules with this set of weights are isotropic, and can be represented using Hensel's notation, or Maydwell's.

Other rules use other weighting schemes where (NW = NE = SE = SW) and (N = E = S = W) and N != NW. For example, Ben's Rule uses this set of weights:
3 2 3
2 C 2
3 2 3
Again, the key distinction is between corner cells and side cells. The only difference from Simple's weights is that this set of weights allows the Birth and Survival values to do double duty -- RS6 (or RB6) can refer to three side cells or two corner cells. But you could rewrite Ben's rule to use Simple's weights, it would just need more birth and survival specifications to achieve the same thing. And you can rewrite Ben's rule in Hensel's notation, or Maydwell's. If you want to compare different rules, this sort of rewrite might be helpful. I've provided a script which translates isotropic Weighted Life rules into Alan Hensel's notation, for just this purpose here: viewtopic.php?f=9&t=933#p6816

Jason Summers used this set of weights to represent JustFriends:

Code: Select all

001 002 004
128 ccc 008
064 032 016
Each neighbor gets a unique weight, and since each weight is a power of 2, birth and survival values can make the necessary distinctions. Here's Jason Summers' complete JustFriends rule in Weighted Life:

#RULE NW1,NN2,NE4,WW128,ME0,EE8,SW64,SS32,SE16,HI0,RS1,RS2,RS3,RS4,RS5
#RULE ,RS6,RS8,RS9,RS10,RS12,RS16,RS17,RS18,RS20,RS24,RS32,RS33,RS34,R
#RULE S36,RS40,RS48,RS64,RS65,RS66,RS68,RS72,RS80,RS96,RS128,RS129,RS1
#RULE 30,RS132,RS136,RS144,RS160,RS192,RB5,RB9,RB10,RB17,RB18,RB20,RB3
#RULE 3,RB34,RB36,RB40,RB65,RB66,RB68,RB72,RB80,RB130,RB132,RB136,RB14
#RULE 4,RB160

For a universal Hensel notation -> Weighted Life converter, Jason Summers' weights can be used.
And these weights can be used to represent any non-totalistic rule in the Moore neighborhood (and in smaller neighborhoods with 6, 4, or 2 neighbors).

Dean Hickerson, being a remarkably clever person, found weights that allowed JustFriends to be represented using fewer birth and survival values:

#RULE NW1,NN33,NE37,WW17,ME0,EE29,SW9,SS13,SE45,HI0,RS1,RS9,RS10,RS13,
#RULE RS14,RS17,RS18,RS22,RS26,RS29,RS30,RS33,RS34,RS37,RS38,RS42,RS45
#RULE ,RS46,RS50,RS54,RS58,RS62,RS66,RS70,RS74,RS78,RS82,RB10,RB14,RB3
#RULE 0,RB38,RB42,RB46,RB50,RB54,RB62,RB78,RB82

Dean Hickerson's weights mean that EE + SS == NN + SW. And WW + NN == SS + NE. That's fine for JustFriends, which was the goal. I'm not sure whether these same weights are useful for many other interesting rules as well.

Other common weighting schemes include non-isotropic "rotationally symmetric" weights, like this:
1 1 5
5 C 5
5 1 1

and Hexagonal weights, like this:
1 1 0
1 C 1
0 1 1


Paul Callahan's notation: Paul Callahan came up with a notation for six neighbor hexagonal neighborhoods. If you haven't already, be sure to read his article here:
http://www.radicaleye.com/lifepage/hexrule.txt and download this zip file: http://ruletablerepository.googlecode.c ... oS2m34.zip
As Callahan points out, his notation only covers the case of two neighbors. A good project would be to extend his notation to cover three and four neighbors (five and six neighbors don't need a notation, as there is only one configuration for each, in isotropic rules.)

Also: George Maydwell extended his notation for a 12 neighbor hexagonal neighborhood -- see the link above.

Stephen Wolfram's notation: Wolfram's 1 dimensional elementary cellular automata are non-totalistic. You can read about this notation in many places on the web, including here:
http://en.wikipedia.org/wiki/Elementary ... _automaton
and you can try out these cellular automata in Golly using the Quicklife algorithm.

Finally, of course, Golly's ruletable and ruletree formats are ways to represent non-totalistic rules.

If anyone knows of other useful notations, please comment!
Last edited by EricG on July 22nd, 2012, 5:10 pm, edited 3 times in total.

EricG
Posts: 199
Joined: August 19th, 2011, 5:41 pm
Location: Chicago-area, USA

Re: Non-totalistic Rules - notations, projects, & discussion

Post by EricG » July 22nd, 2012, 3:17 am

Emmanuel Sapin's research is amazing. It should be of great interest to anyone who reads this forum.

I've known of Emmanuel's work for quite some time, but I foolishly neglected his work because I didn't understand his rule notation. You guessed it - he uses Alan Hensel's non-totalistic notation! And in particular, Alan Hensel's Life32 swapped y-and-r notation! :D

In fact, Emmanuel was the one who kindly pointed out to me that y-and-r were swapped in Life32, after I wrote to him to ask why I couldn't get his patterns to work.

His CV is here: http://uncomp.uwe.ac.uk/sapin/cv/cv.htm Scroll down for a collection of fascinating papers.

His research page is here: http://uncomp.uwe.ac.uk/sapin/recherche/recherche.htm You'll find a collection of automatically detected gliders in non-totalistic rules. You'll also find an emulation of Conway's game of life in Sapin's non-totalistic rule "R". You can read about these in the papers collection.

His archive of one thousand spontaneously occurring automatically detected glider guns is here:
http://uncomp.uwe.ac.uk/sapin/ea/gun.zip

The script I posted to convert Hensel notation to Golly's rule tables was specifically written to read Emmanuel Sapin's Life32 format files.
The script is here: viewtopic.php?f=9&t=933#p6815
Here's how to use it:
1) Open any of Sapin's files in a text editor,
2) Select everything starting with "#r", copy it to your clipboard, and then
3) Click on the HenselNotation->Ruletable.py script. You won't see the usual dialog box -- instead, an appropriate ruletable will be created, and then you can simply paste the pattern into Golly's active layer.

Enjoy learning about Emmanuel Sapin's research!

User avatar
Tropylium
Posts: 421
Joined: May 31st, 2011, 7:12 pm
Location: Finland

Re: Non-totalistic Rules - notations, projects, & discussion

Post by Tropylium » July 22nd, 2012, 3:08 pm

Very interesting posts!

I will say that the weighted rules approach seems kind of like overkill: even without going into generations, this allows for distinguishing ℕ⁸ different environments — and yet there are only 2⁸ that can actually contrast in a 2-state Moore neighborhood CA. The summation approach also makes it needlessly difficult to distinguish some environments (IMO eg. Just Friends can be described far more transparently in the RuleTable format).

For finer differentiation between neighborhoods while retaining isotropicity, I've been using a "degree" attribute. This describes how surrounded a cell is; if a cell's largest "window" (series of adjacent empty cells) is N cells, then the degree of its neighborhood is 8-N. This may sound arbitrary, but it produces rather similar results as sorting neighborhoods by the total number of live cells ("weight") does: the potentially interesting rules are the ones with B3, anything with B2 or B1 explodes, anything with only B≥4 is incapable of escaping its bounding octagon.

Here's a table of neighborhoods arranged by weight and degree:

Code: Select all

x = 261, y = 265, rule = LifeHistory
200.B3.B8.B11.B3.B8.2B$200.B.B.B2.3B2.2B11.B.B.B2.3B2.B2.B$200.B.B.B
8.B11.B.B.B7.B2.B$201.B.B3.3B3.B12.B.B3.3B2.B2.B$201.B.B9.B12.B.B9.2B
6$223.B19.B$223.B19.B$221.25B$223.B19.B$223.B19.B$223.B19.B$223.B19.B
$223.B19.B$223.B19.B$223.B19.B$175.B3.B8.2B33.B19.B2.3B9.2B$175.B.B.B
2.3B2.B2.B32.B19.B2.B2.B2.3B2.B2.B$175.B.B.B9.B33.B9.D9.B2.B2.B7.B2.B
$176.B.B3.3B3.B34.B19.B2.B2.B2.3B2.B2.B$176.B.B8.4B32.B19.B2.3B9.2B$
223.B19.B$223.B19.B$223.B19.B$223.B19.B$223.B19.B$193.B29.B19.B$193.B
29.B19.B$191.55B$193.B29.B19.B$193.B29.B19.B$193.B29.B$193.B29.B$193.
B29.B$193.B29.B$193.B29.B$150.B3.B7.2B29.B29.B22.3B9.B$150.B.B.B2.3B
4.B28.B29.B22.B2.B2.3B2.2B$150.B.B.B8.B29.B9.D9.D9.B22.B2.B8.B$151.B.
B3.3B4.B28.B9.A10.A8.B22.B2.B2.3B3.B$151.B.B8.2B29.B29.B22.3B9.B$193.
B29.B$193.B29.B$193.B29.B$193.B29.B$193.B29.B$173.B19.B29.B$173.B19.B
29.B$171.55B$173.B19.B29.B$173.B19.B29.B$173.B19.B$173.B19.B$173.B19.
B$173.B19.B$173.B19.B$115.B3.B9.B43.B19.B32.3B9.2B$115.B.B.B2.3B3.B
44.B19.B32.B2.B2.3B2.B2.B$115.B.B.B7.4B42.B9.D9.B32.B2.B9.B$116.B.B3.
3B4.B43.B9.2A8.B32.B2.B2.3B3.B$116.B.B10.B43.B19.B32.3B8.4B$173.B19.B
$173.B19.B$173.B19.B$173.B19.B$173.B19.B$143.B29.B19.B$143.B29.B19.B$
141.55B$143.B29.B19.B$143.B29.B19.B$143.B29.B19.B$143.B29.B19.B$143.B
29.B19.B$143.B29.B19.B$143.B29.B19.B$143.B29.B19.B22.B$143.B29.B19.B
19.B2.B$143.B19.D9.B9.D9.B12.B2.2B.3B.2B$143.B18.3A8.B8.A.A8.B11.B.B.
B3.B2.B.B$143.B29.B19.B12.B2.B4.B.B.B.B$143.B29.B19.B$143.B29.B19.B$
143.B29.B19.B$143.B29.B19.B$143.B29.B19.B$143.B29.B19.B32.3B8.2B$143.
B29.B19.B32.B2.B2.3B4.B$141.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B
.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B4.B2.B8.B$143.B29.B19.B32.B2.
B2.3B4.B$143.B29.B19.B32.3B8.2B$143.B29.B19.B$143.B29.B19.B$143.B29.B
19.B$143.B29.B19.B$143.B29.B19.B$80.B3.B7.4B47.B29.B19.B14.B$80.B.B.B
2.3B2.B50.B29.B19.B14.B.B$80.B.B.B7.3B48.B19.DA8.B9.DA8.B13.2B4.2B2.B
$81.B.B3.3B5.B47.B19.2A8.B9.A9.B12.B.B.B.B.B.B.B$81.B.B8.3B48.B29.B
19.B13.2B.B2.2B2.2B.B$143.B29.B19.B24.B$143.B29.B19.B23.B$143.B29.B
19.B$143.B29.B19.B$103.B39.B29.B19.B$103.B39.B29.B19.B$103.B39.B29.B
19.B$101.95B$103.B39.B29.B19.B$103.B39.B29.B19.B$103.B39.B29.B19.B$
103.B39.B29.B19.B$103.B39.B29.B19.B$103.B39.B29.B19.B$103.B39.B29.B
19.B$50.B3.B8.2B38.B39.B29.B19.B32.3B10.B$50.B.B.B2.3B2.B40.B39.B29.B
19.B32.B2.B2.3B3.B$50.B.B.B7.3B38.B29.DA8.B9.DA8.DA8.B9.DA8.B32.B2.B
7.4B$51.B.B3.3B2.B2.B37.B28.3A8.B8.2A8.A.A8.B8.A10.B32.B2.B2.3B4.B$
51.B.B9.2B38.B39.B29.B19.B32.3B10.B$103.B39.B29.B19.B$103.B39.B29.B
19.B$103.B39.B29.B19.B$103.B39.B29.B19.B$73.B29.B39.B29.B19.B$73.B29.
B39.B29.B19.B$73.B29.B39.B29.B19.B$71.125B$73.B29.B39.B29.B19.B$73.B
29.B39.B29.B19.B$73.B29.B39.B29.B19.B$73.B29.B39.B29.B19.B$73.B29.B
39.B29.B19.B$73.B29.B39.B29.B19.B$73.B29.B39.B29.B19.B$73.B29.B39.B
29.B19.B14.B$73.B20.A8.B20.A9.A8.B10.A9.A8.B10.A8.B14.B.B$73.B19.DA8.
B19.DA8.D9.B9.D9.D9.B9.D9.B13.2B4.2B2.B$73.B18.3A8.B18.2A8.3A8.B8.2A
8.A.A8.B8.A10.B12.B.B.B.B.B.B.B$73.B29.B39.B29.B19.B13.2B.B2.2B2.2B.B
$73.B29.B39.B29.B19.B24.B$73.B29.B39.B29.B19.B23.B$73.B29.B39.B29.B
19.B$73.B29.B39.B29.B19.B$73.B29.B39.B29.B19.B$73.B29.B39.B29.B19.B
32.3B8.4B$73.B29.B39.B29.B19.B32.B2.B2.3B2.B$71.B.B.B.B.B.B.B.B.B.B.B
.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.
B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B4.B2.B7.
3B$73.B29.B39.B29.B19.B32.B2.B2.3B5.B$73.B29.B39.B29.B19.B32.3B8.3B$
73.B29.B39.B29.B19.B$73.B29.B39.B29.B19.B$73.B29.B39.B29.B19.B$73.B
29.B39.B29.B19.B$73.B29.B39.B29.B19.B$25.B3.B7.3B33.B29.B39.B29.B19.B
22.B$25.B.B.B2.3B4.B33.B29.B39.B29.B19.B19.B2.B$25.B.B.B9.B33.B18.ADA
8.B18.ADA7.ADA8.B8.ADA7.ADA8.B8.ADA8.B12.B2.2B.3B.2B$26.B.B3.3B3.B34.
B18.3A8.B18.A.A8.2A8.B9.A10.A8.B19.B11.B.B.B3.B2.B.B$26.B.B9.B34.B29.
B39.B29.B19.B12.B2.B4.B.B.B.B$73.B29.B39.B29.B19.B$73.B29.B39.B29.B
19.B$73.B29.B39.B29.B19.B$73.B29.B39.B29.B19.B$73.B29.B39.B29.B19.B$
43.B29.B29.B39.B29.B19.B$43.B29.B29.B39.B29.B19.B$41.155B$43.B29.B29.
B39.B29.B19.B$43.B29.B29.B39.B29.B19.B$43.B29.B29.B39.B29.B$43.B29.B
29.B39.B29.B$43.B29.B29.B39.B29.B$43.B29.B29.B39.B29.B$43.B29.B29.B
39.B29.B$43.B29.B29.B39.B29.B$43.B20.A8.B10.A9.A8.B10.A9.A9.A8.B10.A
9.A8.B$43.B18.ADA8.B8.AD8.ADA8.B8.ADA7.AD8.ADA8.B8.AD8.AD9.B$43.B18.
3A8.B8.3A8.2A8.B9.A9.2A9.A8.B9.A10.A8.B$43.B29.B29.B39.B29.B$43.B29.B
29.B39.B29.B32.3B9.2B$43.B29.B29.B39.B29.B32.B2.B2.3B2.B$43.B29.B29.B
39.B29.B32.B2.B7.3B$43.B29.B29.B39.B29.B32.B2.B2.3B2.B2.B$43.B29.B29.
B39.B29.B32.3B9.2B$5.B3.B8.2B23.B29.B29.B39.B29.B$5.B.B.B2.3B2.B2.B
22.B29.B10.A9.A8.B10.A9.A9.A8.B29.B$5.B.B.B8.2B23.B29.B8.ADA7.ADA8.B
8.ADA7.AD8.AD9.B29.B$6.B.B3.3B2.B2.B22.B29.B8.2A8.A.A8.B8.A9.2A8.A.A
8.B29.B$6.B.B9.2B23.B29.B29.B39.B29.B$43.B29.B29.B39.B29.B$43.B29.B
29.B39.B29.B$43.B29.B29.B39.B29.B$43.B29.B29.B39.B29.B$43.B29.B29.B
39.B29.B$23.B19.B29.B29.B39.B29.B$23.B19.B29.B29.B39.B29.B$21.155B$
23.B19.B29.B29.B39.B29.B$23.B19.B29.B29.B39.B29.B$23.B19.B29.B29.B39.
B$23.B19.B29.B29.B39.B$23.B19.B29.B29.B39.B$23.B19.B29.B29.B39.B$23.B
19.B29.B29.B39.B$23.B19.B29.B29.B39.B$23.B7.3A9.B8.3A7.A.A8.B18.A.A8.
B28.A.A8.B$23.B8.DA9.B9.D9.DA8.B19.D9.B29.D9.B$23.B7.3A9.B8.3A7.3A8.B
18.3A8.B28.A.A8.B$23.B19.B29.B29.B39.B$23.B19.B29.B29.B39.B$23.B19.B
29.B29.B39.B$23.B19.B29.B29.B39.B$23.B19.B29.B29.B39.B$23.B19.B29.B
29.B39.B$23.B19.B29.B29.B39.B32.3B8.3B$23.B8.2A9.B8.2A9.A9.B19.A9.B
29.A9.B32.B2.B2.3B4.B$23.B7.ADA9.B8.ADA7.ADA8.B18.ADA8.B28.ADA8.B32.B
2.B9.B$23.B7.3A9.B9.2A7.3A8.B19.2A8.B29.A9.B32.B2.B2.3B3.B$23.B19.B
29.B29.B39.B32.3B9.B$23.B19.B29.B29.B39.B$23.B19.B29.B29.B39.B$23.B
19.B29.B29.B39.B$23.B19.B29.B29.B39.B$23.B19.B29.B29.B39.B$23.B19.B
29.B29.B39.B$23.B19.B19.2A8.B9.2A8.A9.B39.B$23.B19.B18.ADA8.B8.AD8.AD
A8.B39.B$23.B19.B18.A.A8.B8.A.A7.A.A8.B39.B$23.B19.B29.B29.B39.B$23.B
19.B29.B29.B39.B$23.B19.B29.B29.B39.B$23.B19.B29.B29.B39.B$23.B19.B
29.B29.B39.B$23.B19.B29.B29.B39.B$3.B19.B19.B29.B29.B39.B$3.B19.B19.B
29.B29.B39.B$.144B$3.B19.B19.B29.B29.B39.B$3.B19.B19.B29.B29.B39.B$3.
B19.B$3.B19.B$3.B19.B$3.B19.B$3.B19.B$3.B19.B132.3B9.2B$3.B8.3A8.B
132.B2.B2.3B2.B2.B$3.B8.ADA8.B132.B2.B8.2B$3.B8.3A8.B132.B2.B2.3B2.B
2.B$3.B19.B132.3B9.2B$3.B19.B$3.B19.B$3.B19.B$3.B19.B$3.B19.B$3.B19.B
$3.B19.B$26B$3.B19.B$3.B19.B!
In many cases these can be split into "orthogonal" and "diagonal" counterparts that only differ by a 45° rotation. The remaining distinctions can be stated in terms of the distribution of the neighboring cells, eg. 2+2 vs. 1+3 (for the w4d5 neighborhoods), or 1+1+2 vs. 1+2+1 vs. 2+2 (for w4d6).

IME, the rulespace with birth and death seems to have far fewer interesting rules than the regular weight-based one for some reason… but I have a few ideas on why this may be. For preliminary results, a few promising ones are B3/S1, B3/S13, B3/S14, B3/S2357, B3/S1457.

EricG
Posts: 199
Joined: August 19th, 2011, 5:41 pm
Location: Chicago-area, USA

Re: Non-totalistic Rules - notations, projects, & discussion

Post by EricG » July 22nd, 2012, 7:01 pm

I like your degree attribute, and your alternative table of the 51 isotropic configurations -- makes sense! But I didn't understand your last paragraph --which rulespace are you referring to? And how did you arrive at your list of promising B/S rules?

Paul Tooke
Posts: 111
Joined: May 19th, 2010, 7:35 am
Location: Cambridge, UK

Re: Non-totalistic Rules - notations, projects, & discussion

Post by Paul Tooke » July 23rd, 2012, 8:24 am

EricG wrote:
Unfortunately, there is an opportunity for confusion over the lettering scheme. The notation on the above webpage appears to be the original version, the one referred to in the JustFriends spaceships file, but it doesn't appear to be used anywhere else.
In fact, this scheme was modified after Johan Bontes pointed out that the number of mnemonics could be reduced by combining some of them. Unfortunately, the number of proposals for an extended rule notation proliferated until the discussion fizzled out with no candidate being ratified as a standard. The scheme as implemented by Alan Hensel in his applet is actually given in the table at http://www.ibiblio.org/lifepatterns/neighbors2.html. This appears to be identical (modulo some rotations/reflections) to the table in the Life32 help file.

and:
However, to preserve compatibility with Life32, I vote for people to continue to use the Life32 version, as it is actually implemented.
The 'r' and 'y' rule swap in Life32 is unfortunate, but I am not convinced that propogating this error is the way forward. The mnemonics were meant to help people remember what each neighbourhood looks like. Life32 is old and apparently no longer being developed and getting hold of the the bug-fixed version 2.16 isn't easy. I only managed to get Life32 to run on my machine when I asked Windows Vista "pretty please" to pretend that it was Windows 95 whilst running it. Even then, it doesn't look happy. Alan's applet implements the scheme as described without the 'r' & 'y' rule swap.

EricG
Posts: 199
Joined: August 19th, 2011, 5:41 pm
Location: Chicago-area, USA

Re: Non-totalistic Rules - notations, projects, & discussion

Post by EricG » July 23rd, 2012, 11:21 am

Thank you, and it is good to see that neighbors2 page! I withdraw my "vote". As long as everyone agrees to a convention, I'm happy.

My obsession over the issue comes from wasting time trying to get various patterns to work using the wrong schemes. Since the three schemes have commonalities, it felt like an intermittant failure, and I was starting to wonder if the problem might be with some of the patterns.

I do wonder if there are other Life32 archives out there besides Emmanual Sapin's which use the swapped scheme.

In any case, I'd be happy to switch my posted scripts around to use the correct scheme, and I'll also post a version, clearly labeled, which will open Sapin's files and any other Life32 files, should they exist.

Post Reply