I notice that some of the "hard" combinatorial problems I come across can be cast in terms of some type of tree search like alpha-beta pruning, or beam search, or a similar algorithm. However, programming them seems like repetitively coding the same things and it is also pretty easy to make mistakes. It seems to me there should be a library that implements these algorithms, and all I should be asked to write is
I am sorry I haven't given any specific code, but I think I have explained the problem. If I can write code for the functions described above, shouldn't I be able to run a number of tree/graph search algorithms easily? Is there any user friendly library/framework that supports this easily? I'd love it to be in Python or C/C++, but would be interested to hear any suggestions.
Edit: To be more precise, I am talking about informed tree search algorithms.
Fuego is an open-source monte-carlo tree search (as opposed to alpha-beta tree search) platform that can target 2-player full-information games (originally created to target Go). It may even be more general than that.
Edit: I just learned that it also features an alpha-beta searcher. Here is a recent paper: http://webdocs.cs.ualberta.ca/~mmueller/ps/fuego-TCIAIG.pdf