混合粒子群算法(基于杂交算法).doc
上传人:sy****28 上传时间:2024-09-10 格式:DOC 页数:2 大小:16KB 金币:12 举报 版权申诉
预览加载中,请您耐心等待几秒...

混合粒子群算法(基于杂交算法).doc

混合粒子群算法(基于杂交算法).doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

12 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

主程序:%------基本粒子群优化算法(ParticleSwarmOptimization)-----------%------名称:混合粒子群优化算法(基于杂交的算法)%------作用:求解优化问题%------说明:全局性,并行性,高效的群体智能算法%------初始格式化--------------------------------------------------clearall;clc;formatlong;%------给定初始化条件----------------------------------------------c1=2;%学习因子1%c1=3;%c2=2;Pc=0.9;Sp=0.2;c2=2;%学习因子2w=0.7;%惯性权重%MaxDT=500;MaxDT=10000;%最大迭代次数D=5;%搜索空间维数(未知数个数)N=40;%初始化群体个体数目%eps=10^(-6);%设置精度(在已知最小值时候用)%------初始化种群的个体(可以在这里限定位置和速度的范围)------------fori=1:Nforj=1:Dx(i,j)=randn;%随机初始化位置v(i,j)=randn;%随机初始化速度endend%------先计算各个粒子的适应度,并初始化Pi和Pg----------------------figure(3)fori=1:NP(i)=fitness2(x(i,:));y(i,:)=x(i,:);endPg=x(N,:);%Pg为全局最优fori=1:(N-1)iffitness2(x(i,:))<fitness2(Pg)Pg=x(i,:);endend%------进入主要循环,按照公式依次迭代,直到满足精度要求------------fort=1:MaxDTfori=1:Nv(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(Pg-x(i,:));x(i,:)=x(i,:)+v(i,:);iffitness2(x(i,:))<P(i)P(i)=fitness2(x(i,:));y(i,:)=x(i,:);endifP(i)<fitness2(Pg)Pg=y(i,:);endr1=rand();ifr1<Pc%杂交概率numPool=round(Sp*N);%杂交池大小PoolX=x(1:numPool,:);%杂交池中粒子的位置PoolVX=v(1:numPool,:);%杂交池中粒子的速度fori=1:numPoolseed1=floor(rand()*(numPool-1))+1;seed2=floor(rand()*(numPool-1))+1;pb=rand();childx1(i,:)=pb*PoolX(seed1,:)+(1-pb)*PoolX(seed2,:);%子代的位置计算childv1(i,:)=(PoolVX(seed1,:)+PoolVX(seed2,:))*norm(PoolVX(seed1,:))/norm(PoolVX(seed1,:)+PoolVX(seed2,:));endx(1:numPool,:)=childx1;%子代位置替换父代位置v(1:numPool,:)=childv1;%子代速度替换父代速度endPbest(t)=fitness2(Pg);endendplot(Pbest)TempStr=sprintf('c1=%g,c2=%g',c1,c2);title(TempStr);xlabel('迭代次数');ylabel('适应度值');%------最后给出计算结果disp('*************************************************************')disp('函数的全局最优位置为:')Solution=Pgdisp('最后得到的优化极值为:')Result=fitness2(Pg)disp('*************************************************************')