6

BFS アルゴリズムは、DFS よりも並列実装に適していると読みました。なぜこれが真実であるべきなのか、直感を理解するのに苦労しています。誰でも説明できますか?

ありがとう

4

2 に答える 2

3

BFS はフロンティアを伝播する手順です。「伝播」とは、アクセスされていないすべての隣接する頂点をキューにプッシュすることを意味し、それらは個別に処理できます。

DFS では、頂点は A->B->C のような方向に沿って 1 つずつ訪問されます。B を訪問する前に C を訪問する必要があります。これは、簡単に並列化できない順次処理です。

しかし、実際には、BFS と DFS の両方を並列化するのは困難です。これは、すべての処理ノードがグローバル情報を認識している必要があるためです。グローバル変数にアクセスするには、常にノード間の同期と通信が必要です。

于 2012-05-30T13:52:30.713 に答える
0

一般的なDFSBFSに関するいくつかの良い情報があります。

特にアニメーションは、 BFSがより多くの並列概念を使用する方法を示しています。BFSは並列に実装できると思いますが、 DFSの並列ソリューションはありません。 DFSは、すべての子を 1 回呼び出す線形アルゴリズムです。

于 2012-05-16T18:49:34.690 に答える