指定されたコストを超えない最速のパスを見つけるのに問題があります。これと同様の質問がありますが、それらの間には大きな違いがあります。ここで、データに表示できるレコードは、低いポイントから高いポイントにつながるレコードだけです(たとえば、1-> 3が表示される場合がありますが、3-> 1は表示されない場合があります)(以下を参照)。それを知らずに、私はダイクストラを使います。その追加情報により、ダイクストラアルゴリズムよりも短時間で実行できる可能性があります。あなたはそれについてどう思いますか?
指定された最大コストと4つのレコードがあるとしましょう。
// specified cost
10
// end point
5
//(start point) (finish point) (time) (cost)
2 5 50 5
3 5 20 9
1 2 30 5
1 3 30 7
// all the records lead from a lower to a higher point no.
ポイント(1)から(5)まで行くことができるかどうか(私たちが持っているよりもコストが<=のパスがない場合、または1-5の間に接続がない場合は不可能です)、もしそうなら、何をするかを決める必要がありますそこに入る最速の方法でしょう。
このようなデータの出力は次のようになります。
80 // fastest time
3 1 // number of points that (1 -> 2) -> (2 -> 5)
1->2移動できるという記録がある場合は注意してください
1 2 30 5
2<-1を移動することはできません。