蒙特卡罗树搜索(MCTS)

一种基于树结构的,在搜索空间巨大时仍有效的方法(区别于极大极小搜索和Alpha-Beta搜索)

1.思想:

  • 将搜索树集中在更值得搜索的分枝上,如果某个着法不错,蒙特卡罗树会将其拓展的很深,反之就不去拓展。

2.优点

  • 蒙特卡罗树搜索结合了广度优先搜索和深度优先搜索,故该方法在搜索空间很大时,仍能找到最优解。
  • 蒙特卡罗树搜索利用其快速走多子模拟可以进行一个近似的局面评估。

3.原理

  • 蒙特卡罗树搜索通过蒙特卡洛抽样方法逐步建立和拓展博弈树,在树内一般采用贪心算法,书外采用随机策略。
  • 由于结合了随机模拟的一般性和博弈树搜索的准确性,使得更有可能成为最优着法的分枝获得更多的搜索机会,在有限的时间内使用有限的资源提高搜索的准确率。

4.构建

  • 蒙特卡罗树搜索将当前待评估局面作为根节点开始不断构建搜索树。中间节点包含被访问频次和当前局面的估值信息两部分。

5.步骤

  1. 选择:从根节点开始根据树内搜索策略递归到叶子结点,选择不是游戏结果且存在未走过的后续着法的叶子;
  2. 扩展:将一个没试过的着法0/0加入博弈树中;
  3. 模拟:通过蒙特卡罗方法随机生成博弈双方的合理动作,并得到一个确定的结果;
  4. 回溯:将模拟估值得到的结果从叶子开始层层回溯到父节点,并调整父节点估值;
  5. 在规定的时间或搜索次数内重复1-4步。随着输的不断生长和回溯,可以在足够长的时间后收敛到最优解。

6.改进

  1. 改进方法:引入UCB替换选择阶段的树内搜索,形成UCT(基于博弈树的上限置信区间算法)
  2. 改进优势:区别于非好即坏,改进后的每个节点既考虑利用(深搜)又考虑探索(广搜)
  3. UCT原理:在选择一个父节点n的子节点时,计算出各个子节点ni的评估值ri,如果父节点在max层,则树内选择策略会选择评估值最大的子节点;如果父节点在min层,则树内选择策略会选择评估值最小的子节点。Ti:子节点ni的访问次数,Vi:ni的估值,c:手工设定的常数(c越大越偏向于广搜,越小越偏向于深搜)

注明:图中样例代入公式的结果为小编自己算的结果,同书中的0.62c答案不一致,故仅供参考。欢迎感兴趣的朋友为小编指点小编的运算漏洞

写在最后

本文是小编对于博弈强化学习这一部分知识体系在学习的过程中结合书中内容和自己的理解写的学习笔记,如内容有误,请大家谅解并指出,感谢您的阅读!

蒙特卡罗树搜索(MCTS)相关推荐

  1. 系统学习深度学习(四十)--基于模拟的搜索与蒙特卡罗树搜索(MCTS)

    转自:https://www.cnblogs.com/pinard/p/10470571.html 1. 基于模拟的搜索概述 什么是基于模拟的搜索呢?当然主要是两个点:一个是模拟,一个是搜索.模拟我们 ...

  2. 强化学习基础 | (18) 基于模拟的搜索与蒙特卡罗树搜索(MCTS)

    原文地址 在基于模型的强化学习与Dyna算法框架中,我们讨论基于模型的强化学习方法的基本思路,以及集合基于模型与不基于模型的强化学习框架Dyna.本文我们讨论另一种非常流行的集合基于模型与不基于模型的 ...

  3. 强化学习(十八) 基于模拟的搜索与蒙特卡罗树搜索(MCTS)

    在强化学习(十七) 基于模型的强化学习与Dyna算法框架中,我们讨论基于模型的强化学习方法的基本思路,以及集合基于模型与不基于模型的强化学习框架Dyna.本文我们讨论另一种非常流行的集合基于模型与不基 ...

  4. AlphaGo与蒙特卡罗树搜索

    导语 多臂赌博机问题 马尔可夫决策过程 MDPs 蒙特卡罗与马尔可夫决策过程 UniformBandit Algorithm Policy Rollout Algorithm Multi-Stage ...

  5. 基于蒙特卡罗树搜索的智能行程规划系统设计(二)一个简单的DEMO

    @基于蒙特卡罗树搜索的智能行程规划系统设计 基于蒙特卡罗树搜索的智能行程规划系统设计DEMO0.1 github链接.https://github.com/blue-sky-sea/MCTS-TRAV ...

  6. 面向初学者的蒙特卡洛树搜索MCTS详解及其实现

    目录 0. 序言 1. 蒙特卡洛算法的前身今世 2. 蒙特卡洛搜索算法的原理 2.1 Exploration and Exploitation(探索与利用) 2.2 Upper Confidence ...

  7. 基于蒙特卡罗树搜索的智能行程规划系统设计(一)最初的启发

    引言 如今旅游越来越受到人们的欢迎,旅游规划成为了必不可少的事情.然而,对于大多数旅游新手来说,制作一份完美的旅游规划是非常困难的事情.如果寻求专业的旅游规划师的帮助,或许能获得很好的旅游行程规划,但 ...

  8. AlphaGo背后的搜索算法:蒙特卡罗树搜索 alphago 代码

    代码: https://github.com/Rochester-NRT/AlphaGo AlphaGo背后的搜索算法:蒙特卡罗树搜索 本文首发于微信公众号号"编程派".微信搜索& ...

  9. 蒙特卡洛树搜索(MCTS)的实例代码

    另一篇博客对代码的讲解 原理: 在当前树节点(设为A)状态下,如果所有子节点都展开了,则按UCT算法选择最优节点作为当前节点,循环下去,直到该节点有未展开的子节点,则从未展开的子节点里瞎选一个并展开它 ...

最新文章

  1. haproxy,lvs keepalived || heartbeat,nginx对比
  2. 余弦函数导数推导过程_人工智能数学基础----导数
  3. java序列化_Java序列化详解
  4. 机器学习是什么——周志华
  5. 【NOI2013】向量内积【随机化】
  6. 深度学习的实用层面 —— 1.4 正则化
  7. Python数据分析模块 | pandas做数据分析(二):常用预处理操作
  8. Oracle_PL/SQL developer拷贝粘贴中文乱码问题
  9. STM8单片机低功耗---活跃停机(Active Halt)模式实现-3
  10. 图档生成bin文件_「嵌入式笔记」hex文件、bin文件、axf文件的区别?
  11. 御剑仙侠服务器维护,修仙无双御剑仙侠
  12. 计算机中级《软件设计师》考试分析
  13. 汽车电子电气(E/E)构架变革
  14. matlab 类型强制转换,关于数据类型强制转换的分析和应用
  15. 愤怒的小鸟AR 版终于正式上架!场景超逼真
  16. android 自动界面刷新,利用SwipeRefreshLayout实现类似知乎客户端的一打开界面就自动刷新的效果...
  17. KDD 2011 最佳工业论文中机器学习的实践方法-翻译
  18. Hive On Spark
  19. Lect5_Model_free_Control
  20. 网站添加头部Meta property=og协议的使用方法详解教程

热门文章

  1. Spring中的bean的配置、作用范围、生命周期详细描述及使用(XML版上篇)
  2. 双十一爆款真无线蓝牙耳机推荐,降噪音质一个不少,不得不爱的精品
  3. 笔记本键盘之起死回生
  4. Mob研究院|长租公寓洞察:蛋壳破了,自如安否?
  5. 与我们生活息息的,不止“口红效应”,还有新“吃货效应”
  6. XML外部实体注入(XXE)的原理和应用
  7. ubuntu右上角的输入法图标不见了:解决方案
  8. Java中switch的三种用法方式
  9. 查看windows是否激活
  10. 【亲身实践已解决】Windows无法启动MongoDB Server,错误:1053:服务没有及时响应启动或控制请求