91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

蟻群算法連續函數優化問題。包含FIT測試函數,主函數。

資源截圖

代碼片段和文件信息

function?[BESTXBESTYALLXALLY]=ACOUCP(KNRhoQLambdaLBUB)
%%?Ant?Colony?Optimization?for?Unconstrained?Continuous?Problem
%%?ACOUCP.m
%%?無約束連續函數的蟻群優化算法
%%?此函數實現蟻群算法,用于求解無約束連續函數最小化問題
%%?對于最大化問題,請先將其加負號轉化為最小化問題
%??GreenSim團隊原創作品,轉載請注明
%??Email:greensim@163.com
%??GreenSim團隊主頁:http://blog.sina.com.cn/greensim
%??[color=red]歡迎訪問GreenSim——算法仿真團隊→[url=http://blog.sina.com.cn/greensim]http://blog.sina.com.cn/greensim[/url][/color]
%%?輸入參數列表
%?K????????迭代次數
%?N????????蟻群規模
%?Rho??????信息素蒸發系數,取值0~1之間,推薦取值0.7~0.95
%?Q????????信息素增加強度,大于0,推薦取值1左右
%?Lambda???螞蟻爬行速度,取值0~1之間,推薦取值0.1~0.5
%?LB???????決策變量的下界,M×1的向量
%?UB???????決策變量的上界,M×1的向量
%%?輸出參數列表
%?BESTX????K×1細胞結構,每一個元素是M×1向量,記錄每一代的最優螞蟻
%?BESTY????K×1矩陣,記錄每一代的最優螞蟻的評價函數值
%?ALLX?????K×1細胞結構,每一個元素是M×N矩陣,記錄每一代螞蟻的位置
%?ALLY?????K×N矩陣,記錄每一代螞蟻的評價函數值
%%?測試函數設置
%?測試函數用單獨的子函數編寫好,在子函數FIT.m中修改要調用的測試函數名即可
%?注意:決策變量的下界LB和上界UB,要與測試函數保持一致
%%?參考設置
%?[BESTXBESTYALLXALLY]=ACOUCP(50300.9510.5LBUB)
%%?第一步:初始化
M=length(LB);%決策變量的個數
%蟻群位置初始化
X=zeros(MN);
for?i=1:M
????x=unifrnd(LB(i)UB(i)1N);
????X(i:)=x;
end
%輸出變量初始化
ALLX=cell(K1);%細胞結構,每一個元素是M×N矩陣,記錄每一代的個體
ALLY=zeros(KN);%K×N矩陣,記錄每一代評價函數值
BESTX=cell(K1);%細胞結構,每一個元素是M×1向量,記錄每一代的最優個體
BESTY=zeros(K1);%K×1矩陣,記錄每一代的最優個體的評價函數值
k=1;%迭代計數器初始化
Tau=ones(1N);%信息素初始化
Y=zeros(1N);%適應值初始化
%%?第二步:迭代過程
while?k<=K
????YY=zeros(1N);
????for?n=1:N
????????x=X(:n);
????????YY(n)=FIT(x);
????end
????maxYY=max(YY);
????temppos=find(YY==maxYY);
????POS=temppos(1);
????%螞蟻隨機探路
????for?n=1:N
????????if?n~=POS
????????????x=X(:n);
????????????Fx=FIT(x);
????????????mx=GaussMutation(xLBUB);
????????????if?Fmx????????????????X(:n)=mx;
????????????????Y(n)=Fmx;
????????????elseif?rand>1-(1/(sqrt(k)))
????????????????X(:n)=mx;
????????????????Y(n)=Fmx;
????????????else
????????????????X(:n)=x;
????????????????Y(n)=Fx;
????????????end
????????end
????end
????for?n=1:N
????????if?n~=POS
????????????x=X(:n);
????????????Fx=FIT(x);
????????????mx=GaussMutation(xLBUB);
????????????Fmx=FIT(mx);
????????????if?Fmx????????????????Y(n)=Fmx;
????????????elseif?rand>1-(1/(sqrt(k)))
????????????????X(:n)=mx;
????????????????Y(n)=Fmx;
????????????else
????????????????X(:n)=x;
????????????????Y(n)=Fx;
????????????end
????????end
????end
????%朝信息素最大的地方移動
????for?n=1:N
????????if?n~=POS
????????????x=X(:n);
????????????r=(K+k)/(K+K);
????????????p=randperm(N);
????????????t=ceil(r*N);
????????????pos=p(1:t);
????????????TempTau=Tau(pos);
????????????maxTempTau=max(TempTau);
????????????pos3=pos(pos2(1));
????????????x2=X(:pos3(1));
????????????x3=(1-Lambda)*x+Lambda*x2;
????????????Fx=FIT(x);
????????????Fx3=FIT(mx);
????????????if?Fx3????????????????X(:n)=x3;
????????????????Y(n)=Fx3;
????????????elseif?rand>1-(1/(sqrt(k)))
????????????????X(:n)=x3;
????????????????Y(n)=Fx3;
????????????else
????????????????X(:n)=x;
????????????????Y(n)=Fx;
????????????end
?

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4167??2014-09-13?15:54??ACOUCP.m
?????文件??????????40??2014-09-13?16:02??FIT.m
?????文件?????????315??2014-09-13?16:18??GaussMutation.m

評論

共有 條評論