最近、私は最短経路高速アルゴリズムについて読みました。私は、SPFA woludの標準実装が非常に遅いテストケースを構築する方法を考えています。何でも知ってますか?例えばSPFAの最悪テストケース
procedure Shortest-Path-Faster-Algorithm(G, s)
1 for each vertex v ≠ s in V(G)
2 d(v) := ∞
3 d(s) := 0
4 offer s into Q
5 while Q is not empty
6 u := poll Q
7 for each edge (u, v) in E(G)
8 if d(u) + w(u, v) < d(v) then
9 d(v) := d(u) + w(u, v)
10 if v is not in Q then
11 offer v into Q
ウィキペディアで提案されたテストケースに問題はありますか? https://en.wikipedia.org/wiki/Shortest_Path_Faster_Algorithm#Worst-case_performance –
私はそれを理解していないと思います。私は10^5の頂点と5 * 10^5のエッジを持つグラフを生成しました。小さいウェイト(1と80の間のランダムウェイト)を持つフォーム(i、i + 1)の10^5エッジがあります。そして、6000から10000までの重みを持つ4 * 10^5ランダムエッジがあります。しかし、私のプログラムはこのテストケースで非常に高速に動作します。 –