I'm guessing that H3 resolves the FH first at the (reduced) depth at which it was originally searched, and at which it originally failed high (after which it failed high again at unreduced depth, assuming H3 uses a form of LMR at the root similar to that of other programs). So normally it should again score better than the previous moves at this reduced depth, and therefore (quickly) produce a PV.bob wrote:There are two things in the discussion, IMHO.
(1) how to quickly resolve a fail high or fail low so that the search can get past that point. FH and FL are really different animals that most of us currently handle the same way, something I think needs to be looked at quite a bit in fact... Back in the late 90's, John Stanback and I had a long discussion about this issue on r.g.c.c... he proposed the idea that on a fail low, start back over at iteration one, because the fail high is missing a lot of move ordering information, and the previous search of this move did not fail high, so any remembered ordering (HT moves) will likely be wrong. If you do that, the HT entry for the fail low has a really big draft, so starting back over at depth 1 should find some other move, and as you progress through the iterations, you improve move ordering as in a normal search. Unless you lose that fail high. I've thought about this and played with it, but have not made a decision and it sits on my "further testing/thinking is required" list.
(2) producing a score / PV quickly to let the user know what is going on. If you search a FH move to a reduced depth to get a score quicker, that score must be at best maybe a rough approximation of the score that comes from a deeper search. Displaying it might be more confusing, as it is possible that score is actually worse than the scores for previous best moves you displayed Until you get deep enough.
So I can see that (2) works. Whether (1) is achieved is less clear, but it might very well give a little benefit (in addition to the quick PV).
Maybe my guess is not entirely correct, and H3 reduces the new PV move more than what LMR at the root did, the idea being that the original (non-PV) search reduced depth also at other points further down the tree, whereas in the PV search those reductions will not take place. If that's the case then I can see your point (but of course, if it works for H3, it works for H3...).