ConwayLife.com - A community for Conway's Game of Life and related cellular automata
Home  •  LifeWiki  •  Forums  •  Download Golly

Stable glider reflector

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.

Re: Stable glider reflector

Postby thunk » October 14th, 2015, 5:29 pm

Here's an idea:

The HWSS is the only one which turns a block into a pi. Finding a set of eaters which restores the block rectifier/syringe style seems to have been a partially explored topic of interest.
x = 18, y = 6, rule = LifeHistory
2.2C11B3D$C.3BC9BDBD$2.4BC.7BD2C$C5BC9B2C$.6C11B$.17B!

But I don't know how to use catgl or Bellman or whatever to search for anything, so eh.

EDIT: fixed pattern.
"What's purple and commutes?
The Evanston Express."
thunk
 
Posts: 165
Joined: October 3rd, 2015, 8:50 pm
Location: Central USA

Re: Stable glider reflector

Postby dvgrn » October 14th, 2015, 6:10 pm

thunk wrote:The HWSS is the only one which turns a block into a pi. Finding a set of eaters which restores the block rectifier/syringe style seems to have been a partially explored topic of interest.

It's a good idea. The pi is right on top of the block, so the odds aren't too bad that the reaction can be settled back down into a block in the right place.

Seems as if catgl, ptbsearch, CatForce, and Bellman would all be good choices for a search. Maybe it would be good to post a quick walkthrough/tutorial on each program, as applied to this problem. I'll write up a catgl input file if someone else will explain one of the other three...!

EDIT: Meanwhile, here's a first-try composite HWSS->G using Hersrch.

x = 116, y = 107, rule = LifeHistory
70.2A$70.A.A$72.A4.2A$68.4A.2A2.A2.A$68.A2.A.A.A.A.2A$71.A.A.A.A$72.
2A.A.A$76.A2$62.2A$63.A7.2A$63.A.A5.2A$64.2A7$74.2A$74.A$75.3A$77.A$
96.A$96.3A$99.A$37.A60.A.A$36.A.A59.A.A$34.A2.A.A59.A$33.A.2A2.3A$29.
2A2.A3.2A3.A$29.2A3.3A2.3A$37.A.A$36.A.A75.2A$37.A76.2A4$94.2A$93.A.A
$93.A$92.2A7.2A$101.2A$2.2C$C4.C47.2A54.2A.A$6.C29.2C15.2A54.2A.3A$C
5.C29.2C77.A$.6C102.2A.3A$59.2A47.A2.2A$59.2A46.A.A$55.2A49.A.A.2A.A$
55.2A32.2A16.A2.A.2A$25.2A63.A19.A$26.A63.A.A16.2A$23.3A65.2A13.A.A2.
2A$23.A36.2A44.2A2.A2.A$60.2A49.2A7$108.2A$108.2A2$92.2A$53.2A37.2A$
53.A30.2A$54.3A28.A18.2A.2A$56.A28.A.A16.2A.A$40.2A44.2A21.A$39.A.A
61.A.5A$39.A63.2A$38.2A66.2A$107.A$82.A.A19.3A$82.2A.A18.A$85.3A$67.
2A13.2A4.A$68.A13.A.5A$48.2A18.A.A13.A$48.2A19.2A12.A3.2A$57.2A23.A3.
A.A$55.A2.A23.2A3.A$55.2A4.2A$39.2A20.A44.2A$40.A18.A.A44.2A$40.A.A
16.2A$41.2A2$101.2A$101.2A$105.2A$105.2A3$70.2A27.2A$70.2A11.2A14.2A$
83.A$47.2A35.3A$43.2A2.2A37.A$42.A.A$42.A23.2A$41.2A23.A$67.3A$69.A!

EDIT2: Oops -- do a silly search, get a silly connection. Here's a slightly nicer HWSS->G, repeat time 573 [EDIT AGAIN: already posted elsewhere by thunk, sorry...]

By the way, does anyone have any use for a quick walkthrough of how to ask Hersrch this kind of question? You don't really need Hersrch if you have a list of color-changing and color-preserving Herschel tracks, but it's easy to have Hersrch string together all the likely candidates for you. For the record, here's a link to a sample Hersrch walkthrough.

You can arrange this reaction so that the HWSS passes through cleanly if the block isn't present. Can't think of any likely practical use for that, but it's fun to watch it work:

x = 399, y = 105, rule = LifeHistory
259.2A98.2A$258.A.A97.A.A$252.2A4.A93.2A4.A$250.A2.A2.2A.4A87.A2.A2.
2A.4A$250.2A.A.A.A.A2.A87.2A.A.A.A.A2.A$253.A.A.A.A93.A.A.A.A$253.A.A
.2A94.A.A.2A$254.A99.A$275.A99.A$267.2A5.A.A90.2A5.A.A$258.2A7.A5.A.A
2.A79.2A7.A5.A.A2.A$258.2A5.A.A3.3A2.2A.A78.2A5.A.A3.3A2.2A.A$265.2A
3.A3.2A3.A2.2A81.2A3.A3.2A3.A2.2A$271.3A2.3A3.2A87.3A2.3A3.2A$273.A.A
97.A.A$274.A.A97.A.A$275.A99.A3$255.2A98.2A$256.A99.A$253.3A97.3A$
253.A99.A3$2.2C198.2C$C4.C194.C4.C$6.C199.C69.2C98.2C$C5.C193.C5.C69.
2C98.2C$.6C194.6C5$217.A53.2A44.A53.2A$217.3A51.2A44.3A51.2A$220.A63.
2A34.A63.2A$219.2A63.A.A32.2A63.A.A$286.A99.A$286.2A98.2A$211.2A78.A
19.2A78.A$211.A77.3A19.A77.3A$208.2A.A76.A19.2A.A76.A$208.A2.3A4.2A
68.2A18.A2.3A4.2A68.2A$209.2A3.A3.2A89.2A3.A3.2A$211.4A96.4A$211.A15.
2A37.2A19.2A22.A15.2A37.2A19.2A$212.3A12.A.A36.2A19.2A23.3A12.A.A36.
2A19.2A$215.A13.A85.A13.A$210.5A14.2A79.5A14.2A$210.A99.A$212.A99.A$
211.2A98.2A$269.2A98.2A$270.A99.A$267.3A24.2A71.3A24.2A$267.A21.2A2.A
2.A70.A21.2A2.A2.A$289.A.A2.2A93.A.A2.2A$274.2A16.2A80.2A16.2A$275.A
17.A81.A17.A$272.3A15.A2.A.2A75.3A15.A2.A.2A$272.A16.A.A.2A.A75.A16.A
.A.2A.A$290.A.A97.A.A$291.A2.2A95.A2.2A$292.2A.3A94.2A.3A$298.A99.A$
292.2A.3A94.2A.3A$292.2A.A96.2A.A2$284.2A98.2A$284.2A98.2A3$276.2A98.
2A$274.A2.A96.A2.A$274.2A98.2A2$297.2A98.2A$297.2A98.2A4$267.A99.A$
265.3A14.A82.3A14.A$264.A16.A.A80.A16.A.A$264.2A15.A.A80.2A15.A.A$
282.A99.A$279.3A97.3A$279.A99.A4$254.2A98.2A$253.A.A5.2A90.A.A5.2A$
253.A7.2A90.A7.2A$252.2A98.2A2$266.A99.A$262.2A.A.A94.2A.A.A$261.A.A.
A.A93.A.A.A.A$258.A2.A.A.A.A.2A87.A2.A.A.A.A.2A$258.4A.2A2.A2.A87.4A.
2A2.A2.A$262.A4.2A93.A4.2A$260.A.A97.A.A$260.2A98.2A!
#C [[ STEP 8 ]]
dvgrn
Moderator
 
Posts: 4020
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI

Re: Stable glider reflector

Postby dvgrn » October 15th, 2015, 10:11 am

dvgrn wrote:Here's a slightly nicer HWSS->G, repeat time 573...

Oops again. Thanks to the magic of two different colored glider outputs from that nice pi->2G, how about a 545-tick recovery time? EDIT: Make that 537, thanks to a nice compact weld that I didn't know was possible:

x = 335, y = 73, rule = LifeHistory
282.2A$282.A.A$284.A4.2A$280.4A.2A2.A2.A$280.A2.A.A.A.A.2A$282.BABABA
.A$283.B2ABA.A$284.2B.BA$283.3B$274.2A6.4B$275.A6.B2A3B46.B$275.A.AB
3.B2A3B45.2B$276.2AB.10B42.3B$278.13B40.4B$278.14B38.4B$278.15B36.4B$
280.8B2.4B34.4B$280.6B5.4B32.4B$279.9B4.4B30.4B$278.4B4.2A5.4B28.4B$
277.4B5.A7.4B26.4B$276.4B7.3A5.4B24.4B$275.4B10.A6.4B22.4B$274.4B19.
4B20.4B$273.4B21.4B18.4B$272.4B23.4B16.4B$271.4B25.4B14.4B$258.2A10.
4B27.4B12.4B$259.A9.4B29.4B10.4B$257.A10.4B31.4B8.4B$257.5A5.4B5.2A
26.4B6.4B$262.A4.4B5.A14.A13.4B4.4B$259.3AB2.7B.BA.A13.A.A13.4B2.4B7.
A$258.A.2B3.7B.B2A11.BA2.A.A13.8B6.3A$258.4A12B10.B.BA.2A2.3A12.6B6.A
$256.2A2.BA3B2A7B9.2A2BAB2.2A3.A12.4B7.2A$255.A2.3AB.2B2A7B9.2AB.B3A
2.3A12.6B3.5B$255.2A.A.B3.10B10.B2.2B2.A.A13.8B2.3B$258.A8.8B14.BABAB
12.4B2.9B7.2A$258.2A7.9B12.3BAB12.4B4.8B8.A$268.3B2.4B11.4B12.4B6.10B
3.B.A.2A$266.5B3.4B11.3B11.4B7.7B2A2B.B3A2.A$266.2A7.4B10.4B.B7.4B8.
7B2A3BAB2.2A$267.A8.4B.B4.B.8B3.B.4B9.12B4A$264.3A10.6B2.11B2.6B8.2AB
.7B3.2B.A$264.A12.27B7.A.AB.7B2.B3A$276.29B2.2A2.A5.4B4.A$277.27B3.A
2.2A5.4B5.5A$2.2C251.49B4.2A6.4B10.A$C4.C249.48B6.A5.4B9.A$6.C248.18B
2C15B2C11B4.A6.4B10.2A$C5.C248.14B4CB2C14B2C9B6.2A4.4B$.6C248.14B6C
16B.5B.2B8.2B2.4B$255.15B4C23B10.8B6.2A$255.41B11.7B7.A$281.16B2.2B2.
B2.7B5.2A.A$279.34B4.A2.A$279.2A2.3B.27B3.B2A$280.A3.B2.16B2A14B$277.
3A7.16B2A13B$277.A10.29B$295.4B.17B$294.5B2.15B$290.2A.2BA.19B$290.A.
2BA.A5.13B$291.A2.BA.A2.13B$292.A3.A.A.2A4.8B$290.A.4A2.AB2A6.6B$289.
A.A3.A.A2.B8.5B$289.A.A2.A2.2A.2A9.B.B$290.A3.2A2.A.A9.3B$298.A.A9.B
2AB$299.A11.2A!

Yes, I know this is still not anything like the direct HWSS->G that we really want. Am just waiting around for an overnight catgl run to be done so that I can report that it didn't find anything.

The probability of no useful results must be over 99%, so I might as well write it up that way ahead of time. Here's the batch file I ran:

catgl < pitoblock.txt
pause

pitoblock.txt:
y
...................o
o.o.o.o.o.o.o.o...o.o
...............o.oo.oo
...................++
o.o.o.o.o.o.o.o....++
...................
..................o
o.o.o.o.o.o.o.o.o
!
n
1
100
99
3

Translation:

y = yes, print output to file.
Start with a pi explosion.
Litter the incoming HWSS lane with a scattering of sparks to forbid the placement of catalysts there.
Specify a target block in the right location -- '+' means "OFF at beginning, should be ON at end."
! = end of input pattern
n = no, don't limit, try all standard catalysts (not trying new ones like ship+eater)
1 = catalysts start reacting at T=1
100 = last catalyst placement allowed is at T=100 (arbitrary choice)
99 = each catalyst placed must survive for 99 ticks (arbitrary choice)
3 = place a maximum of 3 catalysts (highest value to allow a complete search inside a day)

A 3-catalyst search covers a fairly large search space, so by running this search I'm hoping against hope that a block will just happen to show up in the right place. In that case, along with all the candidate results, catgl will print "Pattern matched target!"

A text search on the word "matched"... nope, no matches. Also the search has completed now -- about 8 hours on my rather slow old laptop:

...
22513000 calls to advance1gen().
0 catalysts.
Generation reached: 100
   -----
The end.
22513963 calls to advance1gen()
5257 patterns printed.
0 patterns matched target.

The last result, Pattern #5257 in this case, is always the one with zero catalysts added.

The odds are somewhat better that there will be a match in a 4-catalyst search, but that would take a long long time to run, and most likely any such candidate would include a block plus a lot of other unsuppressable junk scattered around.

Another angle to look at is that, besides the restored block, we also need this reaction to spit out a glider or a Herschel or something, so we don't just end up with a fancy HWSS eater. Herschels emit two gliders, so we could do a text search on "2 glider" and find... lots of equivalent ways to get a useless backward Herschel out that can't be connected up to anything. A text search on "1 glider" finds many more reactions that emit a glider.

I don't immediately see any likely glider-emitting results that are really begging to be catalyzed further. Often you can lead an active reaction out into an empty area, adding more catalysts a few at a time -- you can copy any candidate initial pattern reported by catgl back into catgl's input text file, and adjust the search parameters appropriately.

In this case, though, most of the glider-producing reactions are variants on just a half-dozen rather messy themes. None of them have any activity near the block location, nor any remaining space to put catalysts near there, so I'm not tempted to chase any wild gooses. That would be something to try if a promising pattern had actually restored the block.

Also, it's maybe useful information that if the first catalyst isn't placed by T=66, catgl can't find any solutions at all. Probably more efficient to limit future searches to T=1..66. We can't really search the whole space, but maybe there's a limited search with more than three catalysts that could be run to completion.

Short summary:

Catgl reports no obvious leads with three catalysts. But it's a fairly simple algorithm, and can't handle transparent catalysts. Here's hoping Bellman or one of the others can do better.
Attachments
reactions.txt
reactions.txt for 3-catalyst search for a replacement block after an HWSS+block collision
(13.58 MiB) Downloaded 150 times
dvgrn
Moderator
 
Posts: 4020
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI

Re: Stable glider reflector

Postby Gustavo6046 » October 15th, 2015, 10:29 am

New interests come! I am planning a G-to-pi to complete all! I already have the original reaction:
x = 7, y = 4, rule = LifeHistory
3D$D2A2.2A$2DCA.2A$.A!

Also souldn't we be searcing for reflectors?
x = 14, y = 9, rule = LifeHistory
9.A$8.A.A.2A$8.A.A.2A$9.A3$2A$.2A$A!

Dopefish eaten my ptbsearch unfortunately.
*yawn* What a nothing-to-do day! Let's be the only person in the world to do CGOL during boring times. :)
User avatar
Gustavo6046
 
Posts: 644
Joined: December 7th, 2013, 6:26 pm
Location: South of Brazil.

Re: Stable glider reflector

Postby thunk » October 15th, 2015, 10:44 am

dvgrn wrote:Here's a slightly nicer HWSS->G, repeat time 573...

I think I posted that one in the other thread, I didn't get the rearrangment though.

dvgrn wrote: Yes, I know this is still not anything like the direct HWSS->G that we really want. Am just waiting around for an overnight catgl run to be done so that I can report that it didn't find anything.

The probability of no useful results must be over 99%, so I might as well write it up that way ahead of time. Here's the batch file I ran:


Yeah, my 2-catalyst catgl searches were also fruitless. This doesn't seem likely with this program.

dvgrn wrote: Catgl reports no obvious leads with three catalysts. But it's a fairly simple algorithm, and can't handle transparent catalysts. Here's hoping Bellman or one of the others can do better.


I'll try Bellman out later today then.

Gustavo:
Gustavo6046 wrote:New interests come! I am planning a G-to-pi to complete all! I already have the original reaction:
rle

Then shouldn't you be aware that this reaction is well-known, used in the boojum reflector, rectifier, and syringe, and the same one I alluded to above? The other reaction is useless, for reasons already explained to you.
"What's purple and commutes?
The Evanston Express."
thunk
 
Posts: 165
Joined: October 3rd, 2015, 8:50 pm
Location: Central USA

Re: Stable glider reflector

Postby Scorbie » October 17th, 2015, 4:10 am

dvgrn wrote:Seems as if catgl, ptbsearch, CatForce, and Bellman would all be good choices for a search. Maybe it would be good to post a quick walkthrough/tutorial on each program, as applied to this problem. I'll write up a catgl input file if someone else will explain one of the other three...!

I don't have ptbsearch right now, but here is a thorough description on how I work with ptbsearch.
If you have problem understanding these, any questions are welcome! (Except for trolling ones...)

NOTE: I would like you to know that these commands are "idiomatic" commands that I used primarily to find patterns that destroy then restore the bait. (e.g. signal transceivers, SGRs, syringes) That means:

1) The code I listed below is not the only way to run ptbsearch, but rather a convenient way to run sequential related commands at once. You could always run each programs seperately, if you like.

2)I haven't used ptbsearch much to find conduits, and I'm not sure if there's a systematic way to filter out interesting partial conduits out of tons and tons of candidates. (Something like "survive a" in the following explanation.) Of course, you can add catalysts and filter out duplicate results when finding conduits, so I guess you could use commands starting with "survive ab" or "ptb2" or "ptblist.pl" in the following explanation.


I would probably use something similar to dvgrn's input.
(partly because I don't have golly right now :?)
pitoblock.txt:
(Edited the input pattern)
..aa.....a.a.a.a.a.a......
a....a...a.a.a.a.a.a......
......a.................bb
a.....a..a.a.a.a.a.a....bb
.aaaaaa...................
.........a.a.a.a.a.a......
.........a.a.a.a.a.a......

And I usually copy the following content and paste it to the terminal.[1][2]
Warning: I haven't tested the code, and it might not work. Don't blame me if the following code crashes your
computer (although it probably won't) or eats your mouse or whatever.
Ahh, right. You need to have perl installed, and you need to have scorbie.list, pitoblock.txt, ptb2.exe, survive.exe, ptblist.pl, and makematrix.pl in the same directory of the command line. (Which is usually the ptbsearch directory.)
ptb2 pitoblock.txt scorbie.list 75 1 25 1 > pitoblock2.txt
survive a < pitoblock2.txt | uniq.pl | makematrix.pl > pitoblock2.life
survive ab < pitoblock2.txt | uniq.pl > pitoblock2u.txt
ptblist.pl pitoblock2u.txt scorbie.list 100 > pitoblock21.txt
survive a < pitoblock21.txt | uniq.pl | makematrix.pl > pitoblock21.life
survive ab < pitoblock21.txt | uniq.pl > pitoblock21u.txt
ptblist.pl pitoblock21u.txt scorbie.list 125 > pitoblock211.txt
survive a < pitoblock211.txt | uniq.pl | makematrix.pl > pitoblock211.life
survive a < pitoblock211.txt | uniq.pl > pitoblock211u.txt


Line by line explanation:
(Most of the params are my arbitrary choice, but I made it kinda reasonable.)

ptb2 pitoblock.txt scorbie.list 75 1 25 1 > pitoblock2.txt

This means "Add two catalysts from scorbie.list, at most one of them transparent, from gens 25 to 75"
pitoblock.txt is the input file, obviously.
scorbie.list is the file that contains the catalysts you want to use.
75 is the last generation a catalyst can touch the reaction
The first 1 is "total number of catalysts -1". So in this case we are using a total of 2 catalysts. Unlike Catgl, ptbsearch only outputs solutions with exactly 2 catalysts.
The second 25 is the first generation a catalyst can touch the reaction.
The third 1 is the maximum number of transparent catalysts.
> pitoblock2.txt means save the output to the file "pitoblock2.txt". Without it, ptb2 will throw results to the console, a.k.a. stdout. (Try it!)

survive a < pitoblock2.txt | uniq.pl | makematrix.pl > pitoblock2.life

This means "Find anything that restores the block and save it as .life file so that we could view it on Golly!"
You have to know how survive works to understand the command: it runs each the results of ptb2 in Life rule, one by one. And it tries to find patterns that restore cells you specified. How can you specify these cells? Look at the input file. Some "on" cells are marked a while others are marked b. You specify one or more characters when running survive (In this case, a) and survive tries to restore everything except these characters. So in this case, only cells with b would be restored, which is the initial block. So each word of the command would mean the following:
a is the cells you don't want to restore. You can use a-z and A-Z, so you can put "abc" (without quotes) to exclude cells marked a, b, or c. But you should know that characters * and z are reserved for catalyst cells, so you shouldn't use them.
< pitoblock2.txt means that the program reads input from the file pitoblock2.txt. Survives reads results of ptb2, so you should specify the ptb2 result file here.
| uniq.pl means get the output of survive and feed it in to uniq.pl.[3] You have to know two things:
The output of survive is the reactions that restore the original block. + Some information about the reaction.
uniq.pl gets the reactions (and the relevant information) and filters out duplicate results. i.e. A transparent block works in everywhere where a normal block would do. uniq.pl eliminates these results.
| makematrix.pl means get the results from ptb2 or survive and convert it into life format. If you look at the text file you would see that there are a lot of as, bs, dots, and exclamation points. This is converted to life format by makematrix.pl.
> pitoblock2.life means to save the output of makematrix.pl to pitoblock2.life. The naming is merely my arbitrary convention. I name intermediate ptb2/survive outputs as .txt extensions (although the standard seems to be .out extensions) and the final results that are viewable by Golly as .life extensions. Now you could see the result of putting two catalysts to the HWSS + Block -> pi explosion. But this would probably have no solutions. What then?

You should add more catalysts! (This is what makes ptbsearch really nice.)
Before you read on, can you guess what the following command means?

survive ab < pitoblock2.txt | uniq.pl > pitoblock2u.txt

It's kinda tricky. This means "Just filter out duplicate results and save it to pitoblock2u.txt". How does that work?
survive ab means filter out patterns that recovers everything except the ones marked as a or b... But EVERY cell is marked a or b! So this doesn't filter out anything... But this adds additional information about the reaction.
< pitoblock2.txt merely means to get the input from pitoblock2.txt (i.e. the "raw" result by ptb2)
| uniq.pl filters out duplicate results. We cannot use uniq.pl directly (like uniq.pl < pitoblock2.txt > pitoblock2u.txt) because uniq.pl needs the information generated by survive in order to filter out results. That's why we added survive in the beginning.
> pitoblock2u.txt merely means "save the output file to pitoblock2u.txt". Again the naming is just my arbitrary convention. I named it pitoblock2u.txt because it only contains "unique" reactions.
The line we just examined is not absolutely necessary, but it would make the next search run a little faster as we eliminated duplicate results.

Here's the next line:
ptblist.pl pitoblock2u.txt scorbie.list 100 > pitoblock21.txt

Hopefully this would be the last unfamiliar command... Everything afterwards are repeating known commands.
ptblist.pl gets a list of input files that need to be perturbed, and adds one catalyst. In this case:
pitoblock2u.txt is the list of the patterns to be perturbed,
scorbie.list is the catalysts to use,
100 is the last generation that a catalyst can be added.
And of course, the output is saved into pitoblock21.txt.
Hence, the command means: "Get all the (unique) 2-catalyst perturbations from the reactions and add another catalyst till gen 100!" (By the way, the catalyst can be transparent.)

Everything afterwards are similar to what we have seen, so let me translate the commands to plain English from the beginning:
Code:
(1)ptb2 pitoblock.txt scorbie.list 75 1 25 1 > pitoblock2.txt
(2)survive a < pitoblock2.txt | uniq.pl | makematrix.pl > pitoblock2.life
(3)survive ab < pitoblock2.txt | uniq.pl > pitoblock2u.txt
(4)ptblist.pl pitoblock2u.txt scorbie.list 100 > pitoblock21.txt
(5)survive a < pitoblock21.txt | uniq.pl | makematrix.pl > pitoblock21.life
(6)survive ab < pitoblock21.txt | uniq.pl > pitoblock21u.txt
(7)ptblist.pl pitoblock21u.txt scorbie.list 125 > pitoblock211.txt
(8)survive a < pitoblock211.txt | uniq.pl | makematrix.pl > pitoblock211.life
(9)survive a < pitoblock211.txt | uniq.pl > pitoblock211u.txt
Translation:
(1)Catalyze the reaction in pitoblock.txt. Use two catalysts from scorbie.list. At most one of them can be transparent. The catalysts can react from gen 25 to gen 75. Save the output file to pitoblock2.txt.
(2)Find out if there are any reactions that restore the initial block and save it to pitoblock2.life.
(3)Filter out duplicate results and save it to pitoblock2u.txt.
(4)Add one scorbic catalyst that reacts until gen 100. Save it to pitoblock21.txt.
=====This is what we have gone through together=====
(5)Find out if there are any reactions that restore the initial block and save it to pitoblock21.life.
(6)Filter out duplicate results and save it to pitoblock21u.txt.
(7)Add one scorbic catalyst that reacts until gen 125. Save it to pitoblock211.txt.
(8)Find out if there are any reactions that restore the initial block and save it to pitoblock211.life.
(9)Filter out duplicate results and save it to pitoblock211u.txt.

You can see that the last line is not necessary for the current search, just preparing for future searches.

That's all. I hope this would interest more people to ptbsearch (and I especially hope not the other way around...)
There are several nitty gritty details I haven't told you. (If you would like to know what details, then look at the readme file of ptbsearch.) If some things don't work as told, the subtle details would likely be the reason. If you have question, don't hesitate to ask me.


[1]About pasting to the terminal:
On windows < 10, Alt+Space->E->P.
On windows 10, Ctrl+V works!
On linux, you guys would know better than me :)(Isn't it Shift+Insert?)

[2]I'm doing this way because batch syntax is kinda quirky, and you have to put 'call' thingy in the front to launch multiple programs. This way I can write what I write directly on the terminal.

[3]"AAAA | BBBB" means to pass the output of AAAA to the input of BBBB.
Last edited by Scorbie on January 9th, 2016, 7:08 pm, edited 7 times in total.
Best wishes to you, Scorbie
User avatar
Scorbie
 
Posts: 1329
Joined: December 7th, 2013, 1:05 am

Re: Stable glider reflector

Postby Scorbie » October 17th, 2015, 4:14 am

Ahh, what a post! I'm afraid it's tl;dr except for those who know ptbsearch already...

EDIT: Somebody who can explain concisely and easily please help!

EDIT: There was an error in the input file. Hopefully I guess nobody tried to run that. Will edit the file soon.

Edited the input file (I use spartan catalysts), ran the search, only found this rather sparky HWSS eater... Well I think there may be more results with more catalysts... But the search time get exponentially longer so I usually don't add another catalyst. Anyway this is how it works. And I'm surprised to see that this only took about 4 hours in my rather old laptop (that barely breathes).
x = 34, y = 21, rule = B3/S23
29bo$27b3o$26bo$26b2o4b2o$32bo$30bobo$30b2o2$2b2o5bobobobobobo$o4bo3bo
bobobobobo12b2o$6bo17b2o5bobo$o5bo2bobobobobobo4b2o6bo$b6o$9bobobobobo
bo$9bobobobobobo3$15b2o$16bo$13b3o$13bo!
Best wishes to you, Scorbie
User avatar
Scorbie
 
Posts: 1329
Joined: December 7th, 2013, 1:05 am

Re: Stable glider reflector

Postby gmc_nxtman » October 19th, 2015, 7:20 pm

Try to compile Hersrch.cpp gives me the following errors:

GalensSlverBook:src galenmcholbi$ cc Hersrch.cpp
In file included from Hersrch.cpp:6:
In file included from ./BasicComponent.h:12:
In file included from ./Component.h:12:
./Identifier.h:16:8: warning: extra tokens at end of #endif directive
      [-Wextra-tokens]
#endif __Identifier_h__
       ^
       //
In file included from Hersrch.cpp:6:
./BasicComponent.h:58:9: error: C++ requires a type specifier for all
      declarations
        inline getActive() { return m_variantListLength > 0; };
        ~~~~~~ ^
In file included from Hersrch.cpp:8:
./Search.h:67:13: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
                        string = "";
                                 ^
Hersrch.cpp:474:48: warning: format specifies type 'int' but the argument has
      type 'long' [-Wformat]
  ...sprintf(&buffer[strlen(buffer)], "%c=%d", 'a' + i, var[i]);
                                       ~~      ^~~~~~~
                                       %ld
Hersrch.cpp:474:57: warning: format specifies type 'int' but the argument has
      type 'long' [-Wformat]
  ...sprintf(&buffer[strlen(buffer)], "%c=%d", 'a' + i, var[i]);
                                          ~~            ^~~~~~
                                          %ld
Hersrch.cpp:568:14: error: use of undeclared identifier 'strtoul'
                                period = strtoul(argv[argi], &ep, 10);
                                         ^
Hersrch.cpp:585:19: error: use of undeclared identifier 'strtoul'
                                compression = strtoul(argv[argi], &ep, 10);
                                              ^
Hersrch.cpp:602:18: error: use of undeclared identifier 'strtoul'
                                maxresults = strtoul(argv[argi], &ep, 10);
                                             ^
Hersrch.cpp:619:14: error: use of undeclared identifier 'strtoul'
                                minlen = strtoul(argv[argi], &ep, 10);
                                         ^
Hersrch.cpp:644:14: error: use of undeclared identifier 'strtoul'
                                ignore = strtoul(argv[argi], &ep, 10);
                                         ^
Hersrch.cpp:661:14: error: use of undeclared identifier 'strtoul'
                                maxlen = strtoul(argv[argi], &ep, 10);
                                         ^
Hersrch.cpp:682:16: error: use of undeclared identifier 'strtoul'
                                treeSize = strtoul(argv[argi], &ep, 10);
                                           ^
Hersrch.cpp:707:16: error: use of undeclared identifier 'strtoul'
                                maxcells = strtoul(argv[argi], &ep, 10);
                                           ^
Hersrch.cpp:761:10: error: use of undeclared identifier 'strtol'
                                dx = strtol(argv[argi], &ep, 10);
                                     ^
Hersrch.cpp:775:11: error: use of undeclared identifier 'strtol'
                                        dy = strtol(argv[argi], &ep, 10);
                                             ^
Hersrch.cpp:789:12: error: use of undeclared identifier 'strtol'
                                                dt = strtol(argv[argi], ...
                                                     ^
4 warnings and 12 errors generated.
User avatar
gmc_nxtman
 
Posts: 1055
Joined: May 26th, 2015, 7:20 pm

Re: Stable glider reflector

Postby dvgrn » October 20th, 2015, 6:29 am

gmc_nxtman wrote:Try to compile Hersrch.cpp gives me the following errors...

More details, please! In particular, what's your target OS?

On Windows you could probably just run the pre-compiled executable... so maybe Andrew Trevorrow's efforts to make Hersrch compatible with Mac and Linux will come in handy.
dvgrn
Moderator
 
Posts: 4020
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI

Re: Stable glider reflector

Postby dvgrn » October 20th, 2015, 7:11 am

Another recent topic: @Scorbie, many thanks for the really comprehensive ptbsearch walkthrough and explanation. I don't think you should worry about tl;dr problems. It's true, most likely nobody's going to read it just for fun, or bring it to their next poetry reading. But anyone trying to apply ptbsearch to actual problems will find some of those details really useful.

Could you post your current scorbie.list, by the way, or point me to an appropriate link? I'm probably missing something obvious, but I was only able to find spartan.list, and lots of hints about what's probably in scorbie.list.

For the record, in case anyone is wondering, scorbie.list is the list of catalysts to be placed by ptbsearch -- equivalent to ptb2.list in the original ptbsearch README.

There's quite a bit of good material in the walkthrough that might work well in a ptbsearch Frequently Asked Questions document. A FAQ or a Wiki discussion page for each of the various search utilities is probably a good idea -- maybe in conjunction with the GitHub conwaylife portal?

I also still really like the idea of including versions of all the major search utilities as part of a standard Golly download, or at least as a platform-specific extra download, so that all those tools compile successfully with each new Golly build, and in many cases have a simple GUI interface provided via a Python script... but that's going to need a lot more integration work than I'm able to undertake at the moment.
dvgrn
Moderator
 
Posts: 4020
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI

Re: Stable glider reflector

Postby Scorbie » October 20th, 2015, 7:25 am

Actually, I used the name "scorbie.list" just for demonstration, but here are the link the catalyst files that I use:
viewtopic.php?f=9&t=1536&p=20352#p20352
Note: the files are based on Sokwe's original 'catalysts' file.
These are only compatible with chris_c's version of ptbsearch.
You would probably want to use that anyway, as Chris really enhanced transparent catalyst searching.
Chris's github link: http://www.github.com/ceebo/ptbsearch
And I made minimal changes to Chris's version which I recommend slightly more :), (did minor enhancements):
http://www.github.com/scorbie/ptbsearch

EDIT: I haven't used all of these six :) But I think you get what they all mean by their filenames. "~lite" includes only the common catalysts.
These are chosen by my strictly personal preference, (especially the "~lite" ones) So I recommend you to add or delete catalysts by your choice.
Especially, I didn't add MikeP's honeyfarm catalyst because I couldn't see it working besides honeyfarms. If you would like to add them, here:

##MikeP 2 (dimer)
.C$C.A.2A$.2A.A2.A$3.A2.2A$.2A$.A4.2A$3.A.A.A$2.2A.2A!
6.C$2.2A.A.C$A2.A.2A$2A2.A$5.2A$2A4.A$A.A.A$.2A.2A!
.2A.2A$A.A.A$2A4.A$5.2A$2A2.A$A2.A.2A$2.2A.A.C$6.C!
2.2A.2A$3.A.A.A$.A4.2A$.2A$3.A2.2A$.2A.A2.A$C.A.2A$.C!

##MikeP 2 (tetramer)
.C$C.A.2A$.2A.A2.A$3.A2.2A$.2A5.2A$.A6.A$3.A6.A$2.2A5.2A$4.2A2.A$4.A
2.A.2A$6.2A.A.C$10.C!
10.C$6.2A.A.C$4.A2.A.2A$4.2A2.A$2.2A5.2A$3.A6.A$.A6.A$.2A5.2A$3.A2.2A
$.2A.A2.A$C.A.2A$.C!

Which are these, respectively.
#C [[ THUMBNAIL VIEWONLY ]]
#C Why doesn't this work?
x = 24, y = 12, rule = LifeHistory
13.C$.C10.C.A.2A$C.A.2A7.2A.A2.A$.2A.A2.A7.A2.2A$3.A2.2A5.2A5.2A$.2A
10.A6.A$.A4.2A7.A6.A$3.A.A.A6.2A5.2A$2.2A.2A9.2A2.A$16.A2.A.2A$18.2A.
A.C$22.C!
Best wishes to you, Scorbie
User avatar
Scorbie
 
Posts: 1329
Joined: December 7th, 2013, 1:05 am

Re: Stable glider reflector

Postby Scorbie » October 20th, 2015, 8:07 am

dvgrn wrote:Another recent topic: @Scorbie, many thanks for the really comprehensive ptbsearch walkthrough and explanation. I don't think you should worry about tl;dr problems. It's true, most likely nobody's going to read it just for fun, or bring it to their next poetry reading. But anyone trying to apply ptbsearch to actual problems will find some of those details really useful.
Phew... Thanks! Glad that I didn't make that post go to waste :)
dvgrn wrote:There's quite a bit of good material in the walkthrough that might work well in a ptbsearch Frequently Asked Questions document. A FAQ or a Wiki discussion page for each of the various search utilities is probably a good idea -- maybe in conjunction with the GitHub conwaylife portal?
You mean introducing the search programs in the Readme.md files, right? I think that's a great idea! That would relieve the burden of writing the whole tutorial by one person AND allow proofreading by others.
EDIT: Maybe not :( I bet there would be some utilities that none or few people participate...
dvgrn wrote:I also still really like the idea of including versions of all the major search utilities as part of a standard Golly download, or at least as a platform-specific extra download, so that all those tools compile successfully with each new Golly build, and in many cases have a simple GUI interface provided via a Python script... but that's going to need a lot more integration work than I'm able to undertake at the moment.
If you mean that by incorporating the executables into standard Golly in one executable file, I disagree. It's because most of the utilities are being developed. (hopefully :)) There are different forks to utilities like Bellman and ptbsearch (where one might not be exclusively better than another). Even I myself make minor changes to the source directly to suit my subtle needs. Therefore I wish there would be some flexibility in changing the executable file.
If you didn't mean by that, then I think some of the work is done. simsim314 already made a Golly interface with Bellman (although it only deals with the output) And most of us would have a Golly script for making input files of various programs. So actually we're only a few Golly Python GUI scripts away from the Golly + Search utilities integrated set, I think. (Of course the problem is that it is a tedious job.)

EDIT: Partly summarizing what I said above, I think the search utilities would best be presented as an add-on.
Best wishes to you, Scorbie
User avatar
Scorbie
 
Posts: 1329
Joined: December 7th, 2013, 1:05 am

Re: Stable glider reflector

Postby gmc_nxtman » October 25th, 2015, 8:43 pm

Here's two ideas for making a small spartan G-to-H converter:

•Find a collision between a glider and some stable seed, that produces a herschel and some debris. The herschel's FNG then hits the debris to rebuild the initial seed.

•Take a well-known G+Beehive=R collision, and have the backwards explosion from the R-pentomino reconstruct the beehive.
User avatar
gmc_nxtman
 
Posts: 1055
Joined: May 26th, 2015, 7:20 pm

Re: Stable glider reflector

Postby fsrm » March 1st, 2016, 4:45 pm

I found this. How to replace the upper block?
x = 20, y = 9, rule = B3/S23
18bo$17bo$17b3o$9b2o$ob2o5b2o$2obo2$9b2o$9b2o!
fsrm
 
Posts: 135
Joined: February 22nd, 2016, 6:23 am

Re: Stable glider reflector

Postby dvgrn » March 1st, 2016, 5:13 pm

fsrm wrote:I found this. How to replace the upper block?
x = 20, y = 9, rule = B3/S23
18bo$17bo$17b3o$9b2o$ob2o5b2o$2obo2$9b2o$9b2o!

Well, you probably can't do it with a catalyst. If you watch the evolution of the reaction, there really aren't any available sparks after the reaction with the snake. There are sparks, but they're in an area that was previously used by the initial collision.

So you'll have to send in a signal to replace the block. Check the still-life factories thread to see if there's a cheap mechanism that will fit. With the glider coming in from the northwest, there isn't all that much room -- and also, you're spending a Herschel and a glider to get a Herschel, which isn't really going to be worthwhile most of the time.

Here's the old standard way to do a similar trick, using a second glider, just as a comparison:

x = 73, y = 19, rule = LifeHistory
55.A$53.A.A$A5.2C46.2A$.2A3.2C5.2A.A52.2A.A$2A11.A.2A52.A.2A2$6.2A54.
2A$6.2A54.2A9$67.2A$66.2A$68.A!
dvgrn
Moderator
 
Posts: 4020
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI

Previous

Return to Patterns

Who is online

Users browsing this forum: No registered users and 10 guests