As I understand it chess engines mostly share the basic pattern of having a simple score for the board position and then searching forward with some sort of alpha-beta pruning or similar.

Presumably in the early days people tried to program in the thinking algorithms of a human, before finding that was very weak in a computer.

Now that we have vast computer power, are their any engines that try to do this? They will no doubt still be weak, but could be interesting nonetheless - not least in what it can teach us about how to improve our heuristics.

By "human thinking" I'm meaning things like

  • Deliberately making and breaking pawn structures
  • Having a plan
  • Using heuristics ("knights on the rim...", "castle quickly")

To be clear, the question is about writing an engine to emulate human thinking not human play. It may (or may not) be possible to tweak alpha-beta engines to produce game play that looks human, but you could never interrogate the algorithm and ask it "why did you play that?".

  • 1
    There have been many attempts but all failed. It's simply too hard to truly play like a human. Even if you could do it, it would have been too weak. Over time, everybody gave up.
    – SmallChess
    May 6, 2015 at 15:33

3 Answers 3


In a sense, an attempt to "emulate human thinking" has been done since Atkin and Slate's Chess 4.0 in the 1970's, by tuning the evaluation function based on feeding masses of Grandmaster games through and tuning the parameters to closely mirror the players' choices.

I think you're contemplating approaches fundamentally different from the standard Alpha-Beta search paradigm though. That has proven remarkably difficult, and probably some of the best work was done with very early chess engines. Unfortunately, such approaches tend to be "brittle", because there are so many exceptions to every rule, and tactics (which searching essentially everything excels at) tends to fall down hard without it.

I think, though, you are fundamentally on the right track, in that the distinction between very strong players and weak ones is fundamentally pattern-recognition of positions based on long experience, and being able to "prune the tree" of plausible moves to look at from the start. It would seem there should be a way to store in a database knows "clusters of pieces" for which the game tree has already been partially calculated, such that if you could define the exceptions--i.e. "those pieces were there rather than here in the position I previously calculated and stored", and write a "possible move differences tree" algorithm, you could vastly increase efficiency in a manner very parallel to the way humans do it. I've given some broad design thought to this, but alas, other practical income-earning coding has always taken precedence...


Originally the Fritz-engines tried to incorporate a lot of human knowledge, which seems to be what you mean by "human thinking". The idea was to not only get the tactical strength of computers, but also the strategic depth of human experts.

Then slowly but surely engines took over that were speed optimised from a search tree point of view and it became obvious that "strategic" decisions turn up if you calculate far enough.

"Human thinking" on the other hand can also be understood as pattern recognition. This kind of thinking is emulated by neural networks and in this field a lot of progress has been made recently.

Most of the research focuses on image categorisation, but there was a very strong Go-program developed based on Neural Networks. Chess, being much more tactical, doesn't lend itself easily to this technique. There have been a very weak program and a more interesting move ordering tool based on NNs.

I recently visited a talk by Stephen Wolfram and I thought a chess answering machine would be pretty cool (The Wolfram answering machine doesn't know anything about chess).


Chris Wittington, the author of Chess System Tal, was known for arguing for a knowledge based approach to programming chess engines.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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