Computer Chess Club Archives




Subject: Re: An MTD(f) question about NULL MOVE searching

Author: Fabien Letouzey

Date: 04:24:28 07/16/04

Go up one level in this thread

On July 16, 2004 at 06:33:20, Vasik Rajlich wrote:

>There is one interesting caveat in comparison to PVS. A PVS engine has the
>choice to treat null move as any normal move, or to require that the null move
>fails high. (ie within bounds, but not fail high, is not enough) The latter is
>somewhat logical, and IIRC this is what Crafty does.

I think it's much more than somewhat logical!!!

IIUC, you are talking about allowing null moves in the PV (in PVS).

Imagine a PV node where null move gets the best score (inside of the
window).  That means passing is the best option, which is the
characteristic of Zugzwang positions.  They are exactly the positions
in which you don't want to try null move :)

One of the reasons why null-move pruning is safe is that it is only
"kept" in incorrect lines, never in the PV.

>An MTD (f) engine must treat a null move as a normal move. I couldn't come up
>with a way to circumvent this restriction. It seems to be an inherent
>restriction of the MTD (f) search.

>Another way to look at this: an MTD (f) engine must accept null moves along the
>"pv", where "pv" is defined as following the fail-high moves, and
>highest-scoring fail-low moves.

I think it's more complex than this.  Eventually the PV is made of two
"semi-PVs" (one failing high and one failigh low) that must agree on
the score.  There can't be a null move at the same place in both,
since the null move can only fail high in its own node (contrary to normal


Note that I am not a MTD(f) expert, but very interested in reasoning
concerning the PV.


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