I do this. The engine recognizes that a backed-up score is 'tainted' by a repetition to a parent node, and in that cases only stores the best move. It is cheap to implement, but 'solves' half of the problem though. (You still have the cases where a TT entry is 'untainted', but in reality there is a draw that you will never see anymore. This happens if you find the nodes in the opposite order).Sergei S. Markoff wrote:Threefold repetition and 50-moves rule are the worst enemies of Transposition Table. Formally, the same positions (from the point of view of the board state) can be different due to different preceeding "silent" moves. That's why full transposition probe can lead to error (usually too later seeng the repetition or 50th move). One of the probable solutions is to mark TT evaluations with some flag that indicates that score of TT position (1) depends of draw node, that depends on node preceeding to (1). It should be restricted to use this score to cut probing node. Anyone tried it?
I haven't measured yet if removing it makes the engine stronger or weaker. I can well imagine it is not a good thing to do at all.
Later I found an old (1985) article by Murray Campbell that describes this technique in more detail. With google you might find a free pdf. For example here: The graph-history interaction: on ignoring position history
PS: I also observe occasional problems in mating in KRK btw but I think in my program that has a different root cause.
