族谱网 头条 人物百科

蒙特卡洛树搜索

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:819
转发:0
评论:0
历史基于随机抽样的蒙特卡洛方法可以追溯到20世纪40年代。布鲁斯·艾布拉姆森(BruceAbramson)在他1987年的博士论文中探索了这一想法,称它“展示出了准确、精密、易估、有效可计算以及域独立的特性“。他深入试验了井字棋,然后试验了黑白棋和国际象棋的机器生成的评估函数。1992年,B·布鲁格曼(B.Brügmann)首次将其应用于对弈程序,但他的想法未获得重视。2006年堪称围棋领域蒙特卡洛革命的一年,雷米·库洛姆(RemiCoulom)描述了蒙特卡洛方法在游戏树搜索的应用并命名为蒙特卡洛树搜索。列文特·科奇什(LeventeKocsis)和乔鲍·塞派什瓦里(CsabaSzepesvári)开发了UCT算法,西尔万·热利(SylvainGelly)等人在他们的程序MoGo中实现了UCT。2008年,MoGo在九路围棋中达到段位水平,Fuego程序开始在九路围棋中战胜实力强劲的业余棋...

历史

基于随机抽样的蒙特卡洛方法可以追溯到20世纪40年代。布鲁斯·艾布拉姆森(Bruce Abramson)在他1987年的博士论文中探索了这一想法,称它“展示出了准确、精密、易估、有效可计算以及域独立的特性“。他深入试验了井字棋,然后试验了黑白棋和国际象棋的机器生成的评估函数。1992年,B·布鲁格曼(B. Brügmann)首次将其应用于对弈程序,但他的想法未获得重视。2006年堪称围棋领域蒙特卡洛革命的一年,雷米·库洛姆(Remi Coulom)描述了蒙特卡洛方法在游戏树搜索的应用并命名为蒙特卡洛树搜索。列文特·科奇什(Levente Kocsis)和乔鲍·塞派什瓦里(Csaba Szepesvári)开发了UCT算法,西尔万·热利(Sylvain Gelly)等人在他们的程序MoGo中实现了UCT。2008年,MoGo在九路围棋中达到段位水平,Fuego程序开始在九路围棋中战胜实力强劲的业余棋手。2012年1月,Zen程序在19路围棋上以3:1击败二段棋手约翰·特朗普(John Tromp)。

蒙特卡洛树搜索

自2007年以来KGS围棋服务器上最优秀围棋程序的评级。自2006年以来,最优秀的程序全部使用蒙特卡洛树搜索。

蒙特卡洛树搜索

蒙特卡洛树搜索也被用于其他棋盘游戏程序,如六贯棋、三宝棋、亚马逊棋和印度斗兽棋;即时电子游戏,如《吃豆小姐(英语:Ms. Pac-Man)》、《神鬼寓言:传奇(英语:Fable Legends)》、《罗马II:全面战争》;不确定,如斯卡特、扑克、万智牌、卡坦岛。

原理

蒙特卡洛树搜索的每个循环包括四个步骤:

选择(Selection):从根结点R开始,选择连续的子结点向下至叶子结点L。下面的结点有更多选择子结点的方法,使游戏树向最优点扩展移动,这是蒙特卡洛树搜索的本质。

扩展(Expansion):除非任意一方的输赢导致游戏结丛,否则L会创建一个或多个子结点或从结点C中选择。

仿真(Simulation):在结点C中进行随机布局。

反向传播(Backpropagation):使用布局结果更新从C到R的路径上的结点信息。

每一个节点的内容代表胜利次数/游戏次数

蒙特卡洛树搜索

蒙特卡洛树搜索的步骤

探索与利用

选择子结点的主要困难是在较高平均胜率的移动后对深层次变型的利用和对少数模拟移动的探索二者中保持某种平衡。第一个在游戏中平衡利用与探索的公式被称为UCT(Upper Confidence Bound 1 applied to trees,上限置信区间算法 ),由匈牙利国家科学院计算机与自动化研究所高级研究员列文特·科奇什与阿尔伯塔大学全职教授乔鲍·塞派什瓦里提出。UCT基于奥尔(Auer)、西萨-比安奇(Cesa-Bianchi)和费舍尔(Fischer)提出的UCB1公式,并首次由马库斯等人应用于多级决策模型(具体为马尔可夫决策过程)。科奇什和塞派什瓦里建议选择游戏树中的每个结点移动,从而使表达式 wini+cln⁡ ⁡ -->tni{\displaystyle {\frac {w_{i}}{n_{i}}}+c{\sqrt {\frac {\ln t}{n_{i}}}}}具有最大值。在该式中:

wi代表第i次移动后取胜的次数;

ni代表第i次移动后仿真的次数;

c为探索参数—理论上等于√2;在实际中通常可凭经验选择;

t代表仿真总次数,等于所有ni的和。

大多数当代蒙特卡洛树搜索的实现都是基于UCT的一些变形。

参见

AlphaGo,一个同时使用蒙特卡洛树搜索和深度学习的相当于人类的围棋程序。

延伸阅读

Cameron Browne, Edward Powley, Daniel Whitehouse, Simon Lucas, Peter I. Cowling, Philipp Rohlfshagen, Stephen Tavener, Diego Perez, Spyridon Samothrakis, Simon Colton.A Survey of Monte Carlo Tree Search Methods(蒙特卡洛树搜索方法综述)(PDF). IEEE Transactions on Computational Intelligence and AI in Games. March 2012, 4 (1). 


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 二叉搜索树
二叉搜索树的查找算法在二叉搜索树b中查找x的过程为:若b是空树,则搜索失败,否则:若x等于b的根节点的数据域之值,则查找成功;否则:若x小于b的根节点的数据域之值,则搜索左子树;否则:查找右子树。/*以下代码为C++写成,下同*/StatusSearchBST(BiTreeT,KeyTypekey,BiTreef,BiTree&p){//在根指针T所指二元查找樹中递归地查找其關键字等於key的數據元素,若查找成功,//則指针p指向該數據元素節點,并返回TRUE,否則指针指向查找路徑上訪問的最後//一個節點并返回FALSE,指针f指向T的雙親,其初始调用值為NULLif(!T){//查找不成功p=f;returnfalse;}elseif(key==T->data.key){//查找成功p=T;returntrue;}elseif(keydata.key)//在左子樹中繼續查找returnS...
· 蒙特卡洛
名字起源Monte-Carlo一词源于意大利语,是为了纪念摩纳哥亲王查理三世在世时的统治,此称呼最早始于1866年。历史蒙特卡洛全景1856年,摩纳哥亲王查理三世为解决财政危机,便允许在北边的岬角上兴建一所赌场。经过一次在摩纳哥老城中失败的尝试(MuneguAutu-MonacoVille),1862年在蒙特卡洛兴建了一所简陋的赌博娱乐场所。赌场于1863年落成,但附近一直都没有人盖房屋。直至黑森州水城巴特洪堡的赌场经理FrançoisBlanc接手赌场后,他凭借个人的才能与雄厚的资金建立了一座集豪华奢侈的都市。摩纳哥亲王查理三世自1970年起,民房的建造逐年增加以解决蒙特卡洛土地面积狭小的问题。在一定程度上,该工程破坏了蒙特卡洛的景色。著名地点与建筑大赌场(GrandCasino),拥有一个大平台让游客能够远眺从摩纳哥到意大利城市Bordighera的风景。大赌场整幢建筑物包含不同的建筑...
· 搜索
搜索方式按是否使用启发式信息分启发式搜索盲目搜索按问题的表示方式分状态空间搜索与/或树搜索搜索策略宽度优先搜索宽度优先搜索算法是沿着树的宽度遍历树的节点,如果发现目标,则算法中止。属于盲目搜索。深度优先搜索深度优先搜索沿着树的最大深度方向生成节点并与目标节点进行比较,只有当上次访问的节点不是目标节点,而且没有其他节点可以生成的时候,才转到上次访问节点的父节点,然后搜索该节点的其他子节点。因此深度优先搜索也称为回溯搜索。它既不是完备的,也不是最优的。有时候,某些特定的问题会产生大量重复的节点。例如“八数码”问题就是这样的,当每次运用向上、向下、向左、向右移动空格的算符时,可能产生与已经产生的节点重复的节点。当再次搜索到这个重复节点时,由于应用的算符基本一致,还会产生重复,所以为了节约时间和存储空间,往往在深度优先算法中设立一个机制,用来删除这些重复的节点,以提高效率。迭代加深搜索(ID搜索)...
· 蒙特卡洛方法
蒙特卡洛方法的基本思想通常蒙特卡洛方法可以粗略地分成两类:一类是所求解的问题本身具有内在的随机性,借助计算机的运算能力可以直接模拟这种随机的过程。例如在核物理研究中,分析中子在反应堆中的传输过程。中子与原子核作用受到量子力学规律的制约,人们只能知道它们相互作用发生的概率,却无法准确获得中子与原子核作用时的位置以及裂变产生的新中子的行进速率和方向。科学家依据其概率进行随机抽样得到裂变位置、速度和方向,这样模拟大量中子的行为后,经过统计就能获得中子传输的范围,作为反应堆设计的依据。另一种类型是所求解问题可以转化为某种随机分布的特征数,比如随机事件出现的概率,或者随机变量的期望值。通过随机抽样的方法,以随机事件出现的频率估计其概率,或者以抽样的数字特征估算随机变量的数字特征,并将其作为问题的解。这种方法多用于求解复杂的多维积分问题。假设我们要计算一个不规则图形的面积,那么图形的不规则程度和分析性...
· 广度优先搜索
作法BFS是一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位址,彻底地搜索整张图,直到找到结果为止。BFS并不使用经验法则算法。从算法的观点,所有因为展开节点而得到的子节点都会被加进一个先进先出的队列中。一般的实现里,其邻居节点尚未被检验过的节点会被放置在一个被称为open的容器中(例如伫列或是链表),而被检验过的节点则被放置在被称为closed的容器中。(open-closed表)实现方法首先将根节点放入队列中。从队列中取出第一个节点,并检验它是否为目标。若队列为空,表示整张图都检查过了——亦即图中没有欲搜寻的目标。结束搜寻并回传“找不到目标”。重复步骤2。C的实现/***ADDQ(Q,p)-pPUSH入Q*DELQ(Q)-POPQ並返回Q頂*FIRSTADJ(G,v)-v的第一個鄰接點,找不到則返回-1*NEXTADJ(G,v)-v的下...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信