【发布时间】:2011-08-02 10:51:56
【问题描述】:
每次迭代都重新扫描n-1级节点不是多余的吗?
【问题讨论】:
标签: depth-first-search iteration iterative-deepening
每次迭代都重新扫描n-1级节点不是多余的吗?
【问题讨论】:
标签: depth-first-search iteration iterative-deepening
我引用Artificial Intelligence: A Modern Approach:
迭代深化搜索可能看起来很浪费,因为状态是多次生成的。事实证明,这并不太昂贵。原因是在每一层分支因子相同(或几乎相同)的搜索树中,大部分节点都在底层,所以上层生成多次并不重要。在迭代加深搜索中,最底层(深度d)的节点生成一次,次底层的节点生成两次,以此类推,直到root,生成 d 次。所以最坏情况下生成的节点总数为
N(IDS) = (d)*b+(d-1)*b^2+...+(1)*b^d
这给出了 O(b^d) 的时间复杂度 - 与广度优先搜索渐近相同。
【讨论】: