On Mon, Nov 12, 2007 at 05:11:22PM +0100, Heikki Levanto wrote:
> On Mon, Nov 12, 2007 at 04:58:49PM +0100, Petr Baudis wrote:
> >   Thus, I would like to ask, how fast can your engines play out random
> > games (and on what hardware)? My random playouts are limited only with
> > rule and do-not-fill-1pt-eye constraints.
> 
> Have you looked at Lukas Lew's libEGO? You can download it and compare
> performance. (I'm at work now, so I don't have the link, but googling Lew and
> LibEGO will get it).

Thanks, I will have a look!

> >   Currently, on my meager AMD 1.6 GHz (single core) my engine is able to
> > play 2500 games per second on 9x9 - with 1000 games per move candidate,
> > that is about 30s per move in the opening; but it seems that most people
> > prefer 10000 instead of 1000. Is the difference all that visible?
> 
> I may be wrong, but I suspect most of bots specify the total number of
> simulations to play, not per move candidate. Thus, your '1000' should be
> compared against a '81000' in the beginning of the game. That sounds like an
> overly large number to me.

Oh! I must have misunderstood the Monte Carlo algorithm description in
that case.

What I do is taking every possible move candidate on current board,
playing out 1000 random games and track win-loss difference over the
sample. Then I choose the move candidate with the highest win-loss
difference. (If it is under -800, I resign.)

I intentially tried to come up with the simplest MonteCarlo-like
algorithm possible - it is supposed to be an example engine, after all.
Are there other possible algorithms for the MonteCarlo approach?
(Apart of UCT; that's the next step.)

I have had it play games on KGS over the day but I still don't have much
idea about its strength. I would say maybe around 15k, but mostly too
strong people play it and the weaker ones escape or undo (I have
disallowed that now).

> (I am hoping to [get the time to] make some
> experiments to see how well I can play with 1k simulations, or even less. If
> I like your coding style (and license), I may even switch over to your code,
> as I prefer C to C++).

It used to be nice code; as I desperately tried to optimize it, the code
got somewhat uglier in some parts. (I got it from initial 650 games per
second to 2500 gps, though!) You might not like the foreach macros. ;-)

The framework and the example engines are MIT-licensed (almost public
domain); I believe this is just something that noone should have to
reimplement yet another time, no matter how evil they are. If I get some
really well-performing engine built on top of it, I might license that
one under GPL or keep the code for myself, depending how evil *I* will
feel.

Since I have a nice number of my university department machines
available at night, I'm currently working on support for low-level
parallelization over many hosts in the infrastructure. I wonder if I can
dig out shells on at least 81 machines... ;-)

-- 
                                Petr "Pasky" Baudis
We don't know who it was that discovered water, but we're pretty sure
that it wasn't a fish.          -- Marshall McLuhan
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to