蟻群算法人工智能實驗報告_第1頁
蟻群算法人工智能實驗報告_第2頁
蟻群算法人工智能實驗報告_第3頁
蟻群算法人工智能實驗報告_第4頁
蟻群算法人工智能實驗報告_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上人工智能實驗報告姓名:學(xué)號: 班級:實驗時間: 蟻群算法實驗原理: 螞蟻在覓食過程中可以找出巢穴到食物源的最短路徑,為什么?(1)信息素(pheromone)(2)正反饋現(xiàn)象:某一路徑上走過的螞蟻越多,則后來者選擇該路徑的概率就越大。 (3)揮發(fā)現(xiàn)象:路徑上的信息素濃度會隨著時間推進而逐漸衰減。蟻群算法的缺點:1)收斂速度慢2)易于陷入局部最優(yōu)改進:1)采用局部優(yōu)化,設(shè)計了三種優(yōu)化算子。2)采用蟻群優(yōu)化算法。3)其它優(yōu)化算法實驗內(nèi)容:旅行商問題(TSP,traveling salesman problem):一商人去n個城市銷貨,所有城市走一遍再回到起點,使所走路程最

2、短。實驗步驟:算法代碼:%蟻群算法的優(yōu)化計算旅行商問題(TSP)優(yōu)化% 清空環(huán)境變量clear allclc% 導(dǎo)入數(shù)據(jù)load citys_data.mat% 計算城市間相互距離n = size(citys,1);D = zeros(n,n);for i = 1:n for j = 1:n if i = j D(i,j) = sqrt(sum(citys(i,:) - citys(j,:).2); else D(i,j) = 1e-4; end end end% 初始化參數(shù)m = 50; % 螞蟻數(shù)量alpha = 1; % 信息素重要程度因子beta = 5; % 啟發(fā)函數(shù)重要程度因子rh

3、o = 0.1; % 信息素揮發(fā)因子Q = 1; % 常系數(shù)Eta = 1./D; % 啟發(fā)函數(shù)Tau = ones(n,n); % 信息素矩陣Table = zeros(m,n); % 路徑記錄表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); % 各代路徑的平均長度 % 迭代尋找最佳路徑while iter = rand)

4、; %選擇下一個訪問城市,往往轉(zhuǎn)移概率大的城市被選中的概率也更大。 target = allow(target_index(1); Table(i,j) = target; %已選定的下一個待訪問城市 end end % 計算各個螞蟻的路徑距離 Length = zeros(m,1); for i = 1:m Route = Table(i,:); for j = 1:(n - 1) Length(i) = Length(i) + D(Route(j),Route(j + 1); end Length(i) = Length(i) + D(Route(n),Route(1); %構(gòu)成環(huán) end

5、 % 計算最短路徑距離及平均距離 if iter = 1 min_Length,min_index = min(Length); Length_best(iter) = min_Length; Length_ave(iter) = mean(Length); Route_best(iter,:) = Table(min_index,:); %Table,訪問城市列表,也就是路徑記錄表 else min_Length,min_index = min(Length); Length_best(iter) = min(Length_best(iter - 1),min_Length); Length

6、_ave(iter) = mean(Length); if Length_best(iter) = min_Length Route_best(iter,:) = Table(min_index,:); else Route_best(iter,:) = Route_best(iter-1),:); end end % 更新信息素 Delta_Tau = zeros(n,n); % 逐個螞蟻計算 for i = 1:m % 逐個城市計算 for j = 1:(n - 1) Delta_Tau(Table(i,j),Table(i,j+1) = Delta_Tau(Table(i,j),Tabl

7、e(i,j+1) + Q/Length(i); end Delta_Tau(Table(i,n),Table(i,1) = Delta_Tau(Table(i,n),Table(i,1) + Q/Length(i); end Tau = (1-rho) * Tau + Delta_Tau; %所有螞蟻在各連接路徑上的信息素濃度,不同迭代層間有關(guān)聯(lián) % 迭代次數(shù)加1,清空路徑記錄表 iter = iter + 1; Table = zeros(m,n);end% 結(jié)果顯示Shortest_Length,index = min(Length_best);Shortest_Route = Route

8、_best(index,:);disp(最短距離: num2str(Shortest_Length);disp(最短路徑: num2str(Shortest_Route Shortest_Route(1);% 繪圖figure(1)plot(citys(Shortest_Route,1);citys(Shortest_Route(1),1),. citys(Shortest_Route,2);citys(Shortest_Route(1),2),o-);grid onfor i = 1:size(citys,1) text(citys(i,1),citys(i,2), num2str(i);endtext(citys(Shortest_Route(1),1),citys(Shortest_Route(1),2), 起點);text(citys(Shortest_Route(end),1),citys(Shortest_Route(end),2), 終點);xlabel(城市位置橫坐標(biāo))ylabel(城市位置縱坐標(biāo))title(蟻群算法優(yōu)化路徑(最短距離: num2str(Shortest_Length)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論