1、 %将数据显示为长整形科学计数%-给定初始条条件-N=40; %初始化群体个数D=10; %初始化群体维数T=100; %初始化群体最迭代次数c11=2; %学习因子1c21=2; %学习因子2c12=1.5;c22=1.5;w=1.2; %惯性权重eps=10(-6); %设置精度(在已知最小值的时候用)%-初始化种群个体(限定位置和速度)-x=zeros(N,D); %x是位置,初始化位置空间(矩阵)v=zeros(N,D); %v是速度,初始化速度空间(矩阵)for i=1:N for j=1:D x(i,j)=randn; %随机初始化位置,randn返回一个随机变化的符合正态分布的数
2、 v(i,j)=randn; %随机初始化速度 endend%-显示群位置-figure(1)for j=1:D if(rem(D,2)0) subplot(D+1)/2,2,j) else subplot(D/2,2,j) end plot(x(:,j),b*);grid on %b*表示颜色是绿的,用*显示在图上 xlabel(粒子 ylabel(初始位置 tInfo=strcat(第,char(j+48),维 %strcat使括号里的东西连成字符串 if(j9) tInfo=strcat(,char(floor(j/10)+48); %floor向负无穷方向取整char(rem(j,10
3、)+48, %rem 取余 title(tInfo)%-显示种群速度figure(2) plot(v(:grid on %是不是应该是v(:,j)初始速度,char(floor(j/10)+48),维);figure(3)%第一个图subplot(1,2,1)%-初始化种群个体(在此限定速度和位置)-x1=x;v1=v;%-初始化个体最优位置和最优值-p1=x1;pbest1=ones(N,1); pbest1(i)=fitness(x1(i,:),D); %适应度函数%-初始化全局最优位置和最优值-g1=1000*ones(1,D);gbest1=1000; if(pbest1(i)gbes
4、t1) g1=p1(i,: gbest1=pbest1(i);gb1=ones(1,T);%-进入主循环,按照公式依次迭代直到满足精度或者迭代次数-T if (fitness(x1(j,:),D)pbest1(j) p1(j,:)=x1(j,: pbest1(j)=fitness(x1(j,: if(pbest1(j) g1=p1(j,: gbest1=pbest1(j); v1(j,:)=w*v1(j,:)+c11*rand*(p1(j,:)-x1(j,:)+c21*rand*(g1-x1(j,:); x1(j,:)+v1(j,: gb1(i)=gbest1;plot(gb1)TempStr
5、=sprintf(c1= %g ,c2=%g,c11,c21);title(TempStr);xlabel(迭代次数ylabel(适应度值%第二个图subplot(1,2,2)%-初始化种群个体(在此限定速度和位置)-x2=x;v2=v;%-初始化种群个体最有位置和 最优解-p2=x2;pbest2=ones(N,1); pbest2(i)=fitness(x2(i,:%-初始化种全局最优位置和 最优解-g2=1000*ones(1,D);gbest2=1000; if(pbest2(i)gbest2) g2=p2(i,: %最优位置 gbest2=pbest2(i); %最优解gb2=one
6、s(1,T); %T为迭代次数T=100%-进入主循环,按照公式依次迭代直到满足精度或者迭代次数- if (fitness(x2(j,:pbest2(j) %个体最优 p2(j,:)=x2(j,: pbest2(j)=fitness(x2(j,: if(pbest2(j)gbest2) %全局最优 g2=p2(j,: gbest2=pbest2(j); v2(j,:)=w*v2(j,:)+c12*rand*(p2(j,:)-x2(j,:)+c22*rand*(g2-x2(j,: x2(j,:)+v2(j,: gb2(i)=gbest2; %每一代的最优解plot(gb2),c12,c22);程序2于对比 clc;c12=0;c22=2; %随机初始化位置grid on,char(floor(j/10)+48),char(rem(j,10)+48),第,char(j+48),char(floor(j/10)+48),%-浸入主循环,按照公式依次迭代直到满足精度或者迭代次数-v1(j,:)+c21*rand*(g1-x1(j,:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1