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

Re: computer-go: Two ways to program a GO-engine



Hi Roland,

I am guessing that the list favors approach 2 and all good go programs
are based, more or less on approach 2.

It's  actually hard to  separate  the 2 approaches.   Most programmers
tend to do whatever seems to work the best  and do not distinguish the
two  too, much but  they tend to   emphasize approach 2 because that's
what  we understand   the best.  Thus   you  have patterns  and  heavy
evaluation functions that try to do what humans do.    

Also, humans  tend to look  ahead, so even  a program that searches is
copying what humans do.

In  chess, many years ago,  there  was a call  for  a more intelligent
"human" approach because   most people percieved that fast   searching
programs with only simple heuristic knowledge would never improve, and
also this approach seemed sterile  and ugly.  What ended up happening,
is  that the programs  did get  much  more  sophisticated in terms  of
knoweldge, but still,  most of the progress was  due to major hardware
speedups.

I  think something like that will  eventually happen in  Go, but there
will be somewhat more emphasis on the  software.  The best go programs
in 10 or 20  years (in terms  of software only) will probably  improve
quite substantially, but  I suspect people will find  a way  to better
utilize the power of the computer too.  The  only advantage a computer
has over a human is vast speed and accurate memory, everthing else has
to be faked.  We will never see great Go  programs if we don't utilize
the hardware, we might as well write a list of instructions on a sheet
of paper.

Don



   Date: Sun, 24 Sep 2000 14:25:30 -0300
   From: Roland <goprog@xxxxxxxxxxxxxxxxx>
   Sender: owner-computer-go@xxxxxxxxxxxxxxxxx
   Reply-To: computer-go@xxxxxxxxxxxxxxxxx

   Hello computer-go,

     As I was following all this discussion about perfect play and so on,
     I suddenly recognized that there are two ways to approach a
     GO-Program.

     1. Try to make a program that achieves perfect or near perfect play.
     In this case the problem is to figure out what perfect play
     is, without needing a full game tree. In this case algorithms like
     fractal Go and others find use.

     2. Try to make a program that plays like the best human players. In
     this case we have to collect the knowledge of the pro players and
     find a way to translate it to the computer, so that he understands
     it and plays accordingly. The main difficulty here should be to make
     the computer think in abstract terms.

   I think there is a fundamental difference in the two approaches and
   the list tends to favor approach 1. The problem is, that we don't know
   how to compute perfect play, and maybe we never will be able to do so.
   Thus,may it be that approach 2 is the better and more effective one?

   -- 
   Best regards,
    Roland