optimizationgraph-theorygeneric-programminga-startree-search

Library for tree search for combinatorial optimization problems


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

  1. a coding for the solution, i.e., how to get a more specific solution from an incomplete solution. This will give the tree/graph structure.
  2. Given a partial solution, how to get the maximum/minimum cost, and perhaps an estimate of the cost.
  3. An Initial solution/partial solution.
  4. Maybe some sort of a verification solution.

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.


Solution

  • 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.

    http://fuego.sourceforge.net/

    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