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

RE: computer-go: Alpha-Beta Search



> Nullmove  is based on certain domain  specific assumptions that may or
> may not apply to GO.  Since I am  very new at the  game, I don't claim
> to know  whether it would work   for go, but  I think  it  might.  The
> "assumption"  null move makes  is that  it  is ALWAYS (or very  nearly
> always) better to  be on the move.   Or put another  way,  it is NEVER
> good to  "pass."  How valid is this  assumption in GO?

The null move assumption is very, very valid. Even more valid than for
chess.
Keep in mind that Pass is a legal move in Go, so if the null-move asumption
were invalid then professional players would pass instead of playing. Since
they never do this the assumption must be valid.

And it is easy to see why. A stone is only a liability when it deprives you
of room to live. Therefore, it pays to play until every string has exactly
two liberties, and then pass.

In Japanese rules it costs you a point to play on territory that you own,
but for the purpose of analyzing which moves to play this is not relevant.
(I.e. you can analyze as if the game were a Chinese game (except that
you have to score seki differently), then play the corresponding move with
confidence that the move is correct in the Japanese rules.) The null-move
assumption (i.e. that it is better to play than to pass during analysis)
is completely valid.

> Another aspect to null   move, that  may be  a  factor is   the actual
> validity of the "null move test."  The null move test is a "null move"
> followed by a reduced depth search.   The assumption is that this test
> will  return a lower  bound that is  very UNLIKELY  to disagree with a
> full  width   search   of this particular   subtree.   The   null move
> assumption could very well be correct, and yet it's still possible the
> "null   move test"    methodology  is  not.   Do  you   understand the
> difference?  The point is that it's a question of resource management.
> Does a null move followed by a reduced  depth search, save enough time
> and   simultaneously provide a reliable    lower bound to the  current
> context of  the search?

Really good question! It is possible for null-move searching to provide
a lower bound that is so "loose" that you do not obtain any alpha-beta
cutoffs from it. The efficiency of null-move depends greatly on the
chance that a move will be cut off.

On the other hand, another aspect of the odds are greatly in your favor:
the branching factor is so high that null-search costs very little. It
follows
that even a low rate of cutoffs will prove useful.

You'll have to try it!

Brian Sheppard