1、%3初始化群体个数D=10;%初始化群体维数T=100;%初始化群体最迭代次数c11=2;%学习因子1c21=2;%学习因子2c12=1.5;c22=1.5;w=1.2;%惯性权重eps=10(-6);%设置精度(在已知最小值的时候用)%-初始化种群个体(限定位置和速度)-x=zeros(N,D);v=zeros(N,D);fori=1:Nforj=1:Dx(i,j)=randn;%随机初始化位置v(i,j)=randn;%随机初始化速度end%-显示群位置-figure(1)if(rem(D,2)0)subplot(D+1)/2,2,j)elsesubplot(D/2,2,j)plot(x(
2、:,j),b*);gridonxlabel(粒子)ylabel(初始位置tInfo=strcat(第,char(j+48),维if(j9),char(floor(j/10)+48),char(rem(j,10)+48),title(tInfo)%-显示种群速度figure(2)初始速度第,char(j+48),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
3、,:),D);%-初始化全局最优位置和最优值-g1=1000*ones(1,D);gbest1=1000;if(pbest1(i)gbest1)g1=p1(i,:gbest1=pbest1(i);gb1=ones(1,T);%-浸入主循环,按照公式依次迭代直到满足精度或者迭代次数-Tif(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
4、*(g1-x1(j,:);x1(j,:)+v1(j,:gb1(i)=gbest1;plot(gb1)TempStr=sprintf(c1=%g,c2=%g,c11,c21);title(TempStr);迭代次数适应度值%第二个图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,:
5、gbest2=pbest2(i);gb2=ones(1,T);%-浸入主循环,按照公式依次迭代直到满足精度或者迭代次数-if(fitness(x2(j,:pbest2(j)p2(j,:)=x2(j,:pbest2(j)=fitness(x2(j,:if(pbest2(j)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);b)适应度函数%适应度函数(fitness.m)functionresult=fitness(x,D)sum=0;sum=sum+x(i)2;result=sum;程序2于对比c12=0;c22=2;程序3c12=2;c22=0;程序4对分别对其取值测试函数。c1=1.1;c2=2;w1=1.2;w2=1.5;%设置精度(在已知最小值的时候用)-%-初始化种群个体(限定位置和速度)-%-显示种群速度-)=w1*v1(j,:)+c1*rand*(p1(j,:)+c2*rand*(g1-x1(j,:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1