資源簡介
利用matlab寫了粒子群優(yōu)化算法的一個腳本文件,每行代碼都有詳細(xì)注釋,可以根據(jù)代碼內(nèi)容自行修改,實(shí)現(xiàn)自己需要的功能
代碼片段和文件信息
save?para-file?tol?Y;
clear?all;
close?all;
load?para-file;
n=size(tol);
N=n(1);
%限定位置和速度范圍
MinX=[0?0?0?0?-5?0?0];
MaxX=[2?200?2?1?0?1?5];
Vmax=100;
Vmin=-100;
%設(shè)計粒子群參數(shù)
Size=200;
CodeL=7;%設(shè)計參數(shù)個數(shù)
c1=1.3;c2=1.7;???????%學(xué)習(xí)因子
wmax=0.90;wmin=0.10;?%慣性權(quán)重
G=200;???????????????%最大迭代次數(shù)
%(1)初始化種群的個體
%初始化每次更新的慣性權(quán)重
for?i=1:1:G
????w(i)=wmax-((wmax-wmin)/G)*i;
end
%隨機(jī)初始化位置及速度
for?i=1:1:CodeL
????P(:i)=MinX(i)+(MaxX(i)-MinX(i))*rand(Size1);
????v(:i)=VminX(i)+(Vmax(i)-Vmin(i))*rand(Size1);
end
%(2)初始化個體最優(yōu)和全局最優(yōu)
for?i=1:1:Size
????Ji(i)=obj(P(i:)tolYN);%目標(biāo)函數(shù)
????P1(i:)=P(i:);
end
BestS=P(1:);%全局最優(yōu)個體
for?i=2:Size
????if?obj(P(i:)tolYN) ????????BestS=P(i:);
????end
end
%(3)進(jìn)入主循環(huán),直到滿足精度要求
for?kg=1:1:G
????time(kg)=kg;
????
評論
共有 條評論