0

これは、ダイクストラアルゴリズムの実装です。の場合、 ??Distance = Inf*ones(N,1)の値は何ですか?Distance(CurrentNode)そして、誰かがsrcとConMatの値の例を与えることもできますか?ありがとうございました!

while (nVisited <N)
   Visited(CurrentNode) = 1;
   for i=1:N
       if (ConMat(CurrentNode,i)>0)
           temp = ConMat(CurrentNode,i) + **Distance(CurrentNode)**;
           if (temp< Distance(i))
               Distance(i) = temp;
               PrevNode(i) = CurrentNode;
           end
       end
   end
4

2 に答える 2

1

distanceは、長さnの配列です。ここで、nはノードの数です。distance(i)は、srcからノードiまでの最適な距離です。すべての距離は無限大から始まりますが、distance(src)は0から始まります。次に、距離を更新します。

于 2012-10-30T23:42:21.137 に答える
1

Distance = Inf * ones(N,1)戻り値

Inf
Inf
Inf

..。
Inf

サイズがNx1の配列。


CurrentNodeアルゴリズムがパスを計算している頂点のインデックスが含まれています。次のような単純なグラフがあるとします(ウィキペディアから盗まれた):

ここに画像の説明を入力してください

イニシャルsrcは、検索を開始するノードです。この場合は、インデックス1です。最初のノードの場合、Distance0です。したがって、、、Distance( 1 ) = 0他の人は( )にDistance等しい。InfDistance(src+1:end) = Inf


ConMat行列表現のグラフです。

于 2012-10-30T23:45:37.293 に答える