0.9961
I was a bit surprised that the accuracy was already this good!
When using the pinned-pieces for certain types in the SEE evaluation I got the number up to
0.9966
I was already playing with discovered checks and because I am already calculating the pinned-pieces, calculating the discovered check pieces was easy. Adding this knowledge to the SEE improved the accuracy to
0.9973
Next I looked at positions where the SEE failed on. This was when a pinned-piece was not pinned anymore because the pinner attacked another piece so the pinned-piece was not pinned anymore and should now actually be involved in the SEE calculation. This however meant that somehow I needed to update the pinned-pieces during the SEE calculation. I was curious about its effect and thought that I could calculate this quite effectively so after I implemented this and the accuracy improved to
0,9997!
I can see that the nodecount has been decreased but the nps has also decreased, both by about 3%.
Positions where the SEE score is still wrong is for instance when a pinned pawn is being captured by an en-passant capture. But this is so rare (and cumbersome to implement) that I am not going to look into this.
I still need to investigate how important the accuracy of the SEE evaluation really is (elo wise). I use the SEE score for move ordering and for pruning bad captures in the Q-search but maybe everything above 0.99 is more than enough. Still, I like these kind of tweaks because these are easy to tune/fix and you don't need to play 1000 games to check the impact of a certain change in the code. (I know that eventually you do...)
Regarding the testset, see the following link by the author of Zurichess, again
http://www.talkchess.com/forum/viewtopic.php?t=61427
