今天開始學習優化演算法,話說蟻群演算法是之前看過的,唉,今天一看都看不懂了,蟻群演算法的思想我就不說了,現在來理解一下這個**吧!
該**的主要思想是:
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...