Alternate hexagonal neighbourhood rules

For discussion of other cellular automata.
Post Reply
wildmyron
Posts: 1544
Joined: August 9th, 2013, 12:45 am
Location: Western Australia

Alternate hexagonal neighbourhood rules

Post by wildmyron » November 13th, 2014, 2:44 am

Some time ago I adapted Paul Tooke and EricG's hacked version of gfind for hexagonal rules to search 22da (aka Hex B2S2op). This resulted in the discovery of a second small ship which travels at the same speed as the well known ship. These ships might be thought of as travelling diagonally, but this is an illusion due the simulation on a Moore neighbourhood in Golly. I believe they are better described as travelling at (1,1,0)c/3, where the three values correspond to movement along axes in the direction of unit vectors from the central cell to nearest neighbours. This might be referred to as an oblique direction or there may be some other terminology I'm unaware of. A ship moving in the direction of a single axis [ (1,0,0)c/v ] corresponds to both orthogonal and diagonal ships in Moore neighbourhoods in the sense of being in the direction of a nearest neighbour to a central cell. I'll refer to such ships as axial for this post.

I was particularly interested in finding axial ships in 22da, which in the hacked version of gfind are found with orthogonal searches for asymmetrical ships. Alas, I didn't find any across a range of speeds from c/2 -> c/6, but I did run a few searches with bilateral symmetry out of curiosity. This gave a few results, but only half of the ship works, because the reflected half is essentially assumed to have the reflected hexagonal neighbourhood embedded in the Moore neighbourhood, i.e. the opposite diagonal neighbours are unused. It occurred to me that a rule with three states where one live state obeyed the 22da rules in the traditional hexagonal neighbourhood and the other obeyed the 22da rules in the opposing hexagonal neighbourhood would be able to support such ships. Here is such a rule:

Code: Select all

@RULE AltHex_B2S2op

3 state rule where each live state simulates 22da on a hexagonal grid,
except the diagonal neighbours are flipped for the two active states.

Both states count towards survival and birth for each state.
State of orthogonal neighbours takes precedence when determining which
state a cell will be born into.
In the case of ambiguity about which state a cell should be born as, the
cell remains dead.

State 1 uses the traditional hexagonal neighbourhood:
NW N
 W 1  E
   S SE
Rule format: C, N, X, E,SE, S, X, W,NW, C'

State 2 uses the alternate hexagonal neighbourhood:
   N NE
 W 1  E
SW S
Rule format: C, N,NE, E, X, S,SW, W, X, C'


@TABLE
n_states:3
neighborhood:Moore
symmetries:none

var a = {0,1,2}
var b = {a}
var c = {a}
var d = {a}
var e = {a}
var f = {a}
var g = {a}
var h = {a}

var i = {1,2}
var j = {i}
var k = {i}

# Birth 2o
0,1,a,1,0,0,b,0,0,1
0,0,a,1,i,0,b,0,0,1
0,0,a,0,i,1,b,0,0,1
0,0,a,0,0,1,b,1,0,1
0,0,a,0,0,0,b,1,i,1
0,1,a,0,0,0,b,0,i,1

0,2,i,0,a,0,0,0,b,2
0,0,i,2,a,0,0,0,b,2
0,0,0,2,a,2,0,0,b,2
0,0,0,0,a,2,i,0,b,2
0,0,0,0,a,0,i,2,b,2
0,2,0,0,a,0,0,2,b,2

# Birth 2m
0,1,a,0,i,0,b,0,0,1
0,0,a,1,0,1,b,0,0,1
0,0,a,0,i,0,b,1,0,1
0,0,a,0,0,1,b,0,i,1
0,1,a,0,0,0,b,1,0,1
0,0,a,1,0,0,b,0,i,1

0,2,0,2,a,0,0,0,b,2
0,0,i,0,a,2,0,0,b,2
0,0,0,2,a,0,i,0,b,2
0,0,0,0,a,2,0,2,b,2
0,2,0,0,a,0,i,0,b,2
0,0,i,0,a,0,0,2,b,2

# Birth 2p
0,1,a,0,0,1,b,0,0,1
0,0,a,1,0,0,b,1,0,1
# 0,0,a,0,1,0,b,0,j,1
# 0,0,a,0,i,0,b,0,1,1
0,0,a,0,1,0,b,0,1,1

0,2,0,0,a,2,0,0,b,2
# 0,0,2,0,a,0,j,0,b,2
# 0,0,i,0,a,0,2,0,b,2
0,0,2,0,a,0,2,0,b,2
0,0,0,2,a,0,0,2,b,2

# Survival 2o
1,i,a,j,0,0,b,0,0,1
1,0,a,i,j,0,b,0,0,1
1,0,a,0,i,j,b,0,0,1
1,0,a,0,0,i,b,j,0,1
1,0,a,0,0,0,b,i,j,1
1,i,a,0,0,0,b,0,j,1

2,i,j,0,a,0,0,0,b,2
2,0,i,j,a,0,0,0,b,2
2,0,0,i,a,j,0,0,b,2
2,0,0,0,a,i,j,0,b,2
2,0,0,0,a,0,i,j,b,2
2,i,0,0,a,0,0,j,b,2

# Survival 2p
1,i,a,0,0,j,b,0,0,1
1,0,a,i,0,0,b,j,0,1
1,0,a,0,i,0,b,0,j,1

2,i,0,0,a,j,0,0,b,2
2,0,i,0,a,0,j,0,b,2
2,0,0,i,a,0,0,j,b,2

# Death Otherwise
1,a,b,c,d,e,f,g,h,0
2,a,b,c,d,e,f,g,h,0
The rule should be symmetrical under state swap, but this results in ambiguity for some configurations as to whether a cell should be born as state 1 or state 2. In these situations I chose to leave the cell unborn. Here is a demonstration of the two 22da states using alternate hexagonal neighbourhoods:

Code: Select all

x = 30, y = 30, rule = AltHex_B2S2op
2B2.B20.A2.2A$2B26.2A$2.B24.A2$B28.A6$.2B4.2B12.2A4.2A$B8.B10.A8.A$B
8.B10.A8.A5$.B6.B12.A6.A$2.B4.B14.A4.A$B8.B10.A8.A6$B28.A2$2.B24.A$2B
26.2A$2B2.B20.A2.2A!
Here is a ship which travels in an axial direction based on the search results mentioned above:

Code: Select all

x = 24, y = 30, rule = AltHex_B2S2op
6.B10.A$4.B.B10.A.A$3.3B12.3A$6.B10.A$2.2B16.2A$.B3.B5.BA5.A3.A2$2.B.
B5.2B2A5.A.A$8.B6.A$.2B5.B6.A5.2A$B5.B.B6.A.A5.A$.B2.B3.3B2.3A3.A2.A$
2.B2.B12.A2.A$4.B6.BA6.A$3.B.B.3B.BA.3A.A.A$4.2B2.B6.A2.2A2$9.2B2.2A$
9.B4.A2$8.B6.A$7.B2.2B2A2.A$6.B.B2.BA2.A.A$7.B2.B2.A2.A$10.B2.A$5.B4.
2B2A4.A$3.B3.B8.A3.A$5.B4.B2.A4.A$3.B.4B6.4A.A$4.B14.A!
Each half is made up of cells of the state with hexagonal neighbourhood required to support itself, and the two halves support each other. However, there are a lot of unexpected patterns made up of combinations of state 1 and state 2 cells, including a domino with one cell of each state which is an axial ship of speed c. This clearly demonstrates the non-isotropic nature of the rule, but also an underlying chirality. In fact, the rule turns out to be quite explosive with many ships and puffers that travel at c. I'll finish with a few patterns that show the dynamics of the rule.

A small random pattern on a toroidal universe:
EDIT: Replaced with different pattern due to rule change to correct mistake.

Code: Select all

x = 20, y = 20, rule = AltHex_B2S2op
.B4.B6.B3.A$8.B7.2BA$5.2A6.B.B$A5.A2B3.A.A.B$3A7.A3.BA$2.A7.B2.B4.2A$
.A7.B.A2.A.A$2.B5.A.A3.B3.2A$7.A2B8.AB$.A2.B5.A.B$4.A4.BA.B4.B$B2.B$
3.AB5.B8.A$6.B.AB4.A4.A$7.B.B6.A.AB$7.B.B8.A$.B2.A5.B4.B$2.A3.A8.B.B.
B$2.B3.A3.2B.A.A$.2A6.B4.A2.B!
The ship from above, flipped across the x-axis. The result is chaotic, presumably quadratic growth which reminds me of the line puffers explored early on in the 22da thread. Behaviour starts to get interesting after 20k gen. I ran it for 150k gen without it appearing to become periodic.

Code: Select all

x = 24, y = 30, rule = AltHex_B2S2op
4.B14.A$3.B.4B6.4A.A$5.B4.B2.A4.A$3.B3.B8.A3.A$5.B4.2B2A4.A$10.B2.A$
7.B2.B2.A2.A$6.B.B2.BA2.A.A$7.B2.2B2A2.A$8.B6.A2$9.B4.A$9.2B2.2A2$4.
2B2.B6.A2.2A$3.B.B.3B.BA.3A.A.A$4.B6.BA6.A$2.B2.B12.A2.A$.B2.B3.3B2.
3A3.A2.A$B5.B.B6.A.A5.A$.2B5.B6.A5.2A$8.B6.A$2.B.B5.2B2A5.A.A2$.B3.B
5.BA5.A3.A$2.2B16.2A$6.B10.A$3.3B12.3A$4.B.B10.A.A$6.B10.A!
EDIT: Fixed a mistake in one of the birth on 2m for state 2 rules.
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.

Semi-active here - recovering from a severe case of LWTDS.

Post Reply