[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