資源簡介
基本鴿群優化算法,由北京航空航天大學段海濱教授等人提出,可用于解決優化問題,收斂速度較快
代碼片段和文件信息
%***************initialization*******************?
global?bound;
T1=90;?????%Global?search?algebra?地磁導航次數
T2=15;?????%Local?search?algebra?地標導航次數
pigeonnum=30;????%number??種群數
D=1;??????%?dimensionality?解維數(平面為二維)
R=0.3;?????%parameters?of?magnetic?field??地磁因數
bound=[020];????%hunting?zone?解空間
%**************initialization?of?the?individual?pigeon************?生成初始解
for?i=1:pigeonnum?
????for?j=1:D?
????????x(ij)=bound(1)+rand*(bound(2)-bound(1));?
????????v(ij)=rand;?
????end?
end?
%**************calculate?the?fitness?of?pigeon***********?計算適應度值
for?i=1:pigeonnum?
????p(i)=f1(x(i:)D);?
end?
%**************find?the?optimal?pigeons?求最優解
g_best=x(1:);?
for?i=2:pigeonnum?
????if?f1(g_bestD) ????????g_best=x(i:);?
????end?
end?
%************??magnetic?compass?and?solar?operator********************?地磁導航
for?t=1:T1?
????for?i=1:pigeonnum?
????????v(i:)=v(i:)*exp(-R*t)+rand*(g_best-x(i:));?
????????x(i:)=x(i:)+v(i:);%更新位置速度??
????????for?j=1:D??
????????????if?x(ij)bound(2)???%檢查解是否超出范圍,超出則重新初始化
????????????????x(ij)=bound(1)+rand*(bound(2)-bound(1));?
????????????????v(ij)=rand;?
????????????end?
????????end?
????????if?f1(g_bestD)?????????????g_best=x(i:);?
????????end?
????end?
????result(t)=f1(g_bestD);?%記錄本次迭代最優解
end?
%*************地標算子導航**********************?
for?t=1:T2?
????for?i=1:pigeonnum-1????????????????????????????
????????for?j=i+1:pigeonnum?
???????
評論
共有 條評論