A different way of doing Null Move reductions

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Michael Sherwin
Posts: 3196
Joined: Fri May 26, 2006 3:00 am
Location: WY, USA
Full name: Michael Sherwin

A different way of doing Null Move reductions

Post by Michael Sherwin »

Instead of searching to, depth - 1 - r, Null Move can be searched to, depth - 1, just like a normal search with the same efficiency or better if extra reductions are turned on during Null Move. For example during Null Move search I am now testing an All moves reduction of 5 ply (depth - 5) in the regular search. Then if a score is returned that is greater than alpha a research is done at, depth - 1.

It seems more efficient, however, I do not know if tactics are handled better this way or not. I am not claiming that it is better. I just suggest it as something to consider.
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: A different way of doing Null Move reductions

Post by Don »

Michael Sherwin wrote:Instead of searching to, depth - 1 - r, Null Move can be searched to, depth - 1, just like a normal search with the same efficiency or better if extra reductions are turned on during Null Move. For example during Null Move search I am now testing an All moves reduction of 5 ply (depth - 5) in the regular search. Then if a score is returned that is greater than alpha a research is done at, depth - 1.

It seems more efficient, however, I do not know if tactics are handled better this way or not. I am not claiming that it is better. I just suggest it as something to consider.
It's an interesting idea. My feeling is that it won't be as effective as the normal thing but it seems like something that deserves at least a little experimentation.

The reason I have some doubts about this is that it would be pretty difficult to get a lot of ADDITIONAL speed out of aggressive reductions when you are already reducing aggressively. However subtracting 3 right off the bat is a pretty effective way to make the null move test cheap.

It would be a different matter if there was a serious qualitative issue with null move pruning - for instance if it were causing a large ELO gain due to missing a lot of tactics - in which case we would be looking for a different tradeoff - speed traded for quality. However in Komodo, and I suspect most good programs, null move pruning does not cause you to miss much. At the same depth we lose very little in terms of ELO strength.

You touch on something Larry and I have pondered for quite a while - how to make null move pruning more forgiving. In most position where the null move search prevents you from pruning, there is no serious threat, it's just bogus. We would like to take the cutoff much more often.

What we would like is do the equivalent of a partial null move, but of course there is nothing we can imagine doing that is like playing half a move. We have experimented with things such as delaying the null move (playing it on the next move, not now) and other things and have failed to find anything better than just classic null move pruning.