Answers.Body: <p>@Glorfindel is not wrong but deep learning approach to chess is really a fancy term for parameter tuning in chess programming.</p>
  
  <p>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.</p>
  
  <p>Other possibilities:</p>
  
  <ul>
  <li>GPU chess programming</li>
  <li>Monte-Carlo tree search</li>
  </ul>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-01-04T20:34:30.770Z
Answers.Text: Most of your answer should be a comment under [Glorfindel's answer](http://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.
Answers.UserDisplayName: David Richerby
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-11-22T21:02:02.233Z
Answers.Text: mis-conception about machine learning.  Well I guess I should look at the dates.  By now even SF engine followers and developpers, having to train NNue to approximate exhaustive search part of engine, would know that while this is also of global optimization parameter search, there is a crucial aspect of generalization to new inputs.  In reinforcement learning it is not as clear as in supervised learning, but it is still there in the exploration versus "exploitation" dilemma remaining room to learn from less than all the input about other input best answers.
Answers.UserDisplayName: dbdb
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-01-04T13:29:22.843Z
Answers.LastActivityDate: 2017-01-04T13:29:22.843Z
Answers.UserDisplayName: SmallChess
Answers.Body: <p>Certainly! IF you truly just mean.... "in theory, are there other methods to code a chess engine?"... Then, yes!!</p>
  
  <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-01-11T22:47:02.503Z
Answers.LastActivityDate: 2017-01-11T22:47:02.503Z
Answers.UserDisplayName: Nick Lopez
Answers.Body: <p>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.</p>
  
  <p>Recently, there has been another attempt to let an engine teach itself chess via <a href="https://www.technologyreview.com/s/541276/deep-learning-machine-teaches-itself-chess-in-72-hours-plays-at-international-master/">Deep Learning</a> (probably encouraged by the success of <a href="http://qz.com/639952/googles-ai-won-the-game-go-by-defying-millennia-of-basic-human-instinct/">Google's Go AI</a>). According to the article I linked to, they were quite successful and managed to reach IM strength.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-01-04T18:17:53.533Z
Answers.Text: 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](https://chess.stackexchange.com/a/16294/12163) seems to kinda-agree.
Answers.UserDisplayName: Hermann Döppes
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-01-04T20:30:09.387Z
Answers.Text: `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.
Answers.UserDisplayName: Salvador Dali
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-01-05T03:37:57.110Z
Answers.Text: @HermannDöppes No, AlphaGo is based on Monte-Carlo tree search.
Answers.UserDisplayName: SmallChess
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-01-04T10:51:52.360Z
Answers.LastActivityDate: 2017-01-04T10:51:52.360Z
Answers.UserDisplayName: Glorfindel
Body: <p>As far as I understand, roughly speaking, chess engines work by:</p>
  
  <ol>
  <li>calculating all possible variations (game tree) up to some depth</li>
  <li>evaluating the final position based on some criteria (material, piece activity...)</li>
  <li>based on this evaluation decide for the best move</li>
  </ol>
  
  <p>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.</p>
  
  <p>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?</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-08-17T08:11:56.637Z
Comments.Text: 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.
Comments.UserDisplayName: Fred Knight
Tags: <engines><programming><computer-chess>
Title: Alternative approaches to chess engine programming
ThreadText: # Alternative approaches to chess engine programming
  
  (Asked by: username_0 on 2017-01-04)
  
  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?
  
  **Tags:** engines, programming, computer-chess
  
  > **Comments:**
  > **username_1**: 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.  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_6 on 2017-01-04. Score: 16 | Accepted answer
  
  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](https://www.technologyreview.com/s/541276/deep-learning-machine-teaches-itself-chess-in-72-hours-plays-at-international-master/) (probably encouraged by the success of [Google's Go AI](http://qz.com/639952/googles-ai-won-the-game-go-by-defying-millennia-of-basic-human-instinct/)). According to the article I linked to, they were quite successful and managed to reach IM strength.
  
  > **Comments:**
  > **username_7**: 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](https://chess.stackexchange.com/a/16294/12163) seems to kinda-agree.  
  > **username_8**: `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.  
  > **username_2**: @HermannDöppes No, AlphaGo is based on Monte-Carlo tree search.  
  
  ---
  
  ### Answer by username_2 on 2017-01-04. Score: 3
  
  @username_6 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
  
  > **Comments:**
  > **username_3**: Most of your answer should be a comment under [username_6's answer](http://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.  
  > **username_4**: mis-conception about machine learning.  Well I guess I should look at the dates.  By now even SF engine followers and developpers, having to train NNue to approximate exhaustive search part of engine, would know that while this is also of global optimization parameter search, there is a crucial aspect of generalization to new inputs.  In reinforcement learning it is not as clear as in supervised learning, but it is still there in the exploration versus "exploitation" dilemma remaining room to learn from less than all the input about other input best answers.  
  
  ---
  
  ### Answer by username_5 on 2017-01-11. Score: -4
  
  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.
  
  
  ---
  
  