If there is a hash hit and it finds an upper bound (ubHash) in the hash table can you use that upper bound to limit the search.
For instance search (depth, lb, ub) where lb < ubHash < ub can you continue the search with ub = min (ubHash, ub). And why not ?
TTable questions
Moderators: hgm, Rebel, chrisw
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: TTable questions
Yes. But it won't work very often. 99+% of the search is with the window a,a+1. So if the UB is usable (draft is sufficient) and it is less than beta, then it must be less than or equal to alpha. Which means you would now not have a null-window, you would have a negatively-overlapping window. It would not make any sense to have a score s that is > beta AND < alpha at the same time. If the UB is less than the LB, you should instantly fail low. Or should you instantly fail high? There's no way to use such contradictory information, and no way for it to happen unless the search is broken. So the only place this could really happen would be where you are in a non-null window search, which is not often enough to make any difference in general, assuming you use PVS.Henk wrote:If there is a hash hit and it finds an upper bound (ubHash) in the hash table can you use that upper bound to limit the search.
For instance search (depth, lb, ub) where lb < ubHash < ub can you continue the search with ub = min (ubHash, ub). And why not ?
Edit: you will find reference to this idea in Slate/Atkin chapter of Frey's book, but in 1973 when chess 4.0 was written, nobody had yet heard of PVS, so there were no null-window searches at all and this did work pretty well.
-
- Posts: 27812
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: TTable questions
Search instability. You should be prepared that the re-search (depth, lb, ubHash) at the same depth now and then will fail high, despite the fact that the previous search did claim the score could not be higher than ubHash. And what would you do then? Another re-search, with the true ub? To avoid complexity for minimal gain, it might be better to search with the full window the first try.Henk wrote:For instance search (depth, lb, ub) where lb < ubHash < ub can you continue the search with ub = min (ubHash, ub). And why not ?