rdhoffmann wrote: ↑Sat Apr 19, 2025 12:30 am
Cool, thank you for posting this, I always wondered about the ELO effects of particular features.
About the hash move, I start with that first (since it is easiest to code), it makes a huge difference for me. If it is only a few points for you, I suppose either your move ordering is incredibly good, or you use some other way to calculate the PV than I do (i.e. not the hash).
I did my computation by removing one feature at a time. So when I remove the hash move from move ordering, all the other features (mvv_lva, killers, history, bad captures, etc.) are still there. If you do it the other way, by adding one feature at a time, the importance of each feature may change, because of the correlations they share.
In Dumb, I indeed compute the PV from the search tree, not from the hash table. Basically, on a PV node, I do:
Code: Select all
PV[ply] = best_move + PV[ply + 1];
When computing the PV from the hash table, if you have collisions in your hash table, you may get a wrong PV. Or if you lose an entry in your hash table, you may get a truncated PV. On the other hand, you can extract a PV at almost no cost. Note that in my Othello engine Edax, I do extract the PV from the hash table without getting neither wrong PVs (collision are not possible in this hash table implementation) nor truncated PVs (the missing part is recomputed).