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

Re: computer-go: minimax and go




   From: Christian Nentwich <c.nentwich@xxxxxxxxxxxxxxxxx>

   > The  universe is far too small,  light is too slow  to ever search the
   > entire game  tree within  a few   billion years.   But my  argument is
   > theoretical.  The practical goal is not even to play  good Go, it's to
   > play "better" Go than we did yesterday with a computer.

   Your argument up to here has been the following, as far as I can tell:

     1) Given infinite resources you could search the whole game tree
     2) Searching the whole game tree yields a perfect program

   and then

     3) There are no infinite resources
     4) The distance to searching the full game tree is proportional
	to the program's playing strength

It's  useful to  use the  terminolgy  "in theory"  which usually means
something can be imagined to work correctly, even if todays technology
has no chance.  So I  can state, "Searching  the entire game tree will
yield perfect play!"  That is not to say we can do it now or ever.

So points 1 and 2 were to illustrate a point.

   Is it worth pointing out that 4) is complete speculation ? There is
   plenty of evidence of experimental Go programs getting weaker with
   increased search depth, because their evaluation functions break under
   the amount of trade-off to be done.

It's very difficult for me to believe that  if I can ALMOST search the
entire game tree, but not quite, then I should be playing about as bad
as  possible (since I'm doing  such a deep search  and the deeper I go
the worse I  play) until I actually   search the entire game  tree and
play perfectly.  If you graphed this it would form a big check mark.

Point 4 is not    speculation.  In theoretically constructed    search
tree's this can happens,  if your evaluation function bears absolutely
no relationship to end  node scores or  there is no clustering of good
and  bad positions.  But in  Go,  if I  have  an excellent position, I
probably will  still  have an  excellent position  on  the  next  move
assuming  I play a minimally  competent move (and  in most case even a
totally random move or even the worst possible move!)

The evidence you cite  is no kind of proof,  even by a very long shot.
It happens for several  reasons, all of  them having to do with design
bugs.   For instance:

A selective search could be  incredibly tricky and  could lead to this
behavior.   Also, a   search   can magnify   the  errors  of incorrect
evaluation.  The anectodal evidence doesn't convince me that it's just
plain wrong to think ahead, it just tells me something  is wrong.  You
said it right when you said "their  evaluation functions break."  They
are good for what they  do, but they are broken  with respect to being
properly constructed for global search.

   Of course it is easy to argue that programs should be developed so that
   their strength increases as the search depth increases, but that is
   equivalent to arguing that "people should try to write better programs".

Hey, I'm definitely   not being  critical  of Go   programs, they  are
wonderful  engineering feats in my  opinion.  I'm saying that programs
should  be developed that increase   in  strength with hardware,   not
neccesarily  "search depth."  Search depth  is the intuitively obvious
path but maybe  there are more paths available.   If you can construct
an evaluation or set  of move selection  rules that takes advantage of
increasing  power then there is  nothing wrong with   that either.  My
guess is that we will want a lot of both.

I  "know" that depth will do  it, but only  very  slowly and maybe too
slow for our tastes.  But no one has suggested another way that scales
infinitely.  (actually, perhaps pattern datbases scale infinitely with
table space but you still have the exponential space explosion just to
gain minor  improvements  and  the  problem of  how  to populate these
databases.)

I think we are scaling, over time, by program re-writes.  If I started
distributing computers that were 1  trillion times faster than what we
have right  now to all the Go  programmers, they would start rewriting
their programs tomorrow, and they would have some degree of succees in
writing much stronger programs.

Don