1

enter image description here

This is the famous Behting study, first published in the magazine Bohemia in 1906, which is often used as a demonstration that computers can’t solve all positions.

White to move and draw with a very elegant move.

Spoiler:

1. Kc6!! g1=Q 2. Nxh4 Qh1+ 3. Nhf3

Question is, is this study still beating engines?

Clarification: Suggesting best move, doesn't mean engine understands(or finds) the solution. Without evaluating it 0.00 or =/=, it doesn't mean it's solved. Actually, best move with -4.** means engine believes that best possible continuation for White is this move, with winning advantage for Black.

Imagine you ask a question to someone about a chess position in which White has a move which is the best and draws. You ask, which move is the best and why, and you get an answer like this: "Best chance is this move, but even if it's White's best chance, it looks losing". And you know that move draws. Would you accept this answer as correct answer? Definitely no.

I recommend to read:

Notes about edits: As the question turned into a discussion about whether the position solved by engines or not, I revised the question accordingly.

This question is totally about facts, and not opinion based. Some of the answers are opinion-based, but it's not the problem of the question. It's terribly wrong to close this question, instead of letting people discuss it.

  • I'm having a hard time believing engines can't solve it. To me, it seems much more plausible that the solution is flawed. Does it maybe involve Nh4: Kh4: instead of Nh4: g1=Q? – 11684 Dec 29 '15 at 1:03
  • For those wanting to know the solution without emailing anyone (note: the following link contains spoilers), this position is a fairly well-known study by Behting. – ETD Dec 29 '15 at 5:57
  • Stockfish 6 solved this in just under 2 minutes. It isn't clear to me that Stockfish "knows" this is a draw, but it has reached 45 moves beyond the starting position. It is now exploring a new 2nd move for Black. – Tony Ennis Dec 29 '15 at 22:50
  • Stockfish 6 chose the correct move when I tried it (from depth 43 to depth 56). I'm not using tablebases. I think Stockfish is non-deterministic when run with more than one thread (I'm using four), as the results presumably depend on the thread scheduling, which is unpredictable. In any case, the results certainly depend on how much hash memory you allocate it (I'm using 1024 MB). – Stephen Dec 31 '15 at 9:53
5

For the record, the soundness of the Behting study has been under a cloud for some time because it is not easy to refute 1 Ng7+ Kg5 2 Nf3+ Kg4 3 Kf5 h3 4 Ke4 g1Q 5 Nxh6+ Kh5 6 Nxg1 h2 7 Nf3 h1Q 8 Nf5 "etc.", but according to recent analysis by GM John Nunn (2012) the study is sound after all.

It should be feasible for a chess engine to reach a 0.00 evaluation because there are only a few thousand drawing positions that need to be evaluated (depending on wK/bQ position, with or without the c/d pawns), and once the search has exhausted that space they'll all evaluate to a draw.

Here's a similar challenge:

[Title "NDE 1986 (2nd Prize, Israel Ring 1986)"]
[fen "5k2/1n6/1p3K2/P7/1P2N3/p1P2B2/8/2b5 w - - 0 0"]

White to move and draw.

Solution:

1 a6 a2 2 axb7 Bf4 3 Ng5! Bb8! (a1Q 4 Ne6+ Kg8! 5 Nxf4 Qxc3+ 6 Kf5 and Black can't win; 3 . . . Bd6 4 Ne6+ Kg8 5 Nc7! Bxc7 6 Bc4+ draws. So the Bishop crosses the critical square c7, which however White can exploit too:) 4 Nh7+! Ke8 5 Bc6+ Kd8 6 Ng5 Kc7 7 b5! a1Q (Kd6!? 8 Ne4+ Kc7 9 Ng5 repeating) 8 Nf7! positional draw.

|improve this answer|||||
  • 1
    +1 For first objective answer :) As you said, when engine evaluates all positions, or in your words, exhausts the continuation space, it will assess as draw. My question is, is this game an example of computer humiliation? :) I'm running Komodo-9.3 right now, depth of 40, no solution yet. – ferit Jan 1 '16 at 17:54
  • @Saibot Depth 40 is very low for solving a puzzle like this. – SmallChess Jan 2 '16 at 11:36
  • This is just like saying chess can be solved simply be going through all combinations. Furthermore, if the engine doesn't understand the 50-moves draw, there is no way the evaluation can ever drop to zero. The engine wouldn't have enough memory to store all possible searched possibility, thus it'll always give a winning advantage for Black. – SmallChess Jan 2 '16 at 11:42
  • 3
    The point is that a few thousand is small enough for the computer to go through (and remember!) all of them, while in general "all combinations" is way too many. The 50-move rule is not needed either. But I'd think depth 40 or so should be enough, because all the relevant positions can be reached at that point. – Noam D. Elkies Jan 2 '16 at 16:03
  • 3
    We're not "solving chess", or even solving the game's initial array. We're solving a particular position, whose analysis requires only recognizing that Black cannot maintain his material advantage unless he stays forever within a very small subset of "all combinations". – Noam D. Elkies Jan 2 '16 at 21:48
2

I am running SCID on the front and Stockfish 6 on the back. Stockfish is running on 4 cores with a gigabyte of RAM. The computer is an Intel quad-core 3.2GHz i5, 16Gb of RAM, 64-bit OS.

I am not using a tablebase. I am not sure it matters; the first move or two are the hard ones.


[title "Behting study and Stockfish 6"]
[fen "8/8/7p/3KNN1k/2p4p/8/3P2p1/8 w - - 0 1"]

1.Kc6 g1=Q 2.Nxh4 Qa1 3.Nhf3 Qa5 4.Kd6 Qa2 5.Kc5 Qb3 6.Kd4 Qb4 7.Kd5 c3 8.dxc3 Qxc3 9.Ke4 Qc5 10.Kd3 Qd5+ 11.Ke3 Qd1 12.Ke4 Qb1+ 13.Ke3 Qc1+ 14.Kd4 Qf4+ 15.Kd3 Qa4 16.Ke3 Qc2 17.Kd4 Qe2 18.Kd5 Qb5+ 19.Ke4 Qb7+ 20.Kd4 Qc7 21.Ke4 Qb6 22.Kd3 Qa6+ 23.Ke3 Qa3+ 24.Ke4 Qf8 25.Ke3 Qb4 26.Kd3 Qf4 27.Ke2 Qf5 28.Ke3 Qf8 29.Ke4 Qc8 30.Kd5 Qa8+ 31.Kd4 Qb7 32.Ke3 Qd5 33.Kf4 Qb7

I think the "no computer can solve this" comment is very dated... the person who said it mentioned Anatoly Karpov...

And as requested (rudely), here's a screen shot.

Behting study; screencap of Stockfish 6's analysis

|improve this answer|||||
  • The lines at the top are the first lines it tried. Each line further down reflects a refinement. As you read down, you'll see it find Kc6, then try Ng7, then go back the Kc6. There it will stay. – Tony Ennis Dec 31 '15 at 5:23
  • 1
    @TonyEnnis while I also feel intimidated by Saibot's way of writing, I have to agree with his conclusion. If engine fails to evaluate the position as 0.00, it hasn't solved it. And as you said, there are countless alternatives, that's where the problem lies. You stopped the engine at that moment because you know Kc6 is correct, but since the evaluation is wrong, you can't prove that it won't switch to a losing line it evaluates as -3.50 at some point later if you keep the analysis on. Eventually stockfish will realize it's a 50-move draw, but it might take forever for today's computer. – jf328 Dec 31 '15 at 9:49
  • 5
    I do not understand that argument. Maybe we can first agree that, from a practical point of view, the engine solves the position as it plays the correct move. Now, about the "understanding". It is not clear what you actually expect from an engine. First, even if it would show 0.0, it is not clear that at a certain depth it does not jump away again, so 0.0 is by no means a sign of understanding. Second, this strict requirement seems very ad hoc, similarly you could say that an engine only understands a winning position when it announces mate in X. Right? If not, where is the difference? – Jester Dec 31 '15 at 10:37
  • 2
    @saibot We understand what you're saying, and that what you're saying is unreasonable. You posting says a computer can't solve the problem. The computer has solved the problem, and quickly. If your posting had said, "No computer can exhaustively explore every move that can occur starting from this position" then we'd probably have agreed with you. – Tony Ennis Dec 31 '15 at 16:08
  • 2
    @TonyEnnis My Stockfish was not the most recent one, I got suspicious after Stephens comment and checked it. After getting the most recent release, my run finds Kc6 under two mins too. So sorry. – ferit Dec 31 '15 at 17:48
0

This has turned into a hot discussion... I take it positively because we need more traffic.

I'm confident all the well written engines will give Kc6 with sufficient thinking time. That's because all other alternatives are even worse. The line starting with Kc6 is the only line that the computer finds with 2 knights vs queen. Everything else results in further material loss and therefore discarded.

Since the engine is able to see Kc6 would be the only move not losing instantly, the puzzle should be considered solved.

It's insane for the Stockfish engine to give a 0.00 score in this kind of position because it is simply not designed for something like this.

|improve this answer|||||
  • It's insanely wrong saying its solved while engine evaluates losing. Because its draw. And what makes Kc6 best move is that draw. Its just like answering correctly by coincidence. – ferit Jan 1 '16 at 15:00
  • A monkey can play Kc6 without understanding whats going on too! Would you consider that monkey genius? Or would you say " he doesnt know what hes doing " ? – ferit Jan 1 '16 at 15:06
  • There is nothing intrinsic in the evaluation -4 that makes it "losing". Engines are move creators not evaluators, the evaluation is just a heuristic to find the best move. – BlindKungFuMaster Jan 1 '16 at 15:11
  • 1
    @Saibot So how would you tell if the engine solves the puzzle?? – SmallChess Jan 1 '16 at 15:59
  • 2
    Actually, YOU are mixing your perception with the engine evaluation. Stockfish doesn't say it's losing, Stockfish says -4. You interpret it as "losing", but that's just you. For Stockfish it's just a number to find the best move to play. And it does indeed find the best move to play. – BlindKungFuMaster Jan 1 '16 at 16:21

Not the answer you're looking for? Browse other questions tagged or ask your own question.