Answers.Body: <p>In a <strong>MCTS</strong> (Monte Carlo tree search) the resulting tree is expanded by two policies:</p>
  <ul>
  <li><em>tree-policy</em> (selects next and unknown child nodes by a exploration-exploitation tradeoff)</li>
  <li><em>default policy</em> (selects known child nodes till terminal state e.g. with random uniform moves).</li>
  </ul>
  <p>The term terminal state is often considered to be the end a tree. If you consider designing an agent with MCTS that is able to play chess, then the terminal state would a win, lose or draw. One game like this is called a <em>playout</em> (sometimes also <em>roll-out</em>). The main concept of MCTS relies on repeating this playouts many times and updating the tree according to the scores. The tree is built up in an incremental and asymmetric manner.</p>
  <p><a href="https://i.sstatic.net/DsSXt.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/DsSXt.png" alt="Asymmetric tree growth" /></a></p>
  <p>Imagine designing a chess-playing agent. The tree, or rather how the tree is built up can be like this:</p>
  <ul>
  <li><strong>Root Node</strong>: Starting with an empty board</li>
  <li><strong>Child Nodes</strong>: Board configuration after each move (opponent and agent)</li>
  <li><strong>Selection of Child Nodes</strong>: If the opponent is a human, then the selection of child nodes is performed by his/her own strategy. The agent is selecting moves according to a policy.</li>
  <li><strong>Terminal State</strong>: Score of the game (win/lose/draw).</li>
  </ul>
  <p>So after each move (opponent or agent) the current child node/root node is expanded by the resulting child nodes.</p>
  <p>If you want to dive deeper into MCTS, then I would recommend to take a look at <a href="https://ieeexplore.ieee.org/document/6145622" rel="nofollow noreferrer">A Survey of Monte Carlo Tree Search Methods</a>.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-10-29T19:05:18.563Z
Answers.Text: Some small corrections: default policy does not really select nodes, but states (or even more accurately, actions); typically no nodes are added to the tree for the states encountered during rollout (except for one Expansion at start of rollout/end of Selection). If the opponent is a human, of course the MCTS during its tree search still makes decisions "for the human" while traversing the tree. Just in the "real game" you need to wait for the human, but in the search tree process you don't. In Chess, the initial state (root node) is not an empty board :)
Answers.UserDisplayName: Dennis Soemers
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-09-29T09:26:14.307Z
Answers.LastActivityDate: 2020-09-29T09:26:14.307Z
Answers.UserDisplayName: maven
Body: <p>I have come across the Monte Carlo tree search (MCTS) algorithm, but I can't find what the tree should look like. For example, does it still represent a minimax process, i.e. player 1 from the root has its child nodes as probabilities of moves, then from those child nodes, the next move is player 2, etc.? Is this how the tree looks like, so when we backpropagate we update only the winning player nodes?</p>
  
Tags: <search><monte-carlo-tree-search><minimax>
Title: How does the MCTS tree look like?
UserDisplayName: Fraser Gilbert
ThreadText: # How does the MCTS tree look like?
  
  (Asked by: username_0 on 2020-09-28)
  
  I have come across the Monte Carlo tree search (MCTS) algorithm, but I can't find what the tree should look like. For example, does it still represent a minimax process, i.e. player 1 from the root has its child nodes as probabilities of moves, then from those child nodes, the next move is player 2, etc.? Is this how the tree looks like, so when we backpropagate we update only the winning player nodes?
  
  **Tags:** search, monte-carlo-tree-search, minimax
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2020-09-29. Score: 2
  
  In a **MCTS** (Monte Carlo tree search) the resulting tree is expanded by two policies:
  
  * *tree-policy* (selects next and unknown child nodes by a exploration-exploitation tradeoff)
  * *default policy* (selects known child nodes till terminal state e.g. with random uniform moves).
  
  The term terminal state is often considered to be the end a tree. If you consider designing an agent with MCTS that is able to play chess, then the terminal state would a win, lose or draw. One game like this is called a *playout* (sometimes also *roll-out*). The main concept of MCTS relies on repeating this playouts many times and updating the tree according to the scores. The tree is built up in an incremental and asymmetric manner.
  
  [![Asymmetric tree growth](https://i.sstatic.net/DsSXt.png)](https://i.sstatic.net/DsSXt.png)
  
  Imagine designing a chess-playing agent. The tree, or rather how the tree is built up can be like this:
  
  * **Root Node**: Starting with an empty board
  * **Child Nodes**: Board configuration after each move (opponent and agent)
  * **Selection of Child Nodes**: If the opponent is a human, then the selection of child nodes is performed by his/her own strategy. The agent is selecting moves according to a policy.
  * **Terminal State**: Score of the game (win/lose/draw).
  
  So after each move (opponent or agent) the current child node/root node is expanded by the resulting child nodes.
  
  If you want to dive deeper into MCTS, then I would recommend to take a look at [A Survey of Monte Carlo Tree Search Methods](https://ieeexplore.ieee.org/document/6145622).
  
  > **Comments:**
  > **username_2**: Some small corrections: default policy does not really select nodes, but states (or even more accurately, actions); typically no nodes are added to the tree for the states encountered during rollout (except for one Expansion at start of rollout/end of Selection). If the opponent is a human, of course the MCTS during its tree search still makes decisions "for the human" while traversing the tree. Just in the "real game" you need to wait for the human, but in the search tree process you don't. In Chess, the initial state (root node) is not an empty board :)  
  
  ---
  
  