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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、蟻群算法的優(yōu)化計算旅行商問題(tsp)優(yōu)化% 清空環(huán)境變量clear allclc% 導入數(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ù)重要程度因子rho = 0.1; % 信息

3、素揮發(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、往往轉移概率大的城市被選中的概率也更大。 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); %構成環(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_ave(iter) =

6、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),table(i,j+1) + q/

7、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; %所有螞蟻在各連接路徑上的信息素濃度,不同迭代層間有關聯(lián) % 迭代次數(shù)加1,清空路徑記錄表 iter = iter + 1; table = zeros(m,n);end% 結果顯示shortest_length,index = min(length_best);shortest_route = route_best(index,:

8、);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(城市位置橫坐標)ylabel(城市位置縱坐標)title(蟻群算法優(yōu)化路徑(最短距離: num2str(shortest_l

溫馨提示

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

最新文檔

評論

0/150

提交評論