我正在读这本书 - 人工智能是一种现代方法。我看到这句话描述了统一成本搜索的时间复杂性
统一成本搜索以路径成本而不是深度为指导,因此它是 复杂性不容易用b和d表征。代替, 让C成为最优解的成本,7并假设每一个 行动成本至少ε。那么算法的最坏情况时间和 空间复杂度为O(b ^(1 + C /ε)),可远大于bd。
据我所知,C是最优解的成本,每个动作至少花费ε,因此C /ε将是到达目的地的步数。但我不知道这种复杂性是如何产生的,谢谢。
答案 0 :(得分:14)
如果分支因子为b,则每次展开节点时,都会遇到更多节点。因此,有
因此,假设在达到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因子。这是他错过的非常重要的一点。
很抱歉看到一个看似不活跃的问题。