This is the Monte Carlo tree search module, which explore and expand the game tree in a monte-carlo fashion.
- Tackle hidden information using information set. Method proposed in the paper Information Set Monte Carlo Tree Search
- Tackle randomness by creating redirect nodes
- Share identical game state in one single tree node
- For example, if two actions can be swapped without any notable difference, the corresponding two tree nodes can in fact map to the one single node.
- Parallel Monte Carlo tree search
The MCTS algorithm are separated from different application-specific settings/configurations. The application-specific settings are collected in the config header file, and all related classes are collected in the policy namespace.
- Support multi-thread environment
- Support virtual loss to improve multi-thread performance