Page 6 of 14
Re: Hacking apgsearch
Posted: July 23rd, 2017, 12:56 am
by toroidalet
wwei23 wrote:B35/S23 is explosive. I see no reason that B356/S234k isn't.
B35/S23 is stable.
B356/S234k is also stable, although really long-lasting.
PHPBB12345 wrote:I can't open cataGOLue.
But can you open
https://catagolue.appspot.com/?
Also nice Aidan Mode there, drc. How did you do Aidan Mode in Golly?
I really think we should use the
naturally superior Hashlife instead of RuleLoader. This way we can also run MAP rules (although without modifications a ton of PATHOLOGICALs will pop out due to a pattern not working the same when rotate/reflected, as well as rules like B2cek4z6-ai/S0, where patterns frequently last hundreds of thousands (and possibly millions) of generations and where one soup can exceed the 1MB(?) limit for hauls. We
(Calcyman) should work on expanding the size limit for submitted hauls. I noticed that when apgsearching B34e5y7e/S23
(with haul size set to 1000 soups) the program continued past 1000 and 2000 soups and would probably have headed toward 10000 soups.
(1000 soups in B34e5y7e/S23 contains enough objects, it's that near-explosive.)
Re: Hacking apgsearch
Posted: July 23rd, 2017, 1:36 am
by PHPBB12345
toroidalet wrote:wwei23 wrote:B35/S23 is explosive. I see no reason that B356/S234k isn't.
B35/S23 is stable.
B356/S234k is also stable, although really long-lasting.
PHPBB12345 wrote:I can't open cataGOLue.
But can you open
https://catagolue.appspot.com/?
No. I'm can't access appspot.com.
Re: Hacking apgsearch
Posted: July 29th, 2017, 4:56 am
by Apple Bottom
There's apparently some kind of bug left in the script (v0.54+0.21i) that causes it to misidentify spaceships. I was quite surprised to see two
period-1 ships in B2e3ai4r5i7-c/S23-a4artz/D2_+1, but it turns out that they're phantoms (and Catagolue correctly rejects the apgcodes as invalid when you click through to the individual object pages).
The smaller object is actually a still life; the larger one is a period-8 ship.
I've attached the log for
the haul in question; and here's
the soup that supposedly produced these objects:
Code: Select all
x = 16, y = 31, rule = B2e3ai4r5i7-c/S23-a4artz
boobbbbbooobobob$
booobboboooobbob$
obbbbbooooboooob$
boooboboobbbbobo$
bobbobbbboobbboo$
obobbbobboboobbo$
oobobboooobbbobo$
bbbbbobbbobbbbbo$
bbobbbooobbbooob$
bbobbbbooooooooo$
bbbboooboooobobo$
boooooobobobboob$
obbobboobbboobbo$
bobboboboooboobo$
bbbboobbboboboob$
bbbbobobbooboooo$
bbbboobbboboboob$
bobboboboooboobo$
obbobboobbboobbo$
boooooobobobboob$
bbbboooboooobobo$
bbobbbbooooooooo$
bbobbbooobbbooob$
bbbbbobbbobbbbbo$
oobobboooobbbobo$
obobbbobboboobbo$
bobbobbbboobbboo$
boooboboobbbbobo$
obbbbbooooboooob$
booobboboooobbob$
boobbbbbooobobob!
Re: Hacking apgsearch
Posted: July 29th, 2017, 9:30 am
by wwei23
Apple Bottom wrote:phantoms
What's a phantom?
Re: Hacking apgsearch
Posted: July 29th, 2017, 9:32 am
by drc
wwei23 wrote:Apple Bottom wrote:phantoms
What's a phantom?
You know you could just look this stuff up and/or PM the creator of the thread, instead of clogging up threads with basic off-topic questions.
Phantom patterns mean things that APGsearch detected, but weren't actually there.
Re: Hacking apgsearch
Posted: July 29th, 2017, 9:36 am
by Saka
wwei23 wrote:Apple Bottom wrote:phantoms
What's a phantom?
http://lmgtfy.com/?q=Phantom+definition
Phantom:
In this case,
adjective
named, included, or recorded but nonexistent; fictitious
In this case, they were not xq1s at all, so they were phantom.
Or what drc said.
Re: Hacking apgsearch
Posted: July 29th, 2017, 2:24 pm
by Apple Bottom
drc wrote:Phantom patterns mean things that APGsearch detected, but weren't actually there.
Yes, this. And I agree, such questions are better asked in (say) the
thread for basic questions, which is the closest thing we have to a reference desk.
To be quite clear, BTW, "phantom" is not an actual term of the arts, but merely a word I used to describe these patterns because it seemed appropriate for describing something that is perceived to be there despite not being real.
Re: Hacking apgsearch
Posted: July 30th, 2017, 8:25 am
by Saka
I really think there should be an automatic APGBot that detects xq1 and PATHOLOGICALS and other weird stuff and sorts them into the right categories. I also think there should be zz_SQRT(T) or maybe even zz_UNIDENTIFIED for unidentified infinite growths. I also also think that there should be a special category: LONGLIVED. These are patterns that just last incredibly long and chaotic, like more than 1M maybe. Are there any true examples of PATHOLOGICALs that are actual PATHOLOGICALs?
EDIT: Oh I guess PATHOLOGICALS are for really high period oscillators. But there could also be a HIGHP_pXXXXXX for high period oscs (or even spaceships and yls!). And maybe we can have a section for diehards with lifespan > 150 (DIE_178)!
Re: Hacking apgsearch
Posted: July 30th, 2017, 9:40 am
by drc
Apgsearch has problems with spaceships with separated islands like xq14_16y161, and soups that settle quickly into really close oscillators
Re: Hacking apgsearch
Posted: July 30th, 2017, 10:29 am
by wwei23
Saka wrote:I really think there should be an automatic APGBot that detects xq1 and PATHOLOGICALS and other weird stuff and sorts them into the right categories. I also think there should be zz_SQRT(T) or maybe even zz_UNIDENTIFIED for unidentified infinite growths. I also also think that there should be a special category: LONGLIVED. These are patterns that just last incredibly long and chaotic, like more than 1M maybe. Are there any true examples of PATHOLOGICALs that are actual PATHOLOGICALs?
EDIT: Oh I guess PATHOLOGICALS are for really high period oscillators. But there could also be a HIGHP_pXXXXXX for high period oscs (or even spaceships and yls!). And maybe we can have a section for diehards with lifespan > 150 (DIE_178)!
Well, I was apgsearching B345678/S4678, and I got just pathologicals, they wouldn't stabilize in 375000 generations, and it got crazy. If apgsearch had given it more time, it would have settled into probably a low period oscillator. Also, don't you dare apgsearch B345678/S4568, oscillators can be hundreds of millions of generations. Oscar here, is still working on it.
Re: Hacking apgsearch
Posted: August 1st, 2017, 6:59 pm
by praosylen
Here's an update: work on apgsearch v0.54+0.3i is coming along nicely, and I hope to be able to post it sometime in the next two weeks. New features:
- Rules with photons now supported (although I can't find any that are searchable).
- Better separation of non-interacting combinations of oscillators and spaceships.
- Greater ease-of-use for non-totalistic rules (e.g. just enter the rulestring normally and go, instead of the multi-step process involving isotropic-rulegen.py and slashes vs. underscores.)
- Greatly-improved speed for Golly 2.8+ (except for rules with extremely common, extremely-high-period oscillators or extraordinary object diversity, for which Bullet Point 2 precludes that).
- Hopefully no more fauxtons (phantom xq1s) on Catagolue. There is a small chance there may be xp1001s instead.
EDIT: I just submitted a tlife haul to Catagolue; pseudo-object separation is working well — no non-interacting 2xP160s found yet. There is still a reasonable amount to be done with Bullet Point 3, and I won't post it until that's done.
Re: Hacking apgsearch
Posted: August 1st, 2017, 7:17 pm
by muzik
A for awesome wrote:- Rules with photons now supported (although I can't find any that are searchable).
Is cb2 searchable?
Re: Hacking apgsearch
Posted: August 1st, 2017, 7:21 pm
by wwei23
muzik wrote:A for awesome wrote:- Rules with photons now supported (although I can't find any that are searchable).
Is cb2 searchable?
Chaos persists far too long.
Re: Hacking apgsearch
Posted: August 1st, 2017, 7:46 pm
by praosylen
muzik wrote:A for awesome wrote:- Rules with photons now supported (although I can't find any that are searchable).
Is cb2 searchable?
No, too many puffers/rakes.
Re: Hacking apgsearch
Posted: August 1st, 2017, 9:33 pm
by drc
I've found a couple B2a rules that were non-explosive, however they had siderakes which sucks.
Re: Hacking apgsearch
Posted: August 3rd, 2017, 12:05 pm
by wwei23
Code: Select all
+ elif (sym in ['1x256', '1x256X2', '1x256X2+1']):
+
+ x = k + 8*(j % 32)
+ y = int(j / 32)
+ if (sym == '1x256X2+1'):
+
+ thesoup.append(-x)
+ thesoup.append(y)
+
+ if (sym == '1x256X2'):
+
+ thesoup.append(-1-x)
+ thesoup.append(y)
Also, add the new symmetries to the supported symmetry list.
Re: Hacking apgsearch
Posted: August 3rd, 2017, 12:11 pm
by wwei23
Apple Bottom wrote:wwei23 -- WW on Catagolue -- has been searching various pseudo-symmetries not previously supported by apgsearch, notably 4x64, 2x128, 1x256 and 32x32, and has made the modified apgsearch available
here on the LifeWiki.
Here's the diff against a vanilla copy of apgsearch-2015-05-25.py, showing the juicy bits:
Code: Select all
--- apgsearch-2015-05-25-vanilla.py 2017-06-30 11:07:46.918428600 +0200
+++ apgsearch-2015-05-25-wwei23.py 2017-06-30 11:03:10.075594100 +0200
@@ -51,6 +51,7 @@
import datetime
import os
import urllib2
+import RANDOM
def get_server_address():
# Should be 'http://catagolue.appspot.com' for the released version,
@@ -117,7 +118,7 @@
try:
- payload = authenticate(payosha256_key, operation_name)
+ payload = authenticate("#anon", operation_name)
if payload is None:
return 1
@@ -165,6 +166,8 @@
else:
d = 0
+
+
for j in xrange(32):
t = ord(s[j])
@@ -172,9 +175,27 @@
for k in xrange(8):
if (sym == '8x32'):
+
x = k + 8*(j % 4)
y = int(j / 4)
+
+ elif (sym == '4x64'):
+
+ x = k + 8*(j % 8)
+ y = int(j / 8)
+
+ elif (sym == '2x128'):
+
+ x = k + 8*(j % 16)
+ y = int(j / 16)
+
+ elif (sym == '1x256'):
+
+ x = k + 8*(j % 32)
+ y = int(j / 32)
+
else:
+
x = k + 8*(j % 2)
y = int(j / 2)
@@ -185,6 +206,15 @@
thesoup.append(x)
thesoup.append(y)
+ if (sym == '32x32'):
+
+ thesoup.append(x+16)
+ thesoup.append(y)
+ thesoup.append(x)
+ thesoup.append(y+16)
+ thesoup.append(x+16)
+ thesoup.append(y+16)
+
elif (sym == 'D4_x1'):
thesoup.append(y)
@@ -2645,7 +2675,7 @@
orignumber = min(orignumber, 100000000)
number = orignumber
initpos = 0
- if symmstring not in ["8x32", "C1", "C2_1", "C2_2", "C2_4", "C4_1", "C4_4", "D2_+1", "D2_+2", "D2_x", "D4_+1", "D4_+2", "D4_+4", "D4_x1", "D4_x4", "D8_1", "D8_4"]:
+ if symmstring not in ["32x32", "1x256", "2x128", "4x64", "8x32", "C1", "C2_1", "C2_2", "C2_4", "C4_1", "C4_4", "D2_+1", "D2_+2", "D2_x", "D4_+1", "D4_+2", "D4_+4", "D4_x1", "D4_x4", "D8_1", "D8_4"]:
g.exit(symmstring+" is not a valid symmetry option")
quitapg = False
@@ -2757,7 +2787,7 @@
g.new("Symmetry test")
- symmetries = [["C1", "8x32"],
+ symmetries = [["32x32", "C1", "8x32", "4x64", "2x128", "1x256"],
["C2_1", "C2_2", "C2_4"],
["C4_1", "C4_4"],
["D2_+1", "D2_+2", "D2_x"],
This should be straightforward to integrate into Aidan's hacked apgsearch supporting semi-totalistic rules. Integration of these into apgsearch 3.1 might be more involved, I haven't looked at how it operates under the hood yet.
If anyone else also wants to search these symmetries, please use the above modifications to ensure that soups are generated the same way, to ensure reproducibility / compatibility of results. (Also, to ensure Catagolue will produce the right sample soups if/when it gains the ability to handle these symmetries natively.)
More symmetries, 1x256X2, and 1x256X2+1. And figured out how to do 75% soups. Superimpose a soup on itself rotated 90 degrees(I did counterclockwise):
Code: Select all
x = 16, y = 16, rule = B3/S23
bo4b3ob3ob2o$o2bo2b5obobo$4o2bo3b2o3bo$2o2b4obo2b3o$o2b2obobo3b4o$obob
2obo2b5o$o3b2obob4o2bo$bo3bo3b4obo$9obobobo$2obo2b2obob3obo$2obo4bob2o
bo$b3obo3bobo3bo$2bobo2bo6bo$o2bob2ob5o2bo$b4ob5o$b2ob7obob2o!
Code: Select all
x = 16, y = 16, rule = B3/S23
obobobo2bobobobo$2ob3ob2o3bo2bo$3b3o3b2o$2ob7o3bobo$obo2b3ob3obo$3o2b
4obo2b3o$bobo2b2obobob3o$2o2bo3bobo2b3o$2obob2ob2o2bob2o$5o3b2o3b3o$3b
ob4o2bobobo$3b4obo3bob2o$b2obo3b4ob2o$2bo2bo2bo2b2ob2o$ob2o3b5o2b2o$b
6ob3o2bo!
Code: Select all
x = 16, y = 16, rule = B3/S23
3obob10o$2ob8obob2o$7o2b3o3bo$2ob7o2b4o$ob14o$3ob5ob6o$2ob5ob7o$2o2b2o
2b8o$11obob2o$5ob4ob5o$2obob4ob2obobo$b6ob2ob2ob2o$b2obo2b5ob2o$ob2ob
2ob5ob2o$5ob6o2b2o$b10ob4o!
Re: Hacking apgsearch
Posted: August 3rd, 2017, 12:27 pm
by Apple Bottom
wwei23 wrote:And figured out how to do 75% soups. Superimpose a soup on itself rotated 90 degrees(I did counterclockwise)
That works, but 75% density soups were already searched in the past -- so for the sake of reproducibility / comparability of results, I'd say let's make sure that we always generate soups the same way for a given (pseudo-)symmetry.
Put another way, given a (pseudo-)symmetry, root, and sample soup number, there should always be precisely one way to reconstruct the sample soup.
Otherwise:
1) Given the appearance of a rare or interesting object, we'll have to resort to guesswork and trial-and-error to reconstruct the soup it appeared from.
2) Census results may lose (some) meaningfulness if we're mixing different methods of generating soups that may (in theory) affect what objects are generated (for deep reasons that we didn't foresee, and perhaps don't even understand).
3) Verifying results becomes difficult, especially automatic verification such as Catagolue's peer-review feature -- not currently enabled for most rules/symmetries, but as far as I'm aware Calcyman just need to flip a switch to make it so, and hauls would be wrongly rejected as not passing peer review if a different method of soup generation was used.
(Of course this isn't a problem so long as we're using different names for different (pseudo-)symmetries, e.g. "75pct" and "75percent" and so on. But doing that would open another can of worms, so let's stick with one method per (pseudo-)symmetry.)
Side note -- I'd also propose that in general we discuss new (pseudo-)symmetries and their implementation here before starting to submit hauls to Catagolue, to ensure that there's no bugs, thinkos etc that we may have overlooked ourselves.
Re: Hacking apgsearch
Posted: August 3rd, 2017, 5:20 pm
by wwei23
Re: Hacking apgsearch
Posted: August 3rd, 2017, 6:08 pm
by muzik
I'm not sure, especially since I never used the hacked version.
Re: Hacking apgsearch
Posted: August 3rd, 2017, 6:16 pm
by wwei23
muzik wrote:
I'm not sure, especially since I never used the hacked version.
No, I mean, why is there an explosive rule on Catagolue? Because I had nothing to do with it.
Re: Hacking apgsearch
Posted: August 3rd, 2017, 6:28 pm
by muzik
wwei23 wrote:muzik wrote:
I'm not sure, especially since I never used the hacked version.
No, I mean, why is there an explosive rule on Catagolue? Because I had nothing to do with it.
Because it isn't always explosive, and can be searched one soup per haul.
Re: Hacking apgsearch
Posted: August 3rd, 2017, 6:30 pm
by wwei23
muzik wrote:one soul per haul
I don't get it.
Re: Hacking apgsearch
Posted: August 3rd, 2017, 6:46 pm
by toroidalet
muzik wrote:wwei23 wrote:overquote
Because it isn't always explosive, and can be searched one soul per haul.
Yes, soul-searching doesn't always work, especially in DryLife, where everything's super dry, so the souls are. Souls are much more common in B2c3ajk46-ak/S1c237e8, but so is everything else.
wwei23 wrote:muzik wrote:one soul per haul
I don't get it
That doesn't necessitate a post.
Also, there is nothing wrong with apgsearching DryLife, because all those soups are stable. No explosive soups have been uploaded.
Can someone work on using Hashlife for apgsearch? (I would try but my text editor isn't suited for coding and creates a ton of errors.)
Re: Hacking apgsearch
Posted: August 3rd, 2017, 6:53 pm
by muzik
toroidalet wrote:
Can someone work on using Hashlife for apgsearch?
isn't that coming in 4.0?