【问题标题】:What is the total number of nodes generated by Depth-First Search深度优先搜索生成的节点总数是多少
【发布时间】:2017-10-12 03:30:44
【问题描述】:

假设:'d' 是树的有限深度; 'b' 是一个分支因子; 'g' 是最浅的目标节点。

据我所知,最坏的情况是目标节点位于树中最后一个右下节点。 因此,据说生成的节点总数是 O(bg),对吧? 然而,我的导师告诉我这是错误的,因为最坏的情况是所有树都被探索,除了以目标节点为根的子树。 他提到了一些关于 O(bd) - O(b(g-d)) .... 我不完全确定

我不太明白他的意思,谁能告诉我哪个答案是正确的?

【问题讨论】:

    标签: algorithm artificial-intelligence


    【解决方案1】:

    我建议画一棵树,标记要探索的节点,并计算有多少。

    如果您使用广度优先搜索,您的推理是正确的,因为您只会达到每个分支的深度 g(总共探索了O(b**g) 个节点)。

    如果您使用深度优先搜索,您的讲师的推理是正确的,因为除了具有目标的部分(O(b**d - b**(d-g)) 探索的节点)之外,树的所有部分都达到了 d 的深度。

    目标是绿色圆圈。

    探索蓝色节点。

    没有探索红色节点。

    为了计算探索的数量,我们计算树中的总数,然后去掉红色的。

    深度 = 2 = d

    深度目标 = 1 = g

    分支因子 = b = 3

    请注意,我将树中的节点总数称为O(b**d)。严格来说,总数是b**d + b**(d-1) + b**(d-2) + ... + 1,但这是O(b**d)

    【讨论】:

    • 好的。我还是不明白为什么要减去两个结果(b^d和b^(d-g))。
    • 啊,我明白了。现在我明白了为什么我们必须减去两者。感谢您的明确解释!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    相关资源
    最近更新 更多