统一成本搜索的时间复杂度

时间:2013-10-06 02:08:49

标签: algorithm artificial-intelligence big-o time-complexity

我正在读这本书 - 人工智能是一种现代方法。我看到这句话描述了统一成本搜索的时间复杂性

  

统一成本搜索以路径成本而不是深度为指导,因此它是   复杂性不容易用b和d表征。代替,   让C成为最优解的成本,7并假设每一个   行动成本至少ε。那么算法的最坏情况时间和   空间复杂度为O(b ^(1 + C /ε)),可远大于bd。

据我所知,C是最优解的成本,每个动作至少花费ε,因此C /ε将是到达目的地的步数。但我不知道这种复杂性是如何产生的,谢谢。

2 个答案:

答案 0 :(得分:14)

如果分支因子为b,则每次展开节点时,都会遇到更多节点。因此,有

  • 0级的1个节点,
  • b级别1的节点,
  • b 2 级别2的节点,
  • b 3 3级节点,
  • ...
  • k级
  • b k 节点。

因此,假设在达到k级后搜索停止。发生这种情况时,您访问过的节点总数将为

  

1 + b + b 2 + ... + b k =(b k + 1 - 1)/(b - 1)

这种平等来自几何系列的总和。恰好是b k + 1 /(b - 1)= O(b k )的情况,所以如果你的目标节点在层k中,那么你必须扩展O(b k )总节点才能找到你想要的节点。

如果C是您的目的地成本,并且每一步都让您更接近目标,则您需要采取的步数由C /ε+ 1给出。+1的原因是您从距离0开始并以C /ε结束,所以你在距离

处采取步骤
  

0,ε,2ε,3ε,......,(C /ε)ε

这里有1 + C /ε的总步数。因此,有1 + C /ε层,因此需要扩展的状态总数为O(b (1 + C /ε))。

希望这有帮助!

答案 1 :(得分:1)

templatetypedef的答案有点不正确。 +1与起始深度为0的事实无关。如果每个步骤成本至少为ε> 1。 0,并且最优解的成本是C,那么最优解的最大深度发生在地面(C /ε)。但最坏的情况是时间/空间复杂度实际上是O(b (1 + floor(C /ε))。+1出现是因为在UCS中,我们只检查节点是否是目标我们选择它进行扩展,而不是在我们生成它时(这是为了确保最优性)。所以在最坏的情况下,我们可能会生成在目标节点的驻留级别之后的整个节点级别(这解释了+1)相比之下,BFS在生成节点时应用目标测试,因此没有相应的+1因子。这是他错过的非常重要的一点。

很抱歉看到一个看似不活跃的问题。