[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[computer-go] game-end Protocol



I have been reading the many postings on the game-end protocol. I have a cold, and am feeling muzzy-headed, so I have not taken in much of it.
In any case, I don't think I would have anything to say about the details of the protocol, I'll leave that to actual programmers. All I am going to have to decide is about its application in KGS Computer Go events.

There are two things that worry me. One, raised by David Fotland, is about time.
All the KGS computer events that have been scheduled so far have tight time limits. The time limits are absolute, so there is a precise upper bound for when games can end, and the next round is scheduled to start a few minutes after this. If a resolution phase is added, and programs are allowed to think for significant time in it, then games will be able to overshoot the schedule. In a human-scheduled tournament an overshoot is a nuisance - you just delay the start of the next round. In KGS tournaments, the scheduling is done by software, which cannot be persuaded to delay the next round.
It is possible that I will set up a tournament with slow time limits, probably with some form of overtime, and one round to be played per day (I wonder if there is demand for this?). For such a tournament, time spent on status resolution will not be a problem. But for most KGS tournaments, I can't see how to manage it.

I will illustrate my other worry with an example. Suppose the position, after both programs have passed, is like this:

. . . # O . . . . Chinese rules
# # # # O . . # . No komi
. . . # O . O O .
. . O # O . . . .
# # # # O . . . .
O O O # O . . . .
O # O # O . . . .
. # O # O . . . .
# . O # O . . . .

Now the programs make assertions about the statuses of the strings on the board. White (O) asserts that the two one-stone strings in the top half of the board are dead. Black (#) asserts that that these two one-stone strings, and the seven-stone white string in the lower left, are dead.
So play is resumed. Black tries to kill the group in the lower left, and fails. Then it picks off the odd white stone in the upper left. White does not bother to pick off the odd black stone in the upper right (it does not realise that this is necessary, or its programmer has not managed the post-stop phase correctly). Now the board looks like this

. . . # O . . . . Chinese rules
# # # # O . . # . No komi
. . # # O . O O .
. # . # O . . . .
# # # # O . . . .
O O O # O . . . .
O . O # O . . . .
. O O # O . . . .
. O O # O . . . .

and Black claims to have won, as it has 18 stones on the board and 7 points of territory = 25, while White has 20 stones on the board and 3 points of territory = 23.
I would not be happy to score this as a Black win. At the game stop White was winning, and correctly stated the statuses of all strings. I consider this should be good enough to win.

Here is what I am currently considering:
Get genmove_cleanup working on the server, publicise it, and encourage its use.
If, at the game stop, two programs agree on the score, then that's great, the result goes through automatically to the KGS tournament software. Hopefully, this will be most games.
If they disagree, they get sent a genmove_cleanup and resume play. Eventually they both pass again. If the result now agrees with what the Tournament Organiser thinks it ought to be, the result goes through automatically to the KGS tournament software. Hopefully, this will be most of the rest of the games.
If however they generate a result which the Tournament Organiser thinks is wrong (like the above example), he will override the machine-generated result with what he considers is the correct one.
If the programs are still trying to sort out the result when the next round is due, he will interrupt them and send in what he considers is the correct result.

Once we find that everything is working smoothly, all the programs have been programmed well, and the last two cases never happen for several consecutive tournaments, then we can remove the human intervention for subsequent ones.

Nick
--
Nick Wedd nick@xxxxxxxxxxxxxxxxx
_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/