2012-03-12 11 views
2

頂点にコストがかかる有向グラフがあります。 2つの頂点の間に最大コストのパスを見つけたいと思いますが、最小コストでパスを解くアルゴリズムしか見つかりませんでした。最大コストのパスを見つける方法

また、私はJavaを使用しています。

+0

グラフに負のエッジ重みがありますか?コストゼロのエッジウェイト? – user396089

答えて

5
  1. ノーマライズすべてのコスト最小のコストは0
  2. 変化よりも大きくなるように(1 /コスト)にすべてのコスト。
  3. 最小コストアルゴリズムを実行します。

結果のパスは、元のグラフの最大コストパスです。

+0

これは、エッジコストのいずれも負でない場合や0 – user396089

+0

@ user396089の場合に有効です。ステップ1は何ですか。 – paislee

+0

これは、コストを正規化するためにO(n)の複雑さを追加します。可能であれば、アルゴリズムの変更がより効率的になります。 –

2

使用するアルゴリズムの評価関数を変更するだけです。最短パスの場合、関数はより短いパスに対して大きな値を返します。短いパスの場合は、より小さい値を返すことをお勧めします。

関連する問題