負のサイクルが存在する場合の最短経路を見つける


13

各エッジの重みが負になる可能性のある有向巡回グラフを考えると、「最短経路」の概念は負のサイクルがない場合にのみ意味があり、その場合、Bellman-Fordアルゴリズムを適用できます。

ただし、サイクリングを伴わない2つの頂点間の最短パスを見つけることに興味があります(つまり、同じ頂点に2回アクセスできないという制約の下)。この問題はよく研究されていますか?Bellman-Fordアルゴリズムのバリアントを使用できますか?

また、同等のすべてのペアの問題にも興味があります。それ以外の場合は、Floyd–Warshallを適用します。

回答:


23

頂点が繰り返されていないパスはsimple-pathsと呼ばれるため、負のサイクルを持つグラフで最短のシンプルパスを探しています。

これは、最長パス問題から削減できます。問題の高速なソルバーがある場合、エッジの重みが正のグラフのみを指定し、すべてのエッジの重みを無効にしてソルバーを実行すると、元のグラフで最長のパスが得られます。

したがって、あなたの問題はNPハードです。


1
これは美しい答えです。私は何人かの人々にこのIRLを解決策なしで尋ねましたが、これを彼らに説明したとき、彼らの反応は私のものと同じでした-「もちろん、今はとても愚かです」。
-jleahy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.