人工智能技术导论——博弈树搜索

我在之前整理过一篇博客关于博弈论和纳什均衡的几个例子https://www.cnblogs.com/wkfvawl/p/11725263.html

这里来介绍博弈树搜索。

一、博弈树的概念

在博弈过程中, 任何一方都希望自己取得胜利。因此,当某一方当前有多个行动方案可供选择时, 他总是挑选对自己最为有利而对对方最为不利的那个行动方案。 此时,如果我们站在A方的立场上,则可供A方选择的若干行动方案之间是“或”关系, 因为主动权操在A方手里,他或者选择这个行动方案, 或者选择另一个行动方案, 完全由A方自己决定。当A方选取任一方案走了一步后,B方也有若干个可供选择的行动方案, 此时这些行动方案对A方来说它们之间则是“与”关系,因为这时主动权操在B方手里,这些可供选择的行动方案中的任何一个都可能被B方选中, A方必须应付每一种情况的发生。
       这样,如果站在某一方(如A方,即在A要取胜的意义下), 把上述博弈过程用图表示出来, 则得到的是一棵“与或树”。 描述博弈过程的与或树称为博弈树,它有如下特点:  
     (1) 博弈的初始格局是初始节点。  
     (2) 在博弈树中, “或”节点和“与”节点是逐层交替出现的。自己一方扩展的节点之间是“或”关系, 对方扩展的节点之间是“与”关系。双方轮流地扩展节点。  
     (3) 所有自己一方获胜的终局都是本原问题, 相应的节点是可解节点;所有使对方获胜的终局都是不可解节点。

二、极小极大值分析法

在二人博弈问题中,为了从众多可供选择的行动方案中选出一个对自己最为有利的行动方案, 就需要对当前的情况以及将要发生的情况进行分析,从中选出最优的走步。最常使用的分析方法是极小极大分析法。 其基本思想是:  
       (1) 设博弈的双方中一方为A,另一方为B。然后为其中的一方(例如A)寻找一个最优行动方案。
  (2) 为了找到当前的最优行动方案, 需要对各个可能的方案所产生的后果进行比较。具体地说, 就是要考虑每一方案实施后对方可能采取的所有行动, 并计算可能的得分。
       (3) 为计算得分,需要根据问题的特性信息定义一个估价函数, 用来估算当前博弈树端节点的得分。此时估算出来的得分称为静态估值。  
       (4) 当端节点的估值计算出来后, 再推算出父节点的得分, 推算的方法是:对“或”节点, 选其子节点中一个最大的得分作为父节点的得分,这是为了使自己在可供选择的方案中选一个对自己最有利的方案;对“与”节点, 选其子节点中一个最小的得分作为父节点的得分,这是为了立足于最坏的情况这样计算出的父节点的得分称为倒推值。  
      (5) 如果一个行动方案能获得较大的倒推值, 则它就是当前最好的行动方案。

倒推值的计算

在博弈问题中,每一个格局可供选择的行动方案都有很多, 因此会生成十分庞大的博弈树。据统计,西洋跳棋完整的博弈树约有1040个节点。试图利用完整的博弈树来进行极小极大分析是困难的。可行的办法是只生成一定深度的博弈树, 然后进行极小极大分析,找出当前最好的行动方案。在此之后, 再在已选定的分支上扩展一定深度, 再选最好的行动方案。如此进行下去, 直到取得胜败的结果为止。至于每次生成博弈树的深度, 当然是越大越好, 但由于受到计算机存储空间的限制, 只好根据实际情况而定。

例 一字棋游戏。设有如图(a)所示的九个空格, 由A, B二人对弈, 轮到谁走棋谁就往空格上放一只自己的棋子, 谁先使自己的棋子构成“三子成一线”谁就取得了胜利。
 

一字棋

设A的棋子用“a”表示, B的棋子用“b”表示。为了不致于生成太大的博弈树,假设每次仅扩展两层。估价函数定义如下:       
     设棋局为P,估价函数为e(P)。    
     (1) 若P是A必胜的棋局, 则e(P)=+∞。  
     (2) 若P是B必胜的棋局, 则e(P)=-∞。  
     (3) 若P是胜负未定的棋局, 则 e(P)=e(+P)-e(-P)
其中e(+P)表示棋局P上有可能使a成为三子成一线的数目

e(-P)表示棋局P上有可能使b成为三子成一线的数目

例如, 对于图(b)所示的棋局, 则

按照棋盘上红色连线安放棋子a使得三子成一线,共6条连线。

按照棋盘上蓝色连线安放棋子b使得三子成一线,共4条连线。
e(P)=6-4=2

另外,我们假定具有对称性的两个棋局算作一个棋局。还假定A先走棋, 我们站在A的立场上。  
下图给出了A的第一着走棋生成的博弈树。图中节点旁的数字分别表示相应节点的静态估值或倒推值。由图可以看出, 对于A来说最好的一着棋是S3,因为S3比S1和S2有较大的倒推值。

一字棋极小极大搜索

在A走S3这一着棋后,B的最优选择是S4, 因为这一着棋的静态估值较小,对A不利。不管B选择S4或S5,A都要再次运用极小极大分析法产生深度为2的博弈树,以决定下一步应该如何走棋, 其过程与上面类似, 不再重复。

三、α-β剪枝技术

上述的极小极大分析法, 实际是先生成一棵博弈树,然后再计算其倒推值。这样做的缺点是效率较低。于是,人们又在极小极大分析法的基础上,提出了α-β剪枝技术。
     这一技术的基本思想是,边生成博弈树边计算评估各节点的倒推值, 并且根据评估出的倒推值范围,及时停止扩展那些已无必要再扩展的子节点, 即相当于剪去了博弈树上的一些分枝, 从而节约了机器开销, 提高了搜索效率。具体的剪枝方法如下:

(1) 对于一个与节点MIN,
若能估计出其倒推值的上确界β,并且这个β值不大于MIN的父节点(一定是或节点)的估计倒推值的下确界α,即α≥β,
则就不必再扩展该MIN节点的其余子节点了(因为这些节点的估值对MIN父节点的倒推值已无任何影响了)。这一过程称为α剪枝。
  (2)
对于一个或节点MAX, 若能估计出其倒推值的下确界α, 并且这个α值不小于MAX的父节点(一定是与节点)的估计倒推值的上确界β, 
即α≥β,则就不必再扩展该MAX节点的其余子节点了(因为这些节点的估值对MAX父节点的倒推值已无任何影响了)。 这一过程称为β剪枝。

认真品味上面的两句规则,下面给出一个具体的 α-β剪枝的实例。

使用ScreenToGif 截的PPT图,关于ScreenToGif的使用说明参见https://www.cnblogs.com/wkfvawl/p/11625823.html

这里来说一下剪枝过程,F下的第一个节点是K,其值为4,这时作为MIN节点的F上确界β为4,F下的第二个节点L和第三个节点M的值都拿来比较,但都大于4,所以F节点MIN值还是4。这时MAX节点C的下确界α为4,并将α传递给MIN节点G。

G下的第一个节点为1,此时作为MIN节点G的上确界β为1,留意到此时 G的 α=4 > β,所以无需再探索 G的剩余子节点,把未探索的子节点通过α剪枝剪掉。

这里C的父节点A是一个MIN节点,A的估计上确界β便是4。接着我们对A的右子树进行查找,并将β传递下去。

对于MIN节点H,其下的第一个子节点P值为5,大于4,因而接着比较第二个子节点Q值为8,也大于4,因而H节点MIN值的上确界β便是5,P的父节点D是一个MAX节点,因而此时D的下确界α值为5。

由于D的父节点A是一个MIN节点,A的估计倒推值的上确界β为4,小于D的下确界5,因而就不必去扩展MAX节点D的其他子节点了,进行了β剪枝。

这是就可以确定节点A的父亲节点S0,其为MAX节点的下确界α为4,这就对S0右子树进行查找。并直接将下确解α沿着S0->B->E->I传递,深入到I。

对于MIN节点I,其下的第一个子节点R值为0,这时作为MIN节点I的上确界β为0,留意到此时 I 的 α=4 > β,所以无需再探索 I 的剩余子节点,把未探索的子节点通过α剪枝剪掉。

I的父节点是一个MAX节点,更新其父节点E的下确界α为0。将E的α传递给J。

这时对于MIN节点J,其下的第一个子节点S值为-6,这时作为MIN节点I的上确界β为-6,留意到此时 J 的 α=0 > β,所以无需再探索 J的剩余子节点,把未探索的子节点通过α剪枝剪掉。

这时确定了E,E的父亲节点B是一个MIN节点,通过E其上确界β更新为0,但E的父亲节点的α为4,α=4 > β,所以无需再探索 B 的剩余子节点,把未探索的子节点通过α剪枝剪掉。

最终确定S0,搜索完成。

关于α-β剪枝的过程,还想要了解一个,可以参考这篇博客

https://www.7forz.com/3211/

http://web.cs.ucla.edu/~rosen/161/notes/alphabeta.html

原文地址:https://www.cnblogs.com/wkfvawl/p/12066647.html

时间: 2024-07-29 20:27:05

人工智能技术导论——博弈树搜索的相关文章

人工智能技术导论——逻辑程序设计语言PROLOG

最近在复习人工智能导论,里面介绍了一种逻辑关系语言PROLOG,但这本书里面用到的编译器是Turbo PROLOG,这个编译器早就被淘汰了,我后来找的了它的升级版Visual PROLOG,但一些语法也发生了变化,现在好像用起来不错的是SWI PROLOG ,这里处于复习的目的,把书上关于PROLOG的相关内容保存到这里,下面一些代码我尽可能的使用SWI PROLOG跑一跑,学习一下. 摘自<人工智能技术简明教程>–廉师友 编著 Prolog 概念 Prolog(PROgramming in

人工智能技术导论——机器学习与知识发现

一.机器学习概述 1.机器学习的概念 心理学中对学习的解释是: 学习是指(人或动物)依靠经验的获得而使行为持久变化的过程.人工智能和机器学习领域的几位著名学者也对学习提出了各自的说法. 如Simon认为:如果一个系统能够通过执行某种过程而改进它的性能, 这就是学习.Minsky认为: 学习是在人们头脑中(心理内部)进行有用的变化.Tom M. Mitchell在<机器学习>一书中对学习的定义是: 对于某类任务T和性能度P, 如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善, 那么,

人工智能技术

丁选 2016年,Alpha Go战胜韩国围棋选手李世乭再次引爆了全球对于人工智能的讨论和关注.计算机视觉作为人工智能技术的基础,受到深度学习的成功影响在近几年内取得了突破性的进展,正在成为影响行业发展的下一个引擎. 巨头纷纷布局,市场也吸引了越来越多的人才创业参与其中.计算机视觉正在成为人工智能最火热的细分领域之一. 本报告将针对计算机视觉技术发展的关键节点.市场现状及应用场景进行分析和研究. 一.技术发展及市场现状分析 1.人工智能是一场从终极概念到分级落地的技术演变 2.人工智能所依赖的基

【转】计算机人工智能技术纵览---入门部分

转自人工智能贴吧 http://tieba.baidu.com/p/2707182053?see_lz=1  我觉得讲的非常的通俗. ------------------------------------------------------------------------------------------------------------- 本文尽量用简单的例子,易懂的语言来综述一些人工智能的主流技术,其实很多看似高深复杂的技术原理,都是可以用一句话直接点透核心原理. 请注意:本文有的

【转】游戏编程中的人工智能技术--神经网络

原文:http://blog.csdn.net/ecitnet/article/details/1799444 游戏编程中的人工智能技术. > .  (连载之一) 用平常语言介绍神经网络(Neural Networks in Plain English) 因为我们没有很好了解大脑,我们经常试图用最新的技术作为一种模型来解释它.在我童年的时候,我们都坚信大脑是一部电话交换机.(否 则它还能是什么呢?)我当时还看到英国著名神经学家谢林顿把大脑的工作挺有趣地比作一部电报机.更早些时候,弗罗伊德经常把大

“人工智能技术驱动下的机遇与挑战”技术分享会圆满成功!

2018年1月31日下午,在中科院计算所一层礼堂举行"大数据和人工智能技术驱动下的机遇与挑战"的技术分享会. 本次会议邀请了培训中心副校长谢新华老师,以及张云泉.彭晓辉.赵屹博士等中科院计算所在大数据.人工智能方向走在尖端的科技工作者,讲述当前流行的创新发展.人工智能.深度学习.物端计算系统.精准医学落地应用等话题.会议首先由中科院计算所党委委员.教育处处长李琳老师,培训中心王健华校长致欢迎辞. 谢新华老师讲的是"创新思维与知识体系",提到如何学习与提升创新能力,重

冷静审视人工智能技术的本质 | 一图看懂新一代人工智能知识体系大全

冷静审视人工智能技术的本质 吴妙芸 来源:图灵人工智能(ID:TuringAI01) 人工智能的发展离不开基础支持层和技术层,基础支持层包括大数据.计算力和算法:技术层包括计算机视觉.语音识别和自然语言处理.在过去的2016年人工智能风风火火了一把,到目前为止,还在大力向前发展,研究机构.企业.投资机构和政府都对人工智能投入了很多关注,并陆续出台了一些政策.人工智能的技术本质是什么,本文会详细分析. 总览人工智能技术图谱 基础支撑层的算法创新发生在20世纪80年代末,是大数据和计算力将人工智能推

人工智能技术在中小学课堂中的应用

201709国务院颁发人工智能技术在教育的新规划. 在学科素养比较重视和比较培养素质化教育的学习很早就开始进行信息化教学的准备了. 比如大数据与人工智能发展规划等. http://sh5.hubpd.com/aizhibo/ 全球人工智能与教育大数据峰会. 以后与人工智能课堂相关的信息都会汇总在此. 自己目前在此方面的学习比较少. 原文地址:https://www.cnblogs.com/hxh88/p/9349820.html

十大成长性人工智能技术!

https://mp.weixin.qq.com/s/xvr0yUIDbS2muVp_LGGX0g 为加强对新一代人工智能技术的前瞻预判,把握全球技术创新动态及发展趋势,中国电子学会近期走访人工智能相关企业及高校院所专家,遴选发布了十项最具特色的成长性技术,主要内容如下: --对抗性神经网络.由一个不断产生数据的神经网络模块与一个持续判别所产生数据是否真实的神经网络模块组成的神经网络架构,创造出近似真实的原创图像.声音和文本数据,有望大幅提升机器翻译.人脸识别.信息检索的精度和准确性,未来将应用