蟻群算法matlab源碼

蟻群算法matlab源碼

ID:16069461

大?。?45.00 KB

頁(yè)數(shù):3頁(yè)

時(shí)間:2018-08-07

蟻群算法matlab源碼_第1頁(yè)
蟻群算法matlab源碼_第2頁(yè)
蟻群算法matlab源碼_第3頁(yè)
資源描述:

《蟻群算法matlab源碼》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、function[Shortest_Route,Shortest_Length]=ACATSP(D,NC_max,m,Alpha,Beta,Rho,Q)%%=========================================================================%%ACATSP.m%%AntColonyAlgorithmforTravelingSalesmanProblem%%ChengAihua,PLAInformationEngineeringUniversit

2、y,ZhengZhou,China%%Email:aihuacheng@gmail.com%%Allrightsreserved%%-------------------------------------------------------------------------%%主要符號(hào)說(shuō)明%%Cn個(gè)城市的坐標(biāo),n×2的矩陣%%NC_max最大迭代次數(shù)%%m螞蟻個(gè)數(shù)%%Alpha表征信息素重要程度的參數(shù)%%Beta表征啟發(fā)式因子重要程度的參數(shù)%%Rho信息素蒸發(fā)系數(shù)%%Q信息素增加強(qiáng)度系數(shù)%%R_bes

3、t各代最佳路線(xiàn)%%L_best各代最佳路線(xiàn)的長(zhǎng)度%%L_ave各代路線(xiàn)的平均長(zhǎng)度%%=========================================================================%%第一步:變量初始化n=size(D,1);fori=1:nD(i,i)=eps;endEta=1./D;%Eta為啟發(fā)因子,這里設(shè)為距離的倒數(shù)Tau=ones(n,n);%Tau為信息素矩陣Tabu=zeros(m,n);%存儲(chǔ)并記錄路徑的生成NC=1;%迭代計(jì)數(shù)器R_bes

4、t=zeros(NC_max,n);%各代最佳路線(xiàn)L_best=inf.*ones(NC_max,1);%各代最佳路線(xiàn)的長(zhǎng)度L_ave=zeros(NC_max,1);%各代路線(xiàn)的平均長(zhǎng)度whileNC<=NC_max%停止條件之一:達(dá)到最大迭代次數(shù)%%第二步:將m只螞蟻放到n個(gè)城市上Randpos=[];fori=1:(ceil(m/n))Randpos=[Randpos,randperm(n)];endTabu(:,1)=(Randpos(1,1:m))';%%第三步:m只螞蟻按概率函數(shù)選擇下一座城市

5、,完成各自的周游forj=2:nfori=1:mvisited=Tabu(i,1:(j-1));%已訪(fǎng)問(wèn)的城市J=zeros(1,(n-j+1));%待訪(fǎng)問(wèn)的城市P=J;%待訪(fǎng)問(wèn)城市的選擇概率分布Jc=1;fork=1:niflength(find(visited==k))==0J(Jc)=k;Jc=Jc+1;endend%下面計(jì)算待選城市的概率分布fork=1:length(J)P(k)=(Tau(visited(end),J(k))^Alpha)*(Eta(visited(end),J(k))^Bet

6、a);%(信息素^信息素系數(shù))*(啟發(fā)因子^啟發(fā)因子系數(shù))endP=P/(sum(P));%按概率原則選取下一個(gè)城市Pcum=cumsum(P);Select=find(Pcum>=rand);to_visit=J(Select(1));Tabu(i,j)=to_visit;endendifNC>=2Tabu(1,:)=R_best(NC-1,:);end%%第四步:記錄本次迭代最佳路線(xiàn)L=zeros(m,1);fori=1:mR=Tabu(i,:);forj=1:(n-1)L(i)=L(i)+D(R(j

7、),R(j+1));endL(i)=L(i)+D(R(1),R(n));endL_best(NC)=min(L);pos=find(L==L_best(NC));R_best(NC,:)=Tabu(pos(1),:);L_ave(NC)=mean(L);NC=NC+1%%第五步:更新信息素Delta_Tau=zeros(n,n);fori=1:mforj=1:(n-1)Delta_Tau(Tabu(i,j),Tabu(i,j+1))=Delta_Tau(Tabu(i,j),Tabu(i,j+1))+Q/L

8、(i);endDelta_Tau(Tabu(i,n),Tabu(i,1))=Delta_Tau(Tabu(i,n),Tabu(i,1))+Q/L(i);endTau=(1-Rho).*Tau+Delta_Tau;%%第六步:禁忌表清零Tabu=zeros(m,n);end%%第七步:輸出結(jié)果Pos=find(L_best==min(L_best));Shortest_Route=R_best(Pos(1),:)Shortest

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。