The one issue I'd really like to fix for kgsGtp is how to solve problems
when the game is over, and the human and the engine (or for that matter
the two engines) disagree over which stones are dead.
GnuGo on NNGS solves this problem by abandoning the game if there is a
disagreement. Since GnuGo very rarely makes mistakes in judging life and
death at the end of the game, this works well for it, since only once in
a while must a human inspect the game record and resign a game that the
engine was wrong in. It can still cause trouble though; on KGS, leaving
too many rated games without finishing them gets you tagged as an
escaper, so it could make people very angry if an engine sits there and
won't finish a game, leaving the human with the choice of either
accepting a score tha they think is wrong, or leaving the game and
getting possibly tagged as an escaper.
But, it seems that the problem is solvable in another way. If you are
using non-Japanese rules, then you can always just resume the game and
play it out to decide which stones are dead. If there was a genmove
alternative, like "genmove_cleanup" or some such, that would not pass
until all dead stones were removed from the board, then rated games
would work well. Basically, if the human and the computer disagree on
which stones are dead, just resume the game and start sending
"genmove_cleanup" commands. Once "genmove_cleanup" passes, we know that
there are no dead stones left on the board. If the human thinks that
there are still dead stones left, then they can resume the game again
and try to kill the stones. Eventually, a point will be reached where
any reasonable person and engine will agree with each other and end the
game.
This seems nice, engines such as gnugo will then very rarely need
"genmove_cleanup", but less mature engines can still play rated games,
they just annoy the humans sometimes by requiring play until all the
dead stones are gone to score correctly.
Does this sound like a reasonable solution? If any engine author is
willing to try it, I could add it as a kgsGtp-specific command. Engines
that support this command would be able to play rated on KGS, with no
issues about cheating. On the other hand, if none of the engine authors
are interested, then there's not much point in me adding it.
--
William M. Shubert <wms(a)igoweb.org>