Making switch-engines

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.
NickGotts
Posts: 101
Joined: November 10th, 2011, 6:20 pm

Making switch-engines

Post by NickGotts » July 2nd, 2014, 7:53 am

I'm interested in minimal ways (in various senses) to make switch-engines. I don't care how messy the result is, as my main interest in this is in its implications for Sparse Life (infinite, random, arbitrarily low-density Game of Life fields). This post includes some of the results I know of; I'd be pleased to hear of others, particularly but not exclusively improvements in some sense. Paul Callahan and I did some work on this in 1997 (most of the work was Paul's), and I've continued on and off ever since. Paul undertook a comprehensive survey of all patterns of up to 9 cells, and found none with infinite growth (I intend to replicate this search and extend to 10 cells in the near future); and found several infinite growth patterns starting with 10 cells - all switch-engines.

Eight cells can get a switch-engine going, but its exhaust catches up and destroys it. Here are the best-known pattern, and two others, which take either one or two more steps to reach the same phase. There are quite a few others, but all quite close to one of these.

x = 4, y = 6, rule = B3/S23
o$2o$o2bo2$bobo$2bo!

x = 5, y = 7, rule = B3/S23
o$bo$2bo$bo$o$2b3o!

x = 4, y = 7, rule = B3/S23
o$o$b2o$3bo$3bo$3bo$3bo!

There are various ways of adding a blinker or preblock to any of these to produce an 11-cell pattern with infinite growth (either a block-laying or glider-stream switch-engine can be produced), but as noted above, Paul found some 10-cell examples, reproduced below:

Block-layer:
x = 8, y = 6, rule = B3/S23
5bobo$5bo$3bo$bobo$2obo$bo!

Another block-layer:
x = 15, y = 58, rule = B3/S23
13bo$12b2o$13b2o52$bo$o$b2o$3bo!

And a glider-streamer:
x = 18, y = 35, rule = B3/S23
b2o$2o$bo29$16bo$15bobo$15bo$14bo!

This one (another block-layer) was, I think, found by Tom Rokicki:

x = 59, y = 29, rule = B3/S23
57bo$56b2o$57b2o24$o$2o$obo!

The last 3 of these 4 could be altered in trivial ways by substituting different r-pentomino predecessors (there are 5 5-cell 1-step predecessors of the classic r-pentomino, and 3 5-cell 2-step predecessors, and of course all 4 could be rotated and reflected, but aside from those variants, does anyone know any more?

Paul also looked for infinite-growth patterns with small bounding boxes, and I think found one in a 5-by-5 box, which I don't have, and over 40 in 8-by-8 boxes (all switch-engines), which I won't post unless anyone particularly wants them. I think he also produced various interactions of 3 synchronised gliders from the same direction
colliding with a block to produce a surviving switch-engine, but again, I don't have these. I do have the following pattern creating a block-layer, also starting with three gliders and a block, but with one glider coming from the NW and the other two from the SE, and in which there can be an arbitrarily long gap between the first and second gliders and the remaining pair:

x = 337, y = 264, rule = B3/S23
bo$2bo$3o24$22b2o$22b2o214$271b2o$271bobo$271bo18$334b3o$334bo$335bo!

A blinker can be substituted for the block:

x = 337, y = 267, rule = B3/S23
bo$2bo$3o24$20b3o218$271b2o$271bobo$271bo18$334b3o$334bo$335bo!

Also, this can easily be converted to a 4-glider construction of a
block-layer, like this:

x = 343, y = 270, rule = B3/S23
bo$2bo$3o7$5b2o$5bobo$5bo236$277b2o$277bobo$277bo18$340b3o$340bo$341bo!

or this:

x = 344, y = 262, rule = B3/S23
9b3o$9bo$10bo2$3o$2bo$bo233$278b2o$278bobo$278bo18$341b3o$341bo$342bo!

or this:

x = 346, y = 276, rule = B3/S23
9bobo$9b2o$10bo$bo$2bo$3o248$280b2o$280bobo$280bo18$343b3o$343bo$344bo!

Moving on, I have found various interactions between a single glider and three small still lifes or oscillators (many derived from Paul Callahan's 8-by-8 starting points), all of which start by creating some successor to the r-pentomino, and in all of which a blinker or block simply tames the exhaust.

Glider, two beehives and a blinker => block-layer:
x = 20, y = 8, rule = B3/S23
2bo$obo16bo$b2o16bo$6b2o11bo$5bo2bo$6b2o8b2o$15bo2bo$16b2o!

Glider, loaf, beehive and blinker => block-layer, the switch-engine
evolving in the same way as above:
x = 17, y = 16, rule = B3/S23
2bo$obo$b2o5$6bo$5bobo$5bo2bo$6b2o6b3o3$12b2o$11bo2bo$12b2o!

Glider, two loaves and a block => block-layer:
x = 22, y = 17, rule = B3/S23
18b2o$18b2o6$bo$2bo$3o3$8b2o$7bo2bo8b2o$8bobo7bo2bo$9bo9bobo$20bo!

Glider, beehive, loaf and block => glider-streamer; the switch-engine evolves in the same way as for the block-layer immediately above:
x = 32, y = 22, rule = B3/S23
18bo$19b2o$18b2o3$22bo$21bobo$21bobo$22bo2$29b2o$28bo2bo$29bobo$30bo7$
2o$2o!

The same, with only the block moved:
x = 14, y = 18, rule = B3/S23
12b2o$12b2o3$o$b2o$2o3$4bo$3bobo$3bobo$4bo2$11b2o$10bo2bo$11bobo$12bo!

Glider, beehive, loaf and block => glider-streamer again, but the glider, beehive and loaf are differently placed relative to each other. However, the switch-engine evolves in the same way:
x = 25, y = 18, rule = B3/S23
obo$b2o$bo5$6b2o$5bo2bo$6b2o4$7bo$6bobo$5bo2bo$6b2o15b2o$23b2o!

Glider, beehive, loaf and block => glider-streamer once more, with yet another placement of glider, beehive and loaf giving the same switch-engine evolution.
x = 25, y = 18, rule = B3/S23
obo$b2o$bo5$6b2o$5bo2bo$6b2o4$7bo$6bobo$5bo2bo$6b2o15b2o$23b2o!

Here's a 9-glider slow salvo creating a block-layer out of a blinker, using the same basic switch-engine evolution as the "glider, two loaves and a block" pattern above:
x = 417, y = 457, rule = B3/S23
bo$2bo$3o44$35bo$36b2o$35b2o38$71bo$72b2o$71b2o62$111bo$112bo$110b3o
39$160bo$161b2o$160b2o38$194bo$192bobo$193b2o38$240bo$238bobo$239b2o
163$403bo$404bo$402b3o12$415bo$416bo$414b3o4$413b3o!

Finally, here's as 8-glider slow salvo creating a glider-streamer out of a blinker - I'd forgotten this one until I prepared this post:
x = 670, y = 572, rule = B3/S23
bo$2bo$3o19$21bo$22bo$20b3o24$24bo$25bo$23b3o8$41bo$42bo$40b3o18$90bo$
91bo$89b3o405$565bo$566bo$564b3o62$646bo$647b2o$646b2o15$658bo$659bo$
657b3o4$667b3o!

And a slight variant:
x = 670, y = 572, rule = B3/S23
bo$2bo$3o19$21bo$22bo$20b3o24$24bo$25bo$23b3o8$41bo$42bo$40b3o6$90bo$
91bo$89b3o417$565bo$566bo$564b3o62$646bo$647b2o$646b2o15$658bo$659bo$
657b3o4$667b3o!

NickGotts
Posts: 101
Joined: November 10th, 2011, 6:20 pm

Re: Making switch-engines

Post by NickGotts » July 2nd, 2014, 11:36 am

Here's a just-discovered 8-glider slow salvo creating a block-layer from a blinker.

x = 780, y = 682, rule = B3/S23
bo$2bo$3o19$21bo$22bo$20b3o34$36bo$37bo$35b3o98$133bobo$134b2o$134bo8$
151bo$152bo$150b3o425$675bo$676bo$674b3o62$756bo$757b2o$756b2o15$768bo
$769bo$767b3o4$777b3o!

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Making switch-engines

Post by dvgrn » July 2nd, 2014, 3:42 pm

NickGotts wrote:Paul also looked for infinite-growth patterns with small bounding boxes, and I think found one in a 5-by-5 box, which I don't have...
The 5x5 infinite-growth pattern is published on the LifeWiki, along with the minimal 2x12 infinite-growth pattern, which also produces a block-layer.
NickGotts wrote:Finally, here's [an] 8-glider slow salvo creating a glider-streamer out of a blinker - I'd forgotten this one until I prepared this post...
Seems as if there ought to be something with seven slow gliders or less from a single small target, especially because extraneous gliders from intermediate targets are not forbidden in this context (right?) The trick would seem to be to make the biggest possible mess with a small number of gliders, and then look for ways to transmute the edge ash into something that will spawn a switch-engine. The branching factor for this kind of "messy slow salvo" is big enough that it seems as if a switch engine ought to show up within five or six gliders.

That estimate matches Paul Chapman's results from his Glue slow-salvo search program back in March 2004. The following two glider-streaming switch engines are rumored to be seven slow gliders from a block, and therefore six slow gliders from a honeyfarm -- but the actual recipes were never extracted from the Glue database (!):

Code: Select all

x = 301, y = 12, rule = B3/S23
6bo$5bobo287b2o2b2o$5bobo280b2o5b2ob2o$6bo281b2o10bo2$b2o$b2o5b2o$8b2o
4b2o276b2o$14b2o272b2o2b2o$2o6bo279b2o$2o5b2o$7bobo!
If just six gliders can produce these constellations from a honeyfarm, the beehive in the left-hand pattern might actually be a clue as to the honeyfarm's initial position. Now we just need an ambitious Slow Salvo Reverse Engineer...

The key point here is that Paul's search placed very strong limitations on the sizes of intermediate targets. Any reaction that emitted gliders was not used in further searches (though if it grew indefinitely, that was noted). Also, most runs were done with a maximum bounding box perimeter of around 60, which excludes even simple pi explosions -- though there were some searches with semperimeter=80 or 96, which is big enough to fit a pi explosion in. Anyway, even with these limitations a seven-glider recipe still showed up...!

Another mostly-blocks constellation was reported as being at most 20 slow gliders starting from a block, probably less:

Code: Select all

x = 15, y = 9, rule = B3/S23
2o$2o2$9b2o2b2o$9b2ob2o$14bo$2o4b2o$2o3bobo$5b2o!

NickGotts
Posts: 101
Joined: November 10th, 2011, 6:20 pm

Re: Making switch-engines

Post by NickGotts » July 3rd, 2014, 3:57 am

Thanks Dave. I agree that 8 is unlikely to be minimal, and the strategy you suggest is reasonable - I've actually kind of followed it rather unsystematically for the first couple of gliders. Here's the biggest mess you can make with a slow 2-salvo into a block or blinker:

x = 1049, y = 1103, rule = B3/S23
o$b2o$2o1094$1043bo$1044bo$1042b3o4$1046b3o!

Note the pulsar in the final pattern, which should increase the branching factor from this point. However, there are a couple of complications. First, you'll see that in the three slow salvos I posted, gliders have to be used to remove or modify still lifes or oscillators that would otherwise sabotage the switch-engine; this tends to increase the number of gliders needed, and also the difficulty of the search. Second, while it's true that gliders emerging from intermediate patterns are allowed, if they go back in the direction the salvo came from, they block some possible later members of a slow salvo (which of course must be able to travel from indefinitely far away). The back-gliders can be removed at the cost of an extra salvo glider, and some incoming gliders which you might think are blocked in fact are not, because there are a couple of head-on glider collisions that generate another glider travelling in the same direction as one of the colliding pair - and even more complicated, some head-on collisions leave debris, which could be hit by later members of a slow salvo, in some cases generating multiple synchonised gliders going in the slow salvo direction andor further back-gliders. So automating a complete systematic search is non-trivial, but I might try it.

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Making switch-engines

Post by dvgrn » July 3rd, 2014, 7:57 am

NickGotts wrote:Thanks Dave. I agree that 8 is unlikely to be minimal, and the strategy you suggest is reasonable - I've actually kind of followed it rather unsystematically for the first couple of gliders. Here's the biggest mess you can make with a slow 2-salvo into a block or blinker...
It may not be entirely clear to everyone why your best initial target is a blonk (block or blinker) rather than, say, a tub or a beehive. In the context of a Sparse Life early universe, blocks and blinkers will appear overwhelmingly often compared to any other still life: only three nearby cells need to be ON at T=0 to produce a blonk, whereas you need at least four coordinated ON cells to produce any other stable object.

So if the odds of a Sparse Life cell being initially ON are, say, one in a trillion, then you'll end up with huge patches of empty space with a very rare scattering of objects -- but when something does stabilize, the odds will be billions to one that it's a block or blinker.

What happens after that is... very complicated! I suppose the question of the eventual fate of a Sparse Life universe amounts to a multi-decade thought experiment at this point -- and it's the reason why it's particularly interesting to hunt for the absolute minimal slow-salvo switch-engine recipe.
dvgrn wrote:If just six gliders can produce these constellations from a honeyfarm, the beehive in the left-hand pattern might actually be a clue as to the honeyfarm's initial position. Now we just need an ambitious Slow Salvo Reverse Engineer...
Just realized I have a database of intermediate Glue results with recipes, made by truncating the new block-move table. Sadly, neither of the presumed 7-glider switch-engine seeds appears in it. I do have a good lead, though: as I suspected, the beehive probably is a honeyfarm remnant, because just two more gliders will produce two of the blocks in the seed:

Code: Select all

x = 398, y = 266, rule = B3/S23
6bo132b2o$5bobo127b2o2b2o$5bobo127b2o$6bo2$b2o7b2o119b2o$o2bo5bo2bo
117bo2bo$b2o7b2o119b2o$136b2o$6bo13bobo113b2o$5bobo10bo5bo$5bobo$6bo
10bo2b3o2bo$20bo$17bo3bo3bo111b2o$137b2o$18bo5bo$20bobo19$33bobo$31bo
5bo2$30bo2b3o2bo$33bo$30bo3bo3bo2$31bo5bo$33bobo9$62b3o$62bo$63bo23$
84b3o$84bo$85bo183$396b2o$395b2o$397bo!
Now we just have to replace the two circled gliders with four gliders that convert the beehives into the remaining two blocks, and the reverse-engineering job is complete...!

Unfortunately I suppose this recipe isn't really the most interesting kind, since the switch engine returns toward the gliders' source -- and there's quite likely to be some junk back in that direction that will stop the switch-engine, sooner rather than later (?).

EDIT: Aha! There it is:

Code: Select all

#C glider-streaming switch-engine, seven slow gliders from a block
x = 65, y = 67, rule = B3/S23
2o$2o4$3o$o$bo5$17bo$16b2o$16bobo6$25bo$24b2o$24bobo11$27bo$26b2o11b3o
$26bobo10bo$40bo10$48b3o$48bo$49bo16$63b2o$62b2o$64bo!

NickGotts
Posts: 101
Joined: November 10th, 2011, 6:20 pm

Re: Making switch-engines

Post by NickGotts » July 3rd, 2014, 10:29 am

Excellent!
It may not be entirely clear to everyone why your best initial target is a blonk (block or blinker) rather than, say, a tub or a beehive. In the context of a Sparse Life early universe, blocks and blinkers will appear overwhelmingly often compared to any other still life
Yes, I decided not to get into the dynamics of Sparse Life because it needs quite a bit of explanation, but I'll now go at least part of the way! For Sparse Life purposes, a slow salvo recipe is not the main aim - but a "minimal standard collision sequence" ending in a switch-engine. A standard collision sequence involves one glider or r-pentomino present at t=0, and a number of blocks and blinkers also present at t=0, but nothing else; and "minimal" refers to the number of such blonks (blocks or blinkers) involved. My best recipe so far involves 49 of them, although my guess is that the optimum is less than 10, perhpas quite a bit less (I can prove it's more than 2!). One possible way to improve on 49 is to find a smallish slow salvo, then find a way of building that (of course, any such constructed salvo will have specific forward spacings between the gliders, but if you only have to worry about exact sideways spacings and sufficient) forward spacings, the search for a recipe is easier). Given enough time, the dynamics of Sparse Life will be dominated by infinite-growth patterns (almost certainly switch-engines) produced by minimal standard collision sequences. (If I can survey all patterns of up to ten cells, and confirm that no infinite growth patterns other than switch-engines are produced, I can tighten the sense of "dominated", and remove the "almost".)
Unfortunately I suppose this recipe isn't really the most interesting kind, since the switch engine returns toward the gliders' source -- and there's quite likely to be some junk back in that direction that will stop the switch-engine, sooner rather than later (?).
Actually, this probably doesn't much matter. It turns out that glider-streamers will (almost all) be killed before they hit such junk (a glider travelling perpendicular to the switch-engine will collide with the glider-stream and create a blockage), and I think block-layers will also (almost all) die before hitting such junk, although there the reasoning is more complicated and I'm less sure of it. But the "corpses" of both kinds will act as catalytic structures, generating further complexity.

NickGotts
Posts: 101
Joined: November 10th, 2011, 6:20 pm

Re: Making switch-engines

Post by NickGotts » July 3rd, 2014, 3:23 pm

of course, any such constructed salvo will have specific forward spacings between the gliders
Actually, it may do or may not, depending on how it's constructed!

I notice that the 7-salvo you posted has the advantage that there are no parity constraints on the forward gaps between gliders: I'll take a look at possible standard collision sequence constructions for it!

User avatar
codeholic
Moderator
Posts: 1147
Joined: September 13th, 2011, 8:23 am
Location: Hamburg, Germany

Re: Making switch-engines

Post by codeholic » July 3rd, 2014, 4:28 pm

NickGotts wrote:A standard collision sequence involves one glider or r-pentomino present at t=0, and a number of blocks and blinkers also present at t=0, but nothing else; and "minimal" refers to the number of such blonks (blocks or blinkers) involved.
I suppose, there is another restriction implied, namely that there should be no other interactions between blonks besides through gliders or spaceships, emitted by previous likewise triggered reactions. And these interactions must be slow (the previous one should stabilize).
Ivan Fomichev

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Making switch-engines

Post by dvgrn » July 3rd, 2014, 4:34 pm

NickGotts wrote:A standard collision sequence involves one glider or r-pentomino present at t=0, and a number of blocks and blinkers also present at t=0, but nothing else; and "minimal" refers to the number of such blonks (blocks or blinkers) involved. My best recipe so far involves 49 of them, although my guess is that the optimum is less than 10, perhpas quite a bit less (I can prove it's more than 2!).
Interesting! It occurs to me that you don't really require a unidirectional slow salvo, then. For example, it's quite possible that one of the 0-degree or 90-degree outputs from your "biggest 2salvo+blinker mess" reaction will strike a faraway blinker and send a glider back to modify the original mess. The biggest modification I saw offhand wasn't very big, but there are a lot of options to try:

Code: Select all

x = 2034, y = 1103, rule = B3/S23
o2032bo$b2o2030bo$2o2031bo1094$1043bo$1044bo$1042b3o4$1046b3o!
Anyway, I'm sure this is all very old news... it just adds a little more complication to the problem of setting up a really exhaustive search for a minimum Sparse Life switch-engine recipe.

But those possible sideways return gliders can only show up on a fairly limited number of lanes, depending on what 0-degree and 90-degree gliders go out. So it does look as if the best bet for building complicated structures is with a cascade-effect unidirectional slow(ish) salvo, where an output from a glider+blinker collision hits another blonk, creating more gliders, and so on.

-- Can you post the current-best 49-blonk pattern (or whatever you improve it to, if the new recipe allows it?) I'd like to see a fresh sample of how this kind of thing works. I've so far failed to reverse-engineer the other old Glue recipe, made out of four blocks -- presumably it's equally likely to be amenable to "standard collision-sequence construction". But I'm not entirely sure whether that recipe was seven or eight gliders from the block.

Actually, the 7-glider Glue recipe seems quite unlikely to be minimal. It was found back in 2004 with the original version of Glue, which used an incredibly limited search tree -- no P2 intermediate targets were allowed, let alone large intermediates such as pi explosions. Turned out that there was still a good universal-construction toolkit, even with only P1 intermediates. Anyway, this certainly explains the lack of timing constraints between gliders...!

I don't recall any reports of switch engines from the P2 version of Glue; very likely they were simply discarded because they didn't settle fast enough... If a switch-engine seed was found within 7 gliders in the old limited P1 search tree, then the odds seem awfully good that there's one within 6 gliders from a block if P2 intermediates are allowed. Maybe even 5 gliders from a blonk -- how thoroughly has the slow-salvo search tree been explored starting from a blinker?

Probably this would be a good time to hack sscs to do an unweighted search, and just see when the first infinite-growth pattern really shows up there.

NickGotts
Posts: 101
Joined: November 10th, 2011, 6:20 pm

Re: Making switch-engines

Post by NickGotts » July 3rd, 2014, 5:51 pm

Here's the order-49 SCS (standard collision sequence). It doesn't use a slow salvo, but the synchonised pair plunging into a settled pi which I posted earlier - but setting this up is not easy:
x = 52541, y = 52489, rule = S23/B3
o$o$o4648$4690b3o1141$5837bo$5836b3o$5836bo941$6825boo$6825boo769$
7629bo$7629bo$7629bo667$8354bo$8354bo$8354bo500$8846b3o759$9621bo$
9621bo$9621bo763$10328b3o631$11011b3o719$11780bo$11780bo$11780bo623$
12411b3o772$13171bo$13171bo$13171bo707$13934b3o682$14564b3o767$15285bo
$15285bo$15285bo630$15907b3o759$16682bo$16682bo$16682bo608$17340bo$
17340bo$17340bo680$17970bo$17970bo$17970bo1559$19595bo$19595bo$19595bo
1078$20563boo$20563boo243$20862bo$20862bo$20862bo887$21690b3o1307$
23027bo$23027bo$23027bo1631$24745boo$24745boo520$25205bo$25205bo$
25205bo828$26092b3o834$26900bo$26900bo$26900bo2182$29171b3o916$29913b
oo$29913boo769$30717bo$30717bo$30717bo625$31400boo$31400boo337$31762b
3o479$32299boo$32299boo374$32700bo$32700bo$32700bo1884$34609bo$34609bo
$34609bo1614$36176bo$36176bo$36176bo1376$37608b3o8751$46486boo$46486b
oo619$47049b3o683$47680b3o683$48311b3o683$48942b3o683$49573b3o683$
50204b3o683$50835b3o683$51466b3o683$52097b3o398$52538b3o!

There are a lot of complications in attempting a systematic search for the minimal SCS: doing a breadth-first search is the obvious approach, but adding a single extra blonk can produce a subsidiary tree of possibilities, where branches differ in the relative distances between blonks. For example, suppose a salvo from a collision hits a fresh blonk, and the resulting collision sends a salvo back, and one forward. Does the back-salvo reach the previous collision before or after the forward salvo hits another fresh blonk? If both forward and back collisions produce return salvos, this will determine which reaches the middle remnant first. Then again, two salvos from the same point travelling at right angles can each hit a new blonk and send sideways salvos that collide in "empty space", as here:
x = 91016, y = 156081, rule = B3/S23
91013b3o91057$bo$2bo$3o4$4b3o65017$65073b3o!
The blonks are not allowed to be in any "special" positions relative to each other, but as the above shows, this does not preclude collisions between salvos travelling in different directions.

And one must also consider *wss possibilities, although I think it most unlikely they take part in a minimal SCS. However, they are fairly easy to produce: an r-pentomino and two blinkers suffice to produce an LWSS:
x = 722, y = 720, rule = B3/S23
b2o$2o$bo358$308b3o357$721bo$721bo$721bo!

So before even trying to design a systematic search for a minimal SCS, I want to find a reasonably short one!

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Making switch-engines

Post by dvgrn » July 4th, 2014, 2:16 am

NickGotts wrote:Here's the order-49 SCS (standard collision sequence). It doesn't use a slow salvo, but the synchonised pair plunging into a settled pi which I posted earlier - but setting this up is not easy.
Ouch -- "not easy" is a serious understatement. It looks as if it ought to be simpler to avoid synchronization problems and do everything with a slow salvo -- but I'm sure there are complications there as well.
NickGotts wrote:... before even trying to design a systematic search for a minimal SCS, I want to find a reasonably short one!
Makes sense. Given the ridiculous size of the search space, 49 blonks ought to be an easy target to beat, probably with some as-yet-undiscovered "natural" reaction that just needs singleton gliders, or at least just groups of gliders from previous messy reactions.

Meanwhile, just for the record, here are a couple of 12-glider recipes for the old Glue four-block switch-engine seed. This seems to be about the limit of my reverse-engineering skills, but I'm guessing there's something shorter -- maybe replacing gliders 2-7 with a shorter half-honeyfarm-to-block converter?

Code: Select all

#C A block plus 12 slow gliders with no parity constraints makes a
#C    4-block seed.  One more glider makes a glider-streaming switch engine.
#C Two trivial variants are shown -- there are many others.
x = 1291, y = 213, rule = Life
1093b2o$1093b2o3$1094bo$1093b2o$1093bobo14$1102bo$1101b2o$1101bobo3$
1115bo$5bo1108b2o$2o2b2o1108bobo$2o2bobo$1130bo$1129b2o$1129bobo8$
1141bo$1140b2o$1140bobo$12bo$11b2o$11bobo3$25bo10bo$24b2o9b2o$24bobo8b
obo5$1137bo$1136b2o$1136bobo6$43bo$42b2o$42bobo7$1148bo$1147b2o$51bo
1095bobo$50b2o$50bobo2$67bo$66b2o1096bo$66bobo1094b2o$1163bobo18$1182b
o$1181b2o$74bo1106bobo$73b2o$73bobo16$1207bo$1206b2o$92bo1113bobo$91b
2o$91bobo16$1224bo$1223b2o$117bo1105bobo$116b2o$116bobo16$1232bo$1231b
2o$134bo1096bobo$133b2o$133bobo18$142bo$141b2o$141bobo6$1289bo$1288b2o
$1288bobo20$199bo$198b2o$198bobo!

NickGotts
Posts: 101
Joined: November 10th, 2011, 6:20 pm

Re: Making switch-engines

Post by NickGotts » July 9th, 2014, 2:45 pm

It looks as if it ought to be simpler to avoid synchronization problems and do everything with a slow salvo -- but I'm sure there are complications there as well.
There are indeed! The more members a salvo requires, even if forward spacings are not crucial, the less likely it is that a single collision will produce the salvo - I imagine the probability for a random collision decreases exponentially with salvo size. So a salvo of as many as 7 gliders has to be constructed from multiple collisions and this turns out to be far from easy, because whentrying to get a glider on the correct diagonal, both other members of the salvo, and remnants from previous collisions, can get in the way.

Here's the best standard collision sequence (43 blonks) I've come up with that produces the 7-glider slow salvo, and hence a glider-streamer (which hits a previous remnant, but as I noted, this is not very important in terms of Sparse Life dynamics). I'll post a more detailed description when I have time, but the overall strategy was:
1) Use the first few collisions to produce as large a forward salvo (here, SE-headed) gliders as possible.
2) Select one of the gliders to lead the slow salvo which will construct the switch-engine (this I've placed on the 0 diagonal - where the uppermost diagonal the glider occupies has x=y).
3) From other gliders in the same forward salvo, line up as many members of the slow salvo as possible. I managed three more, on diagonals 8, 8 and -3 (diagonals to the south-west of 0 have positive numbers, those to the north-west, negative). The two on diagonal 8 are produced by a "52 shift" of one on -44: the glider-blinker collision that produces two forward gliders, on the same diagonal, as well as one to the rear and two to one side. In this case, it's useful that there are two on the same diagonal but often it's a nuisance, because one has to be removed for the salvo to work - and where gliders are on close diagonals, it can be impossible to do this. Hence the -3 glider has to be produced via production of a glider in the opposite direction.
4) From back-gliders produced earlier, assemble the rest of the salvo, multiples of 52 diagonals away from their final target diagonals.
5) Shift them to the correct diagonals - this again involves production via back gliders.
6) Hit the target.

Some blonks act purely to remove gliders that would otherwise sabotage the collisions that are wanted.

x = 169195, y = 169282, rule = B3/S23
b2o$2o$bo358$308b3o2985$3349bo$3349bo$3349bo354$3760bo$3760bo$3760bo
4575$8399b3o915$9366b3o17240$26426b3o1148$27521bo$27521bo$27521bo298$
27873bo$27873bo$27873bo742$28544b3o5186$33668bo$33668bo$33668bo185$
33874b3o372$34409bo$34409bo$34409bo991$35181b3o19260$54532b2o$54532b2o
1857$56472b2o$56472b2o198$56773bo$56773bo$56773bo398$57043bo$57043bo$
57043bo499$57565b3o2100$59717b3o3570$63339b3o2330$65604b3o20430$85813b
2o$85813b2o1819$87901b2o$87901b2o977$88565bo$88565bo$88565bo5479$
94092b3o1792$95948bo$95948bo$95948bo1712$97605b3o1654$99302b3o5785$
104936b3o2491$107479b3o1802$109333b3o2628$112025bo$112025bo$112025bo
514$112484b3o271$112798b3o15408$128579bo$128579bo$128579bo638$129167bo
$129167bo$129167bo650$129767bo$129767bo$129767bo883$130600bo$130600bo$
130600bo783$131333bo$131333bo$131333bo6536$137807b3o252$138116bo$
138116bo$138116bo309$138384bo$138384bo$138384bo30864$169193b2o$169193b
2o!

NickGotts
Posts: 101
Joined: November 10th, 2011, 6:20 pm

Re: Making switch-engines

Post by NickGotts » July 9th, 2014, 3:59 pm

those to the north-west, negative
This should be "those to the north-east, negative".

While the reduction from 49 to 43 blonks isn't large, it is the first improvement since January 2001. Almost certainly, there are shorter sequences that will produce this slow salvo using the same basic strategy, but I'd be surprised if any radical reduction is possible in this way. I do have some Python scripts I devised for a systematic but partial search (just looking at forward salvos starting with the trio from the r-pentomino and hitting successive blonks), so I'll have another look at that approach.

User avatar
Tropylium
Posts: 421
Joined: May 31st, 2011, 7:12 pm
Location: Finland

Re: Making switch-engines

Post by Tropylium » September 25th, 2014, 9:25 am

NickGotts wrote:A standard collision sequence involves one glider or r-pentomino present at t=0, and a number of blocks and blinkers also present at t=0, but nothing else; and "minimal" refers to the number of such blonks (blocks or blinkers) involved. My best recipe so far involves 49 of them, although my guess is that the optimum is less than 10, perhpas quite a bit less (I can prove it's more than 2!)
Does the bolded bit imply you've surveyed all possible ways that an R-pentomino or a glider can collide with 2 blonks?

NickGotts
Posts: 101
Joined: November 10th, 2011, 6:20 pm

Re: Making switch-engines

Post by NickGotts » October 3rd, 2014, 5:08 am

Does the bolded bit imply you've surveyed all possible ways that an R-pentomino or a glider can collide with 2 blonks?
With two widely separated blonks, yes. So, the r-pentomino runs to its conclusion, spitting out 3 salvos (of 1, 2 and 3 gliders (the 1-salvo - the single glider - means we need not consider an initial lone glider separately), then either each of two salvos collides with a distant blonk - at widely separated times - or one salvo collides with a blonk and later, a salvo from that collision collides with another blonk. None of these collision sequences produces infinite growth of any kind. There is one that produces an LWSS:

x = 722, y = 720, rule = B3/S23
b2o$2o$bo358$308b3o357$721bo$721bo$721bo!

User avatar
simsim314
Posts: 1823
Joined: February 10th, 2014, 1:27 pm

Re: Making switch-engines

Post by simsim314 » October 20th, 2014, 8:24 am

Here is something I've found lately:

Code: Select all

x = 243, y = 166, rule = B3/S23
8bo$8bo$8bo4$b2o$obo$2bo155$241b2o$240b2o$242bo!

User avatar
Scorbie
Posts: 1692
Joined: December 7th, 2013, 1:05 am

Re: Making switch-engines

Post by Scorbie » October 22nd, 2014, 2:32 pm

Here's a glider+4blinker solution. I'm not sure if it's a valid one though...

Code: Select all

x = 72, y = 92, rule = B3/S23
o$b2o$2o22$42b3o31$69b3o16$71bo$71bo$71bo18$21b3o!
EDIT: thanks to wildmyron and A.P.Goucher for the blonksoup apgsearch :)

User avatar
codeholic
Moderator
Posts: 1147
Joined: September 13th, 2011, 8:23 am
Location: Hamburg, Germany

Re: Making switch-engines

Post by codeholic » October 22nd, 2014, 4:16 pm

Scorbie wrote:Here's a glider+4blinker solution. I'm not sure if it's a valid one though...
No, it's not.

Let's call glider-blonk collisions 'islands'. In sparse Life only such patterns are allowed, where islands interact no other way than by means of gliders, spaceships, puffers or other regularly moving patterns. It's easy to see that your pattern doesn't meet this requirement.
Ivan Fomichev

User avatar
Scorbie
Posts: 1692
Joined: December 7th, 2013, 1:05 am

Re: Making switch-engines

Post by Scorbie » October 22nd, 2014, 11:09 pm

I got it. I'll see if something else comes out...

User avatar
simsim314
Posts: 1823
Joined: February 10th, 2014, 1:27 pm

Re: Making switch-engines

Post by simsim314 » October 23rd, 2014, 9:52 am

Here are some 2 gliders + blinker -> switch engine interactions (one of them was the basis for the 24 cell quadratic:viewtopic.php?p=13973#p13973)

Code: Select all

x = 6109, y = 544, rule = B3/S23
2966bo$2967bo$2965b3o31$1122bo879bo$1120bobo877bobo$1121b2o878b2o2$
1123b3o877b3o6$4335bo$4334bo$4334b3o32$117bo$115b2o$116b2o4$5603bo$
5604bo$5602b3o124$3bo$2bo$2b3o$o$o$o52$964b2o$965b2o$964bo32$2207b3o$
2207bo$2208bo11$3279b3o2$3282b2o$3282bobo$3282bo59$4000bo$4000bo$4000b
o$3996b3o$3998bo$3997bo158$6106bo$6106bobo$6106b2o2$6103b3o!
EDIT And another one:

Code: Select all

x = 777, y = 809, rule = B3/S23
76$634bo$632b2o$633b2o557$86bo$84bobo$85b2o2$87b3o!
Last edited by simsim314 on October 26th, 2014, 4:46 am, edited 1 time in total.

User avatar
simsim314
Posts: 1823
Joined: February 10th, 2014, 1:27 pm

Re: Making switch-engines

Post by simsim314 » October 24th, 2014, 2:23 pm

Here is a surprise! 3 glider synthesis of switch engine (3 gliders infinite growth).

Code: Select all

x = 98, y = 77, rule = B3/S23
97bo$95b2o$96b2o69$4bo$3bo$3b3o$bo$2o$obo!
I also made this just for fun:

Code: Select all

x = 307, y = 284, rule = B3/S23
138b5o$138bo4b2obo4b5o$138bo5bobo4bo4b2obo$139bo4bo6bo5bobo$141bob3o6b
o4bo$143b3o8bob3o$156b3o$141b2o$139b2o13b2o$139bo2bo9b2o$139bo12bo2bo$
140b2o10bo$145bo7b2o52b2o$142bo15bo47b2ob2o$143b2o10bo51b4o20b2o$156b
2o9b3o15b3o20b2o20b2ob2o$137b7obo20b5o13b5o42b4o$122b2o13bo7bo4b7obo6b
2ob3o12b2ob3o43b2o$99b2o19bo4bo11bo7bo4bo7bo7b2o16b2o$98b2ob3o15bo18bo
11bo7bo$99b5o15bo5bo14b2o9bo$100b3o16b6o28b2o$104bo$104bo$102bo$101bo
3bo$97b2o2bo3bo$96b2ob2o2bo20bo$97b2o3bo17b2obo2b3o$98b2o2bo5bo3bo3bo
3b2ob2ob3o$103bo4bo3bo3bo2bo$98b2o2bo5bo3bo3bo3b2ob2ob3o112b2o$97b2o3b
o17b2obo2b3o111b2ob3o$96b2ob2o2bo20bo116b5o$97b2o2bo3bo136b3o$101bo3bo
$102bo$104bo$104bo$100b3o16b6o28b2o11b2o23b2o$99b5o15bo5bo14b2o9bo12bo
4bo20b2ob4o$98b2ob3o15bo18bo11bo7bo4bo27b6o$99b2o19bo4bo11bo7bo4bo7bo
4bo5bo12b6o4b4o$122b2o13bo7bo4b7obo4b6o13bo5bo$137b7obo36bo$156b2o25bo
4bo$143b2o10bo29b2o$142bo15bo$145bo7b2o$140b2o10bo$139bo12bo2bo$139bo
2bo9b2o$139b2o13b2o$141b2o$156b3o$143b3o8bob3o$141bob3o6bo4bo$139bo4bo
6bo5bobo$138bo5bobo4bo4b2obo$138bo4b2obo4b5o$138b5o10$47b3o$46b6o8b3o$
45b2ob5o6b6o$46b2o4bo5b2ob5o$59b2o4bo$50bo$50b2obo9bo$50b3o10b2obo$48b
2o13b3o$47b2obo10b2o$46b2o12b2obo$47bobo9b2o$48bo11bobo$49bo11bo52b4o$
51b2o9bo51bo3bo$51bo12b2o10bo17bo19bo23b4o$46b4o14bo9bo3bo13bo3bo18bo
2bo19bo3bo$45b6obo6b4o10bo17bo46bo$44b2ob4o2b2o3b6obo7bo4bo12bo4bo42bo
2bo$6b5o34b2o10b2ob4o2b2o5b5o13b5o$6bo4bo15b2o29b2o$6bo19b2ob4o$7bo19b
6o$9bobo16b4o$11bo2$9b2o$4b4ob2obo$4bo2b4o24bo$4bo3b4o16b2obo2bobo$5b
3o2b2o15bobob4obo$10b2o3b3ob3ob3obo$5b3o2b2o15bobob4obo111b5o153bo$4bo
3b4o16b2obo2bobo111bo4bo150b2o$4bo2b4o24bo112bo156b2o$4b4ob2obo136bo3b
o$9b2o140bo2$11bo$9bobo16b4o$7bo19b6o65b6o$6bo19b2ob4o65bo5bo$6bo4bo
15b2o29b2o11b2o18b4o3bo$6b5o34b2o10b2ob4o2b2o2b2ob4o13b6o3bo4bo$44b2ob
4o2b2o3b6obo5b6o12b2ob4o5b2o$45b6obo6b4o9b4o14b2o$46b4o14bo$51bo12b2o$
51b2o9bo$49bo11bo$48bo11bobo$47bobo9b2o$46b2o12b2obo$47b2obo10b2o$48b
2o13b3o$50b3o10b2obo$50b2obo9bo$50bo$59b2o4bo$46b2o4bo5b2ob5o$45b2ob5o
6b6o$46b6o8b3o$47b3o41$213bo$212bo$212b3o$210bo$209b2o$209bobo41$45bo$
43bo14bo$42bo6bo6bo$42bo6bo5bo6bo$42b6obo5bo6bo$55b6obo$47b2o$46bo13b
2o$49bo9bo$44b2o16bo$43bo13b2o$43bo2bo9bo$43b2o11bo2bo$45b2o9b2o$58b2o
$47b3o$44b2ob3o10b3o$42bo5bo8b2ob3o7b2o$41bo6bobo4bo5bo6bo4bo12b6o$4b
3o34bo5b2obo3bo6bobo3bo18bo5bo$3b5o33b6o7bo5b2obo3bo5bo12bo$2b2ob3o15b
6o25b6o7b6o14bo4bo2b2o$3b2o18bo5bo59b2o3b2ob4o$23bo71b6o$7bo16bo4bo66b
4o$7bo18b2o$7bo$2b2ob4o$b4o$2o30bo112b2o$bo23b2obo2bobo110b2ob3o$2b4o
3bo3bo3bo3bob2obob4o113b5o$6bo2bo3bo3bo3bo2bo121b3o$2b4o3bo3bo3bo3bob
2obob4o$bo23b2obo2bobo$2o30bo$b4o$2b2ob4o$7bo$7bo18b2o$7bo16bo4bo$23bo
$3b2o18bo5bo$2b2ob3o15b6o25b6o11b3o15b3o$3b5o33b6o7bo5b2obo6b5o13b5o$
4b3o34bo5b2obo3bo6bobo5b2ob3o12b2ob3o$41bo6bobo4bo5bo8b2o16b2o45b2o$
42bo5bo8b2ob3o71b2ob2o$44b2ob3o10b3o48b2o22b4o$47b3o60b2ob2o21b2o$58b
2o51b4o$45b2o9b2o54b2o$43b2o11bo2bo$43bo2bo9bo$43bo13b2o$44b2o16bo$49b
o9bo$46bo13b2o$47b2o$55b6obo$42b6obo5bo6bo$42bo6bo5bo6bo$42bo6bo6bo$
43bo14bo$45bo!

NickGotts
Posts: 101
Joined: November 10th, 2011, 6:20 pm

Re: Making switch-engines

Post by NickGotts » October 25th, 2014, 12:52 pm

Here are some 2 gliders + blinker -> switch engine interactions (one of them was the basis for the 24 cell quadratic
simsim314 wrote:Here is a surprise! 3 glider synthesis of switch engine (3 gliders infinite growth).
Great finds! And many congrats on the 24-cell quadratic growth!

User avatar
simsim314
Posts: 1823
Joined: February 10th, 2014, 1:27 pm

Re: Making switch-engines

Post by simsim314 » October 26th, 2014, 12:24 pm

Although not really useful but still interesting:

Code: Select all

x = 284, y = 251, rule = B3/S23
236b3o14$282bo$281bobo$282bo232$bo$3o$2bo!

User avatar
simsim314
Posts: 1823
Joined: February 10th, 2014, 1:27 pm

Re: Making switch-engines

Post by simsim314 » October 27th, 2014, 2:18 am

R-pentomino pair synth of infinite growth 200x200 square check (7 options):

Code: Select all

x = 30142, y = 152, rule = B3/S23
15063bo$15062bobo$15064bo10066bobo$15065bo10066b2o$25133bo6$30141bo$
30140bo$30138bobo$30139bo65$20111bo$20110bo$20111b2o$20113bo4$2bo$bo$
3o6$79bo4999bo4999bo4999bo4999bo4999bo4999bo$79b3o4997b3o4997b3o4997b
3o4997b3o4997b3o4997b3o$80bo4999bo4999bo4999bo4999bo4999bo4999bo9$
5024bo$5025bo$5025bobo$5026bo42$10053bo$10054bo$10053b3o!
Glider + R-pentomino full check, with new 10 cell predecessor for glider emitting switch engine:

Code: Select all

x = 377, y = 162, rule = B3/S23
233bo$231bobo$232b2o66$o$b2o$2o89$56b2o317b2o$55b2o317b2o$56bo318bo!
The later is very nice, because it allows creating switch engines in slightly different initial state, as R can be replaced with it's parent, or grandparent.

User avatar
simsim314
Posts: 1823
Joined: February 10th, 2014, 1:27 pm

Re: Making switch-engines

Post by simsim314 » November 2nd, 2014, 8:18 am

Here is some stuff I've discovered lately:

11 cells switch engine + *WSS:

Code: Select all

x = 4795, y = 85, rule = LifeHistory
4794.A$4794.A$4794.A15$4747.3A$4745.A$4746.A$4747.A$4746.A$4745.A2$
2179.A$2179.A$2179.A12$2188.A$2188.A$2185.A2.A$2184.A.A$2183.A3.A24$
3.3A$.A$2.A$3.A$2.A$.A12$2A$2A!
Glider + 3 still life (3 cells) -> Switch engine + *WSS:

Code: Select all

x = 24128, y = 101, rule = LifeHistory
4018.2A$4018.2A15$4033.3A2$8.A3999.A3999.A$8.A3999.A3999.A$8.A3999.A
3999.A4$.2A3998.2A3998.2A$A.A3997.A.A3997.A.A$2.A3999.A3999.A13$15.A$
15.A$15.A17567.A3999.A$17583.A3999.A$17583.A3999.A$7984.A36.A$7984.A
36.A9560.3A3997.3A$7984.A36.A3$31.2A15376.3A$31.2A11373.3A$15393.2A$
15393.2A5$24106.3A$17597.A3999.A$11419.A3999.A2177.A3999.A$11408.3A8.
A3999.A2177.A3999.A$11419.A3999.A3$17590.2A3998.2A$11412.2A3998.2A
2175.A.A3997.A.A$11411.A.A3997.A.A2177.A3999.A$11413.A3999.A13$24127.
A$24127.A$24127.A4$24120.2A$24119.A.A$24121.A12$24094.3A!
EDIT: All variations in which glider emitting switch engine that collects "crystal" will eventually emit *WSS:

Code: Select all

x = 654089, y = 4149, rule = LifeHistory
654087.2A$654087.2A168$603918.2A$603918.2A362$553555.2A$553555.2A190$
503364.2A$503364.2A168$453195.2A$453195.2A362$402832.2A$402832.2A190$
352641.2A$352641.2A168$302472.2A$302472.2A362$252109.2A$252109.2A190$
201918.2A$201918.2A3$151914.2A$151914.2A164$101749.2A$101749.2A333$
51415.2A$51415.2A28$1386.2A$1386.2A1412$14.A49999.A49999.A49999.A
49999.A49999.A49999.A49999.A49999.A49999.A49999.A49999.A49999.A49999.
A$15.A49999.A49999.A49999.A49999.A49999.A49999.A49999.A49999.A49999.A
49999.A49999.A49999.A49999.A$15.A.A49997.A.A49997.A.A49997.A.A49997.A
.A49997.A.A49997.A.A49997.A.A49997.A.A49997.A.A49997.A.A49997.A.A
49997.A.A49997.A.A$16.A49999.A49999.A49999.A49999.A49999.A49999.A
49999.A49999.A49999.A49999.A49999.A49999.A49999.A29$.A49999.A49999.A
49999.A49999.A49999.A49999.A49999.A49999.A49999.A49999.A49999.A49999.
A49999.A$2A49998.2A49998.2A49998.2A49998.2A49998.2A49998.2A49998.2A
49998.2A49998.2A49998.2A49998.2A49998.2A49998.2A$.2A49998.2A49998.2A
49998.2A49998.2A49998.2A49998.2A49998.2A49998.2A49998.2A49998.2A
49998.2A49998.2A49998.2A!

Post Reply