收藏 分享(赏)

matlab粒子群优化算法举例分析.doc

上传人:tangtianxu1 文档编号:3098537 上传时间:2018-10-03 格式:DOC 页数:33 大小:194KB
下载 相关 举报
matlab粒子群优化算法举例分析.doc_第1页
第1页 / 共33页
matlab粒子群优化算法举例分析.doc_第2页
第2页 / 共33页
matlab粒子群优化算法举例分析.doc_第3页
第3页 / 共33页
matlab粒子群优化算法举例分析.doc_第4页
第4页 / 共33页
matlab粒子群优化算法举例分析.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、例 函数 对于适应度函数fitness对其参数 , , 做出不同102)(ixf w1c3方式的比较以测试其对函数结果影响。当 , , 。21c5.121c2.w(适应函数 )01)(ixf程序 1当 , , 。2c5.21c2.1wa)%主函数源程序( main.m)%-基本粒子群算法 (particle swarm optimization)%-名称: 基本粒子群算法%-初始格式化clear all; %清除所有变量clc; %清屏format long; %将数据显示为长整形科学计数%-给定初始条条件-N=40; %初始化群体个数D=10; %初始化群体维数T=100; %初始化群体最迭

2、代次数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:Nfor j=1:Dx(i,j)=randn; %随机初始化位置,randn 返回一个随机变化的符合正态分布的数v(i,j)=randn; %随机初始化速度endend%-显示群位置-figure(1)for j=1:D if(rem(D,2

3、)0)subplot(D+1)/2,2,j)elsesubplot(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)+48,维); %rem 取余end title(tInfo)end%-显示种群速度figure(2)for j=1:Dif(rem(

4、D,2)0)subplot(D+1)/2,2,j)elsesubplot(D/2,2,j)endplot(v(:,j),b*);grid on %是不是应该是 v(:,j)xlabel(粒子)ylabel(初始速度)tInfo=strcat(第,char(j+48), 维);if(j9)tInfo=strcat(第,char(floor(j/10)+48),维);char(rem(j,10)+48,维);end title(tInfo)endfigure(3)%第一个图subplot(1,2,1)%-初始化种群个体(在此限定速度和位置)-x1=x;v1=v;%-初始化个体最优位置和最优值-p1

5、=x1;pbest1=ones(N,1);for i=1:Npbest1(i)=fitness(x1(i,:),D); %适应度函数end%-初始化全局最优位置和最优值-g1=1000*ones(1,D);gbest1=1000;for i=1:Nif(pbest1(i)0)subplot(D+1)/2,2,j)elsesubplot(D/2,2,j)endplot(x(:,j),b*);grid onxlabel(粒子)ylabel(初始位置)tInfo=strcat(第,char(j+48),维);if(j9)tInfo=strcat(第,char(floor(j/10)+48),char

6、(rem(j,10)+48),维 );end title(tInfo)end%-显示种群速度figure(2)for j=1:D if(rem(D,2)0)subplot(D+1)/2,2,j)elsesubplot(D/2,2,j)endplot(x(:,j),b*);grid onxlabel(粒子)ylabel(初始速度)tInfo=strcat(第,char(j+48),维);if(j9)tInfo=strcat(第,char(floor(j/10)+48),char(rem(j,10)+48),维);end title(tInfo)endfigure(3)%第一个图subplot(1

7、,2,1)%-初始化种群个体(在此限定速度和位置) -x1=x;v1=v;%-初始化个体最优位置和最优值 -p1=x1;pbest1=ones(N,1);for i=1:Npbest1(i)=fitness(x1(i,:),D);end%-初始化全局最优位置和最优值 -g1=1000*ones(1,D);gbest1=1000;for i=1:Nif(pbest1(i)0)subplot(D+1)/2,2,j)elsesubplot(D/2,2,j)endplot(x(:,j),b*);grid onxlabel(粒子)ylabel(初始位置)tInfo=strcat(第,char(j+48)

8、,维);if(j9)tInfo=strcat(第,char(floor(j/10)+48),char(rem(j,10)+48),维 );end title(tInfo)end%-显示种群速度figure(2)for j=1:Dif(rem(D,2)0)subplot(D+1)/2,2,j)elsesubplot(D/2,2,j)endplot(x(:,j),b*);grid onxlabel(粒子)ylabel(初始速度)tInfo=strcat(第,char(j+48),维);if(j9)tInfo=strcat(第,char(floor(j/10)+48),char(rem(j,10)+

9、48),维);end title(tInfo)endfigure(3)%第一个图subplot(1,2,1)%-初始化种群个体(在此限定速度和位置) -x1=x;v1=v;%-初始化个体最优位置和最优值 -p1=x1;pbest1=ones(N,1);for i=1:Npbest1(i)=fitness(x1(i,:),D);end%-初始化全局最优位置和最优值 -g1=1000*ones(1,D);gbest1=1000;for i=1:Nif(pbest1(i)0)subplot(D+1)/2,2,j)elsesubplot(D/2,2,j)plot(x(:,j),b*);grid onx

10、label(粒子)ylabel(初始位置)tInfo=strcat(第,char(j+48),维);if(j9)tInfo=strcat(第,char(floor(j/10)+48),char(rem(j,10)+48),维 );end title(tInfo)end%-显示种群速度 - figure(2)for j=1:Dif(rem(D,2)0)subplot(D+1)/2,2,j)elsesubplot(D/2,2,j)endplot(x(:,j),b*);grid onxlabel(粒子)ylabel(初始速度)tInfo=strcat(第,char(j+48),维);if(j9)tI

11、nfo=strcat(第,char(floor(j/10)+48),char(rem(j,10)+48),维);end title(tInfo)endfigure(3)subplot(1,2,1)%-初始化种群个体(在此限定速度和位置) -x1=x;v1=v;%-初始化个体最优位置和最优值 -p1=x1;pbest1=ones(N,1);for i=1:Npbest1(i)=fitness(x1(i,:),D);end%-初始化全局最优位置和最优值 -g1=1000*ones(1,D);gbest1=1000;for i=1:Nif(pbest1(i)0)subplot(D+1)/2,2,j)

12、elsesubplot(D/2,2,j)plot(x(:,j),b*);grid onxlabel(粒子)ylabel(初始位置)tInfo=strcat(第,char(j+48),维);if(j9)tInfo=strcat(第,char(floor(j/10)+48),char(rem(j,10)+48),维 );end title(tInfo)end%-显示种群速度 - figure(2)for j=1:D if(rem(D,2)0)subplot(D+1)/2,2,j)elsesubplot(D/2,2,j)end plot(x(:,j),b*);grid onxlabel(粒子)yla

13、bel(初始速度)tInfo=strcat(第,char(j+48),维);if(j9)tInfo=strcat(第,char(floor(j/10)+48),char(rem(j,10)+48),维);end title(tInfo)end figure(3)subplot(1,2,1)%-初始化种群个体(在此限定速度和位置) -x1=x;v1=v;%-初始化个体最优位置和最优值 -p1=x1;pbest1=ones(N,1);for i=1:Npbest1(i)=fitness(x1(i,:),D);end%-初始化全局最优位置和最优值 -g1=1000*ones(1,D);gbest1=

14、1000;for i=1:Nif(pbest1(i)0)subplot(D+1)/2,2,j)elsesubplot(D/2,2,j)end plot(x(:,j),b*);grid onxlabel(粒子)ylabel(初始位置)tInfo=strcat(第,char(j+48),维);if(j9)tInfo=strcat(第,char(floor(j/10)+48),char(rem(j,10)+48),维 );end title(tInfo)end%-显示种群速度 -figure(2)for j=1:D if(rem(D,2)0)subplot(D+1)/2,2,j)elsesubplo

15、t(D/2,2,j)end plot(x(:,j),b*);grid onxlabel(粒子)ylabel(初始速度)tInfo=strcat(第,char(j+48),维);if(j9)tInfo=strcat(第,char(floor(j/10)+48),char(rem(j,10)+48),维 );end title(tInfo)end figure(3) %-初始化群体个体最有位置和最优解 -p=x;pbest=ones(N,1);for i=1:Npbest(i)=fitness(x(i,:),D);end%-初始化全局最优位置和最优解-g=1000*ones(1,D);gbest=

16、1000;for i=1:Nif(pbest(i)0)subplot(D+1)/2,2,j)elsesubplot(D/2,2,j)plot(x(:,j),b*);grid onxlabel(粒子)ylabel(初始位置)tInfo=strcat(第,char(j+48),维);if(j9)tInfo=strcat(第,char(floor(j/10)+48),char(rem(j,10)+48),维 );end title(tInfo)end%-显示种群速度 - figure(2)for j=1:D if(rem(D,2)0)subplot(D+1)/2,2,j)elsesubplot(D/

17、2,2,j)end plot(x(:,j),b*);grid onxlabel(粒子)ylabel(初始速度)tInfo=strcat(第,char(j+48),维);if(j9)tInfo=strcat(第,char(floor(j/10)+48),char(rem(j,10)+48),维);end title(tInfo)end figure(3)subplot(1,2,1)%-初始化种群个体(在此限定速度和位置) -x1=x;v1=v;%-初始化个体最优位置和最优值 -p1=x1;pbest1=ones(N,1);for i=1:Npbest1(i)=fitness(x1(i,:),D)

18、;end%-初始化全局最优位置和最优值 -g1=1000*ones(1,D);gbest1=1000;for i=1:Nif(pbest1(i)gbest1)g1=p1(i,:);gbest1=pbest1(i);endendgb1=ones(1,T);%-浸入主循环,按照公式依次迭代直到满足精度或者迭代次数-for i=1:Tfor j=1:Nif (fitness(x1(j,:),D)pbest1(j)p1(j,:)=x1(j,:);pbest1(j)=fitness(x1(j,:),D);endif(pbest1(j)gbest1)g1=p1(j,:);gbest1=pbest1(j);

19、endv1(j,:)=w1*v1(j,:)+c1*rand*(p1(j,:)-x1(j,:)+c2*rand*(g1-x1(j,:);x1(j,:)=x1(j,:)+v1(j,:); endgb1(i)=gbest1;endplot(gb1)TempStr=sprintf(w= %g ,w1);title(TempStr);xlabel(迭代次数);ylabel(适应度值);figuresubplot(1,2,2)%-初始化种群个体(在此限定速度和位置)-X3=xV3=v;%-初始化种群个体最有位置和 最优解-P3=x3;Pbest3=ones(N,1);for i=1:Npbest3(i)=

20、fitness(x3(i,:),D);end%-初始化种全局最有位置和最优解-g3=1000*ones(1,D);gbest3=1000;for i=1:Nif(pbest3(i)gbest3)g3=p3(i,:);gbes3.=pbest3(i);endendgb3=ones(1,T);%-浸入主循环,按照公式依次迭代直到满足精度或者迭代次数-for i=1:Tfor j=1:Nif (fitness(x3(j,:),D)pbest3(j)p3(j,:)=x3(j,:);pbest3(j)=fitness(x3(j,:),D);endif(pbest3(j)gbest3)g3=p3(j,:)

21、;gbest3=pbest3(j);endv3(j,:)=w3*v3(j,:)+c1*rand*(p3(j,:)-x3(j,:)+c2*rand*(g3-x3(j,:);x3(j,:)=x3(j,:)+v3(j,:); endgb3(i)=gbest3;endplot(gb3)TempStr=sprintf(w= %g ,w3);title(TempStr);xlabel(迭代次数);ylabel(适应度值);figuresubplot(1,2,2)%-初始化种群个体(在此限定速度和位置)-X4=x;V4=v;%-初始化种群个体最有位置和 最优解-P4=x4;Pbest4=ones(N,1);for i=1:Npbest4(i)=fitness(x4(i,:),D);end%-初始化种全局最有位置和最优解-g4=1000*ones(1,D);gbest4=1000;for i=1:N

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报