版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
作者朱福喜朱三元第4章
博弈与搜索
作者朱福喜朱三元博弈虽然自古就是人与人的对弈,但自从有了计算机以后,人们开始就有用计算机下棋的想法,早在60年代就已经出现若干博弈程序,并达到较高的水平,现已出现计算机博弈程序能够与人类博弈大师抗衡的局面。举世瞻目的人机对弈是1997年IBM公司编制的深蓝(deepblue)计算机与国际象棋大师卡斯帕罗夫对弈,取得了三胜二和一负的好成绩。博弈的研究不断为人工智能提出新的课题,可以说博弈是人工智能研究的起源和动力之一。图4.1许峰雄博士代表IBM与国际象棋冠军卡斯帕罗夫对弈4.1概述
博弈一向被认为是富有挑战性的智力的游戏,有着难以言语的魅力。博弈问题常与对策问题联系在一起。对策论(GameTheory)用数字方法研究对策问题。一般将对策问题分为零和对策和非零和对策。最典型的零和对策问题是我国古代齐王与田忌赛马的问题。该问题是齐王与田忌都有可分为上、中、下三匹马。齐王的上马、中马、下马都比田忌相应的上马、中马、下马好,但田忌的上马比齐王的中马好,田忌的中马比齐王的下马好,聪明的田忌采取了下述对策后一举取胜:
作者朱福喜朱三元非零和对策的例子有:囚犯难题(Theprisonerdilemma)。该问题是有两个嫌疑犯A和B,暂时还没有获得他们犯罪的确定的证据。现对他们判刑的规则是:
作者朱福喜朱三元博弈问题对人的深层次的知识研究提出了严峻的挑战。如何表示博弈问题的状态,博弈过程和博弈取胜的知识,这是目前人类仍在探讨之中的问题。要提高博弈问题求解程序的效率,应作到如下两点:改进生成过程,使之只生成好的走步,如按棋谱的方法生成下一步;改进测试过程,使最好的步骤能够及时被确认。
作者朱福喜朱三元
要达到上述目的有效途径是使用启发式方法引导搜索过程,使其只生成可能赢的走步。而这样的博弈程序应具备:一个好的(即只产生可能赢棋步骤的)生成过程。一个好的静态估计函数。下面介绍博弈中两种最基本的搜索方法。4.2极小极大搜索过程4.2.1极小极大搜索的思想极小极大搜索策略是考虑双方对弈若干步之后,从可能的步中选一步相对好的走法来走,即在有限的搜索深度范围内进行求解。为此要定义一个静态估计函数f,以便对棋局的势态作出优劣估计。这个函数可根据棋局优劣势态的特征来定义。这里规定:
MAX代表程序方
MIN代表对手方
P代表一个棋局(即一个状态)
f(P)的大小由棋局势态的优劣来决定:
有利于MAX的势态,f(P)取正值有利于MIN的势态,f(P)取负值势态均衡,f(P)取零使用静态函数进行估计必须以下述两个条件为前提:(1)双方都知道各自走到什么程度、下一步可能做什么。(2)不考虑偶然因数影响。在这个前提下,博弈双方必须考虑:(1)如何产生一个最好的走步。(2)如何改进测试方法,能尽快搜索到最好的走步。MINMAX的基本思想是:(1)当轮到MIN走步的结点时,MAX应考虑最坏的情况(因此,f(p)取极小值)。(2)当轮到MAX走步的结点时,MAX应考虑最好的情况(因此,f(p)取极大值)。(3)当评价往回倒推时,相应于两位棋手的对抗策略,不同层上交替的使用(1)、(2)两种方法向上传递倒推值。4.2.2极小极大搜索算法极小极大过程的算法如下:1.T:=(s,MAX),OPEN:=(s),CLOSED:=();{开始时树由初始结点构成,OPEN表只含有s.}2.LOOP1:IFOPEN=()THENGOLOOP2;3.n:=FIRST(OPEN),REMOVE(n,OPEN),ADD_TO_LAST(n,CLOSED);//约定加到尾部
作者朱福喜朱三元4.IFn可直接判定为赢、输或平局
THENf(n):=∞∨-∞∨0,GOLOOP1ELSEEXPAND(n)→ni,ADD({ni},T)IFd({n})<kTHENADD_TO_LAST({ni},OPEN),GOLOOP1ELSE计算f(ni),GOLOOP1;{n达到深度k,计算各端结点f值}5.LOOP2:IFCLOSED=NILTHENGOLOOP3ELSEnp:=LAST(CLOSED);
作者朱福喜朱三元6.IF(np∈MAX)∧(f(nc∈iMIN)有值)(其中nci为np的下一层节点)
THENf(np):=MAX{f(nci)},REMOVE(np,CLOSED);{若MAX所有子节点均有值,则该MAX取其极大值。}IF(np∈MIN)∧(f(nci∈MAX)有值)
THENf(np):=MIN{f(nci)},REMOVE(np,CLOSED);{若MIN所有子节点均有值,则该MIN取其极小值。}
作者朱福喜朱三元7.GOLOOP2;8.LOOP3:IFf(s)=NILTHENEXIT(END∨Mark(Move,T));{s有值,或结束或标记走步}其中ADD_TO_LAST约定加入节点到表的尾部,END表示失败或成功或平局退出,MARK标记一个走步。4.2.3算法分析与举例
该算法分三个阶段进行。第一阶段为步骤2-4,使用宽度优先法生成规定深度的全部博弈树,然后对其所有端节点计算其静态估计函数值。第二阶段为步骤5-7是从底向上逐级求非终结点的倒推估计值,直到求出初始节点的倒推值f(s)为止。f(s)的值应为maxmin….{f(ni1i2i3…ik)},其中nik表示深度为k的端节点。第三阶段,根据f(s)可选的相对好的走步,由Mark(Move,T)标记走步。例4.1在九宫格棋盘上两位选手轮流在棋盘上摆各自的棋子,每次一枚,谁先取得三子一线的结果就取胜。设程序方MAX的棋子用X表示对手方MIN的棋子用O表示.
作者朱福喜朱三元静态估计函数为:+∞
当p为MAX赢f(p)=-∞
当p为MIN赢全部空格放X后三字成一线的总数)
-(全部空格放O后三字成一线的总数)例如,P的格局为:
则可得f(p)=5–6=-1。现在考虑走两步的搜索过程,即算法中K=2。利用棋盘对称性条件,则MAX走第一步棋调用算法产生搜索树如图所示。
作者朱福喜朱三元
作者朱福喜朱三元
作者朱福喜朱三元
作者朱福喜朱三元4.3α-β剪枝算法
作者朱福喜朱三元
这时其中一个MIN节点要生成A,B,C,D四个节点,然后逐个计算其静态估计值,最后求得倒推值-∞,把它赋给这个结点。其实生成节点A后,如果马上进行静态估计,得知F(A)=-∞之后,就可以断定生成B,C,D以及进行估计是多余的,该MIN节点的倒推值一定是-∞。
作者朱福喜朱三元α-β剪枝法就是把生成后继和倒推值估计结合起来,及时剪掉一些无用分枝,以此来提高算法的效率。α-β剪枝法,采用有界深度优先策略进行搜索,当生成节点达到规定的深度时,就立即进行静态估计,而一旦某个非端节点有条件确定倒推值时,就立即赋值。当生成到节点6后,节点1的倒推值可确定为-1。这时对于初始节点S来说,虽然其他子节点尚未生成,但由于S属于极大层,所以可以推断它的倒推值不会小于-1。我们定义极大层的这个下界值为α。因此S的α=-1。
S的α值为-1,说明的S倒推值不会比-1更小,但会不会比-1更大,还取决于其他后继节点倒推值。我们继续生成搜索树。当第8个节点生成后,其估计值为-1,就可以断定节点7的倒推值不可能大于-1。定义极小层的这个上界值为β。因此现在可以确定节点7的β=-1。有了极小层的β值,容易发现α≥β时,节点7的其他子节点不必生成,因为S的极大值不可能比这个β值小,再生成无疑是多余的,因此可以进行剪枝。只要在搜索过程中记住倒推值的上下界并进行比较,当α≥β时就可以实现修剪操作。α,β值还可以随时修正,但极大层的α倒推值下界永不下降,因为实际的倒推值取后继节点最终确定的倒推值中的最大者。同理,极小层的倒推值上界β永不上升,因为实际倒推值取后继节点最终确定的倒推值中的最小者。
作者朱福喜朱三元α-β过程的剪枝规则(1)α剪枝:若任一极小值层节点的β值小于或等于它任一先辈极大值层节点的α值,即α(先辈层)≥β(后继层),则可中止该极小值层中这个节点以下的搜索。该节点最终的倒推值就确定为这个β值。(2)β剪枝:若任一极大值层节点的α值大于或等于它任一先辈极小值层节点的β值,即α(后继层)≥β(先辈层),则可以中止该极大值层中这个节点以下的搜索。这个MAX节点的最终倒推值就确定为这个α值。演示
作者朱福喜朱三元4.4AlphaGo搜索策略为什么20年前AI就已经打败国际象棋的人类世界冠军,而直到现在围棋AI才取得成功呢?其一,围棋棋盘是19
19,因此每一步可以选的合法走法远远大于象棋(围棋的分支因数BranchingFactor是250,象棋只有35),也就是说围棋搜索空间相对于国际象棋来说大得多。其二,围棋的估值函数很难设计。象棋尚能用简单的统计棋子个数和子力来推断,围棋棋局千变万化,可能看似风平浪静其实暗藏杀机。这两个主要原因导致了围棋AI长久以来一直很难有大的进展。4.4.1围棋博弈程序的发展直到2006年前后,发现了一种新的捜索策略,叫蒙特卡罗树搜索(MCTS,MonteCarloTreeSearch),它是一种最佳优先搜索(Best-firstsearch)算法,更适合于分支因子很大的博弈树搜索。前面提到,状态空间搜索都要有评估函数指导搜索。蒙特卡罗树搜索作为一种搜索策略,它的评估函数要可以达到判断盘终胜负这个最低要求,这恰好弥补了围棋程序在评估函数上的缺陷。蒙特卡罗树搜索策略加围棋专业知识的组合,经过近10年的发展,仍然无法挑战职业棋手,直到AlphaGo横空出世。AlphaGo完整继承了深蓝时代沿袭下来的“暴力搜索”算法框架,在状态空间搜索中使用的信息汇总策略也与传统蒙特卡罗树搜索完全一样,而且在其选择策略中也同样使用大量手工编写的人门级围棋专业知识。“一鸣惊人”的AlphaGo,其实是从一个基本具备一流开源围棋软件水平的传统蒙特卡罗树搜索程序改造升级而来。4.4.1围棋博弈程序的发展4.4.1围棋博弈程序的发展图4.8围棋博弈程序的分类4.4.2AlphaGo博弈树搜索算法的改进
MCTS算法大致思想可类比MinMax算法:对于给定的当前根节点(某一棋局),通过计算机模拟推演以当前根节点出发的各种可能的走法,配合高效的“剪枝”算法来控制搜索空间大小,并用演算到最后一步的结果来反过来影响当前节点下一步棋的选择。
针对围棋相对于传统棋类AI的设计难点:1)可能的走法太多(即BranchingFactor较大)导致搜索空间非常大;2)没有一个好的估值函数对进行中的围棋棋局计算一个静态得分。4.4.2AlphaGo博弈树搜索算法的改进MCTS提出解决方案:搜索空间更大,采取比Alpha-beta剪枝更激进的剪枝策略,只把有限的计算资源留给最最有希望的走法(即后面要讨论的选择(Selection)、扩展(Expansion)步骤要做的事情);对于中间棋局好坏很难估计,那就干脆模拟到最后分出胜负为止(即后面要讨论的模拟Simulation)。4.4.2AlphaGo博弈树搜索算法的改进MCTS算法的基本思想和特点是:将可能出现的状态转移过程用状态树表示;从初始状态开始重复抽样,逐步扩展树中的节点;在某个状态再次被访问时,可以利用已有的结果,提高效率;在抽样过程中可以随时得到行为的评价。4.4.3MCTS算法的四个基本步骤MCTS算法是一个多轮迭代算法,每一轮迭代都会以此经历四个阶段:选择(Selection),扩展(Expansion),模拟(Simulation)和回溯(BackPropagation)。图4.9MCTS某一时刻搜索空间的情形4.4.3MCTS算法的四个基本步骤1)选择(Selection):从根节点出发,自上而下地选择一个“最最需要展开”的子节点,比如图4.9中选择(Selection)步骤当中,沿着粗线一路走到底的最下方的叶子节点。这个节点被选中,意味着当前状态下,系统认为沿着这个节点的这条路径,最有可能取胜。2)扩展(Expansion):对于上面被选中的节点,从它的子节点中挑选出一个最有希望的子节点,将它的子节点加入到博弈树的结构中,扩展的策略主要是逐次扩展的策略,该策略并非一次性将全部的字节点添加到树结构之中,而是设置一个窗口值,随这遍历次数的增加,逐次添加子节点到对应博弈树节点之下。4.4.3MCTS算法的四个基本步骤3)模拟(Simulation):从刚刚扩展的这个节点,继续向下模拟(向下模拟也称Rollout),直到分出胜负。由于在这个阶段搜索深度需要达到最终分出胜负为止,所以会采用更加简单的搜索策略,以保证在合理时间内能够搜索到决胜节点。4)回溯(BackPropagation):既然模拟(Simulation)阶段已经搜索到最终的决胜节点,那么根据这个模拟(Simulation)的最终胜负,反过来更新祖先节点所在路径的估计值。具体来说,会更新这些节点所对应的得分,保证在下一轮迭代的时候这些节点会有更大的几率被选中。反之,如果模拟(Simulation)的最终结果是我方输,那么相应的节点都会受到惩罚,在下一轮迭代中会更小的几率被选中。4.4.3MC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025国网安徽省电力公司高校毕业生提前批招聘笔试模拟试题浓缩500题有完整答案详解
- 2026国家管网集团北方管道公司秋季高校毕业生招聘笔试参考题库(浓缩500题)附参考答案详解(精练)
- 2026国网辽宁省电力校园招聘(提前批)笔试模拟试题浓缩500题附答案详解(夺分金卷)
- 2026国家管网集团高校毕业生招聘笔试参考题库(浓缩500题)及答案详解【典优】
- 2026国网贵州省电力公司高校毕业生提前批招聘笔试模拟试题浓缩500题含答案详解(a卷)
- 2026秋季国家管网集团工程技术创新公司(国家管网集团造价管理中心)高校毕业生招聘考试参考试题(浓缩500题)及参考答案详解1套
- 国家管网集团山东分公司2026届秋季高校毕业生招聘考试备考试题(浓缩500题)及参考答案详解(巩固)
- 2026国家管网集团北方管道公司秋季高校毕业生招聘考试备考试题(浓缩500题)及答案详解(全优)
- 2025国网湖南省电力校园招聘(提前批)笔试模拟试题浓缩500题及答案详解(典优)
- 国家管网集团高校毕业生招聘考试题库(浓缩500题)附参考答案详解(基础题)
- 医院终端拜访模拟技巧与流程
- 企业资质挂靠合作协议标准模板
- 幼儿园安全工作领导小组职责细则
- 《汽车空气动力学》课件-第一章 绪 论
- 【《某教学楼建筑与结构设计》13000字(论文)】
- 教育培训机构师资力量共享协议
- 工业机器人基础中职完整全套教学课件
- 2025年港股通开通25道测试题及答案
- 化妆课件图片模板
- DB42∕T 2303-2024 森林碳汇计量监测技术规范
- DB11T 2460-2025 室内型应急避难场所平急转换技术要求 宾馆
评论
0/150
提交评论