Answers.Body: <p>By far the most commonly used strategy is to select the child with the <strong>highest number of visits</strong>. This is as described in the 2008 paper you linked. It's also what's referred to as the "robust child" in the 2012 paper you linked.</p>
  
  <p>In algorithm 2 of the 2012 paper, they actually use the highest average reward, which corresponds to "Max child". It looks like they're using the UCB1 policy, but they actually use a value of <span class="math-container">$0$</span> for the exploration parameter <span class="math-container">$c$</span>, which makes the entire square root term drop out. This is also explained in the text at the end of your quote. But usually, a robust child / max visit count performs better.</p>
  
  <p><a href="https://www.researchgate.net/publication/23751563_Progressive_Strategies_for_Monte-Carlo_Tree_Search" rel="nofollow noreferrer">Progressive Strategies for Monte-Carlo Tree Search</a> is a different paper from 2008, in which these strategies are experimented with a bit. Usually, they perform similarly, but a robust child tends to be the best if there is any difference at all.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-01-27T21:02:35.613Z
Answers.LastActivityDate: 2020-01-28T13:35:18.367Z
Answers.LastEditDate: 2020-01-28T13:35:18.367Z
Answers.UserDisplayName: Dennis Soemers
Body: <p>When the time allotted to <a href="https://en.wikipedia.org/wiki/Monte_Carlo_tree_search#Principle_of_operation" rel="noreferrer">Monte Carlo tree search</a> runs out, what action should be chosen from the root?</p>
  <ul>
  <li><p>The <a href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.102.1296" rel="noreferrer">original UCT paper</a> (2006) says <code>bestAction</code> in their algorithm.</p>
  </li>
  <li><p><a href="https://www.aaai.org/Papers/AIIDE/2008/AIIDE08-036.pdf" rel="noreferrer">Monte-Carlo Tree Search: A New Framework for Game AI</a> (2008) says</p>
  </li>
  </ul>
  <blockquote>
  <p>The game action finally executed by the program in the actual game, is the one corresponding to the child which was explored the most.</p>
  </blockquote>
  <ul>
  <li><a href="http://www.incompleteideas.net/609%20dropbox/other%20readings%20and%20resources/MCTS-survey.pdf" rel="noreferrer">A Survey of Monte Carlo Tree Search Methods</a> (2012) says</li>
  </ul>
  <blockquote>
  <p>The basic algorithm involves iteratively building a search tree until some predefined computational budget – typically a time, memory or iteration constraint – is reached, at which point the search is halted and the best-performing root action returned.</p>
  <p>[...] The result of the overall search a(BESTCHILD(v0)) is the action a that leads to the best child of the root node v0, where the exact definition of “best” is defined by the implementation.</p>
  <p>[...] As soon as the search is interrupted or the computation budget is reached, the search terminates and an action a of the root nodet0is selected by some mechanism. Schadd [188] describes four criteria for selecting the winning action, based on the work of Chaslot et al [60]:</p>
  <ol>
  <li><p><strong>Max child</strong>: Select the root child with the highest reward.</p>
  </li>
  <li><p><strong>Robust child</strong>: Select the most visited root child.</p>
  </li>
  <li><p><strong>Max-Robust child</strong>: Select the root child with both the highest visit count and the highest reward. If none exist, then continue searching until an acceptable visit count is achieved [70].</p>
  </li>
  <li><p><strong>Secure child</strong>: Select the child which maximises a lower confidence bound.</p>
  </li>
  </ol>
  <p>[...] Once some computational budget has been reached, the algorithm terminates and returns the best move found,corresponding to the child of the root with the highest visit count.</p>
  <p>The return value of the overall search in this case is a(BESTCHILD(v0,0)) which will give the action a that leads to the child with the highest reward, since the exploration parameter c is set to 0 for this final call on the root node v0. The algorithm could instead return the action that leads to the most visited child; these two options will usually – but not always! – describe the same action. This potential discrepancy is addressed in the Go program ERICA by continuing the search if the most visited root action is not also the one with the highest reward. This improved ERICA’s winning rate against GNU GO from 47% to 55% [107].</p>
  </blockquote>
  <p>But their algorithm 2 uses the same criterion as the internal-node selection policy:</p>
  <p><span class="math-container">$$\operatorname{argmax}_{v'} \frac{Q(v')}{N(v')} + c \sqrt{\frac{2 \ln N(v)}{N(v')}}$$</span></p>
  <p>which is neither the max child nor the robust child! This situation is quite confusing, and I'm wondering which approach is nowadays considered most successful/appropriate.</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-12-03T06:35:22.680Z
Comments.Text: Best action (best Q) from root. The selection formula with UCT is used for tree expansion, Q from root used for actual gameplay
Comments.UserDisplayName: mirror2image
Tags: <algorithm><monte-carlo-tree-search><monte-carlo-methods><planning><tree-search>
Title: MCTS: How to choose the final action from the root
UserDisplayName: user76284
ThreadText: # MCTS: How to choose the final action from the root
  
  (Asked by: username_0 on 2019-12-03)
  
  When the time allotted to [Monte Carlo tree search](https://en.wikipedia.org/wiki/Monte_Carlo_tree_search#Principle_of_operation) runs out, what action should be chosen from the root?
  
  * The [original UCT paper](https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.102.1296) (2006) says `bestAction` in their algorithm.
  * [Monte-Carlo Tree Search: A New Framework for Game AI](https://www.aaai.org/Papers/AIIDE/2008/AIIDE08-036.pdf) (2008) says
  
  > The game action finally executed by the program in the actual game, is the one corresponding to the child which was explored the most.
  
  * [A Survey of Monte Carlo Tree Search Methods](http://www.incompleteideas.net/609%20dropbox/other%20readings%20and%20resources/MCTS-survey.pdf) (2012) says
  
  > The basic algorithm involves iteratively building a search tree until some predefined computational budget – typically a time, memory or iteration constraint – is reached, at which point the search is halted and the best-performing root action returned.
  >
  > [...] The result of the overall search a(BESTCHILD(v0)) is the action a that leads to the best child of the root node v0, where the exact definition of “best” is defined by the implementation.
  >
  > [...] As soon as the search is interrupted or the computation budget is reached, the search terminates and an action a of the root nodet0is selected by some mechanism. Schadd [188] describes four criteria for selecting the winning action, based on the work of Chaslot et al [60]:
  >
  > 1. **Max child**: Select the root child with the highest reward.
  > 2. **Robust child**: Select the most visited root child.
  > 3. **Max-Robust child**: Select the root child with both the highest visit count and the highest reward. If none exist, then continue searching until an acceptable visit count is achieved [70].
  > 4. **Secure child**: Select the child which maximises a lower confidence bound.
  >
  > [...] Once some computational budget has been reached, the algorithm terminates and returns the best move found,corresponding to the child of the root with the highest visit count.
  >
  > The return value of the overall search in this case is a(BESTCHILD(v0,0)) which will give the action a that leads to the child with the highest reward, since the exploration parameter c is set to 0 for this final call on the root node v0. The algorithm could instead return the action that leads to the most visited child; these two options will usually – but not always! – describe the same action. This potential discrepancy is addressed in the Go program ERICA by continuing the search if the most visited root action is not also the one with the highest reward. This improved ERICA’s winning rate against GNU GO from 47% to 55% [107].
  
  But their algorithm 2 uses the same criterion as the internal-node selection policy:
  
  $$\operatorname{argmax}\_{v'} \frac{Q(v')}{N(v')} + c \sqrt{\frac{2 \ln N(v)}{N(v')}}$$
  
  which is neither the max child nor the robust child! This situation is quite confusing, and I'm wondering which approach is nowadays considered most successful/appropriate.
  
  **Tags:** algorithm, monte-carlo-tree-search, monte-carlo-methods, planning, tree-search
  
  > **Comments:**
  > **username_1**: Best action (best Q) from root. The selection formula with UCT is used for tree expansion, Q from root used for actual gameplay  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2020-01-27. Score: 4 | Accepted answer
  
  By far the most commonly used strategy is to select the child with the **highest number of visits**. This is as described in the 2008 paper you linked. It's also what's referred to as the "robust child" in the 2012 paper you linked.
  
  In algorithm 2 of the 2012 paper, they actually use the highest average reward, which corresponds to "Max child". It looks like they're using the UCB1 policy, but they actually use a value of $0$ for the exploration parameter $c$, which makes the entire square root term drop out. This is also explained in the text at the end of your quote. But usually, a robust child / max visit count performs better.
  
  [Progressive Strategies for Monte-Carlo Tree Search](https://www.researchgate.net/publication/23751563_Progressive_Strategies_for_Monte-Carlo_Tree_Search) is a different paper from 2008, in which these strategies are experimented with a bit. Usually, they perform similarly, but a robust child tends to be the best if there is any difference at all.
  
  
  ---
  
  