It seems that you didn't understand my idea. What I proposed was that we could try trusting the null-window fail-high in sufficiently desperate positions. If the previous best move has a clearly losing score, the null-window search of a move later in the move list fails high, and the allocated time runs out before the re-search is finished, just play the fail-high move. There is a risk that it's not good, but in practice this risk isn't particularly important, because the previous best move appears to be losing anyway. I'm not sure it works, but I think it is worth trying.bob wrote:Done right, there is no risk. At the root there are two types of fail-high moves, assuming you are doing aspiration search and normal PVS with null-move.
1. You search a move and it fails high on the aspiration search, which means the search is better than your original estimate. Playing this move without completing the re-search has no risk at all.
2. You search any but the first move and get a fail-high on the null-window search. This move is not safe to play until you research and at least get a fail high on the original beta (aspiration) bound. null-window searches can fail high on the null-window search, but the actual move might not have a better score and might well fail low on the re-search. I do not accept a null-window fail-high at the root as a new best move until the research proves this with either a better score or a fail-high on the aspiration window...
And I have had zero problems since I started handling case 2 properly as above. Trusting the null-window fail-high will absolutely wreck you at times, which is troubling but a fact of search.
Your case 2 doesn't exist for me, by the way: I don't use aspiration windows. I've tried them many times, but they just don't work at all for me.
Tord