0
点赞
收藏
分享

微信扫一扫

matlab 云模型量子粒子群算法

夕颜合欢落 2022-01-12 阅读 68

第一个博客讲述云模型量子粒子群算法基本理论,接下来展示matlab代码

%% 1.清空环境变量
clc;
clear;
%% 2.初始化参数
N=20; %种群规模
MAXITER=200; %最大迭代次数

中间是模型建立过程,根据不同项目进行添加,此处省略

for t=1:MAXITER
g=min(find(f_pbest==max(f_pbest(1:N))));
gworst=pbest(g,:);%全局最差1个群
f_gworst=f_pbest(g);
EX=f_gbest;
EN=abs(f_gbest-f_gworst)/2;
HE=EN/10;
EN1=normrnd(EN,HE,1,1);
u0=exp(-(f_pbest-EX).2/(2*EN12));
mbest=sum(pbest)/N; %每一列的平均值,意义:个体最佳位置的均值
for i=1:N
fi=rand(1,dimension);%随机数
p=fi.*pbest(i,:)+(1-fi).*gbest;%********经典模特卡罗随机模拟方式 ,p->130维,意义:局部吸引子,处于pbest、gbest中的随机位置
u=rand(1,dimension);
y=p+((-1).^ceil(0.5+rand(1,dimension))).u0(i).(mbest-x(i,:)).*log(1./u);

        x(i,:)=y;  
        f_x(i)=control(x(i,:));
       % f_xx(:,:,t)=f_x;%%%%%用于查看每一个粒子值的演变
            if f_x(i)<f_pbest(i)  %个体替换
                pbest(i,:)=x(i,:);
                f_pbest(i)=f_x(i);
            end
            if f_pbest(i)<f_gbest %全局最优值替换
                gbest=pbest(i,:);
                f_gbest=f_pbest(i);
            end
   end  % popsize
举报

相关推荐

四种粒子群算法的Matlab实现

0 条评论