Experimenting with an intermediate neighbourhood

For discussion of other cellular automata.
Post Reply
User avatar
ynotds
Posts: 31
Joined: August 23rd, 2010, 8:38 am
Location: Melbourne, Australia
Contact:

Experimenting with an intermediate neighbourhood

Post by ynotds » November 29th, 2010, 9:50 am

In the hope of being able to search a rule space that is even more gradated than Generations, I've started playing with rules with a weighted intermediate between Moore and von Neumann, counting the Moore cells as 2 and the corner cells as 1 giving a neighbour count range of 0-12 for survival and birth c.f. Generations' 0-8, while matching Generations' handling of dying cells (higher colours).

While the rule in the attached zip is not quite what I'm looking for, it did at least produce this one very neat pattern that shows linear cell count growth confined to a square.
Attachments
squarefill.zip
zip file with rule and seed pattern ready to open and run in Golly
(1.04 KiB) Downloaded 659 times

User avatar
ynotds
Posts: 31
Joined: August 23rd, 2010, 8:38 am
Location: Melbourne, Australia
Contact:

Spectacular puffer engine

Post by ynotds » December 11th, 2010, 5:50 am

The attached zip contains the tip of the iceberg, even within the tiny corner of weighted Moore plus Von Neumann neighbourhood rules that I'm this week focused on.
p260puffer.zip
Open in Golly 2.2
(31.57 KiB) Downloaded 676 times
While the pattern shown is largish for a reason which should be obvious, its core puffer engine has already emerged naturally three times within the only viable seed pattern I've yet found under this rule. The first two ran into other patterns, but the third looks to be in the clear beyond 80,000 iterations from the original two ship seed.

ebcube
Posts: 124
Joined: February 27th, 2010, 2:11 pm

Re: Experimenting with an intermediate neighbourhood

Post by ebcube » December 11th, 2010, 8:57 am

Wow, that 13c/58 spaceship is amazing, even more interesting (to me at least) that the puffer itself. This may be the first rule I've seen in which extra history states don't add clutter, but rather improve the rule. Will you release the RuleTree source code? (Is it similar to MCell's Weighted Life symmetric rules? I've always wanted to do a script to convert MCell weighted life rulestrings to Golly's RuleTree format, it should be fairly trivial)

The trail engine your puffer is based on, as a stand-alone c/2 spaceship:

Code: Select all

x = 9, y = 18, rule = WMPVN-45678bc_459a_22
2.CD.DC$2.BA.AB$3.A.A$2.2A.2A$3.A.A$.TUA.AUT$.RSA.ASR$.PQA.AQP$.NOA.A
ON$.LMA.AML$.JKA.AKJ$.HIA.AIH$.FGA.AGF$.DEA.AED$.BCA.ACB$.3A.3A$.3A.
3A!
The three well-known c/2 spaceships that appear in many generation rules, such as 3458/37/4:

Code: Select all

x = 22, y = 3, rule = WMPVN-45678bc_459a_22
.3A3.4A6.3A$.3A3.4A6.3A$2A4.2A2.2A4.2A.2A!
!
Two beautiful, simple oscillators (I like how most patterns seem to stop because of the death states and then suddenly come back to life)

Code: Select all

x = 24, y = 5, rule = WMPVN-45678bc_459a_22
$.3A$.3A16.3A$.3A16.3A!
A reaction between those oscillators that generates the trail engine:

Code: Select all

x = 18, y = 4, rule = WMPVN-45678bc_459a_22
2.3A9.3A$2.3A3.3A3.3A$2.3A3.3A3.3A$8.3A!
Now, on to the interesting part: the 13c/58 diagonal spaceship:

Code: Select all

x = 20, y = 12, rule = WMPVN-45678bc_459a_22
$5.DFG7.3A$3.DBCEHI3.2A.4A$3.EC3LJOP.4AD2A$3.GFLOKMNQRH2IF3A$3.HIKJQ
3TSIKDEA$4.JKJPO.2TJM3AB$5.LKON.2JROBEC$5.MNOM.KTNMCD$8.2L2.QP$12.RS$
12.UT!
A 13c/58 diagonal rake (and double rake) (and puffer, unless I manage to clean it properly) (which seems unlikely, to be honest) of 13c/58 diagonal spaceships:

Code: Select all

x = 79, y = 80, rule = WMPVN-45678bc_459a_22
2$9.A$6.A.3A$5.B3AC2A$4.CDADE2A$4.B2ACHA$.SROLNLJH2A$.TQPMQIHG2A$4.SI
SRQ$4.JI2SPO$3.K2.USMN3$20.A$16.2A.3A$13.NO.4AC2A$13.MPQG2HE2A$13.2SR
HJCDA$13.U2SIL4A$14.2IQNADB$14.JSMLBC$13.K2.PO$16.QR19$50.A$46.2A.3A$
43.NO.4AC2A$43.MPQG2HE2A$43.2SRHJCDA$43.U2SIL4A$44.2IQNADB$44.JSMLBC$
43.K2.PO$46.QR$46.TS2$63.A$60.A.3A$59.B3AC2A$58.CDADE2A$58.B2ACHA$55.
SROLNLJH2A$54.UTQPMQIHG2A$58.SISRQ$58.JI2SPO$57.K2.USMN3$74.A$70.2A.
3A$67.NO.4AC2A$67.MPQG2HE2A$67.2SRHJCDA$67.U2SIL4A$68.2IQNADB$68.JSML
BC$67.K2.PO$70.QR$70.TS$70.U!
And... that's basically it. I really like this rule. Probably because of the fancy neon colors, but still... :P

knightlife
Posts: 566
Joined: May 31st, 2009, 12:08 am

Re: Experimenting with an intermediate neighbourhood

Post by knightlife » December 11th, 2010, 4:46 pm

ebcube wrote:
A 13c/58 diagonal rake (and double rake) (and puffer, unless I manage to clean it properly) (which seems unlikely, to be honest) of 13c/58 diagonal spaceships:

Code: Select all

x = 79, y = 80, rule = WMPVN-45678bc_459a_22
2$9.A$6.A.3A$5.B3AC2A$4.CDADE2A$4.B2ACHA$.SROLNLJH2A$.TQPMQIHG2A$4.SI
SRQ$4.JI2SPO$3.K2.USMN3$20.A$16.2A.3A$13.NO.4AC2A$13.MPQG2HE2A$13.2SR
HJCDA$13.U2SIL4A$14.2IQNADB$14.JSMLBC$13.K2.PO$16.QR19$50.A$46.2A.3A$
43.NO.4AC2A$43.MPQG2HE2A$43.2SRHJCDA$43.U2SIL4A$44.2IQNADB$44.JSMLBC$
43.K2.PO$46.QR$46.TS2$63.A$60.A.3A$59.B3AC2A$58.CDADE2A$58.B2ACHA$55.
SROLNLJH2A$54.UTQPMQIHG2A$58.SISRQ$58.JI2SPO$57.K2.USMN3$74.A$70.2A.
3A$67.NO.4AC2A$67.MPQG2HE2A$67.2SRHJCDA$67.U2SIL4A$68.2IQNADB$68.JSML
BC$67.K2.PO$70.QR$70.TS$70.U!
Cleanup for 13c/58 diagonal rake:

Code: Select all

x = 95, y = 112, rule = WMPVN-45678bc_459a_22
80.A$79.4A$77.C.A2BA$76.D3AEB2A$75.EFAFG3A$75.DCBEJ3A$72.UTQNPNLJ2A$
73.SROSKJI2A$75.UKUTS$75.LK2URQ$61.A12.M3.UOPJI$60.3A11.MNOPUNK2AH$
59.2AB2A11.2PQRLM2AG7.A$60.ADA12.OIJKPM2L6.5A$59.2AG3A10.NIKLMK2LK3.
4A2BA$59.K2A2JA10.I2JILKMIJPQ.4AEB2A$58.LHGFMJ2A8.2AJ2ALMPJNORSI2JG3A
$57.MNINOEIA9.ABAGA2LKR3UTJLEFA$57.LKJMRDCBF8.2AEHAKLKQP.2UKNB2AC$60.
TRFIG10.A2E2AMLPO.2KSPCFD$59.SRQGH11.3ACANOPN.LUONDE$58.S18.3A3.2M2.R
Q$57.TS19.A8.ST$56.U31.U$56.U5.SR4.2A$61.TUQP3.2A$58.QPQ.UNO$54.PQRTR
SR2UNML$53.O2A3STUSOPLK$53.ANARPONMTLMNM$53.2AO2QRS2LM2N$55.P2QP.2QRN
M$57.P.2PQ2ML$60.OPON4$55.2A$55.2A$41.A$39.5A$39.A.A.A$38.3A.3A$39.A.
A.A$39.5A$41.A5$42.2A$42.2A$28.A$26.5A$26.A.A.A$25.3A.3A$26.A.A.A$26.
5A$28.A3$16.TU$16.UT19.3A$29.2A4.B.4A$29.2A3.C3AD2A$33.DEAEF3A$33.CBA
DIA$18.CB10.TSPMOMKI2A$17.D2A10.URQNRJIH2A$17.E4A11.TJTSR$17.LF2H2A
10.KJ2TQP$15.L2MGKHBC9.L3.TNO$15.L2MOFGED9.LMNOTMJI$17.LMFGF11.2OPQKL
HG$16.IJKGH12.NK2JOLEF$16.HGKJI12.ML2K2LCD$16.4A15.JIFCB$16.AJ2A16.HG
ED$14.3AGA$13.2AB2E2A$14.4AC2A$5.2A8.A.3A$5.2A11.A14$7.3A$5.B.4A$4.C
3AD2A$3.DEAEF3A$3.CBADIA$TSPMOMKI2A$URQNRJIH2A$3.TJTSR$3.KJ2TQP$2.L3.
TNO$2.LMNOTMJI$3.2OPQKLHG$3.NK2JOLEF$3.ML2K2LCD$5.JIFCB$6.HGED!
An interesting one-sided double rake:

Code: Select all

x = 117, y = 104, rule = WMPVN-45678bc_459a_22
91.DFG7.3A$89.DBCEHI3.2A.4A$89.EC3LJOP.4AD2A$89.GFLOKMNQRH2IF3A$89.HI
KJQ3TSIKDEA$90.JKJPO.2TJM3AB$91.LKON.2JROBEC$91.MNOM.KTNMCD$94.2L2.QP
$98.RS$98.UT3$113.3A$111.B.4A$110.C3AD2A$109.DEAEF3A$97.2A10.CBADIA$
97.2A7.TSPMOMKI2A$106.URQNRJIH2A$109.TJTSR$86.PO21.KJ2TQP$85.Q2A20.L
3.TNO$85.R2A20.LMNOTMJI$86.ST2.2A3.Q13.2OPQKLHG$87.U2.2A2.RPOQ11.NK2J
OLEF$89.KJ2.Q.SPSRQP8.ML2K2LCD$89.LM.2P.RQ2SLKO9.JIFCB$90.NO5.UMODE
10.HGED$94.RQRUMNCFD$84.2A7.R3SLQNB2AC$84.2A6.USTRQKJLEFA$93.T3.PI2JG
3A$98.4AEB2A$98.4A2BA$73.2A25.5A$73.2A27.A$77.2A$77.2A4$81.2A$71.2A7.
5A$71.2A6.E.A2DA$78.FB2AGD2A$77.GHCHIACA$60.2A15.FEDGL3A$60.2A14.SPRP
NLACA$75.UTQUMLKAB$78.M2.U$60.2A15.NM2.TS16.U$60.2A14.O4.QR15.ST$76.O
PQR.PML10.2M2.RQ$77.2RSTNOKJ6.NOPN.LUONDE$77.QN2MROHI6.MLPO.2KSPCFD$
48.2KNPRT23.PO2N2OFG5.KLKQP.2UKNB2AC$47.J2LOQSU25.MLIFE5.IJLKR3UTJLEF
A$46.I4ANPRT25.KJHG5.HGMPLNORSI2JG3A$47.AL2AOQSU9.2A23.FD3MKPQ.4AEB2A
$46.2AMKJ13.2A23.ECDFIJ3.4A2BA$46.2AL42.EGH6.5A$102.A2$47.2A$47.2A3$
52.F.A$51.G5A$48.2THIBI2JA.A$48.2UGICDMJ4A$47.TSPFTQOEDGDB2A$47.URQ2E
2O2F4A$43.TMN2A.E2F3ACA.A$43.UMO2AIEF2ABC2A$34.LK6.STOKGKIFA2BA.BA$
31.JK2MFQRSTU.JKL2NHEFB.2A$30.MI2LDEGHIK2.ITS2MLGDC$30.NHGFE2QPJL2.2H
SQON$31.OQSOPQ2.M3.IPLOKM$31.S2P2.2P2.NOJ2MK2LJ$32.TU4.ONSPJKMJLKJ$
39.L2PM2LED2A$38.KMHGFEDIF2A$38.IJI2H2GCFA$38.3ABEFEBD2A$33.2A3.2A.CD
2.4A$33.2A10.3A3$2.DFG7.3A$DBCEHI3.2A.4A$EC3LJOP.4AD2A$GFLOKMNQRH2IF
3A$HIKJQ3TSIKDEA$.JKJPO.2TJM3AB$2.LKON.2JROBEC$2.MNOM.KTNMCD$5.2L2.QP
14.2A$9.RS9.2A3.2A$9.UT9.2A2$43.ST54.U!

knightlife
Posts: 566
Joined: May 31st, 2009, 12:08 am

Re: Experimenting with an intermediate neighbourhood

Post by knightlife » December 11th, 2010, 5:15 pm

Sorry about the botched edit:

Just found this clean rake that uses just two 13c/58 diagonal spaceships:

Code: Select all

x = 17, y = 34, rule = WMPVN-45678bc_459a_22
6.2A.2A$6.6A$2.RLKHEGEC2A$.SNMJIFJB3A$TUOU2.LBLKJ$SRPQ2.CB2LIH$4.RDSP
NLFG$4.SDEFGLEBA$3.UT.2GHICDA$6.FC2BGD2A$6.ED2C2DA$8.B4A$10.A6$13.3A$
11.B.4A$10.C3AD2A$9.DEAEF3A$9.CBADIA$6.TSPMOMKI2A$6.URQNRJIH2A$9.TJTS
R$9.KJ2TQP$8.L3.TNO$8.LMNOTMJI$9.2OPQKLHG$9.NK2JOLEF$9.ML2K2LCD$11.JI
FCB$12.HGED!
Last edited by knightlife on December 11th, 2010, 10:54 pm, edited 1 time in total.

User avatar
ynotds
Posts: 31
Joined: August 23rd, 2010, 8:38 am
Location: Melbourne, Australia
Contact:

Re: Experimenting with an intermediate neighbourhood

Post by ynotds » December 11th, 2010, 9:19 pm

ebcube wrote:Will you release the RuleTree source code?
This code relies on being able to simply derive the rule tree for the next higher number of states which I can only presume will only work for Generations-like states. To generate all the rule trees for _2 through _40 while you blink, enter something like:
  • perl makeWMPVNruleTrees.pl 45678bc/459a/40

Code: Select all

#!/usr/bin/perl
# Create WMPVN-s_b_n.trees for specified s/b strings and 2 <= n <= c states
# by Tony Smith, Meme Media, Melbourne, Australia, December 2010
# extends Golly/Rules/TreeGenerators/RuleTreeGen.pl

use strict;

my ( @s, @b, $c, $part, %world, $nodeseq, @r, @params );
my $error = 'ok';
my $params = shift;
if ( @_ ) { $error = 'too many parameters' }
else {
  my ( $s, $b, $max, @more ) = split /\//, $params;
  if ( @more ) { $error = 'too many parts' }
  elsif ( $max !~ /^[1-9]\d*$/ ) { $error = 'max states is not a positive integer' }
  elsif ( $max < 2 ) { $error = 'max states must be > 1' }
  else {
    $c = $max;
    if ( $s !~ /^[\dabc]+$/i ) { $error = 'survive list must only contain 0-9 or a-c' }
    else {
      @s = foundin( $s );
      if ( scalar @s < length $s ) { $error = 'duplicate entries in survive list' }
      elsif ( $b !~ /^[\dabc]+$/i ) { $error = 'born list must only contain 0-9 or a-c' }
      else {
        @b = foundin( $b );
        if ( scalar @b < length $b ) { $error = 'duplicate entries in born list' }
        else { $part = "WMPVN-$s\_$b\_" }
} } } }
die $error if $error ne 'ok'; # should prompt for parameter input rather than die

my $numNeighbors = 8;
my $numParams = $numNeighbors + 1;
my ( @lists, $numStates );
foreach $numStates ( 2 .. $c ) {
  if ( $numStates == 2 ) { ruleTreeGen( 2 ) }
  elsif ( $numStates == 3 ) { 
    my @r = ruleTreeGen( 3 );
    foreach ( @r ) {
      my @list = split / /;
      push @lists, \@list;
    }
  }
  else {
    open ( NEW, '>', "$part$numStates.tree" ) || die "Cannot open file for output!";
    print NEW "num_states=$numStates\n";
    print NEW "num_neighbors=$numNeighbors\n";
    print NEW "num_nodes=", scalar @r, "\n";
    my @new = ();
    foreach my $list ( @lists ) { # bump rule tree to next higher $numStates
      my @list = @$list;
      if ( $list[0] == 1 ) { # state values
        splice( @list, -1, 0, $list[2] ? $numStates - 1 : 0 );
      }
      else { # node numbers
        push( @list, $list[-1] );
      }
      my $new = join( ' ', @list);
      print NEW "$new\n";
      push @new, \@list;
    }
    close NEW;
    @lists = @new;
  }
}

sub ruleTreeGen {
  $numStates = shift;
  %world = ();
  $nodeseq = 0;
  @r = ();
  @params = (0) x $numParams;
  recur($numParams);
  open ( NEW, '>', "$part$numStates.tree" ) || die "Cannot open file for output!";
  print NEW "num_states=$numStates\n";
  print NEW "num_neighbors=$numNeighbors\n";
  print NEW "num_nodes=", scalar @r, "\n";
  print NEW "$_\n" for @r;
  close NEW;
  return @r;
}

sub f { # Weighted Moore Plus Von Neumann
   my ($nw, $ne, $sw, $se, $n, $w, $e, $s, $c) = @_;
   return ($c + 1) % $numStates if $c > 1; # as in Generations
   my $out = ($nw==1) + ($ne==1) + ($sw==1) + ($se==1);
   my $in = ($n==1) + ($w==1) + ($e==1) + ($s==1);
   my $sum = 2 * $in + $out;
   return 1 if $c and $s[$sum]; # survive
   return 1 if not $c and $b[$sum]; # born
   return $c ? 2 : 0 if $numStates > 2; # commence dying if not dead
   return 0; # die or stay dead
}

sub recur {
  my $at = shift;
  return f(@params) if $at == 0;
  my $n = $at;
  for (my $i=0; $i<$numStates; $i++) {
     $params[$numParams-$at] = $i;
     $n .= " " . recur($at-1);
  }
  return $world{$n} if defined($world{$n});
  $world{$n} = $nodeseq;
  push @r, $n;
  return $nodeseq++;
}

sub foundin {
  my $code = shift;
  my @list = ( 0 ) x 13;
  my $allow = '0123456789abc';
  my $state = 0;
  my %decode;
  while ( $allow ) {
    my $char = substr( $allow, 0, 1, '' );
    $decode{ $char } = $state ++;
  }
  while ( $code ) {
    my $char = substr( $code, 0, 1, '' );
    @list[ $decode { $char } ] = 1;
  }
  return @list;
}
ebcube wrote:(Is it similar to MCell's Weighted Life symmetric rules?
Assuming Mirek's HI code is interpreted as in Generations, mine is a narrow subset of Weighted Life, with a specific neighbourhood chosen so as not to bias a direction:

Code: Select all

x = 129, y = 29, rule = 345/3/4
9C.9A.9C21.9A.9A.9A21.9A.9A.9A$C9.9A9.C21.9A.9A.9A21.4AC4A.3A3C3A.4AC
4A$C9.9A9.C21.9A.9A.9A21.3A2C4A.2AC3AC2A.3A2C4A$C9.9A9.C21.9A.9A.9A
21.4AC4A.6AC2A.4AC4A$C9.9A9.C21.9A.9A.9A21.4AC4A.5AC3A.4AC4A$C9.9A9.C
21.9A.9A.9A21.4AC4A.4AC4A.4AC4A$C9.9A9.C21.9A.9A.9A21.4AC4A.3AC5A.4AC
4A$C9.9A9.C21.9A.9A.9A21.3A3C3A.2A5C2A.3A3C3A$C9.9A9.C21.9A.9A.9A21.
9A.9A.9A2$9A.9B.9A21.9A.9B.9A21.9A.9B.9A$9A.9B.9A21.9A.9B.9A21.3A3C3A
.9B.3A3C3A$9A.9B.9A21.9A.9B.9A21.2AC3AC2A.9B.2AC3AC2A$9A.9B.9A21.9A.
9B.9A21.6AC2A.9B.6AC2A$9A.9B.9A21.9A.9B.9A21.5AC3A.9B.5AC3A$9A.9B.9A
21.9A.9B.9A21.4AC4A.9B.4AC4A$9A.9B.9A21.9A.9B.9A21.3AC5A.9B.3AC5A$9A.
9B.9A21.9A.9B.9A21.2A5C2A.9B.2A5C2A$9A.9B.9A21.9A.9B.9A21.9A.9B.9A2$C
9.9A9.C21.9A.9A.9A21.9A.9A.9A$C9.9A9.C21.9A.9A.9A21.4AC4A.3A3C3A.4AC
4A$C9.9A9.C21.9A.9A.9A21.3A2C4A.2AC3AC2A.3A2C4A$C9.9A9.C21.9A.9A.9A
21.4AC4A.6AC2A.4AC4A$C9.9A9.C21.9A.9A.9A21.4AC4A.5AC3A.4AC4A$C9.9A9.C
21.9A.9A.9A21.4AC4A.4AC4A.4AC4A$C9.9A9.C21.9A.9A.9A21.4AC4A.3AC5A.4AC
4A$C9.9A9.C21.9A.9A.9A21.3A3C3A.2A5C2A.3A3C3A$9C.9A.9C21.9A.9A.9A21.
9A.9A.9A!
ebcube wrote:I've always wanted to do a script to convert MCell weighted life rulestrings to Golly's RuleTree format, it should be fairly trivial
I agree but am having too much fun to think about tackling it myself.
ebcube wrote:The trail engine your puffer is based on (...)
In practice, many are born with a double blocked trail so continuing to lengthen while gaining "tagalongs" from orthogonal and diagonal ships until some tagalong detabilises the double block, after which they eventually settle into either a puffer or something more like the minimal spaceship you posted. (The c taglongs are somewhat less extravagant than in StarWars but more varied than the 2/3c tagalongs found in 345/3/n rules.)
ebcube wrote:The three well-known c/2 spaceships that appear in many generation rules, such as 3458/37/4.
Rules which produce those spaceships and serrated track have become my comfort zone as I've spent the last two years becoming way too familiar with their broad interaction dynamics. With that in mind, I recently tabulated the corner of the universe of rules where I plan to keep my attention:

Code: Select all

COMFORT FEATURES,Generations,wM+VN
Count range,0-8,0-12(c)
Survive,345(8?),45678(b?c?)
Born,3(6?7?8?),45(9?a?b?c?)
1/2 forward movement,born 3,born 45
1/2 toggling side cells,born 3,born 4
asym ship central cell death,not survive 6,not survive 9
sym ship central cell death,not survive 7,not survive a
tail/edge clean up,not survive 12,not survive (1?)23
track without gap stability,survive 35,survive 48
track with gap stability,survive 34,survive 46
gapless double track stability,survive 345,survive 468
block stability,survive 3,survive 5
blocked track stability,survive 5,survive 8
gap stability,not born 4,not born 6(7?8?)
track toothed edge stability,not born 5,not born 8
ebcube wrote:Two beautiful, simple oscillators (I like how most patterns seem to stop because of the death states and then suddenly come back to life)
You might also like:

Code: Select all

x = 67, y = 62, rule = WMPVN-45678bc_459a_22
3.2A$.6A$.A4.A$2A4.2A$.A4.A$.6A$3.2A7$16.2A$14.6A$14.A4GA$13.2AG2JG2A
$14.A4GA$14.6A$16.2A9$28.2A$26.6A$26.A4CA$25.2AC2FC2A$26.A4CA$26.6A$
28.2A4$61.POML$60.RQNKJ$58.UT2S2TKL$59.S2R.TMN$62.STPO$41.2A14.TU3.UR
Q$40.S2AS13.T$39.UT2AT14.SR$42.U16.R$60.RQPFG$58.U.USQEHF$38.UT18.KJI
LQCBAE$39.T18.LMHMNDHA$40.TSRHI14.KGFELI2A$41.USGJH14.J2A2IA$38.MLKNS
EDCG13.2AF3A$38.NOJOPFJBA14.ACA$39.MIHGNK2A14.3A$40.L2A2KA15.3A$40.2A
H3A$41.AE3A$40.2AC2A$40.5A$41.3A!
ebcube wrote:Now, on to the interesting part: the 13c/58 diagonal spaceship
Just a side note that this appears to work for state values 16 and above, though interaction byproducts vary wildly between states. Save for tests like this, I've only got to 19-22 in any detail as yet. Those four are all totally different, though within the eight point compass that the mix of c/2 and 13c/58 diagonal spaceships provides as common background. _19 is dominated by a 13c/107 diagonal puffer which fires 13c/58 diagonal spaceships forwards. _20 produces a rich variety of mostly orthogonal trails. _21 is dominated by a p78x64y330t settled puffer trail which also produces rakes of 13c/58 diagonal spaceships in such a way that the central pattern soon looks like a caged spaghetti monster.
ebcube wrote:I really like this rule. Probably because of the fancy neon colors, but still... :P
There is one more discovery, but it warrants a separate thread.

knightlife
Posts: 566
Joined: May 31st, 2009, 12:08 am

Re: Experimenting with an intermediate neighbourhood

Post by knightlife » December 12th, 2010, 5:00 pm

Experimenting with signals:

Code: Select all

x = 106, y = 82, rule = WMPVN-45678bc_459a_22
8.2A$4.2A2.2A$4.4A2.2A$6.2A2.2A3$4.2A6.2A$4.2A6.2A$2.2A61.2A$2.2A61.
2A$2A8.2A51.2A2.2A$2A8.2A51.2A2.2A$59.2A10.2A$10.2A47.2A10.2A$10.2A$
98.2A$10.2A45.2A14.2A23.2A$10.2A45.2A14.2A27.2A$53.2A22.2A23.2A$53.2A
22.2A$12.2A6.2A.2A.2A.2A.2A.2A.2A.2A$10.4A6.2A.2A.2A.2A.2A.2A.2A.2A
61.2A$10.2A2.2A2.2A23.2A6.2A26.2A23.2A$14.2A2.2A23.2A6.2A26.2A$16.2A
27.2A2.2A32.2A$16.2A27.2A2.2A32.2A$18.2A9.2A16.2A$18.2A9.2A16.2A$17.
2A3.2A.2A6.2A50.2A$17.2A3.2A.2A6.2A50.2A$89.2A$89.2A$35.2A$35.2A$33.
2A56.2A$33.2A56.2A$31.2A$31.2A$29.2A$29.2A$27.2A2.2A$27.2A2.2A39.2A$
72.2A$27.2A47.2A$27.2A47.2A$29.2A65.2A.3A$29.2A65.4ABA$31.2A45.2A12.S
MLIFHFDB2A$31.2A45.2A11.TONKJGKCB2A$33.2A55.U.P3.MCMLK$33.2A55.TSQR2.
DC2MJI$35.2A57.SETQOMGH$35.2A57.TEFGHMFCB$37.2A55.U.2HIJDEA$37.2A57.G
D2CHE2A$39.2A55.FE2D2EA$39.2A57.CB3A$41.2A56.2A$41.2A$43.2A$43.2A$45.
2A$45.2A$47.2A$47.2A$49.2A$49.2A$51.2A$51.2A$53.2A$53.2A$55.2A$55.2A$
57.2A$57.2A$59.2A$59.2A$61.2A$61.2A$63.2A$63.4A$65.2A!
The diagonal spaceship can launch a signal on the fly.
The signal can launch a diagonal spaceship but falls short of being a gun.


So far I haven't found a "conventional" stable eater for the 13c/58 diagonal spaceship.
However, using signals I made this stable eater:

Code: Select all

x = 35, y = 44, rule = WMPVN-45678bc_459a_22
18.2A.2A.2A.2A.2A.2A$18.2A.2A.2A.2A.2A.2A$16.2A$16.2A$14.2A$14.2A2$
14.2A$14.2A23$6.2A.3A$6.4ABA$2.SMLIFHFDB2A$.TONKJGKCB2A$U.P3.MCMLK$TS
QR2.DC2MJI$4.SETQOMGH$4.TEFGHMFCB$4.U.2HIJDEA$6.GD2CHE2A$6.FE2D2EA$8.
CB3A$9.2A!

ebcube
Posts: 124
Joined: February 27th, 2010, 2:11 pm

Re: Experimenting with an intermediate neighbourhood

Post by ebcube » December 28th, 2010, 9:38 am

235679a/45689/6: Reminds me of Star Wars, spaceships and puffers occur naturally. Diagonal c/3 spaceships (I'm pretty sure a lot more are possible, but they're not as common as c/2 orthogonal spaceships) and a c/5 diagonal spaceship.

Code: Select all

x = 95, y = 174, rule = WMPVN-235679a_45689_6
$90.A$58.3ADB10.3A12.3AB$44.3A10.ABDCAC9.A2BAC10.2A2CAE$44.3AB9.2AED
10.ABA3C9.ABAC2.D$44.2ADB8.2AD12.AB2C11.ABEB$45.2BC9.AC12.2AC12.2AE.E
$59.D12.2C13.DC6$72.2A2C$71.ABA.C$71.ABC$71.ABC$71.ABA.C$72.2A2C7$72.
A$71.AB$72.A5$73.AC$72.3A$72.A2C$71.ABC$72.A2C7$72.A$71.AB$71.AB$72.A
6$46.ABC$42.ABD.ADC2A2E18.ABD$42.3ACBA.ABA.D17.4AEC2A2C.2A$42.3ACA.E
2A2E18.4AED3ADA2BA$42.ABD26.ABD.BA.E2C.2A$75.2ADE8$77.A2C$72.A2B2.ADC
BA.E$72.AC2ADC2ACB$71.ABC.2AE2A2E$71.ABC.2AE2A2E$72.AC2ADC2ACB$72.A2B
2.ADCBA.E$77.A2C4$52.A2C$51.2ADB$41.A2C7.ACD$40.2AD2A2E2B2.ADC21.2ADE
$40.ACDABA.AD2ACD18.ABD.BA.EDBC$40.ACDABA.AD2ACD18.4AED2AE.B$40.2AD2A
2E2B2.ADC17.4AEDABAE$41.A2C7.ACD17.ABD.BA.EA$51.2ADB20.2ADE$52.A2C7$
43.ABD30.ABE3.AB$43.3ACB24.ACEACBA.A.CAD$42.2ACE25.3ABA.EA.6A$42.2ACE
25.3ABA.EA.6A$40.ACE3ADA24.ACEACBA.A.CAD$39.4ACEA2BD27.ABE3.AB$40.BD.
2ACDAE$40.5AEB.D$41.ACE2A2DC4$72.A2C.2AECB$43.ACE25.2AD2AE2ACD$42.3AB
A.E22.ACDABA.EDA$42.ABD26.ACDABA.DCA$41.2ABD26.2AD2A2E$39.ABD.2ABD25.
A2C$39.3ABD.BCE$39.ACE3A$40.3ABAB$40.ABD.BA7$42.ACE$41.4ACB$39.ABD.BD
$39.ACE.AC$39.ABD.BD$41.4ACB$42.ACE3$85.A$82.6A$75.ABE.BCB3ACBA$71.AC
EACBA.CDACA.E2A$70.3ABA.E2ACDBA$70.3ABA.D2AE3.D$71.ACE4.2ACEDE$79.BA
2D5$4.ABD$4.3ABD$3.ABD.AD$3.ACE2.CBD$3.ACE.2AD.2A$3.ABD.BDE$4.3ABD$4.
ABD15$74.A2CA.2D$73.2AD3A.C$73.ACD2ACE$73.ACD2ABD$73.2AD2AD2.E$74.A2C
2.CDC$79.ABA$80.A!

User avatar
ynotds
Posts: 31
Joined: August 23rd, 2010, 8:38 am
Location: Melbourne, Australia
Contact:

Space fillers in unexpected places

Post by ynotds » January 16th, 2011, 6:59 am

When I'm searching the rule spaces identified above I have a basic model of what I'm looking for from a viable small seed over of order 100,000 iterations: a slowly growing chaotic core with streams of common ships radiating like compass points, four NSEW with common symmetric and asymmetric c/2 ships plus four diagonals for the intermediate directions in the eight WMPVN-45678bc?_459ab?c?_>=16 rule families that readily form the 13c/58 diagonal ship. There should also be a variety of puffer engines leaving a variety of trails, but none overly common, especially not those which never stabilise but go through a succession of period doublings creating a wedge shaped core and a delta-wing-like array of rakes. As a general rule, increasing the number of states gives less average activity, quite rapidly for Generations rules and more slowly in the ranges I am looking at with WMPVN.

But it is the exceptions which make it endlessly interesting, or maybe frustrating when you drag yourself out of bed at 4:00 on a Sunday morning intending to find a WMPVN-45678c_459abc_? rule to leave running until a more sensible hour. I had reasons to expect the sweet spot to be in the early teens but routinely start at /20 and move up and down by 4 at first depending on what my large grid of c/2 ship collisions tells me.

All /20 seeds settled reasonably quickly, as did /16, but it was what the /20 seeds settled to that woke me up properly:
filler.zip
Open with Golly 2.2
(1.02 KiB) Downloaded 642 times
a 56c/156 trail forming a copy of itself running at right angles to one side per cycle when not blocked or 26 blocks per cycle when blocked in by an adjacent trail, all initial irregularities quickly stabilising out.

Then /12 proved to be very close to the sweet spot with a minimum of viable seeds, except that its inner chaotic core was rapidly surrounded by a Fredkin like replicator, actually the same shape that drives the diagonal ship forming twin rakes under another rule which I just started a new thread about and was monitoring on another computer, which produces 2 copies of itself after 163 iterations:
breeder.zip
Open with Golly 2.2
(802 Bytes) Downloaded 666 times
I've extracted the first doubling of the basic seed here so as to make clear the way the outer edge reproduces Fredkin's XOR-based replication. This is of significance to me because Fredkin's rule was my starting point with cellular automata in 1983, coincidentally on the previous occasion that my life had been disturbed by flood damage along the Great Ocean Road.

Not every surprise is as neat as those two. /11 was only a bit more active but dominated by the rapid emergence of a 14c/39 engines with two variants, one leaving a very active chaotic trail with rapid period doubling and the other stabilising to a trail of nine blocks:
blob.zip
Open with Golly 2.2
(886 Bytes) Downloaded 640 times
After a 7492 iteration methuselah at /13, somewhat surprisingly /14 turned up 3 viable orthogonal collisions, one of which I left running when I finally went back to bed, having along the way also answered the more fundamental question that survive b (11) really is necessary for the 13c/58 diagonal ship to form.

User avatar
12Glider
Posts: 79
Joined: December 17th, 2010, 4:56 pm

Re: Experimenting with an intermediate neighbourhood

Post by 12Glider » June 19th, 2011, 7:41 pm

I'm having trouble using the Perl script that makes these intermediate rules.
I keep getting this error message: "max states is not a positive integer at [path]\makeWMPVNruletrees.pl line 42"
Image

Why hasn't a glider exploded yet?

User avatar
ynotds
Posts: 31
Joined: August 23rd, 2010, 8:38 am
Location: Melbourne, Australia
Contact:

Re: Experimenting with an intermediate neighbourhood

Post by ynotds » June 20th, 2011, 9:16 am

12Glider wrote:I'm having trouble using the Perl script that makes these intermediate rules.
I keep getting this error message: "max states is not a positive integer at [path]\makeWMPVNruletrees.pl line 42"
That message is triggered by an early test for validity of the parameter string, so it is possible that it might be due to not finding a third parameter.

The parameter string needs to have three parts separated by two forward slash characters. The first two are selections from 0-9, a-c (representing 10-12) for neighbour counts (von Neumann cells count double) for survive and born respectively. The third, as indicated in the error message, must be a positive integer. (While the script will go higher, Golly only works with rule trees having up to 256 states.) So a typical command line looks like:
perl makeWMPVNruletrees.pl 4568bc/45ab/20

Please note that, for consistency with Generations, the parameter string requires forward slash characters. However the generated .tree file names need underscores in those positions and descriptions often refer to the underscored version.

User avatar
12Glider
Posts: 79
Joined: December 17th, 2010, 4:56 pm

Re: Experimenting with an intermediate neighbourhood

Post by 12Glider » June 24th, 2011, 7:22 pm

I'm trying to use that command line, and it keeps saying "Number found where operator expected at - line 1, near "pl 4568"
(Do you need to predeclare pl?)
Bareword found where operator expected at - line 1, near "4568bc"
(Missing operator before bc?)
Bareword found where operator expected at - line 1, near "45ab"
(Missing operator before ab?)"
Please help!
Image

Why hasn't a glider exploded yet?

Post Reply