统一成本搜索算法的最坏情况时间和空间复杂度是多少?

时间:2012-08-15 10:26:47

标签: algorithm artificial-intelligence

我的书(人工智能现代方法)说,统一成本搜索算法的最坏情况时间和空间复杂度将是 O(b [C * / e]),其中 b 是分支因子, C * 是最优解决方案的成本,并且每个操作都至少花费 e 。但为什么会这样呢?

2 个答案:

答案 0 :(得分:3)

首先,复杂性为 O(B^(C/e)) [C/e]中的指数。

要理解它,首先想一个简单的例子:

G=(V,E)成为图表,其分支因子为B。图表未加权(w(e) = 1每个e)。

考虑找到从S到T的最短路径。
在这种情况下,算法实际上是 BFS ,它将发现路径中长度为SOL的所有节点,其中SOL是最短路径,O(B^|SOL|)

对于一般情况 - 同样的想法成立,您需要发现最高成本C的所有节点。因此,您可以发现深度为C/e的节点,为您提供需要探索的 O(B^(C/e)) 总节点。

指数因子是因为:第一级(根)具有B^0=1个节点,第二级具有B个节点。从这些节点中发现B节点,为您提供B^2,....


修改
到目前为止错过了,但标题要求空间复杂度而不是时间复杂度。但是,答案保持不变,因为对于已访问过的节点,统一成本搜索会保留visited集。由于您发现的每个节点也会添加到其中 - 答案仍为O(B^(C/e))

答案 1 :(得分:1)

C*/e表示在搜索期间应访问的平均节点数,并且对于访问每个节点,您应该查看所有可能的b个分支(至少是根节点),因此您应该检查搜索中的b [C * / e] 节点。这是你的搜索时间复杂度,这是假设每个节点上的进程都需要O(1)。

P.S:在最坏的情况下,它是Ω(b [C * / e]