Basing this on material has a couple of dangers:mjlef wrote:Most programs I have seen seem to extend checks exactly one full ply. Some also extend one reply to checks another full ply (or sometimes less). A very few use an extession of 3/4 a ply. In my continuing experiments in my program, I have tried to come up with different criteria, and in testing they seem to help.
First I divide moves into capture and promotions, or non captures.
For promotions/captures, I use the results of an SEE to determine if the piece moving is being lost. Losing captures get a reduced extension (1/4 a ply to 1/2 a ply seems OK). Winning and equal captures get a full ply extension. I have also experimented with losing up to a pawn or material; getting the full ply extenion. Also, i have epxerimented with varying the extnsion depending on if it is a PV node (non-PV nodes get a lesser extension, but if they become PV nodes, get extended a full ply).
For non-captures, I do something similar (of course, the move is either equal or losing). Losing captures get a smaller extension.
My best tests so far suggest moves losing more than 1.5 pawns of material get no extension. Moves losing less material get 1/4 to 1/2 a ply, and winning or equal moves get a full ply. Ptrobably winning capture checks deserve more than a ply but I have not done enough testing to know for sure.
The goals of all of this is to shape the search tree, so moves with a higher probability of being best have more search under them, and moves likely to be bad, samller trees.
Has anyone revisited this issue, and is there something better than "always a full ply"?
Mark
(1) if you don't extend checks that lose material, what happens to you on positions like WAC 141 where the key move tosses the queen for no apparent gain?
(2) if you are well ahead, not extending also has a down-side. Suppose you grabbed what appeared to be a hanging rook (I will include a FEN below from the 1981 game between belle and Cray Blitz where we were running in "batch mode" and without pondering, and played what appeared to be an "easy move" that won material but was a losing move if searched a little deeper) and by not extending any checks below that, you let yourself horizon the ultimate loss away and you just grab the rook.
There are good reasons to not extend here and there, but I am not sure that basing the decision just on material is good enough. Here's the B-CB FEN:
5r1k/6p/1n2Q2p/4p//7P/PP4PK/R1B1q/ w
Qxb6 is bad. Bxh6 is a forced draw. Doesn't take long for today's programs to discover that Qxb6 is unplayable (unless you play at an ICC-like 1+0 time control maybe). But what does your material limit do to the depth required to avoid Qxb6???