蒙特卡洛树算法 (MCTS)
来源:互联网 发布:马桶品牌知乎 编辑:程序博客网 时间:2024/06/07 20:06
实质上可以看成一种增强学习
蒙特卡罗树搜索(MCTS)会逐渐的建立一颗不对称的树。可以分为四步并反复迭代:
(1)选择
从根节点,也就是要做决策的局面R出发向下选择一个最急迫需要被拓展的节点T;局面R是第一个被检查的节点,被检查的节点如果存在一个没有被评价过的招式m,那么被检查的节点在执行m后得到的新局面就是我们所需要展开的T;如果被检查的局面所有可行的招式已经都被评价过了,那么利用ucb公式得到一个拥有最大ucb值的可行招式,并且对这个招式产生的新局面再次进行检查;如果被检查的局面是一个游戏已经结束的游戏局面,那么直接执行步骤4;通过反复的进行检查,最终得到一个在树的最底层的最后一次被检查的局面c和它的一个没有被评价过的招式m,执行步骤2。
(2)拓展
对于此时存在于内存中的局面c,添加一个它的子节点。这个子节点由局面c执行招式m而得到,也就是T。
(3)模拟
从局面T出发,双方开始随机的落子。最终得到一个结果(win/lost),以此更新T节点的胜利率。
(4)反向传播
在T模拟结束之后,它的父节点c以及其所有的祖先节点依次更新胜利率。一个节点的胜利率为这个节点所有的子节点的平均胜利率。并从T开始,一直反向传播到根节点R,因此路径上所有的节点的胜利率都会被更新。
之后,重新从第一步开始,不断地进行迭代。使得添加的局面越来越多,则对于R所有的子节点的胜利率也越来越准。最后,选择胜利率最高的招式。
实际应用中,mcts还可以伴随非常多的改进。我描述的这个算法是mcts这个算法族中最出名的uct算法,现在大部分著名的ai都在这个基础上有了大量的改进了。
蒙特卡罗树搜索(MCTS)会逐渐的建立一颗不对称的树。可以分为四步并反复迭代:
(1)选择
从根节点,也就是要做决策的局面R出发向下选择一个最急迫需要被拓展的节点T;局面R是第一个被检查的节点,被检查的节点如果存在一个没有被评价过的招式m,那么被检查的节点在执行m后得到的新局面就是我们所需要展开的T;如果被检查的局面所有可行的招式已经都被评价过了,那么利用ucb公式得到一个拥有最大ucb值的可行招式,并且对这个招式产生的新局面再次进行检查;如果被检查的局面是一个游戏已经结束的游戏局面,那么直接执行步骤4;通过反复的进行检查,最终得到一个在树的最底层的最后一次被检查的局面c和它的一个没有被评价过的招式m,执行步骤2。
(2)拓展
对于此时存在于内存中的局面c,添加一个它的子节点。这个子节点由局面c执行招式m而得到,也就是T。
(3)模拟
从局面T出发,双方开始随机的落子。最终得到一个结果(win/lost),以此更新T节点的胜利率。
(4)反向传播
在T模拟结束之后,它的父节点c以及其所有的祖先节点依次更新胜利率。一个节点的胜利率为这个节点所有的子节点的平均胜利率。并从T开始,一直反向传播到根节点R,因此路径上所有的节点的胜利率都会被更新。
之后,重新从第一步开始,不断地进行迭代。使得添加的局面越来越多,则对于R所有的子节点的胜利率也越来越准。最后,选择胜利率最高的招式。
实际应用中,mcts还可以伴随非常多的改进。我描述的这个算法是mcts这个算法族中最出名的uct算法,现在大部分著名的ai都在这个基础上有了大量的改进了。
第二种解释:
传统意义上讲,算法名字带有蒙特卡洛的意思就是,他对搜索空间的搜索都是随机给一个方向的,譬如说蒙塔卡罗算圆周率,就是在一个正方形里面随机取点,看看落在圆里面有多少。蒙特卡洛光线追踪,在需要对环境积分的时候随机取角度射光线。蒙特卡洛走迷宫,随便走。
3 1
- 蒙特卡洛树算法 (MCTS)
- 蒙特卡洛树搜索(MCTS)算法
- 蒙特卡洛树搜索 MCTS
- 蒙特卡洛树搜索 MCTS
- 蒙特卡洛树搜索(MCTS)
- MCTS/MCPD
- MCTS and Alpha-Beta Search | 搜索算法对比 | 附Alpha Zero论文下载 | 解读技术
- 那么蒙特卡洛树搜索(Monte Calro Tree Search, MCTS)究竟是啥
- python实现的基于蒙特卡洛树搜索(MCTS)与UCB的五子棋游戏
- python实现的基于蒙特卡洛树搜索(MCTS)与UCT RAVE的五子棋游戏
- 28 天自制你的 AlphaGo(五):蒙特卡洛树搜索(MCTS)基础
- MCPD&MCTS认证
- Pass4Sure Microsoft MCTS
- MCTS 70-433 通过了!!
- MCTS:.NET Framework 2.0 Web应用
- Windows Server 2008 MCTS&MCITP培训
- 【MCTS】Application Development Foundation 学习笔记---
- 【MCTS】Application Development Foundation 学习笔记---
- javascript 简介和基础
- CodeForces - 630P Area of a Star (数学几何&正弦定理求面积)
- C#中Abstract和Virtual
- hdu 1158 Employment Planning【dp】
- [数据结构和算法]状态树的问题
- 蒙特卡洛树算法 (MCTS)
- 互联网时代中生存
- 如何解决delphi xe8编译大程序时内存不够的问题。
- 多个USB短信猫,启动短信猫后台程序总是有几个不能连接
- Android中使用FontAwesome
- 幸福新思维
- 史上最权威《全球O2O企业名录》:共880家
- Android中实时视频传输(摄像头实时视频传输)解决方案<二>
- jax-rpc 相关的资源