Wednesday, February 28, 2007

Emulating a computer

J'adoube has choosen an interesting approach lately. If I'm asked to summarize (ok, nobody asks, but nevertheless) he is trying to emulate his computer.

Computers make the best moves, so this sounds like a good idea.
But is it?

Correctness.
Everything you can think of can be programmed in a computer.
The computer is a tool, and a tool has it's limitations. It is good to know what the limitations of a computer are beforehand. I found these:
  • The computer isn't making the best move in all situations. The reason is that chess isn't solved. We humans don't know what the best move is, so we can't program a computer to find it.
  • Programmers make mistakes. Working as quality manager I found that an average programmer makes about 3 errors a day. That is about 600 errors per year per programmer. If the coding of a good engine takes 5 manyear, the code contains about 3,000 errors.
  • When an engine is used in brute force mode, all possibilities are evaluated. The downside is that this limits the horizon which is searched by the computer. So in practice, nobody uses brute force mode. The tree of analysis is pruned. But you never know if there is a better a move in what the engine just has pruned. For instance, certain mates cannot be found if there are unusual sacrifices. So the horizon is shifted at the cost of completeness and correctness.
  • There are a few niches where an engine gives plain wrong results. In a certain endgame position I sacrificed a knight against Rybka to create a passer. While Rybka evaluated it as being a piece up, I had seen that its knight was imprisoned at a certain part of the board. So I won the game. This has to do with that a chess engine can look hardly beyond its horizon. I expect that in the near future a lot of these niches will be identified and corrected. Still the horizon will always be finite and hence moves that lie beyond the horizon can cause problems. Moves that in our experience just delay the final execution of the threat, can press the important moves beyond the horizon. Since we humans have more and more trouble to find moves beyond the computers horizon, it becomes more difficult to prove that there are still niches. Which doesn't mean that they don't exist.
All these issues are of very little importance when your butt is kicked by a chess engine. The only reason I bring them up is to prevent people from worshipping their computer with "this move is good because my computer says so."

So the nuance is:
Computers don't make necessarily objectively the best moves, however we have no means to proof that, but they make moves that are good enough to win from most people most of the time. In comparison to humans, they make the better moves.

For the sake of correctness of moves, there is no reason to reject the approach of J'adoube.
There are two other aspects though, psychology and ability.

Psychology.
Sometimes the best moves of a computer can easy be parried by humans and lead to a draw, while lesser moves can cause the greatest problems for humans. For tournament reasons I advice the lesser moves.

Ability.
Can a human emulate computermoves? It depends on the area. I consider the following 4 areas:
  • Quiet phase (opening, endgame).
  • Postional phase (Karpovian play).
  • Tactics.
  • Complex/chaotic/brilliant play.
The quiet phases of the game like opening and endgame should be no problem.
In the positional or "Karpovian" area of the game it should be possible to generate moves that stay within 0.5 pawn units from computermoves.
If you do the circles, tactics should cause you not too much problems.
Remains complex play.
I have done a lot of complex problems lately. Problems that stem from grandmaster games, with the solution commented by a grandmaster or an international master. If I check these problems with Rybka, then an amazing amount of problems prove to be not correct.
The defender didn't play the best move, the winning grandmaster thinks that he wins because of an earlier move, and the commenter sees nothing wrong at all.
If 3 persons of (grand-)master level don't see the best move in a position at a very regular base, then I must conclude that it is impossible for us to emulate computer moves in complex positions.

So the answer to the initial question must be:
It is not possible to emulate computer moves in a complex game, while in other situations it is possible but sometimes not advisable for psychological reasons. Hence for complex chess positions another training method is needed in addition.

Pleasant training to all:)

7 comments:

  1. Interesting.

    When I took lessons from Dan Heisman he used computer evaluations all the time to suggest the correct move.

    ReplyDelete
  2. One other thing:

    The computer isn't right because it says so. The computer is right because it wins.

    :)

    ReplyDelete
  3. J'adoube,
    I'm not sure why you make these comments? The question is, have you already thought about this big hole in your trainingmethod?

    ReplyDelete
  4. Tempo,

    Read my latest blog entry. It not only answers your posting, but eliminates the hole you think there is.

    :)

    ReplyDelete
  5. I must be grossly underpaid. I rewrote an entire billing and payroll system in 9 months and had only 5 or 6 minor bugs that made it in to production, not to mention the inaccuracies I corrected. There were probably another 5 or 6 found in QA and testing that I set up. From working with others I have found I produce 2 - 3 times as much work as the average person when in firedrill mode. Too bad that most companies don't even give you cost of living at raise time. Hopefully this company will compensate me with $ instead of lip service.

    ReplyDelete
  6. Phorku,
    I'm sure you are underpaid:)
    I was talking about the errors that are made, not which emerge though.

    ReplyDelete