- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
博弈中的优化决策 博弈中两种最基本的搜索方法 : 极大极小过程 ?-?过程 极大极小过程(1) 设博弈的双方分别为MAX和MIN。极大极小方法是为其中一方寻找一个最优行动方案的方法 为了找到当前的最优行动方案,需要对各个方案的后果进行比较.具体地说就是要考虑每一种方案实施后对方可能采取的所有行动,并计算可能的得分 为了计算得分,需要根据问题的特征信息定义一个估价函数,用来估算当前博弈树端节点的得分。 极大极小过程(2) 极大极小方法在端节点的估值计算出来后,再推出父节点的得分.推算方法是: 对MAX(或)节点选其子节点中一个最大的得分作为父节点的得分,即从自己可供选择的方案中选择对自己最有利的一个 对MIN(与)节点选其子节点中最小的一个的得分最为父节点的得分,即立足于最坏的情况. 这样计算出来的父节点的得分称为倒推值 如果一个行动方案能获得较大的倒推值,则它就是当前最好的行动方案(这里启发式函数计算的是得分而不是代价) 极大极小过程(3) 3 2 1 -1 2 4 -2 6 4 3 5 4 6 -5 6 1 8 6 3 2 6 8 2 -1 2 -2 3 4 -5 1 3 2 2 3 4 3 2 3 3 极大极小过程(4) 性质 Complete? Yes (如果树是有限的)
Optimal? Yes (针对最优的对手)
Time complexity? O(bm)
Space complexity? O(bm) (深度优先)
对国际象棋,常常可以达到b ≈ 35, m ≈100 ? 完整准确地解答是不可行的 是否需要对所有的路径都扩展? 多人游戏 将minmax值换成一个向量值:每个分量对应一个玩家 ?-?过程(1) 极大极小方法是把搜索树的生成和估值这两个过程完全分开.只有在已经生成树之后才开始进行估值,这一分离导致了低效率的策略 游戏状态随游戏招数成指数增长 ?-?剪枝技术是极大极小方法的改进,是一种提高博弈树搜索效率的方法 ?-?剪枝技术是一种边生成节点,边计算估值和倒推值的方法,从而剪去某些分枝. ?-?过程(2) ?和?值的定义和计算 对于一个“与”节点,它取当前子节点中的最小的倒推值作为它的倒推值的上界,称此值为?值.也就是说?值可以等于其后继节点当前最小的最终倒推值.“与”节点的?值是永远不会增加的 对于一个“或”节点,它取当前子节点中得最大的倒推值作为它的倒推值的下界,称此值为?值.也就是说?值可以等于其后继节点当前最大的最终倒推值.“或”节点的?值是永远不会减少的. ?-?过程(3) 执行深度优先搜索直到第一个叶节点 ?-?过程(4) ?-?过程(5) ?-?过程(6) ?-?过程(7) ?-?过程(8) ?-?剪枝技术的一般规律: 任何“或”节点x的?值如果不能降低其父节点的?值,则对节点x以下的分枝可以停止搜索,并使x的倒推值为?.这种技术称为?剪枝 任何“与”节点x的?值如果不能升高其父节点的?值,则对节点x以下的分枝可以停止搜索,并使x的倒推值为?.这种技术称为?剪枝 要进行?-?剪枝,至少必须使某一部分的搜索树生长到最大深度.因为?和?值必须以某个端节点的静态估值为依据.因此采用?-?过程都要使用某种深度优先的搜索方法. ?-?过程(9) 特性 剪枝并不影响最后的结果 好的招数序列可以改进剪枝的效率
如果可以找到最好的剪枝,则时间复杂度为: O(bm/2) 有效的分支系数为 ?-?搜索向前看的走步数是极大极小搜索的两倍 ?-?过程(10) 迭代加深搜索(7) Complete? Yes
Time? (d+1)b0 + d b1 + (d-1)b2 + … + bd = O(bd)
Space? O(bd)
Optimal? Yes, 如果每步代价为1 代价树的广度优先搜索 边上标有代价(或费用)的树称为代价树 g(x)表示从初始节点S0到节点x的代价,c(x1,x2)表示从父节点x1到子节点x2的代价,则有 g(x2)=g(x1)+c(x1,x2) 搜索过程如下: 把初始节点S0放入OPEN表,令g(S0)=0 如果OPEN表为空,则问题无解,退出 把OPEN表的第一个节点(记为节点n)取出,放入CLOSED表 考查
文档评论(0)