I\'m writing a chess engine and recently added a transposition table.
When running a few tests, I found that although the search still returned the same best move,
Is this normal behavior for a transposition table? I remember reading that a transposition table can cause search instability. Is this what that means?
Yes.
So is this a normal occurrence or a serious bug in my code?
Jonathan Schaeffer's advice (under "Plan Of Attack"):
If you initially restrict a TT lookup to be valid only if the table depth exactly matches the depth that you need, then the TT will not change the result of a fixed-depth alpha-beta search. It should, however, reduce the number of nodes searched. Verify that this is working correctly.
Add in iterative deepening and move ordering. If you do this right, it should not change the final result of the search but, again, it should reduce the number of nodes searched.
Only when you are sure all the above is 100% working should you move on to more search enhancements and a better evaluation function.