蟻群演算法詳解

2021-08-01 07:33:09 字數 1268 閱讀 9249

今天開始學習優化演算法,話說蟻群演算法是之前看過的,唉,今天一看都看不懂了,蟻群演算法的思想我就不說了,現在來理解一下這個**吧!

該**的主要思想是:

for 迭代次數

for 螞蟻個數

每個螞蟻完整的走完一遍(每個點訪問一次)

end更新資訊素

end然後根據資訊素的多少找出一條路徑來

% tsp的蟻群演算法program

function y20_1

clc % 清屏

clear all; % 刪除workplace變數

close all; % 關掉顯示圖形視窗

% 保留每次迭代的最優解

% 以max(t^a*d^(-b))為依據找最優路勁,與保留的最優路勁比較

x=[41,37,54,25,7,2,68,71,54,83,64,18,22,83,91,...

25,24,58,71,74,87,18,13,82,62,58,45,41,44,4];

y=[94,84,67,62,64,99,58,44,62,69,60,54,60,46,38,...

38,42,69,71,78,76,40,40,7,32,35,21,26,35,50];

n=30;% n表示城市數目

c=100;

q=10^(+6);

nc=50;

r=0.9;% r表示軌跡永續性

a=1.5;% a表示軌跡相對重要性

b=2;% b表示能見度相對重要性

m=30;% m表示螞蟻數目

for i=1:n

for j=1:n

dij(i,j)=sqrt((x(i)-x(j))^2+(y(i)-y(j))^2);%距離

endendfor i=1:n

dij(i,i)=0.01;

endmin10=10^5;

t=ones(n)*c;

for nc=1:nc

tabu=ones(m,n);%禁忌表

tabu(:,1)=0;

path=ones(m,n);

for k=1:m

for step=1:n-1

ta=t.^a;

tb=dij.^(-b);

td=ta.*tb;

pd=tabu(k,:).*td(path(k,step),:);

pk=pd/sum(pd);%概率

rk=rand;

spk=0;

j=1;

while j<=n;

if rk

蟻群優化演算法

蟻群優化演算法作為一種全域性最優化搜素方法,同遺傳演算法一樣,靈感都 於自然界,並有良好的搜素效能。然而,從數學的角度來理解分析它們的工作方式是很難的,因為這些演算法都具有很複雜的隨機過程。aco演算法的過程具有一定的隨機性,這就要求初始化螞蟻的數量和更新資訊素的次數必須足夠的多,只有這樣才能最終收...

ACO蟻群演算法

aco蟻群演算法 總結一下 在蟻群演算法中有兩個比較重要的引數資訊素濃度a,距離d,主要依靠這兩個特徵引數來推算出蟻群去往地點的概率。在比較早的時候成功解決了tsp旅行商的問題 在後面的例子中也會以這個例子 要用演算法去模擬螞蟻的這種行為,關鍵在於資訊素的在演算法中的設計,以及路徑中資訊素濃度越大的...

蟻群演算法(ACO)

參考 今天導師開會,同門作報告,題目大概是 的多步 中間提到一句 使用蟻群演算法優化神經網路的初始權值和閾值 遂查資料了解該演算法的實質與用法,或許寫 會用上吧。蟻群演算法 ant colony optimization,aco 又稱螞蟻演算法,是一種用來在圖中尋找優化路徑的機率型演算法。它由mar...