CatForce new catalyst search utility (LifeAPI based)

For scripts to aid with computation or simulation in cellular automata.
User avatar
Kazyan
Posts: 1247
Joined: February 6th, 2014, 11:02 pm

Re: CatForce new catalyst search utility (LifeAPI based)

Post by Kazyan » April 30th, 2015, 4:22 pm

I've noticed that the fishhook is very useful, but adding all eight orientations takes a lot of computation. Meanwhile, hypothetically, both eating actions can be covered by adding a mirrored dock and a table-on-table to the catalyst list. It's slightly less general because those objects are bigger, but they require only 4 total orientations, where the fishhook requires 8. This could speed things up somewhat, and incidentally catch any table-based catalysis.

Thoughts?

EDIT: A table-on-table, mirrored dock, and a block can combine into an eater 2 variant as well.

Code: Select all

x = 10, y = 11, rule = B3/S23
2ob2o$bobo$bobo$2ob2o2$2ob2o3b2o$2obobobobo$5bobo$5bobo$3bobobobo$3b2o
3b2o!
Tanner Jacobi
Coldlander, a novel, available in paperback and as an ebook. Now on Amazon.

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

Re: CatForce new catalyst search utility (LifeAPI based)

Post by simsim314 » April 30th, 2015, 6:51 pm

Well this is eater 2 and fish hook and regular eater in one SL (pretty cool by the way). You can remove the eater and place this one instead, adding to it some more "features" in all directions.

Also pay attention that even if you have 1 catalyst, and you have use-combine yes option, many times you get pretty interesting things. So I wouldn't be so much afraid to add many catalysts and search with catalysts 1 and use-combine yes or if you have many, you could use pretty surely fit-in-width-height option, and use-combine yes with two catalysts. This would speed things up and will probably give a lot of interesting results.

You also don't have to be worry that the SL will be connected. You could take 4 SLs in four diagonal directions. The only thing CatForce cares about it's space (two SLs too close together will not work), and that you give it SL of some sort (it checks that after one iteration everything remain the same when you place N catalysts).

User avatar
Kazyan
Posts: 1247
Joined: February 6th, 2014, 11:02 pm

Re: CatForce new catalyst search utility (LifeAPI based)

Post by Kazyan » April 30th, 2015, 8:27 pm

Good to know. Thanks for the tips.

By the way, this is showing up as a solution for a LWSS, but there's no interaction:

Code: Select all

x = 16, y = 15, rule = B3/S23
9b2o3b2o$9bobobobo$11bobo$11bobo$9bobobobo$bo7b2o3b2o$o$o3bo$4o$9b2o3b
2o$9bobobobo$11bobo$11bobo$9bobobobo$9b2o3b2o!
Any idea what could be causing it?
Tanner Jacobi
Coldlander, a novel, available in paperback and as an ebook. Now on Amazon.

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

Re: CatForce new catalyst search utility (LifeAPI based)

Post by simsim314 » May 1st, 2015, 1:58 am

Kazyan wrote:this is showing up as a solution for a LWSS, but there's no interaction
Can you post your input? What was you pat?

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

Re: CatForce new catalyst search utility (LifeAPI based)

Post by Scorbie » May 1st, 2015, 6:02 am

simsim314 wrote:EDIT Just saw last-gen wasn't in the ReadMe. Guys please tell me if I mention here something which isn't in the ReadMe. I try to keep it updated, but sometimes miss things, there are many small stuff which hard to keep track.
Sorry. I'll notify you from now on.

I came here to report this strange phenomenon:
Input params:

Code: Select all

max-gen 180
start-gen 60
last-gen 120
num-catalyst 2
stable-interval 20
search-area -20 0 20 26
pat 2o$2o22$b2o$b2o10$2bo$b3o$2obo!
filter 130 2o$2o! 1 23
cat 2o$2o! 60 0 0 . forbidden obo$b2o$bo2$2o$2o! 0 -4 forbidden 2o3bo$2ob2o$4b2o! 0 0 forbidden b2o$b2o2$bo$2o$obo! -1 0 forbidden 2o$b2ob2o$o3b2o! -4 -1 forbidden o3b2o$b2ob2o$2o! -4 0 forbidden obo$2o$bo2$b2o$b2o! -1 -4 forbidden 4b2o$2ob2o$2o3bo! 0 -1 forbidden 2o$2o2$bo$b2o$obo! 0 0 
cat 2o$o$b3o$3bo! 12 -2 -2 * forbidden 2o$o$b3ob2o$3bobobo$6bo! -2 -2 forbidden bo$obo$2o2$2o$o$b3o$3bo! -2 -6 forbidden bo$2bo$3o2$3b2o$3bo$4b3o$6bo! -5 -6 forbidden 2bo$obo$b2o2$3b2o$3bo$4b3o$6bo! -5 -6
cat bo$obo$obo$bo! 40 1 2 /
cat b2o$o2bo$bobo$2bo! 35 2 2 +
cat bo$obo$bo! 15 1 1 .
cat 2o$obo$bo! 25 1 1 +
cat 2o$obo$b2o! 35 1 1 |
output bheptw2blocks.rle
result:

Code: Select all

x = 613, y = 2828, rule = B3/S23
17bo98bo98bo98bo98bo98bo98bo$16b3o96b3o96b3o96b3o96b3o96b3o96b3o$15b2o
bo95b2obo95b2obo95b2obo95b2obo95b2obo95b2obo28$15b2o97b2o97b2o97b2o93b
o3b2o82bo14b2o97b2o$15b2o97b2o86bo10b2o82b2o13b2o91b3o3b2o82b3o12b2o
81b2o14b2o$100bo101b3o93bo105bo93bo95bo$100b3o102bo92bobo103b2o91b2o
95bobo$103bo100b2o93b2o294b2o$102b2o8$4b2o97b2o97b2o97b2o97b2o97b2o97b
2o$5bo98bo98bo98bo98bo98bo98bo$2b3o96b3o96b3o96b3o96b3o96b3o96b3o$2bo
98bo98bo98bo98bo98bo98bo6$6b2o$5bobo8b2o97b2o97b2o97b2o97b2o97b2o97b2o
$5bo10b2o97b2o97b2o97b2o97b2o97b2o97b2o$4b2o44$17bo98bo98bo$16b3o96b3o
96b3o$15b2obo95b2obo95b2obo28$15b2o97b2o97b2o$15b2o97b2o97b2o$105bo98b
o$5b2o98b3o96b3o$6bo101bo98bo$6bobo98b2o97b2o$7b2o5$7b2o97b2o97bo$6bob
o96bobo96bobo$6bo98bo97bo2bo$5b2o97b2o98b2o9$16b2o97b2o97b2o$16b2o97b
2o97b2o45$17bo$16b3o$15b2obo28$15b2o$4bo10b2o$4b3o$7bo$2o4b2o$bo$bobo$
2b2o16$16b2o$16b2o45$17bo$16b3o$15b2obo28$15b2o$15b2o$3bo$2bobo$2b2o7$
7bo$6bobo$5bo2bo$6b2o9$16b2o$16b2o45$17bo$16b3o$15b2obo28$15b2o$15b2o$
8bo$7bobo$b2o5bo$2bo$2bobo$3b2o16$16b2o$16b2o45$17bo98bo$16b3o96b3o$
15b2obo95b2obo28$15b2o97b2o$15b2o97b2o3$b2o$2bo$2bobo$3b2o4$3b2o97b2o$
2bobo96bobo$2bo98bo$b2o97b2o8$105b2o$16b2o86bobo8b2o$16b2o86bo10b2o$
103b2o44$17bo$16b3o$15b2obo28$15b2o$15b2o3$b2o$2bo$2bobo$3b2o8$4bo$3bo
bo$3b2o6$16b2o$16b2o45$17bo$16b3o$15b2obo28$15b2o$15b2o3$b2o$2bo$2bobo
$3b2o15$6b2o$5bobo8b2o$5bo10b2o$4b2o44$17bo98bo98bo$16b3o96b3o96b3o$
15b2obo95b2obo95b2obo28$15b2o97b2o97b2o$15b2o97b2o97b2o3$2b2o97b2o97b
2o$3bo98bo98bo$3bobo96bobo96bobo$4b2o97b2o97b2o4$4b2o$3bobo$3bo$2b2o
99b2o$104bo$104bobo$105b2o5$204b2o$16b2o97b2o86bobo8b2o$16b2o97b2o86bo
10b2o$202b2o44$17bo$16b3o$15b2obo28$15b2o$15b2o3$3b2o$4bo$4bobo$5b2o3$
5b2o$5bo$3bobo$3b2o10$16b2o$16b2o45$17bo$16b3o$15b2obo28$15b2o$4bo10b
2o$4b3o$7bo$6b2o3$bo$obo$bo14$16b2o$16b2o45$17bo98bo98bo98bo98bo98bo$
16b3o96b3o96b3o96b3o96b3o96b3o$15b2obo95b2obo95b2obo95b2obo95b2obo95b
2obo28$15b2o97b2o97b2o97b2o97b2o97b2o$15b2o97b2o97b2o97b2o97b2o97b2o$
503bo$502bobo$503bo$2b2o$3bo$3bobo$4b2o97b2o97b2o$103b2o97b2o97b2o97b
2o$4b2o295b2o97b2o$3bobo493b2o$3bo494bobo$2b2o494bo$103b2o196b2o194b2o
$104bo197bo$104bobo195bobo$105b2o196b2o5$204b2o196b2o$16b2o97b2o86bobo
8b2o97b2o86bobo8b2o97b2o$16b2o97b2o86bo10b2o97b2o86bo10b2o97b2o$202b2o
196b2o44$17bo$16b3o$15b2obo28$15b2o$15b2o6$3b2o$3b2o3$7bo$6bobo$5bo2bo
$6b2o9$16b2o$16b2o45$17bo$16b3o$15b2obo28$15b2o$15b2o$8bo$7bobo$8bo5$b
2o$b2o13$16b2o$16b2o45$17bo98bo$16b3o96b3o$15b2obo95b2obo28$15b2o97b2o
$15b2o86bo10b2o$8bo94b3o$7bobo96bo$8bo96b2o7$3b2o97b2o$2bobo96bobo$2bo
98bo$b2o97b2o9$16b2o97b2o$16b2o97b2o45$17bo$16b3o$15b2obo28$15b2o$15b
2o10$4b2o$3bobo$3bo$2b2o8$6b2o$5bobo8b2o$5bo10b2o$4b2o44$17bo$16b3o$
15b2obo28$15b2o$15b2o2$5b2o$6bo$6bobo$7b2o6$3b2o$4bo$4bobo$5b2o8$16b2o
$16b2o45$17bo$16b3o$15b2obo28$15b2o$15b2o3$b2o$2bo$2bobo$3b2o6$2b2o$bo
bo$bo$2o7$16b2o$16b2o45$17bo98bo$16b3o96b3o$15b2obo95b2obo28$15b2o97b
2o$15b2o97b2o2$5b2o97b2o$6bo98bo$6bobo96bobo$7b2o97b2o8$103b2o$104bo$
104bobo$105b2o5$6b2o$5bobo8b2o97b2o$5bo10b2o97b2o$4b2o44$17bo$16b3o$
15b2obo28$15b2o$15b2o13$4b2o$5bo$5bobo$6b2o5$6b2o$5bobo8b2o$5bo10b2o$
4b2o44$17bo$16b3o$15b2obo28$15b2o$15b2o$5bo$5b3o$8bo$7b2o8$6b2o$5bobo$
5bo$4b2o7$16b2o$16b2o45$17bo$16b3o$15b2obo27$4bo$4b3o8b2o$7bo7b2o$6b2o
9$7bo$6bobo$5bo2bo$6b2o9$16b2o$16b2o45$17bo$16b3o$15b2obo28$4bo10b2o$
4b3o8b2o$7bo$6b2o8$7bo$6bobo$5bo2bo$6b2o9$16b2o$16b2o45$17bo98bo$16b3o
96b3o$15b2obo95b2obo28$5bo9b2o97b2o$5b3o7b2o85b2o10b2o$8bo94bo$7b2o94b
obo$104b2o7$7bo98bo$6bobo96bobo$5bo2bo95bo2bo$6b2o97b2o9$16b2o97b2o$
16b2o97b2o45$17bo$16b3o$15b2obo28$15b2o$5bo9b2o$5b3o$8bo$7b2o7$7bo$6bo
bo$5bo2bo$6b2o9$16b2o$16b2o45$17bo$16b3o$15b2obo28$15b2o$15b2o3$3b2o$
3bo$4b3o$6bo4$7bo$6bobo$5bo2bo$6b2o9$16b2o$16b2o45$17bo$16b3o$15b2obo
28$15b2o$15b2o10$7bo$6bobo$5bo2bo$6b2o8$6b2o$5bobo8b2o$5bo10b2o$4b2o
44$17bo$16b3o$15b2obo28$15b2o$15b2o10$7b2o$6bobo$6bo$5b2o8$6b2o$5bobo
8b2o$5bo10b2o$4b2o44$17bo$16b3o$15b2obo28$15b2o$15b2o12$7b2o$8bo$5b3o$
5bo6$6b2o$5bobo8b2o$5bo10b2o$4b2o!
Now why are all those Bs in the wrong place?

EDIT: on some other searches, the bottom tile? goes up (64 cells) and the right tile goes left (64 cells). Not sure if this is the case for top/left tiles.

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

Re: CatForce new catalyst search utility (LifeAPI based)

Post by simsim314 » May 1st, 2015, 1:28 pm

Scorbie wrote:why are all those Bs in the wrong place?
Haha sorry about that :)

This is due to the fact LifeAPI is currently limited to 64x64. LifeAPI from the first moment of it existence was working only on torus of size 64x64. What you get is the result of this fact.

Sorry to not mention that CatForce is working on the same torus as it's based on LifeAPI. You should think of your search space as torus with limits cornerA(-32, -32) corner B(31, 31)

I wrote small python script if you find something that got reacted "from the other side":

Code: Select all

import golly as g

rect = g.getcells(g.getselrect())

g.clear(0)

g.putcells(rect, 0, 64)
g.putcells(rect, 0, -64)
g.putcells(rect, 64, 0)
g.putcells(rect, -64, 0)
This limitation very seldom gives false positives as 64x64 is most of the time more than enough for usual search space, and also the torus can get reacted from the other side so it's "true" 64x64.

Just move the center of the pat a bit to fit. If you move the pat don't fotger to move the search area and the filters location.

EDIT Will definitely add this detail to ReadMe thx.

User avatar
Kazyan
Posts: 1247
Joined: February 6th, 2014, 11:02 pm

Re: CatForce new catalyst search utility (LifeAPI based)

Post by Kazyan » May 1st, 2015, 2:10 pm

Ah, that explains what I reported. The LWSS just keeps going until it wraps around the torus and hits the catalysts from the other side. Good to know.
Tanner Jacobi
Coldlander, a novel, available in paperback and as an ebook. Now on Amazon.

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

Re: CatForce new catalyst search utility (LifeAPI based)

Post by simsim314 » May 1st, 2015, 2:30 pm

Kazyan wrote:The LWSS just keeps going until it wraps around the torus and hits the catalysts from the other side. Good to know.
Yes sorry not respond to that (didn't understand what you don't know).

Anyway there is a very simple code that can remove *WSS on the edges (like gliders), but it's harming performance, and seems to be not so common.

Does anyone needs this feature? Do you want to have flag to get alerts for *WSS? I really don't see too much the point of it, but maybe I'm wrong.

User avatar
Kazyan
Posts: 1247
Joined: February 6th, 2014, 11:02 pm

Re: CatForce new catalyst search utility (LifeAPI based)

Post by Kazyan » May 1st, 2015, 2:36 pm

simsim314 wrote:Yes sorry not respond to that (didn't understand what you don't know).

Anyway there is a very simple code that can remove *WSS on the edges (like gliders), but it's harming performance, and seems to be not so common.

Does anyone needs this feature? Do you want to have flag to get alerts for *WSS? I really don't see too much the point of it, but maybe I'm wrong.
I don't need it; I'm inspecting basically all of the results anyway, so I'll see any *WSS that comes out. It's only relevant here because I wanted to see if there was a tiny LWSS-to-G based on transparent catalysts. If you're curious, a 2-catalyst Spartan run yields this, but no glider:

Code: Select all

x = 15, y = 6, rule = B3/S23
6bo$2o3bobo$obo2bobo3bo$bo4bo3bo$10bo3bo$10b4o!
Tanner Jacobi
Coldlander, a novel, available in paperback and as an ebook. Now on Amazon.

User avatar
calcyman
Moderator
Posts: 2936
Joined: June 1st, 2009, 4:32 pm

Re: CatForce new catalyst search utility (LifeAPI based)

Post by calcyman » May 1st, 2015, 5:06 pm

...which can easily be modified to yield a really unusual LWSS eater:

Code: Select all

x = 35, y = 13, rule = B3/S23
15b2o$15bo$13bobo$13b2o4$6bo$2o3bobo$obo2bobo23bo2bo$bo4bo23bo$30bo3bo
$30b4o!
I suppose you could try CatForcing the thing-that-evolves-into-a-beehive in an attempt to coax a glider or Herschel out of the reaction.
What do you do with ill crystallographers? Take them to the mono-clinic!

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

Re: CatForce new catalyst search utility (LifeAPI based)

Post by simsim314 » May 1st, 2015, 6:16 pm

By the way if you search catalyst with *wss you should use start-gen 1, last-gen 5 to cover the period, without getting the same result twice. I would also try three or even 4 catalysts in very limited search area and hope to get some "ignition" for further search.

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

Re: CatForce new catalyst search utility (LifeAPI based)

Post by Scorbie » May 2nd, 2015, 2:38 am

Is it possible to add a blinker in the cataylst list?

EDIT: @ simsim Got it! I thought something may come out if we bend the rules: (searching for oscs)

Code: Select all

x = 12, y = 4, rule = B3/S23
o8b2o$o8bobo$o8bobo$10b2o!
EDIT2: But this is not too general to add as a feature for Catforce, I think.
Last edited by Scorbie on May 2nd, 2015, 4:13 am, edited 4 times in total.

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

Re: CatForce new catalyst search utility (LifeAPI based)

Post by simsim314 » May 2nd, 2015, 4:02 am

Scorbie wrote:Is it possible to add a blinker in the cataylst list?
No. CatForce assumes every input catalyst is stable (I think it's the definition of catalyst).

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

Re: CatForce new catalyst search utility (LifeAPI based)

Post by simsim314 » May 3rd, 2015, 7:05 pm

I've added very important fix for combine results feature.

Previously if you use very potent pattern, the combinations could explode, as the combine feature was always using survival = 1. Now you can define how much time catalyst needs to survive to pass to the "next stage" of combinations. So if single catalyst needs to survive only 1, catalyst pair should survive for 5 ticks, triple for 10 etc. This option limits the explosion, with minimal useful catalyst loses (you can still not to fill this input, but unpleasant explosions do occur).

The usage is simple:
combine-results yes 1 5 10

CatForce will use the last number as the default from that point on. So four catalyst will remain with survival count 10.

I've also improved the combine printing, and added '-' char symmetry for "flipX' option.

User avatar
Kazyan
Posts: 1247
Joined: February 6th, 2014, 11:02 pm

Re: CatForce new catalyst search utility (LifeAPI based)

Post by Kazyan » May 3rd, 2015, 7:34 pm

simsim314 wrote:I've added very important fix for combine results feature.

Previously if you use very potent pattern, the combinations could explode, as the combine feature was always using survival = 1. Now you can define how much time catalyst needs to survive to pass to the "next stage" of combinations.
Yay! I keep looking over results in-progress and and the number of useless survival = 1 results make it frustrating. Thanks for this.
Tanner Jacobi
Coldlander, a novel, available in paperback and as an ebook. Now on Amazon.

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

Re: CatForce new catalyst search utility (LifeAPI based)

Post by simsim314 » May 3rd, 2015, 9:01 pm

Kazyan wrote:Yay! I keep looking over results in-progress and and the number of useless survival = 1 results make it frustrating.
Well when you use combine-results look only at the Final.rle - those 1 tick conduits are mostly junk, that gets filtered only after the combine tried to get the most of them.

I think it's not such a good idea to reduce the combine robustness just to keep watching at the results.

Anyway the main problem with combine is the explosion, after night run and reaching million results and CatForce stacked, I decided this feature is "must to have".

EDIT Obviously if you try to find compromise between looking by hand, and letting combine do the work - this feature is your greatest friend.

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

Re: CatForce new catalyst search utility (LifeAPI based)

Post by simsim314 » May 4th, 2015, 5:51 am

@Kazyan If you feel you need some parameter or option that you're missing in CatForce please post. I have a list of action items to improve but if you ask for something specific I will definitely prioritize it.

User avatar
Kazyan
Posts: 1247
Joined: February 6th, 2014, 11:02 pm

Re: CatForce new catalyst search utility (LifeAPI based)

Post by Kazyan » May 4th, 2015, 4:53 pm

I'll let you know if I want something, but I'm still incorporating in my searches the existing options you gave me, even when they're exactly what I need. End users for software are invariably dumb, haha.

EDIT: More end user stupidity. Am I missing something with the 'forbidden' flag here? This line doesn't prevent boat-bits from being caught. I've followed the logic of 3.in's fishhook example as best I could.

Code: Select all

cat 2o3b2o$obobobo$2bobo$2bobo$obobobo$2o3b2o 12 3 3 / forbidden 4bo$3bobo$4b2o2$2o2b2o$o4bo$b4o2$b4o$o4bo$2o2b2o! 3 -1 forbidden bo$obo$2o2$2o2b2o$o4bo$b4o2$b4o$o4bo$2o2b2o! 3 -1 forbidden 2o2b2o$o4bo$b4o2$b4o$o4bo$2o2b2o2$4b2o$3bobo$4bo! 3 3 forbidden 2o2b2o$o4bo$b4o2$b4o$o4bo$2o2b2o2$2o$obo$bo! 3 3
Tanner Jacobi
Coldlander, a novel, available in paperback and as an ebook. Now on Amazon.

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

Re: CatForce new catalyst search utility (LifeAPI based)

Post by simsim314 » May 5th, 2015, 2:30 am

Kazyan wrote:Am I missing something with the 'forbidden' flag here?
Well first of all forbidden and the catalysts itself should be in the same orientation.

Now another annoying issue I missed: the center (x, y) it's actually the movement of each catalyst by (x, y), so this is exactly the opposite from center. I'm not sure I should fix it, as all catalyst will stop working for "all" the current users, but I definitely write about it in ReadMe.

For your question this should work (didn't checked it):

Code: Select all

cat 2o3b2o$obobobo$2bobo$2bobo$obobobo$2o3b2o 12 -3 -3 / forbidden 2o3b2o$obobobo$2bobo$2bobo4bo$obobobobobo$2o3b2ob2o! -3 -3 forbidden 2o3b2ob2o$obobobobobo$2bobo4bo$2bobo$obobobo$2o3b2o! -3 -3 forbidden b2ob2o3b2o$obobobobobo$bo4bobo$6bobo$4bobobobo$4b2o3b2o! -7 -3 forbidden 4b2o3b2o$4bobobobo$6bobo$bo4bobo$obobobobobo$b2ob2o3b2o! -7 -3
EDIT I think I will fix it soon, and write about it here. Will post the catalyst with the correct sign.

User avatar
Kazyan
Posts: 1247
Joined: February 6th, 2014, 11:02 pm

Re: CatForce new catalyst search utility (LifeAPI based)

Post by Kazyan » May 15th, 2015, 10:04 pm

I hereby request an "at least one" feature, in which at least one of a specified catalyst must be in the results. I frequently find myself wanting to try a search again using a new catalyst (BTS, eater-on-eater, TWIT+block, etc..), but don't want to waste computation or sift through results I've already looked over. For searches with 1 catalyst, how do to this is obvious, but for 2 or more, there's no way to grapple with the combinatorics.

(And, if my lack of further complaints didn't say anything about it, the mirrored dock 'forbidden' tags are working.)
Tanner Jacobi
Coldlander, a novel, available in paperback and as an ebook. Now on Amazon.

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

Re: CatForce new catalyst search utility (LifeAPI based)

Post by simsim314 » May 17th, 2015, 6:32 pm

I've added a new feature to the filter.

filter min-max rle dx dy

This filter is an option to have the rle in range of generations (from min to max included). If in all the range the required rle didn't appear then the filter will fail.

This feature made especially for transparent reaction search. The initial SL could appear for a while and disappear again. The only options until now were either guessing some probable generation of reappearance or search by hand all the generations. Both options are not perfect and can easily lose the reappearance of the SL in its initial place.

@Kazyan - I remember your request, it's actually a bit more complex than it seems. Because if you use combine-results option, I need to add it in the final stage only, while in the regular search the filter should be on the initial search stage.

I think I will add this one with scorbie's request for negative filter, and I have in mind also things like "or filter", and "catalyst filter" (or filter is a filter that requires only one of two filters, needed for looking at transparent SL from Pi, there could be few initial SLs), and "catalyst filter" means that this SL is catalyst and could disappear for a while, but should be back in X generations (needed for many searches where you start from reaction with catalyst, so the catalyst should be preserved, and yet it could continue to act as catalyst and disappear for a while).

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

Re: CatForce new catalyst search utility (LifeAPI based)

Post by simsim314 » May 31st, 2015, 3:22 pm

Before I forget, I thought of a hack that allows to use CatForce with oscillators.

One just need to replace to Run(2) everywhere there is today Run(1), and that's it. You can add blinkers to catalyst list and see what happens.

It's a hack, so you need to be aware that everything like start-gen and last-gen should be multiplied by 2. But to find transparent blinkers, or to see of some p2s etc. can function as catalysts, it's enough. I don't think I will release official version, but I can help with such experiment.

User avatar
Kazyan
Posts: 1247
Joined: February 6th, 2014, 11:02 pm

Re: CatForce new catalyst search utility (LifeAPI based)

Post by Kazyan » June 5th, 2015, 10:05 am

You mentioned adding a "Bellman lite" feature at some point, and I've been thinking: for an in-depth non-Spartan search, the user could just add common Bellman results to the catalyst list. Here's six of them:

Code: Select all

x = 45, y = 29, rule = B3/S23
3b2o15b2o2bo15bo$3bo2bo13bo2bobo14b3o$4b3o14bob2o18bo$22bo19bobo$2obob
2o16b2o17b2o$ob2obo18bo$5bo16bo19b2o$5b2o15b2o18bo$40bobo$40b2o11$3b2o
20b2o15b2o$3bo21bo16bo$o4bo16b2obo17bo$6o14bo2bob2o13b3o$20b2obo16bo$
2b2o19bo$2bo20b2o$obo$2o!
However, adding all eight transformations of all six of these would slow down a search by a lot...so, consider this a still life welding puzzle, for anyone willing to take it up. The more compact, the better, since a large weld will have more trouble fitting in CatForce's bounding boxes. Here's a combination of objects 2 and 4 (EDIT: And my other solutions)

Code: Select all

x = 36, y = 11, rule = B3/S23
3b2o12bo13bo$3bo2bo9bobob2o9b3o$4b3o10b2obo13bo$22bo10bobo$3bob2o8b8o
10b2o$b3obo9bo$o4bo10b2ob2o12b2o$ob2ob2o10bobo13bo$bobo13bobo10b2obo$
3bo14bo11bobo$3b2o!
Tanner Jacobi
Coldlander, a novel, available in paperback and as an ebook. Now on Amazon.

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

Re: CatForce new catalyst search utility (LifeAPI based)

Post by Scorbie » June 5th, 2015, 2:32 pm

simsim314 wrote:Before I forget, I thought of a hack that allows to use CatForce with oscillators.
One just need to replace to Run(2) everywhere there is today Run(1), and that's it. You can add blinkers to catalyst list and see what happens.
It's a hack, so you need to be aware that everything like start-gen and last-gen should be multiplied by 2. But to find transparent blinkers, or to see of some p2s etc. can function as catalysts, it's enough. I don't think I will release official version, but I can help with such experiment.
Thanks for the tip! Did what you posted, and it finds out transparent blinkers pretty well!
Just one thing that bugs me: I was trying to find clock catalysts as in this reaction:

Code: Select all

x = 10, y = 10, rule = B3/S23
2bo$obo$bobo$bo5b2o$7bobo$7bobo$2b2o4bo$bobo$bo$2o!
But Catforce doesn't seem to find clocks as catalysts. Why?
Here's the input file:

Code: Select all

max-gen 100
start-gen 2
last-gen 10
num-catalyst 2
stable-interval 10
search-area -10 -10 10 20
pat 2o$obo$obo$bo!
cat 2o$o$b3o$3bo! 12 -2 -2 *
#cat 3o! 50 2 1 /
cat bo$2b2o$2o$2bo! 10 1 1 |
cat 2bo$obo$bobo$bo! 10 1 1 |
output hftest.rle
I think I found the problem, which is also in the original catforce. Catforce doesn't check for 'superstable' catalysts like this one:

Code: Select all

x = 8, y = 6, rule = B3/S23
o6bo$8o3$3b2o$3b2o!
When I use this input file:

Code: Select all

max-gen 100
start-gen 0
num-catalyst 1
stable-interval 10
search-area 0 0 8 8
pat o6bo$8o!
cat 2o$2o 60 0 0 .
output test.rle
It outputs these three reactions, but not the one above:

Code: Select all

x = 48, y = 9, rule = B3/S23
o6bo12bo6bo12bo6bo$8o12b8o12b8o5$3b2o$3b2o15b2o24b2o$20b2o24b2o!

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

Re: CatForce new catalyst search utility (LifeAPI based)

Post by Scorbie » June 6th, 2015, 3:51 am

Kazyan wrote:I've noticed that the fishhook is very useful, but adding all eight orientations takes a lot of computation. Meanwhile, hypothetically, both eating actions can be covered by adding a mirrored dock and a table-on-table to the catalyst list. It's slightly less general because those objects are bigger, but they require only 4 total orientations, where the fishhook requires 8. This could speed things up somewhat, and incidentally catch any table-based catalysis.
Thoughts?
A table and table seems a little obtrusive for some snakelike reactions, I think:

Code: Select all

x = 8, y = 9, rule = B3/S23
3b2ob2o$4bobo$4bobo$3b2ob2o3$bo$b2o$obo!
So I think it's better to use only the mirrored dock if you need to reduce the number of catalysts... or maybe use this instead? (also 4 orientations)

Code: Select all

#C [[ VIEWONLY ]]
x = 16, y = 16, rule = B3/S23
4b2o7b2o$2o2bo5bo3bo$obobo5b4o$2bobobo$2bo2b2o5b4o$b2o8bo3bo$11b2o3$
11b2o$b2o8bo3bo$2bo2b2o5b4o$2bobobo$obobo5b4o$2o2bo5bo3bo$4b2o7b2o!

Post Reply