資源簡介
經(jīng)典的蟻群算法用于解決旅行商問題,包括實(shí)例數(shù)據(jù),直接點(diǎn)擊Run.m運(yùn)行,結(jié)果繪圖
代碼片段和文件信息
function?[R_bestL_bestL_aveShortest_RouteShortest_Length]=ACATSP(CNC_maxmAlphaBetaRhoQ)
%%-------------------------------------------------------------------------
%%?主要符號說明
%%?C?n個(gè)城市的坐標(biāo),n×2的矩陣
%%?NC_max?最大迭代次數(shù)
%%?m?螞蟻個(gè)數(shù)
%%?Alpha?表征信息素重要程度的參數(shù)
%%?Beta?表征啟發(fā)式因子重要程度的參數(shù)
%%?Rho?信息素蒸發(fā)系數(shù)
%%?Q?信息素增加強(qiáng)度系數(shù)
%%?R_best?各代最佳路線
%%?L_best?各代最佳路線的長度
%%?=========================================================================
%%第一步:變量初始化
n=size(C1);%n表示問題的規(guī)模(城市個(gè)數(shù))
D=zeros(nn);%D表示完全圖的賦權(quán)鄰接矩陣
for?i=1:n
for?j=1:n
if?i~=j
D(ij)=((C(i1)-C(j1))^2+(C(i2)-C(j2))^2)^0.5;
else
D(ij)=eps;??????%i=j時(shí)不計(jì)算,應(yīng)該為0,但后面的啟發(fā)因子要取倒數(shù),用eps(浮點(diǎn)相對精度)表示
end
D(ji)=D(ij);???%對稱矩陣
end
end
Eta=1./D;??????????%Eta為啟發(fā)因子,這里設(shè)為距離的倒數(shù)
Tau=ones(nn);?????%Tau為信息素矩陣
Tabu=zeros(mn);???%存儲并記錄路徑的生成
NC=1;???????????????%迭代計(jì)數(shù)器,記錄迭代次數(shù)
R_best=zeros(NC_maxn);???????%各代最佳路線
L_best=inf.*ones(NC_max1);???%各代最佳路線的長度
L_ave=zeros(NC_max1);????????%各代路線的平均長度
?
while?NC<=NC_max????????%停止條件之一:達(dá)到最大迭代次數(shù),停止
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????4462??2015-09-19?20:12??ACATSP.m
?????文件?????????600??2015-09-19?15:15??coords.mat
?????文件????????1058??2015-09-19?18:00??Run.m
評論
共有 條評論