Hacking apgsearch

For scripts to aid with computation or simulation in cellular automata.
Post Reply
User avatar
toroidalet
Posts: 1514
Joined: August 7th, 2016, 1:48 pm
Location: My computer
Contact:

Re: Hacking apgsearch

Post by toroidalet » July 23rd, 2017, 12:56 am

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.)
Any sufficiently advanced software is indistinguishable from malice.

User avatar
PHPBB12345
Posts: 1096
Joined: August 5th, 2015, 11:55 pm
Contact:

Re: Hacking apgsearch

Post by PHPBB12345 » July 23rd, 2017, 1:36 am

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.

User avatar
Apple Bottom
Posts: 1034
Joined: July 27th, 2015, 2:06 pm
Contact:

Re: Hacking apgsearch

Post by Apple Bottom » July 29th, 2017, 4:56 am

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!
Attachments
log.1501308006.tchwKZhfseqX.txt
(74.93 KiB) Downloaded 193 times
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!

wwei23

Re: Hacking apgsearch

Post by wwei23 » July 29th, 2017, 9:30 am

Apple Bottom wrote:phantoms
What's a phantom?

drc
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm

Re: Hacking apgsearch

Post by drc » July 29th, 2017, 9:32 am

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.

User avatar
Saka
Posts: 3627
Joined: June 19th, 2015, 8:50 pm
Location: Indonesia
Contact:

Re: Hacking apgsearch

Post by Saka » July 29th, 2017, 9:36 am

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.

User avatar
Apple Bottom
Posts: 1034
Joined: July 27th, 2015, 2:06 pm
Contact:

Re: Hacking apgsearch

Post by Apple Bottom » July 29th, 2017, 2:24 pm

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.
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!

User avatar
Saka
Posts: 3627
Joined: June 19th, 2015, 8:50 pm
Location: Indonesia
Contact:

Re: Hacking apgsearch

Post by Saka » July 30th, 2017, 8:25 am

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)!

drc
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm

Re: Hacking apgsearch

Post by drc » July 30th, 2017, 9:40 am

Apgsearch has problems with spaceships with separated islands like xq14_16y161, and soups that settle quickly into really close oscillators

wwei23

Re: Hacking apgsearch

Post by wwei23 » July 30th, 2017, 10:29 am

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.

User avatar
praosylen
Posts: 2443
Joined: September 13th, 2014, 5:36 pm
Location: Pembina University, Home of the Gliders
Contact:

Re: Hacking apgsearch

Post by praosylen » August 1st, 2017, 6:59 pm

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.
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...

User avatar
muzik
Posts: 5612
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Hacking apgsearch

Post by muzik » August 1st, 2017, 7:17 pm

A for awesome wrote:
  • Rules with photons now supported (although I can't find any that are searchable).
Is cb2 searchable?

wwei23

Re: Hacking apgsearch

Post by wwei23 » August 1st, 2017, 7:21 pm

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.

User avatar
praosylen
Posts: 2443
Joined: September 13th, 2014, 5:36 pm
Location: Pembina University, Home of the Gliders
Contact:

Re: Hacking apgsearch

Post by praosylen » August 1st, 2017, 7:46 pm

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.
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...

drc
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm

Re: Hacking apgsearch

Post by drc » August 1st, 2017, 9:33 pm

I've found a couple B2a rules that were non-explosive, however they had siderakes which sucks.

wwei23

Re: Hacking apgsearch

Post by wwei23 » August 3rd, 2017, 12:05 pm

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.

wwei23

Re: Hacking apgsearch

Post by wwei23 » August 3rd, 2017, 12:11 pm

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!

User avatar
Apple Bottom
Posts: 1034
Joined: July 27th, 2015, 2:06 pm
Contact:

Re: Hacking apgsearch

Post by Apple Bottom » August 3rd, 2017, 12:27 pm

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.
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!

wwei23

Re: Hacking apgsearch

Post by wwei23 » August 3rd, 2017, 5:20 pm


User avatar
muzik
Posts: 5612
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Hacking apgsearch

Post by muzik » August 3rd, 2017, 6:08 pm

wwei23 wrote:What is going on here?
https://catagolue.appspot.com/census/b37s23/C1
I'm not sure, especially since I never used the hacked version.

wwei23

Re: Hacking apgsearch

Post by wwei23 » August 3rd, 2017, 6:16 pm

muzik wrote:
wwei23 wrote:What is going on here?
https://catagolue.appspot.com/census/b37s23/C1
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.

User avatar
muzik
Posts: 5612
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Hacking apgsearch

Post by muzik » August 3rd, 2017, 6:28 pm

wwei23 wrote:
muzik wrote:
wwei23 wrote:What is going on here?
https://catagolue.appspot.com/census/b37s23/C1
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.
Last edited by muzik on August 3rd, 2017, 6:42 pm, edited 1 time in total.

wwei23

Re: Hacking apgsearch

Post by wwei23 » August 3rd, 2017, 6:30 pm

muzik wrote:one soul per haul
I don't get it.

User avatar
toroidalet
Posts: 1514
Joined: August 7th, 2016, 1:48 pm
Location: My computer
Contact:

Re: Hacking apgsearch

Post by toroidalet » August 3rd, 2017, 6:46 pm

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.)
Any sufficiently advanced software is indistinguishable from malice.

User avatar
muzik
Posts: 5612
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Hacking apgsearch

Post by muzik » August 3rd, 2017, 6:53 pm

toroidalet wrote: Can someone work on using Hashlife for apgsearch?
isn't that coming in 4.0?

Post Reply