`
fuerbosi
  • 浏览: 462894 次
文章分类
社区版块
存档分类
最新评论

人工智能之博弈三、α-β截断

 
阅读更多

在深度优先的最小最大法中,我们可以看到,博弈树的某些部分并不会产生任何有意义的值,因而也根本用不着去扩展博弈树的这一部分。识别博弈树中这些可忽略部分的技术,称之为α-β截断。之所以叫这个名字,是由于历史原因造成的。

我们可以看出,在轮到棋手下棋的节点上,其部分回溯值是10。而它的当前计算出来的子节点的部分回溯值是8。现在,由于该子节点是轮到对手下棋的节点,而对手总是要走那个具有最小值的棋局,故进一步探察的结果只会小于这个值。无论最后的确定值是多少,它总是小于或等于8。

从另一方面来看,该节点本身的部分回溯值是10。因为这时轮到棋手下棋,所以只有大于10的子节点的值才能改变这个部分回溯值。

所以我们得出的结论是:不需要去进一步扩展其子节点或其它任意后续节点。这是因为进一步的扩展至多只能减少其子节点的回溯值,而其目前的值已经足够小到不能影响其亲节点的部分回溯值了。这种情况就是所谓的α截断。

现在,我们把一般的原则叙述如下:

在考虑轮到棋手下棋的一个亲节点及轮到对手下棋的一个子节点时,如果该子节点的数值已经小于或等于其亲节点的回溯值,那么就不需要对该节点或者其后续节点做更多的处理了。计算的过程可以直接返回到亲节点上。

当亲节点是轮到对手下棋的一个节点时,该原则作相应的改动:

在考虑轮到对手下棋的一个亲节点及轮到棋手下棋的一个子节点时,如果该子节点的部分回溯值已经大于或等于其亲节点的部分回溯值,那么就不需要对该子节点或者其后裔节点做更多的处理了。计算过程可以直接返回到亲节点上。这就是所谓的β截断。


截断这一技术允许我们有时可以不去考虑某节点的某些子节点的情况。然而,由于非终节点的每一个子节点又是其后续节点所组成的整个博弈树的根,所以,如果我能忽略掉那些子节点的话,不仅仅是忽略了它们本身,还忽略了它们所有的后续节点。因此,这一技术可以删去数量相当大的节点,因而也就大大的节省了搜索博弈树所需要的时间。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics