Code: Select all
old pv:
25 10.96 -2.71 1. ... a4 2. Ba3 Rh7 3. Rb1 Rh5 4.
Kg4 Ba6 5. Kf4 Kb5 6. Bb2 Rh7 7. Kg3
Bc8 8. Kf4 Bd7 9. Ba3 Rh2 <HT>
new pv:
25 7.40 -2.70 1. ... a4 2. Ba3 Rh7 3. Rb1 Rh5 4.
Kg4 Ba6 5. Bb2 Rh7 6. Ra1 Kb5 7. Kf4
Bb7 8. Re1 Rh4+ 9. Kg3 Rh8 10. Kf4
Bc6 11. Ra1 Rh4+ 12. Kg3 Rh7 13. Kf4
Rh8 14. Ke3 Rh3+ 15. Kf4 Bd7 16. Ra3
Rh2
verification:
White(17): score
note: scores are for the white side
+-----------white----------+-----------black----------+
material....... -0.95 | comp mg eg | comp mg eg |
pawns.......... -0.03 | 0.25 0.28 0.24 | -0.28 -0.28 -0.29 |
passed pawns... -2.43 | 0.00 0.00 0.00 | -2.43 -1.38 -2.80 |
knights........ 0.00 | 0.00 0.00 0.00 | 0.00 0.00 0.00 |
bishops........ -0.04 | 0.37 0.24 0.42 | -0.41 -0.28 -0.46 |
rooks.......... -0.53 | 0.00 0.00 0.00 | -0.53 -0.57 -0.52 |
queens......... 0.00 | 0.00 0.00 0.00 | 0.00 0.00 0.00 |
kings.......... 0.36 | 0.29 0.00 0.40 | 0.07 0.00 0.10 |
development.... 0.00 | 0.00 0.00 0.00 | 0.00 0.00 0.00 |
pawn races..... 0.00 +--------------------------+--------------------------+
total.......... -2.70
So far, I am using 16384 PV entries. When I do a store or probe, I look at 8 entries. This is hardly ever done. But be aware, node counts change as when you get the longer PV, the next ply has better move ordering since it plays more of the moves in the PV first. I am not certain about the 16384 size yet, nor the 8 entry bucket. I am going to run some games. I have Crafty complaining if it detects overwrites (it does a hash probe, gets a hit, finds it is EXACT, and within the current A/B bounds, and then goes to the PV hash storage but can't find the matching signature.)
So it looks reasonable. I'll release this once I finish tuning, tweaking, and settle on a reasonable size so that this doesn't need adjusting by the user. Actually looks pretty good, however, and very little effort (only changes are to HashProbe() and HashStore()... and very rarely executed so it doesn't have any cost I could measure... Another nice feature is that it doesn't change a thing in the normal hash table, no lost entries or anything.
Meant to add this to the thread discussing this issue. Somehow that did not happen...