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.
A different way of doing Null Move reductions
Moderators: hgm, Rebel, chrisw
-
- 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
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
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
-
- Posts: 5106
- Joined: Tue Apr 29, 2008 4:27 pm
Re: A different way of doing Null Move reductions
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.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.
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.