Flexible implementations of Monte Carlo Tree Search (MCTS), combined with domain specific knowledge and hybridization with other search algorithms, can be powerful for finding the solutions to problems in complex planning. We introduce mctreesearch4j, an MCTS implementation written as a standard JVM library following key design principles of object oriented programming. We define key class abstractions allowing the MCTS library to flexibly adapt to any well defined Markov Decision Process or turn-based adversarial game. Furthermore, our library is designed to be modular and extensible, utilizing class inheritance and generic typing to standardize custom algorithm definitions. We demonstrate that the design of the MCTS implementation provides ease of adaptation for unique heuristics and customization across varying Markov Decision Process (MDP) domains. In addition, the implementation is reasonably performant and accurate for standard MDP's. In addition, via the implementation of mctreesearch4j, the nuances of different types of MCTS algorithms are discussed.
翻译:灵活地实施蒙特卡洛树搜索(MCTS),加上具体领域的知识和与其他搜索算法的混合,对于寻找复杂规划中的问题的解决办法可能很有帮助。我们引入了Mctresearch4j,这是Mctresearch4j,这是McTS执行的一个标准JVM图书馆,它遵循了面向目标的编程的主要设计原则。我们定义了关键阶级抽象,使McTS图书馆能够灵活地适应任何明确界定的Markov 决策程序或基于回合的对立游戏。此外,我们的图书馆的设计是模块和可扩展的,利用等级继承和通用打字使定制的用户算法定义标准化。我们证明,McTS实施的设计为不同马尔科夫决定程序领域的独特超常和定制提供了方便的适应性。此外,对标准 MDP的实施也是合理和准确的。此外,通过执行Mctreesearch4j, 讨论了不同类型 MCTS算法的细微之处。