• 大小: 17KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-07-14
  • 语言: 其他
  • 标签: matlab  

资源简介

该算法是混沌运动与粒子群算法相结合的混沌粒子群算法,可以提高算法的全局搜索能力。

资源截图

代码片段和文件信息

%% 清空环境
clc
clear

%% 参数初始化
%粒子群算法中的两个参数
c1 = 1.49445;
c2 = 1.49445;
D=10;%粒子维数
maxgen=1000;   % 进化次数  
sizepop=20;   %种群规模
u=2;%混沌系数
Vmax=1;
Vmin=-1;
popmax=5;
popmin=-5;
randdata1= xlsread(‘randdata1‘);
randdata2= xlsread(‘randdata2‘);
%% 产生初始粒子和速度
for i=1:sizepop
    %随机产生一个种群
    pop(i:)=randdata1(i:);    %初始种群
    V(i:)=randdata2(i:);  %初始化速度
    %计算适应度
    fitness(i)=fun(pop(i:));   %粒子的适应值
end

%% 个体极值和群体极值
[bestfitness bestindex]=min(fitness);
zbest=pop(bestindex:);   %全局最佳
gbest=pop;    %个体最佳
fitnessgbest=fitness;   %个体最佳适应度值
fitnesszbest=bestfitness;   %全局最佳适应度值

%% 迭代寻优
for i=1:maxgen
    
    for j=1:sizepop
        
        %速度更新
        V(j:) = V(j:) + c1*rand*(gbest(j:) - pop(j:)) + c2*rand*(zbest - pop(j:));
        V(jfind(V(j:)>Vmax))=Vmax;
        V(jfind(V(j:)        
        %种群更新
        pop(j:)=pop(j:)+V(j:);
        pop(jfind(pop(j:)>popmax))=popmax;
        pop(jfind(pop(j:)        
        %适应度值
        fitness(j)=fun(pop(j:)); 
   
    end
    
    for j=1:sizepop
        
        %个体最优更新
        if fitness(j) < fitnessgbest(j)
            gbest(j:) = pop(j:);
            fitnessgbest(j) = fitness(j);
        end
        
        %群体最优更新
        if fitness(j) < fitnesszbest
            zbest = pop(j:);
            fitnesszbest = fitness(j);
        end
    end 
  
    %%对粒子群最优位置进行混沌优化
      y(1:)=(zbest-popmin)/(popmax-popmin);%将最优位置映射到Logistic方程的定义域[01]
      fitness(1)=fun(y(1:)); 
        for t=1:sizepop-1 %通过Logistic方程进行M次迭代,得到混沌序列
            for e=1:D
        y(t+1e)=u*y(te)*(1-y(te));  
            end
        y(t+1:)=popmin+(popmax-popmin)*y(t+1:);%将混沌序列逆射到原解空间
        fitness(t+1)=fun(y(t+1:)); %计算混沌变量可行解序列的适应度值
        end
[ybestfitness ybestindex]=min(fitness);%寻找最优混沌可行解矢量
  ybest=y(ybestindex:);
        ran=1+fix(rand()*sizepop);%产生一随机数1~sizepop之间
        pop(ran:)=ybest;
    yy(i)=fitnesszbest;    
        
end
%% 结果分析
plot(yy‘m‘‘LineWidth‘5)
title(‘多峰函数-Generaliaed Rastrigin最优个体适应度曲线‘‘fontsize‘20);
xlabel(‘迭代次数‘‘fontsize‘25);ylabel(‘适应度值‘‘fontsize‘25);
legend(‘混沌粒子群算法‘30);
grid on
hold on
display(‘混沌粒子群算法输出结果‘);
zbest
fv1=yy(end);
fv1
fv=fitnesszbest;
fv
minbest=min(yy)
meanbest=mean(yy)
stdbest=std(yy)
plot(fv‘b‘‘LineWidth‘5)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2657  2018-01-25 10:27  混沌PSO\APSO.m

     文件        761  2018-01-25 00:32  混沌PSO\fun.m

     文件      10095  2018-01-24 21:37  混沌PSO\randdata1.xlsx

     文件      10124  2018-01-24 21:38  混沌PSO\randdata2.xlsx

     目录          0  2018-03-07 09:18  混沌PSO

----------- ---------  ---------- -----  ----

                23637                    5


评论

共有 条评论