Kazyan wrote: ↑November 16th, 2020, 11:43 am
MathAndCode wrote: ↑November 16th, 2020, 10:41 am
Do we have a program (likely some hybrid of Logic Life Search and Bellman) that can make a conduit with a particular output and clearance without being given a partial reaction?
No. We don't.
One could probably be stitched together from existing catalyst search programs with something like this:
I was thinking of something that would work more directly by attempting to track evolution and catalyses backward in time. For example, let's suppose that we want to create a ∏-heptomino. (In reality, we would most likely enter a house into the program due to alternative evolution paths that are fairly common.)
Code: Select all
x = 3, y = 3, rule = B3/S23
3o$2bo$3o!
The program can track this back to see what could have evolved into it. Here are a couple of examples for going two generations back.
Code: Select all
x = 2, y = 4, rule = B3/S23
o$bo$bo$2o!
Code: Select all
x = 3, y = 4, rule = B3/S23
2o$2bo$2bo$b2o!
The program could be taught that sometimes, the interior of a pattern will fill up with a lot of on cells, causing most or all of the interior to die, leaving a detached front end and usually sparks. (Examples include generations 8–9, 18–19, and 26–27 of the R-pentomino.) However, instead of making the program specifically look for this, a better way might be to have the program focus on getting the front cells correct first and then killing a bunch of cells just behind with overpopulation from cells farther behind, killing those cells with overpopulation from cells even farther behind, etc…. It's possible that the program would also be taught to disregard sparks instead of viewing some object by itself and some object with a spark safely far behind as separate predecessors. With there in mind, here is one way to create the second grandparent.
Code: Select all
x = 7, y = 5, rule = B3/S23
4bo$4b2o$ob2ob2o$b5o$4o!
Suppose that the program tracks that path further back in time and arrives at this.
Code: Select all
x = 7, y = 5, rule = B3/S23
3b3o$3b4o$2b2o2bo$5bo$obo!
Those two dot sparks in the lower left don't seem very like to have happened naturally, so the program might guess that it should try a catalysis. After going through the effects of common catalysts, it should know to try a fishhook.
Code: Select all
x = 10, y = 9, rule = B3/S23
8bo$6b4o$5bo3bo$5b3o2$2b2o$bobo$bo$2o!
Another way to think about it is that if the dot sparks are viewed as part of a V triplet, that results in an object that could have evolved naturally more feasibly, so the program has to find a way to make something that ordinarily would have evolved into the version with the V triplet instead evolve into an object with one cell missing. The program can then continue to look for predecessors until it senses that another catalysis is necessary. Here is the pattern rewound a couple more generations.
Code: Select all
x = 10, y = 9, rule = B3/S23
9bo$6bo2bo$6bobo$6b2o2$2b2o$bobo$bo$2o!
Of course, the program would have also investigated other ways to make a ∏ through back-tracking.
Disclaimer: Obviously, I did not find that way of making a ∏ through the method that I have just detailed (or else there would be no need for the program), so the example above is no guarantee that the method is practical for a computer to carry out. It is possible that there will be too many paths for the computer to investigate (although there would be ways to narrow the paths down), that attempting to make the program recognize the aftermath of catalyses will fail, or that other problems will crop up.
Edit: Here is another example.
A while back, I wanted to make a Herschel from an alternative direction. I first found a promising parent.
Code: Select all
x = 5, y = 4, rule = B3/S23
2bo$2o$2b2o$4bo!
My first attempt to backtrack went to a grandparent similar to this:
Code: Select all
x = 7, y = 6, rule = B3/S23
o$ob2o$o$3b3o$4b3o$2bo!
This obviously doesn't look very feasible, so I tried another path and found something like this:
Code: Select all
x = 6, y = 5, rule = B3/S23
2bo$o$o2bobo$obo$3b2o!
This only looks marginally better, and attempts to backtrack further while maintaining a c/4 forward movement mechanism only got worse, with the back two-thirds becoming a jumbled mess of dot, domino, and banana sparks that I couldn't extend more than four (total) generations back.
Since that path was not working, I decided to go down a different path: Instead of assuming that the object had maintained a c/4 forward movement mechanism for a while, I decided to try assuming that it had recently transitioned from a c/3 forward movement mechanism. This yielded better results; I was able to go back six generations while still having the object look fairly plausible.
Code: Select all
x = 8, y = 8, rule = B3/S23
5bo$2bo$b4o$o$b2o$2b2o$4bo2bo$5bobo!
However, I could not figure out how to go back eight generations without making the object look unruly.
Code: Select all
x = 9, y = 13, rule = B3/S23
3bo$4bo$4bo$6bo$b2o$2o3bobo$bob2o$2bo2bobo$6bo$5bo$3bo$b3o2b2o$3b2o3bo!
Note: This is where I originally stopped trying to make a Herschel from an alternative direction. All later work on this in this post has been done just now.
Adding an additional cell to the six-generation predecessor makes it look even more plausible but prevents it from working as a Herschel predecessor.
Code: Select all
x = 8, y = 9, rule = B3/S23
5bo$2bo$b4o$o$b2o$2b2o$4bo2bo$5bobo$6bo!
This looks similar to the fishhook in the first example, so let's also treat this as the aftermath of a fishhook catalysis.
Code: Select all
x = 12, y = 13, rule = B3/S23
5bo$2bo$b4o$o$b2o$2b2o$4bo2bo$5bobo2$9bo$7b2obo$10bo$10b2o!
Nope, that doesn't work.
Code: Select all
x = 11, y = 14, rule = B3/S23
3b2o$5bo2$3o$o2b2o$2ob5o$2b4o2$5b2o$4b3o$2b3ob3o$3bo3bobo$3bo5bo$9b2o!
After seeing that, I looked back at some other fishhook catalyses, and I saw that the aftermath of fishhook catalyses varies a lot and typically does not include the presence of two dots separated by two cells orthogonally with the same relative position to the fishhook, so recognizing the aftermath of catalyses will likely be more difficult than I initially figured. It could at least be done by brute force, but that would take longer. This example is a good example of the process and also a good example that this will not be trivial.