On Wed, Jun 06, 2012 at 10:35:08AM -0400, Don Dailey wrote:
> Is the issue simply the CGOS behavior, the wrong bot losing on forfeit or
> something like that? If so it does need to be fixed.
I think Folkert simply asked a honest question whether his program is
required to implement superko to play on CGOS, and did not mean to
ask for any changes in CGOS itself, just check the current situation.
To reiterate, the answer to Folkert's question is: yes, you need to
support superko; make sure to educate yourself about positional vs.
situational superko. Detection of superko using a hash table and Zobrist
hashing (which is simple and useful to implement for other purposes too)
is fairly straightforward.
In case of MCTS, a simple and cheap way is to detect superko as "output
filter" and use next best move in the tree if superko violation is
detected; however, some situations may be significantly misread because
of that. The other extreme is detecting and avoiding superko even in
simulations; that is fairly expensive (due to a guaranteed cache miss
during hash table lookup, at the very least) and usually *not* done.
The most common compromise is to detect and prune superko moves only
in the game tree and check only the simple ko rule in simulations.
Another point is to follow the usual maxim "be conservative in what
you send and liberal in what you receive". It is good idea to accept
even opponent moves which you believe violate superko and leave the rule
enforcement on the server, since different environments might mandate
different superko rules.
Kind regards,
--
Petr "Pasky" Baudis
Smart data structures and dumb code works a lot better
than the other way around. -- Eric S. Raymond
_______________________________________________
Computer-go mailing list
[email protected]
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go