




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第5章章 对抗搜索对抗搜索中国科大中国科大 计算机学院计算机学院第第部分部分 问题求解问题求解本章内容本章内容 5.1 博弈博弈 5.2 博弈中的优化决策博弈中的优化决策 5.3 - 剪枝剪枝 5.4 不完美的实时决策不完美的实时决策 5.5 随机博弈随机博弈 5.6 部分可观察的博弈部分可观察的博弈 5.7 博弈程序发展现状博弈程序发展现状 5.8 其他途径其他途径5.1 博弈博弈 概述概述 grundy博弈博弈概述概述 在博弈问题中在博弈问题中比如说象棋比如说象棋搜索是在博弈者搜索是在博弈者双方之间进行的。双方之间进行的。 任何一方在搜索时,都必须要考虑任何一方在搜索时,都必须要考虑对方
2、对方可能要采可能要采用的走步。用的走步。 对于一个优秀的博弈者来说,应考虑的不只是对对于一个优秀的博弈者来说,应考虑的不只是对方方一步一步的走法,而是的走法,而是若干步若干步的走法。的走法。 这一过程一般来说是这一过程一般来说是动态动态进行的。在考虑若干步进行的。在考虑若干步走法以后,下了一步棋;而在对方走棋之后,还走法以后,下了一步棋;而在对方走棋之后,还要再次考虑若干步走法,决定下一步的走法,而要再次考虑若干步走法,决定下一步的走法,而不是一劳永逸,搜索一次就决定了所有的走法。不是一劳永逸,搜索一次就决定了所有的走法。概述概述本章所讲的本章所讲的博弈博弈:主要指的是类似于象棋这样的游:主要
3、指的是类似于象棋这样的游戏问题。戏问题。这类问题有以下一些特点:这类问题有以下一些特点: 双人对弈双人对弈,对垒的双方轮流走步。,对垒的双方轮流走步。 信息完备信息完备,对垒双方所得到的信息是一样的,对垒双方所得到的信息是一样的,不存在一方能看到,而另一方看不到的情况。不存在一方能看到,而另一方看不到的情况。 零和零和。即对一方有利的棋,对另一方肯定是不。即对一方有利的棋,对另一方肯定是不利的,不存在对双方均有利、或均无利的棋。利的,不存在对双方均有利、或均无利的棋。对弈的结果是一方赢,而另一方输,或者双方对弈的结果是一方赢,而另一方输,或者双方和棋。和棋。概述概述 双人完备信息博弈双人完备信
4、息博弈: 指两位选手对垒,轮流走步,这时每一方不仅都指两位选手对垒,轮流走步,这时每一方不仅都知道对方过去已经走过的棋步,而且还能估计出知道对方过去已经走过的棋步,而且还能估计出对方未来可能的走步。对方未来可能的走步。 对弈的结果是一方赢(另一方则输),或者双方对弈的结果是一方赢(另一方则输),或者双方和局。和局。 这类博弈的实例有:这类博弈的实例有:一字棋、余一棋、西洋跳棋、一字棋、余一棋、西洋跳棋、国际象棋、中国象棋、围棋等。国际象棋、中国象棋、围棋等。 机遇性博弈机遇性博弈:存在不可预测性的博弈,例如掷币等。:存在不可预测性的博弈,例如掷币等。 例如:例如:西洋双陆棋。西洋双陆棋。gru
5、ndy博弈博弈 grundy博弈博弈是一个分钱币的游戏。是一个分钱币的游戏。 有一堆数目为有一堆数目为n的钱币,由两位选手轮流进行分的钱币,由两位选手轮流进行分堆,要求每个选手每次只把其中某一堆分成数目堆,要求每个选手每次只把其中某一堆分成数目不等的两小堆。不等的两小堆。 例如,选手甲把例如,选手甲把n分成两堆后,轮到选手乙就可分成两堆后,轮到选手乙就可以挑其中一堆来分。以挑其中一堆来分。 如此进行下去,直到有一位选手先无法把钱币再如此进行下去,直到有一位选手先无法把钱币再分成不相等的两堆时就得认输。分成不相等的两堆时就得认输。 对于这样的简单博弈问题,可以生成出它的对于这样的简单博弈问题,可
6、以生成出它的状态空状态空间图间图。这样就有可能从状态空间图中找出取胜的策。这样就有可能从状态空间图中找出取胜的策略。略。 grundy博弈博弈 当初始钱币数为当初始钱币数为7时的状态空间图时的状态空间图 min代表对方走代表对方走max代表我方走代表我方走max存在完存在完全取胜的策全取胜的策略略grundy博弈博弈 搜索策略要考虑的问题:搜索策略要考虑的问题: 对对min走步后的每一个走步后的每一个max节点,必须证明节点,必须证明max对对min可能走的每一个棋局对弈后能获胜,即可能走的每一个棋局对弈后能获胜,即max必须考虑应付必须考虑应付min的所有招法,这是一个的所有招法,这是一个与
7、与的含意。的含意。 因此含有因此含有max符号的节点可看成符号的节点可看成与节点与节点。 对对max走步后的每一个走步后的每一个min节点,只须证明节点,只须证明max有一步能走赢就可以,即有一步能走赢就可以,即max只要考虑能走出一只要考虑能走出一步棋使步棋使min无法招架就成。无法招架就成。 因此含有因此含有min符号的节点可看成符号的节点可看成或节点或节点。 因此,对弈过程的搜索图就呈现出与或图表示的形因此,对弈过程的搜索图就呈现出与或图表示的形式。式。grundy博弈博弈 寻找寻找max的取胜策略的取胜策略和求和求与或图的解图与或图的解图相对应。相对应。 max要取胜,必须对所有与节点
8、取胜,但只需对要取胜,必须对所有与节点取胜,但只需对一个或节点取胜,这就是一个解图。一个或节点取胜,这就是一个解图。 因此,寻找一种取胜的策略就是搜索一个解图的问因此,寻找一种取胜的策略就是搜索一个解图的问题,题,解图解图就代表就代表一种完整的博弈策略一种完整的博弈策略。 对于对于grundy这种较简单的博弈,或者复杂博弈的残这种较简单的博弈,或者复杂博弈的残局,可以用类似于与或图的搜索技术求出解图,解局,可以用类似于与或图的搜索技术求出解图,解图代表了从开局到终局任何阶段上的弈法。图代表了从开局到终局任何阶段上的弈法。 显然这对许多博弈问题是显然这对许多博弈问题是不可能不可能实现的。例如,实
9、现的。例如,中国象棋,国际象棋和围棋等。中国象棋,国际象棋和围棋等。grundy博弈博弈 对于复杂的博弈问题,因此即使用了强有力的启发对于复杂的博弈问题,因此即使用了强有力的启发式搜索技术,也不可能使式搜索技术,也不可能使分枝分枝压到很少。压到很少。 因此,这种完全取胜策略(或和局)必须丢弃。因此,这种完全取胜策略(或和局)必须丢弃。 应当把目标确定为应当把目标确定为寻找一步好棋寻找一步好棋,等,等对手回敬对手回敬后再后再考虑寻找考虑寻找另一步好棋另一步好棋这种实际可行的实用策略。这种实际可行的实用策略。 这种情况下每一步的结束条件可根据这种情况下每一步的结束条件可根据时间限制、时间限制、存储
10、空间限制或深度限制存储空间限制或深度限制等因素加以确定。等因素加以确定。 搜索策略可采用宽度、深度或启发式方法。一个搜索策略可采用宽度、深度或启发式方法。一个阶段搜索结束后,要从搜索树中提取一个优先考阶段搜索结束后,要从搜索树中提取一个优先考虑的虑的最好的最好的走步,这就是实用策略的基本点。走步,这就是实用策略的基本点。 本章内容本章内容 5.1 博弈博弈 5.2 博弈中的优化决策博弈中的优化决策 5.3 - 剪枝剪枝 5.4 不完美的实时决策不完美的实时决策 5.5 随机博弈随机博弈 5.6 部分可观察的博弈部分可观察的博弈 5.7 博弈程序发展现状博弈程序发展现状 5.8 其他途径其他途径
11、5.2 博弈中的优化决策博弈中的优化决策 极小极大值法极小极大值法 多人游戏中的最优决策多人游戏中的最优决策极小极大搜索过程极小极大搜索过程 人类下棋的方法人类下棋的方法:实际上采用的是一种试探性的方:实际上采用的是一种试探性的方法。法。 首先假定走了一步棋,看对方会有那些应法,然首先假定走了一步棋,看对方会有那些应法,然后再根据对方的每一种应法,看我方是否有好的后再根据对方的每一种应法,看我方是否有好的回应回应. 这一过程一直进行下去,直到若干步以后,找到这一过程一直进行下去,直到若干步以后,找到了一个满意的走法为止。了一个满意的走法为止。 初学者可能只能看一、两个回合,而高手则可以初学者可
12、能只能看一、两个回合,而高手则可以看几个,甚至十几个回合。看几个,甚至十几个回合。 极小极大搜索方法:极小极大搜索方法:模拟的就是人的这样一种思维模拟的就是人的这样一种思维过程。过程。 极小极大搜索过程极小极大搜索过程 极小极大搜索策略极小极大搜索策略是考虑双方对弈若干步之后,从可能的走是考虑双方对弈若干步之后,从可能的走步中选一步相对好棋的着法来走,即在步中选一步相对好棋的着法来走,即在有限的搜索深度有限的搜索深度范围范围内进行求解。内进行求解。 定义一个定义一个静态估计函数静态估计函数f,以便对棋局的势态(节点)作出优,以便对棋局的势态(节点)作出优劣估值。劣估值。 这个函数可根据这个函数
13、可根据势态优劣特征势态优劣特征来定义(主要用于对端节点来定义(主要用于对端节点的的“价值价值”进行度量)。进行度量)。 一般规定:有利于一般规定:有利于max的势态,的势态,f(p)取正值;有利于)取正值;有利于min的势态,的势态,f(p)取负值;势均力敌的势态,)取负值;势均力敌的势态,f(p)取)取0值。值。 若若f(p),则表示,则表示max赢,若赢,若f(p),则表,则表示示min赢。赢。极小极大搜索过程极小极大搜索过程 注意:注意:不管设定的搜索深度是多少层,经过一次搜不管设定的搜索深度是多少层,经过一次搜索以后,只决定了我方一步棋的走法。索以后,只决定了我方一步棋的走法。 等到对
14、方回应一步棋之后,需要在新的棋局下重等到对方回应一步棋之后,需要在新的棋局下重新进行搜索,来决定下一步棋如何走。新进行搜索,来决定下一步棋如何走。 极小极大过程是一种极小极大过程是一种假定对手每次回应都正确假定对手每次回应都正确的情的情况下,如何从中找出对我方最有利的走步的搜索方况下,如何从中找出对我方最有利的走步的搜索方法。法。 极小极大搜索过程极小极大搜索过程 规定:规定:顶节点深度顶节点深度d0,max代表程序方,代表程序方,min代代表对手方。表对手方。max先走。先走。 例:例:一个考虑一个考虑2步棋的例子。步棋的例子。极小极大搜索过程极小极大搜索过程 规定:规定:顶节点深度顶节点深
15、度d0,max代表程序方,代表程序方,min代代表对手方。表对手方。max先走。先走。 例:例:一个考虑一个考虑2步棋的例子。步棋的例子。端节点给出的数字是用静态估计函数端节点给出的数字是用静态估计函数f(p)计算得到。)计算得到。过程过程minimax t:(s,max),),open:(s),),closed:( ););开始时树由初开始时树由初始节点构成,始节点构成,open表只含有表只含有s。 loop1: if open( )then go loop2; n:first(open),remove(n,open),add(n,closed); if n可直接判定为赢、输或平局可直接判定
16、为赢、输或平局then f(n):0,go loop1else expand(n)ni,add(ni,t) if d(ni)k then add(ni,open),),go loop1 else 计算计算f(ni ),),go loop1;ni达到深度达到深度k,计算各端节点,计算各端节点f值。值。 loop2:if closednil then go loop3else np:first(closed);); if(npmax)(f(ncimin)有值)有值)then f( np ):maxf(nci),remove(np,closed);若若max所所有子节点均有值,则该有子节点均有值,则
17、该max取其极大值。取其极大值。if ( np min)(f( nci max)有值)有值)then f( np ):minf(nci),remove(np ,closed);若若min所所有子节点均有值,则该有子节点均有值,则该min取其极小值。取其极小值。 go loop2; loop3:if f(s)nil then exit( endm(move,t) );s有值,则有值,则结束或标记走步。结束或标记走步。过程过程minimax 该算法分两个阶段进行该算法分两个阶段进行: 第一阶段第一阶段:用宽度优先法生成规定深度的用宽度优先法生成规定深度的全部博弈树,然后对其所有全部博弈树,然后对其
18、所有端节点端节点计算其静态估计算其静态估计函数值。计函数值。 第二阶段第二阶段:从底向上逐级求从底向上逐级求非端节点非端节点的倒的倒推估计值,直到求出初始节点推估计值,直到求出初始节点s的倒推值的倒推值f(s)为)为止,此时止,此时的端结点。表示深度为其中knnfsfkkliiiiiiii21212,)(minmax)( 等对手响应走步后,再以当前的状态作为起始状态等对手响应走步后,再以当前的状态作为起始状态s,重复调,重复调用该过程。用该过程。例:例:33棋盘的一字棋棋盘的一字棋 33棋盘的一字棋棋盘的一字棋:九宫格棋盘上,两位选手轮流:九宫格棋盘上,两位选手轮流在棋盘上摆各自的棋子(每次一
19、枚),谁先取得三在棋盘上摆各自的棋子(每次一枚),谁先取得三子一线的结果就取胜。子一线的结果就取胜。 假设:假设: 程序方程序方max的棋子用(的棋子用()表示;)表示; 对手对手min的棋子用(的棋子用()表示;)表示; max先走。先走。例:例:33棋盘的一字棋棋盘的一字棋 静态估计函数静态估计函数f(p)规定如下:规定如下: 若若p是是max获胜的格局,则获胜的格局,则f(p); 若若p是是min获胜的格局,则获胜的格局,则f(p); 若若p对任何一方来说都不是获胜的格局,则对任何一方来说都不是获胜的格局,则f(p)(所有空格都放上(所有空格都放上max的棋子之后,的棋子之后,max的三
20、子的三子成线(行、列、对角)的总数(所有空格都放上成线(行、列、对角)的总数(所有空格都放上min的棋子之后,的棋子之后,min的三子成线(行、列、对角)的三子成线(行、列、对角)的总数)。的总数)。例例、当、当p的格局如下时,则可得的格局如下时,则可得f(p)642。 在搜索过程中,具有在搜索过程中,具有对称性对称性的棋局认为是同一棋局,的棋局认为是同一棋局,可以大大减少搜索空间。可以大大减少搜索空间。 对称棋局的例子对称棋局的例子例:例:33棋盘的一字棋棋盘的一字棋例:例:33棋盘的一字棋棋盘的一字棋 假定假定考虑走两步的搜索过程考虑走两步的搜索过程,利用棋盘对称性的条利用棋盘对称性的条件
21、件,则第一次调用算法产生的搜索树为:,则第一次调用算法产生的搜索树为:例:例:33棋盘的一字棋棋盘的一字棋 假设假设max走完走完第一步后,第一步后,max的对手是的对手是在在之上的格之上的格子下棋子,这子下棋子,这时时max在新格在新格局下调用算法,局下调用算法,第二次产生的第二次产生的搜索树为:搜索树为:例:例:33棋盘的一字棋棋盘的一字棋 类似地,第三次的搜索树为:类似地,第三次的搜索树为:至此至此max走完走完最好的走步后,最好的走步后,不论不论min怎么走,怎么走,都无法挽回败局,都无法挽回败局,因此只好认输了。因此只好认输了。博弈中的优化决策博弈中的优化决策 极小极大值法极小极大值
22、法 多人游戏中的最优决策多人游戏中的最优决策多人游戏中的最优决策多人游戏中的最优决策 许多流行的游戏允许许多流行的游戏允许多于两个多于两个的参加者。的参加者。 如何把极小极大思想推广到多人游戏中?如何把极小极大思想推广到多人游戏中? 在两人的在两人的零和零和游戏中,由于效用值正好相反,所游戏中,由于效用值正好相反,所以二维向量可以简化为一个单一值。以二维向量可以简化为一个单一值。 每个节点上的每个节点上的单一评估值单一评估值要替换成一个要替换成一个向量向量。 例、例、一个有三个人一个有三个人a, b和和c的游戏中,每个节点都的游戏中,每个节点都与一个向量与一个向量相关联。相关联。 对于终止状态
23、,该向量给出了从每个人的角度出对于终止状态,该向量给出了从每个人的角度出发得到的状态效用值。发得到的状态效用值。多人游戏中的最优决策多人游戏中的最优决策 一般来讲,节点一般来讲,节点n的的回传值回传值是该游戏者在节点是该游戏者在节点n选择选择的的效用值最高效用值最高的后继者的效用值向量。的后继者的效用值向量。多人游戏中的最优决策多人游戏中的最优决策 多人游戏通常会涉及在游戏者之间出现多人游戏通常会涉及在游戏者之间出现正式或者非正式或者非正式联盟正式联盟的情况。的情况。 随着游戏的进行,随着游戏的进行,联盟联盟会建立或解散。会建立或解散。 在多人游戏中,对每个游戏者来说,联盟是否是在多人游戏中,
24、对每个游戏者来说,联盟是否是最优策略的一个自然结果?最优策略的一个自然结果? 违反盟约会损害社会声誉。违反盟约会损害社会声誉。 游戏者要在游戏者要在毁约得到的直接利益毁约得到的直接利益和和被认为不可信被认为不可信任带来的长期弊端任带来的长期弊端之间寻求平衡。之间寻求平衡。本章内容本章内容 5.1 博弈博弈 5.2 博弈中的优化决策博弈中的优化决策 5.3 - 剪枝剪枝 5.4 不完美的实时决策不完美的实时决策 5.5 随机博弈随机博弈 5.6 部分可观察的博弈部分可观察的博弈 5.7 博弈程序发展现状博弈程序发展现状 5.8 其他途径其他途径 - 剪枝的基本思想剪枝的基本思想 在极小极大搜索方
25、法中,由于要生成指定深度以内在极小极大搜索方法中,由于要生成指定深度以内的所有节点,其的所有节点,其节点数将随着搜索深度的增加成指节点数将随着搜索深度的增加成指数增长数增长。 这极大地限制了极小极大搜索方法的使用。这极大地限制了极小极大搜索方法的使用。 能否在搜索深度不变的情况下,利用已有的搜索信能否在搜索深度不变的情况下,利用已有的搜索信息减少生成的节点数呢?息减少生成的节点数呢? - 剪枝的基本思想剪枝的基本思想 设某博弈问题如下图所示:设某博弈问题如下图所示: - 剪枝的基本思想剪枝的基本思想 -搜索过程的基本思想搜索过程的基本思想:把:把博弈树生成博弈树生成和和倒推估值倒推估值结合起来
26、进行,再根据一定的条件判定,有结合起来进行,再根据一定的条件判定,有可能尽可能尽早修剪掉一些无用的分枝早修剪掉一些无用的分枝。 为了使生成和估值过程紧密结合,采用为了使生成和估值过程紧密结合,采用有界深度优有界深度优先策略先策略进行搜索。进行搜索。 当生成达到规定深度的节点时,就立即计算其静态当生成达到规定深度的节点时,就立即计算其静态估值函数,而一旦某个非端节点有条件确定其倒推估值函数,而一旦某个非端节点有条件确定其倒推值时就立即计算赋值。值时就立即计算赋值。 - 剪枝的基本思想剪枝的基本思想 极大值层的下界值称为极大值层的下界值称为 极小值层的上界值称为极小值层的上界值称为-搜索搜索过程的
27、剪枝规则过程的剪枝规则 剪枝:剪枝:若任一极小值层节点的若任一极小值层节点的值小于或等于它任一先辈极值小于或等于它任一先辈极大值层节点的大值层节点的值,即值,即(先辈层)(先辈层)(后继层)(后继层),则可,则可中止中止该极小值层中这个该极小值层中这个min节点以下的搜索过程。这个节点以下的搜索过程。这个min节点节点最终的倒推值就确定为这个最终的倒推值就确定为这个值。值。 剪枝:剪枝:若任一极大值层节点的若任一极大值层节点的值大于或等于它任一先辈极值大于或等于它任一先辈极小值层节点的小值层节点的值,即值,即(后继层)(后继层)(先辈层)(先辈层),则可以,则可以中中止止该极大值层中这个该极大
28、值层中这个max节点以下的搜索过程。这个节点以下的搜索过程。这个max节节点的最终倒推值就确定为这个点的最终倒推值就确定为这个值。值。 根据这些剪枝规则,很容易给出根据这些剪枝规则,很容易给出-算法描述,显然剪枝后算法描述,显然剪枝后选得的最好优先走步,其结果选得的最好优先走步,其结果与不剪枝的与不剪枝的minimax方法所得方法所得完全相同完全相同,因而,因而-过程具有较高的效率。过程具有较高的效率。-搜索过程的博弈树搜索过程的博弈树 -剪枝举例剪枝举例 约定:约定: 在搜索过程中,节点的生成次序是从上到下,从在搜索过程中,节点的生成次序是从上到下,从左到右进行的。左到右进行的。 图中带圈的
29、数字,表示节点的计算次序。在叙述图中带圈的数字,表示节点的计算次序。在叙述时,为了表达上的方便,该序号也同时表示节点。时,为了表达上的方便,该序号也同时表示节点。 当一个节点有两个以上的序号时,不同的序号,当一个节点有两个以上的序号时,不同的序号,表示的是同一个节点在不同次序下计算的结果。表示的是同一个节点在不同次序下计算的结果。-搜索过程的博弈树搜索过程的博弈树-剪枝举例剪枝举例 - 搜索过程搜索过程 在进行在进行-剪枝时,应注意以下几个问题:剪枝时,应注意以下几个问题:1. 比较都是在比较都是在极小节点极小节点和和极大节点极大节点间进行的;极大间进行的;极大节点和极大节点的比较,或者极小节
30、点和极小节节点和极大节点的比较,或者极小节点和极小节点间的比较是无意义的。点间的比较是无意义的。2. 在比较时注意是与在比较时注意是与“先辈层先辈层”节点比较,不只是节点比较,不只是与父辈节点比较。当然,这里的与父辈节点比较。当然,这里的“先辈层先辈层”节点,节点,指的是那些已经有了值的节点。指的是那些已经有了值的节点。3. 只有一个节点的值只有一个节点的值“固定固定”以后,其值才能够向以后,其值才能够向其父节点传递。其父节点传递。 - 搜索过程搜索过程在进行在进行-剪枝时,应注意以下几个问题:剪枝时,应注意以下几个问题:4. -剪枝方法搜索得到的最佳走步与极小极大方剪枝方法搜索得到的最佳走步
31、与极小极大方法得到的结果是法得到的结果是一致一致的,的,-剪枝并没有因为提剪枝并没有因为提高效率,而降低得到最佳走步的可能性。高效率,而降低得到最佳走步的可能性。5. 在实际搜索时,并在实际搜索时,并不是不是先生成指定深度的搜索先生成指定深度的搜索图,再在搜索图上进行剪枝。图,再在搜索图上进行剪枝。如果这样,就失去了如果这样,就失去了-剪枝方法的意义。剪枝方法的意义。在实际程序实现时,首先规定一个搜索深度,然后按在实际程序实现时,首先规定一个搜索深度,然后按照类似于照类似于深度优先搜索深度优先搜索的方式,生成节点。在节点的的方式,生成节点。在节点的生成过程中,如果在某一个节点处发生了剪枝,则该
32、生成过程中,如果在某一个节点处发生了剪枝,则该节点其余未生成的节点就不再生成了。节点其余未生成的节点就不再生成了。剪枝的效率问题剪枝的效率问题 若以若以最理想的情况最理想的情况进行搜索,即对进行搜索,即对min节点先扩展最低估值节点先扩展最低估值的节点(若从左向右顺序进行,则设节点估计值从左向右递的节点(若从左向右顺序进行,则设节点估计值从左向右递增排序),增排序),max先扩展最高估值的节点(设估计值从左向右先扩展最高估值的节点(设估计值从左向右递减排序),则当搜索树深度为递减排序),则当搜索树深度为d,分枝因数为,分枝因数为b时,时,若不使用若不使用-剪枝技术,搜索树的端节点数为:剪枝技术
33、,搜索树的端节点数为: 若使用若使用-剪枝技术,剪枝技术,可以证明理想条件下生成的可以证明理想条件下生成的端节点数最少,有端节点数最少,有ddbn为奇数)(为偶数)(d 1d 122/ )1(2/ )1(2/dddddbbnbn剪枝的效率问题剪枝的效率问题 比较后得出比较后得出最佳最佳-搜索技术搜索技术所生成深度为所生成深度为d处的端处的端节点数约等于不用节点数约等于不用-搜索技术所生成搜索技术所生成深度为深度为d2处处的端节点数的端节点数。 这就是说,在一般条件下使用这就是说,在一般条件下使用-搜索技术,在同搜索技术,在同样的资源限制下,可以向前考虑更多的走步数,样的资源限制下,可以向前考虑
34、更多的走步数,这样选取当前的最好优先走步,将带来更大的取这样选取当前的最好优先走步,将带来更大的取胜优势。胜优势。 其他改进方法其他改进方法 使用使用-剪枝技术,当不满足剪枝条件(即剪枝技术,当不满足剪枝条件(即不大于不大于等于等于 )时,)时,若若值比值比值大不了多少或极相近值大不了多少或极相近,这,这时也可以进行剪枝。时也可以进行剪枝。 以便有条件把搜索集中到会带来更大效果的其他以便有条件把搜索集中到会带来更大效果的其他路径上,这就是中止对效益不大的一些子树的搜路径上,这就是中止对效益不大的一些子树的搜索,以提高搜索效率。索,以提高搜索效率。 不严格限制搜索的深度,当到达深度限制时,如出不
35、严格限制搜索的深度,当到达深度限制时,如出现现博弈格局有可能发生较大变化时博弈格局有可能发生较大变化时(如出现兑子格(如出现兑子格局),则应多搜索几层,使格局进入较稳定状态后局),则应多搜索几层,使格局进入较稳定状态后再中止,这样可使倒推值计算的结果比较合理,避再中止,这样可使倒推值计算的结果比较合理,避免考虑不充分产生的影响,这是等候状态平稳后中免考虑不充分产生的影响,这是等候状态平稳后中止搜索的方法。止搜索的方法。其他改进方法其他改进方法 当算法给出所选的走步后,不马上停止搜索,而是当算法给出所选的走步后,不马上停止搜索,而是在原先估计可能的路径上再往前搜索几步在原先估计可能的路径上再往前
36、搜索几步,再次检,再次检验会不会出现意外,这是一种增添验会不会出现意外,这是一种增添辅助搜索辅助搜索的方法。的方法。 对某些博弈的对某些博弈的开局阶段开局阶段和和残局阶段残局阶段,往往总结有一,往往总结有一些固定的对弈模式。些固定的对弈模式。 因此,可以利用这些知识编好走步表,以便在开因此,可以利用这些知识编好走步表,以便在开局和结局时使用局和结局时使用查表法查表法。只是在进入中盘阶段后,。只是在进入中盘阶段后,再调用其他有效的搜索算法,来选择最优的走步。再调用其他有效的搜索算法,来选择最优的走步。 其他改进方法其他改进方法 以上这些方法还以上这些方法还不能不能全面反映人们弈棋过程实际所全面反
37、映人们弈棋过程实际所使用的一切推理技术,也未涉及棋局的表示和启发使用的一切推理技术,也未涉及棋局的表示和启发函数问题。函数问题。 高明的棋手对棋局的表示有高明的棋手对棋局的表示有独特的模式独特的模式。 博弈过程中,若在一个短时期内博弈过程中,若在一个短时期内短兵相接短兵相接,进攻和,进攻和防御的战术变化剧烈,这些情况如何在搜索策略中防御的战术变化剧烈,这些情况如何在搜索策略中加以考虑?加以考虑? 基于极小极大过程的一些方法都基于极小极大过程的一些方法都设想对手走的总是设想对手走的总是最优走步最优走步,即我方总应考虑最坏的情况。实际上,即我方总应考虑最坏的情况。实际上,再好的选手也会有失误,如何
38、利用失误加强攻势,再好的选手也会有失误,如何利用失误加强攻势,也值得考虑。也值得考虑。 总之要真正解决具体的博弈搜索技术,有许多更深总之要真正解决具体的博弈搜索技术,有许多更深入的问题需要作进一步的研究和探讨。入的问题需要作进一步的研究和探讨。 本章内容本章内容 5.1 博弈博弈 5.2 博弈中的优化决策博弈中的优化决策 5.3 - 剪枝剪枝 5.4 不完美的实时决策不完美的实时决策 5.5 随机博弈随机博弈 5.6 部分可观察的博弈部分可观察的博弈 5.7 博弈程序发展现状博弈程序发展现状 5.8 其他途径其他途径不完整的实时决策不完整的实时决策 minimax或或 剪枝算法剪枝算法 理想情
39、况:理想情况:算法一直搜索,直到至少一部分空间算法一直搜索,直到至少一部分空间到达终止状态,从而对端节点做出准确评价。到达终止状态,从而对端节点做出准确评价。 这样的搜索不现实。这样的搜索不现实。 实用方法:实用方法: 用可以估计棋局效用的用可以估计棋局效用的启发式评价函数启发式评价函数评价评价非终非终止节点止节点。 用可以决策什么时候运用评价函数的用可以决策什么时候运用评价函数的截断测试截断测试取取代终止测试。代终止测试。评价函数评价函数评价函数的设计:评价函数的设计: 应该以和应该以和真正的效用函数真正的效用函数同样的方式对同样的方式对终止状终止状态态进行排序。进行排序。效用函数效用函数(
40、又称目标函数或者收益函数):对终止状(又称目标函数或者收益函数):对终止状态给出一个数值。例如,在国际象棋中,结果是赢、态给出一个数值。例如,在国际象棋中,结果是赢、输或平局,分别赋予输或平局,分别赋予1,1或或0。 评价函数的评价函数的计算计算不能花费太多的时间!不能花费太多的时间! 对于非对于非终止状态终止状态,评价函数应该和取胜的实际,评价函数应该和取胜的实际机会密切相关。机会密切相关。评价函数评价函数 在计算能力有限情况下,评价函数能做到最好的就在计算能力有限情况下,评价函数能做到最好的就是是猜测最后的结果猜测最后的结果。 例如,国际象棋并例如,国际象棋并不是几率游戏不是几率游戏,而且
41、也确切知,而且也确切知道当前状态;但计算能力有限,从而导致结果必道当前状态;但计算能力有限,从而导致结果必然是不确定的。然是不确定的。 大多数评价函数的工作方式是大多数评价函数的工作方式是计算状态的不同特征计算状态的不同特征。 例如,国际象棋中兵的数目、象的数目、马的数例如,国际象棋中兵的数目、象的数目、马的数目等等。目等等。 这些特征一起定义了状态的各种这些特征一起定义了状态的各种类别类别或者或者等价类等价类。 但因但因类别太多类别太多而几乎不可能去估计取胜概率。而几乎不可能去估计取胜概率。评价函数评价函数 大多数评价函数计算大多数评价函数计算每个特征单独的数值贡献每个特征单独的数值贡献,然
42、,然后把它们结合起来找到一个总值。后把它们结合起来找到一个总值。 加权线性评价函数加权线性评价函数)()()()()(12211sfwsfwsfwsfwsevaliniinn每个每个wi是一个权值,是一个权值,fi是棋局的某个特征。是棋局的某个特征。评价函数评价函数 例如,例如,国际象棋的入门书中给出各个棋子的国际象棋的入门书中给出各个棋子的估计子力价值估计子力价值。 兵值兵值1分;分; 马、象值马、象值3分;分; 车值车值5分;分; 后值后值9分。分。 其它特征。例如,其它特征。例如,“好的兵阵好的兵阵”和和“王的安全性王的安全性”可能值可能值半个兵。半个兵。 把这项特征值简单相加就得到了一
43、个对棋局的估计。把这项特征值简单相加就得到了一个对棋局的估计。 经验表明,如果其它都一样,则经验表明,如果其它都一样,则 在领先在领先超过超过1分分的可靠子力优势下很可能取得胜利;的可靠子力优势下很可能取得胜利; 3分分的优势几乎足以肯定取胜。的优势几乎足以肯定取胜。评价函数评价函数(a)黑棋有)黑棋有1个马、个马、2个兵的优势,能够取胜。个兵的优势,能够取胜。(b)黑棋会被白棋吃掉皇后,从而失败。)黑棋会被白棋吃掉皇后,从而失败。评价函数评价函数 加权线性评价函数的假设:加权线性评价函数的假设:每个特征的贡献独立于其每个特征的贡献独立于其它特征的值它特征的值。 假设太强!假设太强! 例如,象赋予例如,象赋予3分忽略了象在分忽略了象在残局残局中能够发挥更大中能够发挥更大作用的事实。作用的事实。 当前国际象棋和其它游戏的程序也采用当前国际象棋和其它游戏的程序也采用非线性的特征非线性的特征组合组合。)()(1sfwsevalinii评价函数评价函数 注意:注意:特征和权值并不是国际象棋规则的一部分。特征和权值并不是国际象棋规则
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省汕尾市普宁华美实验学校2024-2025学年高二下学期第一次(3月)月考数学试题(原卷版+解析版)
- 窗帘业务合作协议
- (一模)张家口市2025届高三模拟考试(一)历史试卷(含答案详解)
- 《会计信息系统应用》课件 学习情境6 固定资产管理系统应用
- 中医护理学(第5版)课件 问诊 1
- 三农经济发展趋势研究报告指南
- 肉牛养殖行业研究报告
- 创新中国产业园
- 养老院项目可研报告
- 化工行业智能化化学品生产与管理方案
- 《产业转型与创新》课件
- 合伙经营煤炭合同范本
- “艾梅乙”感染者消除医疗歧视制度-
- 2025-2030年中国测序仪市场运行态势及发展规划分析报告
- 《物理前沿科学》课件
- 餐厅市场调研与定位
- 2025电动自行车安全技术规范培训课件
- 网络直播承诺书范本范本
- 《电力安全工作规程DLT408-2023》知识培训
- DB21-T 3943-2024 消防控制室管理
- 规划课题申报范例:高校毕业生高质量就业服务体系建设研究(附可修改技术路线图)
评论
0/150
提交评论