多目标粒子群matlab代码.doc

上传人:sk****8 文档编号:3025994 上传时间:2019-05-17 格式:DOC 页数:27 大小:145.50KB
下载 相关 举报
多目标粒子群matlab代码.doc_第1页
第1页 / 共27页
多目标粒子群matlab代码.doc_第2页
第2页 / 共27页
多目标粒子群matlab代码.doc_第3页
第3页 / 共27页
多目标粒子群matlab代码.doc_第4页
第4页 / 共27页
多目标粒子群matlab代码.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、% 改进的多目标粒子群算法,包括多个测试函数% 对程序中的部分参数进行修改将更好地求解某些函数% ZDT1NP=cell(1,50);ZDT1FV=cell(1,50);ZDT1T=zeros(1,50);for i=1:50tic;%np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(ZDT1,0.1,50,100,2.0,1.0,0.4,200,30,zeros(1,30),ones(1,30);%-ZDT1elapsedTime=toc;ZDT1NP(i)=np;ZDT1FV(i)=fv;ZDT1T(i)=elapsedTime;display(s

2、trcat(ZDT1,num2str(i);endzdt1fv=cell2mat(ZDT1FV);zdt1fv=GetLeastFunctionValue(zdt1fv);ZDT2NP=cell(1,50);ZDT2FV=cell(1,50);ZDT2T=zeros(1,50);for i=1:50tic;%np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(ZDT2,0.1,50,100,2.0,1.0,0.4,200,30,zeros(1,30),ones(1,30),1,zeros(1,29);%-ZDT2elapsedTime=toc;ZDT2N

3、P(i)=np;ZDT2FV(i)=fv;ZDT2T(i)=elapsedTime;display(strcat(ZDT2,num2str(i);endzdt2fv=cell2mat(ZDT2FV);zdt2fv=GetLeastFunctionValue(zdt2fv);%5ZDT3NP=cell(1,50);ZDT3FV=cell(1,50);ZDT3T=zeros(1,50);for i=1:50tic;% np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(ZDT3,0.1,50,100,2.0,1.0,0.4,400,30,zeros(1,30

4、),ones(1,30);%-ZDT3elapsedTime=toc;ZDT3NP(i)=np;ZDT3FV(i)=fv;ZDT3T(i)=elapsedTime;display(strcat(ZDT3,num2str(i);endzdt3fv=cell2mat(ZDT3FV);zdt3fv=GetLeastFunctionValue(zdt3fv);ZDT4NP=cell(1,50);ZDT4FV=cell(1,50);ZDT4T=zeros(1,50);for i=1:50tic;% np,nprule,dnp,fv,goals=ParticleSwarmOpt(ZDT4,0.1,50,1

5、00,2.0,1.0,0.4,200,10,0,-5,-5,-5,-5,-5,-5,-5,-5,-5,1,5,5,5,5,5,5,5,5,5,1,0,0,0,0,0,0,0,0,0);%-ZDT4elapsedTime=toc;ZDT4NP(i)=np;ZDT4FV(i)=fv;ZDT4T(i)=elapsedTime;display(strcat(ZDT4,num2str(i);endzdt4fv=cell2mat(ZDT4FV);zdt4fv=GetLeastFunctionValue(zdt4fv);%ZDT6NP=cell(1,50);ZDT6FV=cell(1,50);ZDT6T=z

6、eros(1,50);for i=1:50tic;%np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(ZDT6,0.1,50,100,2.0,1.0,0.4,200,10,zeros(1,10),ones(1,10);%-ZDT6elapsedTime=toc;ZDT6NP(i)=np;ZDT6FV(i)=fv;ZDT6T(i)=elapsedTime;display(strcat(ZDT6,num2str(i);endzdt6fv=cell2mat(ZDT6FV);zdt6fv=GetLeastFunctionValue(zdt6fv);CTP1NP

7、=cell(1,50);CTP1FV=cell(1,50);CTP1T=zeros(1,50);for i=1:50tic;np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(CTP1,0.1,50,100,2.0,1.0,0.4,1500,5,0,-5,-5,-5,-5,1,5,5,5,5,struct(isfmopso,false,istargetdis,false,stopatborder,true);%-CTP1elapsedTime=toc;CTP1NP(i)=np;CTP1FV(i)=fv;CTP1T(i)=elapsedTime;displ

8、ay(strcat(CTP1,num2str(i);endctp1fv=cell2mat(CTP1FV);ctp1fv=GetLeastFunctionValue(ctp1fv);CTP1fmNP=cell(1,50);CTP1fmFV=cell(1,50);CTP1fmT=zeros(1,50);for i=1:50tic;np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(CTP1,0.1,50,100,2.0,1.0,0.4,400,5,0,-5,-5,-5,-5,1,5,5,5,5,0 0 0 0 0,struct(isfmopso,true,i

9、stargetdis,false,stopatborder,true);%-CTP1elapsedTime=toc;CTP1fmNP(i)=np;CTP1fmFV(i)=fv;CTP1fmT(i)=elapsedTime;display(strcat(CTP1fm,num2str(i);endctp1fmfv=cell2mat(CTP1fmFV);ctp1fmfv=GetLeastFunctionValue(ctp1fmfv);CTP2NP=cell(1,50);CTP2FV=cell(1,50);CTP2T=zeros(1,50);for i=1:50tic;np,nprule,dnp,fv

10、,goals,pbest=ParticleSwarmOpt(CTP2,0.1,50,100,2.0,1.0,0.4,1500,5,0,-5,-5,-5,-5,1,5,5,5,5,struct(isfmopso,false,istargetdis,false,stopatborder,true);%-CTP2elapsedTime=toc;CTP2NP(i)=np;CTP2FV(i)=fv;CTP2T(i)=elapsedTime;display(strcat(CTP2,num2str(i);endctp2fv=cell2mat(CTP2FV);ctp2fv=GetLeastFunctionVa

11、lue(ctp2fv);CTP2fmNP=cell(1,50);CTP2fmFV=cell(1,50);CTP2fmT=zeros(1,50);for i=1:50tic;np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(CTP2,0.1,50,100,2.0,1.0,0.4,400,5,0,-5,-5,-5,-5,1,5,5,5,5,0 0 0 0 0,struct(isfmopso,true,istargetdis,false,stopatborder,true);%-CTP2elapsedTime=toc;CTP2fmNP(i)=np;CTP2f

12、mFV(i)=fv;CTP2fmT(i)=elapsedTime;display(strcat(CTP2fm,num2str(i);endctp2fmfv=cell2mat(CTP2fmFV);ctp2fmfv=GetLeastFunctionValue(ctp2fmfv);CTP3NP=cell(1,50);CTP3FV=cell(1,50);CTP3T=zeros(1,50);for i=1:50tic;np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(CTP3,0.1,50,100,2.0,1.0,0.4,1400,5,0,-5,-5,-5,-5

13、,1,5,5,5,5,struct(isfmopso,false,istargetdis,false,stopatborder,true);%-CTP3elapsedTime=toc;CTP3NP(i)=np;CTP3FV(i)=fv;CTP3T(i)=elapsedTime;display(strcat(CTP3,num2str(i);endctp3fv=cell2mat(CTP3FV);ctp3fv=GetLeastFunctionValue(ctp3fv);CTP3fmNP=cell(1,50);CTP3fmFV=cell(1,50);CTP3fmT=zeros(1,50);for i=

14、1:50tic;np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(CTP3,0.1,50,100,2.0,1.0,0.4,400,5,0,-5,-5,-5,-5,1,5,5,5,5,0 0 0 0 0,struct(isfmopso,true,istargetdis,false,stopatborder,true);%-CTP3elapsedTime=toc;CTP3fmNP(i)=np;CTP3fmFV(i)=fv;CTP3fmT(i)=elapsedTime;display(strcat(CTP3fm,num2str(i);endctp3fmfv=

15、cell2mat(CTP3fmFV);ctp3fmfv=GetLeastFunctionValue(ctp3fmfv);CTP4NP=cell(1,50);CTP4FV=cell(1,50);CTP4T=zeros(1,50);for i=1:50tic;np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(CTP4,0.1,50,100,2.0,1.0,0.4,1400,5,0,-5,-5,-5,-5,1,5,5,5,5,struct(isfmopso,false,istargetdis,false,stopatborder,true);%-CTP4el

16、apsedTime=toc;CTP4NP(i)=np;CTP4FV(i)=fv;CTP4T(i)=elapsedTime;display(strcat(CTP4,num2str(i);endctp4fv=cell2mat(CTP4FV);ctp4fv=GetLeastFunctionValue(ctp4fv);CTP4fmNP=cell(1,50);CTP4fmFV=cell(1,50);CTP4fmT=zeros(1,50);for i=1:50tic;np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(CTP4,0.1,50,100,2.0,1.0,

17、0.4,400,5,0,-5,-5,-5,-5,1,5,5,5,5,0 0 1 0 0,struct(isfmopso,true,istargetdis,false,stopatborder,true);%-CTP4elapsedTime=toc;CTP4fmNP(i)=np;CTP4fmFV(i)=fv;CTP4fmT(i)=elapsedTime;display(strcat(CTP4fm,num2str(i);endctp4fmfv=cell2mat(CTP4fmFV);ctp4fmfv=GetLeastFunctionValue(ctp4fmfv);CTP5NP=cell(1,50);

18、CTP5FV=cell(1,50);CTP5T=zeros(1,50);for i=1:50tic;%np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(CTP5,0.1,50,100,2.0,1.0,0.4,200,5,0,-5,-5,-5,-5,1,5,5,5,5,0 0 0 0 0);%-CTP5elapsedTime=toc;CTP5NP(i)=np;CTP5FV(i)=fv;CTP5T(i)=elapsedTime;display(strcat(CTP5,num2str(i);endctp5fv=cell2mat(CTP5FV);ctp5fv=

19、GetLeastFunctionValue(ctp5fv);CTP6NP=cell(1,50);CTP6FV=cell(1,50);CTP6T=zeros(1,50);for i=1:50tic;%np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(CTP6,0.1,50,100,2.0,1.0,0.4,400,5,0,-5,-5,-5,-5,1,5,5,5,5,0 0 0 0 0);%-CTP6elapsedTime=toc;CTP6NP(i)=np;CTP6FV(i)=fv;CTP6T(i)=elapsedTime;display(strcat(CT

20、P6,num2str(i);endctp6fv=cell2mat(CTP6FV);ctp6fv=GetLeastFunctionValue(ctp6fv);CTP7NP=cell(1,50);CTP7FV=cell(1,50);CTP7T=zeros(1,50);for i=1:50tic;%np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(CTP7,0.1,50,100,2.0,1.0,0.4,1000,5,0,-5,-5,-5,-5,1,5,5,5,5,1 0 0 0 0);%-CTP7elapsedTime=toc;CTP7NP(i)=np;CT

21、P7FV(i)=fv;CTP7T(i)=elapsedTime;display(strcat(CTP7,num2str(i);endctp7fv=cell2mat(CTP7FV);ctp7fv=GetLeastFunctionValue(ctp7fv);CONSTRNP=cell(1,50);CONSTRFV=cell(1,50);CONSTRT=zeros(1,50);for i=1:50tic;%np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(CTP8,0.1,50,100,2.0,1.0,0.4,200,2,0.1,0,1,5);%-CTP8,

22、CONSTRelapsedTime=toc;CONSTRNP(i)=np;CONSTRFV(i)=fv;CONSTRT(i)=elapsedTime;display(strcat(CTP8,num2str(i);endconstrfv=cell2mat(CONSTRFV);constrfv=GetLeastFunctionValue(constrfv);SRNNP=cell(1,50);SRNFV=cell(1,50);SRNT=zeros(1,50);for i=1:50tic;%np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(CTP9,0.1,5

23、0,100,2.0,1.0,0.4,200,2,-20,-20,20,20);%-CTP9,SRNelapsedTime=toc;SRNNP(i)=np;SRNFV(i)=fv;SRNT(i)=elapsedTime;display(strcat(CTP9,num2str(i);endsrnfv=cell2mat(SRNFV);srnfv=GetLeastFunctionValue(srnfv);TNKNP=cell(1,50);TNKFV=cell(1,50);TNKT=zeros(1,50);for i=1:50tic;np,nprule,dnp,fv,goals,pbest=Partic

24、leSwarmOpt(CTP10,0.1,50,100,2.0,1.0,0.4,1300,2,0,0,pi,pi,struct(isfmopso,false,istargetdis,false,stopatborder,false);%-CTP10,TNKelapsedTime=toc;TNKNP(i)=np;TNKFV(i)=fv;TNKT(i)=elapsedTime;display(strcat(CTP10,num2str(i);endtnkfv=cell2mat(TNKFV);tnkfv=GetLeastFunctionValue(tnkfv);TNKfmNP=cell(1,50);T

25、NKfmFV=cell(1,50);TNKfmT=zeros(1,50);for i=1:50tic;np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(CTP10,0.1,50,100,2.0,1.0,0.4,300,2,0,0,pi,pi,struct(isfmopso,true,istargetdis,false,stopatborder,false);%-CTP10,TNKelapsedTime=toc;TNKfmNP(i)=np;TNKfmFV(i)=fv;TNKfmT(i)=elapsedTime;display(strcat(CTP10fm

26、,num2str(i);endtnkfmfv=cell2mat(TNKfmFV);tnkfmfv=GetLeastFunctionValue(tnkfmfv);BNHNP=cell(1,50);BNHFV=cell(1,50);BNHT=zeros(1,50);for i=1:50tic;%np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(BNH,0.1,50,100,2.0,1.0,0.4,200,2,zeros(1,2),5,3);%-BNHelapsedTime=toc;BNHNP(i)=np;BNHFV(i)=fv;BNHT(i)=elapse

27、dTime;display(strcat(BNH,num2str(i);endbnhfv=cell2mat(BNHFV);bnhfv=GetLeastFunctionValue(bnhfv);OSYNP=cell(1,50);OSYFV=cell(1,50);OSYT=zeros(1,50);for i=1:50tic;np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(OSY,0.1,50,100,2.0,1.0,0.4,1500,6,0,0,1,0,1,0,10,10,5,6,5,10,struct(isfmopso,false,istargetdi

28、s,false,stopatborder,true);%-OSYelapsedTime=toc;OSYNP(i)=np;OSYFV(i)=fv;OSYT(i)=elapsedTime;display(strcat(OSY,num2str(i);endosyfv=cell2mat(OSYFV);osyfv=GetLeastFunctionValue(osyfv);OSYfmNP=cell(1,50);OSYfmFV=cell(1,50);OSYfmT=zeros(1,50);for i=1:50tic;np,nprule,dnp,fv,goals,pbest=ParticleSwarmOpt(O

29、SY,0.1,50,100,2.0,1.0,0.4,500,6,0,0,1,0,1,0,10,10,5,6,5,10,struct(isfmopso,true,istargetdis,false,stopatborder,true);%-OSYelapsedTime=toc;OSYfmNP(i)=np;OSYfmFV(i)=fv;OSYfmT(i)=elapsedTime;display(strcat(OSYfm,num2str(i);endosyfmfv=cell2mat(OSYfmFV);osyfmfv=GetLeastFunctionValue(osyfmfv);function np,

30、nprule,dnp,fv,goals,pbest = ParticleSwarmOpt(funcname,unfitx,N,Nnp,cmax,cmin,w,M,D,lb,ub,x0,params)%待优化的目标函数:fitness%约束容忍度 unfitx=0.01,逐步降到 0%内部种群( 粒子数目) :N%外部种群( 非劣解集):Nnp%学习因子 1:cmax%学习因子 2:cmin%惯性权重:w%最大迭代次数:M%问题的维数:D%目标函数取最小值时的自变量值:xm%目标函数的最小值:fv%迭代次数:cvformat long;NP=;%非劣解集Dnp=;%非劣解集距离if nargin

31、 13params = struct(isfmopso,false,istargetdis,false,stopatborder,true);endif (nargin 12 | isempty(x0)x0=lb+(ub-lb).*rand(1,D);endT=size(fitness(x0,funcname),2);goals=zeros(M,N,T);%记下 N 个粒子 M 次迭代 T 维目标变化%-初始化种群的个体-/第 1 步/x(1,:)=x0;v(1,:)=(ub-lb).*rand(1,D)*0.5;for i=2:Nfor j=1:Dx(i,j)=lb(j)+(ub(j)-lb

32、(j)*rand; %随机初始化位置v(i,j)=(ub(j)-lb(j)*rand*0.5; %随机初始化速度endend%-计算目标向量-%-速度控制vmax=(ub-lb)*0.5;vmin= -vmax;%-求出初始 NP-/第 2 步/NP(1,:)=x(1,:);%第一个默认加入 NPNPRule=0,0,0;%非劣解集参数Dnp(1,1)=0;for i=2:Nfaix = GetFai(x(i,:),funcname,params);if faix=unfitxNP,NPRule,Dnp = compare(x(i,:),NP,NPRule,Dnp,Nnp,funcname,p

33、arams);endend%-初始自身最好位置 -/第 3 步/pbest = x;%自身最优解%-在确定每个粒子所对就的目标方格-/ 第 4 步/%-进入主要循环,按照公式依次迭代-for t=1:M if mod(t,100)=0 unfitx = 0.01-0.01*(t+200)/M;if unfitx 0 unfitx =0 ;end% x,v,pbest,NP,NPRule,Dnp=ReInit(x,v,pbest,NP,NPRule,Dnp,Nnp,D,lb,ub,unfitx); endc = cmax - (cmax - cmin)*t/M;w1=w-(w-0.3)*t/M;%c = cmax; %c = cmax - (cmax - cmin)*mod(t,51)/50;%w1=w-(w-0.3)*mod(t,51)/50;%-获得全局最优 -/第 5 步/%if mod(t,3)=1%gbest,NPRule = GetGlobalBest(NP,NPRule,Dnp);%endfor i=1:N

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

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。