1、ターゲット:無指向性又は最短経路を指します。
2、MATLABは達成します:
重量= [ 0 2 8 1 InfのInfのInfのInfのInfのInfのInfの、 2 0 6 Infの 1 InfのInfのInfのInfのInfのInfの、 8 6 0 7 5 1 2 InfのInfのInfのInfの、 1 Infの 7 0 InfのInfの 9 InfのInfのInfのInfの、 INF 1 5 INF 0 3 INF 2 9 INF INF。 INF Infの 1 Infの 3 0 4 Infの 6 InfのInfの; INF INF 2 9 INF 4 0 INF 3 1 INF。 INF INF INF INF 2 INF INF 0 7 INF 9 。 INF INF INF INF 9 6 3 7 0 1 2 。 INF INF INF INF INF INF 1 INF 1 0 4 。 infファイルinfファイルinfファイルinfファイルinfファイルinfファイルinfファイル 9 2 4 0 ;]。 [DIS、パス] =ダイクストラ(重量、1、11 ) dijkstra.mの 関数[分、パス] = ダイクストラ(端末、開始、W) N =サイズ(W 1)。ラベル(スタート)= 0 ; F(開始)= 始めます。 以下のための I = 1 :nの 場合、私は〜= 開始 ラベル(I) = infファイル。 エンド、エンド S(1)=始めます。U = 始めます。 一方、長さ(S)< N のために I = 1 :nの イン= 0 ; 用 J = 1 :長さ(S) であれば、I == S(J) イン = 1 。 終わり、 終わり であればインの== 0 V = I; もしラベル(V)>(ラベル(U)+ W(U、V)) ラベル(V) =(ラベル(U)+ (W U、V))。 F(V) = U。 エンド、 エンド、 エンド・ V1 = 0 。 K = INF。 以下のための I = 1:N イン = 0 。 用 J = 1 :長さ(S) であれば、I == S(J) イン = 1 。 終わり、 終わり であればインの== 0 V = I; もし K> ラベル(V) 、K =ラベル(V)。V1 = V; エンド、 エンド、 エンド S(長さ(S) + 1)= V1。 U = V1; 終了 分=ラベル(端子)経路(1)= 端子と I = 1 ; 一方、経路(I)〜= 開始 パス(I + 1)= F(経路(I))。 I = iは、+ 1 、 エンド パス(I) = 始めます。 L = 長さ(パス)。 パス =パス(L: - 1:1)。
図3に示すように、入力データフォーマット:
[ 0 2 8 1 InfのInfのInfのInfのInfのInfのInfの、 2 0 6 Infの 1 InfのInfのInfのInfのInfのInfの、 8 6 0 7 5 1 2 InfのInfのInfのInfの、 1 Infの 7 0 InfのInfの 9 InfのInfのInfのInfの、 INF 1 5 INF 0 3 INF 2 9 INF INF。 INF INF 1 INF 3 0 4 INF 6 infファイルinfファイル。 INF INF 2 9 INF 4 0 INF 3 1 INF。 INF INF INF INF 2 INF INF 0 7 INF 9 。 INF INF INF INF 9 6 3 7 0 1 2 。 INF INF INF INF INF INF 1 INF 1 0 4 。 INF INF INF INF INF INF INF 9 2 4 0 ;] [ 0 8 InfのInfのInfのInfの 7 8 InfのInfのInfの、 INF 0 3 INF INF INF INF INF INF INF INF。 INF INF 0 5 6 INF 5 INF INF INF INF。 INF INF INF 0 1 INF INF INF INF INF 12 。 INF INF 6 INF 0 2 INF INF INF INF 10 。 INF INF INF INF 2 0 9 INF 3 infファイルinfファイル。 INF INF INF INF INF 9 0 INF INF INF INF。 8 InfのInfのInfのInfのInfのInfの 0 9 InfのInfの。 INF INF INF INF 7 INF INF 9 0 2 INF。 INF INF INF INF INF INF INF INF 2 0 2 。 INF INF INF INF 10 INF INF INF INF INF 0 ;]。