• 大小: 4KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: Matlab
  • 标签: PSO  粒子群  

资源简介

PSO粒子群优化算法MATLAB源代码,并且进行了ACKELY多峰值函数的测试

资源截图

代码片段和文件信息

%%%%%%%%%%%%%%%%%%%%%%%%%PSO—ACKELY测试%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%程序初始化
%目标函数 NEEDEL   -20*exp(-0.2*sqrt(1/2*(test(1)^2+test(2)^2)))-exp(1/2*(cos(2*pi*test(1))+cos(2*pi*test(2))))+22.71282;
%进化次数50
%种群规模 20
%function result=aim(test) 为目标函数
   %test(1)=x  test(2)=y

%程序初始化
function PSO_SA_Ackley
clc;
clear all;
gen=50;     %设置进化代数
popsize=20;     %设置种群规模大小
best_in_history(gen)=inf;   %初始化全局历史最优解
max_velocity=1;       %最大速度限制
best_fitness=inf;       %全局最优
pop(popsize8)=0;         %初始化种群
c1=0.09;
c2=0.4;
w=0.98;
TN=2;
T=max_velocity;       

k=0.8;
num=2;
high=5;
low=-5;

partx=zeros(popsizegen);
party=zeros(popsizegen);


for i=1:popsize
    pop(i1)=high*(2*rand()-1);     %初始化种群中的粒子位置
    pop(i2)=high*(2*rand()-1);     %初始化种群中的粒子位置
    pop(i5)=pop(i1);  %初始状态下个体最优值等于初始位置
    pop(i6)=pop(i2);  %初始状态下个体最优值等于初始位置
    pop(i3)=0.2*(rand()*2-1);    %初始化种群微粒速度
    pop(i4)=0.2*(rand()*2-1);    %初始化种群微粒速度
    pop(i7)=inf;
    pop(i8)=inf;
end
      gbest_x=pop(11);   %全局最优初始值为种群第一个粒子的位置
      gbest_y=pop(12);


for exetime=1:gen
%计算适应值并赋值
for i=1:popsize
     pop(i8)=aim(pop(i1:num));
    if pop(i7)>pop(i8)    %若当前适应值优于个体最优值,则进行个体最优信息的更新
        pop(i7)=pop(i8);          %适值更新
        pop(i5:6)=pop(i1:2);      %位置坐标更新
    end
end


%计算完适应值后寻找当前全局最优位置并记录其坐标
if best_fitness>min(pop(:7))
    best_fitness=min(pop(:7));    %全局最优值
    gbest_x=pop(find(pop(:7)==min(pop(:7)))1);    %全局最优粒子的位置   
    gbest_y=pop(find(pop(:7)==min(pop(:7)))2);
end
 %   plot(gbest_xgbest_y‘bx‘);
  %  hold on;
best_in_history(exetime)=best_fitness;  %记录当前全局最优
%实时输出结果

%输出当前种群中粒子位置
%subplot(121);

for i=1:popsize
 %   plotyy(pop(i1)pop(i2)‘plot‘);
 %   hold on;
   partx(iexetime)=pop(i1);  
   party(iexetime)=pop(i2);
end
%pause(0.1);

%plot(gbest_xgbest_y‘ro‘);axis([-5.125.12-5.125.12]);
hold on;

%subplot(122);
%figure(2)
%axis([0gen-0.010.01]);

%if exetime-1>0
 %   line([exetime-1exetime][best_in_

评论

共有 条评论