Not sure how to handle this exactly. I do have a P2 block-move table up to 9 gliders, and also about a quarter of million block-to-constellation recipes generated from the block-move recipes.simsim314 wrote:A more practical question: do we have some block->SL recipes list? Preferably limited list, of say 10 good recipes per SL per orientation? ( + we need block moving list)
I've often used the block-to-constellation table to find ways to build two objects simultaneously -- usually a catalyst object plus a block in exactly the right place to start the next construction. Sometimes I sort the table by the number of gliders, and sometimes by the total width of the slow-salvo glider lanes (figuring that recipes with all lanes near each other will be cheaper to construct than recipes that jump around over a wide range -- not always true, but maybe slightly true on average).
There are all sorts of difficult optimization problems hiding here. Really, of all the possible slow salvos that can build Constellation X, we want the one that can be coded by the shortest amount of data on the data tape. That depends not only on the specific elbow-op library being used, but also on which Constellation W was constructed previously, and which Constellation Y will be constructed next (the elbow's starting and ending positions both matter).
So... ignoring all those problems, it's pretty easy to pick out a couple dozen of the shortest block-to-object recipes, probably choosing recipes that have reaction envelopes as different from each other as possible, and recipes that have the constructed object right on the edge of the reaction envelope (back, left side, and also right side for asymmetrical objects).
You don't really want a block-to-object library, though, you want block-to-(object-plus-block), or more generally target-to-(object-plus-target). See this post for example, for an explanation of some of the lookup shortcuts I used in the linear replicator.
Recently simeks' search utility has been re-doing the search to produce something like that quarter-million-recipe library, much more thoroughly (my source of data wasn't an exhaustive search) -- but starting with a blinker instead of a block, at least sometimes. That was back in January; I don't know if there's a complete library available yet for different kinds and orientations of Spartan still lifes.
Blinkers are good as targets, because blocks have only one reasonable next step, a honeyfarm conversion, plus the two block pulls. Blinkers have a lot more branches right at the root of their search tree, and as long as you can build P2-slow salvos, and the constellation you're building is P1, then it seems like it will be significantly more efficient to use blinkers as the persistent target "hand" objects.
Or blinkers might just be one possible target object out of maybe twenty -- e.g., blinker, block, honeyfarm, traffic light, tub, pond, beehive, ship, and three different orientations each of boats, loaves and long boats. That would mean 17 different lookup tables depending on the target object, or 22 if we just duplicate the tables for mirror-image orientations.
-- Could maybe add toads to the list, and maybe a few other common pseudo-objects and small constellations like bi-blocks and half-blockades, but after that it seems like additional objects would be so rare that the tables would never see any use.
Maybe we could start with just block-to-(object-plus-block) and blinker-to-(object-plus-blinker) tables, plus a blinker-move table, and compile an Orthogonoid once with each library to see if blinkers are really an improvement. Then maybe we'd add block-to-blinker and blinker-to-block movement tables, and work up from there.
Yeah, whoever has a script or a good collection of data to share first, should probably start that thread.simsim314 wrote: I know you post the recipes time after time in the discussions, maybe we could have a thread with all recipes on the first page like we have with Conduits? Maybe we need similiar thread, something like - the hunt for the optimal slow salvo compiler?