为什么BFS比DFS更适合并行化?

时间:2012-05-15 14:00:22

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

我读过BFS算法比DFS更适合并行实现。我很难理解为什么这应该是真的直觉。谁能解释一下?

由于

2 个答案:

答案 0 :(得分:2)

BFS是传播边界的程序。 “传播”意味着将所有未访问的相邻顶点推入队列,并且可以单独处理

在DFS中,沿着诸如A-> B-> C的方向逐个访问顶点。访问B必须在访问C之前进行。这是一个无法轻松并行化的顺序过程。

但事实是BFS和DFS都难以并行化,因为所有处理节点都必须知道全局信息。访问全局变量总是需要节点之间的同步和通信。

答案 1 :(得分:0)

一般来说,有一些关于 DFS BFS 的良好信息:

特别是animation显示 BFS 如何使用更多并行概念。我认为 BFS 可以并行实现,但 DFS 没有并行解决方案。 DFS 是一种线性算法,可以调用每个孩子一次。