Half-Life

For discussion of other cellular automata.
Post Reply
User avatar
Extrementhusiast
Posts: 1970
Joined: June 16th, 2009, 11:24 pm
Location: USA

Half-Life

Post by Extrementhusiast » August 24th, 2012, 2:05 pm

This is a different type of rule that I came up with. Here it is:

Code: Select all

n_states:3
neighborhood:Moore
symmetries:permute

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

# Birth
# 0,2,b,c,d,e,f,g,h,1
0,2,2,c,d,e,f,g,h,1
0,2,2,2,d,e,f,g,h,1
# 0,2,2,2,2,e,f,g,h,1
0,2,2,2,2,2,f,g,h,1
# 0,2,2,2,2,2,2,g,h,1
# 0,2,2,2,2,2,2,2,h,1
# 0,2,2,2,2,2,2,2,2,1

# Change
1,a,b,c,d,e,f,g,h,0
1,2,b,c,d,e,f,g,h,2
1,2,2,c,d,e,f,g,h,0
1,2,2,2,d,e,f,g,h,0
1,2,2,2,2,e,f,g,h,2
1,2,2,2,2,2,f,g,h,0
1,2,2,2,2,2,2,g,h,0
1,2,2,2,2,2,2,2,h,0
1,2,2,2,2,2,2,2,2,0

# Death
2,a,b,c,d,e,f,g,h,1
# 2,2,b,c,d,e,f,g,h,1
2,2,2,c,d,e,f,g,h,1
2,2,2,2,d,e,f,g,h,1
# 2,2,2,2,2,e,f,g,h,1
2,2,2,2,2,2,f,g,h,1
2,2,2,2,2,2,2,g,h,1
2,2,2,2,2,2,2,2,h,1
2,2,2,2,2,2,2,2,2,1
Save this as halflife.table.

This rule has a common, large, sparky spaceship that could be used for rakes and puffers. I haven't ruled out the possibility of guns, though.
I Like My Heisenburps! (and others)

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

Re: Half-Life

Post by EricG » August 25th, 2012, 7:10 am

I like the rulespace.

Just to spell it out, the total number of state2 neighbors alone determine three decisions:
1) whether the intermediate State-1 is born,
2) whether State-1 gives birth to State-2 or drops back to State-0.
3) whether State-2 remains alive or drops back to State-1

And there is a similar rulespace in which decisions 1 and 2 would be identical to the above, but State-2 either remains State-2 or drops directly all the way back down to State-0. That's how the recently discussesed von Neuman neighborhood rule VN-B1x2S23 ("B1x2/S23V") works. ( Did that rule inspire Half-Life"?)

Here's another example of the first kind of rule. It isn't amazingly interesting, but random fields do evolve in a chaotic and somewhat life-like manner, spaceships are generated very readily, and there is a natural rake that behaves in a quite unusual way:

Code: Select all

n_states:3
neighborhood:Moore
symmetries:permute

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

# Birth
0,2,b,c,d,e,f,g,h,0
0,2,2,c,d,e,f,g,h,1
0,2,2,2,d,e,f,g,h,1
0,2,2,2,2,e,f,g,h,1
0,2,2,2,2,2,f,g,h,1
0,2,2,2,2,2,2,g,h,0
0,2,2,2,2,2,2,2,h,0
0,2,2,2,2,2,2,2,2,0

# Change
1,a,b,c,d,e,f,g,h,0
1,2,b,c,d,e,f,g,h,0
1,2,2,c,d,e,f,g,h,2
1,2,2,2,d,e,f,g,h,0
1,2,2,2,2,e,f,g,h,2
1,2,2,2,2,2,f,g,h,2
1,2,2,2,2,2,2,g,h,2
1,2,2,2,2,2,2,2,h,2
1,2,2,2,2,2,2,2,2,2

# Death
2,a,b,c,d,e,f,g,h,1
2,2,b,c,d,e,f,g,h,2
2,2,2,c,d,e,f,g,h,2
2,2,2,2,d,e,f,g,h,1
2,2,2,2,2,e,f,g,h,1
2,2,2,2,2,2,f,g,h,1
2,2,2,2,2,2,2,g,h,2
2,2,2,2,2,2,2,2,h,2
2,2,2,2,2,2,2,2,2,1
Interesting natural rake:

Code: Select all

x = 48, y = 76, rule = HalfLife2
21$25.2A$24.2AB$22.B3ABA$22.B2A2B$22.A3.B$25.A6$25.A2B$25.ABA16$26.2A
$25.4A$25.4A$26.2B!
Edit: Two rakes make a forward rake (which also sends ships in the other three orthogonal directions):

Code: Select all

x = 24, y = 100, rule = HalfLife2
19.2A$18.4A$18.3AB$19.A.B5$21.2BA$7.2A12.3A$6.B3A9.3BAB$6.B3A7.A4B2A$
7.2A8.AB2AB2A$18.4A$20.2A37$6.AB7.ABA$3.A2.B3A4.ABABA$4.B.B.BA4.BABAB
$5.A8.ABABA$3.BAB9.ABA$2.A2B$2B2A$B2A$2.2B28$20.2BA$18.5B$6.A2B9.B2A
2B$6.A2B10.ABABA$22.2B$21.AB5$20.2A$19.3B$19.2B!
I didn't know what to call the rule, and rules like this rule, with respect to your name "Half-Life". I was thinking of State-1 and State-2 as gears on a bicycle, in which you can't get from Gear 2 to Gear 0 without passing through Gear 1, but that analogy doesn't express the point that State-2 determines all the decisions.

The other rulespace, in which State-2 can only go directly to State-0 when the cell dies, reminds me of corporations with an "up or out" policy. State-2's are the bosses, and they hire (State0 -> State1), promote (State1 -> State2), fire (State1 -> State0) and can even fire their peers (State2 -> State0), but they never demote from State2 to State1, and employees are not allowed to stay at the same level, it is up or out (State1 must become State0 or State2).

Seems like both of these rulespaces make simplifying assumptions that would allow for a compact notation system, and it would be easy to make rule parsers/table generators to assist with finding new rules. Ba,x/Sy would cover either kind of rule. Or, to cover both kinds of rule with one notation, maybe Ba,x/Sy plus a flag -- "DMinus" if death means dropping down to state n-1, and DZero if death means dropping down to state 0. (Ok, well, maybe that's awkward, but I'm still playing around with it, and suggestions would be great.)

User avatar
Extrementhusiast
Posts: 1970
Joined: June 16th, 2009, 11:24 pm
Location: USA

Re: Half-Life

Post by Extrementhusiast » August 25th, 2012, 3:20 pm

I'm just going to call the new rule halflife2.table.

In terms of notation, it could be something like HL-B(whatever)/S(whatever)/T(0 or 1).

Also, variations on a single rule is nothing new. My Conway's Game of Stones rule has seven variations on the same basic concept. The first iteration of Half-Life was the most interesting of the possibilities that I initially considered, but it never came to fruition. It did have a small c/5 spaceship and a wickstretcher, but not much else, other than maze-like oscillators. (The rule under the notation would be HL-B35/S12/T1)

Finally, I came up with this rule idea independently. I actually found the b1x2s23 rule after I created this family of rules.
I Like My Heisenburps! (and others)

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

Re: Half-Life

Post by EricG » August 25th, 2012, 5:00 pm

Ah ha. Your response made me (finally!) notice that, in your Halflife rule, the number of neighbors which cause State1 to be promoted to State2 matches the number of neighbors which cause State2 to survive. So you can represent Halflife with just two numbers: Bx/Sy (and optionally a T flag). VN-B1x2S23 could be represented as B1/S23/T0V.

But in the rule I posted, the number of neighbors don't match, and rules like that would have to be represented by three numbers: Bx,y/Sz( and optionally a T flag). The rule I posted could be represented as B1234,245678/S1267/T1. And VN-B1x2S23 could be represented as B1,1/S23/T0V.

I'm not wedded to this notation scheme. I'm looking for one that allows me to express something more general about two state rules in which state 2 can only be reached from state1. The following subscripts are arbitrary and don't correspond to the above paragraph, but here's what I jotted down last night:

Ba specifies birth of s1 from only s1 neighbors
Bk specifies birth of s1 from only s2 neighbors
Bm specfies birth of s2 from only s1 neighbors
Bp specfies birth of s2 from only s2 neighbors
By specifies birth of s1 from totaling s1 and s2 neighbors
Bz specifies birth of s2 from totaling s1 and s2 neighbors
and an equivalent notation for Survival rules.

That leaves out a lot of two state rules, but it might still be much too unconstrained. I should probably narrow it down. More constraints, like those used in your HalfLife rule, usually make for a better notation, where a notation is good if it makes it fun to search for interesting rules.

Post Reply