Suggestions about catalyst search--implementable?

For scripts to aid with computation or simulation in cellular automata.
Post Reply
User avatar
Scorbie
Posts: 1693
Joined: December 7th, 2013, 1:05 am

Suggestions about catalyst search--implementable?

Post by Scorbie » January 5th, 2015, 12:44 pm

I'm a beginner in programming, but hoping to make some sort of improvement on things related to catalyst search.
I've had an idea, but I'm not sure if this can be implemented. What do you think?

I thought that we could reduce the search space if we specify some guidelines to put the catalyst.
For instance, It's natural to put an eater in that position if the yellow cells are on.

Code: Select all

x = 7, y = 8, rule = LifeHistory
5.A$4.A$4.2EA2$2.2C$3.C$3C$C!
Do you think it will reduce the search space significantly? or would it just make the program more complicated?

Another idea:
Randomagar enables patterns to catalyze itself. Instead, why don't we put catalysts in an evolving random soup? (with symmetry options if possible)

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

Re: Suggestions about catalyst search--implementable?

Post by simsim314 » January 5th, 2015, 3:43 pm

There is some point one needs to know about all catalysts search programs, existing today.

They find catalysts very well, but they can't "evaluate" the catalysts they find. That means they do simple "brute force" with possibly minor optimization (like removing gliders). Even if your idea could be implemented, say you would have some 4x4 hash table for all pattern that could benefit from catalyst, and your algorithm will work 10 times faster, it will allow you to search only another "depth" into catalysts search, or just allow wider search areas etc.

But the issue with the catalysts, is that they're very "wasteful" after 2-3 iterations in depth. Think of chess program that just does brute force searches. Even if you manage to optimize it somehow, and you will get not 4 but 5 brute force moves, you still will be missing the point of correct chess engine. Today chess engines can evaluate the worthiness of the position they looking at, to some degree at least, and search only those branches that have more potential. Catalysts search engines on the other hand, look into same (or very similar) pointless catalysts options over and over again, failing to find good solution in bad branch of searching tree again and again.

Because the tree is exponential anyway, the idea of optimizing brute force searches in my opinion, is missing the point. Even the simplest "evaluation function", will increase productivity exponentially, and the deeper you will look the more productive you will get.

So the next "logical" step in catalyst search software is not making better or faster brute force algorithms, but making the search smarter. dvgrn for example suggested to allow some interaction with the user, that could use his experience to influence the order and prioritize the search. I suggested an evaluation function, while having different evaluation function for different purposes (finding G->H needs to have the "action" in the initial place for as long as possible, while H conduits will benefit from "moving" the action as further away from the initial place as possible).

Anyway if you're seriously thinking about making another catalyst search, I would suggest to think about these points. Also take a look at LifeAPI project, as it has a lot of potential and could simplify few things for catalyst searches as well (it has very fast bitwise iterator, and locator that could find Herschels pretty fast - and it's intended to be fast and user friendly library).

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

Re: Suggestions about catalyst search--implementable?

Post by Scorbie » January 5th, 2015, 6:22 pm

That explained the whole thing! Really, thank you very much for your nice explanation!
simsim314 wrote:Anyway if you're seriously thinking about making another catalyst search,
I think that wouldn't be in the near future, and if I do so, I'll definitely refer to the points you made!

Post Reply