StackOverflowでこの質問をしました。ここに引っ越すように頼まれました。だからここにあります:
これらが正しい場合、ダイクストラのアルゴリズムと有向グラフでの幅優先検索に関するいくつかの説明と入力が必要です。
ダイクストラのアルゴリズムは、サイクルがあるかどうかに関係なく、重み付きグラフでA
ノードからノードへの最短経路を見つけますF
(負の重みがない限り)。
しかし、そのためにA
は、グラフ内の他のすべてのノードへのすべてのパスが計算A
さF
れ、でノードのシーケンスを逆にすることで、からへのパスを取得しますprev
。
BFS:非加重グラフでA
ノードからノードへの最短パスを見つけF
ますが、サイクルが検出された場合は失敗します。
ただし、BFSはノードAからノードFへのパスを計算するだけで、必ずしもノードAからのすべてのパスを計算するわけではありません。ノードFに早く到達した場合は、パスを返すだけです。