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

Re: [computer-go] Third KGS tournament: game-end protocol



Hi Nick,

>  I have been persuaded by posters to this list that I should eventually 
>  require bots playing in KGS computer Go tournaments to support the 
>  game-end protocol. 

I think there is a misunderstanding here.  This should not be a
requirement.

According the rules of Go, a player can pass whenever he wants to.  

kgs-genmove_cleanup is just "genmove" with a request attached to it.
The request is, "please try to capture your opponents dead stones."

It is up to the program whether it wants to honor this request, because
it is not illegal to pass.  

Therefore the kgs-genmove_protocol command is a request at best, not
an enforcable demand (according to the rules of GO anyway.)

That's why this whole business of having a human step in to clean up
the results is so unatural and ugly (in my opinion.)

So why not just let the programs simply play by the rules?  Why add
more procedure to the end of the game protocol and make it
complicated?

One huge advantage of Chinese rules is that there should never be an
argument at the end about whether a group is dead or not, it is simply
played out.  In fact, William Shubert set up the protocol to let
computers play the game the way the chinese rules expect.  This is not
a new idea or some elaborate scheme, it is part of basic chinese play.

And it doesn't require any program to do anything different unless
they want to.  It is legal to pass any time you want to in any
ruleset.  Of course it might be advantageous to clean up dead stones,
but it should not be "forced", even artifically after the game is
over.

What's the worst thing that could happen?  A program will think it's
winning but fail to defend it's claim and lose the game.   But it's
not like the program didn't have a choice.   During the actual game,
the program is expected to defend itself,  why is it suddenly ok
not to defend itself when there is disagreement?    


So here is what you could easily have:

  1. William Shuberts kgs-genmove_cleanup protocol
  2. A programmers choice whether to implement the protocol or not.
  3. A programmers choice HOW to implement it if he does implement it.
  4. A server that can easily score all games without human intervention.

Even if your program accepts the "kgs-genmove_cleanup" it is up to the
program what it will do with the information (the knowledge that there
is a disagreement) and this can't be enforced by the rules of GO so it
can't properly be a requirement.

But a good program will want accept this optional command and clear off
the opponents dead groups when it realizes the opponent is unaware that
his group is dead, otherwise it risks losing some points.   



- Don









   X-Original-To: computer-go@xxxxxxxxxxxxxxxxx
   Date: Tue, 7 Jun 2005 16:41:47 +0100
   From: Nick Wedd <nick@xxxxxxxxxxxxxxxxx>
   Reply-To: computer-go <computer-go@xxxxxxxxxxxxxxxxx>
   Sender: computer-go-bounces@xxxxxxxxxxxxxxxxx
   X-Spam-Score: -2.6
   X-Spam-Flag: NO
   X-Scanned-By: MIMEDefang 2.42

   I have been persuaded by posters to this list that I should eventually 
   require bots playing in KGS computer Go tournaments to support the 
   game-end protocol.  The protocol is:

   < --------------------------- quote starts --------------------------- >
       1. To play in a tournament, programs must either implement both 
   "kgs-genmove_cleanup" and "final_status_list dead", or they must play 
   until all of their opponent's dead stones are removed from the board. 
   It's OK if "play until dead stones removed" is an option, but they have 
   to make sure that this option is turned on whenever they are going to be 
   in a tournament, or they will do poorly in the tournament!
       2. Programs play as normal.
       3. After double pass in a tournament game, programs that support both 
   "kgs-genmove_cleanup" and "final_status_list dead" will be sent 
   "final_status_list dead", which will be uploaded to the server as the 
   list of dead stones. Programs which are missing either of those from 
   their list of supported commands will tell the server that no stones are 
   dead.
	  If there is disagreement, "kgs-genmove_cleanup" will be sent to 
   programs that support it, "genmove" to programs that do not. Note that 
   there cannot be a disagreement if neither program supports 
   "kgs-genmove_cleanup" (since after all both will have reported all 
   stones as alive!), so at least one program will get the cleanup command.
       4. After a second double pass, both programs will report to the 
   server that no stones are dead, and the server will score from there.
   < ---------------------------- quote ends ---------------------------- >

   I am sceptical about programmers' ability to implement this correctly, 
   so I am not yet requiring bots to support this protocol.  Instead, at 
   present the following applies:

   < --------------------------- quote starts --------------------------- >
   If at the end of a game, there is a group whose status is uncertain (in 
   the view of the Tournament Director), then:
       1. If both bots have implemented the game-end protocol as 
   recommended, this can't happen.
       2. If only one bot has implemented the protocol, the Tournament 
   Director will give the win to that bot, even if it thinks it is its own 
   group that is dead.
       3. If neither bot has implemented the protocol, the Tournament 
   Director will use his discretion. He may assign a loss to both players 
   [actually, he can't - there is no way to do this in a KGS event].
   < ---------------------------- quote ends ---------------------------- >

   The recent third KGS Computer Go Tournament did not see any bot resume 
   play to establish its claims about status.  What did happen, in four of 
   the games, was that two bots disagreed about the status of at least one 
   group, and rather than resume play, they alternately and repeatedly 
   asserted their claim by marking the disputed group(s) as dead and as 
   alive.  In the least clear such case, the disputed group was unsettled: 
   it had one eye, and could make, or be denied, a second eye.  In the 
   clearest such case, the disputed group had 26 foolproof eyes.  Six of 
   the eight bots in the Formal division became involved in these 
   arguments, and one risked missing its game in the next round, preferring 
   to continue to argue.

   In each case, I as Director had to form a view about the true result of 
   the game (which is made harder when the stones keep flashing on and 
   off), and enter the result manually.  In three of these four cases, the 
   game record was then wrongly saved by the KGS system, so as to be 
   inaccessible/unreadable.

   Right.  Now to the point of this email.  If (2) above applies, i.e. one 
   bot implements the game end protocol correctly and the other doesn't, 
   how will I as Director know?  What will I see happen?  Can I conclude 
   that all six bots that became involved in disputes did not implement the 
   protocol correctly?  Or is it possible that some of the six did 
   implement it correctly, but were foiled by their opponent's lack of 
   cooperation?

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

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