我是AI的新手,正在阅读Peter Norvig的书。我已经调查了这个问题What is the number of nodes generated by breadth-first search?。 它说如果我们在选择扩展时对每个节点应用目标测试,那么我们有节点= 1 + b + b ^ 2 + b ^ 3 + ... + b ^ d +(b ^(d) +1) - b) 但是如果我的目标状态是最终深度的叶节点会怎样。所以目标之后根本没有深度。那么b ^(d + 1)如何评估?例如:在最大深度为3的树中,如果我的目标位于深度3,那么当没有第4级时,我将如何评估b ^(3 + 1)?请清除我的怀疑。提前谢谢!
答案 0 :(得分:1)
请注意,您链接的答案提到的是最差情况中生成的节点数量。
生成意味着并非所有这些节点都经过测试,以确定它们是否是目标;它们只是简单地生成和存储,以便在目标尚未找到的情况下最终与目标进行比较。
最坏情况有两个重要含义。尝试可视化广度优先搜索从左到右,然后向下一个级别,然后再从左到右,然后向下,等等。在最坏的情况下,我们假设,在任何深度级别 d 找到目标,目标是最后(最右边)节点。这意味着将其左侧的所有节点与目标节点进行比较,并且还生成它们的任何后继/子节点。
现在,我知道你说你的情况在 d 以下的深度级别没有节点,但第二个含义是说最坏情况是我们假设基本上有无限多的深度级别。
事实上,对于你的情况,这个等式并不完全正确,但这只是因为你没有最坏情况。在您的情况下,搜索过程实际上不必生成等式的最后(b ^(d + 1) - b)节点。
关于您使用的术语的最后说明:您询问如何评估 b ^(d + 1)(例如, b ^(3 + 1)如果没有深度水平低于 d = 3 。在数学上评估该术语仍然没有问题。即使在你的情况下没有深度4级,我们仍然可以在数学上评估术语 b ^(3 + 1)。在你的情况下这样做是没有意义的,因为它不正确,但我们仍然可以评估这个术语。