View Single Post
Old July 22nd 17, 12:46 PM posted to,
external usenet poster
Posts: 24
Default Engine puzzle position

On 22/07/2017 10:16, Martin Brown wrote:
On 21/07/2017 21:23, Rainer wrote:
On 21/07/2017 17:14, Martin Brown wrote:

I have stumbled upon a position where quite a few engines - I
thought at first it was just x64 types but Fritz 10 also sees
the same phantom "Good move" which evaluates as a draw where
none exists. The position is hopelessly lost but that isn't the
point. Something is wrong.

I found it analysing a lost game where there was a clear and
bizarre discontinuity in the evaluation function that made no
sense to me.

Crafty x64 23.05 also sees the wrong right move but x32 20.14 is

r2r4/1p2p1kp/p5p1/3BNbPn/8/2N4P/PPP2P2/R3K2R b KQ - 0 21

It is a close run thing between 22. ... Rac8, or 22 ... Nf4 but
the phantom move which evaluates as a draw is 22. ... Bc8

If you actually play this move Bc8 then the evaluation becomes
correct again with white to move. There is something odd about
this position that breaks some engines. Any ideas what it might

My guess is that it is some sort of draw by repetition bug
common to several of the engines since the offending thread
displays as just a single move with no continuation line : [...]

You didn't post the game, so I have to ask: is there a position
repetition after 21...Bc8? If so, a zero score would be

The material balance is such that the winning side should not be
looking for a draw and the losing side has no way to force perpetual
check. The score for the move 22. ... Bc8 is totally anomolous (as
is the fact that it does not have any continuation line in the

It might be relevant that the strongest continuation for white is
0-0-0 and there may be a bug in the logic around queens side
castling somewhere. Almost none of the engines see anything other
than "best" is 21. ... Bc8 0.0 (and see no further than that)

This is the result of applying blundercheck threshold 20cp 4s to the
entire game (opening blunder in blitz) but played on in the hope of
winning something back.

[game score weeded]

[Event "Blitz 5m+5s-4m+2s"]
[Site "?"]
[Date "2017.07.21"]
[Round "?"]
[White "Deep Fritz 14"]
[Black "Martin"]
[Result "1-0"]
[ECO "B08"]
[WhiteElo "1812"]
[BlackElo "1815"]
[PlyCount "75"]
[EventDate "2017.??.??"]
[EventType "blitz"]

1. d4 d6 2. e4 Nf6 3. Bd3 g6 4. Nf3 Bg7 5. h3 Nbd7 6. Nc3 O-O 7. e5 dxe5
8. dxe5 Nh5 9. g4 Nf4 10. Bxf4 f6 11. exf6 Nxf6 12. Bc4+ Kh8 13. Qxd8
Rxd8 14. Bxc7 Rd7 15. Be5 a6 16. g5 Nh5 17. Be6 Rd8 18. Bd5 Bxe5 19.
Nxe5 Kg7 {1st occurrence} 20. Bb3 Bf5 21. Bd5 Rab8 (21... Bc8 {position
repetition}) 22. a4 e6 23. Be4 Nf4 24. Rc1 Rd4 25. Bxf5 exf5 26. Rd1 Rb4
27. Rd7+ Kg8 28. Nd5 Re4+ 29. Kf1 Rxe5 30. Nxf4 Re4 31. Nd5 Rxa4 32.
Nf6+ Kf8 33. Rxh7 Rd8 34. Kg2 Rd2 35. Re1 Re4 36. Nxe4 fxe4 37. Rxb7 e3
38. Rxe3 1-0

It's what I suspected: 21...Bc8 repeats the position, hence the draw
score. UCI engines are always fed with the full game history, so they
can detect the repetition.

NB: there is a decades-old controversy whether it's ok to return a draw
score after the first position repetition, or if this should be done
only after the second repetition. One can argue either way, I'll let
that aside.