6

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

谢谢

4

2 回答 2

3

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

在 DFS 中,顶点是沿着 A->B->C 的方向一个一个地访问的。访问B必须在访问C之前发生。这是一个不容易并行化的顺序过程。

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

于 2012-05-30T13:52:30.713 回答
0

一般来说,有一些关于DFSBFS的好信息:

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

于 2012-05-16T18:49:34.690 回答