蟻群算法求解TSP問題.doc

蟻群算法求解TSP問題.doc

ID:57381897

大小:59.00 KB

頁數(shù):8頁

時間:2020-08-14

蟻群算法求解TSP問題.doc_第1頁
蟻群算法求解TSP問題.doc_第2頁
蟻群算法求解TSP問題.doc_第3頁
蟻群算法求解TSP問題.doc_第4頁
蟻群算法求解TSP問題.doc_第5頁
資源描述:

《蟻群算法求解TSP問題.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、廣東工業(yè)大學(xué)課程作業(yè)課程題目基于ACO算法求解城市tsp學(xué)生姓名朱美霞學(xué)生學(xué)號專業(yè)班級計算機技術(shù)2015年2月15日1.AOC算法的數(shù)學(xué)模型(1)、基本參數(shù)、信息素濃度公式、擇路概率設(shè)螞蟻的數(shù)量為m,城市的數(shù)量為n,城市i與城市j之間的距離為dij,t時刻城市i與城市j之間的信息素濃度為tij(t),初始時刻,各個城市間連接路徑上的信息素濃度相同,不妨記為tij(0)=t0。螞蟻k(k=1,2,..,m)根據(jù)各城市間連接路徑上的信息素濃度,決定其下一個要訪問的城市,設(shè)Pijk(t)表示t時刻,螞蟻k從城市i到城市j

2、的概率,其計算公式為如下:其中:hij(t)為啟發(fā)式函數(shù),hij(t)=1/dij,表示螞蟻從城市i轉(zhuǎn)移到城市j的期望程序;allowk(k=1,2,…,m)表示螞蟻k待訪問的城市的集合,開始時allowk為其他n-1城市,隨著時間推進,其中的元素不斷減少,直至為空,表示所有城市訪問完,即遍歷所有城市。a為信息素的重要程度因子,其值越大,轉(zhuǎn)移中起的作用越大b為啟發(fā)函數(shù)的重要程度因子,其值越大,表示啟發(fā)函數(shù)在轉(zhuǎn)移中的作用越大,即螞蟻以較大的概率轉(zhuǎn)移到距離短的城市。螞蟻釋放的信息素會隨時間的推進而減少,設(shè)參數(shù)r(0

3、<1)表示信息素的揮發(fā)度,當(dāng)所有螞蟻完成一次循環(huán)后,各個城市間連接路徑上的信息素濃度,需要實時更新。tij(t+1)=(1-r)tij(t)+Dtij,Dtij=其中:Dtijk表示螞蟻k在城市i與城市j的連接路徑上,釋放的信息素濃度Dtij表示所有螞蟻在城市i與城市j的連接路徑上,釋放的信息素濃度。(2)、Dtijk的計算方法Dtijk=其中:Q為常數(shù),表示螞蟻循環(huán)一次釋放的信息素的總量;dij為第k只螞蟻經(jīng)過路徑的長度,Length;4.相關(guān)程序1、訪問每個城市一次也僅一次的最短路徑,共有30個2、城市的坐標(biāo)c

4、itys,這是直角坐標(biāo),根據(jù)二個城市的坐標(biāo)值,可以用D=可計算出任意二個城市間的距離。citys=1304231236391315417722443712139934881535332615563238122941961004431279043865703007197025621756278814912381167613326953715167839182179406123703780221236762578402928384263293134291908350723673394264334393201293532

5、403140355025452357277828263、代碼clearallclcloadcitys_data.mat%計算城市間相互距離n=size(citys,1);%城市的個數(shù)D=zeros(n,n);%n行n列的矩陣,即任意二個城市之間的距離fori=1:nforj=1:nifi~=jD(i,j)=sqrt(sum((citys(i,:)-citys(j,:)).^2));elseD(i,j)=1e-4;endendend%%初始化參數(shù)m=50;%螞蟻數(shù)量alpha=1;%信息素重要程度因子beta=5;%

6、啟發(fā)函數(shù)重要程度因子rho=0.1;%信息素揮發(fā)因子Q=1;%常系數(shù)Eta=1./D;%啟發(fā)函數(shù)Tau=ones(n,n);%信息素矩陣,全1矩陣Table=zeros(m,n);%路徑記錄表,全0矩陣,每只螞蟻依次走過的城市iter=1;%迭代次數(shù)初值iter_max=200;%最大迭代次數(shù)Route_best=zeros(iter_max,n);%各代最佳路徑Length_best=zeros(iter_max,1);%各代最佳路徑的長度Length_ave=zeros(iter_max,1);%各代路徑的平均

7、長度%%迭代尋找最佳路徑whileiter<=iter_max%隨機產(chǎn)生各個螞蟻的起點城市start=zeros(m,1);%m是螞蟻的個數(shù),m行1列的矩陣,記錄每個螞蟻的城市編號fori=1:mtemp=randperm(n);start(i)=temp(1);endTable(:,1)=start;%路徑記錄表的1列,為每個螞蟻的起點城市%構(gòu)建解空間citys_index=1:n;%逐個螞蟻路徑選擇fori=1:m%逐個城市路徑選擇forj=2:ntabu=Table(i,1:(j-1));%已訪問的城市集合(

8、禁忌表)allow_index=~ismember(citys_index,tabu);%不是tabu的城市就是要訪問的城市allow=citys_index(allow_index);%待訪問的城市集合P=allow;fork=1:length(allow)%計算城市間轉(zhuǎn)移概率P(k)=Tau(tabu(end),allow(k))^alpha*Eta(t

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

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

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