Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: How fast should a search tree expand?

Author: Robert Hyatt

Date: 11:20:58 09/28/98

Go up one level in this thread


On September 28, 1998 at 13:01:01, John Coffey wrote:

>On September 28, 1998 at 09:32:12, Robert Hyatt wrote:
>
>
>>that's the point, however.  There are practically *no* positions in chess where
>>playing two moves in a row wouldn't result in winning something.  IE if we
>>played a game where I could make two moves in a row once, I'd expect to beat you
>>every time.  In your case, you can't put your queen on a square where it can be
>>attacked in one move, because that's when I'll use my two moves, once to attack
>>it, once to rip it.  You can't put your king on a square where I can attack and
>>then mate using two moves.
>>
>>In tree searches, this most commonly happens when one side is way down in
>>material and even giving him two moves in a row he can't regain enough to get
>>back to equal.
>>
>>In endgames, this doesn't work as well, because with no pieces on the board,
>>such double-move threats are less serious (they do exist, but we don't do null-
>>move when there are no pieces).
>
>
>If practically no positions in chess where making two moves in a row doesn't
>when something, then how do null move cutoffs reduce the size of the tree
>from 6^depth to 3^depth?

easy... because a full-width search looks at so much garbage.  At ply=1,
near the end of the search, you consider Qxh3 (pawn is on h3) and the pawn
is defended by a pawn.  So after 2 plies of your 12 ply search, you have Qxh3
gxh3 and black is a queen down (less a pawn).  Whenever white is on move in
the tree, it is unlikely that even if white gives black two moves in a row,
that black can recover the material, even if we search this "null-tree" to a
depth of 2 plies less than normal.  And if he can't get the material back with
two moves in a row, he probably isn't going to get it back *ever* and we just
did 1/38^2 as much work as we would normally have to do to discover that Qxh3
is a lemon.


>
>Unfortunately there is still much confusion in my mind on how to implement
>these.   What I gather from the previous discussion is that for every
>position we check a null move response and if the opponent's position does
>not improve then we make a cut off.  It is hard for me to see why we would
>do this when down matieral?  (i.e.  people have said that they do this
>check "everywhere.")  Seems to me that if down material then the next move
>could regain material.  If we do a null move where we skip a move then chances
>are the opponent could win more material.

when talking about material, we are testing the side that is *up* in material,
and saying "if I give my opponent two moves in a row, can he recover the
material he is down?"  If the answer is yes, then we have to search this node
normally.  If the answer is no, then we say "two moves in a row didn't let him
recover the material, so if I play a move in between his two best moves it is
even *less* likely he can recover it, so we can stop searching this path.






>
>I have asked repeatedly if we only do the null move check when up material,
>and I have been told repeatedly that it is done everywhere.


this is correct...



>
>How does one evaluate the null move?  i.e. say we are up 9 points and we do
>a null move check and the result is that we are only up 4 points (the opponent
>gained a rook with the null move)  Do we evaluate the position as +9 or +4?
>
>John Coffey



Neither...  you simply change sides, call search with depth-3, and then check
the result when it returns.  If the value is >= beta, you gave your opponent
two moves in a row and he still failed low (because we are about to fail high
with value >= beta) so we return(beta) and search no more.  If the opponent
can bust us with two moves in a row, he will return(beta) which comes back to
our recursive call as <= alpha, we learned nothing from the null-move search
and we keep going.  We *never* "use" the null-move search score for anything
other than to say "the value of this position is >= beta so stop".



This page took 0.02 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.