May 6, 2007

[Other] Still hashing

I have now divided the pawn evaluation so the passed pawns are separate from general pawn structure evaluation. This is needed since passed pawns depend on the king's position (and to some extent on other pieces as well) and that is not included in the pawn hash.

Running the selected.pgn YATS set to 8 ply fixed depth I get these results from v0.32 and the version with eval and pawn hash.
Analyzed Positions    : 26
Different Moves : 0
Different Scores : 0
Different Times : 6

Time Mediocre 0.32 : 1:52
Time Mediocre dev : 1:25

Nodes Mediocre 0.32 : 11.923.392
Nodes Mediocre dev : 11.859.579
This is exactly what I am looking for, same evaluations and moves, only faster with the eval and pawn hash.

I will still have to do some testing to find the right sizes for the tables, but it seems to be working without bugs now at least.

3 comments:

Anonymous said...

Shouldn't you get the same node count as well?

Jonatan Pettersson said...

Yeah I probably should. However the transposition table size is different in the two version so I was hoping that was the reason, however I'm not so sure anymore.

I'm currently trying to track down the reason to the difference.

Anonymous said...

I had the same problem with all my hash tables which uses zobrist keys generated from Random(). The problem was that the constructor Random() chooses a random seed which leads to a slightly different modulo arithmetic used in all my hashtables. That's why I initialize my zobrist key now with Random(0) to make sure I have some reproducable results. Hope it helps!

Cheers, Poky