Answers.Body: <p>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. </p>
  
  <p>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. </p>
  
  <p>"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. </p>
  
  <p>Most of the research focuses on image categorisation, but there was a <a href="http://arxiv.org/abs/1412.6564" rel="nofollow">very strong Go-program</a> developed based on Neural Networks. Chess, being much more tactical, doesn't lend itself easily to this technique. There have been a <a href="http://satirist.org/learn-game/systems/neurochess.html" rel="nofollow">very weak program</a> and a more <a href="http://www.researchgate.net/publication/4376830_A_Neural_Network_Classifier_of_Chess_Moves" rel="nofollow">interesting move ordering tool</a> based on NNs. </p>
  
  <p>I recently visited a talk by Stephen Wolfram and I thought a chess answering machine would be pretty cool (<a href="https://www.wolframalpha.com" rel="nofollow">The Wolfram answering machine</a> doesn't know anything about chess). </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-05-06T14:03:56.323Z
Answers.LastActivityDate: 2015-05-06T14:03:56.323Z
Answers.UserDisplayName: BlindKungFuMaster
Answers.Body: <p>Chris Wittington, the author of Chess System Tal, was known for arguing for a knowledge based approach to programming chess engines.</p>
  
  <p><a href="http://www.thorstenczub.de/complcss2.html" rel="nofollow">http://www.thorstenczub.de/complcss2.html</a></p>
  
  <p><a href="http://adamsccpages.blogspot.com/2012/07/chess-system-programs-of-chris.html" rel="nofollow">http://adamsccpages.blogspot.com/2012/07/chess-system-programs-of-chris.html</a></p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-09-23T11:55:34.007Z
Answers.LastActivityDate: 2015-09-23T11:55:34.007Z
Answers.UserDisplayName: A passerby
Answers.Body: <p>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.</p>
  
  <p>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.</p>
  
  <p>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...</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-05-06T22:28:19.560Z
Answers.LastActivityDate: 2015-05-06T22:28:19.560Z
Answers.UserDisplayName: empiric
Body: <p>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.</p>
  
  <p>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.</p>
  
  <p>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.</p>
  
  <p>By "human thinking" I'm meaning things like</p>
  
  <ul>
  <li>Deliberately making and breaking pawn structures</li>
  <li>Having a plan</li>
  <li>Using heuristics ("knights on the rim...", "castle quickly")</li>
  </ul>
  
  <p>To be clear, the question is about writing an engine to emulate human <strong>thinking</strong> not human <strong>play</strong>.  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?".</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2015-05-06T15:33:19.833Z
Comments.Text: 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.
Comments.UserDisplayName: SmallChess
Tags: <engines>
Title: Are there any chess engines which try to emulate human thinking?
ThreadText: # Are there any chess engines which try to emulate human thinking?
  
  (Asked by: username_0 on 2015-05-06)
  
  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?".
  
  **Tags:** engines
  
  > **Comments:**
  > **username_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.  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_4 on 2015-05-06. Score: 7 | Accepted answer
  
  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...
  
  
  ---
  
  ### Answer by username_2 on 2015-05-06. Score: 4
  
  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](http://arxiv.org/abs/1412.6564) 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](http://satirist.org/learn-game/systems/neurochess.html) and a more [interesting move ordering tool](http://www.researchgate.net/publication/4376830_A_Neural_Network_Classifier_of_Chess_Moves) 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](https://www.wolframalpha.com) doesn't know anything about chess).
  
  
  ---
  
  ### Answer by username_3 on 2015-09-23. Score: 1
  
  Chris Wittington, the author of Chess System Tal, was known for arguing for a knowledge based approach to programming chess engines.
  
  <http://www.thorstenczub.de/complcss2.html>
  
  <http://adamsccpages.blogspot.com/2012/07/chess-system-programs-of-chris.html>
  
  
  ---
  
  