当目标节点的深度已知时,哪种图搜索算法最好使用BFS或DFS?

时间:2015-02-14 04:31:09

标签: search graph depth-first-search breadth-first-search

在图中,当我们知道目标节点的深度时,哪种图搜索算法使用最快:BFS还是DFS?

2 个答案:

答案 0 :(得分:1)

你如何定义" best" ?

如果您知道目标节点距离根节点(您开始搜索的节点)的深度n,则BFS将确保搜索不会使用{{{{}来迭代节点1}}。

那就是说,DFS可能仍然会选择"这样一条路线比BFS更快(迭代更少的节点)。

总而言之,我不认为你可以定义" best"在这种情况下。

答案 1 :(得分:0)

正如我在评论中提到的,如果解决方案处于已知深度d,则可以使用depth-limited search而不是DFS。对于所有三种方法(BFS,DFS和DLS),算法复杂度在状态空间图中的节点数和链接数是线性的,在最坏的情况下(即O(| V | + | E |)。

实际上,根据d,DLS可以更快,因为BFS需要将搜索树开发直到深度d-1,并且可能是深度d的一部分(因此几乎整个树)。使用DLS时,只有在最糟糕的情况下才会发生这种情况。