蒙特卡洛树搜索的主要流程有


蒙特卡洛树搜索的主要流程有


蒙特卡洛树搜索的主要流程是选择、扩张、模拟、反馈 。
蒙特卡洛树搜索又称随机抽样或统计试验方法 , 属于计算数学的一个分支,它是在上世纪四十年代中期为了适应当时原子能事业的发展而发展起来的 。传统的经验方法由于不能逼近真实的物理过程,很难得到满意的结果 。
【蒙特卡洛树搜索的主要流程有】而蒙特卡洛树搜索方法由于能够真实地模拟实际物理过程 , 故解决问题与实际非常符合,可以得到很圆满的结果 。这也是以概率和统计理论方法为基础的一种计算方法 。
是使用随机数(或更常见的伪随机数)来解决很多计算问题的方法 。将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解 。
蒙特卡洛树基本原理
当所要求解的问题是某种事件出现的概率,或者是某个随机变量的期望值时,它们可以通过某种“试验”的方法,得到这种事件出现的频率,或者这个随机变数的平均值,并用它们作为问题的解 。这就是蒙特卡罗方法的基本思想 。
蒙特卡罗方法通过抓住事物运动的几何数量和几何特征,利用数学方法来加以模拟,即进行一种数字模拟实验 。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解 。
可以把蒙特卡罗解题归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量 。
蒙特卡洛树搜索(Monte Carlo tree search;简称:MCTS)是一种用于某些决策过程的启发式搜索算法,最引人注目的是在游戏中的使用 。一个主要例子是计算机围棋程序,它也用于其他棋盘游戏、即时电子游戏以及不确定性游戏 。
比如围棋,棋手需要针对盘面的情况,选择下一步走哪个位置 。这个决策过程可以认为是一个决策函数
a = f(s) ,即面对 可能的状态s,决策函数f会提供一个 行动a (落子位置) 。当然,我们希望 f 尽可能优秀,其决策a能够尽可能赢棋 。
我们也可以将f构造为一颗决策树 。从盘面初始状态开始(没有棋子),令初始状态为根节点,第一手棋有19*19=361个位置,因此根节点下面有361个子节点,第二手棋有360个可能的位置,即361个节点下 , 每个节点又有360个子节点......随着双方的落子,树的分枝越来越多 , 每个分支最终会进入叶子状态(对局结束,黑胜或白胜) 。理论上可以列举所有可能的情况 , 做一棵完整的决策树,但实际上这个数据量大到不可能实现 。因此 , 我们必须在有限的时间和空间之内,高效的构建一个子树,这是一个不完整但 尽量好的决策树。
即便只是尽量好的决策,也是很困难的 。因为一步棋的好坏通常不能立即判断出来,最终的评判要到下完的时候才能决定谁赢,况且即便赢了棋,也不代表其中每一步都是好的 。
但是,无论怎样,必须提供某种方法让AI知道一步棋好不好,也就是要提供一些启发,于是我们可以采用蒙特卡洛树搜索方法 。
刚才我们说到下一盘棋不能判定其中走法的好坏,但如果下很多次呢?比如在某个特定盘面s1情况下,进行n次对局(接着s1盘面往后走),如果统计下来黑棋赢得多,说明s1情况对黑棋比较有利 。这就是蒙特卡洛方法的思想,用大量随机事件逼近真实情况 。
虽然通过蒙特卡罗方法可以近似估计一个状态的好坏 , 但我们依然无法对太多状态进行估算 。因此,我们需要有选择的集中力量对决策树中的可能更有价值的那些节点进行估算 。这就需要使用蒙特卡洛树搜索,它提供了一种选择机制,使我们能够尽量选择决策树中比较有潜力的节点进行蒙特卡洛模拟,从而使得树可以尽量集中在“较好”的策略上进行“生长” 。

推荐阅读