私が作成したシンプルなネットワーク負荷シミュレーションツールを書き直そうとしています。今度はBoostライブラリを使用してパフォーマンスを改善しています(実装ミスを避けるため)。元のプログラムでは、ネットワーク上のすべてのソースノードからDijkstraのアルゴリズムを呼び出すことで最短経路を計算したので、Johnsonのもののような全ペアアルゴリズムがあることがわかったときに喜んでいました(私のグラフは比較的疎です、 私が想定し)。しかし、このアルゴリズムは距離行列を返すだけですが、私は実際の経路を必要としています - 少なくとも、Dijkstraのアルゴリズム実装が返す前のマップのようなものです。それを達成する方法はありますか、またはグラフの各頂点についてDijkstraを繰り返し呼び出すように戻す必要はありますか?私は一日中見渡してきましたが、何も見つかりませんでした。繰り返しアプローチに戻る前に確かめたいと思っていました。実際にルートを保存するすべてのペアの最短パスアルゴリズム?
ありがとうございます!
こんにちは、返信ありがとうございます。残念ながら、同じ長さの複数の最短パスが存在しないことを保証することはできません。私は単純にすべてのソースに対してダイクストラアルゴリズムを反復し、それを使って完了することに決めました。 – manuhalo
最短パスが複数ある場合でも、最短パスを1つ見つけるのは簡単です。 – baol