Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Need help understanding Null Move please

Author: Dieter Buerssner

Date: 12:22:20 05/10/03

Go up one level in this thread


On May 09, 2003 at 19:27:54, Ryan B. wrote:

>My quiescences search is in a function I call just before the alpha beta search
>if depth <= 0.

I fear, I don't understand this sentence.

>I changed it to if depth -3 <= 0 do quiescences else do null
>move.

Also, what exactly do you mean by "it" here. My suggestion was different, it
seems (or my English comprehension is really bad ...). The idea of null move is:
Even if I don't do anything, and I still "win" (=score > beta here), my position
must be good (good enough for refuting my opponents last move). That alone would
not help too much. The other idea is: How to detect if I would still win. It
turns out, that a shallower search, than in normal alpha-beta is enough, to
detect this rather reliably. In the discussed code snippet, depth -3 was used
(often called R=2, another ply goes for the null move done).

So, you should not do: "depth -3 <= 0 do quiescences else do null
move", but rather do: subtract 3 from depth, if > 0 call "normal" alphabeta,
else call the quiescence search.

>I also added a doNull flag so it can be false if pieces >8 || inCheck.

You probably meant "< 8" instead of "> 8".

I don't know, how you define "pieces". If it is the number of pieces and pawns
on both sides, this might be not the best choice, but still debatable. In a pawn
endgame with 4 pawns on both sides, Zugzwang might be a very likely theme. This
will make null move wrong, because "Even if I don't do anything, and I still
"win" (=score > beta here), my position must be good" is not true anymore.

Don't forget to set doNull to false, when the last move done was a null move.

>Now I need to do more research as to when doNull should be false.  Would a good
>next step be to add transposition hash tables?  From what I read it looks like
>transposition hash tables should be fairly easy to add.

It is certainly a good idea. The implementation is in principle rather easy, but
subtle bugs might be difficult to find.

Regards,
Dieter



This page took 0 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.