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

Re: computer-go: Most simple Go rules



David,

Any thing that   is possible can be  done  and justified, but what  is
being explored  is  a simplification and a  suggested standardization.
You make a point by point defense of keeping and using several scoring
formats that you have already implemented, but the discussion is about
using a  single logical scoring system.  You  didn't make  a case that
all these other system  are very logical, only that  they all had some
kind of workaround or justification.

More comments below ...


   Date: Tue, 26 Jun 2001 00:14:57 -0700
   From: David Fotland <fotland@xxxxxxxxxxxxxxxxx>

   At 11:29 AM 6/25/2001 -0400, you wrote:

   >I agree, that maintaining the illusion that computers play grown-up Go,
   >is only causing problems. Humans can use an agreement phase because of
   >their comprehensive communication protocols.
   >Since computers lack these, avoiding an agreement phase seems essential
   >to well defined outcomes in CG tournaments.

   Computers can have an agreement phase as well.  Many tournaments required that
   programs be able to show which groups they think are dead at the end of the 
   game.

Of course they can  have an agreement  phase.  The whole point is that
this is cumbersome and messy and involves a lot more protocol.

You  are  ignoring the main  point   of simplification, and pretending
there are no  advantages to doing  it a different way.  With something
like Tromp/Taylor  (which is  NOT a  great burden  to implement by the
way) the  protocol  is 2 passes  and  both  computers report  the same
score.   The computers will   not disagree unless  the programmers are
brain dead.


   >Nick also said implementing superko is difficult. On the contrary, it is
   >next to trivial, especially when compared with all the other things that
   >need to go into a go program. (maintain a table of 64bit hashes of previous
   >positions).
   >You don't want to deal with the headache of 2 programs playing infinitely
   >in a triple ko. If a programmer thinks triple kos are too rare to bother
   >with, then (s)he is free not to implement superko and risk a loss.

   How many different rule-sets do you think the programmers should 
   implement?  

For tournaments they  should implement a  single  agreed upon ruleset.
But for commercial use programmers  should implement every ruleset  in
common use and provide toggling of elements of these sets.


   I'd rather
   make the program stronger than implement another rule-set.  Most people 
   just implement
   one.  If it is Japanese, it won't allow suicide.  I've had to implement 
   Chinese, Ing, Japanese, AGA
   already.  Now you want me to add superko, and tromp-taylor?  It seems a 
   little much.

Programmers can implement whatever set(s) they  want, but if they want
to compete  they should have to  only  implement one  logical rule set
which is what  we are talking  about here.   

We are not talking  about what they do  now, we are talking about what
would  be most logical.  It  may never come  to pass that we do things
logically, but I would guess most programmers would want this.


   >I think forfeiting programs that don't accept a suicide may also be a good
   >idea, since it fosters an mentality of making go programs more robust and
   >able to cope easily with slight rule changes.

   Accepting suicide doesn't make a Japanese program more robust.  It makes it 
   less robust since
   it will accept an illegal move.  Any programmer that hopes to sell his 
   program will implement
   Japanese rules first, since that's what most people play in the west, and 
   Japan is where you
   can sell your software.  For this programmer, accepting suicide would be a 
   bad idea.


I agree with you here.   It seems pretty silly to  call this a feature
or improvement (try doing this to a chess program and you will get bug
reports.)  I would still  provide a switch  to accept these moves just
in case a competing program wants to give me stones.

The fact    remains that something   like  Tromp/Taylor  is absolutely
trivial to implement, eliminates  a great deal of man/machine protocol
and would make it much easier for beginning Go programmers to get this
part of  the game right.  This  last  point is  important, it's not in
your (our) best interest to discourage them in  any way.  I'm speaking
partly for myself here because I am a beginner.

Don


   David


   >regards,
   >
   >%!PS                       %  -John Tromp (http://www.cwi.nl/~tromp/)
   >42 42 scale 7 9 translate .07 setlinewidth .5 setgray/c{arc clip fill
   >setgray}def 1 0 0 42 1 0 c 0 1 1{0 3 3 90 270 arc 0 0 6 0 -3 3 90 270
   >arcn 270 90 c -2 2 4{-6 moveto 0 12 rlineto}for -5 2 5{-3 exch moveto
   >9 0 rlineto}for stroke 0 0 3 1 1 0 c 180 rotate initclip}for showpage

   David Fotland