IDDFS的空间复杂性

时间:2016-10-09 04:15:38

标签: algorithm search depth-first-search

我正在努力应对 Iterative Deepening Depth First Search 的空间复杂性。在我看来,在目标是图中最后一个节点的最坏情况下,您需要创建整个图,因此您的空间是 O(b m 其中 b 是分支因子, m 是最大深度。但是,据说它是 O(bm)。有人可以向我解释为什么会这样。提前谢谢!

1 个答案:

答案 0 :(得分:0)

您最终可能会在某个时间创建和访问整个图表,但您永远不需要同时将其全部保存在内存中。在任何时间点,您需要保留在内存中的是到当前位置的路径,这将为您提供m in bm。我认为b的因子来自于保持路径中每个节点的子节点或等效信息。实际上,https://en.wikipedia.org/wiki/Iterative_deepening_depth-first_search上的维基百科条目是

IDDFS的时间复杂度为O(bd){\ displaystyle O(b ^ {d})} O(b ^ d),其空间复杂度为O(d){\ displaystyle O(d)} O( d),其中b {\ displaystyle b} b是分支因子,d {\ displaystyle d} d是最浅目标的深度。[2]