資源簡介
基于免疫算法的TSP問題MATLAB源程序,各點坐標可修改輸入。可以成功運行
代碼片段和文件信息
%%?基于免疫算法的TSP問題解決
%?C矩陣數組是所有點的坐標,可修改輸入
function?mianyitsp()?
C=[1304?2312;3639?1315;4177?2244;3712?1399;3488?1535;3326?1556;...
????3238?1229;4196?1044;4312?790;4386?570;3007?1970;2562?1756;...
????2788?1491;2381?1676;1332?695;3715?1678;3918?2179;4061?2370;...
????3780?2212;3676?2578;4029?2838;4263?2931;3429?1908;3507?2376;...
????3394?2643;3439?3201;2935?3240;3140?3550;2545?2357;2778?2826;...
????2370?2975];
N=size(C1);????%城市數目,基因數目
D=zeros(N);?????%任意兩個城市距離矩陣
NP=100;?????????%免疫個體數目
G=1000;?????????%最大免疫代數
Pc=0.1;?????????%交叉率
f=zeros(NNP);??%中間變量
len=zeros(NP1);
%%%%%求間距%%%%%
for?i=1:N
????for?j=1:N
????????D(ij)=((C(i1)-C(j1))^2+(C(i2)-C(j2))^2)^0.5;
????end
end
%%%%%隨機生成第一代%%%%%
for?i=1:NP
????f(:i)=randperm(N);%隨機打散一個數字序列
end
%%%%%計算路徑長度%%%%%
?for
評論
共有 條評論