I am still working hard to improve my algorithm in order to efficiently demonstrate that a given position is a draw. I resolved a number of problems including the well-known GHI problem and I discovered another problem you may not know.
![Image](http://fmjd.org/dias2/save/12929577623.png)
Black to play
In the above position I guess a lot of programs demonstrate the draw by the sequence :
1...11-02 2.23-19 02-07 3.19-23 07-02 = (loop)
But what about the following position :
![Image](http://fmjd.org/dias2/save/12929579176.png)
Black to play
Any human sees immediatly the draw by one of the 2 following sequence :
I) 1...11-02 2.32-19 02-07 3.19-23 07-02 4.23-19 = (loop)
II) 1...11-07 2.32-23 07-02 3.23-19 02-07 4.19-23 = (loop)
Is your algorithm able to find this draw ?
The point is the following :
Analyse at depth 4 plies :
I) After 1...11-02 2.32-19 02-07 3.19-23 you concludes correctly that you reach a position with a big advantage to white
II) After 1...11-07 2.32-23 07-02 3.23-19 you concludes also correctly that you reach a position with a big advantage to white
During sequence I) you save in TT that position A reached after 1...11-02 2.32-19 gives a big advantage to white at depth 2 plies
During sequence II) you save in TT that position B reached after 1...11-07 2.32-23 gives a big advantage to white at depth 2 plies
Analyse at depth 6 plies :
I) After 1...11-02 2.32-19 02-07 3.19-23 you reach position B with 2 plies remaining. You can then trust TT table and conclude without further moves that this sequence gives a big advantage to white. In addition you store in the TT that position A reached after 1...11-02 2.32-19 gives a big advantage to white at depth 4
II) After 1...11-07 2.32-23 07-02 3.23-19 you reach position A with 2 plies remaining. You can then trust TT table ...
This scenario will be repeated when analysing at depth 8, 10 ... and you see you will never find the draw.
Of course this example is very simple and in practise the problem will occur between far more than two positions (here A and B) : a bad use of the TT will prevent you to find a very easy draw.
Did you know this problem ?
Did you solve it ?