概述
最近学习过程中接触到蒙特卡洛树搜索这个算法,在此记录一下学习过程中参考的资料以及代码。
下面这几篇文章算是对MCTS讲解的比较详细的。第一篇有比较详细的例子说明,第二篇对于理论以及背景讲解的比较详细,第三篇提到了更加general的基于模拟的搜索。在此附上自己的一个初步理解。
最简单的决策是前向搜索,这种方法对当前的决策树进行遍历,这其实是一个mdp问题,但是当问题的规模稍微大一点的时候,遍历所有状态所需要的时间就不太能接受了。
蒙特卡洛方法在此基础上对决策树进行采样,针对当前状态下可以执行的每一个动作采样后续直到问题终点(围棋输赢)或者固定长度(路径规划问题固定时间长度的轨迹),得到之后计算每一个动作的平均收获,之后选择平均收获最大的作为当前的最优动作。
蒙特卡洛树搜索在此基础上进行改进,不需要对当前状态下可以执行的每一个动作进行采样,而是总共采样k个episode,即从当前状态采样到问题结束,在采样过程中,模拟策略分为两部分,树内策略采用的是贪婪策略或者uct,默认策略采用的是随机策略或者基于目标价值函数的策略蒙特卡洛方法所采用的策略。在进行k次搜索之后,可以认为整个树已经达到一定的最优性,这时候就可以用来进行当前最优动作的选择,即选择收获最大的动作(在围棋中可以认为是胜率最大的那个动作)。蒙特卡洛策略在线运行的一个特点是any time,在任何时候都可以停止树的搜索,进行当前状态下最优动作的输出。
X-猪:蒙特卡洛树搜索 - 以蛮力对抗智慧zhuanlan.zhihu.com最后
以上就是落寞橘子为你收集整理的蒙特卡洛树搜索_蒙特卡洛树搜索-Mento Carlo Tree Search的全部内容,希望文章能够帮你解决蒙特卡洛树搜索_蒙特卡洛树搜索-Mento Carlo Tree Search所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复