I'd be more than happy to work with you and the other members of your
group.  I'm getting close to wrapping up a restructuring of my bot that
allows easily swapping out evaluation methods and search techniques.

As an example, here's the code that does a few basic MC searches:

   11   static if (searchMethod == "pureMC" || searchMethod == "UCB"){
   12           alias node!(gameSource, binomial).onePly moveData;
   13           alias onePlySearcher!(gameSource, moveData) searchBase;
   14   }
   15   else static if (searchMethod == "UCT"){
   16           alias node!(gameSource, binomial).multiPly moveData;
   17           alias multiPlySearcher!(gameSource, moveData) searchBase;
   18   }
   19   else
   20           static assert(0, "Don't know what kind of search base to use
for search method '" ~ searchBase ~ "'");
...

   65   class searcher : searchBase{
   66           this(int nThreads){ super(nThreads); }
   67           override int pickMoveForPlayout(moveData searchNode, ref Random 
gen){
   68                   static if (searchMethod == "pureMC")
   69                           return 
moveSelectionMethods.pickRandomMove(searchNode, gen);
   70                   else static if (searchMethod == "UCB" || searchMethod 
== "UCT")
   71                           return
moveSelectionMethods.pickHighestConfidenceBound!("sqrt(log(searchNode.simulations+1))")(searchNode,
gen);
   72           }
   73           override int pickMoveForReal(moveData searchNode, ref Random 
gen){
   74                   static if (searchMethod == "pureMC")
   75                           return 
moveSelectionMethods.pickMaxValue(searchNode, gen);
   76                   else static if (searchMethod == "UCB" || searchMethod 
== "UCT")
   77                           return 
moveSelectionMethods.pickMostVisited(searchNode, gen);
   78           }
   79   }

The prior version of my bot included alpha-beta as an option, and there's no
reason for me to not do that again with this version.  I won't make the
alpha-beta multi-thread capable without significant help though (I don't
know of any simple techniques to do so).


On Tue, Feb 17, 2009 at 12:27 PM, George Dahl <george.d...@gmail.com> wrote:

> At the moment I (and another member of my group) are doing research on
> applying machine learning to constructing a static evaluator for Go
> positions (generally by predicting the final ownership of each point
> on the board and then using this to estimate a probability of
> winning).  We are looking for someone who might be willing to help us
> build a decent tree search bot that can have its static evaluator
> easily swapped out so we can create systems that actually play over
> GTP.  As much as we try to find quantitative measures for how well our
> static evaluators work, the only real test is to build them into a
> bot.
>
> Also, if anyone knows of an open source simple tree search bot
> (perhaps alpha-beta or something almost chess like) for Go, we might
> be able to modify it ourselves.
>
> The expertise of my colleague and I is in machine learning, not in
> tree search (although if worst comes to worst I will write my own
> simple alpha-beta searcher).  We would be eager to work together with
> someone on this list to try and create a competitive bot.  We might at
> some point create a randomized evaluator that returns win or loss
> nondeterministically for a position instead of a deterministic score,
> so an ideal collaborator would also have some experience with
> implementing monte carlo tree search (we could replace playouts with
> our evaluator to some extent perhaps).  But more important is
> traditional, chess-like searching algorithms.
>
> If anyone is interested in working with us on this, please let me
> know!  We have a prototype static evaluator complete that is producing
> sane board ownership maps, but we will hopefully have many even better
> ones soon.
>
> - George
> _______________________________________________
> computer-go mailing list
> computer-go@computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/
>
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to