Answers.Body: <p>To build on Neil's answer a bit, you're right that the better your evaluation function gets, the less work your optimization function will need to perform. If your evaluation function gets good enough, you won't need to search at all.</p>
  
  <p>This is not just an academic idea though! It's actually fairly widely used, and has been key to solving several games.</p>
  
  <p>The first example I'm aware of is Tesauro's <a href="http://enzodesiage.com/wp-content/uploads/2017/08/tesauro-tdgammon-1995.pdf" rel="nofollow noreferrer">TD-Gammon player</a>, from 1995. Tesauro used the ideas of reinforcement learning and self-play to train a Neural Network to act as an evaluation function. TD-Gammon played with just a 2-move lookahead using the best evaluation function that was found, and was deemed better than most (all?) human expert players at the time. </p>
  
  <p>More recently, <a href="http://file:///Users/jdoucette/Downloads/agz_unformatted_nature.pdf" rel="nofollow noreferrer">AlphaGo Zero</a> used similar techniques to solve Go, but learning both an evaluation function and (separately) a function to randomize over possible moves.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-07-23T21:15:01.470Z
Answers.Text: Also worth noting: it seems likely that this is how human experts play most games. Checker's is the most famous example, where search algorithms would require a 50+ move lookahead to find moves that human experts intuited.
Answers.UserDisplayName: John Doucette
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-07-23T13:34:21.127Z
Answers.LastActivityDate: 2018-07-23T13:34:21.127Z
Answers.UserDisplayName: John Doucette
Answers.Body: <p>A perfect evaluation function would mean that you only had to do a local search - i.e. maximise over next set of decisions - in order for an agent to behave optimally in an environment.</p>
  
  <p>As such if you could somehow create that function, it would make a search with alpha-beta pruning redundant.</p>
  
  <p>In practice, evaluation functions for complex environments are usually approximate, and significant improvement can be made by adding a deeper search. </p>
  
  <p>Optimisations in search algorithms and improvements in evaluation function work together to make more efficient and closer-to-optimal solutions overall. An evaluation function provides global/general knowledge about the environment and goals. A tree search function provides local focus on solving a relatively small subset of the optimisation problem that is currently relevant.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-07-23T07:24:54.997Z
Answers.LastActivityDate: 2018-07-23T07:24:54.997Z
Answers.UserDisplayName: Neil Slater
Body: <p>I would like to know if having a really good evaluation function is as good as using any of the extensions of alpha-beta pruning, such as killer moves or quiescence search?</p>
  
Tags: <game-ai><search><alpha-beta-pruning><quiescence-search><evaluation-functions>
Title: Is a good evaluation function as good as any of the extensions of alpha-beta pruning?
UserDisplayName: JoeyB
ThreadText: # Is a good evaluation function as good as any of the extensions of alpha-beta pruning?
  
  (Asked by: username_0 on 2018-07-22)
  
  I would like to know if having a really good evaluation function is as good as using any of the extensions of alpha-beta pruning, such as killer moves or quiescence search?
  
  **Tags:** game-ai, search, alpha-beta-pruning, quiescence-search, evaluation-functions
  
  ---
  
  ## 2 answers
  
  ### Answer by username_1 on 2018-07-23. Score: 4
  
  To build on Neil's answer a bit, you're right that the better your evaluation function gets, the less work your optimization function will need to perform. If your evaluation function gets good enough, you won't need to search at all.
  
  This is not just an academic idea though! It's actually fairly widely used, and has been key to solving several games.
  
  The first example I'm aware of is Tesauro's [TD-Gammon player](http://enzodesiage.com/wp-content/uploads/2017/08/tesauro-tdgammon-1995.pdf), from 1995. Tesauro used the ideas of reinforcement learning and self-play to train a Neural Network to act as an evaluation function. TD-Gammon played with just a 2-move lookahead using the best evaluation function that was found, and was deemed better than most (all?) human expert players at the time.
  
  More recently, [AlphaGo Zero](http://file:///Users/jdoucette/Downloads/agz_unformatted_nature.pdf) used similar techniques to solve Go, but learning both an evaluation function and (separately) a function to randomize over possible moves.
  
  > **Comments:**
  > **username_1**: Also worth noting: it seems likely that this is how human experts play most games. Checker's is the most famous example, where search algorithms would require a 50+ move lookahead to find moves that human experts intuited.  
  
  ---
  
  ### Answer by username_2 on 2018-07-23. Score: 2
  
  A perfect evaluation function would mean that you only had to do a local search - i.e. maximise over next set of decisions - in order for an agent to behave optimally in an environment.
  
  As such if you could somehow create that function, it would make a search with alpha-beta pruning redundant.
  
  In practice, evaluation functions for complex environments are usually approximate, and significant improvement can be made by adding a deeper search.
  
  Optimisations in search algorithms and improvements in evaluation function work together to make more efficient and closer-to-optimal solutions overall. An evaluation function provides global/general knowledge about the environment and goals. A tree search function provides local focus on solving a relatively small subset of the optimisation problem that is currently relevant.
  
  
  ---
  
  