Page 5 of 17

Re: 31c/240 caterpillar working notes

Posted: January 17th, 2014, 9:20 am
by HartmutHolzwart
That forward rake is really great to look at work!!!! Congratulations!

Howver, finding a shortcut would be appreciated in order to make the full ship a little bit shorter.

Rgds,
Hartmut

Re: 31c/240 caterpillar working notes

Posted: January 17th, 2014, 1:25 pm
by dvgrn
codeholic wrote:Is it possible to line up trails in two rows by three, so that the distance between trails in each of both rows would be the same and adjustable?

I fail to get distance of 54, 56 or 58 between boats.

EDIT: Maybe that's not a good idea anyway, because then clean-up gets more complicated.
Clean-up shouldn't be terribly painful, though. The passing-*WSS cleanup is very elegant, but it seems like it would be trivial to slow-construct a chain of glider splitters at the back end, after the upships were all constructed. This glider-salvo seed would create a meteor shower of reversed backward gliders that would pick off all the block trails.

For that matter, the last upships would probably be constructed far enough away that there would be enough room for three final rakes (one after the other, no rephasers needed) hitting simple lines of one-timer turners. The result would look something like this (but it would work equally well whether the trails were lined up with each other or not):

Code: Select all

x = 1276, y = 1114, rule = B3/S23
20bo1234bo$21b2o1230b2o$20b2o1232b2o89$80bo1114bo$81b2o1110b2o$80b2o
1112b2o2$16bo1242bo$17b2o1238b2o$16b2o1240b2o85$140bo994bo$141b2o990b
2o$140b2o992b2o2$76bo1122bo$77b2o1118b2o$76b2o1120b2o4$o1274bo$b2o
1270b2o$2o1272b2o79$200bo874bo$201b2o870b2o$200b2o872b2o2$136bo1002bo$
137b2o998b2o$136b2o1000b2o4$60bo1154bo$61b2o1150b2o$60b2o1152b2o79$
260bo754bo$261b2o750b2o$260b2o752b2o2$196bo882bo$197b2o878b2o$196b2o
880b2o4$120bo1034bo$121b2o1030b2o$120b2o1032b2o23$450b2o56b2o98b2o56b
2o98b2o56b2o$450b2o56b2o98b2o56b2o98b2o56b2o30$450b2o56b2o98b2o56b2o
98b2o56b2o$450b2o56b2o98b2o56b2o98b2o56b2o24$320bo634bo$321b2o630b2o$
320b2o632b2o2$256bo762bo$257b2o758b2o$256b2o192b2o56b2o98b2o56b2o98b2o
56b2o192b2o$450b2o56b2o98b2o56b2o98b2o56b2o3$180bo914bo$181b2o910b2o$
180b2o912b2o25$450b2o56b2o98b2o56b2o98b2o56b2o$450b2o56b2o98b2o56b2o
98b2o56b2o30$450b2o56b2o98b2o56b2o98b2o56b2o$450b2o56b2o98b2o56b2o98b
2o56b2o22$380bo514bo$381b2o510b2o$380b2o512b2o2$316bo642bo$317b2o638b
2o$316b2o640b2o2$450b2o56b2o98b2o56b2o98b2o56b2o$450b2o56b2o98b2o56b2o
98b2o56b2o$240bo794bo$241b2o790b2o$240b2o792b2o27$450b2o56b2o98b2o56b
2o98b2o56b2o$450b2o56b2o98b2o56b2o98b2o56b2o30$450b2o56b2o98b2o56b2o
98b2o56b2o$450b2o56b2o98b2o56b2o98b2o56b2o20$440bo394bo$441b2o390b2o$
440b2o392b2o2$376bo522bo$377b2o518b2o$376b2o520b2o4$300bo149b2o56b2o
98b2o56b2o98b2o56b2o149bo$301b2o147b2o56b2o98b2o56b2o98b2o56b2o147b2o$
300b2o672b2o29$508b2o98b2o56b2o98b2o$508b2o98b2o56b2o98b2o30$508b2o98b
2o56b2o98b2o$508b2o98b2o56b2o98b2o22$436bo402bo$437b2o398b2o$436b2o
400b2o4$360bo554bo$361b2o550b2o$360b2o146b2o98b2o56b2o98b2o146b2o$508b
2o98b2o56b2o98b2o30$508b2o98b2o56b2o98b2o$508b2o98b2o56b2o98b2o30$508b
2o98b2o56b2o98b2o$508b2o98b2o56b2o98b2o20$496bo282bo$497b2o278b2o$496b
2o280b2o4$420bo434bo$421b2o430b2o$420b2o432b2o2$508b2o98b2o56b2o98b2o$
508b2o98b2o56b2o98b2o30$608b2o56b2o$608b2o56b2o30$608b2o56b2o$608b2o
56b2o24$480bo314bo$481b2o310b2o$480b2o312b2o4$608b2o56b2o$608b2o56b2o
30$608b2o56b2o$608b2o56b2o30$608b2o56b2o$608b2o56b2o22$540bo194bo$541b
2o190b2o$540b2o192b2o6$608b2o56b2o$608b2o56b2o30$608b2o56b2o$608b2o56b
2o30$608b2o56b2o$608b2o56b2o20$600bo74bo$601b2o70b2o$600b2o72b2o8$608b
2o56b2o$608b2o56b2o!
So one new degree of freedom would be having the block trails not lined up exactly. Maybe the trails could be constructed in a line, then pulled (2,1) to get them into the right 56-to-59 spacing? (Well, if the block trails aren't lined up, the outer edges of that range might not work right -- I haven't checked yet.)

Another degree of freedom that I just noticed is in the spacing between the pairs of trails. Turns out that single Herschels at the edges, #1 and #6, and the pairs of kickback-reaction Herschels, #2-#3 and #4-#5, have quite a bit of adjustability, which can allow for a lot more block-pair spacing options. Everything can be made to work pretty much the same as before. Here's a rephaser/rake running happily at 58:70:54:80:58 --

Code: Select all

x = 328, y = 1113, rule = B3/S23
4b2o56b2o202b2o54b2o$4b2o56b2o202b2o54b2o30$4b2o56b2o68b2o52b2o78b2o
54b2o$4b2o56b2o68b2o52b2o78b2o54b2o30$4b2o56b2o68b2o52b2o78b2o54b2o$4b
2o56b2o68b2o52b2o78b2o54b2o30$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b2o
68b2o52b2o78b2o54b2o30$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b2o68b2o52b
2o78b2o54b2o30$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b2o68b2o52b2o78b2o
54b2o30$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b2o68b2o52b2o78b2o54b2o30$
4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b2o68b2o52b2o78b2o54b2o30$4b2o56b
2o68b2o52b2o78b2o54b2o$4b2o56b2o68b2o52b2o78b2o54b2o30$4b2o56b2o68b2o
52b2o78b2o54b2o$4b2o56b2o68b2o52b2o78b2o54b2o30$4b2o56b2o68b2o52b2o78b
2o54b2o$4b2o56b2o68b2o52b2o78b2o54b2o30$4b2o56b2o68b2o52b2o78b2o54b2o$
4b2o56b2o68b2o52b2o78b2o54b2o30$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b
2o68b2o52b2o78b2o54b2o30$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b2o68b2o
52b2o78b2o54b2o30$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b2o68b2o52b2o78b
2o54b2o30$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b2o68b2o52b2o78b2o54b2o
30$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b2o68b2o52b2o78b2o54b2o30$4b2o
56b2o68b2o52b2o78b2o54b2o$4b2o56b2o68b2o52b2o78b2o54b2o30$4b2o56b2o68b
2o52b2o78b2o54b2o$4b2o56b2o68b2o52b2o78b2o54b2o30$4b2o56b2o68b2o52b2o
78b2o54b2o$4b2o56b2o68b2o52b2o78b2o54b2o30$4b2o56b2o68b2o52b2o78b2o54b
2o$4b2o56b2o68b2o52b2o78b2o54b2o30$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o
56b2o68b2o52b2o78b2o54b2o30$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b2o68b
2o52b2o78b2o54b2o30$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b2o68b2o52b2o
78b2o54b2o30$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b2o68b2o52b2o78b2o54b
2o30$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b2o68b2o52b2o78b2o54b2o30$4b
2o56b2o68b2o52b2o78b2o54b2o$4b2o56b2o68b2o52b2o78b2o54b2o30$62b2o68b2o
52b2o$62b2o68b2o52b2o$7bo259b2o50b3o$7b2o257b2obob3o44bo2bo$7bob2o256b
o2bo49b2o$3bo263bo7bo44bo2b3o$2b2o4bo2bo51bo203bo3bo4bo39bo3bobo3bo$b
2o2bobob2o47b3obobo210bo3b2o35bo3bo5bo$5b2o2bobo47b4ob2o3b3o193bo4bob
3o2b2o2bo34bo3bobob2o$8bo2bo52bo2b5o193bo5b3o8bo32bo2b2obo$11bo41b2o3b
2o3bo3bo189bo18bo6b3o29bo2bo$8bobo35b3o3bo2bobo5bo4b5o181bo11bo10bo2b
2o34bo2bo$9bo38bo2bo6b3o11bo180bo4b2o6bo11b2o37b2o$46bob2o2b3o3bo10bob
o181b2o4bo5b2o2bo$2o44bob2obo3b3o11b2o5bobo175b2o3bo5b5o56b2o$2o46bob
2o4bo20b2o176bo2bob3o3b2o58b2o$53bo23bo177b2o4bo2b3o$48b3o2bo207bo$44b
o4bo212bobo$44bo4bo213bo$45bo2bo196bobo$245b2o$4b2o56b2o182bo19b2o54b
2o$4b2o56b2o202b2o54b2o2$26bo$25b2o$25bobo271bo$299b2o$298bobo2$132b2o
52b2o$132b2o52b2o3$12b2o40b2o218b2o38b2o$12b2o40b2o218b2o38b2o2$41bo$
40bo$40b3o4$294bo$295bo$293b3o7$4b2o56b2o202b2o54b2o$4b2o56b2o22bo91b
3o85b2o54b2o$85b2o92bo$85bobo91b3o$285bo$239bo43b2o$239b2o43b2o$238bob
o$48bo$49b2o$48b2o89b2o$138bobo$130b2o6b2o48b2o$12b2o40b2o74b2o6b2o38b
2o8b2o84b2o38b2o$12b2o40b2o83bobobo34b2o94b2o38b2o$141b2o$132bobo4b2ob
o$132b2o$133bo$190bo$189bobo$188bo3bo$188bo3bo$128b2o58bo$128b2o59b3o
7$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b2o68b2o52b2o78b2o54b2o12$140b2o
36b2o$140b2o36b2o17$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b2o68b2o52b2o
78b2o54b2o30$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b2o68b2o52b2o78b2o54b
2o30$62b2o68b2o52b2o$62b2o68b2o52b2o$7bo259b2o$7b2o257b2obob3o43bo$7bo
b2o256bo2bo44b2o$3bo263bo7bo$2b2o4bo2bo51bo203bo3bo4bo42b3o$b2o2bobob
2o47b3obobo210bo3b2o36bo2bo3b3o$5b2o2bobo47b4ob2o3b3o193bo4bob3o2b2o2b
o35b3o$8bo2bo52bo2b5o193bo5b3o8bo35bo$11bo41b2o3b2o3bo3bo189bo18bo6b3o
$8bobo35b3o3bo2bobo5bo4b5o181bo11bo10bo2b2o$9bo38bo2bo6b3o11bo180bo4b
2o6bo11b2o$46bob2o2b3o3bo10bobo181b2o4bo5b2o2bo$2o44bob2obo3b3o11b2o5b
obo175b2o3bo5b5o56b2o$2o46bob2o4bo20b2o176bo2bob3o3b2o58b2o$53bo23bo
177b2o4bo2b3o$48b3o2bo207bo$44bo4bo212bobo$44bo4bo213bo$45bo2bo196bobo
$245b2o$4b2o56b2o182bo19b2o54b2o$4b2o56b2o202b2o54b2o2$26bo$25b2o$25bo
bo2$299bo$299b2o$132b2o52b2o110bobo$132b2o52b2o3$12b2o40b2o218b2o38b2o
$12b2o40b2o218b2o38b2o2$41bo$40bo$40b3o4$294bo$295bo$293b3o7$4b2o56b2o
202b2o54b2o$4b2o56b2o22bo91b3o85b2o54b2o$85b2o92bo$85bobo91b3o2$239bo$
239b2o40bo$238bobo38b2o$48bo231b2o$49b2o$48b2o89b2o$138bobo$130b2o6b2o
48b2o$12b2o40b2o74b2o6b2o38b2o8b2o84b2o38b2o$12b2o40b2o83bobobo34b2o
94b2o38b2o$141b2o$132bobo4b2obo$132b2o$133bo$190bo$189bobo$188bo3bo$
188bo3bo$128b2o58bo$128b2o59b3o7$4b2o56b2o68b2o52b2o78b2o54b2o$4b2o56b
2o68b2o52b2o78b2o54b2o12$140b2o36b2o$140b2o36b2o!
This pattern shows an alternate mechanism for the rake. Here the kickback always occurs between the second and third Herschel-pair trails, but in this case just the single Herschel on the far right is adjusted back 10 ticks. With that adjustment, the kicked-back rake suppression glider hits a dying spark.

Anyway, that means my calculations about allowable block-pair intervals are totally out of date. It looks like you can set up Herschel pairs to run on just about any spacing -- though there are probably a few weird exceptions. There's a tight spot in the middle of each pair, where three gliders pass each other at close quarters.

Unfortunately we're still stuck with the 56-59 interval for each pair of block trails, at least until someone comes up with a new and cleverer mechanism.

Re: 31c/240 caterpillar working notes

Posted: January 17th, 2014, 4:24 pm
by dvgrn
codeholic wrote:What I really wish is that there were a way to parametrize distance between two trails in a pair. Would it be possible, for instance, to use kickbacked gliders to suppress outside gliders of the previous Herschel triplet? It sounds feasible to me.
I started writing an explanation of why the distance between two trails is stuck at 54 to 59: the timing of the Herschels doesn't matter much, because no matter when the Herschels get there, they always put out their gliders at the same predetermined offset relative to the block. Each Herschel produces two gliders per cycle, and the two interior ones get used up suppressing the extra blocks generated by the 31c/240 reaction.

Requiring interactions between multiple sets of rephasers would probably just give hard-working compiler script writers more headaches. The current setup is relatively simple, with rephaser wings turning into rakes with a simple T+2 offset... unfortunately sometimes brute force is the way to go.

But the idea of interactions between different "stripes" (mod 31) of the block trails made me notice an obvious-with-hindsight fact. We aren't really in any particular hurry to get the extra blocks cleaned up -- it's just a matter of having to wait a little longer before sending the next rephaser in. That means the [54..59] interval is actually [54..59]+31N, with each interior glider deleting the next block lower down, but the reactions otherwise unchanged. (!)

Then when I looked at the geometry again, it became clear that there were a couple of other options as far as orienting the Herschels (because they put out one glider in each direction, but not on mirror-image lanes).

Shooting down the extra block on the far side of the other block trail is a little harder to do -- there are only two lanes available instead of the six for inside-the-lane deletions. Still, there are several more options for Herschel-pair spacing if if one or both Herschels are replaced by their mirror images. Here's a sample with spacings of 42, 43, 60, 61, and 104.

Code: Select all

x = 635, y = 812, rule = B3/S23
4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o$4b2o40b2o68b2o41b2o
75b2o58b2o68b2o59b2o91b2o102b2o30$4b2o40b2o68b2o41b2o75b2o58b2o68b2o
59b2o91b2o102b2o$4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o30$
4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o$4b2o40b2o68b2o41b2o
75b2o58b2o68b2o59b2o91b2o102b2o30$4b2o40b2o68b2o41b2o75b2o58b2o68b2o
59b2o91b2o102b2o$4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o30$
4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o$4b2o40b2o68b2o41b2o
75b2o58b2o68b2o59b2o91b2o102b2o30$4b2o40b2o68b2o41b2o75b2o58b2o68b2o
59b2o91b2o102b2o$4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o30$
4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o$4b2o40b2o68b2o41b2o
75b2o58b2o68b2o59b2o91b2o102b2o30$4b2o40b2o68b2o41b2o75b2o58b2o68b2o
59b2o91b2o102b2o$4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o30$
4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o$4b2o40b2o68b2o41b2o
75b2o58b2o68b2o59b2o91b2o102b2o30$4b2o40b2o68b2o41b2o75b2o58b2o68b2o
59b2o91b2o102b2o$4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o30$
4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o$4b2o40b2o68b2o41b2o
75b2o58b2o68b2o59b2o91b2o102b2o30$4b2o40b2o68b2o41b2o75b2o58b2o68b2o
59b2o91b2o102b2o$4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o30$
4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o$4b2o40b2o68b2o41b2o
75b2o58b2o68b2o59b2o91b2o102b2o30$4b2o40b2o68b2o41b2o75b2o58b2o68b2o
59b2o91b2o102b2o$4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o30$
4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o$4b2o40b2o68b2o41b2o
75b2o58b2o68b2o59b2o91b2o102b2o30$4b2o40b2o68b2o41b2o75b2o58b2o68b2o
59b2o91b2o102b2o$4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o30$
4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o$4b2o40b2o68b2o41b2o
75b2o58b2o68b2o59b2o91b2o102b2o30$4b2o40b2o68b2o41b2o75b2o58b2o68b2o
59b2o91b2o102b2o$4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o30$
4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o$4b2o40b2o68b2o41b2o
75b2o58b2o68b2o59b2o91b2o102b2o30$4b2o40b2o68b2o41b2o75b2o58b2o68b2o
59b2o91b2o102b2o$4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o30$
4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o$4b2o40b2o68b2o41b2o
75b2o58b2o68b2o59b2o91b2o102b2o30$4b2o40b2o68b2o41b2o75b2o58b2o68b2o
59b2o91b2o102b2o$4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o30$
4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b2o102b2o$4b2o40b2o68b2o41b2o
75b2o58b2o68b2o59b2o91b2o102b2o21$167bo$166b3o59b3o$165bo$166b2o60bobo
$166bo64bo$227bo3bo2$227bo2b2o$297bo331b3o$4b2o40b2o250bo68bo59b2o91bo
$4b2o40b2o317b2obo58b2o90bob2o108bo$297b2o60b3o2bo3bo150bo3bo2b3o100b
4o$157b2o79b2o53b3ob2o63bo5bo150bo5bo96b2o5b5o$121b2o34b2o8b2o59b2o8b
2o53bo4bo64bobob2o150b2obobo97b2o4bo3b2o$120bo2b2o42b2o59b2o62b2o6b2o
58bo4bobobo148bobobo4bo101b3o$114bo5b2obo169bob3ob2obo58b3obobobo148bo
bobob3o$48bo65bo6bo3b2o165bo5bo3bo60b2o3bo150bo3b2o$46b4o64bo177bo2bob
o4bo$39b2o4b6o242bo7bo48bo186bo$38bo2bo3bo4b2o104bo81bo56b3obo49b3o
184b3o$35bo3bobo17b2o94b3o79bo2bo107bobobo182bobobo$33b2o5b2o5bo9b2ob
2o92b2ob2o81b2o106bobobo182bobobo$34b2o3bo8b2o7bo4bo94b3o78bo3bo106b3o
19b2o142b2o19b3o94b2o$37b2o18bo3b3o48b2o41b2obo79bo2bo50b2o56bo19bo3bo
138bo3bo19bo82b2o9bobo$50bo7b2o4bo47b2o42b2o81b2o51b2o76bo5bo134bo5bo
102b2o10bo$50b2o10bobo91bo214b2obobo134bobob2o$50b2o10b2o308bo4bo132bo
4bo$372bo4bo132bo4bo$372bo4bo132bo4bo$373b3o56b2o2bo75b3o$431b2o$46b2o
68b2o41b2o75b2o58b2o68b2o64b2o86b2o102b2o$46b2o68b2o41b2o75b2o58b2o68b
2o23bo104bo23b2o102b2o$389bobo40b2o2b2o58bobo$11b3o376b2o39bo64b2o$11b
obo255bobo162b4o$10bo2bo255b2o161bo2bo$10b3o257bo$10b3o$11bo2bo$11bo$
14bo$83bo$2b2o8bo68b2o$2b2o9bo40b2o26b2o83b2o59b2o74b2o52b2o63b3o9b2o
91b2o102b2o$12b2o40b2o10bo100b2o59b2o74b2o52b2o75b2o91b2o102b2o$64bobo
356b3o$65b2o357b2o3$bo$obo578bo$ob2o576bo$3bo576b3o$obo$bo2$335bobo$
335b2o$330bo5bo$331bo$290bo38b3o$4b2o40b2o68b2o41b2o75b2o53bo4b2o68b2o
59b2o91b2o102b2o$4b2o40b2o68b2o41b2o75b2o51b3o4b2o68b2o59b2o91b2o102b
2o4$158bo$156bobo$157b2o6$54b2o111b2o59b2o74b2o52b2o75b2o91b2o102b2o$
54b2o111b2o59b2o74b2o52b2o75b2o91b2o102b2o17$4b2o40b2o68b2o41b2o75b2o
58b2o68b2o59b2o91b2o102b2o$4b2o40b2o68b2o41b2o75b2o58b2o68b2o59b2o91b
2o102b2o12$528b2o102b2o$528b2o102b2o!
Are any of those any good? The full set of allowable trail-pair spacings now seems to be

[29, 30, 42, 43, 54, 55, 56, 57, 58, 59, 60, 61] +31N

For example, to get a spacing of 73, one side of the rightmost 102-spaced Herschel pair above can be moved over by 31 cells. Try it out -- it still works just fine.

EDIT: Really the [29, 30, 42, 43, 60, 61]+31N options seem to be more curiosities than useful technology, since I don't see yet how to build a complete rephaser or rake with them. They might possibly work at the very front of the spaceship, where two block trails could be built at non-standard widths. Then Herschels could travel on the trails while moving them into standard spacings. But it seems easier to just build the trails in the right locations in the first place.

Anyway, even numbers seem to be better: how about 55+31, 57+31, 59+31 = [86, 88, 90]? Those can be done with mirror-image Herschels, so there are standard six-Herschel rephasers and rakes.
codeholic wrote:There probably would be forward gliders that break away in the front of the pattern, but it might be feasible to suppress them with additional spaceships or specialized devices built by the front pattern (plain eaters probably won't work, because every next forward glider will be shifted compared to the one sent by the previous triplet).

EDIT: There will be also break-away backward gliders in the back. No good design, probably :(
I'm not sure that would be such a big problem. Couldn't we just arrange an extra throwaway block trail from the front to absorb any extra gliders -- or for the forward gliders, even a block trail that is moved (2,1) and then used in a slow-salvo construction? There are enough possibilities that it's hard to think of them all, so I wouldn't necessarily give up on new layout ideas just yet.

Re: 31c/240 caterpillar working notes

Posted: January 17th, 2014, 5:00 pm
by dvgrn
HartmutHolzwart wrote:That forward rake is really great to look at work!!!! Congratulations!

Howver, finding a shortcut would be appreciated in order to make the full ship a little bit shorter.
Well, there are some interesting possibilities. First we could figure out a nice easy way to make more block trails, starting from an initial six trails. For example, what about using slow salvos from backward rakes on the first six trails, plus a faraway target? There wouldn't be any upship streams to worry about, so the block trails could be built from outside to inside, fairly cheaply as slow salvos go -- the already-built blocks wouldn't get in the way. (Unless I'm wrong.)

Once we have twelve block trails in two separate tracks, we could build considerably more efficient slow salvos by shooting an occasional stream of gliders from the left-hand track through an empty section of the right-hand track (or vice versa). We'd only do that when it would otherwise take a large number of rephasers to get the correct glider stream.

For example, the distance between rakes for the HWSS-rake slow salvo turned out to be

31, 10, 25, 9, 21, 8, 9, 17, 13, 21, 19, 24, 27, 11, 27, 31

-- with the distance measured by the total number of rephaser/rakes. In other words, given a long line of rephasers after an initial rake, count to the 31st rephaser and turn it into a rake; then count 10 more and turn that tenth one into a rake, and so on.

The worst case is when a recipe needs two slow gliders following each other on the same lane. You have to skip 30 rephasers before you can extract another identical glider stream. And notice that happened twice in the above recipe, both at the beginning and at the end -- and there were several more unlucky lanes that needed 24 or more rephasers.

I suspect that most of those long rephaser chains could be made much shorter, by keeping a second "backup" track to supply lane offsets that are inconvenient to get to from the previous lane on the original track. The current lane spacing at least is very permeable, with eight different safe glider lanes going through it. So you'd only need two or three rephasers at most before the blocks would all be out of the way of a crossing glider stream. And if the construction works out up at the top, we can now build width-60 or width-61 block-pair trails, which are even more permeable.

-- Of course with twelve tracks you could build simple forward rakes, too, without having to slow-construct one-time turner seeds.

Re: 31c/240 caterpillar working notes

Posted: January 17th, 2014, 5:11 pm
by codeholic
dvgrn wrote:Then when I looked at the geometry again, it became clear that there were a couple of other options as far as orienting the Herschels (because they put out one glider in each direction, but not on mirror-image lanes).
Did I get you right, that it's possible to build a whole track that consists of Herschels all oriented in one direction? When I realized, that Herschels in the original track are oriented differently and therefore cannot consume boats in the same orientation, it was one of the reasons, why I got disappointed with the Heisenburp design.

Currently I found ways to heisenburp a line of boats with offsets [20,44,48]+62N, but they are all in the same direction for an obvious reason. It may be possible to heisenburp them again into blocks, but I'd like to avoid that, if possible.

Re: 31c/240 caterpillar working notes

Posted: January 17th, 2014, 5:19 pm
by dvgrn
codeholic wrote:Did I get you right, that it's possible to build a whole track that consists of Herschels all oriented in one direction?
Yes -- check out the width-42 and width-43 Herschel pairs in the sample pattern I sent.
codeholic wrote:Currently I found ways to heisenburp a line of boats with offsets [20,44,48]+62N, but they are all in the same direction...
Well, then, the frustrating near-misses aren't quite over yet -- 42 and 43 work fine, but at width 44, one block is destroyed cleanly but the other one turns into a pi explosion. Could avoid that by offsetting the block chains by one cell, but then you couldn't do the boat-bit Heisenburp catch anyway.

Possibly a (2,1) block move could be done on one of the chains after the first Herschel goes by, though, to adjust the chain down from width-44 to width-42? That seems a little crazy, but it's almost simple enough that it might be workable. EDIT: No, it looks like width-42 isn't really workable for building full rephasers out of, anyway, though maybe you could use it for just the central spine of the six-trail track: see below.

Re: 31c/240 caterpillar working notes

Posted: January 17th, 2014, 6:55 pm
by codeholic
dvgrn wrote:
codeholic wrote:Did I get you right, that it's possible to build a whole track that consists of Herschels all oriented in one direction?
Yes -- check out the width-42 and width-43 Herschel pairs in the sample pattern I sent.
So how would the formula for the distance between 42-tracks in the triplet look like?

Re: 31c/240 caterpillar working notes

Posted: January 17th, 2014, 8:14 pm
by dvgrn
Good gravy, there are spacing-29 and spacing-30 block pairs, too (i.e., 60 minus 31 and 61 minus 31):

Code: Select all

x = 156, y = 520, rule = B3/S23
7b2o27b2o78b2o28b2o$7b2o27b2o78b2o28b2o30$7b2o27b2o78b2o28b2o$7b2o27b
2o78b2o28b2o30$7b2o27b2o78b2o28b2o$7b2o27b2o78b2o28b2o30$7b2o27b2o78b
2o28b2o$7b2o27b2o78b2o28b2o30$7b2o27b2o78b2o28b2o$7b2o27b2o78b2o28b2o
30$7b2o27b2o78b2o28b2o$7b2o27b2o78b2o28b2o30$7b2o27b2o78b2o28b2o$7b2o
27b2o78b2o28b2o30$7b2o27b2o78b2o28b2o$7b2o27b2o78b2o28b2o30$7b2o27b2o
78b2o28b2o$7b2o27b2o78b2o28b2o30$7b2o27b2o78b2o28b2o$7b2o27b2o78b2o28b
2o30$7b2o27b2o78b2o28b2o$7b2o27b2o78b2o28b2o30$7b2o27b2o78b2o28b2o$7b
2o27b2o78b2o28b2o30$7b2o27b2o78b2o28b2o$7b2o27b2o78b2o28b2o30$7b2o27b
2o78b2o28b2o$7b2o27b2o78b2o28b2o30$7b2o27b2o78b2o28b2o$7b2o27b2o78b2o
28b2o21$43b3o$43b3o$42bo2bo$42b3o$43b2o5$116b2o28b2o$6b5o105b2o28b2o$
6bobob2o$8bo3bo21b2o$8b2ob3o20b2o8b2o$b2o5b2ob2o31b2o$b3o3bo2bo$o2bo3b
4o$b3o2bob2obo$b2o3bo2b3o$7bob3o20b3o$31bo3bo$31b2o3bo$31bo4bo$11b2o
19bo3bo$11b2o$33b2o6$7b2o27b2o$7b2o27b2o115b3o$154bo$152b3o7$115bobo$
114bo2bob2o$114bo2bob2o23b2o$118b2obo22b2o8b2o$112bo5b4o32b2o$110b2o$
110bo6b2o$110b3obob2o3bo$116b5o$117bo25bo$142bobo$141bo3bo$141bo3bo$
120b2o23bo$120b2o20b3o7$116b2o28b2o$116b2o28b2o!
codeholic wrote:So how would the formula for the distance between 42-tracks in the triplet look like?
All Herschels should be in the same orientation now, I take it? I'm having trouble making that work:

Code: Select all

x = 617, y = 223, rule = B3/S23
21b2o40b2o108b2o40b2o195b2o40b2o108b2o40b2o$21b2o40b2o108b2o40b2o195b
2o40b2o108b2o40b2o30$21b2o40b2o108b2o40b2o195b2o40b2o108b2o40b2o$21b2o
40b2o108b2o40b2o195b2o40b2o108b2o40b2o30$21b2o40b2o108b2o40b2o195b2o
40b2o108b2o40b2o$21b2o40b2o108b2o40b2o195b2o40b2o108b2o40b2o30$21b2o
40b2o108b2o40b2o195b2o40b2o108b2o40b2o$21b2o40b2o108b2o40b2o195b2o40b
2o108b2o40b2o30$21b2o40b2o108b2o40b2o195b2o40b2o108b2o40b2o$21b2o40b2o
108b2o40b2o195b2o40b2o108b2o40b2o29$413bo$173b2o40b2o197bo46bo102b2o
40b2o$173b2o40b2o245bo101b2o40b2o$22b2o45bo343b2o45bo2bo$21b2obob3o32b
2o4bob2o338b3ob2o37b2o9b2o$22bo2bo35b2o4b6o336bo4bo37b2o10bo$22bo7bo
39bo2bo334b2o6b2o38bo3bo3bo$22bo3bo4bo39bobo335bob3ob2obo36bo5b3o$30bo
3b2o32bo339bo5bo3bo36b3o$20bo4bob3o2b2o2bo31b3obobo333bo2bobo4bo$20bo
5b3o8bo30bo5bo334bo7bo$12bo18bo6b3o29b3o338b3obo$9bo11bo10bo2b2o33b3o$
8bo4b2o6bo11b2o$8b2o4bo5b2o2bo$9b2o3bo5b5o34b2o347b2o40b2o$10bo2bob3o
3b2o36b2o347b2o40b2o$10b2o4bo2b3o$16bo$17bobo$18bo200b2o392b2o$obo214b
2obo392b3o$2o215b2o393bo2bo$bo19b2o40b2o154b2o191b2o40b2o155b2ob2o$21b
2o40b2o156b2o189b2o40b2o155b2ob2o$612b2ob2o$220bobo392bo$221bo163bobo
224b3o$385b2o226bo$386bo3$176bo$175bobo$177bo$172b4obo426b2o$71b2o99b
2o49b2o237b2o103bo36b2o8b2o$71b2o98bo51b2o237b2o102bobo45b2o$179b2o
381bo2b2ob2o33bo$180b2o380bo3bobo33bobo$174bo6b2o379bo5bob2o33bo$567b
2ob2o28bo3bo$176bo392bo29bo4bo$178bo419bo$178bo$49bo553bo$50bo118b2o
389b2o38bo$48b3o118b2o389b2o4$446bo$447bo$445b3o$21b2o40b2o108b2o40b2o
195b2o40b2o108b2o40b2o$21b2o40b2o108b2o40b2o195b2o40b2o108b2o40b2o12$
71b2o150b2o237b2o150b2o$71b2o150b2o237b2o150b2o!
If you kick back a glider to the northwest, the glider hits the nearer block trail; if you kick back to the northeast, it hits the outside block trail on the other side. You'd have to separate the two sets of trails by several hundred cells, I think, to leave enough room for one or two more rephasers following right after the rake, to move the blocks out of the way. EDIT: Worse than I thought -- I could possibly have missed a trick, but I checked up to four rephasers, and there seems to be a conflict every time. Even one required rephaser would increase the spaceship's length by a factor of two, so it doesn't seem worth following this line of research much further.

Maybe someone else should have a look at the problem, but offhand I don't see any other way to get the kickback glider onto a different lane relative to the block trails. No matter where the glider bounces back from, or what the timings of the generating Herschels are, it will always bounce back along the same lane -- and one trail gets in the way of the reflected first glider at 42-spacing, and if you reflect the Herschel's second glider, the other trail will block it.

Bother. How about a nice 30- or 60-cell spacing instead, with mirror-image Herschels? The mirror-image layout happens to keep the block trails out of the way of each other more reliably.

EDIT: Never mind the 30- or 60-cell spacing -- those are some of the new sequence numbers, so they can't be done with mirror-image Herschels. Here's a sample attempt at a 42-cell-spacing rake, which may clarify some of the difficulties of keeping all the Herschels in the same orientation. There doesn't seem to be any good way to close off the output gliders on the left side (you could add another set of trails, but you'd get the same uncontrolled glider streams out of the left side again).

Code: Select all

x = 461, y = 918, rule = B3/S23
400b2o40b2o$400b2o40b2o30$4b2o40b2o352b2o40b2o$4b2o40b2o352b2o40b2o30$
4b2o40b2o352b2o40b2o$4b2o40b2o352b2o40b2o30$4b2o40b2o352b2o40b2o$4b2o
40b2o352b2o40b2o30$4b2o40b2o352b2o40b2o$4b2o40b2o352b2o40b2o30$4b2o40b
2o352b2o40b2o$4b2o40b2o352b2o40b2o30$4b2o40b2o352b2o40b2o$4b2o40b2o
352b2o40b2o30$4b2o40b2o352b2o40b2o$4b2o40b2o352b2o40b2o30$4b2o40b2o
352b2o40b2o$4b2o40b2o352b2o40b2o30$4b2o40b2o352b2o40b2o$4b2o40b2o352b
2o40b2o30$4b2o40b2o352b2o40b2o$4b2o40b2o352b2o40b2o30$4b2o40b2o352b2o
40b2o$4b2o40b2o352b2o40b2o27$3bo50bo$2bo2bo47b3o$bo3bo46b2o2bo$bo4bo
45bo3bo343b2o40b2o$b7o44bobo345b2o40b2o$bo2bo2b2o$4o3bo36b2o7b2ob2o$bo
5bo36b2o9bo$2b2o2bo$3b2o8bo431bo$13bo428b2o2b2o$13bo427b2o$45bo387b2ob
2o3bo3bo$43b2o389bo2bo4b4o$44b2o388b2obo9bo3b2o4b3o$434bo12bob2ob2o$
429bo5b2o7bo2bobo8bo$2o40b2o383b2o7bo7bo4bo4bobobo$2o40b2o384b2o20bo8b
o$452b3o4bo$453bobo4bo$456bo3bo$457b4o3$4b2o40b2o394b2o$4b2o40b2o394b
2o9$403b2o$403bo$398b2o2bo3bo$54b2o342b2o3bo2b2o42b2o$54b2o352b2o40b2o
$405b2ob2o2$406b2ob2o$406b2ob2o$408bo4$396b2o$396b2o7$4b2o40b2o352b2o
40b2o$4b2o35bo4b2o352b2o40b2o$42b2o$41b2o10$54b2o394b2o$54b2o394b2o3$
360bo$360bobo$360b2o2$103bo$104b2o$103b2o8$4b2o40b2o352b2o40b2o$4b2o
40b2o352b2o40b2o10$446bobo$447b3o$447bob3o$450b2o14$3bo50bo$2bo2bo47b
3o$bo3bo46b2o2bo$bo4bo45bo3bo343b2o40b2o$b7o44bobo345b2o40b2o$bo2bo2b
2o$4o3bo36b2o7b2ob2o$bo5bo36b2o9bo$2b2o2bo$3b2o8bo431bo$13bo428b2o2b2o
$13bo427b2o$45bo387b2ob2o3bo3bo$43b2o389bo2bo4b4o$44b2o388b2obo9bo3b2o
4b3o$434bo12bob2ob2o$429bo5b2o7bo2bobo8bo$2o40b2o383b2o7bo7bo4bo4bobob
o$2o40b2o384b2o20bo8bo$452b3o4bo$453bobo4bo$456bo3bo$457b4o3$4b2o40b2o
394b2o$4b2o40b2o394b2o9$403b2o$403bo$398b2o2bo3bo$54b2o342b2o3bo2b2o
42b2o$54b2o352b2o40b2o$405b2ob2o2$406b2ob2o$406b2ob2o$408bo4$396b2o$
300bo95b2o$300bobo$300b2o2$163bo$164b2o$163b2o$4b2o40b2o352b2o40b2o$4b
2o35bo4b2o352b2o40b2o$42b2o$41b2o10$54b2o394b2o$54b2o394b2o2$402b2o$
360bo40bobo$360bobo40bo$360b2o2$103bo$104b2o$103b2o8$4b2o40b2o352b2o
40b2o$4b2o40b2o352b2o40b2o10$446bobo$447b3o$447bob3o$342b2o106b2o$341b
obo$343bo12$54bo$53b3o$52b2o2bo$4b2o46bo3bo343b2o40b2o$4b2o46bobo345b
2o40b2o2$44b2o7b2ob2o$44b2o9bo2$445bo$442b2o2b2o$441b2o$45bo387b2ob2o
3bo3bo$43b2o389bo2bo4b4o$44b2o388b2obo9bo3b2o4b3o$282b2o150bo12bob2ob
2o$281bobo145bo5b2o7bo2bobo8bo$42b2o239bo143b2o7bo7bo4bo4bobobo$42b2o
384b2o20bo8bo$452b3o4bo$453bobo4bo$456bo3bo$457b4o3$46b2o192bo201b2o$
46b2o192bobo199b2o$240b2o2$223bo$224b2o$223b2o3$4b2o$4b2o397b2o$403bo$
398b2o2bo3bo$54b2o342b2o3bo2b2o42b2o$54b2o352b2o40b2o$405b2ob2o2$406b
2ob2o$406b2ob2o$408bo4$396b2o$300bo95b2o$300bobo$300b2o2$163bo$164b2o$
163b2o$46b2o352b2o40b2o$46b2o352b2o40b2o8$4b2o$4b2o3$54b2o394b2o$54b2o
394b2o2$402b2o$360bo40bobo$360bobo40bo$360b2o2$103bo$104b2o$103b2o8$
46b2o352b2o40b2o$46b2o352b2o40b2o8$4b2o$4b2o$446bobo$447b3o$54b2o391bo
b3o$54b2o286b2o106b2o$341bobo$343bo15$46b2o352b2o40b2o$46b2o352b2o40b
2o5$445bo$442b2o2b2o$441b2o$4b2o427b2ob2o3bo3bo$4b2o428bo2bo4b4o$434b
2obo9bo3b2o4b3o$282b2o150bo12bob2ob2o$54b2o225bobo145bo5b2o7bo2bobo8bo
$54b2o227bo143b2o7bo7bo4bo4bobobo$428b2o20bo8bo$452b3o4bo$453bobo4bo$
456bo3bo$457b4o3$240bo201b2o$240bobo199b2o$240b2o2$223bo$224b2o$223b2o
3$46b2o$46b2o355b2o$403bo$398b2o2bo3bo$398b2o3bo2b2o42b2o$408b2o40b2o$
405b2ob2o2$406b2ob2o$4b2o400b2ob2o$4b2o402bo3$54b2o$54b2o340b2o$300bo
95b2o$300bobo$300b2o2$163bo$164b2o$163b2o$400b2o40b2o$400b2o40b2o8$46b
2o$46b2o3$450b2o$450b2o2$402b2o$360bo40bobo$4b2o354bobo40bo$4b2o354b2o
3$54b2o$54b2o8$400b2o40b2o$400b2o40b2o8$46b2o$46b2o$446bobo$447b3o$
447bob3o$342b2o106b2o$341bobo$343bo2$4b2o$4b2o3$54b2o$54b2o8$400b2o40b
2o$400b2o40b2o8$46b2o$46b2o2$282b2o$281bobo$283bo4$4b2o$4b2o3$54b2o
184bo$54b2o184bobo$240b2o2$223bo$224b2o$223b2o3$400b2o40b2o$400b2o40b
2o8$46b2o$46b2o5$300bo$300bobo$300b2o$4b2o$4b2o3$54b2o$54b2o8$400b2o
40b2o$400b2o40b2o8$46b2o$46b2o8$4b2o$4b2o3$54b2o$54b2o!
There is also a line of escaping gliders at the bottom, but that's a minor problem by comparison.

Re: 31c/240 caterpillar working notes

Posted: January 18th, 2014, 1:33 pm
by dvgrn
codeholic wrote:An amazing find that can make me completely rethink the whole design of the front pattern:

Code: Select all

x = 62, y = 28, rule = B3/S23
59bo$57bo3bo$56bo$56bo4bo$56b5o21$3o$bo$b3o!
Given how inconvenient it has turned out to be to get glider-Heisenburp boat bits to show up at the right place and in the right orientation, it seems to be that this H+MWSS trick might be the best technology we have for building the first six block trails (at least). Just three MWSSes would have to come from each side of the spaceship.

Technically we wouldn't need any upship streams besides the ones that generate a far-forward line of target junk -- though they still seem like a good option for other things. But these MWSSes can be slow-constructed with forerakes without much difficulty. [I think this is true without much evidence -- I'd definitely have to have another look at crossing problems to be sure. I remember now that the horizontal MWSS lanes will have to cross all of the glider streams that make up the slow salvo that produces them, which will take some serious synchronization.]

The placement of the first two Herschels is trivial -- just set up and trigger the MWSS seeds, one on each side, and then put the Herschels at whichever spacetime location they're needed to produce the above reaction. The next MWSSes will come along at just the right time to make the reaction self-sustaining. The Herschel pair can be synchronized by adjusting the timing of the MWSS trigger gliders.

The Herschel pair will produce a backward stream of gliders on either side, which will have to be dealt with somehow. Maybe the two streams will be absorbed by leftover debris from the MWSS seed, or they could be shot down by forerakes -- or they might be useful in creating the next two block trails to the left and right. A post by oblique seemed to say a Herschel crawler could travel "on a single trail of gliders" -- have I seen that? can gliders replace blocks somehow, or was that a typo for "a single trail of blocks"?

Re: 31c/240 caterpillar working notes

Posted: January 18th, 2014, 4:53 pm
by codeholic
Oh, this crazy spaceship maths of special glider relativity really starts getting on my nerves. Maybe you'd get any insights if you took a look at what I'm struggling with:

Code: Select all

x = 636, y = 1868, rule = B3/S23
591b3o$590bo3bo$590bo3bo$588b2o5b2o$587bob7obo23b3o$587bo2b5o2bo25bo$
588bo3bo3bo25bo$631b3o$631bo2bo$631bo$631bo$632bobo3$583bo$582bobo$
581bo3bo$576b2o3bo2bo10b2o$575bo2bo16b3o$576b2o12b2o3b2o$585bo8b2o$
584bo9bo$585bo47bo$632b3o$632bob2o$633b3o$633b2o8$581bo$581bobo21b3o$
581b2o21bo2bo$607bo$603bo3bo$603bo3bo$607bo$604bobo3$606bo$605b3o$604b
2obo$604b3o$576b2o27b2o$575bo2bo$576b2o23$595bo$594b3o$594bob2o$595b3o
$595b2o2$576b2o$575bo2bo$576b2o6$601bo$600b3o$600bob2o$601b3o$601b2o5$
631b3o$631bo2bo$631bo$631bo$632bobo10$576b2o$575bo2bo54bo$576b2o54b3o$
632bob2o$633b3o$633b2o9$605b3o$521bo82bo2bo$521bobo83bo$521b2o80bo3bo$
603bo3bo$607bo$604bobo3$606bo$605b3o$604b2obo$604b3o$605b2o4$576b2o$
575bo2bo$576b2o19$595bo$594b3o$594bob2o$595b3o$595b2o6$576b2o$575bo2bo
$576b2o2$601bo$600b3o$600bob2o$601b3o$601b2o5$631b3o$631bo2bo$631bo$
631bo$632bobo11$633bo$632b3o$632bob2o$576b2o55b3o$575bo2bo54b2o$576b2o
8$605b3o$604bo2bo$607bo$461bo141bo3bo$461bobo139bo3bo$461b2o144bo$604b
obo3$606bo$605b3o$604b2obo$604b3o$605b2o8$576b2o$575bo2bo$576b2o15$
595bo$594b3o$594bob2o$595b3o$595b2o10$576b2o23bo$575bo2bo21b3o$576b2o
22bob2o$601b3o$601b2o5$631b3o$631bo2bo$631bo$631bo$632bobo11$633bo$
632b3o$632bob2o$633b3o$633b2o3$576b2o$575bo2bo$576b2o4$605b3o$604bo2bo
$607bo$603bo3bo$603bo3bo$401bo205bo$401bobo200bobo$401b2o2$606bo$605b
3o$604b2obo$604b3o$605b2o12$576b2o$575bo2bo$576b2o11$595bo$594b3o$594b
ob2o$595b3o$595b2o10$601bo$600b3o$600bob2o$601b3o$576b2o23b2o$575bo2bo
$576b2o3$631b3o$631bo2bo$631bo$631bo$632bobo11$633bo$632b3o$632bob2o$
633b3o$633b2o7$576b2o$575bo2bo$576b2o27b3o$604bo2bo$607bo$603bo3bo$
603bo3bo$607bo$604bobo$341bo$341bobo$341b2o263bo$605b3o$604b2obo$604b
3o$605b2o16$576b2o$575bo2bo$576b2o7$595bo$594b3o$594bob2o$595b3o$595b
2o10$601bo$600b3o$600bob2o$601b3o$601b2o4$576b2o$575bo2bo52b3o$576b2o
53bo2bo$631bo$631bo$632bobo11$633bo$632b3o$632bob2o$633b3o$633b2o9$
605b3o$604bo2bo$576b2o29bo$575bo2bo24bo3bo$576b2o25bo3bo$607bo$604bobo
3$281bo324bo$281bobo321b3o$281b2o321b2obo$604b3o$605b2o20$576b2o$575bo
2bo$576b2o3$595bo$594b3o$594bob2o$595b3o$595b2o10$601bo$600b3o$600bob
2o$601b3o$601b2o5$631b3o$631bo2bo$631bo$631bo$632bobo4$565b2o$564bo2bo
$565b2o5$633bo$632b3o$632bob2o$633b3o$633b2o6$573b3o$572bo2bo$575bo$
571bo3bo29b3o$571bo3bo28bo2bo$575bo31bo$552bo19bobo28bo3bo$552bobo48bo
3bo$552b2o53bo$604bobo2$572bo$571b3o32bo$571bob2o30b3o$221bo343b2o5b3o
29b2obo$221bobo340bo2bo4b2o30b3o$221b2o342b2o38b2o25$595bo$594b3o$594b
ob2o$595b3o$565b2o28b2o$564bo2bo$565b2o8$601bo$600b3o$600bob2o$601b3o$
601b2o5$631b3o$631bo2bo$631bo$631bo$632bobo8$565b2o$564bo2bo$565b2o$
633bo$632b3o$632bob2o$633b3o$633b2o6$573b3o$572bo2bo$575bo$571bo3bo29b
3o$571bo3bo28bo2bo$575bo31bo$572bobo28bo3bo$603bo3bo$492bo114bo$492bob
o109bobo$492b2o$572bo$571b3o32bo$571bob2o30b3o$572b3o29b2obo$572b2o30b
3o$161bo443b2o$161bobo$161b2o402b2o$564bo2bo$565b2o21$595bo$594b3o$
594bob2o$595b3o$595b2o4$565b2o$564bo2bo$565b2o4$601bo$600b3o$600bob2o$
601b3o$601b2o5$631b3o$631bo2bo$631bo$631bo$632bobo11$633bo$565b2o65b3o
$564bo2bo64bob2o$565b2o66b3o$633b2o6$573b3o$572bo2bo$575bo$571bo3bo29b
3o$571bo3bo28bo2bo$575bo31bo$572bobo28bo3bo$603bo3bo$607bo$604bobo$
432bo$432bobo137bo$432b2o137b3o32bo$571bob2o30b3o$572b3o29b2obo$572b2o
30b3o$605b2o2$101bo$101bobo$101b2o2$565b2o$564bo2bo$565b2o17$595bo$
594b3o$594bob2o$595b3o$595b2o8$565b2o$564bo2bo$565b2o34bo$600b3o$600bo
b2o$601b3o$601b2o42$372bo$372bobo$372b2o6$41bo$41bobo$41b2o62$18b2o$
17bo2bo$18b2o17$312bo$312bobo$312b2o2$26bo$27b2o$26b2o6$8b3o7b2o$8bo2b
o5bo2bo$8bo9b2o$8bo3bo$8bo3bo$8bo$9bobo12$2b3o$bo2bo$4bo$o3bo$o3bo$4bo
$bobo7$18b2o$17bo2bo$18b2o29$18b2o$17bo2bo$18b2o15$252bo$252bobo$252b
2o2$86bo$87b2o$86b2o4$8b3o$8bo2bo$8bo$8bo3bo$8bo3bo$8bo$9bobo3$29b2o$
28bo2bo$29b2o3$20b3o$20bo2bo$20bo$20bo3bo$2b3o15bo3bo$bo2bo15bo$4bo16b
obo$o3bo$o3bo$4bo$bobo$23bo$22b3o$21b2obo$21b3o$22b2o9$49bo$47bobo$29b
2o17b2o$28bo2bo$29b2o29$29b2o$28bo2bo$29b2o8$192bo$192bobo$192b2o2$
146bo$147b2o$146b2o2$8b3o$8bo2bo$8bo$8bo3bo$8bo3bo$8bo$9bobo7$29b2o$
20b3o5bo2bo$20bo2bo5b2o$20bo$20bo3bo$2b3o15bo3bo$bo2bo15bo$4bo16bobo$o
3bo$o3bo$4bo$bobo$23bo$22b3o$21b2obo$21b3o$22b2o11$109bo$107bobo$108b
2o2$29b2o$28bo2bo$29b2o4$168b2o$168b2o22$175b3o$176bo$29b2o143b3o$28bo
2bo$29b2o7$166b2o$166b2o8b2o$176b2o3$8b3o$8bo2bo$8bo156bo$8bo3bo151bob
o$8bo3bo150bo3bo$8bo154bo3bo$9bobo155bo$164b3o7$20b3o145b2o$20bo2bo
144b2o$20bo$20bo3bo4b2o$2b3o15bo3bo3bo2bo110b2o$bo2bo15bo8b2o111b2o$4b
o16bobo$o3bo$o3bo$4bo$bobo$23bo$22b3o$21b2obo151b2o$21b3o152b2o$22b2o
16$168b2o$168b2o2$29b2o$28bo2bo110b2o$29b2o111b2o8$176b2o$176b2o17$
168b2o$168b2o2$29b2o$28bo2bo110b2o$29b2o111b2o8$8b3o165b2o$8bo2bo164b
2o$8bo$8bo3bo$8bo3bo$8bo$9bobo8$20b3o$20bo2bo$20bo$20bo3bo$2b3o15bo3bo
143b2o$bo2bo15bo147b2o$4bo16bobo$o3bo$o3bo$4bo$bobo$23bo$22b3o$21b2obo
$21b3o$22b2o60$8b3o$8bo2bo$8bo$8bo3bo$8bo3bo$8bo$9bobo8$20b3o$20bo2bo$
20bo$20bo3bo$2b3o15bo3bo$bo2bo15bo$4bo16bobo$o3bo$o3bo$4bo$bobo$23bo$
22b3o$21b2obo$21b3o$22b2o60$8b3o$8bo2bo$8bo$8bo3bo$8bo3bo$8bo$9bobo8$
20b3o$20bo2bo$20bo$20bo3bo$2b3o15bo3bo$bo2bo15bo$4bo16bobo$o3bo$o3bo$
4bo$bobo$23bo$22b3o$21b2obo$21b3o$22b2o74$20b3o$20bo2bo$20bo$20bo3bo$
20bo3bo$20bo$21bobo5$23bo$22b3o$21b2obo$21b3o$22b2o74$20b3o$20bo2bo$
20bo$20bo3bo$20bo3bo$20bo$21bobo5$23bo$22b3o$21b2obo$21b3o$22b2o74$20b
3o$20bo2bo$20bo$20bo3bo$20bo3bo$20bo$21bobo5$23bo$22b3o$21b2obo$21b3o$
22b2o74$20b3o$20bo2bo$20bo$20bo3bo$20bo3bo$20bo$21bobo5$23bo$22b3o$21b
2obo$21b3o$22b2o!
EDIT: Oh, I've just noticed that hive->G+hive fanout device is not constructible with slow salvo known reactions. Screw the whole thing (again).

Re: 31c/240 caterpillar working notes

Posted: January 18th, 2014, 5:14 pm
by codeholic
dvgrn wrote:Technically we wouldn't need any upship streams besides the ones that generate a far-forward line of target junk -- though they still seem like a good option for other things. But these MWSSes can be slow-constructed with forerakes without much difficulty.
Well, horizontal MWSS aren't a big deal, here are some clean fanout devices, that emit *WSS, and there are also a couple of dirty ones, that can be used for chaining (I haven't stored them, so I'd need to look them up in a gencols output):

Code: Select all

x = 2016, y = 139, rule = B3/S23
1008bo401bo199bo$10bo199bo394bo199bo202bobo398bo198b2o$8b2o199bo197bob
o195bobo197bobo200b2o399b3o197b2o$9b2o198b3o195b2o196b2o198b2o406bo$
408bo802b2o$1212b2o4$1814bo$1812b2o$1813b2o5$2013b3o$2013bo$1803bo199b
o10bo$603bo199bo198b3o197b3o197b3o197b3o197b3o197b3o$2b3o197b3o197b3o
197b3o197b3o197bo2bo196bo2bo196bo2bo196bo2bo195b2obo196b2obo$bo2bo196b
o2bo196bo2bo197bob2o196bob2o196bo199bo199bo199bo198b3o197b3o$4bo199bo
199bo198b3o197b3o196bo3bo195bo3bo195bo199bo198b3o197b3o$o3bo195bo3bo
199bo198b2o198b2o197bo3bo195bo3bo196bobo197bobo195b3o197b3o$o3bo195bo
3bo196bobo598bo199bo599b2o198b2o$4bo199bo798bobo197bobo$bobo197bobo
393b3o197b3o$401b3o192bo2bo196bo2bo601bo203b3o$401bo2bo194bo199bo600b
3o201bo2bo$401bo197bo195bo3bo600bob2o203bo401b3o$401bo3bo190bobo196bo
3bo601b3o199bo3bo400bo2bo$401bo3bo393bo207bo393b2o200bo3bo403bo$401bo
394bobo207b3o598bo399bo3bo$402bobo601bob2o594bobo400bo3bo$1007b3o794bo
206bo$15bo991b2o794b3o202bobo$14b3o1786bob2o$13b2obo1787b3o$13b3o1788b
2o$14b2o1192b3o$1207bo2bo$1210bo$1210bo$207bo999bobo$206b3o$206bob2o$
207b3o$207b3o$207b3o$207b2o58$1803bo199bo$603bo199bo198b3o197b3o197b3o
197b3o197b3o197b3o$2b3o197b3o197b3o197b3o197b3o197bo2bo196bo2bo196bo2b
o196bo2bo195b2obo196b2obo$bo2bo196bo2bo196bo2bo197bob2o196bob2o196bo
199bo199bo199bo198b3o197b3o$4bo199bo199bo198b3o197b3o196bo3bo195bo3bo
195bo199bo198b3o197b3o$o3bo195bo3bo199bo198b2o198b2o197bo3bo195bo3bo
196bobo197bobo195b3o197b3o$o3bo195bo3bo196bobo598bo199bo599b2o198b2o$
4bo199bo798bobo197bobo$bobo197bobo393b3o197b3o$401b3o192bo2bo196bo2bo
601bo203b3o$401bo2bo194bo199bo600b3o201bo2bo$401bo197bo195bo3bo600bob
2o203bo401b3o$401bo3bo190bobo196bo3bo601b3o199bo3bo400bo2bo$401bo3bo
393bo207bo393b2o200bo3bo403bo$401bo394bobo207b3o598bo399bo3bo$402bobo
601bob2o594bobo400bo3bo$1007b3o794bo206bo$15bo991b2o794b3o202bobo$14b
3o1786bob2o$13b2obo1787b3o$13b3o1788b2o$14b2o1192b3o$1207bo2bo$1210bo$
1210bo$207bo999bobo$206b3o$206bob2o$207b3o$207b3o$207b3o$207b2o!
Probably it does really make sense to start with two MWSS coming from opposite directions (though that would require some perfect timing as well), and then use that track to fanout two other tracks by colling its gliders with gliders from fanout devices (perfect timing, again).

Re: 31c/240 caterpillar working notes

Posted: January 18th, 2014, 5:29 pm
by codeholic
Oh yeah, and there's always the last resort - making 12 helices of 5 spaceship streams each (and it's still fewer than the caterpillar has):

Code: Select all

x = 41, y = 405, rule = B3/S23
10b3o3b2o$9bo2bo3bobo$12bo3bo$8bo3bo$8bo3bo$12bo$9bobo3$11bo$10b3o$9b
2obo$9b3o$10b2o29$3o$o2bo$o$o3bo$o3bo$o$bobo13$36b3o$36bo2bo$36bo$36bo
$37bobo11$38bo$37b3o$37bob2o$38b3o$38b2o9$10b3o$9bo2bo$12bo$8bo3bo$8bo
3bo$12bo$9bobo3$11bo$10b3o$9b2obo$9b3o$10b2o29$3o$o2bo$o$o3bo$o3bo$o$b
obo13$36b3o$36bo2bo$36bo$36bo$37bobo11$38bo$37b3o$37bob2o$38b3o$38b2o
9$10b3o$9bo2bo$12bo$8bo3bo$8bo3bo$12bo$9bobo3$11bo$10b3o$9b2obo$9b3o$
10b2o29$3o$o2bo$o$o3bo$o3bo$o$bobo13$36b3o$36bo2bo$36bo$36bo$37bobo11$
38bo$37b3o$37bob2o$38b3o$38b2o9$10b3o$9bo2bo$12bo$8bo3bo$8bo3bo$12bo$
9bobo3$11bo$10b3o$9b2obo$9b3o$10b2o29$3o$o2bo$o$o3bo$o3bo$o$bobo13$36b
3o$36bo2bo$36bo$36bo$37bobo11$38bo$37b3o$37bob2o$38b3o$38b2o9$10b3o$9b
o2bo$12bo$8bo3bo$8bo3bo$12bo$9bobo3$11bo$10b3o$9b2obo$9b3o$10b2o29$3o$
o2bo$o$o3bo$o3bo$o$bobo!

Re: 31c/240 caterpillar working notes

Posted: January 18th, 2014, 5:58 pm
by dvgrn
codeholic wrote:Probably it does really make sense to start with two MWSS coming from opposite directions (though that would require some perfect timing as well), and then use that track to fanout two other tracks by colliding its gliders with gliders from fanout devices (perfect timing, again).
Perfect timing isn't a problem per se, as long as there's not too much interdependence between the parts. I really like the MWSS support for the front of the central-spine block-pair trail. We have to get the two MWSSes traveling on the same lane, but there's quite a bit of adjustability to the times when the two Herschels arrive to convert the MWSSes into blocks.

Basically, drop each Herschel in whenever its matching MWSS gets to the right point; the combination has good odds of working right away, and if it works once it will be self-sustaining indefinitely. If not, move one of the helices up or down a few cells and try it again...

At some point I'll make a complete list of the allowable offsets between paired Herschels, but there are dozens or hundreds of workable combinations -- more for the wider spacings.

So that's one 5-*WSS helix plus a 2-*WSS horizontal-spaceship-maker on each side, and four block trails left to build, and a nice backward stream of gliders coming from each side of the nose of the spaceship. Probably it's time to experiment with collisions of those gliders with horizontal spaceships and backward and forward gliders, and see which block-producing reactions look like they'll be easiest to hook up in exactly the right place.

Horizontal MWSSes seem like a possible option for the remaining block trails, too, especially if all the initial Herschel pairs can be put in close enough together in spacetime that they help suppress each other's outside gliders somehow -- there are a lot of ways that that could theoretically work, though no doubt it will turn out to be annoying in practice.

Multiple horizontal MWSS lanes can be pretty close to each other, can't they? It might work if they were 31 cells apart, but if they can be built quickly enough, it might be better to have two or even three MWSSes on the same lane...? (I'll experiment, unless this is known already...)

Re: 31c/240 caterpillar working notes

Posted: January 18th, 2014, 6:31 pm
by codeholic
I wonder if one can do anything with this reaction or it should belong to the "accidental discoveries" thread:

Code: Select all

x = 12, y = 29, rule = B3/S23
11bo$9b2o$10b2o15$10bo$9b3o$8b2obo$8b3o$8b3o$3o5b3o$o2bo5b2o$o$o3bo$o
3bo$o$bobo!

Re: 31c/240 caterpillar working notes

Posted: January 18th, 2014, 6:49 pm
by dvgrn
codeholic wrote:I wonder if one can do anything with this reaction or it should belong to the "accidental discoveries" thread...
Interesting, anyway -- G+HWSS -> 90-degree MWSS, with another HWSS as a catalyst.

It's extensible, too -- I suppose it could be used to build several horizontal MWSSes relatively cheaply on lanes 62 cells apart, though not 31, it seems:

Code: Select all

x = 41, y = 34, rule = B3/S23
34bo$34bobo$34b2o2$25bobo$25b2o$26bo3$36b3o$16bo19bo2bo$15bo20bo$15b3o
18bo3bo$28bo7bo3bo$8bo18b3o6bo$6b2o19bob2o6bobo$7b2o19b3o$28b3o$18b3o
7b3o$17bo2bo7b2o$20bo$16bo3bo$10bo5bo3bo$9b3o8bo$8b2obo5bobo$8b3o$8b3o
$3o5b3o$o2bo5b2o$o$o3bo$o3bo$o$bobo!

Re: 31c/240 caterpillar working notes

Posted: January 19th, 2014, 7:09 am
by HartmutHolzwart
Some idea to reduce the length of the HWSS rake:

- As the phase of the glider is irrelevant for slow salvo constructions only the relative spacing mod 240 counts.
- so the "cost" of delivering the next glider is only dependent on the relative spacing between them.

It should be manageable to set up a table the contains the cost of any relative spacing mod 240. one could then easily calculate the cost of candidate slow salvo construction and select the cheapest.

Re: 31c/240 caterpillar working notes

Posted: January 19th, 2014, 12:29 pm
by dvgrn
HartmutHolzwart wrote:- As the phase of the glider is irrelevant for slow salvo constructions only the relative spacing mod 240 counts.
This is not quite correct, but very close. It turns out to be much more efficient to use "P2 slow" constructions, so we do have to pay attention to whether each glider has an even or odd phase.

There was a suggestion by codeholic recently to move to "P6 slow" constructions, allowing pulsars as intermediate targets... but I think I'm going to leave that refinement for some other time. Seems like pulsars would take up a fair fraction of the width-31 stripes where 31c/240 slow constructions have to fit, making collisions between construction zones somewhat more likely. And pulsars are just one more target (or three more, or six more if they're in the company of period-2 debris) so they I wouldn't think they'd expand the search space by more than a percentage point or so.

In general, though, the phase is irrelevant, because it's completely trivial to make timing adjustments to get gliders of any phase mod 2 [or mod 6] -- just delay or advance the rake a few ticks.
HartmutHolzwart wrote:It should be manageable to set up a table the contains the cost of any relative spacing mod 240. one could then easily calculate the cost of candidate slow salvo construction and select the cheapest.
Yup, that's straightforward enough. Somewhere out there no doubt there are *WSS edge-shooter recipes that are unusually lucky instead of unusually unlucky -- the one I built needs an average rephaser spacing of 19 from rake to rake, where statistically even an average recipe should only need 16. But there might be recipes that need only ten or eight or six rephasers between rakes on average.

I'll probably be tackling this in my next coding project, but from a slightly different angle. For slow-salvo constructions so far, I've been relying on results from Paul Chapman's 'Glue' search program from a few years ago. But Glue is an early prototype, an alpha release written in a version of Smalltalk that is fairly difficult for modern operating systems to deal with. So far I haven't managed to figure out how to re-use any of Glue's code.

Also there are several assumptions buried in Glue that don't really apply here:
  • Glue doesn't know about the width-31 stripe that we have to stay inside for 31c/240 searches.
  • If an intermediate target pattern's bounding box gets too big (for some adjustable definition of "too big", Glue discards it immediately. That means it's automatically throwing out all the recipes that we're most interested here, the ones that generate *WSSes.
  • Glue looks for recipes for single objects -- a particular orientation of a boat, say, with nothing else around it.
It turns out that what's really useful in a slow-salvo construction is a recipe for the object plus some junk off to the side that can be used as a target for the next part of a construction. More than one piece of junk may actually be better: it only costs a glider or two to shoot down extra junk, but it may cost half a dozen gliders to move an inconveniently located target to a good place to start the next construction.

Blinkers, beehives, boats, or tubs may actually make better leftovers than blocks -- there are more immediate branches on the search tree than for blocks, which can't turn into anything else except honeyfarms (or, rarely, pi-explosion debris, when there's room).

So it's time to start over with new goals in mind. It shouldn't actually be too difficult to do an iterative deepening depth-first NewGlue search for 31c/240-compatible recipes, in strict order of the number of rephasers needed in the recipe. I'll be surprised if there aren't *WSS edge-shooter recipes with ten gliders or less.

In the same search we might as well collect junk-moving recipes (not just block-moving ones) to find the most efficient mod-31 ways to push junk to the next construction location.

-- All of this will take a while, though. So if someone would like to set up a complete 31c/240 spaceship front, I'd probably stop and figure out old inefficient slow salvos for each side, that could build the required upship streams on each side -- just to see what a completed spaceship looks like. It's still probably going to be smaller and faster than a Caterpillar...!

Re: 31c/240 caterpillar working notes

Posted: January 21st, 2014, 3:02 am
by codeholic
I've found an orthogonal HWSS fanout device, that allows to build block trails with Heisenburps (i. e. there is no problem with orientation compared to boats; cleaning up debris is easy, it's just a matter of an additional spaceship and another simple gencols search):

Code: Select all

x = 112, y = 97, rule = B3/S23
109bobo$109b2o$110bo8$79bobo$79b2o$80bo34$16bo$15bo$15b3o19$2b3o$bo2bo
$4bo$o3bo$o3bo$4bo$bobo19$4bo$3b3o$3bob2o$4b3o$4b2o!
Now I'm looking for an alternative HWSS edge-shooting seed with a better clearance (or for an extremely delicate LWSS synthesis) in order to synthesise the following fanout device, that enables to build 56+62N tracks:

Code: Select all

x = 19, y = 118, rule = B3/S23
16b2o$15bo2bo$16b2o17$13b3o$12bo2bo$15bo$11bo3bo$11bo3bo$15bo$12bobo5$
12bo$11b3o$11bob2o$12b3o$12b2o68$2b3o$bo2bo$4bo$o3bo$o3bo$4bo$bobo5$bo
$3o$ob2o$b3o$b2o!
Here are two new LWSS edge-shooting seeds, that may work better in some cases, but are still not good enough to synthesise the aforementioned fanout device:

Code: Select all

x = 73, y = 98, rule = B3/S23
bo$2bo$3o50$68b2o$68b2o2$64bo$63bobo$63bobo$64bo6$70b2o$69bo2bo$70b2o
17$68b2o$68b2o2$64bo$63bobo$63bobo$64bo2$61bo$62bo$60b3o2$70b2o$69bo2b
o$70b2o!
One has to do something with an escaping glider here (probably one can get a free or an almost free object during slow salvo construction to suppress it or turn it into something else):

Code: Select all

x = 112, y = 129, rule = B3/S23
8$10bo$8bobo$9b2o63$82bo$82b3o$85bo$84b2o$77bo$71b2o3bobo$70bo2bo2bobo
$71b2o4bo19$70bo$68bobo$69b2o3$82bo$82b3o$85bo$84b2o$77bo$71b2o3bobo$
70bo2bo2bobo$71b2o4bo!
P. S. Still no MWSS edge-shooting seed :(

Re: 31c/240 caterpillar working notes

Posted: January 21st, 2014, 1:46 pm
by oblique
If you still need help searching for seeds: might I humbly offer my assistance?

Maybe by writing some search program for slow salvo construction under the restrictions implied by your design?

Namely:
* don't stray to far to the right
* don't hit neighboring construction sites
* use only backrakes
* create forward travelling *WSS on the right edge

Re: 31c/240 caterpillar working notes

Posted: January 21st, 2014, 4:22 pm
by dvgrn
oblique wrote:If you still need help searching for seeds: might I humbly offer my assistance?

Maybe by writing some search program for slow salvo construction under the restrictions implied by your design?
Assistance would be much appreciated! I just spent some time this morning sketching out a search utility that might eventually produce what we want in the way of seeds -- but I don't have a lot of time for programming these days. So I'd probably end up with a Python script that is A) hideously inefficient, B) completely impossible for anyone but me to understand, and C) not worth adapting to find solutions to future problems.

We do need a better way to search for slow-salvo constructions, especially for the 31c/240 spaceship where some gliders cost many times as much as others, in terms of the number of rephasers needed. A slow glider with an offset of +22 from the last glider is fifteen times as expensive as an offset of +18, and thirty times as expensive as an offset of +9.

<tangent="wild">It occurs to me that the same kind of search would also help with self-constructing circuitry like the replicator. Some glider lanes are much more expensive than others in that situation also -- i.e., where there isn't a good short elbow-move recipe to take the elbow block to where it's needed to fire the next glider. But in that case, depending on the elbow op set being used, there are several possible ways to generate each glider, and each one leaves the elbow in a different location (or sometimes there's a choice of locations).

Makes for a much trickier search problem, though it might be possible to come up with some decent approximations. Might be worth making the idea of weighted costs for different lanes as generalized as possible in the search program, so the weightings can be changed for future searches.</tangent>


So the main idea is to assign a cost to each relative lane number, and give a higher preference to recipes with a lower total cost. Or just search all the lowest-cost recipes first...

The lowest-cost lane to send a glider on for a 31c/240-based slow salvo is +9 (or -22) from the previous slow glider -- no rephasers are needed. The next lowest cost is +18 (or -13), with one rephaser, and so on. For positive offsets, the full list of lanes in order of cost is:

9, 18, 27, 5, 14, 23, 1, 10, 19, 28, 6, 15, 24, 2, 11, 20, 29, 7, 16, 25, 3, 12, 21, 30, 8, 17, 26, 4, 13, 22

For negative offsets it's the same list in reverse (or subtract each number from 31).

An offset of 0 or 31 from the last glider is a special case -- the cost is maximal, 31 rephasers, in either case.

--------------------------------

I'm not sure what the "don't stray too far to the right" line item means. I'm kind of thinking that it will work fine just to do an exhaustive search on P2 and stable slow-salvo outputs, hitting each one with all possible gliders, until *WSSes start coming out (at around five or six gliders, I'm guessing.) Then save the recipes that are workable edge-shooters -- i.e., none of the intermediate targets impinge on the *WSS lane -- and keep going until we have at least one good LWSS, MWSS, and HWSS recipe. They're out there somewhere...!

It's a huge search tree, of course, so it certainly might make sense to find clever ways to prune it back a little.

Re: 31c/240 caterpillar working notes

Posted: January 22nd, 2014, 2:12 am
by oblique
dvgrn wrote:... the full list of lanes in order of cost is:
9, 18, 27, 5, 14, 23, 1, 10, 19, 28, 6, 15, 24, 2, 11, 20, 29, 7, 16, 25, 3, 12, 21, 30, 8, 17, 26, 4, 13, 22

For negative offsets it's the same list in reverse (or subtract each number from 31).

An offset of 0 or 31 from the last glider is a special case -- the cost is maximal, 31 rephasers, in either case.
Implementing costs should be no big proplem - *ordering* the patterns-to-try accordingly might be another story.
Hmm. Maybe not so. Still thinking.
dvgrn wrote: I'm not sure what the "don't stray too far to the right" line item means.
The context is a north-movig stream of "upship flottilae" we are trying to construct.
The stream is assumed to be to the right of the ship (most of your examples in this thread did it that way).
Since the new construction should not kill off any ships already built ... I think it should not stray ;)
OK. On the other hand - I don't know exaktly where we are starting relativly to that stream ... but most usefull reactions will be rather smallish I guess. I can't really see having a final seed with a bounding box like 31x4000 that builds one LWSS on its right edge and leaves nothing but a single better-then-spartan particle.
dvgrn wrote: I'm kind of thinking that it will work fine just to do an exhaustive search on P2 and stable slow-salvo outputs, hitting each one with all possible gliders, until *WSSes start coming out (at around five or six gliders, I'm guessing.) Then save the recipes that are workable edge-shooters -- i.e., none of the intermediate targets impinge on the *WSS lane -- and keep going until we have at least one good LWSS, MWSS, and HWSS recipe. They're out there somewhere...!

It's a huge search tree, of course, so it certainly might make sense to find clever ways to prune it back a little.
Exhaustive search on P2 and stable outputs ... what exactly are the starting patterns?
I would just start with something like the Top 10 of the most-found ash particles or something.
Do you have a better list?

As for pruning: I think it would make sense to kill off all reactions that would collide with the neighbouring construction site or reach a with of ... 100? 200?

Maybe an upper limit for the total cell count in any phase of the reaction will be another way to cut down this tree.
Or gliders / (unwanted) SS in the result.

Re: 31c/240 caterpillar working notes

Posted: January 22nd, 2014, 9:59 am
by dvgrn
oblique wrote:Exhaustive search on P2 and stable outputs ... what exactly are the starting patterns?
I would just start with something like the Top 10 of the most-found ash particles or something.
Do you have a better list?
No, the Top 10 would be fine -- blinker, block, beehive, loaf, boat, tub, pond, ship, longboat, toad. Though probably you could start with just a blinker (let's say) at the root of the tree, and let the search itself decide what the most-found ash is. EDIT: That would add things like honeyfarms and traffic lights to the list -- maybe even blockades (LOM debris) and other familiar fours like fleets and bakeries.

It will be useful to record as many conversion paths as possible. For example, if you convert a blinker at (0,0) to a loaf at (-2,-1), then to a honeyfarm at (-6,-7), then to a block at (33,14) --

Code: Select all

x = 213, y = 229, rule = B3/S23
o$b2o$2o28$19bo$20bo$18b3o23$55bo$56bo$54b3o38$76bo$77bo$75b3o38$121bo
$122b2o$121b2o18$155bo$156bo$154b3o18$172bo$173bo$171b3o18$183bo$184bo
$182b3o16$191bo$192bo$190b3o7$203bo$204bo$202b3o4$210b3o!
-- then that also implies a honeyfarm to block(39,21) conversion, and a loaf-to-block and so on.

You can get from a block to a honeyfarm with one glider, so this also gives two block-to-block conversions, or more if you add more (-2,-1) block-pulling gliders. With the original recipe you could do (-3,-1) loaf pulls instead, or (1,-3) blinker pulls.

So... is there a way to store all this search-tree information in a way that makes it easy to string together, say, obj1-to-honeyfarm recipes with honeyfarm-to-obj2 recipes -- when what we're really looking for is just obj1-to-obj2 with a particular (x,y) offset?

I was thinking that on my first trial run I'd just append to a big text list of start objects, end objects, and offsets -- maybe just named objects, different names for different orientations, as in this project? or maybe just assign each target an integer value or code name (by number of bits or something)?

Then later the list could be sorted into tables by input or output object, to make it more useful -- maybe make it into some kind of doubly linked list, showing all targets that could immediately precede a given target and all targets that could immediately follow it. Or enable a quick lookup: "I have such-and-such block-and-beehive constellation; where can I build a boat within 8 gliders?" or "what's the cheapest way to put a pond at (10+k,2+k)?" But even without any further processing, at least it would be possible to do a text search for "honeyfarm block 39 21" and find out if that specific recipe was known to exist.

It's an interesting detail about slow-salvo searches that they give some amount of polarity to Life objects. Some orientations of boats, for example, are much more common than others. The effect gets much more pronounced when you get to objects like eaters and shillelaghs with eight different orientations instead of just four or two or one.
oblique wrote:As for pruning: I think it would make sense to kill off all reactions that would collide with the neighbouring construction site or reach a with of ... 100? 200?

Maybe an upper limit for the total cell count in any phase of the reaction will be another way to cut down this tree.
Or gliders / (unwanted) SS in the result.
That all matches limits that Paul Chapman included for Glue searches -- there were "population" and "semiperimeter" limits, anyway.

I'd be very interested in optionally keeping information about single output gliders or spaceships, or even multiple output gliders in the same direction, for use in optimizing self-constructing circuitry. For example, sometimes you have to bend a construction around an extra "slow elbow". For that to work, the trigger glider has to come from the same direction as the construction salvo, the output glider has to go off at 90 degrees, and some target object has to be left over to build the next 90-degree glider.

There's no comprehensive collection yet of clean one-time glider turners ("OTTs") and splitters, in all different orientations. But that's really a separate search: hit every cheap intermediate target (by some definition of "cheap") with every possible glider from all directions, and see which ones produce output gliders and nothing else (well, *WSSes also, let's say). Collect timing statistics on those targets, and suddenly it will become possible to build things like the loafer seed at a small fraction of the current cost in gliders.

-- Anyway, yes, explosions with large amounts of ash and/or outputs in multiple directions are definitely worth throwing out immediately. Maybe the single-glider outputs could optionally be dumped to a separate file or something, since for many search purposes they won't be useful either.

Re: 31c/240 caterpillar working notes

Posted: January 23rd, 2014, 1:57 pm
by oblique
Hmm.

Guess I have to think a little longer about what is really needed ...

I was about to write a specialized search program which ordered results according to their costs to build
them with a given set of lane-or-delta ./. cost pairs (like the one you posted above).

Edit: This is what I'm taking about, or rather my first tumblin steps in that direction

But - for one - that would mean, that the cost of an intermediate result depend on the point whre you started.

(You would have to track the last-used-lane, relative to the result pattern).

Plus: the useable lanes depend on neighbouring construction sites.

If you'd rather have a database of any collision of say glider + stuff -> something, classified in to the resulting something (somehow like my helix-part DB) that would be a differnt beast.

Re: 31c/240 caterpillar working notes

Posted: January 23rd, 2014, 6:34 pm
by oblique
OK.

Let's start that way:

The current state is always defined by a "current pattern" and a "lane of last glider" (for now we stay with gliders from one direction).

Patterns are always normalized:
* SS and gliders are removed from the result (and remembered separetly).
* width and height are those of the bounding box.
* top := 0, left := 0

Lanes are always defined such that lane 0 would hit exactly the top left corner of the bounding box.

An (intermediate) reaction is defined by (starting pattern, starting lane) -> (new pattern, new lane)
Each reaction is stored as something like

Code: Select all

typedef struct {
    pattern *old_pat;
    int old_lane;
    pattern *new_pat;
    int new_lane;
    int dx, dy, dt, cost;
    space_ship emitted [];
    reaction trace [];
    pattern *affected_area;
   } reaction;
You can chain theese, by using something like

Code: Select all

reaction *add_reaction (reaction *r1, reaction *r2)
{
  reaction *r = "new reaction";

  r->old_pat = r1->old_pat;
  r->old_lane = r1->old_lane;
  r->new_pat = r2->new_pat;
  r->new_lane = adjust_lane (r2->new_lane, r1->dx, r1->dy);
  r->dx = r1->dx + r2->dx;
  r->dy = r1->dy + r2->dy;
  r->dt = r1->dt + r2->dt;
  r->cost = adjust_cost (r1, r2);
  r->emmited = ship_merge (r1, r2);
  r->trace = trace_merge (r1, r2);
  r->affected_area = area_merge (r1, r2);
}
We could then use the weighted q algorithm and the function above, to search for a specific result.

(start with one state (pat,lane), q all reactions coming from there, then iteratively take the cheapest queued reaction r from the q, add any possible reaction starting with the end pattern of r back to the q, until one is found that yeilds the desired result)

Since the q ist weighted this reaction must be with minimal cost.

Backtracking would be similar (but inverse).

affected_area could be used to prune the tree (we left the constraining area).

Re: 31c/240 caterpillar working notes

Posted: January 23rd, 2014, 7:34 pm
by dvgrn
oblique wrote:Lanes are always defined such that lane 0 would hit exactly the top left corner of the bounding box.
Lane 0 would hit the top left corner -- is that with a 3o$o$bo! glider or a 2o$obo$o! glider? They're actually on different lanes. Other than that, your definitions seem clear, and I think the math would all work as you've outlined it.
oblique wrote:We could then use the weighted q algorithm and the function above, to search for a specific result.

(start with one state (pat,lane), q all reactions coming from there, then iteratively take the cheapest queued reaction r from the q, add any possible reaction starting with the end pattern of r back to the q, until one is found that yields the desired result)
Ah, this is the exciting part! The original Glue built a database of all the reactions it found that didn't explode -- Paul Chapman called them "simple outcomes", and recently I've been calling them "intermediate targets", or just "targets". The idea was to do the actual search just once and query the database later. But as I mentioned a while back, *WSS generators were among the reactions that Glue automatically threw away.

I seem to recall that even forbidding output gliders and *WSSes, Glue had a hard time getting past about nine gliders -- the database went over 2GB at that point, so doing a complete search with up to ten gliders would have exploded the size to dozens of gigabytes at least.

The search you've outlined will explore a slightly different space -- it looks like pi explosions are too wide to fit into a width-31 construction stripe, in any orientation, and other similar large reactions will similarly be pruned back. And since the search is by cost (cost in rephasers, for the 31c/240 ship) it's perfectly possible to find a recipe made out of gliders with lane offsets that are cheap in terms of rephasers, long before you'd turn up a recipe with even a single expensive lane offset.

For example, an eight-glider 0 +9 +18 +27 +5 +14 +23 +1 recipe would cost 1+1+2+3+4+5+6+7 = 29 rephaser/rakes, less than a two-glider 0 +0 recipe (second glider following the first on the same lane -- 1+31 = 32 rephaser/rakes).

Anyway, it will be very interesting to see how long it takes to boil this search space down into useful information. I could imagine designing either an initial exhaustive search stage, to produce a huge database to be re-searched later -- or an optimized utility that you'd run over and over again with different parameters, each time you want to find something different. (?)