- Code: Select all
What replacement scheme do you use ?
What hit rate could I expect in a typical middle game position ?
I use always replace. I have never thought of any other replacement scheme because i couldnt think of a way to choose one position over the other. Since i also store lazy eval score in hash table , may be i have a choice not to overwrite real score with a lazy score.
I think that more interesting is trying many probes (up to 8). For my main hash table this scheme did not work better than the simple two-table approach.
The hitrate is around 25-30% in midgame for me, and 40-50% in late middle game . It can rise up to 70 in the endgame!
My measurements are based on a few blitz games but i think this is enough. Since the table is not cleared between moves, the percentage rises on every move made. I used to be confused when eveyone said their pawnhash table hit was close to 99% when mine usually is 92-93% at best. Well i found out that the problem was i was mearuing things on testsuites, and when i measured it on actual games it was actually 99%.
- Code: Select all
Not me. Lazy eval wouldn't work well in Glaurung. The only sensible way to do lazy eval seems to be to compute the biggest evaluation terms first, and to omit the smaller terms if the preliminary score is too far outside the (alpha,beta) window. In my case, the most expensive parts of my eval are also the ones which produce the biggest scores (especially king safety), so lazy eval would be almost worthless.
IIRC you use futility pruning inside qsearch, if i did not miss someting,
this is the same as lazy eval only that it is done before move is made.
Daniel