Hash cutoffs and analysis
Posted: Mon Jun 17, 2013 5:02 pm
Now that the engine I am building (HaChu) has a hash table, the PVs it produces during analysis get very short, especially if you play the move the engine indicated, or take a move back. This of course is undesirable.
Now I understand that the usual trick to prevent this is to suppress hash cuts in PV nodes. (I know it is also possible to hash entire PVs, but I am looking for something trivial for the time being. In Joker I extracted the PV from the hash table afterwards, but this was also a pain to program, and often gave repetitive PVs.)
My question, however, is how to know I have a PV node. The engine in question does not do node classification, and has a vanilla alpha-beta search. So typically the search window will always be open.
Is the trick to look at the score indicated by the (sufficient-depth) hash hit, and only cut when it fails high or low (with the proper bound type) compared to the current window, but continue searching when it is in-window (even if the bound type was exact)?
Now I understand that the usual trick to prevent this is to suppress hash cuts in PV nodes. (I know it is also possible to hash entire PVs, but I am looking for something trivial for the time being. In Joker I extracted the PV from the hash table afterwards, but this was also a pain to program, and often gave repetitive PVs.)
My question, however, is how to know I have a PV node. The engine in question does not do node classification, and has a vanilla alpha-beta search. So typically the search window will always be open.
Is the trick to look at the score indicated by the (sufficient-depth) hash hit, and only cut when it fails high or low (with the proper bound type) compared to the current window, but continue searching when it is in-window (even if the bound type was exact)?