《第二章博弈树的搜索.ppt》由会员分享,可在线阅读,更多相关《第二章博弈树的搜索.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2.3 博弈树搜索博弈树搜索n20世纪60年代,研制出的西洋跳棋和国际象棋达到了大师级的水平。n1958约翰麦卡锡提出博弈树剪枝算法n1997年,IBM公司研制的“深蓝”国际象棋 程序,采用博弈树搜索算法,该程序战胜了国际象棋世界冠军卡斯帕罗夫。1.1.概述概述正在与深蓝下棋的卡斯帕罗夫n博弈问题特点:博弈问题特点:n双人对弈,轮流走步。双人对弈,轮流走步。n信息完备,双方所得到的信息是一样的。信息完备,双方所得到的信息是一样的。n零和,即对一方有利的棋,对另一方肯定零和,即对一方有利的棋,对另一方肯定是不利的,不存在对双方均有利或无利的是不利的,不存在对双方均有利或无利的棋。棋。1.1.概述
2、概述n博弈的特性博弈的特性两个棋手交替地走棋两个棋手交替地走棋 ;比赛的最终结果,是赢、输和平局中的比赛的最终结果,是赢、输和平局中的一种;一种;可用图搜索技术进行,但效率很低;可用图搜索技术进行,但效率很低;博弈的过程,是寻找置对手于必败态的博弈的过程,是寻找置对手于必败态的过程;过程;双方都无法干预对方的选择。双方都无法干预对方的选择。1.1.概述概述2.Grundy 2.Grundy 博弈博弈n下下棋棋的的双双方方是是对对立立的的,命命名名博博弈弈的的双双方方,一一方方为为“正正方方”,这这类类节节点点称称为为“MAX”节节点点;另另一一方方为为“反反方方”,这这类类节节点点称称为为“M
3、IN”节节点点。正正方方和和反反方方是是交交替替走走步步的的,因因此此MAX节节点点和和MIN节节点点会会交交替替出出现现。2.Grundy 2.Grundy 博弈博弈nGrundy博弈是一个分钱币的游戏。有博弈是一个分钱币的游戏。有 一堆数目为一堆数目为N的钱币,由两位选手轮流进的钱币,由两位选手轮流进行分堆,要求每个选手每次只把其中某行分堆,要求每个选手每次只把其中某一堆分成数目不等的两小堆。例如,选一堆分成数目不等的两小堆。例如,选手甲把手甲把N分成两堆后,轮到选手乙就可以分成两堆后,轮到选手乙就可以挑其中一堆来分,如此进行下去,直到挑其中一堆来分,如此进行下去,直到有一位选手先无法把钱
4、币再分成不相等有一位选手先无法把钱币再分成不相等的两堆时就得认输。的两堆时就得认输。2.Grundy 2.Grundy 博弈博弈n设初始状态为设初始状态为(7,MIN),建立问题的状,建立问题的状态空间图,图中所有终结点均表示该选态空间图,图中所有终结点均表示该选手必输的情况,取胜方的目标是设法使手必输的情况,取胜方的目标是设法使棋局发展为结束在对方走步时的终结点棋局发展为结束在对方走步时的终结点上。上。MIN先走先走MAX必胜必胜2.Grundy 2.Grundy 博弈博弈n结点结点A是是MAX的搜索目标,而结点的搜索目标,而结点B,C则为则为MIN的搜索目标。的搜索目标。2.Grundy
5、2.Grundy 博弈博弈搜索策略要考虑的问题是:搜索策略要考虑的问题是:n对对MIN走步后的每一个走步后的每一个MAX结点,必须证结点,必须证明明MAX对对MIN可能走的每一个棋局对弈后可能走的每一个棋局对弈后能获胜,即能获胜,即MAX必须考虑应付必须考虑应付MIN的所有的所有招法,这是一个与的含意,因此含有招法,这是一个与的含意,因此含有MAX符符号的结点可看成与结点。号的结点可看成与结点。2.Grundy 2.Grundy 博弈博弈n对对MAX走步后的每一个走步后的每一个MIN结点,只须证结点,只须证明明MAX有一步能走赢就可以,即有一步能走赢就可以,即MAX只要只要考虑能走出一步棋使考
6、虑能走出一步棋使MIN无法招架就成,无法招架就成,因此含有因此含有MIN符号的结点可看成或结点。符号的结点可看成或结点。2.Grundy 2.Grundy 博弈博弈n对弈过程的搜索图呈现出与或图表示的形式。对弈过程的搜索图呈现出与或图表示的形式。n实现一种取胜的策略就是搜索一个解图的问题,解实现一种取胜的策略就是搜索一个解图的问题,解图就代表一种完整的博弈策略。图就代表一种完整的博弈策略。2.Grundy 2.Grundy 博弈博弈n对各个局面进行评估对各个局面进行评估n评估的目的:对后面的状态提前进行考虑,并评估的目的:对后面的状态提前进行考虑,并且以各种状态的评估值为基础作出最好的走棋且以
7、各种状态的评估值为基础作出最好的走棋选择。选择。n评估的方法:用评价函数对棋局进行评估。赢评估的方法:用评价函数对棋局进行评估。赢的评估值设为的评估值设为+,输的评估值设为,输的评估值设为-,平局,平局的评估值设为的评估值设为0。n评估的标准:由于下棋的双方是对立的,只能评估的标准:由于下棋的双方是对立的,只能选择其中一方为评估的标准方。选择其中一方为评估的标准方。3.3.极小极大搜索过程极小极大搜索过程MAX节点和节点和MIN节点节点n命名博弈的双方,一方为命名博弈的双方,一方为“正方正方”,对每,对每个状态的评估都是对应于该方的输赢的。个状态的评估都是对应于该方的输赢的。例如,赢例如,赢2
8、个,输个,输1个等,都是指正方的。个等,都是指正方的。正方每走一步,都在选择使自己赢得更多正方每走一步,都在选择使自己赢得更多的节点,因此这类节点称为的节点,因此这类节点称为“MAX”节点;节点;3.极小极大搜索过程极小极大搜索过程n另一方为另一方为“反方反方”,对每个状态的评估,对每个状态的评估都是对应于对手的输赢的。例如,赢都是对应于对手的输赢的。例如,赢2个,个,输一个,其实是指自己输输一个,其实是指自己输2个,赢个,赢1个的。个的。反方每走一步,都在选择使对手输得更反方每走一步,都在选择使对手输得更多的节点,因此这类节点称为多的节点,因此这类节点称为“MIN”节节点。点。3.3.极小极
9、大搜索过程极小极大搜索过程n由于正方和反方是交替走步的,因此由于正方和反方是交替走步的,因此MAX节点和节点和MIN节点会交替出现。节点会交替出现。3.极小极大搜索过程极小极大搜索过程n正方(正方(MAX节点)从所有子节点中,选节点)从所有子节点中,选取具有最大评估值的节点。取具有最大评估值的节点。n反方(反方(MIN节点)从其所有子节点中,节点)从其所有子节点中,选取具有最小评估值的节点。选取具有最小评估值的节点。n反复进行这种选取,就可以得到双方各反复进行这种选取,就可以得到双方各个节点的评估值。这种确定棋步的方法,个节点的评估值。这种确定棋步的方法,称为称为极小极大搜索法极小极大搜索法。
10、3.极小极大搜索过程极小极大搜索过程3.极小极大搜索过程极小极大搜索过程5-333-3022-30-235 41-30 68 9-3MINMAX0MAXMIN3.极小极大搜索过程极小极大搜索过程015-333-3022-30-235 41-30 68 9-30-33-3-3-21-36-3031601MAXMINMAXMIN3.极小极大搜索过程极小极大搜索过程n 在九宫格棋盘上,两位选手轮流在棋盘上摆各自的在九宫格棋盘上,两位选手轮流在棋盘上摆各自的 棋子棋子(每次一枚每次一枚),谁先取得三线的结果就取胜。,谁先取得三线的结果就取胜。设程序方设程序方MAXMAX的棋子用的棋子用()表示,表示,
11、MAXMAX先走。先走。对手对手MINMIN的棋子用的棋子用(o o)表示。表示。例如:例如:3.极小极大搜索过程极小极大搜索过程MIN取胜取胜 估计函数估计函数 f(pf(p)=()=(所有空格都放上所有空格都放上MAXMAX的的棋子之后,棋子之后,MAXMAX的三子成线数的三子成线数)(所有空所有空格都放上格都放上MINMIN的棋子之后,的棋子之后,MINMIN的三子成的三子成线的总数线的总数)若若P P是是MAXMAX获胜的格局,则获胜的格局,则f(pf(p)=+)=+;若若P P是是MINMIN获胜的格局,则获胜的格局,则f(pf(p)-。3.极小极大搜索过程极小极大搜索过程3.极小极
12、大搜索过程极小极大搜索过程估计函数值估计函数值 f(p)=6-4=2估计函数估计函数 f(pf(p)=()=(所有空格都放上所有空格都放上MAXMAX的棋子之后,的棋子之后,MAXMAX的三子的三子成线成线(行、列、对角行、列、对角)数数)(所有空格都放上所有空格都放上MINMIN的棋子之后,的棋子之后,MINMIN的三子成线的三子成线(行、列、对角行、列、对角)的总数的总数)当前棋局当前棋局f(p)=23.极小极大搜索过程极小极大搜索过程一字棋第一阶段搜索树一字棋第一阶段搜索树3.极小极大搜索过程极小极大搜索过程一字棋第二阶段搜索树一字棋第二阶段搜索树3.极小极大搜索过程极小极大搜索过程一字
13、棋第三阶段搜索树一字棋第三阶段搜索树 设设有有一一个个摆摆放放三三个个子子的的棋棋盘盘残残局局,如如下下图图所所示示,和和 在在结结束束前前有有三三步步棋棋可可以以走走,而而且且设设走走第第一一步步的的是是 。这这时时存存在在着着三三个个空空格格A,B,C,用用博博弈弈树树搜搜索算法判断应该把棋子放到哪一格内。索算法判断应该把棋子放到哪一格内。A AB BC C棋盘残局举例:棋盘残局举例:3.极小极大搜索过程极小极大搜索过程A AB BC CB BC CC CB B0A AC CC CA AA A B B B BA A-1-0-10-0MAX节点节点MIN节点节点终端节点终端节点3.极小极大搜
14、索过程极小极大搜索过程 对对于于棋棋盘盘残残局局中中的的来来说说,最最好好的的选选择择,是是将将放放在在C C的位置上,这时可以导致平局局面。的位置上,这时可以导致平局局面。3.极小极大搜索过程极小极大搜索过程中国象棋中国象棋n一盘棋平均走50步,总状态数约为10的161次方。n假设1毫微秒走一步,约需10的145次方年。n结论:不可能穷举。3.极小极大搜索过程极小极大搜索过程n-剪支法的剪支法的引入引入 在在极极小小极极大大法法中中,必必须须求求出出所所有有终终端端节节点点的的评评估估值值,当当预预先先考考虑虑的的棋棋步步比比较较多多时时,计计算算量量会会大大大大增增加加。为为了了提提高高搜
15、搜索索的的效效率率,引引入入了了通通过过对对评评估估值值的的上上下下限限进进行行估估计计,从从而而减少需进行评估的节点范围的减少需进行评估的节点范围的-剪支法。剪支法。4.4.-搜索过程搜索过程 作作为为正正方方出出现现的的MAX节节点点,假假设设它它的的MIN子子节节点点有有N个个,那那么么当当它它的的第第一一个个MIN子子节节点点的的评评估估值值为为 时时,则则对对于于其其它它的的子子节节点点,如如果果有有高高过过 的的,就就取取那那最最高高的的值值作作为为该该MAX节节点点的的评评估估值值;如如果果没没有,则该有,则该MAX节点的评估值为节点的评估值为。总总之之,该该MAX节节点点的的评
16、评估估值值不不会会低低于于,这这个个 就称为该就称为该MAX节点的评估下限值。节点的评估下限值。4.-搜索过程搜索过程n MAX节点的评估下限值节点的评估下限值 n MIN节点的评估上限值节点的评估上限值 作作为为反反方方出出现现的的MIN节节点点,假假设设它它的的MAX子子节节点点有有N个个,那那么么当当它它的的第第一一个个MAX子子节节点点的的评评估估值值为为 时时,则则对对于于其其它它子子节节点点,如如果果有有低低于于 的的,就就取取那那个个低低于于 的的值值作作为为该该MIN节节点点的的评评估估值值;如果没有,则该如果没有,则该MIN节点的评估值取节点的评估值取。总总之之,该该MIN节
17、节点点的的评评估估值值不不会会高高过过,这这个个 就称为该就称为该MIN节点的评估上限值。节点的评估上限值。4.-搜索过程搜索过程n 剪支法剪支法 MAX节点节点MIN节点节点=剪支剪支ABCD4.-搜索过程搜索过程 设设MAX节点的下限为节点的下限为,则其,则其所有的所有的MIN子节点子节点中,其评估值的中,其评估值的 上限小于等于上限小于等于 的节点,其以下部分的节点,其以下部分的搜索都可以停止了,即对这部分节点进行了的搜索都可以停止了,即对这部分节点进行了 剪支。剪支。设设MIN节点的上限为节点的上限为,则其,则其所有的所有的MAX子节点子节点中,其评估值的中,其评估值的 下限大于等于下
18、限大于等于 的节点,其以下部分的节点,其以下部分的搜索都可以停止了,即对这部分节点进行了的搜索都可以停止了,即对这部分节点进行了 剪支。剪支。MAX节点节点MIN节点节点=剪支剪支ABCD4.-搜索过程搜索过程n 剪支法剪支法 A B CDEFG H I J K L N O M4.-搜索过程搜索过程MAX节点节点MAX节点节点MIN节点节点终端节点终端节点35652164MAX节点节点(5,)35652164(6,)(2,)(-,5,5)(-,2,2)(5,)MIN节点节点终端节点终端节点 剪支剪支 剪支剪支A B CDEFG H I J K L N O MMAX节点节点4.-搜索过程搜索过程
19、一字棋第一阶段一字棋第一阶段-剪支方法剪支方法4.-搜索过程搜索过程4.-搜索过程搜索过程n极大节点的下界为极大节点的下界为。n极小节点的上界为极小节点的上界为。n剪支的条件:剪支的条件:n后辈节点的后辈节点的 值值祖先节点的祖先节点的 值时,值时,剪支剪支n后辈节点的后辈节点的 值值祖先节点的祖先节点的 值时,值时,剪支剪支n简记为:简记为:n极小极小极大,极大,剪支剪支n极大极大极小,极小,剪支剪支4.-搜索过程搜索过程86-31453-3503-3022-30-2309-300-303305411-31661abcdefghijkmnMAXMINMAXMIN改进方法改进方法n 使使用用-
20、剪剪支支技技术术,当当不不满满足足剪剪支支条条件件(即即)时时或或 值值比比 值值大大不不了了多多少少或或极极相相近近时时,这这时时也也可可以以进进行行剪剪支支,以以便便有有条条件件把把搜搜索索集集中中到到会会带带来来更更大大效效果果的的其其他他路路径径上上,这这就就是是中中止止对对效效益益不不大大的的一一些些子子树树的的搜索,以提高搜索效率。搜索,以提高搜索效率。4.-搜索过程搜索过程 n 不不严严格格限限制制搜搜索索的的深深度度。当当到到达达深深度度限限制制时时,如如出出现现博博弈弈格格局局有有可可能能发发生生较较大大变变化化时时,则则应应多多搜搜索索几几层层,使使格格局局进进入入较较稳稳
21、定定状状态态后后再再中中止止,这这样样可可使使倒倒推推值值计计算算的的结结果果比比较较合合理理,避避免免考考虑虑不不充充分分产产生生的的影影响响,这这是是等等候候状状态态平稳后中止搜索的方法。平稳后中止搜索的方法。4.-搜索过程搜索过程n当算法给出所选的走步后,不要马上停止搜当算法给出所选的走步后,不要马上停止搜索,而是在原先估计可能的路径上再往前搜索,而是在原先估计可能的路径上再往前搜索几步,再次检验会不会出现意外,这是一索几步,再次检验会不会出现意外,这是一种增添辅助搜索的方法。种增添辅助搜索的方法。4.-搜索过程搜索过程n对某些博弈的开局阶段和残局阶段,往对某些博弈的开局阶段和残局阶段,往往总结了一些固定的对弈模式,因此可往总结了一些固定的对弈模式,因此可以利用这些知识编好走步表,以便在开以利用这些知识编好走步表,以便在开局和结局时使用查表法。只是在进入中局和结局时使用查表法。只是在进入中盘阶段后,再调用其他有效的搜索算法,盘阶段后,再调用其他有效的搜索算法,来选择最优的走步。来选择最优的走步。4.-搜索过程搜索过程