資源簡(jiǎn)介
小生境PSO算法matlab程序
程序在原有PSo常用測(cè)試函數(shù)的基礎(chǔ)上進(jìn)行改進(jìn),實(shí)現(xiàn)了多模尋優(yōu)
代碼片段和文件信息
clc;clear;
close?all;
%-----確定實(shí)際問(wèn)題參數(shù)集------
wmin=0;wmax=0.9;????????%慣性權(quán)重
itmax=50;???????????????%最大循環(huán)次數(shù)
c1=2;c2=2;??????????????%自身因子和全局因子
for?iter=1:itmax
????W(iter)=wmax-((wmax-wmin)/itmax)*iter;%自適應(yīng)權(quán)重
end
a=0;b=1;???????????????%變量取值范圍
N=30;??????????????????%粒子個(gè)數(shù)
D=1;???????????????????%維數(shù)
step=0.01;?????????????%步長(zhǎng)
f=‘exp(-2*log(2)*(((x-0.1)./0.8).^2)).*((sin(5*pi*x)).^6)‘;
x=[a:step:b];
xf=x;
y=eval(f);
x=[];
vmfit=[];
x=a+(b-a)*rand(N1);?????????????????%位置初始化
V=wmin+(wmin-wmax)*rand(N1);????????%向量初始化
for?i=1:N
????F(i1)=exp(-2*log(2)*(((x(i1)-0.1)/0.8).^2))*((sin(5*pi*x(i1))).^6);%第一代個(gè)體適應(yīng)度計(jì)算
end
media=mean(F(:1));
vmfit=[vmfit?media];
[CI]=max(abs(F(:1)));??????????????
B(11)=C;
gbest(11)=x(I1);??????????????????%群體最優(yōu)位置
for?p=1:N
????G(p1)=gbest(11);??????????????%更新群體最優(yōu)位置記錄
end
Fbest(11)=exp(-2*log(2)*(((G(11)-0.1)/0.8).^2))*((sin(5*pi*G(11))).^6);%群體最優(yōu)位置適應(yīng)度
for?i=1:N
????pbest(i1)=x(i1);??????????????%個(gè)體最優(yōu)位置,第一代群體設(shè)為當(dāng)前位置
end
Fb(11)=exp(-2*log(2)*(((pbest(11)-0.1)/0.8).^2))*((sin(5*pi*pbest(11))).^6);%個(gè)體最優(yōu)位置適應(yīng)度
%------程序主循環(huán)----------
for?j=2:itmax
????V(:j)=W(j-1)*V(:j-1)+c1*rand*(pbest(:j-1)-x(:j-1));%+c2*rand*(G(:j-1)-x(:j-1));%向量更新
????x(:j)=x(:j-1)+V(:j);?????????%位置更新
????for?xx=1:N
????????if?x(xxj)????????????x(x
評(píng)論
共有 條評(píng)論