I have added a MCTS implementation to my reference-bot project. It
allows you to specify how many nodes to search, after how many nodes
to expand and whether to use AMAF or not. If you specify the number
of nodes before expansion to be the same as the total number of nodes
to search and set AMAF to true you get the equivalent of Don's
original ref-bot. When you set AMAF to false and set the number of
nodes before epxansion to 1 you get my original UCT search algorithm.
Between those extremes there might be a good formula to combine AMAF
with tree-search, but unfortunately I haven't had time lately to look
for one. The few small attempts I made show no benefit using AMAF in
tree-search, only when used on a single level. The contrast between
the two exptremes is very stark, so I'm actually convinced there
should be a way to use both. This implementation is also quite a bit
slower than my original search algorithm but I also didn't have time
yet to trace it. It might simply be due to the different expansion
method, which is much more expensive with a value of 1. Also,
searching for the best UCT node gets more expensive with more
(unused) nodes on each level. Using a higher expansion value may
alleviate the performance hit. Anyway I think this is a reasonable
starting point.
At first I intended to create a different project for the search
reference bot. But half of the code (the MC part) is the same. And I
don't want to end up having to maintain the same code in two places.
I also didn't want to separate out some code into a separate library
and making the structure for the simple ref-bot more complicated.
This organization may need some more thought though.
I'll update the project pages tomorrow.
Mark
_______________________________________________
computer-go mailing list
[email protected]
http://www.computer-go.org/mailman/listinfo/computer-go/