-1

ある都市から別の都市への最短経路を計算する簡単なプログラムを開発しています。グラフの有向加重ノードを使用して、列車のトレイル マップを表します。

Bellman-Fordこれまでのところ、 、DijkstraFloyd-Warshallおよびアルゴリズムを試しJohnsonましたが、それらはすべて、出発地とは異なる別の目的地への最短経路を見つけるのに適しています。

しかし、都市 A と他の都市を通って都市 A に戻るパスを計算する必要がある場合、これらのメソッドは無限ループに巻き込まれないように都市から都市自体へのパスを無視するため、常に 0 の値を取得します。

このターゲットtargetノードをキャッチしたときにアルゴリズムを停止させる別のパラメーターを作成することで、そのループの問題を簡単に解決できることはわかっていますが、それらのライブラリの 1 つを変更するスキルがありません。

誰か道を教えてくれませんか?

私のグラフはで、 からまでAB5 - BC4 - CD8 - DC8 - DE6 - AD5 - CE2 - EB3 - AE7の距離はであるはずですが、これらすべてのアルゴリズムでは が返されます。BB90

注: 少なくとも Java では、StackOverflow と Google で検索したため、これまでのところ、最初に端でルートを見つけることに誰も悩まされていないため、重複していません。

4

1 に答える 1

0

簡単なアプローチは、変更されたグラフで既に持っている最短パス アルゴリズム/ライブラリを使用することです。各ノードと対応する隣接する出力エッジを複製し、複製したノードから元のノードまでの最短パスを見つけることができます。

AA パスの変換は次のようになります (簡単にするために重みは付けていません)。

グラフィカルな例

于 2013-08-27T21:27:12.823 に答える