[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [computer-go] SlugGo v.s. Many Faces update
On Mar 31, 2005 10:20 PM, Don Dailey <drd@xxxxxxxxxxxxxxxxx> wrote:
>
>
> > My solution was to build an opening book :)
> >
> > It has its pros and cons; I can talk about it more if people want to
> > hear details.
>
> I am very interested. I have looked around for information on how to
> do Joseki/Fuseki and I can find nothing that explains it in any
> technical detail. Either I'm not looking in the right place or it's
> one of those little secrets the Go programmers don't share.
I took a route that's actually pretty straightforward for a
metamachine style program that evaluates very few board positions --
my transposition table is kept on disk and is persistent across games.
Actual opening knowledge comes from several sources: moves suggested
by GNU Go, moves played by opponents in games, and some manual
additions. I eventually added some routines to do relatively
classical expansion of the book, which seems to have helped with
coverage a bit.
My guess is that this technique could be adapted to any program with a
global alpha-beta reader to varying degrees of success. More
conventional programs will have to deal with questions like depth
parity when using cached scores in all likelihood, so it will probably
be a bit more work. Also, the normal coding difficulties associated
with alpha-beta get a bit weirder when your tree becomes a DAG that
you evaluate in non-conventional ways (by eg playing more than one
game with the same tree). And finally, any program that evaluates a
significant number of positions per game probably can't afford to
store all of them; storing only the most expensive handful (ie the top
couple levels of the tree) per move is probably sufficient.
The downside is that sometimes weird paths can get into the book
without my noticing, and then GoFigure will play in very strange (aka
bad) ways for a while until they get sufficiently explored. The
result is that the book has a somewhat "brittle" feel to it --
generally it works quite well, but sometimes something will happen and
it will be very odd for a while. This usually seems to come as a
result of manual additions or playing games against human players.
>
> I will probably look at gnugo to see what they do about openings, but
> I would be interested in what you (or anyone else) has tried.
>
> I did look at some simple statistics for my program. For my program
> in self play I discovered that e5 is the most successful first move in
> 9x9 Go. I considered doing an "opening book" by considering what the
> most successful reply to e5 is, etc. but this quickly leads to a huge
> amount of computation to make a book just 3 or 4 ply deep. A good
> "book" would really not be very useful unless it also had responses to
> all good moves (and even bad moves.) Even with all kinds of board
> transformations this gets out of hand real quick. But even a 4 ply
> "book" might help quite a bit I'm assuming.
My experience has been that my book is frequently good to 4 play, and
on occasion 5 or 6. The big advantage I see is that the metamachine
style is particularly susceptible to noise in the early game, and the
biggest way to avoid that is to have lots of branches, and the book
does that for the hardest couple moves of the game. Once there are a
couple stones on the board GoFigure can usually play decently in its
own right.
>
> I have no way to confirm that e5 is really that good except to ask a
> good player. e5 could be good only against itself, or maybe only
> because the best answer to e5 isn't considered very often. Since I am
> pretty much a raw beginner myself, I am at a serious disadvantage
> trying to make it play good openings.
GoFigure currently believes that correct komi is 7 (using a ruleset of
GNU Go's implementation of Japanese counting plus superko tacked on...
very strange, I know, but to change it I'd have to throw out the
scores in the opening book -- I probably will next time I have a good
reason). It thinks B E5 gives a score of +7 (ie is correct play),
along with G7 and G6. It believes correct response to B E5 is W E3,
with W F3 coming in second and playing to +9 (ie a 2 point mistake).
It believes the best response to B G7 is W F6 (I'm skeptical),
followed by by W C3 at +10. It believes the best response to B G6 is
W D7, followed by W C3 or D4 at +8. It believes that B F6 or F5 plays
to a score of +6, and G5 to a score of +5.
For the most part these results seem reasonable though not necessarily
correct to me (I'm a strong kyu player who hasn't played enough
recently, so take this with a grain of salt). If there is interest I
would be willing to make some of the book available in SGF format.
Evan
_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/