matlab粒子群优化算法举例分析(共33页).doc

上传人:飞****2 文档编号:15111002 上传时间:2022-05-11 格式:DOC 页数:33 大小:155.50KB
返回 下载 相关 举报
matlab粒子群优化算法举例分析(共33页).doc_第1页
第1页 / 共33页
matlab粒子群优化算法举例分析(共33页).doc_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《matlab粒子群优化算法举例分析(共33页).doc》由会员分享,可在线阅读,更多相关《matlab粒子群优化算法举例分析(共33页).doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上例 函数对于适应度函数fitness对其参数,做出不同方式的比较以测试其对函数结果影响。当,。 (适应函数)程序1当,。a)%主函数源程序(main.m)%-基本粒子群算法 (particle swarm optimization)%-名称: 基本粒子群算法%-初始格式化clear all; %清除所有变量clc; %清屏format long; %将数据显示为长整形科学计数%-给定初始条条件-N=40; %初始化群体个数D=10; %初始化群体维数T=100; %初始化群体最迭代次数c11=2; %学习因子1c21=2; %学习因子2c12=1.5;c22=1.5;

2、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返回一个随机变化的符合正态分布的数 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) en

3、d 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:D if(rem(D,2)0) subplot(D+1)/2,2,j) else subplot(D/2,

4、2,j) end plot(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=x1;pbest1=ones(N,1);for i=1:N pbest

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

6、(j)gbest1) g1=p1(j,:); gbest1=pbest1(j); end v1(j,:)=w*v1(j,:)+c11*rand*(p1(j,:)-x1(j,:)+c21*rand*(g1-x1(j,:); x1(j,:)=x1(j,:)+v1(j,:); end gb1(i)=gbest1;endplot(gb1)TempStr=sprintf(c1= %g ,c2=%g,c11,c21);title(TempStr);xlabel(迭代次数);ylabel(适应度值);%第二个图subplot(1,2,2)%-初始化种群个体(在此限定速度和位置)-x2=x;v2=v;%-初始

7、化种群个体最有位置和 最优解-p2=x2;pbest2=ones(N,1);for i=1:N pbest2(i)=fitness(x2(i,:),D);end%-初始化种全局最优位置和 最优解-g2=1000*ones(1,D);gbest2=1000;for i=1:N if(pbest2(i)gbest2) g2=p2(i,:);%最优位置 gbest2=pbest2(i);%最优解 endendgb2=ones(1,T);%T为迭代次数T=100%-进入主循环,按照公式依次迭代直到满足精度或者迭代次数-for i=1:T for j=1:N if (fitness(x2(j,:),D)

8、pbest2(j)%个体最优 p2(j,:)=x2(j,:); pbest2(j)=fitness(x2(j,:),D); end if(pbest2(j)0) subplot(D+1)/2,2,j) else subplot(D/2,2,j) end plot(x(:,j),b*);grid on xlabel(粒子) ylabel(初始位置) tInfo=strcat(第,char(j+48),维); if(j9) tInfo=strcat(第,char(floor(j/10)+48),char(rem(j,10)+48),维); end title(tInfo)end%-显示种群速度fi

9、gure(2)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 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;%

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

11、:); pbest1(j)=fitness(x1(j,:),D); end if(pbest1(j)gbest1) g1=p1(j,:); gbest1=pbest1(j); endv1(j,:)=w*v1(j,:)+c11*rand*(p1(j,:)-x1(j,:)+c21*rand*(g1-x1(j,:); x1(j,:)=x1(j,:)+v1(j,:); end gb1(i)=gbest1;endplot(gb1)TempStr=sprintf(c1= %g ,c2=%g,c11,c21);title(TempStr);xlabel(迭代次数);ylabel(适应度值);%第二个图sub

12、plot(1,2,2)%-初始化种群个体(在此限定速度和位置)-x2=x;v2=v;%-初始化种群个体最有位置和 最优解-p2=x2;pbest2=ones(N,1);for i=1:N pbest2(i)=fitness(x2(i,:),D);end%-初始化种全局最有位置和 最优解-g2=1000*ones(1,D);gbest2=1000;for i=1:N if(pbest2(i)gbest2) g2=p2(i,:); gbest2=pbest2(i); endendgb2=ones(1,T);%-浸入主循环,按照公式依次迭代直到满足精度或者迭代次数-for i=1:T for j=1

13、:N if (fitness(x2(j,:),D)pbest2(j) p2(j,:)=x2(j,:); pbest2(j)=fitness(x2(j,:),D); end if(pbest2(j)0) subplot(D+1)/2,2,j) else subplot(D/2,2,j) end plot(x(:,j),b*);grid on xlabel(粒子) ylabel(初始位置) tInfo=strcat(第,char(j+48),维); if(j9) tInfo=strcat(第,char(floor(j/10)+48),char(rem(j,10)+48),维); end title

14、(tInfo)end%-显示种群速度figure(2)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 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)%-初始化种群个体(在此

15、限定速度和位置)-x1=x;v1=v;%-初始化个体最优位置和最优值-p1=x1;pbest1=ones(N,1);for i=1:N pbest1(i)=fitness(x1(i,:),D);end%-初始化全局最优位置和最优值-g1=1000*ones(1,D);gbest1=1000;for i=1:N if(pbest1(i)gbest1) g1=p1(i,:); gbest1=pbest1(i); endendgb1=ones(1,T);%-浸入主循环,按照公式依次迭代直到满足精度或者迭代次数-for i=1:T for j=1:N if (fitness(x1(j,:),D)pbe

16、st1(j) p1(j,:)=x1(j,:); pbest1(j)=fitness(x1(j,:),D); end if(pbest1(j)gbest1) g1=p1(j,:); gbest1=pbest1(j); end v1(j,:)=w*v1(j,:)+c11*rand*(p1(j,:)-x1(j,:)+c21*rand*(g1-x1(j,:); x1(j,:)=x1(j,:)+v1(j,:); end gb1(i)=gbest1;endplot(gb1)TempStr=sprintf(c1= %g ,c2=%g,c11,c21);title(TempStr);xlabel(迭代次数);

17、ylabel(适应度值);%第二个图subplot(1,2,2)%-初始化种群个体(在此限定速度和位置)-x2=x;v2=v;%-初始化种群个体最有位置和 最优解-p2=x2;pbest2=ones(N,1);for i=1:N pbest2(i)=fitness(x2(i,:),D);end%-初始化种全局最有位置和 最优解-g2=1000*ones(1,D);gbest2=1000;for i=1:N if(pbest2(i)gbest2) g2=p2(i,:); gbest2=pbest2(i); endendgb2=ones(1,T);%-浸入主循环,按照公式依次迭代直到满足精度或者迭

18、代次数-for i=1:T for j=1:N if (fitness(x2(j,:),D)pbest2(j) p2(j,:)=x2(j,:); pbest2(j)=fitness(x2(j,:),D); end if(pbest2(j)0) subplot(D+1)/2,2,j) else subplot(D/2,2,j) plot(x(:,j),b*);grid on xlabel(粒子) ylabel(初始位置) tInfo=strcat(第,char(j+48),维); if(j9) tInfo=strcat(第,char(floor(j/10)+48),char(rem(j,10)+

19、48),维); end title(tInfo)end%-显示种群速度- figure(2)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 xlabel(粒子) 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

20、,1)%-初始化种群个体(在此限定速度和位置)-x1=x;v1=v;%-初始化个体最优位置和最优值-p1=x1;pbest1=ones(N,1);for i=1:N pbest1(i)=fitness(x1(i,:),D);end%-初始化全局最优位置和最优值-g1=1000*ones(1,D);gbest1=1000;for i=1:N if(pbest1(i)gbest1) g1=p1(i,:); gbest1=pbest1(i); endendgb1=ones(1,T);%-浸入主循环,按照公式依次迭代直到满足精度或者迭代次数-for i=1:T for j=1:N if (fitnes

21、s(x1(j,:),D)pbest1(j) p1(j,:)=x1(j,:); pbest1(j)=fitness(x1(j,:),D); end if(pbest1(j)gbest1) g1=p1(j,:); gbest1=pbest1(j); endv1(j,:)=w1*v1(j,:)+c1*rand*(p1(j,:)-x1(j,:)+c2*rand*(g1-x1(j,:); x1(j,:)=x1(j,:)+v1(j,:); end gb1(i)=gbest1;endplot(gb1)TempStr=sprintf(w= %g ,w1);title(TempStr);xlabel(迭代次数)

22、;ylabel(适应度值);subplot(1,2,2)%-初始化种群个体(在此限定速度和位置)-x2=x;v2=v;%-初始化种群个体最有位置和 最优解-p2=x2;pbest2=ones(N,1);for i=1:N pbest2(i)=fitness(x2(i,:),D);end%-初始化种全局最有位置和 最优解-g2=1000*ones(1,D);gbest2=1000;for i=1:N if(pbest2(i)gbest2) g2=p2(i,:); gbest2=pbest2(i); endendgb2=ones(1,T);%-浸入主循环,按照公式依次迭代直到满足精度或者迭代次数-

23、for i=1:T for j=1:N if (fitness(x2(j,:),D)pbest2(j) p2(j,:)=x2(j,:); pbest2(j)=fitness(x2(j,:),D); end if(pbest2(j)0) subplot(D+1)/2,2,j) else subplot(D/2,2,j) plot(x(:,j),b*);grid on xlabel(粒子) ylabel(初始位置) tInfo=strcat(第,char(j+48),维); if(j9) tInfo=strcat(第,char(floor(j/10)+48),char(rem(j,10)+48),维); end title(tInfo)end%-显示种群速度-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁