Monte Carlo Tree Search
二人博弈/完美信息/零和博弈。适用于电脑围棋程序,也用于其他棋类博弈、即时电子游戏以及不确定性博弈
开源实现
蒙特卡洛树搜索(MCTS) 是一种启发式搜索算法,用于组合博弈中对行动(move)进行规划。它结合了随机模拟的一般性和树搜索的准确性。 MCTS 受到快速关注主要是由计算机围棋程序的成功以及其在众多难题上的潜在应用所致。除了博弈之外,MCTS 理论上可以被用在以 {状态 state,行动 action} 对定义和用模拟进行预测输出结果的任何领域。最引人注目的是在博弈中的使用。一个主要例子是电脑围棋程序,也用于其他棋盘游戏、即时电子游戏以及不确定性博弈。 蒙特卡洛通过多次模拟仿真,预测出最佳策略,其最核心的部分就是搜索。搜索是对整棵博弈树的组合遍历,单次的遍历是从根结点开始,到一个未完全展开的节点。未完全展开的意思就是它至少有一个子节点未被访问,或者称作未被探索过。当遇到未被完全展开过的节点,选择它的一个未被访问的子节点做根结点,进行一次模拟。仿真的结果反向传播用于更新当前树的根结点,并更新博弈树节点的统计信息。当整棵博弈树搜索结束后,就相当于拿到了这颗博弈树的策略。
[1] Silver, David; Huang, Aja; Maddison, Chris J.; Guez, Arthur; Sifre, Laurent; Driessche, George van den; Schrittwieser, Julian; Antonoglou, Ioannis; Panneershelvam, Veda; Lanctot, Marc; Dieleman, Sander; Grewe, Dominik; Nham, John; Kalchbrenner, Nal;Sutskever, Ilya; Lillicrap, Timothy; Leach, Madeleine; Kavukcuoglu, Koray; Graepel, Thore; Hassabis, Demis(28 January 2016). "Mastering the game of Go with deep neural networks and tree search". Nature. 529 (7587): 484–489.