[computer-go] Efficiently selecting a point to play in a
random playout
Don Dailey
drd at mit.edu
Sun May 27 14:02:24 PDT 2007
I'm a language caveman too then. I really avoid C++ even though I
learned the basics long ago. I really hate it. It's not like I'm
an old dog that can't learn new tricks - I have experimented and
explored many computer languages and I am versatile in many.
It's one of those languages that to me feels wrong - like a big ugly
hack on top of something that isn't that pretty to start with. I
tolerate C because it's the best at speed. I don't have a good reason
to tolerate C++.
Don't want to start a language flame war though. I love object
oriented but I always reach for something else when I'm compelled to go
that way. Maybe it's caveman of me, but I don't associate object
oriented with super high performance programming. Of course I realize
that c++ can be almost as fast as C if you know what you are doing and
avoid certain things - but it seems like an insane combination to me -
OOP is high level, C is low level. C++ seems like a bad marriage.
I'm sure you can get used to anything. If you get really familiar and
comfortable with C++ you probably can live with it and even believe it
to be a wonderful thing. But that's no shocker - no matter how awful a
language is you will get many fanatics who seem to believe it's the most
wonderful thing ever invented!
- Don
On Sun, 2007-05-27 at 13:02 -0700, Peter Drake wrote:
> 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/
>
>
> _______________________________________________
> computer-go mailing list
> computer-go at computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/
More information about the computer-go
mailing list