Alpha beta搜索时间复杂度

时间:2013-05-02 00:47:27

标签: time-complexity artificial-intelligence alpha-beta-pruning

我理解minimax和alpha-beta修剪的基础知识。在所有文献中,他们谈论最佳情况的时间复杂度是O(b ^(d / 2)),其中b =分支因子,d =树的深度,基本情况是所有首选节点都是首先扩大。

在我的“最佳案例”的例子中,我有一个4级的二叉树,所以在16个终端节点中,我需要扩展最多7个节点。这与O(b ^(d / 2))有何关系?

我不明白他们是怎么来到O(b ^(d / 2))。

拜托,有人可以向我解释一下吗?吃了很多!

1 个答案:

答案 0 :(得分:16)

O(b ^(d / 2))对应于α-β修剪的最佳情况时间复杂度。 Explanation

  

具有(平均或常数)分支因子b和搜索   d深度,评估的叶节点位置的最大数量   (当移动顺序为pessimal时)为O(b b ... * b)= O(b ^ d) -   与简单的极小极大搜索相同。如果移动命令搜索   是最优的(意味着总是首先搜索最佳动作)   评估的叶节点位置的数量约为O(b * 1 * b * 1 * ... * b)   奇数深度和O(b * 1 * b * 1 * ... * 1)表示均匀深度,或O(b ^(d / 2))。在里面   后一种情况,搜索的层数是均匀的,有效的   分支因子减少到它的平方根,或等价地,   使用相同的计算量,搜索可以达到两倍。

     

b * 1 * b * 1 * ...的解释是所有第一个玩家的移动   必须研究找到最好的一个,但对每一个,只有最好的   第二个玩家的举动需要反驳除了第一个(和最好的)之外的所有人   第一个玩家移动 - alpha-beta确保没有其他第二个玩家移动   需要考虑。

简单地说,你每两个级别“跳过”:

enter image description here

O描述了当参数趋向于特定值或无穷大时函数的限制行为,因此在您的情况下,精确地比较O(b ^(d / 2))与b和d的小值并不真正使感。