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

Re: computer-go: Alpha-Beta Search



Brian, 

Thanks for the reply!


> > 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.

Actually, I didn't have too much doubt  about this, but still I didn't
want people to  be too dogmatic about it.   I am more concerned  about
the next issue I rasied, the validity of the "null move test."



> 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.


Actually, I  am thinking of the  degradation in search quality  of the
reduced depth search.  In chess, if  you pass, that  is such a serious
handicap that you can be quite sure that even the reduced depth search
will return  a score that  is  bounded pessimistically.   Will this be
true in GO?  That's the  question I am  asking.  I think this question
is somewhat independant from the null move assumption question.  

I think even in chess this breaks down somewhat.  People always assume
that null move  pruning in chess endgames  is a problem mainly because
of "zugzwang",  where it's actually beneficial  to pass.   But I think
that  is  minor  compared to the   fact  that reduced depth  searching
progressively throws  away long term  threats, which is a  much bigger
issue in endgames than in middlegames.  An  example of this is that in
king and  pawn endgames,  moving  the king   one square  closer to  an
undefended pawn on   the other side  of the  board might   be a lethal
threat,   but  one that   is not  resolved  without   a several ply of
searching.  And  null move with  serious depth reduction  makes this a
serious problem.  I  am thinking that go is  more like  chess endgames
than it is  like chess middlegames.   If this is  true, then null move
pruning may not have  the positive effect  on program strength that we
would like it to!

Having  said that,  I basically feel   that null move pruning probably
will work ok for go, I am just not ready to assume this quite yet!



> You'll have to try it!

I intend to eventually, but I have to find the time first!


> Brian Sheppard

- Don