Life-like p1 photon project

For discussion of other cellular automata.
amling
Posts: 1154
Joined: April 2nd, 2020, 9:47 pm

Re: Life-like p1 photon project

Post by amling » November 4th, 2024, 11:07 pm

LaundryPizza03 wrote:
November 4th, 2024, 9:38 pm
B24/S0257 is looking very good — it may even be possible to assemble a complete ship using manual work and JLS. I've tried s2s in LLSSS up to width 57.
I agree with Sokwe that the f2b searches made it look unlikely to me but the s2s searches do show that the vertical columns the f2b searches are plagued by aren't very self-forcing. It's possible they are self-forcing in the context of FWAED (finite width at every depth) half planes that start from zeros and that the "proj001" hacks could do this but I haven't really started on it. "proj001" is still a pretty big hassle to run.
LaundryPizza03 wrote:
November 4th, 2024, 9:38 pm
B246/S157(8) with s2s likely forces a self-forcing component on the front edge...

How do I check for myself using llsss-recentering?
You're really gonna have to be specific about what you want here.

The sort of search Sokwe suggests would aim to prove that in the context of any FWAED half plane the initializing block self-forces down which is a thing that is true of some blocks in some rules. I am not so sure from the evidence presented here that it is true of any part of the edge in this rule: I believe the only evidence was a unique snapshot from a fixed board search which isn't going to mean much about what is true in more arbitrary patterns.

Another thing you might do is a from-zeros WAO search to see what is forced at arbitrary widths. Recent version of the code will print out unique cell values in all columns in WAO error windows so if you set pad to something bigger you can take a look around, e.g. this...

Code: Select all

rlife llsss-recentering-wao c1-s2s --rule 'B246/S157' '@zero' --wao-left-pad 10 --wao-right-pad 10 --wao-idx ALL XX
...includes outputs like this:

Code: Select all

20241104 19:02:56 [INFO] Unique [WAO idx #0]:
20241104 19:02:56 [INFO] | ..................... |
20241104 19:02:56 [INFO] | ..................... |
20241104 19:02:56 [INFO] | ..........*..???????? |
20241104 19:02:56 [INFO] | ???????.????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
Not looking very good so far. It's possible if it's run much farther it will eventually have some more unique cells. It's also possible something more sophisticated like sketching the non-WAO equivalent of this and then splitting the search up by forcing some small collection of cells into each possible combination of values could show each of them forces that front edge in some position.

User avatar
LaundryPizza03
Posts: 2596
Joined: December 15th, 2017, 12:05 am
Location: Unidentified location "https://en.wikipedia.org/wiki/Texas"

Re: Life-like p1 photon project

Post by LaundryPizza03 » November 4th, 2024, 11:38 pm

amling wrote:
November 4th, 2024, 11:07 pm
LaundryPizza03 wrote:
November 4th, 2024, 9:38 pm
B24/S0257 is looking very good — it may even be possible to assemble a complete ship using manual work and JLS. I've tried s2s in LLSSS up to width 57.
I agree with Sokwe that the f2b searches made it look unlikely to me but the s2s searches do show that the vertical columns the f2b searches are plagued by aren't very self-forcing. It's possible they are self-forcing in the context of FWAED (finite width at every depth) half planes that start from zeros and that the "proj001" hacks could do this but I haven't really started on it. "proj001" is still a pretty big hassle to run.
LaundryPizza03 wrote:
November 4th, 2024, 9:38 pm
B246/S157(8) with s2s likely forces a self-forcing component on the front edge...

How do I check for myself using llsss-recentering?
You're really gonna have to be specific about what you want here.

The sort of search Sokwe suggests would aim to prove that in the context of any FWAED half plane the initializing block self-forces down which is a thing that is true of some blocks in some rules. I am not so sure from the evidence presented here that it is true of any part of the edge in this rule: I believe the only evidence was a unique snapshot from a fixed board search which isn't going to mean much about what is true in more arbitrary patterns.

Another thing you might do is a from-zeros WAO search to see what is forced at arbitrary widths. Recent version of the code will print out unique cell values in all columns in WAO error windows so if you set pad to something bigger you can take a look around, e.g. this...

Code: Select all

rlife llsss-recentering-wao c1-s2s --rule 'B246/S157' '@zero' --wao-left-pad 10 --wao-right-pad 10 --wao-idx ALL XX
...includes outputs like this:

Code: Select all

20241104 19:02:56 [INFO] Unique [WAO idx #0]:
20241104 19:02:56 [INFO] | ..................... |
20241104 19:02:56 [INFO] | ..................... |
20241104 19:02:56 [INFO] | ..........*..???????? |
20241104 19:02:56 [INFO] | ???????.????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
20241104 19:02:56 [INFO] | ????????????????????? |
Not looking very good so far. It's possible if it's run much farther it will eventually have some more unique cells. It's also possible something more sophisticated like sketching the non-WAO equivalent of this and then splitting the search up by forcing some small collection of cells into each possible combination of values could show each of them forces that front edge in some position.
Let me rephrase this: How do I determine if a feature on a sloped front edge is self-forcing?

I think JLS shows this one is not self-forcing, but it is still possible that it cannot be capped. Here I attched one such solution to an LLSSS partial:

Code: Select all

x = 31, y = 39, rule = B246/S1578
14b2o3bo2b2o2b2obo$14b4ob2o2b2obob3o$14b3o4b3obob2o$14b2obo2bob2o4b2o$
14b3o4b3obo$14b3o4b3obobo2bo$14b2o2b2o3b2o$14b4o2b2o2b2o$14b3o5b3obo$
14b2obobo4b2o$14b3o2bobo2b2o$14b3o3bobo2b2o$14b2o2bo2bob3o$14b4ob2o$
13b2ob6o2bo$11b4obobobo$10bob3o$11b3o4bo$11b6obob2o$10b2o$8b4o4bobo$7b
ob3o6bo$8b4o$8b4o$7b2o2b2o$5b4o2b4o$4bob3o2b3o$5b3o2b2o$5b5ob2o$4b2o4b
2o$2b4o$bob3o3bo2bo2b2o$2b4o2bobobobo2bo$2b3o2bo3bobo4bo$2b2obo2b2o2bo
2bob2o$2b3ob2o2b2ob2ob3o$b2ob13obo$3bo13bo$o!
Let me look at the think about the near B24/S0257 ones.

EDIT: In B248/S02578 at width 57 s2s, I get a few new components, but larger partials are mostly made up of pieces without B8 or S8.

Code: Select all

x = 57, y = 129, rule = B248/S02578
50bo$49bo3bo$47bo3b4o$47bo4b2o$49bobo$50b3o$47bob2ob2o$22bo3bo18bo2b5o
3bo$21bo3bo14bo2bo2bob6obo$19bo3b3o7bo2bo2bo3bo4b4o2b2o$19bo4b2o6bo3bo
bobob2o4b4o2b2o$21bobo3bo2bo3b2obobob3o2bob6obo$22b2obobobo2b2o2bobobo
bo2bo2b5o3bo$20b2obo2bobobobo3bo2bo7bob2ob2o$20bo3b2obobobo8bo9b3o$18b
ob2o4bobo2bo17bobo$18bo3b2o2bo2bo3bo13bo4b2o$17b2obo10b2o14bo3b4o$15bo
3bo2bo9bo16bo3bo$15bo2bobobobo3bo3bo2bo3bo10bo$17bobobobo3bo6bo3bo$19b
o2bo2b3o8b3o$19b2obo3b2o9b2o$21bobobo2bo5bobo2bo3bo$17bobo2bob3o7bob2o
4bo$17bobo3bob2o11bob3o$21b2o3bo9bo4b2o$19b2o2bo2bo2bo3bo2bo3bo3bo8bo$
17bo2b2o6bo3bo5bo4b3o3bo2bo3bo$17bo2b2o8b3o6bob4o4bobobobo$19b2o2bo7b
2o9b3ob3obobob2o$21b2o3bo4bo2bo6bo3bo3bobobobo$17bobo3bobo6b2o7b2obo4b
o2bo3bo$17bobo2bob2o3bob3o9b2o8bo$21bobobo2bo4bo8bobo$19b2obo3bo3bo3bo
5bo4bo$18bo2bobo4b2o10bo3b2obo$13bo2bo4bo7bo12bo3bo$12bo3bo12bo4bo8bo
2bo4bo$10bo3b2obo13bo2bobo11bo2bobo$10bo4bo16b2obo3bo9b2obo3bo$12bobo
19bobobo12bobobo$13b2o9bo5bobo2bob2o8bobo2bob2o$11b2obo5bo2bo3bo2bobo
3bobo8bobo3bobo$11bo3bo4bobobobo7b2o3bo11b2o3bo$12b3ob4obobob2o5b2o2bo
12b2o2bo$9bob4o5bobobobo3bo2b2o12bo2b2o$8bo4b3o4bo2bo3bo2bo2b2o12bo2b
2o$6bo3bo3bo9bo7b2o2bo12b2o2bo$6bo4b2o21b2o3bo11b2o3bo$8bob3o17bobo3bo
bo8bobo3bobo$4bob2o4bo17bobo2bob2o8bobo2bob2o$4bobo2bo3bo20bobobo12bob
obo$7b2o23b2obo3bo9b2obo3bo$6b3o22bo2bobo11bo2bobo$4bo3bo20bo4bo8bo2bo
4bo$2bo2bo3bo19bo9bo2bo3bo$2bo28bo7bobobob2o$4b2obob2o21b7obobob3o$5b
2o3b2o27bobobobo2bo$2bobobo2bobobo19b2ob2o2bobo3b2o$bo5bo4bo19bo4b3o2b
o2b3o$b4o4b3o2b19obo2b2o2bobo3bo4$49bo$48bo3bo$46bo3b4o$46bo4b2o$48bob
o$49b3o$46bob2ob2o$21bo3bo18bo2b5o3bo$20bo3bo14bo2bo2bob6obo$18bo3b3o
7bo2bo2bo3bo4b4o2b2o$18bo4b2o6bo3bobobob2o4b4o2b2o$20bobo3bo2bo3b2obob
ob3o2bob6obo$21b2obobobo2b2o2bobobobo2bo2b5o3bo$19b2obo2bobobobo3bo2bo
7bob2ob2o$19bo3b2obobobo8bo9b3o$17bob2o4bobo2bo17bobo$17bo3b2o2bo2bo3b
o13bo4b2o$16b2obo10b2o14bo3b4o$14bo3bo2bo9bo16bo3bo$14bo2bobobobo3bo3b
o2bo3bo10bo$16bobobobo3bo6bo3bo$18bo2bo2b3o8b3o$18b2obo3b2o9b2o$20bobo
bo2bo5bobo2bo3bo$16bobo2bob3o7bob2o4bo$16bobo3bob2o11bob3o$20b2o3bo9bo
4b2o$18b2o2bo2bo2bo3bo2bo3bo3bo7bo$16bo2b2o6bo3bo5bo4b3o2bo2bo3bo$16bo
2b2o8b3o6bob4o3bobobobo$18b2o2bo7b2o9b3ob2obobob2o$20b2o3bo4bo2bo6bo3b
o2bobobobo$16bobo3bobo6b2o7b2obo3bo2bo3bo$16bobo2bob2o3bob3o9b2o7bo$
20bobobo2bo4bo8bobo$18b2obo3bo3bo3bo5bo4bo$17bo2bobo4b2o10bo3b2obo$12b
o2bo4bo7bo12bo3bo$11bo3bo12bo2bo3bo6bo2bo4bo$9bo3b2obo13bo3bo12bo2bobo
$9bo4bo10bo6b3o13b2obo3bo$11bobo10bo8b2o15bobobo$12b2o8bo3b6o2bo11bobo
2bob2o$10b2obo4bo2bo2b2o7bo2bo2bo6bobo3bobo$10bo3bo3bobobobob7obobobo
3bo7b2o3bo$11b3ob3obobobo9bobobobobo6b2o2bo$8bob4o4bobobo2bo7bo2bobob
2o4bo2b2o$7bo4b3o3bo2bobobobo9bobobo4bo2b2o$5bo3bo3bo8bobobo3bo7bo3bo
5b2o2bo$5bo4b2o11bobobobo9bo10b2o3bo$7bob3o12bobob2o16bobo3bobo$3bob2o
4bo13bobobo16bobo2bob2o$3bobo2bo3bo13bo3bo19bobobo$6b2o19bo20b2obo3bo$
5b3o35bo3bo2bobo$3bo3bo16bo9bo8bobo4bo$bo2bo3bo12bo2bobo7bobo8bo$bo17b
o2b2obo4bo5bobo3b2o3bo$3b2obob2o9bo4bobobo2b3obobo3bo3b2o$4b2o3b2o3bo
3b2o3bo2b2o2b5obo2b4o3bo$bobobo2bobobo2b5o2bobo4b4o3bo3b2o4bo7bo$o5bo
4bo2b4o3bobobo2b5o2bobobo5b2o4bo2bobo$4o4b3o2b4ob3obobob10o6b5o2bo2b2o
bo!
Here's a version of the first partial for B24/S0257:

Code: Select all

x = 56, y = 56, rule = B24/S0257
21bo3bo$20bo3bo14bo$18bo3b3o7bo2bo2bo3bo$18bo4b2o6bo3bobobobo$20bobo3b
o2bo3b2obobob2o$21b2obobobo2b2o2bobobobo$19b2obo2bobobobo3bo2bo3bo$19b
o3b2obobobo8bo$17bob2o4bobo2bo$17bo3b2o2bo2bo3bo$16b2obo10b2o$14bo3bo
2bo9bo$14bo2bobobobo3bo3bo2bo3bo$16bobobobo3bo6bo3bo$18bo2bo2b3o8b3o$
18b2obo3b2o9b2o$20bobobo2bo5bobo2bo3bo$16bobo2bob3o7bob2o4bo$16bobo3bo
b2o11bob3o$20b2o3bo9bo4b2o$18b2o2bo2bo2bo3bo2bo3bo3bo8bo$16bo2b2o6bo3b
o5bo4b3o3bo2bo3bo$16bo2b2o8b3o6bob4o4bobobobo$18b2o2bo7b2o9b3ob3obobob
2o$20b2o3bo4bo2bo6bo3bo3bobobobo$16bobo3bobo6b2o7b2obo4bo2bo3bo$16bobo
2bob2o3bob3o9b2o8bo$20bobobo2bo4bo8bobo$18b2obo3bo3bo3bo5bo4bo$17bo2bo
bo4b2o10bo3b2obo$12bo2bo4bo7bo12bo3bo$11bo3bo12bo4bo8bo2bo4bo$9bo3b2ob
o13bo2bobo11bo2bobo$9bo4bo16b2obo3bo9b2obo3bo$11bobo19bobobo12bobobo$
12b2o9bo5bobo2bob2o8bobo2bob2o$10b2obo5bo2bo3bo2bobo3bobo8bobo3bobo$
10bo3bo4bobobobo7b2o3bo11b2o3bo$11b3ob4obobob2o5b2o2bo12b2o2bo$8bob4o
5bobobobo3bo2b2o12bo2b2o$7bo4b3o4bo2bo3bo2bo2b2o12bo2b2o$5bo3bo3bo9bo
7b2o2bo12b2o2bo$5bo4b2o21b2o3bo11b2o3bo$7bob3o17bobo3bobo8bobo3bobo$3b
ob2o4bo17bobo2bob2o8bobo2bob2o$3bobo2bo3bo20bobobo12bobobo$6b2o23b2obo
3bo9b2obo3bo$5b3o22bo2bobo11bo2bobo$3bo3bo20bo4bo8bo2bo4bo$bo2bo3bo19b
o9bo2bo3bo$bo28bo7bobobob2o$3b2obob2o21b7obobob3o$4b2o3b2o27bobobobo2b
o$bobobo2bobobo19b2ob2o2bobo3b2o$o5bo4bo19bo4b3o2bo2b3o$4o4b3o2b19obo
2b2o2bobo3bo!
It might be worthwhile to run either rule at height greater than 57; I don't have much time right now and my system will reach the RAM limit around height 59.

For width 84 f2b, I got this at the maximum depth of 36, and I got a very similar result for B24/S0257:

Code: Select all

x = 82, y = 34, rule = B248/S02578
38b2o18b2o2$37bo2bo3b2o2b2o2b2o3bo2bo$35b3obo18bob3o$29b2o7bob3ob2obo
2bob2ob3obo7b2o$33b3obobo2bo4b4o4bo2bobob3o$28bo2bobobo4bo2bo2bob2obo
2bo2bo4bobobo2bo$27bo4bo3bob2ob2obobo4bobob2ob2obo3bo4bo$29bob3o2bo3bo
2bobobo2bobobo2bo3bo2b3obo$29b2o3bo4bo4bo8bo4bo4bo3b2o$28b3obobo6bob3o
6b3obo6bobob3o$27bo5bob2o4b2o3bo4bo3b2o4b2obo5bo$31b2obo4b2o16b2o4bob
2o$33bobo5bo14bo5bobo$32bobobo3bobo12bobo3bobobo$31bobobobo22bobobobo$
34bo7bob2o6b2obo7bo$33b3o5bo2bobo4bobo2bo5b3o$32bo3bo6bo2bob2obo2bo6bo
3bo$43bo10bo$43bo4b2o4bo$41b2ob2o8bo$38b2obo3bobo2bo3bo$23b2o17bo3bo4b
o2bo$16b2o10b2o2b2o3bo2b2obob3obo4bo$22bo2bo10bo5bob3ob2o4bo$6b2o7bo2b
o2bo4bob2obo2bobo4bo6b3o3bo$10b2o2bo4bobo4bo4b4obo3bob2o3bo3bo2bo$5bo
2bobobobo4bobo2b2obo2bob2o2bo2bobo12bo11b2o4b2o$4bo4bo2bobo4bobo4bobob
o7bobo3bo9bo24b2o$6bob3obobo4bobo3bobobobo2bobo4b4ob2o6bo10bo2bo2bo2bo
$b2obo2b3o4bo4bobo6bo6b2o3b4o8b2ob2o9bob4obo3b3o$4b2o6bobo4bobo2bob2ob
2obob2o2b5obo2b3o4bo4b2o3bo4b2o4bobo$o2bo2b2ob4obo4bo3bo2bobo3b2o4bo3b
o6bobo3bo7bo2bo6bo2bo2b3o!

Code: Select all

x = 4, y = 3, rule = B3-q4z5y/S234k5j
2b2o$b2o$2o!
LaundryPizza03 at Wikipedia

amling
Posts: 1154
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling » November 5th, 2024, 4:30 am

amling wrote:
November 2nd, 2024, 5:09 am
Not looking good for B24678/S134568:

The only self-forcing block I could find was this:

Code: Select all

****.
****.
With that forbidden there are still going to be f2b almost half planes:

Code: Select all

..........................................
..........................................
..........................................
..........................................
**...........**...........................
..*.........*..*..........................
...*.......*....*.........................
***.........****........................**
....*.....*......*.....................*..
***.........****....**................*...
...****.....***..*.*..*................***
.......*....***.***....*.............*....
..*.....*...*.*.***....***...**........***
........***.....***....***.***.....****...
........***...*.*.*....*.*.***.*..*.......
........***.........**.....***.*.*.....*..
........***.....*...**...*.*.*..*..*......
........***.........**..........**........
........***.........**.....*....**........
........***.........**..........**........
........***.........**..........**........
Ah, but the same forbidden block in a sloped geometry (U=2X+2Y) works out.

That is to say with these forbidden block files...

Code: Select all

$ grep . f*.block
f1a.block:| W      |
f1a.block:| WW     |
f1a.block:| WWW    |
f1a.block:| WWWW   |
f1a.block:| WWWWW  |
f1a.block:| ****.W |
f1a.block:| ****.W |
f1a.block:|  WWWWW |
f1a.block:|   WWWW |
f1a.block:|    WWW |
f1a.block:|     WW |
f1a.block:|      W |
f1b.block:| W      |
f1b.block:| WW     |
f1b.block:| WWW    |
f1b.block:| WWWW   |
f1b.block:| WWWWW  |
f1b.block:| .****W |
f1b.block:| .****W |
f1b.block:|  WWWWW |
f1b.block:|   WWWW |
f1b.block:|    WWW |
f1b.block:|     WW |
f1b.block:|      W |
f1c.block:| W      |
f1c.block:| WW     |
f1c.block:| WWW    |
f1c.block:| WWWW   |
f1c.block:| WWWWW  |
f1c.block:| W.**** |
f1c.block:| W.**** |
f1c.block:|  WWWWW |
f1c.block:|   WWWW |
f1c.block:|    WWW |
f1c.block:|     WW |
f1c.block:|      W |
f1d.block:| W      |
f1d.block:| WW     |
f1d.block:| WWW    |
f1d.block:| WWWW   |
f1d.block:| WWWWW  |
f1d.block:| W****. |
f1d.block:| W****. |
f1d.block:|  WWWWW |
f1d.block:|   WWWW |
f1d.block:|    WWW |
f1d.block:|     WW |
f1d.block:|      W |
...this command...

Code: Select all

rlife llsss-recentering-wao raw:2:2:0:0:-1:1:0:0:1 --rule 'B24678/S134568' '@zero' --wao-left-pad 00 --wao-right-pad 00 --wao-idx ALL --filters forbid_block:f1a.block,forbid_block:f1b.block,forbid_block:f1c.block,forbid_block:f1d.block XX
...terminates with last partial...

Code: Select all

20241105 00:27:49 [INFO] Shortest partial:
20241105 00:27:49 [INFO] | .                              |
20241105 00:27:49 [INFO] | ..                             |
20241105 00:27:49 [INFO] | ...                            |
20241105 00:27:49 [INFO] | ....                           |
20241105 00:27:49 [INFO] | .....                          |
20241105 00:27:49 [INFO] | ......                         |
20241105 00:27:49 [INFO] | .......                        |
20241105 00:27:49 [INFO] | ........                       |
20241105 00:27:49 [INFO] | .........                      |
20241105 00:27:49 [INFO] | ..........                     |
20241105 00:27:49 [INFO] | ...........                    |
20241105 00:27:49 [INFO] | ............                   |
20241105 00:27:49 [INFO] | .............                  |
20241105 00:27:49 [INFO] | ..............                 |
20241105 00:27:49 [INFO] | ...............                |
20241105 00:27:49 [INFO] | ................               |
20241105 00:27:49 [INFO] | .................              |
20241105 00:27:49 [INFO] | ..................             |
20241105 00:27:49 [INFO] | .............**....            |
20241105 00:27:49 [INFO] | ............*..*....           |
20241105 00:27:49 [INFO] | ...........*....*....          |
20241105 00:27:49 [INFO] | ............****......         |
20241105 00:27:49 [INFO] | ..........*......*.....        |
20241105 00:27:49 [INFO] | ............****........       |
20241105 00:27:49 [INFO] | ........****....****.....      |
20241105 00:27:49 [INFO] | .......*............*.....     |
20241105 00:27:49 [INFO] |   ....*.....*..*.....*.....    |
20241105 00:27:49 [INFO] |   ...*..*..........*..*.....   |
20241105 00:27:49 [INFO] |     ..**.*...........****....  |
20241105 00:27:49 [INFO] |     *.....*....**....***...... |
20241105 00:27:49 [INFO] |       .**..*..*..*...*.*.*.... |
20241105 00:27:49 [INFO] |       *..**....*.***.......... |
20241105 00:27:49 [INFO] |         ....*.**.***...*...... |
20241105 00:27:49 [INFO] |         **..*....*.*..*.*..... |
20241105 00:27:49 [INFO] |           ..***......*...*.... |
20241105 00:27:49 [INFO] |           ..***.*.***..**..... |
20241105 00:27:49 [INFO] |             *.*.*..**..**..... |
20241105 00:27:49 [INFO] |             ***..*.**..**..... |
20241105 00:27:49 [INFO] |               *.**.**..**..... |
20241105 00:27:49 [INFO] |               .....**..**..... |
20241105 00:27:49 [INFO] |                 **.**..**..... |
20241105 00:27:49 [INFO] |                 **.**..**..... |
20241105 00:27:49 [INFO] |                   .**..**..... |
20241105 00:27:49 [INFO] |                   .**..**..... |
20241105 00:27:49 [INFO] |                     *..**..... |
20241105 00:27:49 [INFO] |                     *..**..... |
20241105 00:27:49 [INFO] |                       .**..... |
20241105 00:27:49 [INFO] |                       .**..... |
20241105 00:27:49 [INFO] |                         *..... |
20241105 00:27:49 [INFO] |                         *..... |
20241105 00:27:49 [INFO] |                           .... |
20241105 00:27:49 [INFO] |                           .... |
20241105 00:27:49 [INFO] |                             .. |
20241105 00:27:49 [INFO] |                             .. |
So no finite c/1 ships for B24678/S134568.

amling
Posts: 1154
Joined: April 2nd, 2020, 9:47 pm

Re: Life-like p1 photon project

Post by amling » November 6th, 2024, 7:14 pm

LaundryPizza03 wrote:
November 4th, 2024, 11:38 pm
Let me rephrase this: How do I determine if a feature on a sloped front edge is self-forcing?
We've been sort of sloppy with the phrase "forcing" and i think it's worth elaborating on here. Usually the context will make it obvious which is meant but there exist at least:

(1) Forcing in any full plane (EDIT: this should probably be half plane although this entire bullet point is pretty academic) pattern at whatever velocity. This is the strongest sense (as it has the weakest condition) and is almost never what I mean. I assume boolean logic based programs could be used to show this sort of thing but it's outside my expertise/experience. EDIT: Having thought on it some more, I've realized use of the "any" edge could theoretically do this but I can only imagine the performance would be tragic and it's somewhat academic as this stronger condition may not even be true in many cases we care about.

(2) Forcing in any FWAED half plane pattern. This is the sort of forcing Sokwe's search would show (where you've got the block in question surrounded by AF2 many wild cards on both sides). This is also about the strongest forcing I think any tricks with LLSSS will ever reasonably be able to show.

(3) Forcing in any FWAED half plane pattern where the boundary is made entirely of some set of blocks which then in this same sense jointly forces itself in the next row. This is the sort of forcing the "proj001" hacks are built to show.

I may write (edit?) more on this later but I gotta catch a plane.

EDIT:

(4) Forcing in any finite ship (where self-forcing is then equivalent to not being in any finite ship). This is the absolute weakest sense but I simply cannot imagine how you could prove it without proving one of the above stronger senses. LLSSS's trick, taken essentially from LSSS, that allows it to consider the space of all arbitrary but still finite width partials just doesn't make sense in two dimensions. In fact, I'm pretty sure you're going to be looking at a strictly undecideable problem if you enlarge the rule space even slightly (something something encoding TM like Wang tiles). It certainly might not be so bad, at least decidability-wise, for very restricted rule sets (say 2 state INT or such) but whatever technique would have to depend on that rule restriction in a way I just cannot foresee or imagine.

EDIT:

Maybe add:

(3.5) Forcing in any FWAED half plane with zero boundary (what I've unhelpfully called "almost half plane" elsewhere and really meant "almost half plane, but that 'half' being with zero boundary rather than arbitrary boundary"). Again, I have no ideas about how to prove such a case without proving the stronger (3).

Sokwe
Moderator
Posts: 3367
Joined: July 9th, 2009, 2:44 pm

Re: Life-like p1 photon project

Post by Sokwe » November 8th, 2024, 4:25 pm

The rules B25/S01456 - B2578/S014568 definitely do not have p1 photons, and it should be possible to prove with a careful case analysis. Note that it only needs to be proven in B258/S014568 and B2578/S014568, since the other six rules follow from those.

I'll work out the technical details later, but I'll try to give the basic idea. If you run a c1-s2s, you will find partials like the following:

Code: Select all

x = 85, y = 26, rule = B2578/S014568
83bo$79bo3b2o$76bo2b5o$73bo2b6o$70bo2b4o2b4o$67bo2b5o4b3o$64bo2b4o2b3o
b7o$61bo2b5o4bo5bo3b2o$58bo2b5ob3o6b2o5bo$55bo2b4o2b4obobob2o3b3o$52bo
2b5o4b2o4b5o2b3o$49bo2b4o2b3ob5ob5o3bob4o$42bo6b5o4bo5b2o4b4o3bo3b2o$
39bo2b8o2b3o6bo2b4o2b3o8bo$35bo3b9o4b2o7b5ob8o$32bo2b5o2b7ob12o2b4obo
4b2o$29bo2b6o4bo9bo2b5o4bo9bo$26bo2b4o2b4o4b6obo4b6o4b3o$23bo2b5o4b3o
3b6ob4ob7o3b4o$19bo3b4o2b3ob7o3b5ob2o4b7o3b4o$16bo2b6o4bo5bo3b2o2bo5b
4obobo4b2o2bo2b2o$12bo3b6ob3o6b2o5bo7bob2ob3o6bo6bo$9bo2b5o2b5obobob2o
3b3o9bob6o$6bo2b6o4bo6b5o2b3ob4o5bobo3b4o$3bo2b4o2b4o7bo3b2o3bob5ob7o
5bo2b2o$o2b5o4b3o7bob2ob3o3bo3b9o9bo!
Notice the repetitive nature of the edge. It turns out, this repetition is forced, although it needs a careful case analysis to prove it. Edit: this edge isn't forced exactly in this way, but an infinite sequence of "spikes" is forced. Here is another partial result by Keith Amling in B258/S014568:

Code: Select all

x = 50, y = 13, rule = B258/S014568
39bo$36bo2b2o$24bo8bo2b4o$20bo3b2o2bo4b5o$17bo2b5o3b6o2b4obo$14bo2b6o
3b6o4bo2b4o5bo$11bo2b4o2b4o4b5o6bo2bobo3b2o$8bo2b5o4bo3b2o2b4o10bob5o$
5bo2b4o2b3o4b3ob9o9bob2o$2bo2b5o4b2o3b4o2bobobo3b2o10b3o$bob3o2b3ob6o
3b4o8bo5bo2b2ob2o$ob2o4b2o4b2o2bo2b2o2bo3b2o8b2o3b5o$2o4b6o2b3ob6obobo
3b2ob6o2bobo3b2o!
Now using the setup mentioned here, you will quickly find that the following cells are forced (in both B258/S014568 and B2578/S014568):

Code: Select all

| ................. |
| ................. |
| ........*......?? |
| ??????..**..?..?? |
| ?????****...????? |
| ??*****...??????? |
| ?????***?.??????? |
| ????????????????? |
| ????????????????? |
In fact, the following subpattern forces the repeating edge:

Code: Select all

| ...... |
| ...... |
| ..*.WW |
| WW**WW |
| WWWWWW |
| WWWWWW |
where the 'W's are wildcards, and the left and right two columns and top and bottom two rows are repeated indefinitely in their respective directions. You could actually show that this subpattern is forced by another simple case analysis.

I'll try to write up the details in a bit, although it won't be elegant.
-Matthias Merzenich

Sokwe
Moderator
Posts: 3367
Joined: July 9th, 2009, 2:44 pm

Re: Life-like p1 photon project

Post by Sokwe » November 9th, 2024, 6:57 am

Sokwe wrote:
November 8th, 2024, 4:25 pm
The rules B25/S01456 - B2578/S014568 definitely do not have p1 photons, and it should be possible to prove with a careful case analysis.
Edit: Keith Amling has used LLSSS to prove essentially the same basic idea much more easily, that a spike forces another spike, here.

Here's a laborious "proof" (suggests using JLS to demonstrate some portions):

All patterns displayed here are traveling to the left. Arrows represent repeated columns, not spaceship movement. Details about why some cells are forced are left as an exercise for the reader.

Lemma 1: The following pattern forces the x cells to be dead and the y cells to be alive:

Code: Select all

......
..xxxx ->
**yyyy
Proof: If the leftmost x and y cells are dead, then the dead cell immediately to the right of the x cells will be born in the next generation, but this would be impossible since we assumed the leftmost x cell is dead and this is part of a pattern moving one cell per generation to the left. Thus the dead cell immediately to the right of the x cells has either 3 or 4 alive neighbors, so cannot be born in the next generation, so the leftmost x cell must be dead. Then the leftmost y cell must be alive, otherwise the cell to the left of the x cells would be born in the next generation.

Lemma 1: The following pattern forces the x cells to be alive:

Code: Select all

   ******
<- ******
   xxxx**
Proof: the cell immediately up and to the right of rightmost x cell must survive, so it must have 0, 1, 4, 5, 6, or 8 live neighbors. It already has 7, so it must have 8, and the rightmost x cell must be alive. Then remaining x cells follow by induction.

Corollary 1: The following pattern forces the x cells to be alive:

Code: Select all

   *********
<- ******.??
   xxxxxxx??
Proof: The cell to the left of the dead cell must die, so it must have 2, 3, or 7 live neighbors. It already has 4, so it must have 7. Therefore the right-most three x cells must be alive. Then remaining x cells follow by lemma 1.

Corollary 2: The following pattern forces the x cells to be alive, and there cannot be two consecutive alive y cells:

Code: Select all

********
**xxxxxx ->
??.yyyyy
Proof: That the x cells are alive follows from corollary 1. That there cannot cannot be two consecutive alive y cells follows from lemma 1.

Corollary 3: The following pattern forces the x cells to be alive, and the y cells to be dead:

Code: Select all

........
******** ->
xx.xxxxx
xxx?yy??
proof: to spare details, the easiest way to check this is with JLS and use corollary 2 for the repeating columns.

Consider the following pattern, which I will call a "spike", where the rightmost two columns repeat only until they reach a spike one level up (or continue indefinitely if there is no such spike):

Code: Select all

     ^
     |
A    ......
B    ......
C <- ..*.?? ->
D    ??**??
It was already shown above that a c1-s2s search forces a spike. We now need to show that a spike forces another spike one cell down and some number of cells to the left.

Code: Select all

        ^
        |
A    ........
B    ........
C <- ....*.?? ->
D    ????**??
E    ????????
Playing around with JLS, it's possible to show that a spike forces the following arrangement:

Code: Select all

        ^
        |
A    ........
B    ........
C <- ....*.?? ->
D    ??..**??
E    ??***???
Now if all cells in row D to the left of the spike are dead, then it's easy to check that all cells in row E to the left of the spike are alive, so it cannot be part of a finite ship. Therefore, there is at least one alive cell in row D to the left of the spike.

Let the following pattern represent the leftmost alive cell of row D:

Code: Select all

        ^
        |
B    ........
C    ........
D <- ..*????? ->
E    ????????
F    ????????
It's easy to check that this arrangement forces the following configuration (where the x and y cells are still unknown):

Code: Select all

        ^
        |
B    ........
C    ........
D <- ..*...?? ->
E    ??x*y???
F    ????????
We want to show that this is a spike. In order to reach a contradiction, assume that it is not a spike. Then the x cell must be dead, which forces the y cell to be alive. By lemma 1, this forces the following configuration:

Code: Select all

        ^
        |
B    ........
C    ........
D <- ..*..... ->
E    ??.*****
F    ????????
At this point, its better to play around with JLS to see that the following cells are forced:

Code: Select all

        ^
        |
B    ........
C    ........
D <- ..*..... ->
E    ??.*****
F    ???*****
G    ????zz??
where at least one of the z cells is dead. The repeating columns on the right follow from Corollary 2. Notice that there is at least one dead cell in row G.

Extending the rightmost columns back to the location of the previous spike, we get the following forced configuration (which can be checked with JLS):

Code: Select all

        ^
        |
A    ........
B    ........
C <- ....*.?? ->
D    ....**??
E    *****???
F    ***?????
G    ??**????
which by lemma 1 gives

Code: Select all

        ^
        |
A    ........
B    ........
C <- ....*.?? ->
D    ....**??
E    *****???
F    ***?????
G    ****????
However, by corollary 2 this is not compatible with the pattern containing an alive cell to the left of the spike in row D:

Code: Select all

        ^                ^
        |                |
     ........         ........
B    ........         ........
C    ........         ....*.??
D <- ..*..... -> X <- ....**?? ->
E    ??.*****         *****???
F    ???*****         ***?????
G    ????zz??         ****????
This contradiction means that the first (and only) cell in row D to the left of the initial spike is also part of a spike. By induction, no finite p1 photon can be completed.
-Matthias Merzenich

Sokwe
Moderator
Posts: 3367
Joined: July 9th, 2009, 2:44 pm

Re: Life-like p1 photon project

Post by Sokwe » November 10th, 2024, 9:30 pm

amling wrote:
November 4th, 2024, 11:07 pm
LaundryPizza03 wrote:
November 4th, 2024, 9:38 pm
B246/S157(8) with s2s likely forces a self-forcing component on the front edge...

How do I check for myself using llsss-recentering?
You're really gonna have to be specific about what you want here.
I think I can prove that this rule, and in fact all rules in the range B246/S157 - B24678/S15678, do not contain p1 photons based on an edge forcing argument, although it's a little more complex than a simple forced edge. Assuming I'm correct, this would make B2458/S13467 the only unsolved rule without S0.

Keith, can you try a 60GB B2458/S13467 c1-s2s search when you get a chance? I think it will eventually run out of memory, but I would like to know what w_pos it reaches, how fast the memory use is going up when it dies, and what the last partial results look like. The closely related rule B245/S13467 can be shown to have no p1 photons using a simple c1-s2s search.

Here is the basic idea for the proof that there are no p1 photons in the range B246/S157 - B24678/S15678:

Consider a p1 photon moving left. If x is a dead cell that has more than one live neighbor and every cell above it is dead and has no more than one live neighbors, we call x an "edge cell". Likewise, if x is a live cell, and x has no live cells or dead edge cells above it, we also call x an edge cell.

For example the following partial result has edge cells marked in yellow (alive) and red (dead):

Code: Select all

x = 49, y = 54, rule = B246/S1578History
46.DE$45.DA.A$43.DE2.A$39.DE.DA.A.A$37.DE2.D.A2.A$36.DA.A.2A4.A$34.DE
2.A5.2A.A$30.DE.DA.A.A2.A4.A.A$28.DE2.D.A2.A.A5.A2.A$27.DA.A.2A5.A5.A
2.A$25.DA2.A5.2A.A2.A4.A.A$21.DE.DA.A.A2.A4.2A8.A$19.DE2.D.A2.A.A5.A.
A$18.DA.A.2A5.A5.A.A$16.DA2.A5.2A.A.A2.A.A.A2.A2.A$12.DE.DA.A.A2.A4.
5A3.A.5A$10.DE2.D.A2.A.A5.A.3A.A.A.3A.2A4.A$9.DA.A.2A5.A4.A.3A.3A2.3A
2.A3.A.A$8.DA.A4.A.2A2.A2.A.A.A.2A.A2.2A3.A2.A2.A$7.DA.A.A2.A4.A.A.A.
A.3A.A2.A.2A.2A.A2.A$6.DA.A2.A.A.A2.A.A2.A2.A.3A4.A.A3.A.A.A$5.DA.A2.
A.A2.A.A.A2.A6.A2.2A.A.A.A2.A2.A$4.DA2.A3.A2.A.A.A.A.A5.A5.A3.A.A.A2.
A$5.A2.A4.A.A2.A.A.A2.A3.A4.A.A3.A.A.A.A$2.DE.A3.A4.A4.A2.A7.A2.A2.A.
2A.A.A2.A$.DA.A2.2A7.2A.A2.A5.2A3.4A3.A2.A2.A$DA2.A4.A.A6.A.A.A3.A3.A
.3A.A.A2.A2.A.A$.A2.A3.A8.A.A.A2.A3.A2.4A2.A.A.A3.A.A$2.A.A2.A.A5.A2.
A2.A4.2A.A.3A4.A2.A4.A$3.A.A2.A5.A.A.A2.A6.A.A.2A.2A.A2.A6.A$4.A.A.A
4.A.A.A.A.A5.A.A3.A3.A.A.A2.A.2A$5.A.A.A2.A2.A2.A.A.A3.A.A.A2.A.A2.A.
A.A$6.A2.A.A2.A4.A.A3.A.A.A4.A.A.A2.A.A.A2.A$8.A.A.A.A5.A.A.A2.3A5.A.
A4.A5.A$9.A.A.A2.A4.A.7A6.A.A.2A.A$10.A2.A5.2A.A.2A.A.A7.A4.A3.A.A$
12.A.A.2A4.A.A.A2.A5.2A.A2.A.A.A.2A$13.A4.A2.A6.A.A2.A4.A.A.A.4A$15.A
2.A.A.A3.2A2.A.A.A2.A2.A2.A.4A$19.A2.A.A3.A2.A2.A.A2.A6.3A$21.A.A.A2.
A4.A.A.A.A5.A$22.A.A4.A.2A2.A2.A.A3.A$23.A.A.2A5.A4.A4.A$24.A4.A2.A.A
5.A.A.A$26.A2.A.A.A2.A4.4A$30.A2.A5.2A.3A2.A$32.A.A.2A5.5A$33.A4.A2.A
2.A.2A$35.A2.A.A.A2.A$39.A2.A5.A$41.A.A.2A$42.A4.A$44.A2.A$48.A!
Notice that the vertical position of the edge cells tends to increase when moving from the front to the back of the ship, except when the edge cell (x) is dead and has this exact neighborhood with this exact orientation:

Code: Select all

*..
.x.
.**
Also notice that this appears to be the only case where a dead edge cell has more than two live neighbors. I believe an inductive argument will show that this is always the case. More specifically, moving from the front to the back of a partial, any edge cell x must satisfy the following conditions:
  1. If x is alive, then it is not at a lower vertical position than an earlier (more leftward) edge cell.
  2. If x is dead and has more than 2 live neighbors, then x has the following neighborhood in this exact orientation:

    Code: Select all

    *..
    .x.
    .**
  3. If x is dead and is lower than an earlier edge cell, then it also has the above neighborhood in that exact orientation.
Then it is not too hard to show that a s2s search forces at least one dead edge cell to have more than two live neighbors, but with a different neighborhood than the one above. This contradiction essentially means that the edge LaundryPizza03 found from the s2s search is incompatible with the edge found from a f2b search.

I will post again when I've worked out the details, but I may lean heavily on JLS to chart out the implications of setting various cells.
-Matthias Merzenich

Sokwe
Moderator
Posts: 3367
Joined: July 9th, 2009, 2:44 pm

Re: Life-like p1 photon project

Post by Sokwe » November 11th, 2024, 2:34 am

I've demonstrated to myself using JLS that rules in the range B246/S157 - B24678/S15678. This means checking the following four rules:

B2468/S1578
B24678/S1578
B2468/S15678
B24678/S15678

A complete proof would be too much work to write down (it's very tedious to even perform all the JLS checks), so I'll just describe how you can replicate it.

Consider a p1 photon moving left, and define edge cells as in this post. We show by induction starting from the front of the ship, that all edge cells must satisfy the following conditions:
  1. If x is alive, then it is not at a lower vertical position than an earlier (more leftward) edge cell.
  2. If x is dead and has more than 2 live neighbors, then x has the following neighborhood in this exact orientation:

    Code: Select all

    *..
    .x.
    .**
  3. If x is dead and is lower than an earlier edge cell, then it also has the above neighborhood in that exact orientation.
First, consider the topmost alive cell from the leftmost column of the photon (arrows indicate repeated rows or columns):

Code: Select all

    ^
    |
   ...
   ...
<- ..*
   ..?
   ..?
   ..?
    |
    V
The cell to the left of this alive cell must be born in order for the ship to travel left at one cell per generation, so the following is forced:

Code: Select all

    ^
    |
   ...
   ...
<- .z*
   ..*
   ..?
   ..?
    |
    V
Where z is a dead edge cell. Notice that x satisfies the three conditions above.

Now assume that x is an edge cell and that x and all previous edge cells satisfy the three conditions above. We want to prove that the next edge cell also satisfies these conditions. The way to do this is to set up a JLS search and manually change cells to see what the implications are. You back up if a cell setting forces a valid edge cell (i.e., one that satisfies the three conditions) in the column immediately to the right of x, or forces x or any edge cell in any of the columns to the left of x to be invalid.

JLS should be set to one of the four rules above, with period 1 and translation -1 cells to the right (i.e., 1 cell to the left). The JLS grid should look something like this:

Code: Select all

.....................###########
.....................###########
.....................?????????##
.....................?????????##
.....................?????????##
.....................?????????##
.....................?????????##
.....................?????????##
.....................?????????##
.....................?????????##
.....................?????????##
.....................?????????##
.....................?????????##
##??????????????????A?????????##
##??????????????????B?????????##
##????????????????????????????##
##????????????????????????????##
##????????????????????????????##
##????????????????????????????##
##????????????????????????????##
##????????????????????????????##
################################
################################
where '.' represents an off cell, '?', 'A', and 'B' represents a cell not yet set, and '#' represents an unchecked cell (in JLS, highlight a group of cells and press 'u' to set them to unchecked).

Now either 'A' or 'B' represents the latest valid edge cell such that all edge cells to the left are also valid. The point of 'B' being one cell lower is that it might would represent a valid edge cell with the 3-live-cell neighborhood.

Start by assuming that the latest valid edge cell has the 3-live-cell neighborhood. Your setup should look like the following:

Code: Select all

.....................###########
.....................###########
.....................?????????##
.....................?????????##
.....................?????????##
.....................?????????##
.....................?????????##
.....................?????????##
.....................?????????##
.....................?????????##
.....................?????????##
.....................?????????##
.....................C????????##
##?????????????????*..????????##
##?????????????????...????????##
##?????????????????.**????????##
##????????????????????????????##
##????????????????????????????##
##????????????????????????????##
##????????????????????????????##
##????????????????????????????##
################################
################################
where 'C' is an unset cell, just like a '?' cell. As an example, notice that if cell C is alive, then the cell directly to the left of it has at least two live neighbors, so the cell we assumed was an edge cell is actually not, since there is an edge cell somewhere above it. Therefore cell C must be dead. It's good to recognize these easy-to-see invalid choices to quickly narrow down the search. However, many choices will not be immediately obviously invalid, so you will need to rely on the JLS forced cells.

Now keep changing cells one, or sometimes two at a time and back up in three cases:
  • a choice forces a valid edge cell in the column immediately to the right of the column containing B
  • a choice makes B invalid as an edge cell
  • a choice forces an invalid edge cell in any of the columns to the left of the column containing B
With a bunch of tedious case checking, it is possible to show that this will always occur.

With cell B solved, we can treat it like an ordinary '?' cell. Cell A is much more work. First we must assume that it is alive, and then follow the same process as with cell 'B', then we must assume it's dead and do it all again.

Having done all that (and I have for each of the four rules listed above), we have shown inductively that all edge cells starting from the front of the ship have the three properties listed above.

Now we simply need to show that this results in some sort of contradiction. Consider the rightmost cell in the topmost column of the photon. The JLS setup would look like the following:

Code: Select all

................................
................................
##?????????????????*............
##????????????????????????????##
##????????????????????????????##
##????????????????????????????##
##????????????????????????????##
##????????????????????????????##
##????????????????????????????##
##????????????????????????????##
################################
################################
Then it's just a matter of checking (in all four rules listed above), that all cell choices eventually result in an invalid edge cell, contradicting the claim that all edge cells must satisfy the 3 criteria listed above. Therefore, there are actually no edge cells, and the photon doesn't exist.

As mentioned before, this means that B2458/S13467 is the only rule with S0 that remains unsolved. When I started this project, this was the first rule to catch my eye, and it's still vexing me.
-Matthias Merzenich

Sokwe
Moderator
Posts: 3367
Joined: July 9th, 2009, 2:44 pm

Re: Life-like p1 photon project

Post by Sokwe » November 12th, 2024, 5:02 am

I have proven that B24567/S01568 (and thus B24567/S0156) contains no finite p1 photons.

For this proof, "=>" means implication and "->" means the last column of the pattern is repeated indefinitely.

Lemma 1: the following implication holds:

Code: Select all

?????...?????    ???.......???
?????...?????    ??.........??
?????.*??????    ?.....*.....?
??????*??????    ?....***....?
????????????? => ?...**.**...?
?????????????    ?..**.*.**..?
?????????????    ?.**.*.*.**.?
?????????????    ????*.*.*????
?????????????    ?????????????
proof: easy to check with JLS. QED.

Recall:

Lemma 2: Given the pattern

Code: Select all

  1234
A ....
B .... ->
C **??
proof: Cell B2 cannot be born, so it cannot have 2 live neighbors. Thus, cell C3 must be alive. By induction, this sequence must continue indefinitely. QED.

Lemma 3: Given the pattern

Code: Select all

  1234567
A .......
B .......
C .*????? ->
D ?.?????
E ???????
row D must have infinite population.
proof: The cell at C3 must be dead, otherwise the cell above it would be born. Since the on cell at C2 must die, it must have at least, and thus exactly, two live neighbors. This gives the following configuration:

Code: Select all

  12345678
A ........
B ........
C .*.????? ->
D *.*?????
E ????????
The '?' cell at C4 must be off, otherwise the cell at B3 would be born. Likewise, the '?' cell at D4 must be off, otherwise the cell at C3 would be born.
We now have the following configuration:

Code: Select all

  12345678
A ........
B ........
C .*..???? ->
D *.**????
E ????????
The cell at C4 must remain dead, so it must have 0, 1, 3, or 8 live neighbors. Given the cells set around it, it must have exactly 3 live neighbors, so cells C5 and D5 cannot both be alive, nor both dead. If cell D5 is alive, then cell C5 is dead, so columns 4 and 5 match columns 3 and 4, and we are in the same situation we were before. If, on the other hand, cell C5 is alive, then we have the same configuration in rows 4 and 5 as we have in 1 and 2. This implies the following:

Code: Select all

  12345678
A ........
B ........
C .*..*..? ->
D *.**.**?
E ????????
so we are again in the same situation. Therefore, each choice of dead or live cells in row C will force additional live cells in row D, so row D's population is infinite. QED.

Consider a p1 photon traveling downward. Define an edge cell of this photon to be any live cell such that all cells to the right of that cell in the same row are dead.

We can show using JLS that edge cells appearing in one of the following two blocks will force another edge cell also appearing in one of these blocks that is strictly lower and more rightward:

Code: Select all

*.**......
.*.**..... ->

*.*.......
.*.**..... ->
Notice that the rightmost edge cell in the back-most row of the photon gives the initial configuration seen in lemma 1 (flipped horizontally). This means that the back of the photon contains the implied triangle configuration. Notice that this implied configuration includes the first block above, except that the dead cells might not extend indefinitely to the right. If they do not, then another lemma 1 triangle must exist somewhere to the right and down from the first triangle. Let us then work from the rightmost such triangle in the photon. Then the implied cells in this rightmost triangle are edge cells. Note that the first block above then occurs in the pattern. Since this block forces another block in the set with an edge cell strictly lower and to the right of the edge cells in the starting block, the pattern must extend indefinitely and cannot be a photon.

It is not too hard to show using JLS that each block in the set implies either itself or the other block with an edge cell further to the right than all earlier edge cells. I won't show all the details, but I'll attempt to give an idea of how to do this.

Start by setting up a JLS search in rule B24567/S01568 with period 1 and translation 1 cell down. The grid should look something like the following:

Code: Select all

       123456789
  #####################
  #####################
  ##??*.**...........##
  ##??.*.**..........##
A ##?????????????????##
B ##?????????????????##
C ##?????????????????##
D ##?????????????????##
E ##?????????????????##
F ##?????????????????##
G ##?????????????????##
  #####################
  #####################
By setting cell A3 to be dead, we get the following implication:

Code: Select all

       123456789
  #####################
  #####################
  ##??*.**...........##
  ##??.*.**..........##
A ##???.*.**..???????##
B ##?????????????????##
C ##?????????????????##
D ##?????????????????##
E ##?????????????????##
F ##?????????????????##
G ##?????????????????##
  #####################
  #####################
This almost gives the first block again, but we still need to show that there are no more live cells to the right of cell A7 in row A. To see this, note that setting cell A8 on would result either in the conditions for lemma 1 or for lemma 3. In the lemma 1 case, we would have an implied lemma 1 triangle, but we already assumed that we were starting from the rightmost such triangle. In the lemma 3 case, the population of row B must be infinite, so it cannot be part of a finite photon. Therefore all cells in row A to the right of cell A7 are dead, as desired.

Alternatively, by setting cell A3 to be dead we can use the above techniques along with lemma 2 and playing around manually with JLS to see that the following cells are forced:

Code: Select all

       123456789
  #####################
  #####################
  ##??*.**...........##
  ##??.*.**..........##
A ##??..**...........##
B ##????.***.........##
C ##????*.*..........##
D ##????.*.**........##
E ##?????.*??????????##
F ##?????????????????##
G ##?????????????????##
  #####################
  #####################
where rows C and D give the second of the two blocks.

We would now start over with a search setup starting from the second block to show that it implies either of the two blocks. I leave this as an exercise for the reader.
-Matthias Merzenich

amling
Posts: 1154
Joined: April 2nd, 2020, 9:47 pm

Re: Life-like p1 photon project

Post by amling » November 12th, 2024, 3:59 pm

Sokwe wrote:
November 9th, 2024, 6:57 am
Sokwe wrote:
November 8th, 2024, 4:25 pm
The rules B25/S01456 - B2578/S014568 definitely do not have p1 photons, and it should be possible to prove with a careful case analysis.
Here's a laborious "proof" (suggests using JLS to demonstrate some portions):

...
Here is a perhaps shorter and hopefully more computer-mediated argument:

I want to call something a "spike" if it looks like this where the requirements are extended repeating indefinitely up and left:

Code: Select all

| ...... |
| ...... |
| ...... |
| ...... |
| ....*. |
| ????** |
Note I do not care at all what is to its right, just that its point is the leftmost cell in its row and we have zeros above and above and to the left of it.

A from-zeros s2s search will quickly show such a spike is forced in the very first globally nonzero row. After that let us ask where is the left-most nonzero cell in the next row? It could be in the spike:

Code: Select all

| LLLuuRRRRR |
| .....WWW.. |
| .....WWW.. |
| ...*.WWW.. |
| ...**WWW.. |
It could be one left:

Code: Select all

| LLLuuuRRRRR |
| ......WWW.. |
| ......WWW.. |
| ....*.WWW.. |
| ...***WWW.. |
Two left:

Code: Select all

| LLLuuuuRRRRR |
| .......WWW.. |
| .......WWW.. |
| .....*.WWW.. |
| ...*W**WWW.. |
Three left:

Code: Select all

| LLLuuuuuRRRRR |
| ........WWW.. |
| ........WWW.. |
| ......*.WWW.. |
| ...*WW**WWW.. |
Or four or more left:

Code: Select all

| LLLuuMMMuuRRRRR |
| ..........WWW.. |
| ..........WWW.. |
| ........*.WWW.. |
| ...*WWWW**WWW.. |
Note that while there are three M's in the picture, transitioning through only two M's is valid so this does cover only four left.

The first three input files fail to extend immediately. The fourth quickly enough outputs:

Code: Select all

20241112 11:47:35 [INFO] Unique:
20241112 11:47:35 [INFO] | ..... |
20241112 11:47:35 [INFO] | ..... |
20241112 11:47:35 [INFO] | ...*. |
20241112 11:47:35 [INFO] | *..** |
20241112 11:47:35 [INFO] | ****? |
20241112 11:47:35 [INFO] | *???? |
20241112 11:47:35 [INFO] | ????? |
20241112 11:47:35 [INFO] | ????? |
Combined with the input file guaranteeing that fourth row cell is the leftmost on cell in the row it shows it is another spike down/left of there.

The fifth input file quickly enough outputs:

Code: Select all

20241112 11:47:44 [INFO] Unique:
20241112 11:47:44 [INFO] | ..   .. |
20241112 11:47:44 [INFO] | ..   .. |
20241112 11:47:44 [INFO] | ..   *. |
20241112 11:47:44 [INFO] | *.   ** |
20241112 11:47:44 [INFO] | **   *? |
20241112 11:47:44 [INFO] | *?   ?? |
20241112 11:47:44 [INFO] | ??   ?? |
20241112 11:47:44 [INFO] | ??   ?? |
Which similarly shows it's forced to be another spike.

EDIT: Err, those about outputs are from B258/S014568 searches. B2578/S014568 goes down the same way though, with three failing instantly and the other two quickly forcing the spikes in the same spots in unique views.

amling
Posts: 1154
Joined: April 2nd, 2020, 9:47 pm

Re: Life-like p1 photon project

Post by amling » November 12th, 2024, 4:26 pm

Sokwe wrote:
November 10th, 2024, 9:30 pm
Keith, can you try a 60GB B2458/S13467 c1-s2s search when you get a chance? I think it will eventually run out of memory, but I would like to know what w_pos it reaches, how fast the memory use is going up when it dies, and what the last partial results look like. The closely related rule B245/S13467 can be shown to have no p1 photons using a simple c1-s2s search.
Oh, that's the rule I had left giant searches of running while I was out of town. I had run them in increments of 10 since they were so very slow and was debating between bothering to chase down individually or just give up and forget them all. I'll attach the logs for mid_steps=210 (which finished in 29 hours) and mid_steps=220 (which died in 24 hours). My original projections from smaller searches had predicted ~mid_steps=206 to be the limit. Hopefully the partials will mean more to your eyes than they did to mine.

Let me know if you want the contents or the stats of the smaller searches or if you think it's somehow worth it to chase down the exact limit for 60 GB of memory.
Attachments
s2s.S220.log
(4.76 MiB) Downloaded 15 times
s2s.S210.log
(8.63 MiB) Downloaded 17 times

amling
Posts: 1154
Joined: April 2nd, 2020, 9:47 pm

Re: Life-like p1 photon project

Post by amling » November 12th, 2024, 6:51 pm

I've sketched another bunch of LLSSS hacks, "proj002" to try to formalize and automate an argument like the one presented above for no p1 photons in B246/S157.

The core bit of code provides an analysis of what possible AF2-width blocks could be the right edge of a partial at a given depth. Combined with carefully crafted input files it can be used to show that a given set of blocks on the right edge forces itself on the right edge on the next row.

For example for B246/S157 I can set AF2=4 and run...

Code: Select all

rlife llsss-recentering-wao c1-f2b --rule 'B246/S157' '@zero' --wao-left-pad 00 --wao-right-pad 00 --wao-idx ALL --ends proj002:10:03:2.in,zero_and_halt XX
This shows the possible right-most 3x4 blocks at W depth [10, 13). Crucially, the analyzer only analyzes partials that are nonzero somewhere in the indicated rows and so I've included zero_and_halt to make sure no back ends are found anywhere along the way.

This outputs some updates as the set of possible right-hand edges shrinks. I stopped it after...

Code: Select all

20241112 14:33:54 [INFO] Proj002Step depth 10 updating to 34 blocks...
...after which 2.in contains this:

Code: Select all

| LLL!LLLL!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!RRRR |
| ...!WWWW!WWW.......!WWW..*....!WWW...*...!WWW.*.....!WWW..*....!WWW.......!WWW..*....!WWW..*....!WWW.*.....!WWW.*.....!WWW.*.....!WWW.*.....!WWW..*....!WWW.......!WWW..*....!WWW..*....!WWW.*.....!WWW.*.....!WWW.*.....!WWW.......!WWW..*....!WWW.**....!WWW.*.....!WWW*.*....!WWW*.*....!WWW*.*....!WWW**.....!WWW**.....!WWW*......!WWW*......!WWW*......!WWW*.*....!WWW*.*....!WWW**.....!.... |
| ...!WWWW!WWW.......!WWW.*.*...!WWW.*.....!WWW...*...!WWW...*...!WWW.**....!WWW.*.....!WWW.*.*...!WWW..*....!WWW.......!WWW..*....!WWW.*.....!WWW*..*...!WWW***....!WWW**.....!WWW**.*...!WWW*.*....!WWW*......!WWW*.*....!WWW*......!WWW*......!WWW*..*...!WWW*..*...!WWW...*...!WWW.*.....!WWW.*.*...!WWW..*....!WWW..*....!WWW.......!WWW..*....!WWW.**....!WWW.*.....!WWW.*.*...!WWW...*...!.... |
| ...!WWWW!WWW..**...!WWW..*....!WWW.*.....!WWW.*.....!WWW***....!WWW*..*...!WWW*..*...!WWW*.*....!WWW*..*...!WWW****...!WWW**.*...!WWW*.**...!WWW.**....!WWW...*...!WWW...*...!WWW..*....!WWW...*...!WWW.***...!WWW.*.*...!WWW*.**...!WWW**.*...!WWW*.*....!WWW**.....!WWW.**....!WWW...*...!WWW..*....!WWW...*...!WWW.*.*...!WWW*.**...!WWW**.*...!WWW*..*...!WWW*..*...!WWW*.*....!WWW**.....!.... |
This specially-crafted input file represents any finite-width start where the rightmost 3x4 block of the pattern is one of those 34. In terms of proof we have that any finite pattern must have nonzero rows [10, 13) and the right-most edge must be one of these 34 3x4 blocks.

Now restarted with this...

Code: Select all

rlife llsss-recentering c1-f2b --rule 'B246/S157' '2.in' --ends proj002:01:03:3.in,zero_and_halt XX
...it will continue from those 34 blocks putting the possible next rows' right-hand blocks into 3.in. I gave up after this got down to 40 such blocks. After a few more steps like this eventually this input file of 42 blocks...

Code: Select all

| LLL!LLLL!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!LLLuuuuRRR!RRRR |
| ...!WWWW!WWW.......!WWW..*....!WWW...*...!WWW.**....!WWW.*.....!WWW.*.....!WWW..*....!WWW.......!WWW..*....!WWW..*....!WWW.*.....!WWW.*.....!WWW.*.....!WWW.*.....!WWW..*....!WWW.......!WWW..*....!WWW..*....!WWW.*.....!WWW.*.....!WWW.*.....!WWW.......!WWW.......!WWW..*....!WWW..*....!WWW.**....!WWW.*.....!WWW*.*....!WWW*......!WWW*.*....!WWW*.*....!WWW**.....!WWW**.....!WWW*......!WWW*......!WWW*......!WWW*.*....!WWW*.*....!WWW***....!WWW**.....!WWW*......!WWW*.*....!.... |
| ...!WWWW!WWW.......!WWW.*.*...!WWW.*.....!WWW...*...!WWW...*...!WWW.*.....!WWW...*...!WWW.**....!WWW.*.....!WWW.*.*...!WWW..*....!WWW.......!WWW..*....!WWW.*.....!WWW*..*...!WWW***....!WWW**.....!WWW**.*...!WWW*.*....!WWW*......!WWW*.*....!WWW*......!WWW*.*....!WWW*......!WWW**.*...!WWW*..*...!WWW*..*...!WWW...*...!WWW.**....!WWW.*.....!WWW.*.*...!WWW..*....!WWW..*....!WWW.......!WWW..*....!WWW.**....!WWW.*.....!WWW.*.*...!WWW...*...!WWW...*...!WWW*......!WWW**.*...!.... |
| ...!WWWW!WWW..**...!WWW..*....!WWW.*.....!WWW..*....!WWW.*.....!WWW..**...!WWW***....!WWW*..*...!WWW*..*...!WWW*.*....!WWW*..*...!WWW****...!WWW**.*...!WWW*.**...!WWW.**....!WWW...*...!WWW...*...!WWW..*....!WWW...*...!WWW.***...!WWW.*.*...!WWW*.**...!WWW**.*...!WWW**.*...!WWW*.*....!WWW*.*....!WWW**.....!WWW.**....!WWW...*...!WWW...*...!WWW..*....!WWW...*...!WWW.*.*...!WWW*.**...!WWW**.*...!WWW*..*...!WWW*..*...!WWW*.*....!WWW*.*....!WWW**.....!WWW..**...!WWW..*....!.... |
...reproduces itself as the next step. This means any FWAED half plane that starts with one of these on the right must continue with one on the right on the next row.

Since each of these upper bounds on possible right edges was guaranteed (at some depth) in a finite pattern we have that there can't be one.

I will move on to attempting to reproduce this for the entire range B246/S157 - B24678/S15678 and clean up and publish the hacks. Presumably I will eventually edit the results onto the bottom of this post.

EDIT: The exact same line of attack works for all four rules B24678/S15678, B24678/S1578, B2468/S15678, and B2468/S1578. In particular they reach the same set of 42 blocks which then reproduce themselves. I verified the final four log files have distinct "Cols sizes" output so I am relatively sure I have correctly run for 4 distinct rules. I have merged the code as-is into the master branch and published to codeberg. I'm sure it could be refined and improved in performance and output format but it's good enough for now.

amling
Posts: 1154
Joined: April 2nd, 2020, 9:47 pm

Re: Life-like p1 photon project

Post by amling » November 12th, 2024, 8:05 pm

Sokwe wrote:
November 12th, 2024, 5:02 am
I have proven that B24567/S01568 (and thus B24567/S0156) contains no finite p1 photons.
"proj002" hacks work to formalize this and trace the right edge for B24567/S01568 as well. With AF2=5 this...

Code: Select all

rlife llsss-recentering-wao c1-b2f --rule 'B24567/S01568' '@zero' --wao-left-pad 00 --wao-right-pad 00 --wao-idx ALL --ends proj002:10:03:2.in,zero_and_halt XX
...restricts to these 12 right edge 3x5 blocks at depth [10, 13):

Code: Select all

| LLLL!LLLLL!LLLLuuuuuRRRR!LLLLuuuuuRRRR!LLLLuuuuuRRRR!LLLLuuuuuRRRR!LLLLuuuuuRRRR!LLLLuuuuuRRRR!LLLLuuuuuRRRR!LLLLuuuuuRRRR!LLLLuuuuuRRRR!LLLLuuuuuRRRR!LLLLuuuuuRRRR!LLLLuuuuuRRRR!RRRRR |
| ....!WWWWW!WWWW.........!WWWW.........!WWWW.**......!WWWW..*......!WWWW.**......!WWWW.*.......!WWWW.**......!WWWW.***.....!WWWW*.*......!WWWW*.**.....!WWWW*.**.....!WWWW***......!..... |
| ....!WWWWW!WWWW.........!WWWW...*.....!WWWW..***....!WWWW.***.....!WWWW..***....!WWWW*.**.....!WWWW*.**.....!WWWW*.*......!WWWW.*.**....!WWWW.*.**....!WWWW.**......!WWWW*.**.....!..... |
| ....!WWWWW!WWWW....*....!WWWW..***....!WWWW.*.*.....!WWWW**.**....!WWWW**.*.....!WWWW.*.**....!WWWW.*.**....!WWWW.*.**....!WWWW..**.....!WWWW..**.....!WWWW..***....!WWWW.*.**....!..... |
With those as input...

Code: Select all

rlife llsss-recentering c1-b2f --rule 'B24567/S01568' '2.in' --ends proj002:01:03:3.in,zero_and_halt XX
...quickly reproduces the same 12 blocks.

Sokwe
Moderator
Posts: 3367
Joined: July 9th, 2009, 2:44 pm

Re: Life-like p1 photon project

Post by Sokwe » November 12th, 2024, 10:18 pm

amling wrote:
November 12th, 2024, 6:51 pm
This shows the possible right-most 3x4 blocks at W depth [10, 13).
Why at W depth [10, 13)? Is it an arbitrary choice?

Edit: more questions:

Using 10:4 seems like it would create width-4 blocks? Would that potentially reduce the possibility of accidentally hitting a zero edge at one of the later llsss-recentering steps when really none should exist? Same question with changing AF2=4 to AF2=5. What advantage does this give?
-Matthias Merzenich

amling
Posts: 1154
Joined: April 2nd, 2020, 9:47 pm

Re: Life-like p1 photon project

Post by amling » November 12th, 2024, 11:14 pm

Sokwe wrote:
November 12th, 2024, 10:18 pm
amling wrote:
November 12th, 2024, 6:51 pm
This shows the possible right-most 3x4 blocks at W depth [10, 13).
Why at W depth [10, 13)? Is it an arbitrary choice?
Yeah, arbitrary. In one direction anything present at each depth is going to be present at the next so it may save some searches to skip downward more than one row and quickly collect blocks you're going to have to anyway. On the other hand it can take longer for deeper positions to stabilize.
Sokwe wrote:
November 12th, 2024, 10:18 pm
Using 10:4 seems like it would create width-4 blocks?
In "proj002:10:03:2.in" the "10" is the initial W position and the "03" is the W height of the blocks. Their U width is always AF2 and while I had ideas about analyzing blocks wider than AF2 they are complicated and I would rather not have to as long as we can get away without.
Sokwe wrote:
November 12th, 2024, 10:18 pm
Would that potentially reduce the possibility of accidentally hitting a zero edge at one of the later llsss-recentering steps when really none should exist? Same question with changing AF2=4 to AF2=5. What advantage does this give?
Yes, I believe bigger height and bigger width both provide more accurate upper bounds on the space of patterns, at least when actually run to stabilization.

Unfortunately bigger height/width I believe also mean more memory, bigger sets of blocks, and more time, thus increasing chance of failure, both by hitting memory and dying or by operator impatience and moving on to a later search with an incompletely-reduced set of blocks (which is still a valid upper bound, it just may not be the best that would be produced by the search).

This is all true both for this and for "proj001".

I do not yet have a great feel for the relative values of increasing width and increasing height in terms of which has better increase of accuracy per increase in size. It's all pretty new territory.

Sokwe
Moderator
Posts: 3367
Joined: July 9th, 2009, 2:44 pm

Re: Life-like p1 photon project

Post by Sokwe » November 13th, 2024, 4:08 am

amling wrote:
November 12th, 2024, 6:51 pm
I've sketched another bunch of LLSSS hacks, "proj002" to try to formalize and automate an argument like the one presented above for no p1 photons in B246/S157.
Let me see if I'm doing this right. I'm working in B26/S0256 (I tried with B8 and S8, but kept getting a zero end in one of the later steps).

I wanted to do a s2s search where the front edge of the photon is the one being tested. Since c1-s2s has the front edge on the left, I figured I needed to use raw:1:0:0:1:0:1:0:1:0, so that the front edge is on the right. I tried different values, but I eventually got it to work with AF2=6 and and initially run with --ends proj002:15:04:2.in. I stopped the first step at 44 blocks, the second step at 48, and the third at 49, which looked like this:

Code: Select all

| LLLLL!LLLLLL!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!RRRRRR |
| .....!WWWWWW!WWWWW...........!WWWWW...........!WWWWW...........!WWWWW...........!WWWWW...*.......!WWWWW....*......!WWWWW...........!WWWWW....*......!WWWWW...........!WWWWW.*.........!WWWWW...........!WWWWW...........!WWWWW...........!WWWWW...*.......!WWWWW....*......!WWWWW...........!WWWWW...........!WWWWW...........!WWWWW...........!WWWWW...........!WWWWW...*.......!WWWWW....*......!WWWWW...*.......!WWWWW...*.......!WWWWW...........!WWWWW...........!WWWWW...........!WWWWW....*......!WWWWW...........!WWWWW....*......!WWWWW*..........!WWWWW*..........!WWWWW*...*......!WWWWW*..........!WWWWW*..........!WWWWW*..........!WWWWW*..*.......!WWWWW*...*......!WWWWW*..........!WWWWW*..........!WWWWW***........!WWWWW**.*.......!WWWWW*..........!WWWWW*..........!WWWWW***........!WWWWW*...*......!WWWWW**.*.......!WWWWW**.*.......!WWWWW**.*.......!...... |
| .....!WWWWWW!WWWWW...........!WWWWW...........!WWWWW...*.......!WWWWW...........!WWWWW....*......!WWWWW..**.*.....!WWWWW...........!WWWWW..**.*.....!WWWWW.*.........!WWWWW.*.........!WWWWW...........!WWWWW...........!WWWWW...*.......!WWWWW....*......!WWWWW..**.*.....!WWWWW...*.......!WWWWW...........!WWWWW...*.......!WWWWW...........!WWWWW...........!WWWWW....*......!WWWWW..**.*.....!WWWWW*...*......!WWWWW*...*......!WWWWW*..........!WWWWW*..........!WWWWW*..........!WWWWW****.*.....!WWWWW**.*.......!WWWWW****.*.....!WWWWW...*.......!WWWWW..*........!WWWWW..**.*.....!WWWWW...*.......!WWWWW.*.........!WWWWW.*.........!WWWWW....*......!WWWWW..**.*.....!WWWWW.*.........!WWWWW*..........!WWWWW*..........!WWWWW****.......!WWWWW*..........!WWWWW*..*.......!WWWWW*..........!WWWWW****.*.....!WWWWW*...*......!WWWWW****.......!WWWWW*...*......!...... |
| .....!WWWWWW!WWWWW...........!WWWWW....*......!WWWWW....*......!WWWWW....*......!WWWWW..**.*.....!WWWWW.*****.....!WWWWW.*.........!WWWWW.*****.....!WWWWW.*.........!WWWWW....*......!WWWWW...........!WWWWW...*.......!WWWWW....*......!WWWWW..**.*.....!WWWWW.*****.....!WWWWW*...*......!WWWWW*..........!WWWWW***..*.....!WWWWW*..........!WWWWW*...*......!WWWWW****.*.....!WWWWW******.....!WWWWW..**.*.....!WWWWW..**.*.....!WWWWW.*.........!WWWWW*..........!WWWWW*...*......!WWWWW******.....!WWWWW*...*......!WWWWW******.....!WWWWW....*......!WWWWW..*........!WWWWW..****.....!WWWWW....*......!WWWWW**.........!WWWWW**..*......!WWWWW****.*.....!WWWWW******.....!WWWWW*.*........!WWWWW....*......!WWWWW.**.*......!WWWWW.*.........!WWWWW....*......!WWWWW....*......!WWWWW.**.*......!WWWWW******.....!WWWWW****.*.....!WWWWW**.........!WWWWW****.*.....!...... |
| .....!WWWWWW!WWWWW.....*.....!WWWWW.....*.....!WWWWW..**.*.....!WWWWW.*...*.....!WWWWW.*****.....!WWWWW..**.......!WWWWW.*...*.....!WWWWW.*.*.......!WWWWW.....*.....!WWWWW.....*.....!WWWWW*....*.....!WWWWW***..*.....!WWWWW****.*.....!WWWWW******.....!WWWWW**.*.......!WWWWW..**.*.....!WWWWW.*...*.....!WWWWW.....*.....!WWWWW*....*.....!WWWWW*....*.....!WWWWW******.....!WWWWW**.*.......!WWWWW..****.....!WWWWW******.....!WWWWW**...*.....!WWWWW.....*.....!WWWWW.....*.....!WWWWW...*.......!WWWWW****.*.....!WWWWW*..*.......!WWWWW..**.*.....!WWWWW*....*.....!WWWWW*..*.......!WWWWW****.*.....!WWWWW.....*.....!WWWWW.....*.....!WWWWW******.....!WWWWW**.*.......!WWWWW***..*.....!WWWWW.....*.....!WWWWW.*...*.....!WWWWW..**.*.....!WWWWW**...*.....!WWWWW****.*.....!WWWWW**...*.....!WWWWW...*.......!WWWWW.*****.....!WWWWW..**.*.....!WWWWW******.....!...... |
Starting from this input, I got the same group of 49 blocks. Does that mean there are no p1 photons in B26/S0256? As I mentioned, I was unable to solve the rules in the same group of four with B8 or S8, and I'm not sure it they're actually solvable with this method. It might be possible to solve B267/S0256, but I haven't tried it.
-Matthias Merzenich

amling
Posts: 1154
Joined: April 2nd, 2020, 9:47 pm

Re: Life-like p1 photon project

Post by amling » November 13th, 2024, 1:02 pm

Sokwe wrote:
November 13th, 2024, 4:08 am
I wanted to do a s2s search where the front edge of the photon is the one being tested. Since c1-s2s has the front edge on the left, I figured I needed to use raw:1:0:0:1:0:1:0:1:0, so that the front edge is on the right.
Yeah, I got caught by the same problem (can't do s2s front side easily) and used the same geometry earlier in a failed attempt on another rule. Hard to say what's worth doing: add c1-s2s-east geometry or the like? add left/right option to proj002? nothing since we can hack around it well enough?
Sokwe wrote:
November 13th, 2024, 4:08 am
... B26/S0256 ... AF2=6 ... --ends proj002:15:04:2.in ...

Starting from this input, I got the same group of 49 blocks. Does that mean there are no p1 photons in B26/S0256? As I mentioned, I was unable to solve the rules in the same group of four with B8 or S8, and I'm not sure it they're actually solvable with this method. It might be possible to solve B267/S0256, but I haven't tried it.
Yes, should mean no photons. I took a slightly different path of depths and block sets when I did it to verify just now, but I ended up the same place (same exact set of 49 blocks). Two things I thought might be worth mentioning:

(*) You may have noticed weird hangs before first output. That's it choking through interpretting the giant 4x6 and 4x5 fields of wildcards in the input file for which there are of course 2^24 and 2^20 possibilities. That code is not particularly optimized (or even multithreaded I think) since it has not historically been used much and I've just suffered through the few times I have used it. W height 2 would be much faster for this part of things (just 2x6 and 2x5 fields of wildcards) and I generally suspect width matters more than height for accuracy, but I have little actual data about it and of course a little height makes it a lot, lot clearer to human eyes what the possible right edges actually look like.

(*) A trick maybe worth knowing is that one can dump the right side blocks at many depths on the same search. E.g. I dumped for all depths 1-20 on my initial search and the pattern of updates convinced me it possibly reached its stable value at depth 10 with 42 blocks (depths 10+ all seemed to reach the same 42 and I saw the same pattern of size changes roll down one depth at a time). This is sort of a trade-off of computer time for human sanity since it will of course spend a bunch of time computing these sets and writing them out.

EDIT: I did a little testing with 2x6 and 3x6 blocks for this case. For both I was convinced that the initial search stabilized at depth 10. For 2x6 blocks the ensuing searches, each allowed to run to 60G and taking whatever upper bound on the next they had thus far produced, did eventually find a zero end. For 3x6 blocks the ensuing searches eventually settled on this set of 42 blocks:

Code: Select all

| LLLLL!LLLLLL!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!RRRRRR |
| .....!WWWWWW!WWWWW...........!WWWWW...........!WWWWW...*.......!WWWWW...........!WWWWW....*......!WWWWW..**.*.....!WWWWW...........!WWWWW..**.*.....!WWWWW.*.........!WWWWW.*.........!WWWWW...........!WWWWW..*........!WWWWW..**.*.....!WWWWW...........!WWWWW...*.......!WWWWW....*......!WWWWW..**.*.....!WWWWW...*.......!WWWWW...........!WWWWW...*.......!WWWWW.*.........!WWWWW...........!WWWWW...........!WWWWW....*......!WWWWW..**.*.....!WWWWW.*.........!WWWWW*..........!WWWWW*...*......!WWWWW*...*......!WWWWW*..........!WWWWW****.......!WWWWW*..*.......!WWWWW*...*......!WWWWW*..........!WWWWW*..........!WWWWW*..........!WWWWW*..........!WWWWW****.......!WWWWW****.*.....!WWWWW*...*......!WWWWW**.*.......!WWWWW****.*.....!...... |
| .....!WWWWWW!WWWWW...........!WWWWW....*......!WWWWW....*......!WWWWW....*......!WWWWW..**.*.....!WWWWW.*****.....!WWWWW.*.........!WWWWW.*****.....!WWWWW....*......!WWWWW.*.........!WWWWW...........!WWWWW..*........!WWWWW..****.....!WWWWW...*.......!WWWWW....*......!WWWWW..**.*.....!WWWWW.*****.....!WWWWW*...*......!WWWWW*..........!WWWWW***..*.....!WWWWW**..*......!WWWWW*..........!WWWWW*...*......!WWWWW****.*.....!WWWWW******.....!WWWWW*.*........!WWWWW....*......!WWWWW..**.*.....!WWWWW..**.*.....!WWWWW.**.*......!WWWWW.*.........!WWWWW....*......!WWWWW..**.*.....!WWWWW.*.........!WWWWW.**.*......!WWWWW*..........!WWWWW*...*......!WWWWW**.........!WWWWW******.....!WWWWW****.*.....!WWWWW*...*......!WWWWW******.....!...... |
| .....!WWWWWW!WWWWW.....*.....!WWWWW.....*.....!WWWWW..**.*.....!WWWWW.*...*.....!WWWWW.*****.....!WWWWW..**.......!WWWWW.*...*.....!WWWWW.*.*.......!WWWWW.....*.....!WWWWW.....*.....!WWWWW*....*.....!WWWWW*....*.....!WWWWW*..*.......!WWWWW***..*.....!WWWWW****.*.....!WWWWW******.....!WWWWW**.*.......!WWWWW..**.*.....!WWWWW.*...*.....!WWWWW.....*.....!WWWWW.....*.....!WWWWW*....*.....!WWWWW*....*.....!WWWWW******.....!WWWWW**.*.......!WWWWW***..*.....!WWWWW.....*.....!WWWWW..****.....!WWWWW.*****.....!WWWWW.*...*.....!WWWWW..**.*.....!WWWWW****.*.....!WWWWW******.....!WWWWW**...*.....!WWWWW**...*.....!WWWWW.....*.....!WWWWW.....*.....!WWWWW..**.*.....!WWWWW...*.......!WWWWW******.....!WWWWW****.*.....!WWWWW*..*.......!...... |
So in this case, limited to 60G, 2x6 did not prove no ships where 3x6 could. It's a little weird to me that they're that different as you'd think just the bottom two rows of each block would matter. I suppose the difference could be the added constraint on the wildcards to the left of each block that they must have a prior third row above them which meets CA checks?

Sokwe
Moderator
Posts: 3367
Joined: July 9th, 2009, 2:44 pm

Re: Life-like p1 photon project

Post by Sokwe » November 13th, 2024, 6:31 pm

amling wrote:
November 12th, 2024, 6:51 pm
This specially-crafted input file represents any finite-width start where the rightmost 3x4 block of the pattern is one of those 34.
When is a block eliminated? Is it when a start with that exact block has no solutions? That is, could I manually start a search with only one of the blocks, run it, find it has no solutions, then manually remove it from the list of blocks? I ask, because in many cases running all blocks at once takes too much memory for my laptop.

Suppose I run the first step until I have 30 blocks, at which point I kill the search. Now if I continue from these 30 blocks, I'm not likely to eliminate any of them (I would presumably have to run the second search much deeper than the first to do so). Suppose I continue the search and get 10 new blocks, but then I run out of memory very quickly. Would it make sense to run a new search with just the 10 new blocks to see if any of them will be eliminated? The problem with this is that starting over with the 10 new blocks means that I have fewer restrictions on the new blocks than I did before when they were part of a larger partial result.

Perhaps all of this doesn't matter and there aren't enough cases to justify modifications just to work with low memory. On that note, can you try rules B268/S02568 and B2678/S02568 with raw:1:0:0:1:0:1:0:1:0, AF2=6, and W-height 4 up to 60GB?
-Matthias Merzenich

amling
Posts: 1154
Joined: April 2nd, 2020, 9:47 pm

Re: Life-like p1 photon project

Post by amling » November 13th, 2024, 7:18 pm

Sokwe wrote:
November 13th, 2024, 6:31 pm
amling wrote:
November 12th, 2024, 6:51 pm
This specially-crafted input file represents any finite-width start where the rightmost 3x4 block of the pattern is one of those 34.
When is a block eliminated? Is it when a start with that exact block has no solutions? That is, could I manually start a search with only one of the blocks, run it, find it has no solutions, then manually remove it from the list of blocks? I ask, because in many cases running all blocks at once takes too much memory for my laptop.
By "eliminated" presumably you mean some step of one of these techniques runs and produces a smaller output set than it did previously and now that block is not in the output set? This happens when there are no partials that reach the depth the search has reached and have that block somewhere in the appropriate place.

E.g. if you're running proj002 at depth 1 then when the last partials that have the block in question as their right edge at depth 1 fail to extend, the block will be removed from the output.
Sokwe wrote:
November 13th, 2024, 6:31 pm
Suppose I run the first step until I have 30 blocks, at which point I kill the search. Now if I continue from these 30 blocks, I'm not likely to eliminate any of them (I would presumably have to run the second search much deeper than the first to do so). Suppose I continue the search and get 10 new blocks, but then I run out of memory very quickly. Would it make sense to run a new search with just the 10 new blocks to see if any of them will be eliminated? The problem with this is that starting over with the 10 new blocks means that I have fewer restrictions on the new blocks than I did before when they were part of a larger partial result.
Generally starting a separate search to try to eliminate a block makes sense and would work as a valid step in the way these techniques cobble together proofs.

E.g. if the proof so far has reached "finite ships must have this set of 40 blocks as their right-most block at depth 15" and you show there are no FWAED extension at all from a start of a specific block on the right then you have indeed shown "finite ships must have this set of 39 blocks as their right-most block at depth 15".
Sokwe wrote:
November 13th, 2024, 6:31 pm
Perhaps all of this doesn't matter and there aren't enough cases to justify modifications just to work with low memory.
I've had searches hit the 60G limit when it seemed like they weren't done reducing, forcing me to move on to the next step with a bigger set of blocks than I suspect is the true limit, so it could easily still be relevant. Unfortunately chasing down individual blocks is probably not going to eliminate "most" blocks and is going to be quite tedious.
Sokwe wrote:
November 13th, 2024, 6:31 pm
On that note, can you try rules B268/S02568 and B2678/S02568 with raw:1:0:0:1:0:1:0:1:0, AF2=6, and W-height 4 up to 60GB?
I surely can. Stay tuned.

Sokwe
Moderator
Posts: 3367
Joined: July 9th, 2009, 2:44 pm

Re: Life-like p1 photon project

Post by Sokwe » November 14th, 2024, 12:31 am

It seems like B248/S0258 cannot have p1 photons, but I'm not sure how it could be shown. You get partial results like this:

Code: Select all

x = 422, y = 159, rule = B248/S0258
100b2o$55b2o24b2o$74b2o10b2o2b2o2b2o3bo2bo$54bo2bo3b2o2b2o2b2o9bo2bo
16bob3o$52b3obo16bo2bo2bo4bob2obo2bob2ob3obo7b2o$46b2o7bob3ob2obo2bob
2obo4bobo4bo4b4o4bo2bobob3o$50b3obobo2bo4b4o4bo4bobo2b2obo2bob2obo2bo
2bo4bobobo2bo$45bo2bobobo4bo2bo2bob2obo2bob2o2bobo4bobobo4bobob2ob2obo
3bo4bo$44bo4bo3bob2ob2obobo4bobobo4bobo3bobobobo2bobobo2bo3bo2b3obo$
46bob3o2bo3bo2bobobo2bobobobo3bobo6bo8bo4bo4bo3b2o$46b2o3bo4bo4bo8bo6b
obo5b3o6b3obo6bobob3o$45b3obobo6bob3o6b3o5bobo4bo3bo4bo3b2o4b2obo5bo$
44bo5bob2o4b2o3bo4bo3bo4bobo19b2o4bob2o146b2o$48b2obo4b2o19bobo18bo5bo
bo167b2o24b2o$50bobo5bo18bobo17bobo3bobobo146bo2bo3b2o2b2o2b2o10b2o$
49bobobo3bobo17bobo22bobobobo143b3obo16bo2bo9b2o2b2o2b2o3bo2bo$48bobob
obo22bobo14b2obo7bo140b2o7bob3ob2obo2bob2obo4bo2bo2bo16bob3o$51bo7bob
2o14bobo17b3o4b3o143b3obobo2bo4b4o4bo4bobo4bob2obo2bob2ob3obo7b2o$50b
3o4b3o17bobo9b2o2bo2bo6bo3bo137bo2bobobo4bo2bo2bob2obo2bob2o2bobo4bo4b
4o4bo2bobob3o$49bo3bo6bo2bo2b2o9bobo14bobobo145bo4bo3bob2ob2obobo4bobo
bo4bobo2b2obo2bob2obo2bo2bo4bobobo2bo$58bobobo14bobo6b2ob2obo6bo146bob
3o2bo3bo2bobobo2bobobobo3bobo4bobobo4bobob2ob2obo3bo4bo$57bo6bob2ob2o
6bobo9bob2o3bo2bob2o143b2o3bo4bo4bo8bo6bobo3bobobobo2bobobo2bo3bo2b3ob
o$54b2obo2bo3b2obo9bobo5bo2bo2b3o3bo147b3obobo6bob3o6b3o5bobo6bo8bo4bo
4bo3b2o$59bo3b3o2bo2bo5bobo6bobo3bo4bo3b2ob2o138bo5bob2o4b2o3bo4bo3bo
4bobo5b3o6b3obo6bobob3o$51b2ob2o3bo4bo3bobo6bobo6bobo8bo6bobo141b2obo
4b2o19bobo4bo3bo4bo3b2o4b2obo5bo$50bobo6bo8bobo6bobo6bobo8bo2bo2bo2bob
2o140bobo5bo18bobo19b2o4bob2o$47b2obo2bo2bo2bo8bobo6bobo6bobo8bo3bobo
145bobobo3bobo17bobo18bo5bobo$53bobo3bo8bobo6bobo6bobo8bo3bobo4b2ob2o
135bobobobo22bobo17bobo3bobobo$44b2ob2o4bobo3bo8bobo6bobo6bobo8bo3bobo
7bobo137bo7bob2o14bobo22bobobobo$43bobo7bobo3bo8bobo6bobo6bobo8bo3bobo
3bo2bo2bob2o133b3o4b3o17bobo14b2obo7bo$40b2obo2bo2bo3bobo3bo8bobo6bobo
6bobo8bo3bobo4bobo138bo3bo6bo2bo2b2o9bobo17b3o4b3o$46bobo4bobo3bo8bobo
6bobo6bobo8bo3bobo4bobo4b2ob2o138bobobo14bobo9b2o2bo2bo6bo3bo$37b2ob2o
4bobo4bobo3bo8bobo6bobo6bobo8bo3bobo4bobo7bobo136bo6bob2ob2o6bobo14bob
obo$36bobo7bobo4bobo3bo8bobo6bobo6bobo8bo3bobo4bobo3bo2bo2bob2o130b2ob
o2bo3b2obo9bobo6b2ob2obo6bo$33b2obo2bo2bo3bobo4bobo3bo8bobo6bobo6bobo
8bo3bobo4bobo4bobo141bo3b3o2bo2bo5bobo9bob2o3bo2bob2o$39bobo4bobo4bobo
3bo8bobo6bobo6bobo8bo3bobo4bobo4bobo4b2ob2o124b2ob2o3bo4bo3bobo6bobo5b
o2bo2b3o3bo$30b2ob2o4bobo4bobo4bobo3bo8bobo6bobo6bobo8bo3bobo4bobo4bob
o7bobo8b2o2b2o2b2o2b2o2b2o2b2o2b2o2b2o2b2o2b2o2b2o2b2o2b2o2b2o2b2o2b2o
2b2o2b2o2b2o2b2o2b2o2b2o2b2o2b2o2b2o2b2o2b2o8bobo6bo8bobo6bobo6bobo3bo
4bo3b2ob2o$29bobo7bobo4bobo4bobo3bo8bobo6bobo6bobo8bo3bobo4bobo4bobo3b
o2bo2bob2o116b2obo2bo2bo2bo8bobo6bobo6bobo8bo6bobo$26b2obo2bo2bo3bobo
4bobo4bobo3bo8bobo6bobo6bobo8bo3bobo4bobo4bobo4bobo8b2ob2obo2bob2obo2b
ob2obo2bob2obo2bob2obo2bob2obo2bob2obo2bob2obo2bob2obo2bob2obo2bob2obo
2bob2obo2bob2obo2bob2ob2o8bobo3bo8bobo6bobo6bobo8bo2bo2bo2bob2o$32bobo
4bobo4bobo4bobo3bo8bobo6bobo6bobo8bo3bobo4bobo4bobo4bobo4b2obobo4b4o4b
4o4b4o4b4o4b4o4b4o4b4o4b4o4b4o4b4o4b4o4b4o4b4o4bobob2o4bobo3bo8bobo6bo
bo6bobo8bo3bobo$23b2ob2o4bobo4bobo4bobo4bobo3bo8bobo6bobo6bobo8bo3bobo
4bobo4bobo4bobo7bo2bo2bo4bo2bo4bo2bo4bo2bo4bo2bo4bo2bo4bo2bo4bo2bo4bo
2bo4bo2bo4bo2bo4bo2bo4bo2bo4bo2bo2bo7bobo3bo8bobo6bobo6bobo8bo3bobo4b
2ob2o$22bobo7bobo4bobo4bobo4bobo3bo8bobo6bobo6bobo8bo3bobo4bobo4bobo4b
obo3bo2bobo110bobo2bo3bobo3bo8bobo6bobo6bobo8bo3bobo7bobo$19b2obo2bo2b
o3bobo4bobo4bobo4bobo3bo8bobo6bobo6bobo8bo3bobo4bobo4bobo4bobo4bobobo
110bobobo4bobo3bo8bobo6bobo6bobo8bo3bobo3bo2bo2bob2o$25bobo4bobo4bobo
4bobo4bobo3bo8bobo6bobo6bobo8bo3bobo4bobo4bobo4bobo4bobobo56b2o2b2o2b
2o2b2o2b2o2b2o2b2o28bobobo4bobo3bo8bobo6bobo6bobo8bo3bobo4bobo$16b2ob
2o4bobo4bobo4bobo4bobo4bobo3bo8bobo6bobo6bobo8bo3bobo4bobo4bobo4bobo4b
obobo41b2o2b2o2b2o36b2o2b2o2b2o13bobobo4bobo3bo8bobo6bobo6bobo8bo3bobo
4bobo4b2ob2o$15bobo7bobo4bobo4bobo4bobo4bobo3bo8bobo6bobo6bobo8bo3bobo
4bobo4bobo4bobo4bobobo22b2o10b2o17b2ob2obo2bob2obo2bob2obo2bob2ob2o17b
2o2b2o2bobobo4bobo3bo8bobo6bobo6bobo8bo3bobo4bobo7bobo$8b2o2b2obo2bo2b
o3bobo4bobo4bobo4bobo4bobo3bo8bobo6bobo6bobo8bo3bobo4bobo4bobo4bobo4bo
bobo27b2o9b2ob2obo2bob2obobo4b4o4b4o4b4o4bobob2obo2bob2ob2o10bobobo4bo
bo3bo8bobo6bobo6bobo8bo3bobo4bobo3bo2bo2bob2o2b2o$18bobo4bobo4bobo4bob
o4bobo4bobo3bo8bobo6bobo6bobo8bo3bobo4bobo4bobo4bobo4bobobo12b2o7bo2bo
6b2ob2obobo4b4o4bo2bo2bo4bo2bo4bo2bo4bo2bo2bo4b4o4bobob2obo2bo3bobo4bo
bo3bo8bobo6bobo6bobo8bo3bobo4bobo4bobo$7bo2bob2o4bobo4bobo4bobo4bobo4b
obo4bobo3bo8bobo6bobo6bobo8bo3bobo4bobo4bobo4bobo4bobobo16b2o2bo4bob2o
bobo4bo2bo2bo4bo2bobo30bobo2bo4bo2bo2bo4b4o5bo4bobo3bo8bobo6bobo6bobo
8bo3bobo4bobo4bobo4b2obo2bo$4b2ob4o7bobo4bobo4bobo4bobo4bobo4bobo3bo8b
obo6bobo6bobo8bo3bobo4bobo4bobo4bobo4bobobo11bo2bobobobo4bo4bo2bo2bobo
16bobobo18bobobo16bobo2bo4b2obobo4bobo3bo8bobo6bobo6bobo8bo3bobo4bobo
4bobo7b4ob2o$8b2obo2bo3bobo4bobo4bobo4bobo4bobo4bobo3bo8bobo6bobo6bobo
8bo3bobo4bobo4bobo4bobo4bobobo10bo4bo2bobo2b2obo2bobo8bobobo8bo2b2o2bo
6b2o8bo2b2o2bo8bobobo12bo2bob2o2bobo3bo8bobo6bobo6bobo8bo3bobo4bobo4bo
bo3bo2bob2o$b2ob2o5bobo4bobo4bobo4bobo4bobo4bobo4bobo3bo8bobo6bobo6bob
o8bo3bobo4bobo4bobo4bobo4bobobo12bob3obobo4bobobobo6bo2b2o2bo2b2o2bo2b
2obo20bob2o2bo6bo2b2o2bo11bo2bo4bobo3bo8bobo6bobo6bobo8bo3bobo4bobo4bo
bo4bobo5b2ob2o$4bobob2obobo4bo3b2o3bo4bo3b2o3bo4bo3b2o3bo3bo8bo3b2o3bo
3b2o3bo3b2o5bo3bo3b2o3bo4bo3b2o3bo4bobobo7b2obo2b3o4bo3bo6bo5bo2b2obo
10b3obo7bo2bo9bob3o10bob2o2bo7b3ob2obo3bobo3bo8bo3b2o3bo3b2o3bo3b2o5bo
3bo3b2o3bo4bobo4bobob2obobo$o2bo2bo6bo4bobo4bobo4bobo4bobo4bobo4bobo3b
o8bobo6bobo6bobo8bo3bobo4bobo4bobo4bobo4bo3bo10b2o6bobo5b3obob2o5b3o3b
obo2bobo2bo2bo8bob3o7bo2bo2bob2o5bob3o6b2obo2bo2bobo2bo3b2ob2o6bobo6bo
bo6bobo8bo3bobo4bobo4bobo4bo6bo2bo2bo$bobo5b2obob2o2bob2o2b2obo4bob2o
2b2obo4bob2o2b2obo3bo8bob2o2bo2bob2o2bo2bob2o2bo4bo3bob2o2b2obo4bob2o
2b2obo4bobobo6bo2bo2b2ob4obo5bobo4bob4o6b2o4b2o7b2o2b3obo10bobo3b2obob
2o2bo2bo2bob2obobo2bo4bobo5bo3bob2o3bob2o2bo2bob2o2bo2bob2o2bo4bo3bob
2o2b2obo4bobo2b2obob2o5bobo49$363b2o$344b2o$337b2o10b2o2b2o2b2o3bo2bo$
312b2o16b2o11bo2bo16bob3o$287b2o16b2o10b2o2b2o2b2o9bo2bo2bo4bob2obo2bo
b2ob3obo7b2o$262b2o16b2o10b2o2b2o2b2o9bo2bo14bo2bo2bo4bobo4bo4b4o4bo2b
obob3o$187b2o16b2o30b2o16b2o10b2o2b2o2b2o9bo2bo14bo2bo2bo4bob2obo2bob
2obo4bobo4bobo2b2obo2bob2obo2bo2bo4bobobo2bo$162b2o16b2o10b2o2b2o2b2o
10b2o16b2o10b2o2b2o2b2o9bo2bo14bo2bo2bo4bob2obo2bob2obo4bobo4bo4b4o4bo
4bobo4bobo4bobobo4bobob2ob2obo3bo4bo$137b2o16b2o10b2o2b2o2b2o9bo2bo14b
o2bo9b2o2b2o2b2o9bo2bo14bo2bo2bo4bob2obo2bob2obo4bobo4bo4b4o4bo4bobo2b
2obo2bob2obo2bob2o2bobo4bobo3bobobobo2bobobo2bo3bo2b3obo$112b2o16b2o
10b2o2b2o2b2o9bo2bo14bo2bo2bo4bob2obo2bob2obo4bo2bo2bo14bo2bo2bo4bob2o
bo2bob2obo4bobo4bo4b4o4bo4bobo2b2obo2bob2obo2bob2o2bobo4bobobo4bobobo
4bobo4bobo6bo8bo4bo4bo3b2o$87b2o16b2o10b2o2b2o2b2o9bo2bo14bo2bo2bo4bob
2obo2bob2obo4bobo4bo4b4o4bo4bobo4bob2obo2bob2obo4bobo4bo4b4o4bo4bobo2b
2obo2bob2obo2bob2o2bobo4bobobo4bobobo4bobo3bobobobo2bobobobo3bobo4bobo
5b3o6b3obo6bobob3o$36b2o24b2o16b2o10b2o2b2o2b2o9bo2bo14bo2bo2bo4bob2ob
o2bob2obo4bobo4bo4b4o4bo4bobo2b2obo2bob2obo2bob2o2bobo4bo4b4o4bo4bobo
2b2obo2bob2obo2bob2o2bobo4bobobo4bobobo4bobo3bobobobo2bobobobo3bobo6bo
8bo6bobo4bobo4bo3bo4bo3b2o4b2obo5bo$55b2o10b2o2b2o2b2o9bo2bo14bo2bo2bo
4bob2obo2bob2obo4bobo4bo4b4o4bo4bobo2b2obo2bob2obo2bob2o2bobo4bobobo4b
obobo4bobo2b2obo2bob2obo2bob2o2bobo4bobobo4bobobo4bobo3bobobobo2bobobo
bo3bobo6bo8bo6bobo5b3o6b3o5bobo4bobo19b2o4bob2o$35bo2bo3b2o2b2o2b2o9bo
2bo14bo2bo2bo4bob2obo2bob2obo4bobo4bo4b4o4bo4bobo2b2obo2bob2obo2bob2o
2bobo4bobobo4bobobo4bobo3bobobobo2bobobobo3bobo4bobobo4bobobo4bobo3bob
obobo2bobobobo3bobo6bo8bo6bobo5b3o6b3o5bobo4bo3bo4bo3bo4bobo4bobo18bo
5bobo$33b3obo16bo2bo2bo4bob2obo2bob2obo4bobo4bo4b4o4bo4bobo2b2obo2bob
2obo2bob2o2bobo4bobobo4bobobo4bobo3bobobobo2bobobobo3bobo6bo8bo6bobo3b
obobobo2bobobobo3bobo6bo8bo6bobo5b3o6b3o5bobo4bo3bo4bo3bo4bobo22bobo4b
obo17bobo3bobobo$27b2o7bob3ob2obo2bob2obo4bobo4bo4b4o4bo4bobo2b2obo2bo
b2obo2bob2o2bobo4bobobo4bobobo4bobo3bobobobo2bobobobo3bobo6bo8bo6bobo
5b3o6b3o5bobo6bo8bo6bobo5b3o6b3o5bobo4bo3bo4bo3bo4bobo22bobo22bobo4bob
o22bobobobo$31b3obobo2bo4b4o4bo4bobo2b2obo2bob2obo2bob2o2bobo4bobobo4b
obobo4bobo3bobobobo2bobobobo3bobo6bo8bo6bobo5b3o6b3o5bobo4bo3bo4bo3bo
4bobo5b3o6b3o5bobo4bo3bo4bo3bo4bobo22bobo22bobo22bobo4bobo14b2obo7bo$
26bo2bobobo4bo2bo2bob2obo2bob2o2bobo4bobobo4bobobo4bobo3bobobobo2bobob
obo3bobo6bo8bo6bobo5b3o6b3o5bobo4bo3bo4bo3bo4bobo22bobo4bo3bo4bo3bo4bo
bo22bobo22bobo22bobo22bobo4bobo17b3o4b3o$25bo4bo3bob2ob2obobo4bobobo4b
obo3bobobobo2bobobobo3bobo6bo8bo6bobo5b3o6b3o5bobo4bo3bo4bo3bo4bobo22b
obo22bobo22bobo22bobo22bobo22bobo22bobo4bobo9b2o2bo2bo6bo3bo$27bob3o2b
o3bo2bobobo2bobobobo3bobo6bo8bo6bobo5b3o6b3o5bobo4bo3bo4bo3bo4bobo22bo
bo22bobo22bobo22bobo22bobo22bobo22bobo22bobo4bobo14bobobo$27b2o3bo4bo
4bo8bo6bobo5b3o6b3o5bobo4bo3bo4bo3bo4bobo22bobo22bobo22bobo22bobo22bob
o22bobo22bobo22bobo22bobo4bobo6b2ob2obo6bo$26b3obobo6bob3o6b3o5bobo4bo
3bo4bo3bo4bobo22bobo22bobo22bobo22bobo22bobo22bobo22bobo22bobo22bobo
22bobo4bobo9bob2o3bo2bob2o$25bo5bob2o4b2o3bo4bo3bo4bobo22bobo22bobo22b
obo22bobo22bobo22bobo22bobo22bobo22bobo22bobo22bobo4bobo5bo2bo2b3o3bo$
29b2obo4b2o19bobo22bobo22bobo22bobo22bobo22bobo22bobo22bobo22bobo22bob
o22bobo22bobo4bobo6bobo3bo4bo3b2ob2o$31bobo5bo18bobo22bobo22bobo22bobo
22bobo22bobo22bobo22bobo22bobo22bobo22bobo22bobo4bobo6bobo8bo6bobo$30b
obobo3bobo17bobo22bobo22bobo22bobo22bobo22bobo22bobo22bobo22bobo22bobo
22bobo22bobo4bobo6bobo8bo2bo2bo2bob2o$29bobobobo22bobo22bobo22bobo22bo
bo22bobo22bobo22bobo22bobo22bobo22bobo22bobo22bobo4bobo6bobo8bo3bobo$
32bo7bob2o14bobo22bobo22bobo22bobo22bobo22bobo22bobo22bobo22bobo22bobo
22bobo22bobo4bobo6bobo8bo3bobo4b2ob2o$31b3o4b3o17bobo22bobo22bobo22bob
o22bobo22bobo22bobo22bobo22bobo22bobo22bobo22bobo4bobo6bobo8bo3bobo7bo
bo$30bo3bo6bo2bo2b2o9bobo22bobo22bobo22bobo22bobo22bobo17b2o3bobo22bob
o22bobo22bobo22bobo22bobo4bobo6bobo8bo3bobo3bo2bo2bob2o$39bobobo14bobo
22bobo22bobo22bobo22bobo22bobo10b2o10bobo3b2o17bobo22bobo22bobo22bobo
22bobo4bobo6bobo8bo3bobo4bobo$38bo6bob2ob2o6bobo22bobo22bobo22bobo22bo
bo22bobo3b2o11bo2bo2bobo10b2o10bobo22bobo22bobo22bobo22bobo4bobo6bobo
8bo3bobo4bobo4b2ob2o$35b2obo2bo3b2obo9bobo22bobo22bobo22bobo22bobo17b
2o3bobo9bo2bo2bo4bo3bo2bo2bo11b2o3bobo22bobo22bobo22bobo22bobo4bobo6bo
bo8bo3bobo4bobo7bobo$40bo3b3o2bo2bo5bobo22bobo22bobo22bobo22bobo10b2o
10bobo2bo2bo2bo4bobo4bo5bo4bo2bo2bo9bobo3b2o17bobo22bobo22bobo22bobo4b
obo6bobo8bo3bobo4bobo3bo2bo2bob2o$32b2ob2o3bo4bo3bobo6bobo22bobo22bobo
22bobo22bobo3b2o11bo2bo2bo3bo4bobo4bobo4bo5bo4bobo4bo2bo2bo2bobo10b2o
10bobo22bobo22bobo22bobo4bobo6bobo8bo3bobo4bobo4bobo$31bobo6bo8bobo6bo
bo22bobo22bobo22bobo17b2o3bobo9bo2bo2bo4bo5bo4bobo4bobo4bo5bo4bobo4bob
o4bo3bo2bo2bo11b2o3bobo22bobo22bobo22bobo4bobo6bobo8bo3bobo4bobo4bobo
4b2ob2o$28b2obo2bo2bo2bo8bobo6bobo22bobo22bobo22bobo10b2o10bobo2bo2bo
2bo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bo2bo2bo9bobo3b2o17bobo
22bobo22bobo4bobo6bobo8bo3bobo4bobo4bobo7bobo$34bobo3bo8bobo6bobo22bob
o22bobo22bobo3b2o11bo2bo2bo3bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bo
bo4bo5bo4bobo4bo2bo2bo2bobo10b2o10bobo22bobo22bobo4bobo6bobo8bo3bobo4b
obo4bobo3bo2bo2bob2o$25b2ob2o4bobo3bo8bobo6bobo22bobo22bobo17b2o3bobo
9bo2bo2bo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4b
obo4bo3bo2bo2bo11b2o3bobo22bobo22bobo4bobo6bobo8bo3bobo4bobo4bobo4bobo
$24bobo7bobo3bo8bobo6bobo22bobo22bobo10b2o10bobo2bo2bo2bo4bobo4bo5bo4b
obo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bo2bo2b
o9bobo3b2o17bobo22bobo4bobo6bobo8bo3bobo4bobo4bobo4bobo4b2ob2o$21b2obo
2bo2bo3bobo3bo8bobo6bobo22bobo22bobo3b2o11bo2bo2bo3bo4bobo4bobo4bo5bo
4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo
4bo2bo2bo2bobo10b2o10bobo22bobo4bobo6bobo8bo3bobo4bobo4bobo4bobo7bobo$
27bobo4bobo3bo8bobo6bobo22bobo17b2o3bobo9bo2bo2bo4bo5bo4bobo4bobo4bo5b
o4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo
4bobo4bo3bo2bo2bo11b2o3bobo22bobo4bobo6bobo8bo3bobo4bobo4bobo4bobo3bo
2bo2bob2o$18b2ob2o4bobo4bobo3bo8bobo6bobo22bobo10b2o10bobo2bo2bo2bo4bo
bo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo
5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bo2bo2bo9bobo22bobo4bobo6bobo8bo3b
obo4bobo4bobo4bobo4bobo$17bobo7bobo4bobo3bo8bobo6bobo22bobo3b2o11bo2bo
2bo3bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo
4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bo2bo2bo2bobo6b
2o14bobo4bobo6bobo8bo3bobo4bobo4bobo4bobo4bobo4b2ob2o$14b2obo2bo2bo3bo
bo4bobo3bo8bobo6bobo22bobo9bo2bo2bo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo
5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bo
bo4bobo4bo5bo4bobo4bobo4bo3bo2b2o18bobo4bobo6bobo8bo3bobo4bobo4bobo4bo
bo4bobo7bobo$20bobo4bobo4bobo3bo8bobo6bobo14b2o6bobo2bo2bo2bo4bobo4bo
5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bo
bo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bobobo2bo
13bobo4bobo6bobo8bo3bobo4bobo4bobo4bobo4bobo3bo2bo2bob2o$11b2ob2o4bobo
4bobo4bobo3bo8bobo6bobo18b2o2bo3bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bob
o4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo
4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo2bo4bo12bobo4bobo6bobo8bo3bobo4b
obo4bobo4bobo4bobo4bobo$10bobo7bobo4bobo4bobo3bo8bobo6bobo13bo2bobobo
5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bo
bo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bob
o4bo5bob3obo14bobo4bobo6bobo8bo3bobo4bobo4bobo4bobo4bobo4bobo4b2ob2o$
7b2obo2bo2bo3bobo4bobo4bobo3bo8bobo6bobo12bo4bo2bo5bo4bobo4bobo4bo5bo
4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo
4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo3b2obo3b2o14bo
bo4bobo6bobo8bo3bobo4bobo4bobo4bobo4bobo4bobo7bobo$13bobo4bobo4bobo4bo
bo3bo8bobo6bobo14bob3obo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo
4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo
4bobo4bobo4bo5bo4bobo4bobo4bo5bobobo2b2o12bobo4bobo6bobo8bo3bobo4bobo
4bobo4bobo4bobo4bobo3bo2bo2bob2o$4b2ob2o4bobo4bobo4bobo4bobo3bo8bobo6b
obo14b2o3bob2o3bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo
4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo
4bo5bo4bobo4bobo4bo4bo4bobo14bobo4bobo6bobo8bo3bobo4bobo4bobo4bobo4bob
o4bobo4bobo$3bobo7bobo4bobo4bobo4bobo3bo8bobo6bobo12b2o2bobobo5bo4bobo
4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo
4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo3bo
b2obobobo13bobo4bobo6bobo8bo3bobo4bobo4bobo4bobo4bobo4bobo4bobo4b2ob2o
$2obo2bo2bo3bobo4bobo4bobo4bobo3bo8bobo6bobo14bobo4bo4bo4bobo4bobo4bo
5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo2b2ob2o3b
o4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo6bo4bobo
12bobo4bobo6bobo8bo3bobo4bobo4bobo4bobo4bobo4bobo4bobo7bobo$6bobo4bo3b
2o3bo4bo3b2o3bo3bo8bo3b2o3bo3b2o10bobobob2obo3bo4bo3b2o3bo4bo5bo4bo3b
2o3bo4bo5bo4bo3b2o3bo4bo5bo4bo3b2o3bo4bo5bo4bo3b2o3bo4bo5bo4bobo4bo3b
2o3b2o2bo4bo3b2o3bo4bo5bo4bo3b2o3bo4bo5bo4bo3b2o3bo4bo5bobob2o15bo3b2o
3bo6bo3b2o5bo3bo3b2o3bo4bo3b2o3bo4bo3b2o3bo4bobo3bo2bo2bob2o$b2obo5bo
2bobo4bobo4bobo4bobo3bo8bobo6bobo12bobo4bo6bo4bobo4bobo4bo5bo4bobo4bob
o4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo3bo3bo2bo4bobo4bobo4b
o5bo4bobo4bobo4bo5bo4bobo4bobo4bo5bo4bobo4bobo4bo9bo2b4o10bobo4bobo6bo
bo8bo3bobo4bobo4bobo4bobo4bobo4bobo4bobo4bobo$4b2ob3o3bob2o2b2obo4bob
2o2b2obo3bo8bob2o2bo2bob2o2bo11b2obo3bob2ob2o2bob2o2b2obo4bo5bo4bob2o
2b2obo4bo5bo4bob2o2b2obo4bo5bo4bob2o2b2obo4bo5bo2b2obo2b2o2bob2obo4bo
3b2o3bo4bob2o2b2o2b3ob2o2bob2o2b2obo4bo5bo4bob2o2b2obo4bo5bo4bob2o2b2o
bo4bo3b4obo3bo2bob2o7bob2o2b2obo6bob2o2bo4bo3bob2o2b2obo4bob2o2b2obo4b
ob2o2b2obo4bobo2bo5bob2o!
and it seems like there's no way to break through the various vertical walls. I don't know how to set up an LLSSS search to represent this. I ran this as a test, and it seems to indicate that the vertical triple walls in the first partial can't be "broken through" without something coming "from above", but this is basically useless.

Code: Select all

| LLLuuuuuuuuuuuuuuuuMMMuuuuuuuuuuuuuuuuRRR |
| .....*.*....*.*.*.......*.*.*....*.*..... |
| .....*.*....*.*.*.......*.*.*....*.*..... |
Are there any clever tricks anyone can see to start approaching this problem?
-Matthias Merzenich

Sokwe
Moderator
Posts: 3367
Joined: July 9th, 2009, 2:44 pm

Re: Life-like p1 photon project

Post by Sokwe » November 14th, 2024, 5:00 am

amling wrote:
November 13th, 2024, 1:02 pm
Sokwe wrote:
November 13th, 2024, 4:08 am
I wanted to do a s2s search where the front edge of the photon is the one being tested. Since c1-s2s has the front edge on the left, I figured I needed to use raw:1:0:0:1:0:1:0:1:0, so that the front edge is on the right.
Yeah, I got caught by the same problem (can't do s2s front side easily) and used the same geometry earlier in a failed attempt on another rule.
Can proj002 work with other geometries? I tried it naively with raw:1:1:0:0:-1:1:0:0:1 in B25678/S02358, but when I tried the second step I got the following error:

Code: Select all

thread 'main' panicked at src/llsss/spine_store.rs:385:9:
assertion failed: tail_depth <= self.cur_depth()
-Matthias Merzenich

amling
Posts: 1154
Joined: April 2nd, 2020, 9:47 pm

Re: Life-like p1 photon project

Post by amling » November 14th, 2024, 2:15 pm

Sokwe wrote:
November 14th, 2024, 5:00 am
Can proj002 work with other geometries? I tried it naively with raw:1:1:0:0:-1:1:0:0:1 in B25678/S02358, but when I tried the second step I got the following error:

Code: Select all

thread 'main' panicked at src/llsss/spine_store.rs:385:9:
assertion failed: tail_depth <= self.cur_depth()
I would expect it to work with other geometries as I believe I have coded it generically.

My best guess from reading the few callers of where the crash is is that you've somehow tried to start a search with a board that is too short. I just tested it and nothing caught it until the zero ends implementation tries to query farther back than exists and I get a crash on that line.

geom-info for that geometry says...

Code: Select all

$ rlife grid-tool geom-info raw:1:1:0:0:-1:1:0:0:1
Geometry: raw:1:1:0:0:-1:1:0:0:1
   U: Vec3(1, 1, 0)
   V: Vec3(0, -1, 1)
   W: Vec3(0, 0, 1)
   Neighborhood sizes:
      U: 3
      W: 5
   Unique positions (1):
      #0: Vec3(0, 0, 0) => Vec3Uvw(0, 0, 0)
$
In particular W neighborhood size is 5 which means CA check neighborhoods (3x3 around a center cell plus its future) can span 5 W rows. This means in order to be able to stitch a top half plane and a bottom half plane together and guarantee each CA check was included in one or the other they must overlap by 4 W rows. This "W overlap" is the minimum searches should be started with (and is e.g. what the "@zero" input does).

My best guess is you've run the proj002 first step with a W depth of less than 4 so it's producing too-short input files for the next step. I've just pushed ded1da407bfc to add earlier and more direct asserts (a) in search init to make sure starting state is long enough and (b) in proj001 and proj002 to make sure W depth is long enough.

If these guesses turn out to be incorrect, you could either set RUST_BACKTRACE=1 to try to figure out where this is happening a little more accurately (maybe worth doing in general anyway), or, perhaps easier, post the full commands to produce the crash so I can take a look locally.

amling
Posts: 1154
Joined: April 2nd, 2020, 9:47 pm

Re: Life-like p1 photon project

Post by amling » November 14th, 2024, 2:52 pm

Sokwe wrote:
November 13th, 2024, 6:31 pm
...can you try rules B268/S02568 and B2678/S02568 with raw:1:0:0:1:0:1:0:1:0, AF2=6, and W-height 4 up to 60GB?
Both rules went badly and in pretty much the same way.

I didn't like the pattern of updates I was seeing in the initial searches so I decided to do it all strictly one W depth at a time. At each step I let the search run until it hit 60G and died and took whatever the last output was for input to the next stage. Even so after a few steps it was clear that searches were not reaching the limit set before hitting memory and so the block set sizes spiralled out of control quickly and eventually they both found a zero end.

For B268/S02568 the 8th step starts with 64 blocks and finds:

Code: Select all

20241113 19:25:33 [INFO] End [thinnest] "LlsssEndsZero":
20241113 19:25:33 [INFO] | .........*....***...**.*...*..**....... |
20241113 19:25:33 [INFO] | ......***.*..**..*.*****.........*..... |
20241113 19:25:33 [INFO] | .....******...**....**....**.**..*..... |
20241113 19:25:33 [INFO] | ......***..........***.****....*....... |
20241113 19:25:33 [INFO] | .........********...*********.......... |
20241113 19:25:33 [INFO] | .......**........*.***.****.*.......... |
20241113 19:25:33 [INFO] | ......*****.........**.....*........... |
20241113 19:25:33 [INFO] | .......**.*........*****..*............ |
20241113 19:25:33 [INFO] | .........*..........**.*............... |
20241113 19:25:33 [INFO] | ........*.............*................ |
20241113 19:25:33 [INFO] | .....................*................. |
20241113 19:25:33 [INFO] | ....................................... |
20241113 19:25:33 [INFO] | ....................................... |
For B2678/S02568 the 9th step starts with 70 blocks and finds:

Code: Select all

20241113 22:25:11 [INFO] End [thinnest] "LlsssEndsZero":
20241113 22:25:11 [INFO] | .......**..****.***.........*..... |
20241113 22:25:11 [INFO] | ......****..***.*....**.**..*..... |
20241113 22:25:11 [INFO] | .......*......***.****....*....... |
20241113 22:25:11 [INFO] | ........****...*********.......... |
20241113 22:25:11 [INFO] | ......**....*.***.****.*.......... |
20241113 22:25:11 [INFO] | .....*****.....**.....*........... |
20241113 22:25:11 [INFO] | ......**.*....*****..*............ |
20241113 22:25:11 [INFO] | ........*......**.*............... |
20241113 22:25:11 [INFO] | .......*.........*................ |
20241113 22:25:11 [INFO] | ................*................. |
20241113 22:25:11 [INFO] | .................................. |
20241113 22:25:11 [INFO] | .................................. |
Looking at partials I'm not quite sure what I think for B2678/S02568, but for B268/S02568 I'm convinced front edge proj002 isn't going to work. Look at the marked rows in this partial and try to imagine how U wide the blocks would have to be to reach far enough back in the ship to detect some sort of orientation distinguishing feature:

Code: Select all

| ........................................ |
| ........................................ |
| .................................*...... |
| ................................*....... |
| ......................*........*.**..... |
| .....................*.........*****.... |
| ....................*.**..*......**..... |
| ....................*****..******....... |
| ......................*.*........***.... |
| ..................*.**..***....******... |
| .................*...*******...*.***.... |
| ................*.******...**...*....... |
| ................******....**.....**..... |
| .............*....*******...**.......... |
| ...........*..**.**..*************...... |
| ...........*........**...***..*****..... |
| ......*......**..*......**...**...**.... |
| .....*........**..**.**...*......**..... |
| ....*.**********......**********........ |
| ....**********..********************.... |
| ......*****************........******... |
| .....**......****............**.....**.. |
| ...*.......**.........**.....*...*.**... | <-- !
| ...*..**...*...***...*........*.*....... |
| .....*......*.*......**...........**.... |
| .......**........**....********....**... |
| ........********..******************.... |
| ......*****************...*...*****..... |
| ......*.*......***......**...**......... |
| .......*...**.**....**...***....**...... |
| ........*.*......**..*********...**..... |
| .............**...********..******...... |
| .......**.**..*******......**.***....... |
| ......*....********....**....*.......... |
| .....*.*******......**..******..**...... |
| .....*******....**...********..*........ |
| .......********..*******.........**..... |
| ......**....**********....**......**.... |
| ....*.....**...***.....**..********..... |
| ..*..**...*...**...**...**********...... |
| ..*........**...*...********............ | <-- !
| ....**........**********.........**..... |
| .....*******...*****.....**.....*....... |
| ...*************.....**...**...*.***.... |
| ...*.*.....****..**...*****....******... |
| ....*...*.**......********.......***.... |
| .....*.*......*.******..........**...... |
| .........***.*...**.....**.*..*...*..... |
I think it would have to be at least 9 U and even then it's not clear to me those front-most bits couldn't just have more blanks behind them in a luckier partial.

I'm still poking around with some searches hoping to get lucky, but at least things like this exist:

Code: Select all

x = 50, y = 201, rule = B268/S02568
29bo$21bo6bo12bo$20bo6bob2o9bo$19bob2o4b5o7bob2o$19b5o5b2o8b5o$21bob6o
12b2o$17bob2o2b6o2b10o$16bo3b4o3bo2bo10b3o$15bob6o2b2o6b2o4b6o$15b6o5b
6o2b2o3bob3o$12bo4b18o5bo$10bo2b2ob2o2b6o5b3o7b2o$10bo8b2o8b2o$6bo5b2o
2bo8b2o2bo3b11o$5bo7b2o2b3o4bo5bobo$4bob9o9b2o17b2o$4b9o2b2o2b2o5b5o
11bo$6b12o2b12o9bobo$5b2o5b4ob9o4bo10b3obo$3bo6b2o5b4o2bo4b2o13b4o$bo
2b2o4bo4b8o2b2o2b13ob2ob2o$bo9b2o2bob4obo3b21o$3b2o11bo5b6obo12bobobo$
4b8o5bo2b6o3bo8bob2o2bo2bo$2b11o7bob9o6bo3b4o$2bobo7b2o7bo4b4o6bob7o$
3bo7b2o9b2ob2o9b5o3bo$4b2o3bo19b2o7b5obo$9bo2b13ob2o2b8o3b4o$5b2o4bo
15b11o2b2o2bo$4bo8b2o10b5o2bo5bo3bobobo$3bobo8b2o9bob5o4b12o$3b12o11bo
2b3o4bob5ob2ob2o$5b9o7bo5b2o2bo5bo6b4o$4b2o14bo8bobo6bo3b3obo$2bo10b2o
4bob11o10bobo$o2b2o7bo6b11obo11bo$o11b2o7b11o12b2o$2b2o10b6ob9o2bo$3b
42o$b13o6bo4bo4b16o$bob13o2b2o3b2o3b2o15b2o$2bo10b4o2b3o2b3o2b2o11bob
2o$3bo5b2ob2o2b14o11bo$8bo5bob3o2b3o2b3o11bob5o$7bob8o3b2o3b2o13b8o$7b
8o2bo4bo4bo14bo3bo$9b33o2b2o$8b2o4b28o3b3o$6bo5b2o28b7o$4bo2b2o3bo27b
5o2bo$4bo8b2o25bob5o$6b2o33bo2b3o$7b9o8bo17b2o2bo$5b12o6bo20bobo$5bobo
8b2o4bob23o$6bo8b2o5b23ob2o$7b2o4bo10b23o$13bo2b8o19bobo$8b2o5bo8b2o
12b2ob2o2bo$7bo9b2o3b5o10bo4b4o$6bobo9b2o2bob2o5bo4bob8o$6b13o4bo6bo5b
6o3bo$8b10o6bo4bob2o5b6obo$7b2o20b8obo3b4o$5bo8bobo14bob6o2b2o2bo$5bo
2b2o3bo3b14o2b4o2bo3bobo$7bo5b2o16b15o$9b2o4b2o12b5o3b7ob2o$10b8o11bob
5ob9o$8b8ob2o11bo3b10obo$8bob8o13bob2o2b9o$9bo5bobo17bob7ob2o$5bo4b2ob
2o2b29o$4bo9b23o2bo3bobo$3bob11ob22o2b2o2bo$3b11o3b20obo3b4o$5b13o20b
8o$4b2o7b4o19b6o3bo$2bo8b2o23bob6obo$2bo2b2o4bo3b3o19bo4b4o$4bo7bobo
23b2ob2o2b2o$6b2o9b2o25b2o$7b9o2b24o$5b40o$5bob9ob2o2bo19b5o$6bo10b4o
17bob2o2bo$7bo7b4obo16bo4bobo$15bob4o15bob7o$16bo2b2o10bo4b7obo$11bo5b
2o2bo8bo7b7o$10bo8b4o6bob6ob5ob2o$9bob11o7b16o$9b11o11bo3bobo4bobo$11b
20o2b2o2bo2b2o2bo$10b2o7b12o3b5o2b4o$8bo8b2o12b6ob7o$6bo2b2o6bo11b6o3b
3o3bo2bo$6bo11b2o9bob12obobo$8b2o20bo4b3o2b7o$9b10o6bo5b2ob2o3b2o2b2ob
2o$7b13o4bo11bo4bob4o$7bob10o4bob19obo$8bo14b19o2bo$9bo8bobo4b20o$17bo
3b2ob2o15b4o$16bobo7bo10b2ob2o2bo$16b12o8bo5bobo$18b9o8bob8o$17b2o16b
8ob2o$15bo7bobo11b8o$13bo2b2o4bo3b9ob2o4bobo$13bo8b2o16b2o2bo$15b2o7b
2o8b2ob2o2b4o$16b11o6bo4b5obo$14b10o2b2o4bob6ob4o$14bobo8b2o5b6o3b2o2b
o$15bo3b2obo11b13o$10bo5bobo4b9ob2o2b5ob2ob2o$9bo10bo15b2o5b4o$8bob7o
4b4o6bobo7b3obo$8b10o12bo3b3o4bobo$10b7o5b2o6b2o10bo$9b2o10bo10b4o7b2o
$7bo8b2o2bob15o$7bo2b2o3bo4b13o3b10o$9bo5b2o5b13ob11o$11b2o4b5o11b13o$
12b10o9b2o2bo$10b8o3bo8bo2b2o10b2o$10bob8obo7bob4o9bo$11bo6b4o7b4obo8b
ob3o$6bo5b2ob2ob2o2bo8b4o8b6o$5bo10b14ob2o2bo9bo2b2o$4bob12ob26o2b2o$
4b12o3b11ob2ob11o$6b14o11b4o10b3o$5b2o8b4o10b3obo9b6o$3bo9b2o14bobo11b
ob3o$bo2b2o7bo3b3o10bo13bo$bo12bobo14b2o12b2o$3b2o14b2o$4b14o2b26o$2b
45o$2bob14ob2o2bo22b2o$3bo15b4o20bob2o$4bo12b4obo19bo$17bob4o18bobo2b
2o$18bo2b2o14bo3b3obo$13bo5b2obo13bo6b4o$12bo8b2o12bob5ob2ob2o$11bob
10o12b12o$11b10o2bo13bo3bobobo$13b24o2b2o2bo$12b2o6b17o3b4o$10bo7b2o
17b7o$8bo2b2o5bo16b5o3bo$8bo10b2o14bob5obo$10b2o24bo3b4o$11b9o6bo10bob
2o2bo$9b12o4bo15bobobo$9bob9o4bob21o$10bo13b18ob2ob2o$11bo4bobo7bo16b
4o$15bo3b7o15b3obo$7bo7b2o9b2o13bobo$6bo10b2o5b5o13bo$5bob13o4bob2o5bo
9b2o$5b13ob2o4bo6bo$7b13o6bo4bob2o9b2o$6b2o9b2o12b5o7bo$4bo10b2o16b2o
7bob3o$2bo2b2o8bo3b14o9b6o$2bo13bobo14bo10bo2b2o$4b2o25b13o2b2o$5b12o
14bob11o$3b15o14bo11b3o$3bob12o11bo4bo8b6o$4bo22bo14bob3o$5b2o9b2o8bob
2o13bo$15bo10b5o2bo10b2o$6b2o6bob3o9bobobo$5bo8b6o4bob2o2b15o$4bobo9b
3o4bo3b5ob13o$4b12o6bob5ob4o11b2o$6b10o2b2o2b5o3b2o2bo7bob2o$5b2o10bo
6b12o5bo$3bo8bobo5b2ob2o2b4ob2ob2o3bobo2b2o$3bo2b2o3bo3b3obo6b2o4b4o4b
3obo$5bo5b2o9b2o6b4o8b4o$7b2o4b4o2b2o2b4o3bob5o2b2ob2ob2o$8b10o2b8o3bo
2b4o2b6o$6b8o3b6o3bo5b2o3b4obo2bo$6bob8ob2ob5obo7b2ob2obo3b2o$7bo2bo3b
7o2b18o5bo$3bo4b2o3b2o2b2o2bobobob8o2bo2b8o$2bo7b2o3bob7o3b10o2b8o$bob
15ob3o2b4o7b2o4bo$b9ob5o3b8o7b2o2b2obo3b3o$3b9o5b5ob2o7bo6b3o2bo$3obo
4bo3b2o3b2o3b4obo3bob2ob3obobobob2o!
In particular there are a lot of features, a lot of connections, and they all seem pretty mixed about which way they're oriented. It's enough for me to think there are likely p1 photons here. EDIT: In fact, the unlimited left/right extensibility of some of those front parts and them showing up in both orientations means proj002 really isn't going to be able to work out for front edges.

Sokwe
Moderator
Posts: 3367
Joined: July 9th, 2009, 2:44 pm

Re: Life-like p1 photon project

Post by Sokwe » November 14th, 2024, 7:30 pm

amling wrote:
November 14th, 2024, 2:15 pm
My best guess is you've run the proj002 first step with a W depth of less than 4 so it's producing too-short input files for the next step.
Yes, that was my problem. I tried again with W-depth 4, but the secondary steps didn't eliminate enough blocks before filling my limited memory, and it was clear I wasn't going to get a self-forcing set. The reason I tried B25678/S02358 with geometry raw:1:1:0:0:-1:1:0:0:1 is because that same geometry was used to eliminate the closely related rule B2567/S02358. I thought maybe whatever limited the possibilities in B2567/S02358 with this geometry would at least give some limitations to the front edge in B25678/S02358. I'm not sure if that's a reasonable thought, or if more memory or different choices of W-depth and AF2 value might give a proof. It could also be that there are p1 photons in B25678/S02358. From f2b, b2f, and s2s searches, I saw no good reason why there shouldn't be, but I similarly saw no reason why there shouldn't be any in B2567/S02358, yet there aren't.
amling wrote:
November 14th, 2024, 2:52 pm
Sokwe wrote:
November 13th, 2024, 6:31 pm
...can you try rules B268/S02568 and B2678/S02568 with raw:1:0:0:1:0:1:0:1:0, AF2=6, and W-height 4 up to 60GB?
Both rules went badly and in pretty much the same way....

I'm still poking around with some searches hoping to get lucky, but at least things like this exist:

Code: Select all

...
In particular there are a lot of features, a lot of connections, and they all seem pretty mixed about which way they're oriented. It's enough for me to think there are likely p1 photons here.
Partial results like that indicate that B268/S02568 almost certainly has p1 photons. Looking at the nearby rule B26/S02568, partial results like the following indicate that we will have the same problem:

Code: Select all

x = 93, y = 32, rule = B26/S02568
29bo59bo$28bo59bo$18bo8bob2o47bo8bob2o$17bo9b5o45bo9b5o$16bob2o2bo6b2o
45bob2o2bo6b2o$16b5o2b6o47b5o2b6o$18bobo8b3o46bobo8b3o$14bob2o2b3o4b6o
41bob2o2b3o4b6o$13bo3b7o3bob3o41bo3b7o3bob3o$12bob6o3b2o3bo43bob6o3b2o
3bo$12b6o4b2o5b2o41b6o4b2o5b2o$9bo4b7o48bo4b7o3b2o$7bo2b2ob2o2b15o35bo
2b2ob2o2b13o$7bo8b2o3b12o34bo8b2o3b3o2b5o$3bo5b2o2bo6b2o4bo4bo32bo4b2o
2bo6b2o3b2o3b2o$2bo7b2o2b2ob2o5b2o3b2o32bo6b2o2b2ob2o3bo6b2o$bob9o6b5o
2b3o2bo31bob8o6b10o$b9o2b19o31b8o2b16o2b2o$3b16o3b3o2b4o33b14o10bo2b2o
$2b2o6b3o8b2o3b2o2bo32b2o4b3o8b2o4b6o$o7b2o8b2o3bo5b2o30bo5b2o8bobo6bo
b3o$o2b2o3bo3b2o3bo3b6o4bo27bo2b2o3bo3b2o3bo4b2o4bo$2bo6bobo5b2o3b11o
26bo8bobo5b2o4b2o4b2o$4b2o7b2o4b4o4b5o29b2o9b2o4b5o$5b5o4b8o3b2o35b7o
4b9o7b2o$3b16o6bo3b2o29b19o9bo$3bobo4b5o6b2o3bobo31bobo6b5o7b2o4bob3o$
4bo4b2o6b2obo9b2o29bo3b2ob2o8bobo6b6o$5bobo5b2obo6b4o4b2o29bobo8b2o2bo
4b2o5b3o$8b3obo6b2obo6b3o35b2o3bo4b2o4b6o$4b2o9b2obo6bo3bobo32b2o2b2o
2b2o5b10o2b2o$4bob2o3b2obo6b2obo5bobo31bob3o5b9o5bobo!
In fact, I think it's very likely that B26/S02568 has p1 photons as well.

However, in the rules B26(78)/S0256 I believe I've shown that there aren't any p1 photons. Using proj002 in B268/S0256 with raw:1:0:0:1:0:1:0:1:0, AF2=6, and W-height 3 I got the following self-forcing edge set of 45 blocks:

Code: Select all

| LLLLL!LLLLLL!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!RRRRRR |
| .....!WWWWWW!WWWWW...........!WWWWW...........!WWWWW...*.......!WWWWW...........!WWWWW....*......!WWWWW..**.*.....!WWWWW...........!WWWWW..**.*.....!WWWWW.*.........!WWWWW.*.........!WWWWW...........!WWWWW..*........!WWWWW..**.*.....!WWWWW...........!WWWWW...*.......!WWWWW....*......!WWWWW..**.*.....!WWWWW...*.......!WWWWW...........!WWWWW...*.......!WWWWW.*.........!WWWWW.*.........!WWWWW...........!WWWWW...........!WWWWW....*......!WWWWW..**.*.....!WWWWW.*.........!WWWWW*..........!WWWWW*...*......!WWWWW*...*......!WWWWW*..........!WWWWW****.......!WWWWW*..........!WWWWW*..*.......!WWWWW*...*......!WWWWW*..........!WWWWW*..........!WWWWW*..........!WWWWW*..........!WWWWW*...*......!WWWWW****.......!WWWWW****.*.....!WWWWW*...*......!WWWWW**.*.......!WWWWW****.*.....!...... |
| .....!WWWWWW!WWWWW...........!WWWWW....*......!WWWWW....*......!WWWWW....*......!WWWWW..**.*.....!WWWWW.*****.....!WWWWW.*.........!WWWWW.*****.....!WWWWW....*......!WWWWW.*.........!WWWWW...........!WWWWW..*........!WWWWW..****.....!WWWWW...*.......!WWWWW....*......!WWWWW..**.*.....!WWWWW.*****.....!WWWWW*...*......!WWWWW*..........!WWWWW***..*.....!WWWWW**.........!WWWWW**..*......!WWWWW*..........!WWWWW*...*......!WWWWW****.*.....!WWWWW******.....!WWWWW*.*........!WWWWW....*......!WWWWW..**.*.....!WWWWW..**.*.....!WWWWW.**.*......!WWWWW.*.........!WWWWW....*......!WWWWW....*......!WWWWW..**.*.....!WWWWW.*.........!WWWWW.**.*......!WWWWW*..........!WWWWW*...*......!WWWWW****.*.....!WWWWW**.........!WWWWW******.....!WWWWW****.*.....!WWWWW*...*......!WWWWW******.....!...... |
| .....!WWWWWW!WWWWW.....*.....!WWWWW.....*.....!WWWWW..**.*.....!WWWWW.*...*.....!WWWWW.*****.....!WWWWW..**.......!WWWWW.*...*.....!WWWWW.*.*.......!WWWWW.....*.....!WWWWW.....*.....!WWWWW*....*.....!WWWWW*....*.....!WWWWW*..*.......!WWWWW***..*.....!WWWWW****.*.....!WWWWW******.....!WWWWW**.*.......!WWWWW..**.*.....!WWWWW.*...*.....!WWWWW.....*.....!WWWWW.....*.....!WWWWW.....*.....!WWWWW*....*.....!WWWWW*....*.....!WWWWW******.....!WWWWW**.*.......!WWWWW***..*.....!WWWWW.....*.....!WWWWW..****.....!WWWWW.*****.....!WWWWW.*...*.....!WWWWW..**.*.....!WWWWW**...*.....!WWWWW****.*.....!WWWWW******.....!WWWWW**...*.....!WWWWW**...*.....!WWWWW.....*.....!WWWWW.....*.....!WWWWW.*****.....!WWWWW..**.*.....!WWWWW...*.......!WWWWW******.....!WWWWW****.*.....!WWWWW*..*.......!...... |
Using the same settings for B2678/S0256, I got the following self-forcing edge set of 43 blocks:

Code: Select all

| LLLLL!LLLLLL!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!LLLLLuuuuuuRRRRR!RRRRRR |
| .....!WWWWWW!WWWWW...........!WWWWW...........!WWWWW...*.......!WWWWW...........!WWWWW....*......!WWWWW..**.*.....!WWWWW...........!WWWWW..**.*.....!WWWWW.*.........!WWWWW.*.........!WWWWW...........!WWWWW..*........!WWWWW..**.*.....!WWWWW...........!WWWWW...*.......!WWWWW....*......!WWWWW..**.*.....!WWWWW...*.......!WWWWW...........!WWWWW...*.......!WWWWW.*.........!WWWWW...........!WWWWW...........!WWWWW....*......!WWWWW..**.*.....!WWWWW.*.........!WWWWW*..........!WWWWW*...*......!WWWWW*...*......!WWWWW*..........!WWWWW****.......!WWWWW*..*.......!WWWWW*...*......!WWWWW*..........!WWWWW*..........!WWWWW*..........!WWWWW*..........!WWWWW*...*......!WWWWW****.......!WWWWW****.*.....!WWWWW*...*......!WWWWW**.*.......!WWWWW****.*.....!...... |
| .....!WWWWWW!WWWWW...........!WWWWW....*......!WWWWW....*......!WWWWW....*......!WWWWW..**.*.....!WWWWW.*****.....!WWWWW.*.........!WWWWW.*****.....!WWWWW....*......!WWWWW.*.........!WWWWW...........!WWWWW..*........!WWWWW..****.....!WWWWW...*.......!WWWWW....*......!WWWWW..**.*.....!WWWWW.*****.....!WWWWW*...*......!WWWWW*..........!WWWWW***..*.....!WWWWW**..*......!WWWWW*..........!WWWWW*...*......!WWWWW****.*.....!WWWWW******.....!WWWWW*.*........!WWWWW....*......!WWWWW..**.*.....!WWWWW..**.*.....!WWWWW.**.*......!WWWWW.*.........!WWWWW....*......!WWWWW..**.*.....!WWWWW.*.........!WWWWW.**.*......!WWWWW*..........!WWWWW*...*......!WWWWW****.*.....!WWWWW**.........!WWWWW******.....!WWWWW****.*.....!WWWWW*...*......!WWWWW******.....!...... |
| .....!WWWWWW!WWWWW.....*.....!WWWWW.....*.....!WWWWW..**.*.....!WWWWW.*...*.....!WWWWW.*****.....!WWWWW..**.......!WWWWW.*...*.....!WWWWW.*.*.......!WWWWW.....*.....!WWWWW.....*.....!WWWWW*....*.....!WWWWW*....*.....!WWWWW*..*.......!WWWWW***..*.....!WWWWW****.*.....!WWWWW******.....!WWWWW**.*.......!WWWWW..**.*.....!WWWWW.*...*.....!WWWWW.....*.....!WWWWW.....*.....!WWWWW*....*.....!WWWWW*....*.....!WWWWW******.....!WWWWW**.*.......!WWWWW***..*.....!WWWWW.....*.....!WWWWW..****.....!WWWWW.*****.....!WWWWW.*...*.....!WWWWW..**.*.....!WWWWW****.*.....!WWWWW******.....!WWWWW**...*.....!WWWWW**...*.....!WWWWW.....*.....!WWWWW.....*.....!WWWWW.*****.....!WWWWW..**.*.....!WWWWW...*.......!WWWWW******.....!WWWWW****.*.....!WWWWW*..*.......!...... |
You may want to check my work here, as I would hate to make a claim after incorrectly applying your method.

For rules B267/S02568 and B2678/S02568 the situation seems less clear to me. My rudimentary c1-s2s tests were unable to find a front edge whose slope reversed at some point, which seemed to be the main cause of the difficulty in B26(8)/S02568. However, my limited memory may be at fault there. I don't know how much trouble it is, but could you try B267/S02568? I don't particularly think it will work, but it might give insight into whether these rules have p1 photons.
-Matthias Merzenich

amling
Posts: 1154
Joined: April 2nd, 2020, 9:47 pm

Re: Life-like p1 photon project

Post by amling » November 14th, 2024, 8:00 pm

amling wrote:
November 14th, 2024, 2:52 pm
It's enough for me to think there are likely p1 photons here.
There are (in B268/S02568):

Code: Select all

#C [[ TRACK 0 -1 ]]
x = 127, y = 65, rule = B268/S02568
21b2o$25b2o9b2o66b2o$20bo2bobobo4b2o55b2o9b2o$16b2o3bob4obo2bobobo2bo
54b2o4bobobo2bo$15bobobobo2b2o2bobob4obo3b2o45bo2bobobo2bob4obo3b2o$
14bob4o4b2o4bo2b2o2bobobobo40b2o3bob4obobo2b2o2bobobobo$16b3o5b2o7b2o
4b4obo38bobobobo2b2o2bo4b2o4b4obo$16b3o5b2o7b2o5b3o39bob4o4b2o7b2o5b3o
$16b3o5b2o3b2o2b2o5b3o41b3o5b2o7b2o5b3o$16b3o5b2o7b2o2b2ob3o2b2o37b3o
5b2o2b2o3b2o5b3o$16b3o5b2o2bo2bob2obobob3o37b2o2b3ob2o2b2o7b2o5b3o$12b
2o2b3ob2o2b2o3bob3o2bo2b4obo2bo36b3obobob2obo2bo2b2o5b3o$16b3obobob2ob
obo2bo6b2ob3obo32bo2bob4o2bo2b3obo3b2o2b2ob3o2b2o$11bo2bob4o2bo2b3obo
9b2ob2o2bo33bob3ob2o6bo2bobob2obobob3o$12bob3ob2o6bo2bo6b2ob3o6b2o30bo
2b2ob2o9bob3o2bo2b4obo2bo$12bo2b2ob2o9bo5bobo2b2o2bobobobo26b2o6b3ob2o
6bo2bo6b2ob3obo$9b2o6b3ob2o6bo4bob5o2bo2b4obo24bobobobo2b2o2bobo5bo9b
2ob2o2bo$8bobobobo2b2o2bobo5bo6b4o3bo3b3o25bob4o2bo2b5obo4bo6b2ob3o6b
2o$7bob4o2bo2b5obo4bo6b4obobobob3obob2o22b3o3bo3b4o6bo5bobo2b2o2bobobo
bo$9b3o3bo3b4o6bo3b2ob6obob7obobo16b2obob3obobobob4o6bo4bob5o2bo2b4obo
$4b2obob3obobobob4o6bo2bobo2bob2o5b2ob2ob3obo14bobob7obob6ob2o3bo6b4o
3bo3b3o$3bobob7o3b6ob2o3bobob5ob2o2bo2b2ob2o2b2o15bob3ob2ob2o5b2obo2bo
bo2bo6b4obobobob3obob2o$2bob3ob2ob2o5b2obo2bobo2bo3b3o2b3o3bob2o2b4o
18b2o2b2ob2o2bo2b2ob5obobo3b2ob6o3b7obobo$4b2o2b2ob2o5b2ob5obobobob3o
3b2obo3b2o4b2o19b4o2b2obo3b3o2b3o3bo2bobo2bob2o5b2ob2ob3obo$5b4o2b2o5b
3o2b3obobob5obob4obob2obo2b2o2b2o15b2o4b2o3bob2o3b3obobobob5ob2o5b2ob
2o2b2o$6b2o3b2o5b2o3b3o6b2ob3o2b2o2b4o2bob2o15b2o2b2o2bob2obob4obob5ob
obob3o2b3o5b2o2b4o$6b2obob2o2b2ob2obob3obobo2b2ob2o3b2o3b2o3bob2obo2bo
14b2obo2b4o2b2o2b3ob2o6b3o3b2o5b2o3b2o$3b2ob2ob4obobob2ob7o2bob2o2bobo
b2obob2obobo2b3obo10bo2bob2obo3b2o3b2o3b2ob2o2bobob3obob2ob2o2b2obob2o
$2bobob2o2b2o5b3o2b2ob2o3bob7o2b3o2b3o5bo2bo11bob3o2bobob2obob2obobo2b
2obo2b7ob2obobob4ob2ob2o$bob3o4b2o2bo2b2o3b2ob2obobo2bo3bo4bo4bo9bo11b
o2bo5b3o2b3o2b7obo3b2ob2o2b3o5b2o2b2obobo$3b3o2bob2o3bob2obob2o2b3o28b
o11bo9bo4bo4bo3bo2bobob2ob2o3b2o2bo2b2o4b3obo$4bo2bo2b2obobob2ob3o4bo
26b2obob2o8bo28b3o2b2obob2obo3b2obo2b3o$7bo3b3o3b2o2bo31bobobobobo4b2o
bob2o26bo4b3ob2obobob2o2bo2bo$7bo4bo4b2o33bob3ob3obo2bobobobobo31bo2b
2o3b3o3bo$7bo9b2o35b3ob3obobob3ob3obo33b2o4bo4bo$7bo9b2o36bo2b3o3bob3o
b3o35b2o9bo$4b2obob2o6b2o40bo6b3o2bo36b2o9bo$3bobobobobo5b2o48bo40b2o
6b2obob2o$2bob3ob3obo4b2o89b2o5bobobobobo$4b3o2b2o6b2o89b2o4bob3ob3obo
$5bo3b2o6b2o89b2o6b2o2b3o$9b2o6b2o89b2o6b2o3bo$9b2o6b2o89b2o6b2o$9b2o
3b2ob2ob2o86b2o6b2o$9b2o2bobob2obobo82b2ob2ob2o3b2o$9b2obob3o2b3obo80b
obob2obobo2b2o$9b2o3b3o3b2o81bob3o2b3obob2o$9b2obob3obob2obob2o78b2o3b
3o3b2o$9b2ob3ob3o2b3obobo72b2obob2obob3obob2o$9b3ob2ob2o4bob3obo70bobo
b3o2b3ob3ob2o$5b2o2b2o2b3o8b3o71bob3obo4b2ob2ob3o$9b2o3b2o2bo6bo74b3o
8b3o2b2o2b2o$4bo2bob2obob2obo83bo6bo2b2o3b2o$5bob3o2b3o2bo91bob2obob2o
bo2bo$5bo2bo4bo3bo91bo2b3o2b3obo$5bo11bo91bo3bo4bo2bo$5bo11bo91bo11bo$
2b2obob2o8bo91bo11bo$bobobobobo4b2obob2o88bo8b2obob2o$ob3ob3obo2bobobo
bobo84b2obob2o4bobobobobo$2b3ob3obobob3ob3obo82bobobobobo2bob3ob3obo$
3bo2b3o3bob3ob3o83bob3ob3obobob3ob3o$7bo6b3o2bo86b3ob3obo3b3o2bo$15bo
91bo2b3o6bo$111bo!
I was trying to sketch some code to make NFA ends easier to start looking for specific sorts of components to help juggle offsets in getting things to mutually support each other when some iffy autochoke searches I had left running found that. I guess another data point for trying to somehow keep those exact mid_steps and autochoke changes...

Post Reply