apgsearch - haul requests
apgsearch - haul requests
For those rules that deserve some more soup searches or just rules that you generally think could turn out to be interesting in Catagolue, you can post the rule and symmetry for people to (help in) search(ing) them.
My first suggestions:
b2-a3i4aijks2a3-i4/D4_x1 #because there are many potential oscillators, check for diagonal spaceships
b3s2-i34q/D4_x1 #same as above, and tlife has been extensively studied
b37s2-i34q/C1 #for general knowledge about relative abundance of patterns in tDryLife
My first suggestions:
b2-a3i4aijks2a3-i4/D4_x1 #because there are many potential oscillators, check for diagonal spaceships
b3s2-i34q/D4_x1 #same as above, and tlife has been extensively studied
b37s2-i34q/C1 #for general knowledge about relative abundance of patterns in tDryLife
Re: apgsearch - haul requests
I would be doing tdry right now, but as stated many times before my computer is not connected to the Internet and probably won't be for a good while
Help wanted: How can we accurately notate any 1D replicator?
Re: apgsearch - haul requests
B2c3-i/S1c23 has a lot of still lifes and oscillators and, despite being close to Life in terms of transitions, has way different behavior.
moment
Re: apgsearch - haul requests
B35678/S is an extremely easy and fast rule to apgsearch, even on the Python version. On my apgmera, individual hauls of 100,000,000 soups can rack up just about a million objects each.
We could all spam search this to check for three things:
1. Aside from xp2 and xp4, are there any other periods of naturally occuring phoenixes?
2. Can phoenixes of odd periods exist?
3. Can we crash Catagolue with it?
We could all spam search this to check for three things:
1. Aside from xp2 and xp4, are there any other periods of naturally occuring phoenixes?
2. Can phoenixes of odd periods exist?
3. Can we crash Catagolue with it?
Help wanted: How can we accurately notate any 1D replicator?
Re: apgsearch - haul requests
I'm coming!muzik wrote:B35678/S is an extremely easy and fast rule to apgsearch, even on the Python version. On my apgmera, individual hauls of 100,000,000 soups can rack up just about a million objects each.
We could all spam search this to check for three things:
1. Aside from xp2 and xp4, are there any other periods of naturally occuring phoenixes?
2. Can phoenixes of odd periods exist?
3. Can we crash Catagolue with it?
moment
Re: apgsearch - haul requests
Hahah, 2^22 is way too small. Try something like 2^27.
Unless 4194304 is your limit for some reason.
EDIT: just calculated, there's about 1 item per 128 soups (extremely rounded).
Unless 4194304 is your limit for some reason.
EDIT: just calculated, there's about 1 item per 128 soups (extremely rounded).
Help wanted: How can we accurately notate any 1D replicator?
Re: apgsearch - haul requests
Ok then. 134217728 sups per upload here I come.
(The reason why I upload so small soups is because then I can stop the search after a haul gets uploaded more frequently.)
(The reason why I upload so small soups is because then I can stop the search after a haul gets uploaded more frequently.)
moment
-
- Posts: 55
- Joined: October 31st, 2015, 1:13 am
Re: apgsearch - haul requests
Can anyone point me to a fairly detailed recipe for how to do non totalistic rules with apgmera? Edit: Never mind, got an answer elsewhere: Apparently can't be done yet.
Last edited by Rich Holmes on September 1st, 2016, 7:00 pm, edited 1 time in total.
Re: apgsearch - haul requests
Have you seen non-totalistic hauls submitted from apgmera?Rich Holmes wrote:Can anyone point me to a fairly detailed recipe for how to do non totalistic rules with apgmera?
Might be something linked to Golly 2.8
Help wanted: How can we accurately notate any 1D replicator?
- praosylen
- Posts: 2446
- Joined: September 13th, 2014, 5:36 pm
- Location: Pembina University, Home of the Gliders
- Contact:
Re: apgsearch - haul requests
I would like to see people searching b3s2-i34q/C1 as well, if that's possible. I used to devote a lot of my CPU time to that until the fan broke on my old computer (probably because of either that or Khan Academy's horribly inefficient JS interpreter).
former username: A for Awesome
praosylen#5847 (Discord)
The only decision I made was made
of flowers, to jump universes to one of springtime in
a land of former winter, where no invisible walls stood,
or could stand for more than a few hours at most...
praosylen#5847 (Discord)
The only decision I made was made
of flowers, to jump universes to one of springtime in
a land of former winter, where no invisible walls stood,
or could stand for more than a few hours at most...
- BlinkerSpawn
- Posts: 1992
- Joined: November 8th, 2014, 8:48 pm
- Location: Getting a snacker from R-Bee's
Re: apgsearch - haul requests
I would also like somebody to attempt this, if only so that I can get back into tlife synthesis-building.A for awesome wrote:I would like to see people searching b3s2-i34q/C1 as well, if that's possible. I used to devote a lot of my CPU time to that until the fan broke on my old computer (probably because of either that or Khan Academy's horribly inefficient JS interpreter).
Re: apgsearch - haul requests
B2n37e/S2-i34q is extremely slow to apgsearch... however, it probably exhibits sufficiently interesting complex behaviour. Among other things, the speed bump in tDryLife with a T eating a beehive becomes spaceship (xq23).
Re: apgsearch - haul requests
b3-cekys23-cik/D2_+2
This rule supports copperheads and I want to see if I can find one occurring naturally. Anyone else want to sacrifice some computer power?
This rule supports copperheads and I want to see if I can find one occurring naturally. Anyone else want to sacrifice some computer power?
Help wanted: How can we accurately notate any 1D replicator?
Re: apgsearch - haul requests
The closest non-totalistic rules from B3/S23, e.g. B3/S234c, B3/S234e, B34c/S23, B34e/S23.
Let's see how they are different from B3/S23.
Let's see how they are different from B3/S23.
Call me "Dannyu NDos" in Forum. Call me "Park Shinhwan"(박신환) in Wiki.
Re: apgsearch - haul requests
Gonna try to get b3s12 back to the third place again. Anyone with me? Or will that just get me more opponents?
Help wanted: How can we accurately notate any 1D replicator?
Re: apgsearch - haul requests
Challenge. Accepted.muzik wrote:Gonna try to get b3s12 back to the third place again. Anyone with me? Or will that just get me more opponents?
*rapidly searches B3567/S13 because why not*
Re: apgsearch - haul requests
I've recently formed a set of apgsearchable rules. (G means spontaneous glider emergence, Gs means multiple gliders, E means )
notations:
G:natural glider emergence from random soup, Gs for multiple gliders
E: explosive, not searchable
L: close to B3S23
F: fast stabilised
They are originally recorded in TCA_id*, I have added B/S notation for readability.
A concise list (doubly fixed):
The actual list(updated):
*:TCA_id is a decimal number specifying the rule.
For example:
B3/S23 =
reverse((000100000001100000)b)=
(000001100000001000)b=
(6152)d
notations:
G:natural glider emergence from random soup, Gs for multiple gliders
E: explosive, not searchable
L: close to B3S23
F: fast stabilised
They are originally recorded in TCA_id*, I have added B/S notation for readability.
A concise list (doubly fixed):
Code: Select all
B_S_alias comments TCAid
b38s24578 G 223496
b368s24578 G 223560
b3468s0124678 GF 241496
b38s12568 G 183560
b3678s13567 Gepp 120264
b3578s126 *G 36264
b368s024578 GSl 224072
b3678s23 *LE 6600
b358s3478 *Gs 209192
b368s2457 *Gs 92488
b367s03468 GF 176840
Code: Select all
B_S_alias comments TCAid
b356s0457 90728
b34s156 50200
b378s02458 158600
b3567s034 13032
b3478s0278 199576
b38s0245 27400
b3468s168 165208
b3678s05678 ? 246728
b367s13568 * 185544
b378s125 19848
b38s2378 L 203016
b356s24 10344
b38s125 * 19720
b35678s0147 75752
b358s0145 26408
b348s0178 * 198424
b35s0347 78376
b358s0347 78632
b36s01368 169544
b38s1256 H 52488
b37s0135 * 22152
b38s02456 *? 60168
b3578s128 134568
b38s24578 G 223496
b345678s013678 235512
b38s0137 71432
b378s245 27016
b367s2458 157896
b3478s267 100760
b357s14578 222376
b3478s1567 116120
b3578s024 11176
b368s24578 G 223560
b346s278 198744
b347s0378 * 201368
b367s03467 111304
b348s26 35096
b3678s2378 LE 203208
b358s024 11048
b3567s128 F 134376
b3s1356 54280
b346s038 135768
b3468s0124678 GF 241496
b38s12568 G 183560
b3578s136 F 38312
b3568s1467 F 107880
b34678s28 F 133592
b368s238 LV 137544
b347s017 F 67224
b367s2457 92360
b3678s13567 Gepp 120264
b356s0348 143976
b358s02478 207656
b378s1258 150920
b3578s126 *G 36264
b3468s02 2904
b35s1358 Sl 152616
b3678s0134678 243656
b35s01458 M 157224
b357s02567 117416
b3467s02 2776
b368s024578 GSl 224072
b3568s23 LE 6504
b36s238 LV 137288
b356s1278 199784
b367s23 LE 6344
b3467s028 F 133848
b367s01367 104136
b3678s23 *LE 6600
b358s3478 *Gs 209192
b3478s268 166296
b3678s3467 Sched 111048
b347s36 37016
b3458s2 F 2360
b346s03 4696
b368s2457 *Gs 92488
b367s03468 GF 176840
b346s378 200792
b3567s248 141544
b378s024578 224136
b3567s02578 F 215784
b347s367 F 102552
b345s18 132152
b36s13567 * 119880
b347s0278 F 199320
*:TCA_id is a decimal number specifying the rule.
For example:
B3/S23 =
reverse((000100000001100000)b)=
(000001100000001000)b=
(6152)d
Last edited by shouldsee on February 19th, 2017, 10:12 am, edited 2 times in total.
- Apple Bottom
- Posts: 1034
- Joined: July 27th, 2015, 2:06 pm
- Contact:
Re: apgsearch - haul requests
These are explosive as well, though?shouldsee wrote:A concise list:Code: Select all
TCAid B_S_alias comments 245156 b37s1346 G [...] 242001 b367s02456 Gepp [...] 1100 b357s236 Gs 243109 b367s1346 Gs
If you speak, your speech must be better than your silence would have been. — Arabian proverb
Catagolue: Apple Bottom • Life Wiki: Apple Bottom • Twitter: @_AppleBottom_
Proud member of the Pattern Raiders!
Catagolue: Apple Bottom • Life Wiki: Apple Bottom • Twitter: @_AppleBottom_
Proud member of the Pattern Raiders!
Re: apgsearch - haul requests
Yeah sorry some labels are incorrect. Thank for spotting. Should be fixed now.Apple Bottom wrote:shouldsee wrote:A concise list:
These are explosive as well, though?
EDIT: Actually, it appear as a result of faulty translation from TCAid to BS notation.(Actaully this translation is fine, the problem is when I tried to invert rules into B3....) Their TCAid appear non-explosive when I emulated them with my custom script.
The script is attached.
Code: Select all
## This script emulate a BS rule by its decimal TCA id
## Written by Feng (shouldsee.gem@gmail.com) Feb 2017.
import golly
rnum=golly.getstring('TCA number','6152');
r=bin(int(rnum));
r=r[:1:-1];
r+='0'*(18-len(r));
rule=[i for x,i in zip(r,range(len(r))) if x=='1'];
alias='b';
ps=1;
for a in rule:
if a>8 and ps:
alias+='s';
ps=0;
alias+=str((a)%9)
if ps==1:
alias+='s';
golly.setalgo("QuickLife")
# golly.note(alias)
golly.setrule(alias);
golly.setclipstr('\n'+rnum);
Last edited by shouldsee on February 19th, 2017, 10:13 am, edited 1 time in total.
- Apple Bottom
- Posts: 1034
- Joined: July 27th, 2015, 2:06 pm
- Contact:
Re: apgsearch - haul requests
Yeah, something's wrong there. I checked your "actual list" from above, using this description of how TCA_ids are derived:shouldsee wrote:EDIT: Actually, it appear as a result of faulty translation from TCAid to BS notation.
(Incidentally, this is the same scheme I've also been using in my own files to number rules. Given how obvious, straightforward and (largely) unambiguous it is, I documented it on on the wiki as well.)shouldsee wrote: *:TCA_id is a decimal number specifying the rule.
For example:
B3/S23 =
reverse((000100000001100000)b)=
(000001100000001000)b=
(6152)d
Anyhow -- about half of the rules in your list don't check out:
Code: Select all
$ cat shouldsee_list.txt |perl verify_shouldsee_list.pl
b356s0457 239333
Decoded TCA_id: b02567s014678
b34s156 237427
Decoded TCA_id: b014568s0123678
b3567s034 238287
Decoded TCA_id: b012367s04678
b3468s168 234874
Decoded TCA_id: b134568s13678
b3678s05678 ? 241904
Decoded TCA_id: b4567s34678
b367s13568 * 242514
Decoded TCA_id: b1468s034678
b378s125 244023
Decoded TCA_id: b012458s234678
b38s2378 L 245148
Decoded TCA_id: b23478s1234678
b38s125 * 245047
Decoded TCA_id: b012458s1234678
b35678s0147 237677
Decoded TCA_id: b02356s4678
b348s0178 * 236668
Decoded TCA_id: b23456s123678
b35s0347 241357
Decoded TCA_id: b02367s0124678
b36s01368 243290
Decoded TCA_id: b1346s0134678
b38s1256 H 245043
Decoded TCA_id: b01458s1234678
b38s24578 G 245156
Decoded TCA_id: b2578s1234678
b38s0137 244829
Decoded TCA_id: b02346s1234678
b3478s267 235961
Decoded TCA_id: b034578s23678
b3578s024 239791
Decoded TCA_id: b012357s24678
b346s278 235452
Decoded TCA_id: b234578s013678
b367s03467 242377
Decoded TCA_id: b0367s034678
b348s26 236987
Decoded TCA_id: b0134578s123678
b367s2457 242597
Decoded TCA_id: b02578s034678
b3678s13567 Gepp 242001
Decoded TCA_id: b0468s34678
b358s02478 240812
Decoded TCA_id: b2357s124678
b378s1258 244022
Decoded TCA_id: b12458s234678
b3578s126 *G 239931
Decoded TCA_id: b013458s24678
b35s1358 Sl 241494
Decoded TCA_id: b12468s0124678
b357s02567 240305
Decoded TCA_id: b0457s024678
b3568s23 LE 239007
Decoded TCA_id: b0123478s14678
b356s1278 239420
Decoded TCA_id: b23458s014678
b3467s028 F 234174
Decoded TCA_id: b123457s03678
b358s3478 *Gs 241100
Decoded TCA_id: b23678s124678
b3478s268 235962
Decoded TCA_id: b134578s23678
b3678s3467 Sched 242121
Decoded TCA_id: b03678s34678
b347s36 236507
Decoded TCA_id: b0134678s023678
b346s03 235231
Decoded TCA_id: b0123467s013678
b368s2457 *Gs 243109
Decoded TCA_id: b02578s134678
b346s378 235484
Decoded TCA_id: b234678s013678
b3567s248 238510
Decoded TCA_id: b123578s04678
b3567s02578 F 238260
Decoded TCA_id: b2457s04678
b347s367 F 236505
Decoded TCA_id: b034678s023678
b345s18 233342
Decoded TCA_id: b1234568s012678
b36s13567 * 243537
Decoded TCA_id: b0468s0134678
b347s0278 F 236220
Decoded TCA_id: b23457s023678
Total lines: 85, failed matches: 44
$
Code: Select all
#!/usr/bin/perl
# usage: e.g.
# $ echo 6152 | perl rulestring2number.pl
# $ cat rulenumbers.txt | perl rulestring2number.pl
use Modern::Perl '2014';
# throw away first line
<>;
my $total_lines = 0;
my $failed_matches = 0;
while(<>) {
$total_lines++;
chomp;
my ($ss_rule, $ss_comment, $ss_number) = split " ";
my %Bs;
my %Ss;
foreach my $B (0 .. 8) {
$Bs{$B}++ if($ss_number & (2 ** $B));
}
foreach my $S (0 .. 8) {
$Ss{$S}++ if($ss_number & (2 ** ($S + 9)));
}
my $rulestring = "b" . (join "", sort keys %Bs) . "s" . (join "", sort keys %Ss);
if($rulestring ne $ss_rule) {
say;
say "\tDecoded TCA_id: $rulestring";
$failed_matches++;
}
}
say "Total lines: $total_lines, failed matches: $failed_matches";
If you speak, your speech must be better than your silence would have been. — Arabian proverb
Catagolue: Apple Bottom • Life Wiki: Apple Bottom • Twitter: @_AppleBottom_
Proud member of the Pattern Raiders!
Catagolue: Apple Bottom • Life Wiki: Apple Bottom • Twitter: @_AppleBottom_
Proud member of the Pattern Raiders!
Re: apgsearch - haul requests
Sorry I should make it clear that I inverted some of rule to b3 scheme but left TCA_id unchanged.Apple Bottom wrote:
[...]
Anyhow -- about half of the rules in your list don't check out:
b356s0457 239333
Decoded TCA_id: b02567s014678
Observe that B02567/S014678 is the on/off symmetric rule of B356/S0457.
I will change the corresponding TCA_id shortly.
Last edited by shouldsee on February 19th, 2017, 10:14 am, edited 2 times in total.
- Apple Bottom
- Posts: 1034
- Joined: July 27th, 2015, 2:06 pm
- Contact:
Re: apgsearch - haul requests
Gotcha! Accounting for black/white reversals everything checks out.shouldsee wrote:Sorry I should make it clear that I inverted some of rule to b3 scheme but left TCA_id unchanged.
b356s0457 239333
Decoded TCA_id: b02567s014678
Observe that B02567/S014678 is the on/off symmetric rule of B356/S0457.
I will change the corresponding TCA_id shortly.
If you speak, your speech must be better than your silence would have been. — Arabian proverb
Catagolue: Apple Bottom • Life Wiki: Apple Bottom • Twitter: @_AppleBottom_
Proud member of the Pattern Raiders!
Catagolue: Apple Bottom • Life Wiki: Apple Bottom • Twitter: @_AppleBottom_
Proud member of the Pattern Raiders!
Re: apgsearch - haul requests
Speaking of that, do you know of a decimal notation of non-totalistic rules? I find it hard to script with non-tot rules.Apple Bottom wrote: (Incidentally, this is the same scheme I've also been using in my own files to number rules. Given how obvious, straightforward and (largely) unambiguous it is, I documented it on on the wiki as well.)
- Apple Bottom
- Posts: 1034
- Joined: July 27th, 2015, 2:06 pm
- Contact:
Re: apgsearch - haul requests
There's none that I'm aware of, save for a scheme I came up with myself about a year ago. It works as follows:shouldsee wrote:Speaking of that, do you know of a decimal notation of non-totalistic rules? I find it hard to script with non-tot rules.
For a given non-totalistic rule...
- Determine the rule integer as usual, ignoring non-totalistic subconditions.
- For each B or S condition present in the rule, convert its subconditions to a bitstring, with 0 indicating the configuration is included in the rule and 1 indicating it's excluded (in particular, note that a "full" condition will result in an all-0 bitstring). Configurations are considered in the following order: cekainyqjrtwz (the same given by Alan Hensel).
- Concatenate all those bitstrings.
- Convert the result to octal (padding the bitstring with zeros at the right if its length is not a multiple of three).
- Remove trailing zeros from the octal string.
- Replace any occurence of 000 with a 9, and any occurence of 00 with an 8.
- Interpret the result as a decimal suffix and attach it to the totalistic rule number determined in step 1.
- Ignore subconditions and determine rule integer:
B23/S23
6156 - Bit strings for the subconditions:
B2 = 001111
B3: 1110011111
S2: 000000
S3: 0000000000 - Concatenate and pad with zeroes:
001 111 111 001 111 100 000 000 000 000 00(0) - convert to octal:
17717400000 - remove trailing zeros:
177174 - replace 000 and 00 (there aren't any in this example):
177174 - append to rule integer:
6156.177174
- For totalistic rules, the suffix works out to 0, so the rational number assigned this way is actually the same as the rule integer.
- Looking at the integer part of the resulting rational number, you'll immediately get an idea what this rule is a variant of.
Code: Select all
B37/S23 (#6280)
B37c/S23 (#6280.91) {OT}
B37e/S23 (#6280.92) {OT}
Here's a script of mine that can be used to convert a list of rules (in B.../S... format) to their Apple Bottom numbers (wow, I can't even type that without grinning):
Code: Select all
#!/usr/bin/perl
use Modern::Perl '2014';
our $neighborhoods = {
'0' => '',
'1' => 'ce',
'2' => 'cekain',
'3' => 'cekainyqjr',
'4' => 'cekainyqjrtwz',
'5' => 'cekainyqjr',
'6' => 'cekain',
'7' => 'ce',
'8' => ''
};
# convert a binary string to octal. Note that e.g. sprintf won't work
# because we need to preserve leading zeros. Still fairly sure there's got
# to be a better way of doing this.
sub bin2oct {
my ($binary_string) = @_;
my $octal_string = "";
# pad with zeros to a length that's a multiple of 3. Is there a less
# convoluted way of doing this?
$binary_string .= "0" x ((3 - (length($binary_string) % 3)) % 3);
# process in chunks of three characters.
while($binary_string =~ m/(...)/g) {
$octal_string .= oct("0b" . $1);
}
return $octal_string;
}
sub configs2suffix {
my ($digit, $configs) = @_;
my $negated = 0;
my $suffix = "";
# any configs given?
if($configs ne "") {
# negated?
if($configs =~ m/^-/) {
$configs = substr $configs, 1;
$negated = 1;
}
# create a hash containing configs seen
my %configs = map { $_ => 1 } split //, $configs;
# iterate through all possible configs and see if they're set.
foreach my $type (split //, $neighborhoods->{$digit}) {
# we append a 0 for configs specified, and a 1 for configs not
# specified. This is consistent with using all zeros if no
# configs are explicitely specified, in which case all are
# assumed to be set.
unless($negated) {
$suffix .= ($configs{$type} ? "0" : "1");
} else {
$suffix .= ($configs{$type} ? "1" : "0");
}
}
} else {
# no configs given, so we default to all zeros.
$suffix = "0" x length($neighborhoods->{$digit});
}
return $suffix;
}
while(<>) {
chomp;
my $number = 0;
my $suffix = "";
my ($Bs, $Ss) = split /\//, $_;
# remove B... and S...
$Bs =~ s/^[Bb]//;
$Ss =~ s/^[Ss]//;
# split on positive-lookahead
my @B = split /(?=\d)/, $Bs;
my @S = split /(?=\d)/, $Ss;
# figure out each B condition...
foreach my $B (@B) {
my $digit = substr $B, 0, 1;
my $configs = substr $B, 1;
$number += 2 ** $digit;
$suffix .= configs2suffix($digit, $configs);
}
# ...and each S condition
foreach my $S (@S) {
my $digit = substr $S, 0, 1;
my $configs = substr $S, 1;
$number += 2 ** ($digit + 9);
$suffix .= configs2suffix($digit, $configs);
}
$suffix = bin2oct($suffix);
# trim trailing zeros.
$suffix =~ s/0+$//;
# replace 000 with 9, and 00 with 8.
$suffix =~ s/000/9/g;
$suffix =~ s/00/8/g;
# if the suffix is all zeros, it's a totalistic rule.
if($suffix ne "" and $suffix != 0) {
say "$_ (#$number.$suffix) {OT}";
} else {
say "$_ (#$number)";
}
}
Last edited by Apple Bottom on February 19th, 2017, 7:02 pm, edited 1 time in total.
If you speak, your speech must be better than your silence would have been. — Arabian proverb
Catagolue: Apple Bottom • Life Wiki: Apple Bottom • Twitter: @_AppleBottom_
Proud member of the Pattern Raiders!
Catagolue: Apple Bottom • Life Wiki: Apple Bottom • Twitter: @_AppleBottom_
Proud member of the Pattern Raiders!
Re: apgsearch - haul requests
Thank you for this informative scheme and I think you deserve its name (lol).Apple Bottom wrote:There's none that I'm aware of, save for a scheme I came up with myself about a year ago. It works as follows:shouldsee wrote:Speaking of that, do you know of a decimal notation of non-totalistic rules? I find it hard to script with non-tot rules.
For a given non-totalistic rule...
The only unnatural part to me is the padding.
The problem as I view it is that different B/S principal number have a different number of sub-neighborhoods, asking each neighborhood to be expanded differently. It would also be great if the scheme allow a easy transfer towards non-istropic non-totalistic rules (aka the most general form of 2d Moore rules, which would obviously be sufficiently described with a 2^9=512 bit string ).