Monte Carlo instead of Alpha-Beta for chess programs?
Monte-Carlo seems more akin to how humans play games.<p>Alpha-Beta pruning is the classical computer science algorithm, easier to understand, describe, and analyze... but very inhuman. Its an exhaustive search, like a breadth-first search.<p>Monte-Carlo has a lot of variations. Classically, the original MCTS algorithms for Go would play all the way to the end of a game before searching other parts of the tree. In effect, its a depth-first search, you play until you make a conclusion (potentially a &quot;bad&quot; conclusion). The reasoning is simple: on the average, a lot of &quot;samples&quot; of playthroughs will lead to a better estimate for win&#x2F;loss probability. Think of it as a random-sample of the win&#x2F;loss potential of a move.<p>EDIT: Cleaned up the above paragraph.<p>MCTS implemented by AlphaZero is different however. It uses a neural-net to find &quot;interesting&quot; positions to guide the search, and the same neural net also evaluates the position (who is winning or losing). It seems like a very good way to have a single neural network mostly perform double-duty (aside from the two output nodes). Most of the input layers &#x2F; early hidden-layers can be &quot;recycled&quot; between the &quot;explore&quot; function and the &quot;evaluation&quot; function.<p>EDIT: I don&#x27;t know how AlphaZero gets its &quot;exploration&quot; network trained up however. Its possible that the original randomized MCTS algorithm (search randomly... which btw, performs way better than you&#x27;d expect...) might be used to &quot;bootstrap&quot; the exploration weights.<p>So MCTS just naturally works with neural nets very well.