【问题标题】:How is iterative deepening more efficient than just scanning the nodes at a specified depth level.迭代加深如何比仅扫描指定深度级别的节点更有效。
【发布时间】:2011-08-02 10:51:56
【问题描述】:

每次迭代都重新扫描n-1级节点不是多余的吗?

【问题讨论】:

    标签: depth-first-search iteration iterative-deepening


    【解决方案1】:

    我引用Artificial Intelligence: A Modern Approach:

    迭代深化搜索可能看起来很浪费,因为状态是多次生成的。事实证明,这并不太昂贵。原因是在每一层分支因子相同(或几乎相同)的搜索树中,大部分节点都在底层,所以上层生成多次并不重要。在迭代加深搜索中,最底层(深度d)的节点生成一次,次底层的节点生成两次,以此类推,直到root,生成 d 次。所以最坏情况下生成的节点总数为

    N(IDS) = (d)*b+(d-1)*b^2+...+(1)*b^d

    这给出了 O(b^d) 的时间复杂度 - 与广度优先搜索渐近相同。

    【讨论】:

      猜你喜欢
      • 2011-05-21
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-18
      • 2021-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多