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

Re: computer-go: About Viking



   From: "Eric Boesch" <ericboesch@xxxxxxxxxxxxxxxxx>

   >I almost forgot my main principle:
   >There should be no compromises in how the program represents
   >things. Either a chain of stones is connected or it is not, and
   >the program should know exactly why.

   That last sentence is my main principle too; and it seems that we agree that 
   methodical positional reading (as opposed to relying exclusively on a static 
   pattern database) is the way to achieve it.  Every time you use an 
   assumption to limit your search space, you are sacrificing both accuracy 
   (your assumption may be wrong) and speed (if you don't keep track of which 
   spaces are relevant to the achievement of a goal, then to achieve any 
   accuracy at all, you must be conservative, so you will usually be 
   considering too many locations, which increases search time).


I feel that  the correct principle  is that as you  get closer to leaf
nodes you can  make more assumptions  and do it  with a  genuine gain.

Having said  that, I am doing  the same thing  you are.  My  search is
100% admissible (you can view it as a proof) and for any given depth I
can't  do any better  even if  I  looked at  every intersection on the
board.

You  stated   that  you   lose   speed and  accuracy.    I   think you
oversimplify.  The ONLY  goal is to improve  accuracy  GIVEN a certain
amount of computing power.  When  TIME and ACCURACY are combined  like
this, you get a situation where speculation can improve both speed and
accuracy.  What do I mean?

If you do not have the  resources (and none  of us do), then having an
admissble search (like we both have) cannot solve every problem, there
is  just not enough  time.  If a  speculative  algorithm is capable of
finding more solutions in less time, then which method do you consider
more "accurate?"

There is a way to guarantee that a search will always find a solution,
even  while  using  speculation.  The  secret is   that the amount  of
speculation you use must vary with distance from the leaf nodes.  Near
the root,  you  must not use  speculation,  or there will be  problems
forever unsolvable.  All of  this assumes enough computing  resources,
but so does  the admissible techniques so you  have no  argument here.
In fact, I  believe that  many  strong  commercial programs  use  this
principle from descriptions I've read about tactical searches.

Even  though I'm not currently using  speculation,  I recognize that I
have no choice if I want a good program.  Evenually  I will add it but
first I  want  to fully understand  how  things work and  gain as much
experimence with  admissible  techniques.  Find the  right speculative
rules may be just as difficult as improving our addmisibility pruning,
because as you say, it can hurt you if you don't do it right.

I would rather avoid doing any speculation, it's ugly and what we are
doing is fun and beautiful.  Another compromise!

Don