資源簡介
標(biāo)準(zhǔn)PSO算法的matlab程序,慣性權(quán)重線性遞減,用Griewank函數(shù)測(cè)試,收斂特性良好。
代碼片段和文件信息
clear?all
clc;
%**********參數(shù)設(shè)置*********
UB=600;?????%函數(shù)的上界
LB=300;?????????%函數(shù)的下界
PopSize=40;?????%種群大小
Dim=10;???????????%粒子(解)的維度
c1=2;?????????????%學(xué)習(xí)因子
c2=2;
w_start=0.9;?????%慣性權(quán)重的起始值
w_end=0.4;???????%慣性權(quán)重的結(jié)束值
Vmax=100;????????%粒子的最大速度
Maxiter=1500;???????%最大迭代次數(shù)
iter=0;?????????????????%初始迭代次數(shù)
%*********PSO種群初始化*********
X=rand(PopSizeDim)*(UB-LB)+LB;????????%粒子位置隨機(jī)初始化
V=rand(PopSizeDim);??????????????????????%粒子速度隨機(jī)初始化
%測(cè)試函數(shù)?Griewank函數(shù)
ind=repmat(1:DimPopSize1);?????%?B?=?repmat(A[m?n])?
FX=sum(((X.^2)/4000)‘)‘-prod(cos(X./sqrt(ind))‘)‘+1;
%設(shè)定當(dāng)前位置為粒子的最好位置pbest,和全局最好位gbest。
pbest=X;
Fpbest=FX;??????????????????????
%找到初始粒子群的最好粒子作為gbest
[Fgbestr]=min(FX);
gbest=X(r:)?;????????????%用于保存最優(yōu)粒子的位置gbest
CF=Fgbest;????????????????%記錄當(dāng)前全局最優(yōu)值CF與更新后的作比較用
%%%%循環(huán)%%%%%
while(iter<=Maxiter)
??iter=
評(píng)論
共有 條評(píng)論