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

Peter Drake drake at lclark.edu
Sun May 27 13:02:19 PDT 2007


Yeah, I suffer from this, too. (There's also the fact that using  
someone else's code would disqualify you from the formal division of  
the KGS tournaments.)

Here's a heroic tale of not-invented-here syndrome for your amusement:

http://worsethanfailure.com/Articles/slammerSCR.aspx

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



On May 27, 2007, at 12:55 PM, steve uurtamo wrote:

> i'd need to write a C interface for it, then try to maintain  
> compatibility
> through new releases.  (AKA i'd effectively end up rewriting it).   
> it might
> seem like less of a burden for me to just write my code in C++, but
> i guess i'm just a caveman who is stuck in his old ways and would  
> rather
> reinvent the wheel than switch language horses just to save some  
> effort.
>
> s.
>
> ----- Original Message ----
> From: Łukasz Lew <lukasz.lew at gmail.com>
> To: computer-go <computer-go at computer-go.org>
> Sent: Sunday, May 27, 2007 2:39:55 PM
> Subject: Re: [computer-go] Efficiently selecting a point to play in  
> a random playout
>
> 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)
>
> Jason, can You tell me why You don't want to use libego instead?
> Actually this is open question to all comp-go readers.
>
> Is libego too complicated? Do You have problems with compilation?
> Or You are not comfortable with the GNU license? Any other reason?
>
> Best Regards,
> Lukasz Lew
>
>
> On 5/27/07, Jason House <jason.james.house at gmail.com> wrote:
>>   As I get into the home stretch of rewriting the core of my bot,  
>> I want
>> to add a monte carlo player.  I've realized that picking a random  
>> move
>> to play is non-trivial since it's such a key element in playout  
>> speed.
>>
>>   An array of legal positions has easy lookup, but may not be easy to
>> maintain... I guess it'd require storing a mapping between board
>> position and index into the legal positions array so that a move that
>> becomes illegal can be quickly removed (by moving the item from  
>> the tail
>> of the array into the empty location).
>>
>>   Looking at libego, I see it does a variant on this where it  
>> maintains
>> an array of empty points.  If the random index it picks is  
>> disallowed,
>> it'll scan through the array (with wrapping around the end) until it
>> either finds an allowed move or returns to its starting point.
>>
>>   Which methods have people tried and what works best?
>> _______________________________________________
>> computer-go mailing list
>> computer-go at computer-go.org
>> http://www.computer-go.org/mailman/listinfo/computer-go/
>>
> _______________________________________________
> computer-go mailing list
> computer-go at computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/
>
>
>
>
>
>
> ______________________________________________________________________ 
> ______________Yahoo! oneSearch: Finally, mobile search
> that gives answers, not web links.
> http://mobile.yahoo.com/mobileweb/onesearch?refer=1ONXIC
> _______________________________________________
> computer-go mailing list
> computer-go at computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://computer-go.org/pipermail/computer-go/attachments/20070527/36fb29cb/attachment.htm


More information about the computer-go mailing list