算法设计与分析(王多强)算法设计与分析 七.pptVIP

算法设计与分析(王多强)算法设计与分析 七.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在上述部分对策树上调用VE(P11,4),各棋局价值值的确定次序为:P31,P32,P21,P51,P52,P53,P41,P54,P55,P56,P42,P33, ..., P37,P24,P11。 分析: 求取棋局P11的V(P11)值的目的在于让A决定下一步走棋的对策。上述计算过程对从P11出发的、向前展望h步的所有节点都计算V(X),然后求出V(P11)的值。但进一步考察会发现,即使不生成所有的结点也可以精确地计算出V(P11),这是因为: 在算出V(P41)=3 后,就知道V(P33)至少是3,因为P33是求最大值的位置。在计算进行到P55时,算出V(P55)=2,则V(P42)的值必小于3,因为P42是求最小值的位置,一旦V(P55)=2,不管P42的其余儿子(如P56)的值等于多少,V(P42)都不可能大于3。所以V(P56)根本没必要计算,分枝P56可以被“剪去”。 α截断规则: 为求最大值的位置定义一个α值,它是该位置迄今为止最大的可能值。则α截断规则如下: 如果一个求最小值位置的值被判断为小于或等于它的父亲的α值,那么可以停止生成这个求最小值位置其余儿子的值。 在这种规则下终止生成结点值的行为称为α截断。 如上例,一旦确定V(P41)=3,则P33的α值就变成3,而V(P55)≤P33的α值,所以就不用再去生成P56的值。 同理,存在一个对最小值的截断规则。 实例分析: 在算出V(P35)=-1 后,就知道V(P23)至多是-1,因为P23是求最小值的位置。在计算进行到P43时,算出V(P43)=0,则V(P36)的值必大于-1,因为P36是求最大值的位置。因此,一旦V(P43)=0,不管P36的其余儿子(如P44、P45)的值等于多少,V(P36)都不可能小于-1。所以V(P44)、 V(P45)根本没必要计算,分枝P44、P45可可以被“剪去”。 β截断规则: 为求最小值的位置定义一个β值,它是该位置迄今为止最小的可能值。则β截断规则如下: 如果一个求最大值位置的值被判断为大于或等于它的父亲的β值,那么可以停止生成这个求最大值位置其余儿子的值。 在这种规则下终止生成结点值的行为称为β截断。 如上例,一旦确定V(P35)=-1,则P23的β值就变成-1,而V(P43)≥P23的β值,所以就不用再去生成P44、P45的值。 α-β截断规则 上述两条规则合在一起称为α-β截断规则。 α-β截断规则的进一步描述如下:按照V(X)的定义,由于在最小值位置采用改变符号的方法把最小值计算转变成最大值计算,所以α-β截断规则改写如下: 为每个位置定义一个B值,它是该位置迄今为止最大的可能值,则α-β截断规则如下: 对于任一结点X,设B是该结点父亲的B值且D=-B,那么如果X的值被判断为大于或等于D,则可以停止生成X的其它儿子。 算法7.12 使用α?β截断规则的后根次序求值算法 VEB(X, h ,D) //至多向前看h着棋,使用α?β截断规则和V(X)公式计算。弈者A的估价函数是e(X)。 //假定由任一不是终局的棋局X 开始,合法棋着只允许将棋局X转换成棋局X1,X2,…,Xd. //D是in型变量,代表X的父亲目前所知的最大可能值的相反数,即D=-B。 if X是终局或 h =0 then return e(X) endif ans ← -VEB(X1,h-1,∞) for i ← 2 to d do if ans≥ D then return ans endif //使用α?β截断规则 ans←max(ans,-VEB(Xi,h-1,-ans)); repeat return ans; end VEB 这里,ans相当于B。 如果A从Y处走子,则初次调用的方式为VEB(Y,h, ∞) VEB算法的改进: 对结点X而言,为了影响结点X的值,可以利用X的B值估计X的孙子们的值所应有的下界。如图所示: X GC(X) V(GC(X))≤B = V(C(X))≥-B 把下界的概念加入算法VEB得到算法AB,其中参数LB是X值应有的下界。 对X的值B,如果V(GC(X))≤B,那么V(C(X))≥-B,而若V(C(X))≥-B,X值的计算是max(B,- V(C(X)))=B。不会受到任何影响。 所以,除非V(GC(X))>B,否则它就不能影响到V(X)。故B可以作为GC(X)值应有的下界。 下界的作用:在计算V(C(X))之前,如果下限B≥D,则V(

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档