TSP-

関数[S、R] = Metropolis(S1、S2、D、T)

%%入力

%S1:現在のソリューション

%S2:新しいソリューション

%D:距離行列(2つの都市間の距離)

%T:現在の温度

%%出力

%S:次の現在のソリューション

%R:次の現在のソリューションのルート距離

%%

R1 = PathLength(D、S1);

N =長さ(S1);%は都市の数を取得

 

R2 = PathLength(D、S2);%ルート長を計算

dC = R2-R1;計算能力の差異%

dC <0%の場合、能力が低下した場合に新しいルートを受け入れます

    S = S2;

    R = R2;

elseif exp(-dC / T)> = rand%exp(-dC / T)の確率で新しいルートを受け入れる

    S = S2;

    R = R2;

else%は新しいルートを受け入れません

    S = S1;

    R = R1;

終わり

おすすめ

転載: www.cnblogs.com/free-1122/p/12722350.html