資源簡介
自己寫的有關蟻群算法求解51個城市TSP問題的文件 因為是自己寫的文件所以有點亂 哎 沒養成編程好習慣 希望對大家有一點參考作用 帶GUI

代碼片段和文件信息
function?[?reclongshortwayminrelong?]?=?aca(?m?alfap?betap?timesbegininflimitainfloseinfgainmininfmaxinfacoebcoe)
%??各個參數選擇相當重要
%????螞蟻數?參數?參數??輪回數?最初信息素?變異路線概率?信息素衰減率?
%???m個螞蟻?????試驗數據在citys.txt??????
load?citys.txt;?????%載入城市信息
reclong=zeros(1times);%保存每輪的最短路程
minrelong=10000000;%所有的最短路程值
n=size(citys1);???%一共n個城市
%?m=n;
shortway=zeros(1n);%最短路程對應的路徑
citysds=citysdis(citysn);%城市間距離值矩陣
??citym=mant2ncitys(mn);?%m只螞蟻放n個城市上??1×m列?第m個螞蟻在哪個城市
infs=ones(nn)*begininf;%初始化信息素矩陣n×n個城市間的路線
beta=(bcoe./citysds).^betap;%城市間的啟發因子??be系數
for?ncn=1:times
????????antway=zeros(mn);%記錄每輪m個螞蟻走過n個城市的線路?過程
%????????????????????citym=mant2ncitys(mn);?%m只螞蟻放n個城市上??1×m列?第m個螞蟻在哪個城市
%??????????????????????citym=1:m;
????????antway(:1)=citym‘;?%初始化每只螞蟻的出發城市
????????
????????alfa=(acoe.*infs).^alfap?;?????????%城市間道路的信息素因素
????????cityprop=alfa.*beta?;%每條道路的可能性分子
????????cityprop=limitprop(citypropnlimita);
????????
?for?k=1:m??????????????%m個螞蟻走一圈??第k個走的過程
????????????????????knowcity=antway(k1);?%螞蟻的起始城市作為最初的當前城市
????????????????????yescity=[knowcity];????????%已經走過的城市集合
%?????????????????????for?i=2:n-1
?????????????????????for?i=2:n
????????????????????????kantprop=cityprop(knowcity:);%取得螞蟻的??當前城市??到各個城市的概率分子行
????????????????????????kantprop(knowcity)=0;??????%城市自己到自己的概率要變為0
????????????????????????nextcity=picknextcity(kantpropyescityn);??????%選出下一個城市
????????????????????????yescity=[yescity?nextcity];???????%添加走過的城市集合
????????????????????????knowcity=nextcity?;?%選出的城市作為下一個當前城市
????????????????????end
%?????????????????????yescity=[yescity?sum(1:n)-sum(yescity)];%最后一個走的城市
????????????????????antway(k:)=yescity;???%本次走過的城市更新?所有螞蟻的路徑集合
????????????????????
?end
%計算本輪走完后每只螞蟻走過的總路程?本論最短路程?最短路程的路徑
[antwalklongmindsminline]=perantwalk(antwaycitysds);
reclong(ncn)=?minds;%保留本輪最短路程值
????????if?minds ????????????minrelong=minds;
????????????shortway=minline??;???%跟新最短路程值?和最短路徑
????????end
%更新信息素
%?inflose;infgain;
?infs=(infs.*inflose);
infs=updatainfs(infsantwalklongantwaymninfgainmininfmaxinf);
%?Delta_Tau=zeros(nn);
%?
%????infs=(infs.*inflose);
%?????for?i=1:m
%?????????????for?j=1:(n-1)
%?????????????Delta_Tau(antway(ij)antway(ij+1))=Delta_Tau(antway(ij)antway(ij+1))+infgain/antwalklong(i);
%?????????????Delta_Tau(antway(ij+1)antway(ij))=?Delta_Tau(antway(ij)antway(ij+1));%
%??????????????end
%?????Delta_Tau(antway(in)antway(i1))=Delta_Tau(antway(in)antway(i1))+infgain/antwalklong(i);
%?????Delta_Tau(antway(i1)antway(in))=????Delta_Tau(antway(in)antway(i1));%
%?????end
%?????infs=infs+Delta_Tau;
end
%?cityprop
%??infs
%??shortway
%??minrelong
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2011-10-22?20:26??蟻群算法\
?????文件????????3937??2011-10-15?15:24??蟻群算法\aca.asv
?????文件????????3105??2011-10-15?15:45??蟻群算法\aca.m
?????文件????????3939??2011-10-15?15:41??蟻群算法\aca1.m
?????文件???????19023??2011-10-22?20:23??蟻群算法\aca511.asv
?????文件???????78436??2011-10-06?21:05??蟻群算法\aca511.exe
?????文件???????15803??2011-10-22?20:00??蟻群算法\aca511.fig
?????文件???????19099??2011-10-22?20:25??蟻群算法\aca511.m
?????文件???????35109??2011-10-06?21:05??蟻群算法\aca511.prj
?????文件????????2859??2011-10-06?21:05??蟻群算法\aca511_delay_load.c
?????文件????????3122??2011-10-06?21:05??蟻群算法\aca511_main.c
?????文件????????6354??2011-10-06?21:05??蟻群算法\aca511_mcc_component_data.c
?????文件?????????934??2011-10-22?21:16??蟻群算法\cancelcross.asv
?????文件????????1027??2011-10-22?22:18??蟻群算法\cancelcross.m
?????文件?????????493??2011-10-02?23:59??蟻群算法\citys.txt
?????文件??????????72??2011-10-05?23:52??蟻群算法\citys0.txt
?????文件?????????420??2011-10-15?11:07??蟻群算法\citys00.txt
?????文件??????????89??2011-10-22?19:45??蟻群算法\citys12.txt
?????文件?????????149??2011-10-22?19:42??蟻群算法\citys2.txt
?????文件?????????404??2011-10-15?15:09??蟻群算法\citysdis.asv
?????文件?????????409??2011-10-15?15:10??蟻群算法\citysdis.m
?????文件?????????419??2011-10-22?22:06??蟻群算法\countshortway.asv
?????文件?????????428??2011-10-22?22:06??蟻群算法\countshortway.m
?????文件??????????33??2011-10-22?16:47??蟻群算法\cross0.txt
?????文件?????????349??2011-10-22?20:57??蟻群算法\cross1.txt
?????文件?????????198??2011-10-22?21:56??蟻群算法\crossornot.asv
?????文件?????????332??2011-10-22?22:00??蟻群算法\crossornot.m
?????文件????????7802??2011-10-14?19:51??蟻群算法\duanant.m
?????文件?????????309??2011-10-13?22:27??蟻群算法\limitprop.m
?????文件?????????217??2011-10-03?21:01??蟻群算法\mant2ncitys.m
?????文件??????936936??2011-10-06?21:05??蟻群算法\mccExcludedFiles.log
............此處省略21個文件信息
- 上一篇:psnr峰值信噪比
- 下一篇:jpeg的matlab代碼
評論
共有 條評論