mjlef wrote:bob wrote:
Null-move at PV nodes wastes a little time, nothing else. Not a big elo win or lose. I q-search futility prune EVERYWHERE, but I do NOT use SEE() < 0. I use the delta value because even a losing capture can STILL leave us above alpha... Always have done this everywhere. Tossing it out on PV nodes hurts my code. Why would this be different? If you are capturing something and it is too small to get back to alpha, why search it? You can add a special rule for capturing the last piece to get the pawn-can-run score, without turning it off.
.
I am missing something. In q-search, assuming you are not in check, don't you accept the stand pat (do nothing) score? How can a losing capture then get higher than the stand pat score? I am confused why you would search losing SEE move if the stand pat score would end up being higher. What am I missing?
Simple. Say you are at a zero score. You consider the move RxN, your last piece, opponent's last piece. There is a remote chance RxN turns this game into an instant win if you have an unstoppable passed pawn. But that is not so common.
What I described was this: the current score is -3.0, alpha is 0.1 The only captures I consider searching are those where I win material, enough to get the score back up to alpha. Capturing a pawn at -3.0 is not going to pull the score back up to 0.1. No point in trying it, even though it actually wins a pawn. I've done this since Cray Blitz days, and since I use the variable "delta" in the code, someone liked the idea and started calling this "delta pruning". It is really just a little bit more sophisticated version of only searching captures with SEE >= 0.
So SEE >= 0 is not good enough to include the move. I do not search SEE < 0 in the q-search period. If my writing was not clear, that should explain that better.
But as I mentioned, SEE < 0 is risky because in some positions, that still brings the score back above alpha (as when a pawn can't be caught after removing opponent's last piece.) I just choose to ignore that case as very rare, to prune all of the other similar cases where it would just be a waste of time to search them..