"Fast Salvos"

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.
User avatar
Extrementhusiast
Posts: 1966
Joined: June 16th, 2009, 11:24 pm
Location: USA

"Fast Salvos"

Post by Extrementhusiast » July 18th, 2013, 6:16 pm

This thread is to talk about "fast salvos". In other words, salvos that need timing to work.

Currently, I'm trying to find a reasonably small salvo that pushes a block (or anything else) by (15,15), and emits at least one glider heading in the opposite direction from the salvo, but no gliders in the same direction as the salvo.
I Like My Heisenburps! (and others)

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

Re: "Fast Salvos"

Post by dvgrn » July 18th, 2013, 6:39 pm

Extrementhusiast wrote:Currently, I'm trying to find a reasonably small salvo that pushes a block (or anything else) by (15,15), and emits at least one glider heading in the opposite direction from the salvo, but no gliders in the same direction as the salvo.
What's your upper limit for the size of the salvo? I have collections of recipes that include lots of ways to do that, but not very efficiently -- ten or a dozen gliders, it looks like.

User avatar
Extrementhusiast
Posts: 1966
Joined: June 16th, 2009, 11:24 pm
Location: USA

Re: "Fast Salvos"

Post by Extrementhusiast » July 19th, 2013, 6:54 pm

I'm looking for something on the order of five gliders. (Moves that produce a sideways glider are also OK; the last glider can just be kicked back.)
I Like My Heisenburps! (and others)

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

Re: "Fast Salvos"

Post by dvgrn » July 19th, 2013, 8:50 pm

Extrementhusiast wrote:I'm looking for something on the order of five gliders.
I tried writing a script to run random combinations of three gliders and see how often a good push reaction would come along. So far the results haven't been terribly promising, but clearly there's a lot of space to search. The most likely reaction I saw was probably

Code: Select all

x = 22, y = 14, rule = LifeHistory
2C2.2A$2C2.A.A$4.A8$12.2A$12.A.A4.2A$12.A6.A.A$19.A!
but you're not likely to get exactly to (+15,+15) plus a return glider by slightly extending this salvo. I did get to (+26,+24) with three more gliders, though, so you never know! Maybe it's worth looking for salvos that leave a boat in the relative location that you want:

Code: Select all

x = 62, y = 58, rule = LifeHistory
2C$2C3.2A$4.2A$6.A8$13.2A$12.2A6.2A$14.A4.2A$21.A36$47.2A10.3A$46.2A
11.A$48.A11.A3$51.3A$51.A$52.A!
EDIT: Okay, along the above lines -- how does this seven-glider salvo look (besides a couple of gliders too many)?

Code: Select all

x = 63, y = 75, rule = LifeHistory
.2C$.2C3$2A$A.A$A4$16.2A$16.A.A$16.A6$16.2A$15.2A$17.A8$25.A$24.2A$
24.A.A15$35.A$34.2A$34.A.A14$42.A$41.2A$41.A.A9$61.A$60.2A$60.A.A!
EDIT 2: Make that six gliders. The versions on the right put out extra sideways gliders, if you need a better offset for the return glider and want to spend an extra glider on the kickback. There are a few other workable locations for the fifth glider that do the same cleanup.

Code: Select all

x = 273, y = 75, rule = LifeHistory
.2C108.2C98.2C$.2C108.2C98.2C3$2A108.2A98.2A$A.A107.A.A97.A.A$A109.A
99.A4$16.2A108.2A98.2A$16.A.A107.A.A97.A.A$16.A109.A99.A6$16.2A108.2A
98.2A$15.2A108.2A98.2A$17.A109.A99.A8$25.A109.A99.A$24.2A108.2A98.2A$
24.A.A107.A.A97.A.A7$147.3A$147.A$148.A5$31.3A$31.A209.3A$32.A208.A$
242.A25$61.A109.A99.A$60.2A108.2A98.2A$60.A.A107.A.A97.A.A!

User avatar
Extrementhusiast
Posts: 1966
Joined: June 16th, 2009, 11:24 pm
Location: USA

Re: "Fast Salvos"

Post by Extrementhusiast » August 31st, 2013, 12:40 pm

I'm deciding to revisit this problem, with a bit of a difference. Is it possible to have a three-glider salvo to move it five spaces diagonally, with the same restrictions otherwise?
I Like My Heisenburps! (and others)

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

Re: "Fast Salvos"

Post by codeholic » August 31st, 2013, 2:14 pm

Diagonally in which direction relative to the salvo?
Ivan Fomichev

User avatar
Extrementhusiast
Posts: 1966
Joined: June 16th, 2009, 11:24 pm
Location: USA

Re: "Fast Salvos"

Post by Extrementhusiast » August 31st, 2013, 2:16 pm

Pushing, as stated above.
I Like My Heisenburps! (and others)

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

Re: "Fast Salvos"

Post by codeholic » August 31st, 2013, 2:46 pm

Is any additional junk allowed?

EDIT: Any restriction on the duration of the reaction?
Ivan Fomichev

User avatar
Extrementhusiast
Posts: 1966
Joined: June 16th, 2009, 11:24 pm
Location: USA

Re: "Fast Salvos"

Post by Extrementhusiast » August 31st, 2013, 2:51 pm

No additional junk is allowed. Reaction length can be any amount of time. Anything can be pushed.
I Like My Heisenburps! (and others)

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

Re: "Fast Salvos"

Post by codeholic » September 1st, 2013, 10:19 am

Here you are:

Code: Select all

x = 12, y = 14, rule = B3/S23
2o$2o4b2o$6bobo$6bo4$5b2o$5bobo$5bo2$9b3o$9bo$10bo!
Ivan Fomichev

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

Re: "Fast Salvos"

Post by codeholic » September 1st, 2013, 3:27 pm

I wonder, if one can build a spaceship out of blockic seeds and fast salvos like following:

2G+B->2G+B

Code: Select all

x = 212, y = 12, rule = B3/S23
2o98b2o98b2o$2o98b2o98b2o$6b2o98b2o$6bobo97bobo97b2o$6bo99bo99bobo$
206bo2$4b2o124b2o$4bobo123bobo$4bo125bo79b2o$209b2o$211bo!
2G+B->2G+2B

Code: Select all

x = 17, y = 13, rule = B3/S23
2o$2o$6b2o$6bobo$6bo6$15b2o$14b2o$16bo!
2G+B->2G

Code: Select all

x = 128, y = 14, rule = B3/S23
2o98b2o$2o98b2o$6b2o98b2o$6bobo97bobo$6bo99bo6$126bo$25b2o98b2o$25bobo
97bobo$25bo!
Ivan Fomichev

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

Re: "Fast Salvos"

Post by codeholic » September 2nd, 2013, 12:57 pm

A faster one (and the search is still running):

Code: Select all

x = 15, y = 27, rule = B3/S23
2o$2o2$6b2o$6bobo$6bo8$10b2o$9b2o$11bo9$12b3o$12bo$13bo!
Ivan Fomichev

User avatar
Extrementhusiast
Posts: 1966
Joined: June 16th, 2009, 11:24 pm
Location: USA

Re: "Fast Salvos"

Post by Extrementhusiast » September 2nd, 2013, 1:05 pm

What about four or five-glider searches on 15-space pushes?

EDIT: 23-space pushes would also work, but that may be getting to be a bit too far.
I Like My Heisenburps! (and others)

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

Re: "Fast Salvos"

Post by codeholic » September 2nd, 2013, 2:38 pm

I'm afraid that anything more than a superficial search involving 5+ colliding objects is out of the reach of gencols. I think it's more probable to find (15, 15) block pusher with 3 gliders. Unfortunately I don't have a spare machine to start the search right away. Are you interested in more results of (5, 5) search or shall I stop it and run a new one?
Ivan Fomichev

User avatar
Extrementhusiast
Posts: 1966
Joined: June 16th, 2009, 11:24 pm
Location: USA

Re: "Fast Salvos"

Post by Extrementhusiast » September 2nd, 2013, 2:52 pm

Stop and run a new one.
I Like My Heisenburps! (and others)

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

Re: "Fast Salvos"

Post by dvgrn » September 4th, 2013, 1:05 am

codeholic wrote:I wonder, if one can build a spaceship out of blockic seeds and fast salvos...
Alan Hensel mentioned something very much like this a few months ago -- he called them "fluff relays". Seems to me that, while it's certainly possible that such a spaceship exists, the odds are pretty low of actually finding a combination of seeds where all the input and output gliders line up

The simplest case that would produce a spaceship might be two groups of blocks with a glider shuttling back and forth between them. Each collision re-creates that same pattern of blocks at some offset (X,Y) and creates a 180-degree return glider that lines up with the opposite input. The two block constellations have to be different from each other -- the glider in one direction has to do a "push" and the other one a "pull" of the exact same size. Otherwise it's some kind of growing pattern, not a normal spaceship.

Fulfilling even one of the above conditions strikes me as wildly improbable. Fulfilling all of them together seems like just plain too much to hope for, so I think I'll stick with search projects that have a better chance of succeeding.

That said, I would love to see a "fluff database" with a few billion records in it -- I'm sure one could find some impressive cycles, some variant of A --> B --> C --> A as Alan Hensel described... but it seems like you'd have to look at millions of different cycles before you found one where all the gliders would line up properly.

I would be most happy if someone would prove me wrong about this.

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

Re: "Fast Salvos"

Post by codeholic » September 4th, 2013, 1:11 am

I've found a (-15, -15) block pusher with 5 gliders.

Code: Select all

x = 27, y = 35, rule = B3/S23
2o$2o7$6b2o$6bobo$6bo6$10bo$9b2o$9bobo3$18b2o$18bobo4bo$18bo5b2o$24bob
o8$11b3o$11bo$12bo!
EDIT: By the way, there are two alternative (-3, 5) 2-glider block pushers that could be used (but they stabilize later):

Code: Select all

x = 61, y = 19, rule = B3/S23
2o48b2o$2o48b2o7$6b2o46b2o$6bobo45bobo$6bo47bo4$59b2o$58b2o$10b2o48bo$
10bobo$10bo!
EDIT: The second alternative is somewhat special, because the return glider does not interact with any salvos, that might be still in flight. Though probably it does not matter for your goal.

Code: Select all

x = 77, y = 85, rule = B3/S23
2o$2o7$4b2o$4bobo$4bo4$9b2o$8b2o$10bo5$18b2o$18bobo4bo$18bo5b2o$24bobo
8$11b3o$11bo$12bo24$54b2o$54bobo$54bo4$59b2o$58b2o$60bo5$68b2o$68bobo
4bo$68bo5b2o$74bobo8$61b3o$61bo$62bo!
Last edited by codeholic on September 4th, 2013, 3:28 am, edited 2 times in total.
Ivan Fomichev

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

Re: "Fast Salvos"

Post by codeholic » September 4th, 2013, 1:28 am

dvgrn wrote:Alan Hensel mentioned something very much like this a few months ago -- he called them "fluff relays".
Well, the idea with one glider is not new. Gabriel Nivasch even wrote a script once, that searches for such kind of collisions: http://www.gabrielnivasch.org/fun/life/

I wondered, if another approach could be more promising, namely instead of getting variance on the stable part of the pattern, to get it from different glider constellations, and use a single block as a target. But probably, it's not.
Ivan Fomichev

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

Re: "Fast Salvos"

Post by codeholic » September 6th, 2013, 2:06 am

Another approach gave other 5 5-glider (-15, -15) block pushers:

Code: Select all

x = 248, y = 53, rule = B3/S23
2o48b2o48b2o48b2o48b2o$2o7b2o39b2o48b2o48b2o48b2o$9bobo44b2o98b2o48b2o
$9bo46bobo47b2o48bobo47bobo$28bo27bo49bobo47bo49bo$27b2o77bo$b3o23bobo
86b3o$bo114bo$2bo114bo3$68b3o103b3o41b3o$68bo105bo43bo$63b2o4bo105bo
37b2o4bo$63bobo147bobo$63bo149bo5$173b3o$121bo51bo$120b2o52bo$120bobo
3$40b2o$40bobo$40bo3$95b2o148b2o$95bobo147bobo$95bo149bo2$39b3o$39bo
110b2o$40bo109bobo$150bo2$94b3o147b3o$94bo110b2o37bo$95bo109bobo37bo$
205bo2$149b3o$149bo$150bo3$204b3o$204bo$205bo!
I found no 5-glider (-23, -23) block pushers, but plenty of 6-glider pushers, e. g.

Code: Select all

x = 57, y = 23, rule = B3/S23
12b3o$2o10bo$2o11bo$6b2o$6bobo$6bo4$20bo$19b2o$19bobo7$36b2o$36bobo7b
2o$36bo8b2o7b2o$47bo6bobo$54bo!
If you're interested in more of them, I'll write a script to display them.
Ivan Fomichev

User avatar
Extrementhusiast
Posts: 1966
Joined: June 16th, 2009, 11:24 pm
Location: USA

Re: "Fast Salvos"

Post by Extrementhusiast » September 6th, 2013, 6:44 pm

This is the result.
I Like My Heisenburps! (and others)

M. I. Wright
Posts: 372
Joined: June 13th, 2015, 12:04 pm

Re: "Fast Salvos"

Post by M. I. Wright » August 11th, 2015, 5:05 pm

Is necroposting frowned upon at these forums? This post is relevant to the topic, so I think it'd be better to bump this thread than make a new one. I've tried using gencols for these, but -filt, -leq and -geq seem to have no effect on the output - I'm using the Windows executable dvgrn posted in 2013 - and I'd rather not have to manually search through the results.

I'm currently looking for both a two-unit-push salvo and a two-unit pull that use only two gliders and don't return anything. There are probably hundreds of them, but I haven't found anything by hand.

Also, what's the largest distance that a block can be both pushed and pulled with three gliders (again without a return glider)? It would help if it were a factor or multiple of a common period, specifically 46 or 30.

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

Re: "Fast Salvos"

Post by dvgrn » August 13th, 2015, 2:35 pm

M. I. Wright wrote:I'm currently looking for both a two-unit-push salvo and a two-unit pull that use only two gliders and don't return anything. There are probably hundreds of them, but I haven't found anything by hand.
I don't think there are hundreds -- hundreds of block moves, certainly, but not ones that keep the block on the same diagonal. The two-glider search space isn't big enough, though the three-glider space should be.
M. I. Wright wrote:Also, what's the largest distance that a block can be both pushed and pulled with three gliders (again without a return glider)? It would help if it were a factor or multiple of a common period, specifically 46 or 30.
Paul Chapman did some work along these general lines, several years ago, but the idea quickly changed to allow multiple "cycles" of gliders, as long as they came in the right-sized groups and on the same three lanes. Then it turned out that triplets of gliders were overkill -- you could make a Geminoid construction arm with pairs of gliders on just two lanes.

I wouldn't be surprised if there's a PUSH3 with three gliders (PULL3 is trivial). But PUSH2 and PULL2 are much more likely to exist, and PUSH1 and PULL1 are the only ones I'd really bet on. PULL6 and (especially) PUSH6 seem a little overoptimistic to hope for, from just three gliders... not that I would mind being pleasantly surprised.

I'm curious about what went wrong when you tried gencols -- and it's probably time for me to remind myself how gencols works, anyway. Here goes:

If there's going to be a push or pull reaction, one of the gliders will have to hit the block. So let's start there.

First I tried

gencols -pat obj/block.life obj/glider_nw.life -tc 20 20 -filt 1 > glider-block-collisions.life

but that was wrong -- the fifth line gave me a "reaction" where the glider missed the block completely. Eventually I figured out that gencols only seems to apply filters and -geq and -leq parameters when there's a "-gen" target setting. So you get better results from

gencols -pat obj/block.life obj/glider_nw.life -tc 20 20 -filt 12 -gen 256 > glider-block-collisions.life

The output format is a little annoying -- you get the final pattern packed onto the same line with the initial pattern, separated by a space. I use a text editor with regular-expression search and replace to delete everything after the space in all the lines, when I don't need that information -- or delete everything before the space, if I only want to work with the output. Here's a cleaned-up version to use for the next step:

glider-block-collisions.life:

Code: Select all

**!**!!!!!!!....**!....*.*!....*!
**!**!!!!!!!......**!......*.*!......*!
**!**!!!!!!!...**!...*.*!...*!
**!**!!!!!!!.....**!.....*.*!.....*!
**!**!!!!!!!.......**!.......*.*!.......*!
Hit those five reactions with another NW glider:

gencols -pat glider-block-collisions.life obj/glider_nw.life -tc 20 80 -filt 1 -nph 4 -geq 4 -leq 4 -gen 512 > block-outputs.life

and you get 352 passing reactions, many of which are trivial variants of the 3-step two-glider block pull (and a few more are tubs, which gencols doesn't have a filter to exclude):

Code: Select all

x = 29, y = 10258, rule = LifeHistory
2C$2C2$9.2C$9.C.C$9.C3$4.2C$4.C.C$4.C12$2C$2C7$4.2C$4.C.C$4.C3$3.2C$
3.C.C$3.C12$2C$2C7$4.2C$4.C.C$4.C2$9.2C$9.C.C$9.C12$2C$2C7$4.2C$4.C.C
$4.C$10.2C$10.C.C$10.C12$2C$2C7$4.2C$4.C.C$4.C5$3.2C$3.C.C$3.C12$2C$
2C7$4.2C$4.C.C$4.C5$5.2C$5.C.C$5.C12$2C$2C7$4.2C$4.C.C$4.C4$10.2C$10.
C.C$10.C12$2C$2C7$4.2C$4.C.C$4.C3$8.2C$7.2C$9.C12$2C$2C7$4.2C$4.C.C$
4.C4$9.2C$8.2C$10.C12$2C$2C7$4.2C$4.C.C$4.C5$8.2C$7.2C$9.C12$2C$2C7$
4.2C$4.C.C$4.C4$4.3C$4.C$5.C12$2C$2C7$4.2C$4.C.C$4.C3$11.3C$11.C$12.C
12$2C$2C6$11.3C$4.2C5.C$4.C.C5.C$4.C12$2C$2C7$4.2C$4.C.C$4.C7$8.3C$8.
C$9.C12$2C$2C5$10.C$9.2C$4.2C3.C.C$4.C.C$4.C12$2C$2C6$10.C$4.2C3.2C$
4.C.C2.C.C$4.C12$2C$2C7$4.2C4.C$4.C.C2.2C$4.C4.C.C12$2C$2C7$4.2C$4.C.
C5.C$4.C6.2C$11.C.C12$2C$2C7$6.2C$6.C.C$6.C3$8.2C$8.C.C$8.C12$2C$2C3$
11.2C$11.C.C$11.C2$6.2C$6.C.C$6.C12$2C$2C7$6.2C4.2C$6.C.C3.C.C$6.C5.C
12$2C$2C7$6.2C$6.C.C4.2C$6.C6.C.C$13.C12$2C$2C6$15.2C$6.2C7.C.C$6.C.C
6.C$6.C12$2C$2C7$6.2C$6.C.C$6.C4$13.2C$13.C.C$13.C12$2C$2C7$6.2C$6.C.
C$6.C6$10.2C$10.C.C$10.C12$2C$2C7$6.2C$6.C.C$6.C6$6.2C$6.C.C$6.C12$2C
$2C7$6.2C$6.C.C7.2C$6.C9.C.C$16.C12$2C$2C7$6.2C$6.C.C$6.C6$11.2C$11.C
.C$11.C12$2C$2C7$6.2C$6.C.C$6.C3$16.2C$16.C.C$16.C12$2C$2C7$6.2C$6.C.
C$6.C7$8.2C$8.C.C$8.C12$2C$2C7$6.2C$6.C.C$6.C8$8.2C$8.C.C$8.C12$2C$2C
7$6.2C$6.C.C$6.C4$16.2C$16.C.C$16.C12$2C$2C7$6.2C$6.C.C8.2C$6.C10.C.C
$17.C12$2C$2C7$6.2C$6.C.C$6.C2$17.2C$17.C.C$17.C12$2C$2C7$6.2C$6.C.C$
6.C9$11.2C$11.C.C$11.C12$2C$2C7$6.2C$6.C.C$6.C7$15.2C$15.C.C$15.C12$
2C$2C7$6.2C$6.C.C$6.C5$3.2C$3.C.C$3.C12$2C$2C7$6.2C$6.C.C$6.C11$12.2C
$12.C.C$12.C12$2C$2C7$6.2C$6.C.C$6.C10$15.2C$15.C.C$15.C12$2C$2C7$6.
2C$6.C.C$6.C10$17.2C$17.C.C$17.C12$2C$2C7$6.2C$6.C.C$6.C3$10.2C$9.2C$
11.C12$2C$2C7$6.2C$6.C.C$6.C2$11.2C$10.2C$12.C12$2C$2C6$15.2C$6.2C6.
2C$6.C.C7.C$6.C12$2C$2C5$14.2C$13.2C$6.2C7.C$6.C.C$6.C12$2C$2C7$6.2C$
6.C.C$6.C4$4.2C$3.2C$5.C12$2C$2C7$6.2C$6.C.C$6.C5$5.2C$4.2C$6.C12$2C$
2C7$6.2C$6.C.C$6.C6$7.2C$6.2C$8.C12$2C$2C7$6.2C$6.C.C$6.C7$10.2C$9.2C
$11.C12$2C$2C7$6.2C$6.C.C$6.C6$6.2C$5.2C$7.C12$2C$2C7$6.2C$6.C.C7.2C$
6.C8.2C$17.C12$2C$2C7$6.2C$6.C.C$6.C7$11.2C$10.2C$12.C12$2C$2C7$6.2C$
6.C.C$6.C7$13.2C$12.2C$14.C12$2C$2C7$6.2C$6.C.C$6.C6$15.2C$14.2C$16.C
12$2C$2C7$6.2C$6.C.C$6.C7$5.2C$4.2C$6.C12$2C$2C7$6.2C$6.C.C$6.C9$7.2C
$6.2C$8.C12$2C$2C7$6.2C$6.C.C$6.C10$10.2C$9.2C$11.C12$2C$2C7$6.2C$6.C
.C$6.C8$15.2C$14.2C$16.C12$2C$2C7$6.2C$6.C.C$6.C8$17.2C$16.2C$18.C12$
2C$2C7$6.2C$6.C.C$6.C9$17.2C$16.2C$18.C12$2C$2C7$6.2C$6.C.C$6.C4$6.3C
$6.C$7.C12$2C$2C7$6.2C$6.C.C$6.C5.3C$12.C$13.C12$2C$2C7$6.2C$6.C.C$6.
C3$2.3C$2.C$3.C12$2C$2C7$6.2C$6.C.C$6.C$15.3C$15.C$16.C12$2C$2C7$6.2C
$6.C.C$6.C4$15.3C$15.C$16.C12$2C$2C7$6.2C$6.C.C$6.C5$3.3C$3.C$4.C12$
2C$2C7$6.2C$6.C.C$6.C8$10.3C$10.C$11.C12$2C$2C7$6.2C$6.C.C$6.C9$10.3C
$10.C$11.C12$2C$2C7$6.2C$6.C.C$6.C10$11.3C$11.C$12.C12$2C$2C7$6.2C$6.
C.C$6.C10$8.3C$8.C$9.C12$2C$2C7$6.2C$6.C.C$6.C12$9.3C$9.C$10.C12$2C$
2C7$6.2C$6.C.C$6.C11$15.3C$15.C$16.C12$2C$2C3$12.C$11.2C$11.C.C2$6.2C
$6.C.C$6.C12$2C$2C7$6.2C4.C$6.C.C2.2C$6.C4.C.C12$2C$2C7$6.2C$6.C.C3.C
$6.C4.2C$11.C.C12$2C$2C7$6.2C$6.C.C$6.C3$10.C$9.2C$9.C.C12$2C$2C7$6.
2C$6.C.C$6.C4$6.C$5.2C$5.C.C12$2C$2C7$6.2C$6.C.C$6.C5$9.C$8.2C$8.C.C
12$2C$2C7$6.2C$6.C.C$6.C5$13.C$12.2C$12.C.C12$2C$2C7$6.2C$6.C.C$6.C5$
12.C$11.2C$11.C.C12$2C$2C7$6.2C$6.C.C$6.C4$14.C$13.2C$13.C.C12$2C$2C
7$6.2C$6.C.C$6.C6$10.C$9.2C$9.C.C12$2C$2C7$6.2C$6.C.C$6.C8$10.C$9.2C$
9.C.C12$2C$2C7$6.2C$6.C.C$6.C5$16.C$15.2C$15.C.C12$2C$2C7$6.2C$6.C.C$
6.C6$5.C$4.2C$4.C.C12$2C$2C7$6.2C$6.C.C$6.C3$18.C$17.2C$17.C.C12$2C$
2C7$6.2C$6.C.C$6.C9$9.C$8.2C$8.C.C12$2C$2C7$6.2C$6.C.C$6.C10$16.C$15.
2C$15.C.C12$2C$2C7$6.2C$6.C.C$6.C7$17.C$16.2C$16.C.C12$2C$2C7$6.2C$6.
C.C$6.C12$14.C$13.2C$13.C.C12$2C$2C7$3.2C$3.C.C$3.C4.2C$8.C.C$8.C12$
2C$2C7$3.2C$3.C.C$3.C3$.2C$.C.C$.C12$2C$2C7$3.2C$3.C.C$3.C3$2.2C$2.C.
C$2.C12$2C$2C7$3.2C$3.C.C$3.C$9.2C$9.C.C$9.C12$2C$2C6$12.2C$3.2C7.C.C
$3.C.C6.C$3.C12$2C$2C7$3.2C$3.C.C$3.C3$7.2C$7.C.C$7.C12$2C$2C7$3.2C8.
2C$3.C.C7.C.C$3.C9.C12$2C$2C7$3.2C$3.C.C$3.C4$8.2C$8.C.C$8.C12$2C$2C
7$3.2C$3.C.C8.2C$3.C10.C.C$14.C12$2C$2C7$3.2C$3.C.C$3.C5$9.2C$9.C.C$
9.C12$2C$2C7$3.2C$3.C.C$3.C11.2C$15.C.C$15.C12$2C$2C7$3.2C$3.C.C$3.C
6$10.2C$10.C.C$10.C12$2C$2C7$3.2C$3.C.C$3.C$16.2C$16.C.C$16.C12$2C$2C
7$3.2C$3.C.C$3.C7$11.2C$11.C.C$11.C12$2C$2C7$3.2C$3.C.C$3.C2$17.2C$
17.C.C$17.C12$2C$2C7$3.2C$3.C.C$3.C8$12.2C$12.C.C$12.C12$2C$2C7$3.2C$
3.C.C$3.C3$18.2C$18.C.C$18.C12$2C$2C7$3.2C$3.C.C$3.C9$13.2C$13.C.C$
13.C12$2C$2C7$3.2C$3.C.C$3.C4$19.2C$19.C.C$19.C12$2C$2C7$3.2C$3.C.C$
3.C10$14.2C$14.C.C$14.C12$2C$2C7$3.2C$3.C.C$3.C5$20.2C$20.C.C$20.C12$
2C$2C7$3.2C$3.C.C$3.C11$15.2C$15.C.C$15.C12$2C$2C7$3.2C$3.C.C$3.C6$
21.2C$21.C.C$21.C12$2C$2C7$3.2C$3.C.C$3.C12$16.2C$16.C.C$16.C12$2C$2C
7$3.2C$3.C.C$3.C7$22.2C$22.C.C$22.C12$2C$2C7$3.2C$3.C.C$3.C13$17.2C$
17.C.C$17.C12$2C$2C7$3.2C$3.C.C$3.C8$23.2C$23.C.C$23.C12$2C$2C7$3.2C$
3.C.C$3.C14$18.2C$18.C.C$18.C12$2C$2C7$3.2C$3.C.C$3.C9$24.2C$24.C.C$
24.C12$2C$2C7$3.2C$3.C.C$3.C15$19.2C$19.C.C$19.C12$2C$2C7$3.2C$3.C.C$
3.C$8.2C$7.2C$9.C12$2C$2C7$3.2C5.2C$3.C.C3.2C$3.C7.C12$2C$2C6$12.2C$
3.2C6.2C$3.C.C7.C$3.C12$2C$2C7$3.2C$3.C.C$3.C3$7.2C$6.2C$8.C12$2C$2C
7$3.2C8.2C$3.C.C6.2C$3.C10.C12$2C$2C7$3.2C$3.C.C$3.C4$8.2C$7.2C$9.C
12$2C$2C7$3.2C$3.C.C8.2C$3.C9.2C$15.C12$2C$2C7$3.2C$3.C.C$3.C5$9.2C$
8.2C$10.C12$2C$2C7$3.2C$3.C.C$3.C11.2C$14.2C$16.C12$2C$2C7$3.2C$3.C.C
$3.C6$10.2C$9.2C$11.C12$2C$2C7$3.2C$3.C.C$3.C$16.2C$15.2C$17.C12$2C$
2C7$3.2C$3.C.C$3.C7$11.2C$10.2C$12.C12$2C$2C7$3.2C$3.C.C$3.C2$17.2C$
16.2C$18.C12$2C$2C7$3.2C$3.C.C$3.C8$12.2C$11.2C$13.C12$2C$2C7$3.2C$3.
C.C$3.C3$18.2C$17.2C$19.C12$2C$2C7$3.2C$3.C.C$3.C9$13.2C$12.2C$14.C
12$2C$2C7$3.2C$3.C.C$3.C4$19.2C$18.2C$20.C12$2C$2C7$3.2C$3.C.C$3.C10$
14.2C$13.2C$15.C12$2C$2C7$3.2C$3.C.C$3.C5$20.2C$19.2C$21.C12$2C$2C7$
3.2C$3.C.C$3.C11$15.2C$14.2C$16.C12$2C$2C7$3.2C$3.C.C$3.C6$21.2C$20.
2C$22.C12$2C$2C7$3.2C$3.C.C$3.C12$16.2C$15.2C$17.C12$2C$2C7$3.2C$3.C.
C$3.C7$22.2C$21.2C$23.C12$2C$2C7$3.2C$3.C.C$3.C13$17.2C$16.2C$18.C12$
2C$2C7$3.2C$3.C.C$3.C8$23.2C$22.2C$24.C12$2C$2C7$3.2C$3.C.C$3.C14$18.
2C$17.2C$19.C12$2C$2C7$3.2C$3.C.C$3.C9$24.2C$23.2C$25.C12$2C$2C7$3.2C
$3.C.C$3.C15$19.2C$18.2C$20.C12$2C$2C4$9.3C$9.C$10.C$3.2C$3.C.C$3.C
12$2C$2C7$3.2C$3.C.C$3.C6.3C$10.C$11.C12$2C$2C7$3.2C$3.C.C$3.C3$6.3C$
6.C$7.C12$2C$2C6$11.3C$3.2C6.C$3.C.C6.C$3.C12$2C$2C7$3.2C7.3C$3.C.C6.
C$3.C9.C12$2C$2C7$3.2C$3.C.C$3.C4$7.3C$7.C$8.C12$2C$2C7$3.2C$3.C.C7.
3C$3.C9.C$14.C12$2C$2C7$3.2C$3.C.C$3.C5$8.3C$8.C$9.C12$2C$2C7$3.2C$3.
C.C$3.C10.3C$14.C$15.C12$2C$2C7$3.2C$3.C.C$3.C6$9.3C$9.C$10.C12$2C$2C
7$3.2C$3.C.C$3.C$15.3C$15.C$16.C12$2C$2C7$3.2C$3.C.C$3.C7$10.3C$10.C$
11.C12$2C$2C7$3.2C$3.C.C$3.C2$16.3C$16.C$17.C12$2C$2C7$3.2C$3.C.C$3.C
8$11.3C$11.C$12.C12$2C$2C7$3.2C$3.C.C$3.C3$17.3C$17.C$18.C12$2C$2C7$
3.2C$3.C.C$3.C9$12.3C$12.C$13.C12$2C$2C7$3.2C$3.C.C$3.C4$18.3C$18.C$
19.C12$2C$2C7$3.2C$3.C.C$3.C10$13.3C$13.C$14.C12$2C$2C7$3.2C$3.C.C$3.
C5$19.3C$19.C$20.C12$2C$2C7$3.2C$3.C.C$3.C11$14.3C$14.C$15.C12$2C$2C
7$3.2C$3.C.C$3.C6$20.3C$20.C$21.C12$2C$2C7$3.2C$3.C.C$3.C12$15.3C$15.
C$16.C12$2C$2C7$3.2C$3.C.C$3.C7$21.3C$21.C$22.C12$2C$2C7$3.2C$3.C.C$
3.C13$16.3C$16.C$17.C12$2C$2C7$3.2C$3.C.C$3.C8$22.3C$22.C$23.C12$2C$
2C7$3.2C$3.C.C$3.C14$17.3C$17.C$18.C12$2C$2C7$3.2C$3.C.C$3.C9$23.3C$
23.C$24.C12$2C$2C7$3.2C$3.C.C$3.C15$18.3C$18.C$19.C12$2C$2C7$3.2C$3.C
.C$3.C10$24.3C$24.C$25.C12$2C$2C4$10.C$9.2C$9.C.C$3.2C$3.C.C$3.C12$2C
$2C7$3.2C$3.C.C4.C$3.C5.2C$9.C.C12$2C$2C4$11.C$10.2C$10.C.C$3.2C$3.C.
C$3.C12$2C$2C5$12.C$11.2C$3.2C6.C.C$3.C.C$3.C12$2C$2C6$13.C$3.2C7.2C$
3.C.C6.C.C$3.C12$2C$2C7$3.2C$3.C.C$3.C3$8.C$7.2C$7.C.C12$2C$2C7$3.2C
9.C$3.C.C7.2C$3.C9.C.C12$2C$2C7$3.2C$3.C.C$3.C4$9.C$8.2C$8.C.C12$2C$
2C7$3.2C$3.C.C9.C$3.C10.2C$14.C.C12$2C$2C7$3.2C$3.C.C$3.C5$10.C$9.2C$
9.C.C12$2C$2C7$3.2C$3.C.C$3.C12.C$15.2C$15.C.C12$2C$2C7$3.2C$3.C.C$3.
C6$11.C$10.2C$10.C.C12$2C$2C7$3.2C$3.C.C$3.C$17.C$16.2C$16.C.C12$2C$
2C7$3.2C$3.C.C$3.C7$12.C$11.2C$11.C.C12$2C$2C7$3.2C$3.C.C$3.C2$18.C$
17.2C$17.C.C12$2C$2C7$3.2C$3.C.C$3.C8$13.C$12.2C$12.C.C12$2C$2C7$3.2C
$3.C.C$3.C3$19.C$18.2C$18.C.C12$2C$2C7$3.2C$3.C.C$3.C9$14.C$13.2C$13.
C.C12$2C$2C7$3.2C$3.C.C$3.C4$20.C$19.2C$19.C.C12$2C$2C7$3.2C$3.C.C$3.
C10$15.C$14.2C$14.C.C12$2C$2C7$3.2C$3.C.C$3.C5$21.C$20.2C$20.C.C12$2C
$2C7$3.2C$3.C.C$3.C11$16.C$15.2C$15.C.C12$2C$2C7$3.2C$3.C.C$3.C6$22.C
$21.2C$21.C.C12$2C$2C7$3.2C$3.C.C$3.C12$17.C$16.2C$16.C.C12$2C$2C7$3.
2C$3.C.C$3.C7$23.C$22.2C$22.C.C12$2C$2C7$3.2C$3.C.C$3.C13$18.C$17.2C$
17.C.C12$2C$2C7$3.2C$3.C.C$3.C8$24.C$23.2C$23.C.C12$2C$2C7$3.2C$3.C.C
$3.C14$19.C$18.2C$18.C.C12$2C$2C7$3.2C$3.C.C$3.C9$25.C$24.2C$24.C.C
12$2C$2C6$11.2C$5.2C4.C.C$5.C.C3.C$5.C12$2C$2C7$5.2C$5.C.C$5.C3$4.2C$
4.C.C$4.C12$2C$2C7$5.2C$5.C.C$5.C3$10.2C$10.C.C$10.C12$2C$2C7$5.2C$5.
C.C$5.C6$7.2C$7.C.C$7.C12$2C$2C7$5.2C$5.C.C$5.C7$9.2C$9.C.C$9.C12$2C$
2C7$5.2C$5.C.C$5.C8$3.2C$3.C.C$3.C12$.2C$.2C7$.2C3.2C$2C4.C.C$2.C3.C
12$2C$2C7$5.2C$5.C.C$5.C4$8.2C$7.2C$9.C12$2C$2C7$5.2C$5.C.C$5.C4$10.
2C$9.2C$11.C12$2C$2C7$5.2C$5.C.C$5.C5$7.2C$6.2C$8.C12$2C$2C7$5.2C$5.C
.C$5.C5$6.2C$5.2C$7.C12$2C$2C7$5.2C$5.C.C4.2C$5.C5.2C$13.C12$2C$2C7$
5.2C$5.C.C$5.C6$10.2C$9.2C$11.C12$2C$2C7$5.2C$5.C.C$5.C8$6.2C$5.2C$7.
C12$2C$2C7$5.2C$5.C.C$5.C4$16.2C$15.2C$17.C12$2C$2C7$5.2C$5.C.C$5.C
13$10.2C$9.2C$11.C12$2C$2C7$5.2C$5.C.C$5.C4$6.3C$6.C$7.C12$2C$2C7$5.
2C$5.C.C$5.C4$9.3C$9.C$10.C12$2C$2C7$5.2C$5.C.C$5.C6$8.3C$8.C$9.C12$
2C$2C7$5.2C$5.C.C$5.C6$9.3C$9.C$10.C12$2C$2C7$5.2C$5.C.C$5.C6$11.3C$
11.C$12.C12$2C$2C7$5.2C$5.C.C$5.C7$13.3C$13.C$14.C12$2C$2C7$5.2C$5.C.
C$5.C5$14.3C$14.C$15.C12$2C$2C7$5.2C$5.C.C$5.C3$15.3C$15.C$16.C12$2C$
2C7$5.2C$5.C.C$5.C4$8.C$7.2C$7.C.C12$2C$2C7$5.2C$5.C.C$5.C8$5.C$4.2C$
4.C.C12$2C$2C7$5.2C$5.C.C$5.C12$7.C$6.2C$6.C.C12$2C$2C7$5.2C$5.C.C$5.
C12$12.C$11.2C$11.C.C12$2C$2C7$5.2C$5.C.C$5.C13$11.C$10.2C$10.C.C12$
2C$2C7$5.2C$5.C.C$5.C12$27.C$26.2C$26.C.C12$2C$2C7$5.2C$5.C.C$5.C18$
21.C$20.2C$20.C.C12$2C$2C7$3.2C$3.C.C$3.C4.2C$8.C.C$8.C12$2C$2C7$3.2C
$3.C.C$3.C3$.2C$.C.C$.C12$2C$2C7$3.2C$3.C.C$3.C3$2.2C$2.C.C$2.C12$2C$
2C7$3.2C$3.C.C$3.C$9.2C$9.C.C$9.C12$2C$2C6$12.2C$3.2C7.C.C$3.C.C6.C$
3.C12$2C$2C7$3.2C$3.C.C$3.C3$7.2C$7.C.C$7.C12$2C$2C7$3.2C8.2C$3.C.C7.
C.C$3.C9.C12$2C$2C7$3.2C$3.C.C$3.C4$8.2C$8.C.C$8.C12$2C$2C7$3.2C$3.C.
C8.2C$3.C10.C.C$14.C12$2C$2C7$3.2C$3.C.C$3.C5$9.2C$9.C.C$9.C12$2C$2C
7$3.2C$3.C.C$3.C11.2C$15.C.C$15.C12$2C$2C7$3.2C$3.C.C$3.C6$10.2C$10.C
.C$10.C12$2C$2C7$3.2C$3.C.C$3.C$16.2C$16.C.C$16.C12$2C$2C7$3.2C$3.C.C
$3.C7$11.2C$11.C.C$11.C12$2C$2C7$3.2C$3.C.C$3.C2$17.2C$17.C.C$17.C12$
2C$2C7$3.2C$3.C.C$3.C8$12.2C$12.C.C$12.C12$2C$2C7$3.2C$3.C.C$3.C3$18.
2C$18.C.C$18.C12$2C$2C7$3.2C$3.C.C$3.C9$13.2C$13.C.C$13.C12$2C$2C7$3.
2C$3.C.C$3.C4$19.2C$19.C.C$19.C12$2C$2C7$3.2C$3.C.C$3.C10$14.2C$14.C.
C$14.C12$2C$2C7$3.2C$3.C.C$3.C5$20.2C$20.C.C$20.C12$2C$2C7$3.2C$3.C.C
$3.C11$15.2C$15.C.C$15.C12$2C$2C7$3.2C$3.C.C$3.C6$21.2C$21.C.C$21.C
12$2C$2C7$3.2C$3.C.C$3.C12$16.2C$16.C.C$16.C12$2C$2C7$3.2C$3.C.C$3.C
7$22.2C$22.C.C$22.C12$2C$2C7$3.2C$3.C.C$3.C13$17.2C$17.C.C$17.C12$2C$
2C7$3.2C$3.C.C$3.C8$23.2C$23.C.C$23.C12$2C$2C7$3.2C$3.C.C$3.C14$18.2C
$18.C.C$18.C12$2C$2C7$3.2C$3.C.C$3.C9$24.2C$24.C.C$24.C12$2C$2C7$3.2C
$3.C.C$3.C15$19.2C$19.C.C$19.C12$2C$2C7$3.2C$3.C.C$3.C$8.2C$7.2C$9.C
12$2C$2C7$3.2C5.2C$3.C.C3.2C$3.C7.C12$2C$2C6$12.2C$3.2C6.2C$3.C.C7.C$
3.C12$2C$2C7$3.2C$3.C.C$3.C3$7.2C$6.2C$8.C12$2C$2C7$3.2C8.2C$3.C.C6.
2C$3.C10.C12$2C$2C7$3.2C$3.C.C$3.C4$8.2C$7.2C$9.C12$2C$2C7$3.2C$3.C.C
8.2C$3.C9.2C$15.C12$2C$2C7$3.2C$3.C.C$3.C5$9.2C$8.2C$10.C12$2C$2C7$3.
2C$3.C.C$3.C11.2C$14.2C$16.C12$2C$2C7$3.2C$3.C.C$3.C6$10.2C$9.2C$11.C
12$2C$2C7$3.2C$3.C.C$3.C$16.2C$15.2C$17.C12$2C$2C7$3.2C$3.C.C$3.C7$
11.2C$10.2C$12.C12$2C$2C7$3.2C$3.C.C$3.C2$17.2C$16.2C$18.C12$2C$2C7$
3.2C$3.C.C$3.C8$12.2C$11.2C$13.C12$2C$2C7$3.2C$3.C.C$3.C3$18.2C$17.2C
$19.C12$2C$2C7$3.2C$3.C.C$3.C9$13.2C$12.2C$14.C12$2C$2C7$3.2C$3.C.C$
3.C4$19.2C$18.2C$20.C12$2C$2C7$3.2C$3.C.C$3.C10$14.2C$13.2C$15.C12$2C
$2C7$3.2C$3.C.C$3.C5$20.2C$19.2C$21.C12$2C$2C7$3.2C$3.C.C$3.C11$15.2C
$14.2C$16.C12$2C$2C7$3.2C$3.C.C$3.C6$21.2C$20.2C$22.C12$2C$2C7$3.2C$
3.C.C$3.C12$16.2C$15.2C$17.C12$2C$2C7$3.2C$3.C.C$3.C7$22.2C$21.2C$23.
C12$2C$2C7$3.2C$3.C.C$3.C13$17.2C$16.2C$18.C12$2C$2C7$3.2C$3.C.C$3.C
8$23.2C$22.2C$24.C12$2C$2C7$3.2C$3.C.C$3.C14$18.2C$17.2C$19.C12$2C$2C
7$3.2C$3.C.C$3.C9$24.2C$23.2C$25.C12$2C$2C7$3.2C$3.C.C$3.C15$19.2C$
18.2C$20.C12$2C$2C4$9.3C$9.C$10.C$3.2C$3.C.C$3.C12$2C$2C7$3.2C$3.C.C$
3.C6.3C$10.C$11.C12$2C$2C7$3.2C$3.C.C$3.C3$6.3C$6.C$7.C12$2C$2C6$11.
3C$3.2C6.C$3.C.C6.C$3.C12$2C$2C7$3.2C7.3C$3.C.C6.C$3.C9.C12$2C$2C7$3.
2C$3.C.C$3.C4$7.3C$7.C$8.C12$2C$2C7$3.2C$3.C.C7.3C$3.C9.C$14.C12$2C$
2C7$3.2C$3.C.C$3.C5$8.3C$8.C$9.C12$2C$2C7$3.2C$3.C.C$3.C10.3C$14.C$
15.C12$2C$2C7$3.2C$3.C.C$3.C6$9.3C$9.C$10.C12$2C$2C7$3.2C$3.C.C$3.C$
15.3C$15.C$16.C12$2C$2C7$3.2C$3.C.C$3.C7$10.3C$10.C$11.C12$2C$2C7$3.
2C$3.C.C$3.C2$16.3C$16.C$17.C12$2C$2C7$3.2C$3.C.C$3.C8$11.3C$11.C$12.
C12$2C$2C7$3.2C$3.C.C$3.C3$17.3C$17.C$18.C12$2C$2C7$3.2C$3.C.C$3.C9$
12.3C$12.C$13.C12$2C$2C7$3.2C$3.C.C$3.C4$18.3C$18.C$19.C12$2C$2C7$3.
2C$3.C.C$3.C10$13.3C$13.C$14.C12$2C$2C7$3.2C$3.C.C$3.C5$19.3C$19.C$
20.C12$2C$2C7$3.2C$3.C.C$3.C11$14.3C$14.C$15.C12$2C$2C7$3.2C$3.C.C$3.
C6$20.3C$20.C$21.C12$2C$2C7$3.2C$3.C.C$3.C12$15.3C$15.C$16.C12$2C$2C
7$3.2C$3.C.C$3.C7$21.3C$21.C$22.C12$2C$2C7$3.2C$3.C.C$3.C13$16.3C$16.
C$17.C12$2C$2C7$3.2C$3.C.C$3.C8$22.3C$22.C$23.C12$2C$2C7$3.2C$3.C.C$
3.C14$17.3C$17.C$18.C12$2C$2C7$3.2C$3.C.C$3.C9$23.3C$23.C$24.C12$2C$
2C7$3.2C$3.C.C$3.C15$18.3C$18.C$19.C12$2C$2C7$3.2C$3.C.C$3.C10$24.3C$
24.C$25.C12$2C$2C4$10.C$9.2C$9.C.C$3.2C$3.C.C$3.C12$2C$2C7$3.2C$3.C.C
4.C$3.C5.2C$9.C.C12$2C$2C4$11.C$10.2C$10.C.C$3.2C$3.C.C$3.C12$2C$2C5$
12.C$11.2C$3.2C6.C.C$3.C.C$3.C12$2C$2C6$13.C$3.2C7.2C$3.C.C6.C.C$3.C
12$2C$2C7$3.2C$3.C.C$3.C3$8.C$7.2C$7.C.C12$2C$2C7$3.2C9.C$3.C.C7.2C$
3.C9.C.C12$2C$2C7$3.2C$3.C.C$3.C4$9.C$8.2C$8.C.C12$2C$2C7$3.2C$3.C.C
9.C$3.C10.2C$14.C.C12$2C$2C7$3.2C$3.C.C$3.C5$10.C$9.2C$9.C.C12$2C$2C
7$3.2C$3.C.C$3.C12.C$15.2C$15.C.C12$2C$2C7$3.2C$3.C.C$3.C6$11.C$10.2C
$10.C.C12$2C$2C7$3.2C$3.C.C$3.C$17.C$16.2C$16.C.C12$2C$2C7$3.2C$3.C.C
$3.C7$12.C$11.2C$11.C.C12$2C$2C7$3.2C$3.C.C$3.C2$18.C$17.2C$17.C.C12$
2C$2C7$3.2C$3.C.C$3.C8$13.C$12.2C$12.C.C12$2C$2C7$3.2C$3.C.C$3.C3$19.
C$18.2C$18.C.C12$2C$2C7$3.2C$3.C.C$3.C9$14.C$13.2C$13.C.C12$2C$2C7$3.
2C$3.C.C$3.C4$20.C$19.2C$19.C.C12$2C$2C7$3.2C$3.C.C$3.C10$15.C$14.2C$
14.C.C12$2C$2C7$3.2C$3.C.C$3.C5$21.C$20.2C$20.C.C12$2C$2C7$3.2C$3.C.C
$3.C11$16.C$15.2C$15.C.C12$2C$2C7$3.2C$3.C.C$3.C6$22.C$21.2C$21.C.C
12$2C$2C7$3.2C$3.C.C$3.C12$17.C$16.2C$16.C.C12$2C$2C7$3.2C$3.C.C$3.C
7$23.C$22.2C$22.C.C12$2C$2C7$3.2C$3.C.C$3.C13$18.C$17.2C$17.C.C12$2C$
2C7$3.2C$3.C.C$3.C8$24.C$23.2C$23.C.C12$2C$2C7$3.2C$3.C.C$3.C14$19.C$
18.2C$18.C.C12$2C$2C7$3.2C$3.C.C$3.C9$25.C$24.2C$24.C.C!
I could certainly have done something subtle wrong with gencols, but if I'm not mistaken, there are only three different block pulls in this collection -- 1-, 3-, and 4-cell pulls -- and no block pushes. The last PULL9 is from the 3-glider trial run described below:

Code: Select all

x = 265, y = 26, rule = LifeHistory
69.4B$5.B2D28.2D28.2D.4B23.2DB2.B24.2D28.2D28.2D28.2D28.2D3.2B$3.3BDC
A27.2D27.B2DB.4B22.2DB.3B23.2D28.2D28.2D28.2D27.B2D5B2.B$3.4B2A.2B26.
2A23.2B.9B20.9B140.13B$.12B25.2A23.6B2A.4B19.10B137.16B$14B49.4B2.2A
2.4B19.4B2A4B136.17B$9B2.4B48.5B6.4B19.3B2A.4B24.2A110.16B$.9B2.4B49.
4B6.4B19.4B2.4B23.2A29.2A81.14B$3.8B2.4B49.4B6.2B2D19.4B2.4B53.2A29.
2A50.13B$4.2B2.2B2D2.4B49.2B2D6.BDBD19.2B2D2.2B2D83.2A29.2A21.3B$9.BD
BD2.3BD49.BDBD6.DB21.BDBD2.BDBD113.2A20.4B5.2A$10.DB4.B2DB49.DB31.DB
4.DB136.4B5.2A$17.DBD226.4B$247.2B5.2D4BDB$254.DBD2B2DB$254.D4BDBD$
254.8B$254.7B$255.5B$256.4B$257.4B$258.4B$259.4B$260.2B2D$261.BDBD$
262.DB!
The search for three-glider block moves is theoretically just an extension of the above. Re-run the above collision without the filters -- but maybe with somewhat tighter constraints, to keep things from getting too crazy:

gencols -pat glider-block-collisions.life obj/glider_nw.life -tc 20 50 -nph 4 -gen 256 > glider-pairs-hitting-block.life

That will give you about four thousand block+2G collisions to start with. Make sure you include -nph 4 (i.e., 4 phases for the third glider) or you'll only get the first thousand.

Now things get a little crazy no matter what you do! If you keep the "-tc" values to a small enough range, you might be able to get a gencols search to finish in a reasonable time. You could run separate searches for "-tc 20 23", "-tc 24 27", etc., and see if you're getting good results.

gencols -pat glider-pairs-hitting-block.life obj/glider_nw.life -tc 20 23 -filt 1 -nph 4 -geq 4 -leq 4 -gen 512 > 3glider-block-output.life
The above looks like it will probably take hours to complete, at least on my old laptop, and there will be lots more results for different -tc ranges. You could write different ranges to different output files, or I guess maybe append to the same file with >> instead of >, but that seems a bit dangerous...! The above seems to generate several thousand candidate 3-glider groups per hour on my system.

Another idea would be to split that output file into four thousand separate files, and build a long batch file that runs gencols separately on each one. That way at least you could see what progress gencols was making, and estimate how long it would take to finish.

You'll certainly need some kind of post-processing -- a Python script, let's say, that goes through all the candidate results and reports just the blocks that have reappeared on the key diagonal.

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

Re: "Fast Salvos"

Post by dvgrn » August 13th, 2015, 4:43 pm

Funny, the first PUSH reaction that showed up in my small random sample was a +2 push, not a +1:

Code: Select all

x = 351, y = 30, rule = LifeHistory
244.2B3.B$3.4B117.3B115.10B$.7B113.7B114.11B.3B$2A6B58.B54.8B113.17B$
2A7B22.2AB30.4B52.10B25.4B82.19B$2B2D6B21.ACD28.2C5B22.B2D26.2B2D7B
21.2D.4B23.2DB2.B24.2D27.B2D18B10.2D28.2D28.2D3.2B$.B2D7B21.2D27.B2C
6B19.3BDCA25.2B2D8B19.B2DB.4B22.2DB.3B22.B2D7B20.B2D23B5.2D28.2D27.B
2D5B2.B$2.10B49.3B.6B18.4B2A.2B22.4B2A2B.4B16.2B.9B20.9B20.11B19.28B
62.13B$2.8B3D47.12B15.12B21.4B2A3B.2B2D15.6B2A.4B19.10B17.14B18.28B
60.16B$2.8BD2B47.13B13.14B21.9B.BDBD14.4B2.2A2.4B19.4B2A4B16.15B16.
28B61.17B$3.4B2.2BDB47.6B.4B3D12.9B2.4B21.9B.DB15.5B6.4B19.3B2A.4B16.
8B2A5B15.11B3D13B63.16B$4.4B2.4B47.5B2.3BD2B13.9B2.4B20.10B19.4B6.4B
19.4B2.4B17.5B.2A6B16.7B2AD10B.B68.14B$5.4B2.4B47.5B2.3BD16.8B2.4B22.
8B19.4B6.2B2D19.4B2.4B16.6B.8B15.7B2ABD27.2A50.13B$6.2B2D2.2B2D48.2B
2D2.4B16.2B2.2B2D2.4B22.2B2D4B19.2B2D6.BDBD19.2B2D2.2B2D18.2B2D.3BD4B
14.5B2D31.2A29.2A21.3B$7.BDBD2.BDBD48.BDBD2.4B20.BDBD2.3BD22.BDBD4B
19.BDBD6.DB21.BDBD2.BDBD18.BDBD.B2D5B14.4BDBD61.2A20.4B5.2A$8.DB4.DB
50.DB4.3BD20.DB4.B2DB22.DB2.4B19.DB31.DB4.DB20.DB3.DBD.4B14.B.BDB84.
4B5.2A$73.B2DB26.DBD27.4B89.4B14.4B84.4B$74.DBD57.4B89.4B14.4B84.2B5.
2D4BDB$135.4B89.2B2D14.4B90.DBD2B2DB$136.4B89.BDBD14.4B89.D4BDBD$137.
2B2D89.DB16.4B88.8B$138.BDBD107.4B87.7B$139.DB109.4B87.5B$251.4B87.4B
$252.4B87.4B$253.4B87.4B$254.4B87.4B$255.B3D87.2B2D$256.D2B88.BDBD$
257.D90.DB!
This is just the results of a partial manual scan through the attached file, which is the output from the sample search at the end of the last posting, which is only a very small fraction of the total search space. It ran for 80 minutes on my system and produced 5661 candidate 4-cell output patterns.

Again, a quick Python script needs to be written to sort out the ones that keep the block on the correct diagonal.
Attachments
3glider-block-output.txt
Gencols results for -tc 20 23 (only)
(861.24 KiB) Downloaded 453 times

M. I. Wright
Posts: 372
Joined: June 13th, 2015, 12:04 pm

Re: "Fast Salvos"

Post by M. I. Wright » August 13th, 2015, 6:41 pm

Whoa, thanks a ton! And yep, adding the -gen argument did the trick for gencols.

How would I go about checking the output with Python? The output after the space is shrunken down to just the pattern (instead of including the bounding box of the initial pattern) so I assume you mean to do it within Golly, but when I try to run a python script I get the message 'The Python library does not have this symbol: Py_Initmodule4'.

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

Re: "Fast Salvos"

Post by dvgrn » August 13th, 2015, 10:31 pm

M. I. Wright wrote:...when I try to run a python script I get the message 'The Python library does not have this symbol: Py_Initmodule4'.
Well, Python is supposed to Just Work with Golly. When it doesn't, it's usually a fairly simple mismatch between the versions: in particular, you need to have installed Python 2.x -- the latest compatible version is Python 2.7.10, not 3.4.3.

If that's not the problem, then make sure that if you're running 32-bit Golly, that you've installed a 32-bit version of Python, or if it's a "64-bit" or "x86-64" version of Golly, that you install the 64-bit version of Python.

If that doesn't help, post some specifics about your platform, operating system, and if possible the names of the installer files you used for Golly and Python, and maybe someone will have some advice...!

Post Reply