α-β搜索过程讲述.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
α-β搜索过程   在极小极大搜索方法中,由于要先生成指定深度以内的所有节点,其节点数将随着搜索深度的增加承指数增长。这极大地限制了极小极大搜索方法的使用。能否在搜索深度不变的情况下,利用已有的搜索信息减少生成的节点数呢?   设某博弈问题如下图所示,应用极小极大方法进行搜索。假设搜索的顺序为从下到上,从左到右。当计算完a的值为0后,由于b是极大节点,马上就可以知道b的值大于等于0。接下来求c的值。由于c是极小节点,由d的值为-3,知道c的值小于等于-3。而a和c都是b的子节点,所以即便不扩展节点e,也可以知道b的值一定为0了。所以在这种情况下,没有生成节点e的必要。同样,在知道b的值为0后,由于k是极小节点,所以立即知道k的值要小于等于0。而通过节点f、g,知道h的值至少为3。这样即便不扩展A所包围的那些节点,也能知道k的值一定为0。所以A包围的那些节点也没有生成的必要,不管这些节点取值如何,都不影响k的值。如果在搜索的过程中,充分利用这些信息,不就可以少生成很多节点,从而提高搜索的空间利用率吗?α-β过程正是这样一种搜索方法。       MINIMAX过程是把搜索树的生成和格局估值这两个过程分开来进行,即先生成全部搜索树,然后再进行端节点静态估值和倒推值计算,这显然会导致低效率。如图3.8中,其中一个MIN节点要全部生成A、B、C、D四个节点,然后还要逐个计算其静态估值,最后在求倒推值阶段,才赋给这个MIN节点的倒推值-∞。其实,如果生成节点A后,马上进行静态估值,得知f(A)=-∞之后,就可以断定再生成其余节点及进行静态计算是多余的,可以马上对MIN节点赋倒推值-∞,而丝毫不会影响MAX的最好优先走步的选择。这是一种极端的情况,实际上把生成和倒推估值结合起来进行,再根据一定的条件判定,有可能尽早修剪掉一些无用的分枝,同样可获得类似的效果,这就是α-β过程的基本思想。下面再用一字棋的例子来说明α-β剪枝方法。 图3.9一字棋第一阶段α-β剪枝方法 为了使生成和估值过程紧密结合,采用有界深度优先策略进行搜索,这样当生成达到规定深度的节点时,就立即计算其静态估值函数,而一旦某个非端节点有条件确定其倒推值时就立即计算赋值。从图3.9中标记的节点生成顺序号(也表示节点编号)看出,生成并计算完第6个节点后,第1个节点倒推值完全确定,可立即赋给倒推值-1。这时对初始节点来说,虽然其他子节点尚未生成,但由于s属极大值层,可以推断其倒推值不会小于-1,我们称极大值层的这个下界值为α,即可以确定s的α=-1。这说明s实际的倒推值决不会比-1更小,还取决于其他后继节点的倒推值,因此继续生成搜索树。当第8个节点生成出来并计算得静态估值为-1后,就可以断定第7个节点的倒推值不可能大于-1,我们称极小值层的这个上界值为β,即可确定节点7的β=-1。有了极小值层的β值,很容易发现若α≥β时,节点7的其他子节点不必再生成,这不影响高一层极大值的选取,因s的极大值不可能比这个β值还小,再生成无疑是多余的,因此可以进行剪枝。这样一来,只要在搜索过程记住倒推值的上下界并进行比较,就可以实现修剪操作,称这种操作为α剪枝。类似的还有β剪枝,统称为α-β剪枝技术。在实际修剪过程中,α、β还可以随时修正,但极大值层的倒推值下界α永不下降,实际的倒推值取其后继节点最终确定的倒推值中最大的一个倒推值。而极小值层的倒推值上界β永不上升,其倒推值则取后继节点最终确定的倒推值中最小的一个倒推值。 归纳一下以上讨论,可将α-β过程的剪枝规则描述如下:   在进行α-β剪枝时,应注意以下几个问题:   (1)比较都是在极小节点和极大节点间进行的,极大节点和极大节点的比较,或者极小节点和极小节点间的比较是无意义的。   (2)在比较时注意是与先辈层节点比较,不只是与父辈节点比较。当然,这里的先辈层节点,指的是那些已经有了值的节点。   (3)当只有一个节点的固定以后,其值才能够向其父节点传递。   (4)α-β剪枝方法搜索得到的最佳走步与极小极大方法得到的结果是一致的,α-β剪枝并没有因为提高效率,而降低得到最佳走步的可能性。   (5)在实际搜索时,并不是先生成指定深度的搜索图,再在搜索图上进行剪枝。 如果这样,就失去了α-β剪枝方法的意义。在实际程序实现时,首先规定一个搜索深度,然后按照类似于深度优先搜索的方式,生成节点。在节点的生成过程中,如果在某一个节点处发生了剪枝,则该节点其余未生成的节点就不再生成了。 (1)α剪枝:若任一极小值层节点的β值小于或等于它任一先辈极大值居节点的α值,即α(先辈层)≥β(后继层),则可中止该极小值层中这个MIN节点以下的搜索过程。这个MIN节点最终的倒推值就确定为这个β值 (2)β剪枝:若任一极大值层节点的α值大于或等于它任一先辈极小值层节

文档评论(0)

***** + 关注
实名认证
内容提供者

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档