1から5に行くとします。最短ルートは1-4-3-5(合計:60 km)です。
そのために Dijkstraのアルゴリズム を使用できます。
今問題は、交通渋滞やその他の要因により、最短ルートが常に最速ルートであるとは限らないことです。
例えば:
交通渋滞や事故がないため、おそらくルート1-4-5で速度を上げることができるので、5より早く到着します。
まあそれは一般的な考えであり、詳細についてはまだ考えていません。
この問題を解決するアルゴリズムはありますか?
画像に渋滞をもたらしたので、 Braess 'Paradox に巻き込まれないように注意してください。全員が最適な経路を選択すると、全員の移動時間が長くなります。
はい:ダイクストラ
ダイクストラはこの状況でも同様に機能します。
各弧の重みとして、距離ではなく時間を使用します。
はい。ダイクストラのアルゴリズムはこの問題を解決します。
あなたの場合の問題は、最短経路が移動距離に等しいと自動的に想定することです。実際には、経路をたどることのCOSTに相当します。
1つのパスにロードブロッキングがある場合、そのCOSTは高くなり、アルゴリズムは引き続き適用されます。
ノード間の時間で距離を置き換えることができ、同じ方法でそれを解決できるはずです。
前述のように、最短距離で使用されるだけではありません。このアニメーションは、ダイクストラの「力」(より良い言葉がないため)をよく理解していると思います。