Making null move better?

Discussion of chess software programming and technical issues.

Moderators: hgm, Harvey Williamson, bob

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Post Reply
Michael Sherwin
Posts: 3041
Joined: Fri May 26, 2006 1:00 am
Location: WY, USA
Full name: Michael Sherwin

Making null move better?

Post by Michael Sherwin » Thu Jan 25, 2018 1:41 pm

The player makes a move that secures an advantage >= beta. However the player does not suspect that until it is his move again at which time the player makes a null move search. Let's say that there is a remaining depth of 20 ply and the null move search is 16 ply. That is still a lot of work. And you must do that work for as many replies the opponent makes to the players move that secured the advantage. That could mean an average of 40 or so 16 ply searches to prove that the player's move that secured the advantage really did secure the advantage.

I propose that when making a null move, score = NullSearch(), is called instead of score = -Search(). In NullSearch() all the opponents moves are tried and if the score is immediately brought above the opponents alpha a normal full depth null move search is done on that opponents move. However if an opponents move does not immediately bring the score to above alpha then the player passes again and a very shallow normal null move search is done. So basically if any opponent move after the original null move does not change the situation even though the player made a second null move then the very shallow null move search should prove to be sufficient.

:?:
I hate if statements. Pawns demand if statements. Therefore I hate pawns.

Post Reply