[computer-go] Efficiently selecting a point to play in a random playout

Peter Drake drake at lclark.edu
Tue Jun 5 10:23:05 PDT 2007


While there is a bias in theory, I suspect that you are right that it  
is not significant in practice if you maintain a list of vacant  
points (as Orego now does), because almost all vacant points are legal.

In any case, switching to your technique (generating one random  
starting point in the list when it's time to choose a random move  
rather than shuffling the list at the beginning of the run) is a big  
speed win. On a multithreaded program like Orego (running on a  
multicore machine), it moves the nontrivial random number generation  
out of the synchronized part of the program and into the threads.  
This one change instantly got me 25-30% more playouts per second.

Thanks for the tip!

Peter Drake
http://www.lclark.edu/~drake/



On May 27, 2007, at 11:39 AM, Łukasz Lew wrote:

> Hi,
>
> I've tested many approaches, and the one I implemented is clearly  
> the best.
> The bias that Peter Drake talks about is negligible and doesn't have a
> noticeable impact
> on playout results.
> (and uniformity of playout isn't something to fight for in MC Go)
>
> ...
>
> Best Regards,
> Lukasz Lew

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://computer-go.org/pipermail/computer-go/attachments/20070605/170a3c84/attachment.htm


More information about the computer-go mailing list