ベルマンフォードを使用して、負の重みを持つグラフの最短経路を探しています。このグラフには、ループの可能性はなく、双方向接続もありません。私は、パスが共通のノードを共有していないグラフからK個の最短経路を探したいと思う。私はこれを行う方法を学ぶために探すことができるアルゴリズムはありますか?現時点では、スピードよりも単純な実装が重要です。共通の頂点を持たないグラフの上位K個のパスを負の重みで見つけるアルゴリズム?
追加:コメントありがとうございます。明確にするために、私は指定された開始ノードから指定された終了ノードに至る最上位のKの方法を探しています。他のノードは共通していません。グローバルな最適化が必要です。ノードを順番に見つけて削除することは満足のいく結果をもたらさない。この1つ:https://en.wikipedia.org/wiki/Yen%27s_algorithmは、私が話していることの味を与えますが、この場合、負のエッジコストを必要とせず、ノードを共有することもできます。
私はグラフが接続されていると仮定できると思いますか? – Codor
2つの頂点を結びつけて2つの頂点だけを共有するKの最短経路のように、共通のノードを共有しないK個の最短経路はありますか?グラフがループレスであれば、すべての経路を使い果たすことができ、最短のKを取ることができますか? – opticaliqlusion
それで、あなたは有向非循環グラフを持っていますか?あなたが今やっていることは、最短経路を繰り返し見つけたり、内部ノードを削除したり、グローバル最適化に興味がありますか? –