【问题标题】:iterative deepening depth first search higer time complexity than depth first search?迭代加深深度优先搜索比深度优先搜索的时间复杂度更高?
【发布时间】:2014-04-22 02:21:43
【问题描述】:

似乎迭代加深搜索应该比 BFS 具有更高的渐近时间复杂度,因为每次增加深度限制时,它都必须从头开始搜索。

但是 wiki 另有说法,为什么呢?

【问题讨论】:

    标签: algorithm time-complexity depth-first-search iterative-deepening


    【解决方案1】:

    如果树不平衡并且答案比最深的叶子更靠近根,那么将通过小于树的最大深度的深度限制找到答案,而深度优先搜索可能有在找到正确答案之前搜索树的一半到最大深度。由于树中的节点数量可能会随着深度大致呈指数增长,这可能是一个很好的交易 - 最大深度为 10,搜索大约 1024/2 = 512 个节点比总计 1 + 2 + 4 + 的多个搜索稍微贵一些... 256 = 511 个节点,所以任何比这更极端的都是纯利润 - 该示例完全搜索深度,包括深度 8。

    (在某些情况下,在任意大的深度可能会出现错误答案)。

    【讨论】:

    • 您似乎在描述深度受限搜索,而不是迭代深化搜索。 en.wikipedia.org/wiki/Iterative_deepening_depth-first_search
    • “多次搜索”是指构成单个迭代深化搜索的许多深度受限搜索。您可以在您提供的链接末尾的文章中看到一个非常相似的总结,我看到它还列出了迭代深化的优点。
    猜你喜欢
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 2011-01-31
    • 1970-01-01
    相关资源
    最近更新 更多