As far as I understand, roughly speaking, chess engines work by:

  1. calculating all possible variations (game tree) up to some depth
  2. evaluating the final position based on some criteria (material, piece activity...)
  3. based on this evaluation decide for the best move

I fully understand that to have an efficient engine there are ways to prune certain lines, limiting the depth, etc; but this is not my question.

Question is: Are there any alternative attempts to program a (not necessarily strong, but not random either) chess engine, which does not follow this scheme?

  • Botvinnik tried to prune at the root move by having the computer search only the best candidate move. There hasn't been a successful attempt of this, and chess is better for it. Aug 17, 2017 at 8:11

3 Answers 3


In the beginning years of computer chess, people have actually tried to teach computers chess in the same way as they do with humans, explaining strategic concepts like a healthy pawn structure or the initiative. These attempt were soon abandoned because the method you describe was much more successful.

Recently, there has been another attempt to let an engine teach itself chess via Deep Learning (probably encouraged by the success of Google's Go AI). According to the article I linked to, they were quite successful and managed to reach IM strength.

  • 2
    According to my understanding, Alpha Go works exactly like the OP described and only the eval function from (2.) is based on / created through Deep Learning. The other answer seems to kinda-agree. Jan 4, 2017 at 18:17
  • According to the article I linked to, they were quite successful and managed to reach IM strength but if you will read the original paper, you will see that the article highly exaggerated the success. Jan 4, 2017 at 20:30
  • 1
    @HermannDöppes No, AlphaGo is based on Monte-Carlo tree search.
    – SmallChess
    Jan 5, 2017 at 3:37

@Glorfindel is not wrong but deep learning approach to chess is really a fancy term for parameter tuning in chess programming.

Deep learning allows a chess engine to learn a evaluation function, something usually hand written by a programmer. During a game, it works like a normal chess engine.

Other possibilities:

  • GPU chess programming
  • Monte-Carlo tree search
  • Most of your answer should be a comment under [Glorfindel's answer](chess.stackexchange.com/a/16293/2789. The part that actually addresses the question consists of just seven words, which isn't nearly enough for an answer. Also, "GPU chess programming" is just a way of parallelizing whatever algorithm you might otherwise be using, so I don't think it's really an "approach" in the sense that the question is looking for; rather, it's just an implementation method. Jan 4, 2017 at 20:34

Certainly! IF you truly just mean.... "in theory, are there other methods to code a chess engine?"... Then, yes!!

For instance.... one could store a copy of every possible position in chess (a huge number, I know), and have an evaluation for each one. Then, it's answer to any given question (i.e., "best move for white in X position"), will be known immediately just by looking up that board. Is the current state of computer hardware such that this would make any sense? Nah. But you didn't ask that.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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