• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: Matlab
  • 标签: PSO  

资源简介

标准PSO算法的matlab程序,惯性权重线性递减,用Griewank函数测试,收敛特性良好。

资源截图

代码片段和文件信息


clear all
clc;
%**********参数设置*********
UB=600;     %函数的上界
LB=300;         %函数的下界
PopSize=40;     %种群大小
Dim=10;           %粒子(解)的维度
c1=2;             %学习因子
c2=2;
w_start=0.9;     %惯性权重的起始值
w_end=0.4;       %惯性权重的结束值
Vmax=100;        %粒子的最大速度
Maxiter=1500;       %最大迭代次数
iter=0;                 %初始迭代次数

%*********PSO种群初始化*********
X=rand(PopSizeDim)*(UB-LB)+LB;        %粒子位置随机初始化
V=rand(PopSizeDim);                      %粒子速度随机初始化

%测试函数 Griewank函数
ind=repmat(1:DimPopSize1);     % B = repmat(A[m n]) 
FX=sum(((X.^2)/4000)‘)‘-prod(cos(X./sqrt(ind))‘)‘+1;

%设定当前位置为粒子的最好位置pbest,和全局最好位gbest。
pbest=X;
Fpbest=FX;                      

%找到初始粒子群的最好粒子作为gbest
[Fgbestr]=min(FX);
gbest=X(r:) ;            %用于保存最优粒子的位置gbest
CF=Fgbest;                %记录当前全局最优值CF与更新后的作比较用

%%%%循环%%%%%
while(iter<=Maxiter)
  iter=

评论

共有 条评论