xmas79 wrote:Sorry but this cannot happen. You cannot have an exact hash hit with a mate in N and NOT have the depth to see it, as you already have EXACTLY seen it, and indeed you got an exact score.
You can have seen it in a previous search, before you saw that the opponent had a move to avoid that position, and then the opponent did not play that move, so you get in the position anyway, and start iterating from depth 1 (which is not enough to see the mate)...
You can only have a fail-high at root saying there's mate in N and not have the depth to see it.
You can never have a true fail high at the root, as it is a PV node, and the window is (-INF, +INF) there.
And by the way, move B will only be searched as expected, and with a window (a,+INF) trying to find that mate you are not guaranteed to find it, as NOW you don't have the depth to see it. And this is perfectly normal and expected behaviour. This is what I'm claiming here since my first post.
Not sure what you are trying to say. In the example B is supposed to not lead to a mate no matter how deep you search it, no matter what window you search it with. It could be a losing move (but still seeming the best at the depth you have available, which is not enough to see the mate on move A).
If you get a fail high on a second move of a "supposed" PV node with the first best move you must reserach, as that move could be the real best move, leading to another PV node. So I don't get your point of cutting-off immediately in PV nodes. In non pv-nodes everything is ok.
I don't understand what you mean by the phrase "with the first best move". I would say only one move can be best, in general. But if I get a fail high on a later move of a supposed PV node that is above beta, I don't have to re-search. That the score is above beta is all you need to know. (And the hypothesis that it was a PV node can go into the dust bin...) Only when you get a lower bound between alpha and beta (i.e. fail high w.r.t. the null window (alpha, alpha+1)) there is need for a re-search, because the true score might conceivably still be below beta (without violating the lower bound just found).
Question: If you get a fail high at root you don't research? Does this mean that you go directly to the next iteration? What if searching with a wider window you now get a fail low? And what about move ordering in this case?
The only move that can truly fail high in the root is King capture, as beta = +INF in the root, and only King captures score that high. And indeed, there is no reason to re-search, or even do a next iteration in that case.