版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第頁(yè)例函數(shù)對(duì)于適應(yīng)度函數(shù)fitness對(duì)其參數(shù),,做出不同方式的比較以測(cè)試其對(duì)函數(shù)結(jié)果影響。當(dāng),,。(適應(yīng)函數(shù))程序1當(dāng),,。a)%主函數(shù)源程序(main.m)%基本粒子群算法(particleswarmoptimization)%名稱:基本粒子群算法%初始格式化clearall;%清除所有變量clc;%清屏formatlong;%將數(shù)據(jù)顯示為長(zhǎng)整形科學(xué)計(jì)數(shù)%給定初始條條件N=40;%3初始化群體個(gè)數(shù)D=10;%初始化群體維數(shù)T=100;%初始化群體最迭代次數(shù)c11=2;%學(xué)習(xí)因子1c21=2;%學(xué)習(xí)因子2c12=1.5;c22=1.5;w=1.2;%慣性權(quán)重eps=10^(-6);%設(shè)置精度(在已知最小值的時(shí)候用)%初始化種群個(gè)體(限定位置和速度)x=zeros(N,D); %x是位置,初始化位置空間(矩陣)v=zeros(N,D); %v是速度,初始化速度空間(矩陣)fori=1:Nforj=1:Dx(i,j)=randn;%隨機(jī)初始化位置,randn返回一個(gè)隨機(jī)變化的符合正態(tài)分布的數(shù)v(i,j)=randn;%隨機(jī)初始化速度endend%顯示群位置figure(1)forj=1:Dif(rem(D,2)>0)subplot((D+1)/2,2,j)elsesubplot(D/2,2,j)endplot(x(:,j),'b*');gridon %’b*’表示顏色是綠的,用*顯示在圖上x(chóng)label('粒子')ylabel('初始位置')tInfo=strcat('第',char(j+48),'維'); %strcat使括號(hào)里的東西連成字符串if(j>9) tInfo=strcat('第',char(floor(j/10)+48)); %floor向負(fù)無(wú)窮方向取整char(rem(j,10)+48,'維'); %rem取余endtitle(tInfo)end%顯示種群速度f(wàn)igure(2)forj=1:Dif(rem(D,2)>0)subplot((D+1)/2,2,j)elsesubplot(D/2,2,j)endplot(v(:,j),'b*');gridon %是不是應(yīng)該是v(:,j)xlabel('粒子')ylabel('初始速度')tInfo=strcat('第',char(j+48),'維');if(j>9)tInfo=strcat('第',char(floor(j/10)+48),'維');char(rem(j,10)+48,'維);endtitle(tInfo)endfigure(3)%第一個(gè)圖subplot(1,2,1)%初始化種群個(gè)體(在此限定速度和位置)x1=x;v1=v;%初始化個(gè)體最優(yōu)位置和最優(yōu)值p1=x1;pbest1=ones(N,1);fori=1:Npbest1(i)=fitness(x1(i,:),D); %適應(yīng)度函數(shù)end%初始化全局最優(yōu)位置和最優(yōu)值g1=1000*ones(1,D);gbest1=1000;fori=1:Nif(pbest1(i)<gbest1)g1=p1(i,:);gbest1=pbest1(i);endendgb1=ones(1,T);%進(jìn)入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù)fori=1:Tforj=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);endv1(j,:)=w*v1(j,:)+c11*rand*(p1(j,:)-x1(j,:))+c21*rand*
(g1-x1(j,:));x1(j,:)=x1(j,:)+v1(j,:);endgb1(i)=gbest1;endplot(gb1)TempStr=sprintf('c1=%g,c2=%g',c11,c21);title(TempStr);xlabel('迭代次數(shù)');ylabel('適應(yīng)度值');%第二個(gè)圖subplot(1,2,2)%初始化種群個(gè)體(在此限定速度和位置)x2=x;v2=v;%初始化種群個(gè)體最有位置和最優(yōu)解p2=x2;pbest2=ones(N,1);fori=1:Npbest2(i)=fitness(x2(i,:),D);end%初始化種全局最優(yōu)位置和最優(yōu)解g2=1000*ones(1,D);gbest2=1000;fori=1:Nif(pbest2(i)<gbest2)g2=p2(i,:); %最優(yōu)位置gbest2=pbest2(i); %最優(yōu)解endendgb2=ones(1,T); %T為迭代次數(shù)T=100%進(jìn)入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù)fori=1:Tforj=1:Nif(fitness(x2(j,:),D)<pbest2(j)) %個(gè)體最優(yōu)p2(j,:)=x2(j,:);pbest2(j)=fitness(x2(j,:),D);endif(pbest2(j)<gbest2) %全局最優(yōu)g2=p2(j,:);gbest2=pbest2(j);endv2(j,:)=w*v2(j,:)+c12*rand*(p2(j,:)-x2(j,:))+c22*rand*
(g2-x2(j,:));x2(j,:)=x2(j,:)+v2(j,:);endgb2(i)=gbest2; %每一代的最優(yōu)解endplot(gb2)TempStr=sprintf('c1=%g,c2=%g',c12,c22);title(TempStr);xlabel('迭代次數(shù)');ylabel('適應(yīng)度值');程序2當(dāng)于對(duì)比a)%主函數(shù)源程序(main.m)%基本粒子群算法(particleswarmoptimization)%名稱:基本粒子群算法%初始格式化clearall;%清除所有變量clc;%清屏formatlong;%將數(shù)據(jù)顯示為長(zhǎng)整形科學(xué)計(jì)數(shù)%給定初始條條件N=40;%3初始化群體個(gè)數(shù)D=10;%初始化群體維數(shù)T=100;%初始化群體最迭代次數(shù)c11=2;%學(xué)習(xí)因子1c21=2;%學(xué)習(xí)因子2c12=0;c22=2;w=1.2;%慣性權(quán)重eps=10^(-6);%設(shè)置精度(在已知最小值的時(shí)候用)%初始化種群個(gè)體(限定位置和速度)x=zeros(N,D);v=zeros(N,D);fori=1:Nforj=1:Dx(i,j)=randn;%隨機(jī)初始化位置v(i,j)=randn;%隨機(jī)初始化速度endend%顯示群位置figure(1)forj=1:Dif(rem(D,2)>0)subplot((D+1)/2,2,j)elsesubplot(D/2,2,j)endplot(x(:,j),'b*');gridonxlabel('粒子')ylabel('初始位置')tInfo=strcat('第',char(j+48),'維');if(j>9)tInfo=strcat('第',char(floor(j/10)+48),char(rem(j,10)+48),'維');endtitle(tInfo)end%顯示種群速度f(wàn)igure(2)forj=1:Dif(rem(D,2)>0)subplot((D+1)/2,2,j)elsesubplot(D/2,2,j)endplot(x(:,j),'b*');gridonxlabel('粒子')ylabel('初始速度')tInfo=strcat('第,char(j+48),'維');if(j>9)tInfo=strcat('第',char(floor(j/10)+48),char(rem(j,10)+48),'維);endtitle(tInfo)endfigure(3)%第一個(gè)圖subplot(1,2,1)%初始化種群個(gè)體(在此限定速度和位置)x1=x;v1=v;%初始化個(gè)體最優(yōu)位置和最優(yōu)值p1=x1;pbest1=ones(N,1);fori=1:Npbest1(i)=fitness(x1(i,:),D);end%初始化全局最優(yōu)位置和最優(yōu)值g1=1000*ones(1,D);gbest1=1000;fori=1:Nif(pbest1(i)<gbest1)g1=p1(i,:);gbest1=pbest1(i);endendgb1=ones(1,T);%浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù)fori=1:Tforj=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);endv1(j,:)=w*v1(j,:)+c11*rand*(p1(j,:)-x1(j,:))+c21*rand*(g1-x1(j,:));x1(j,:)=x1(j,:)+v1(j,:);endgb1(i)=gbest1;endplot(gb1)TempStr=sprintf('c1=%g,c2=%g',c11,c21);title(TempStr);xlabel('迭代次數(shù)');ylabel('適應(yīng)度值');%第二個(gè)圖subplot(1,2,2)%初始化種群個(gè)體(在此限定速度和位置)x2=x;v2=v;%初始化種群個(gè)體最有位置和最優(yōu)解p2=x2;pbest2=ones(N,1);fori=1:Npbest2(i)=fitness(x2(i,:),D);end%初始化種全局最有位置和最優(yōu)解g2=1000*ones(1,D);gbest2=1000;fori=1:Nif(pbest2(i)<gbest2)g2=p2(i,:);gbest2=pbest2(i);endendgb2=ones(1,T);%浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù)fori=1:Tforj=1:Nif(fitness(x2(j,:),D)<pbest2(j))p2(j,:)=x2(j,:);pbest2(j)=fitness(x2(j,:),D);endif(pbest2(j)<gbest2)g2=p2(j,:);gbest2=pbest2(j);endv2(j,:)=w*v2(j,:)+c12*rand*(p2(j,:)-x2(j,:))+c22*rand*(g2-x2(j,:));x2(j,:)=x2(j,:)+v2(j,:);endgb2(i)=gbest2;endplot(gb2)TempStr=sprintf('c1=%g,c2=%g',c12,c22);title(TempStr);xlabel('迭代次數(shù)');ylabel('適應(yīng)度值');b)適應(yīng)度函數(shù)%適應(yīng)度函數(shù)(fitness.m)functionresult=fitness(x,D)sum=0;fori=1:Dsum=sum+x(i)^2;endresult=sum;%程序3程序3當(dāng)于對(duì)比a)%主函數(shù)源程序(main.m)%基本粒子群算法(particleswarmoptimization)%名稱:基本粒子群算法%初始格式化clearall;%清除所有變量clc;%清屏formatlong;%將數(shù)據(jù)顯示為長(zhǎng)整形科學(xué)計(jì)數(shù)%給定初始條條件N=40;%3初始化群體個(gè)數(shù)D=10;%初始化群體維數(shù)T=100;%初始化群體最迭代次數(shù)c11=2;%學(xué)習(xí)因子1c21=2;%學(xué)習(xí)因子2c12=2;c22=0;w=1.2;%慣性權(quán)重eps=10^(-6);%設(shè)置精度(在已知最小值的時(shí)候用)%初始化種群個(gè)體(限定位置和速度)x=zeros(N,D);v=zeros(N,D);fori=1:Nforj=1:Dx(i,j)=randn;%隨機(jī)初始化位置v(i,j)=randn;%隨機(jī)初始化速度endend%顯示群位置figure(1)forj=1:Dif(rem(D,2)>0)subplot((D+1)/2,2,j)elsesubplot(D/2,2,j)endplot(x(:,j),'b*');gridonxlabel('粒子')ylabel('初始位置')tInfo=strcat('第',char(j+48),'維');if(j>9)tInfo=strcat('第',char(floor(j/10)+48),char(rem(j,10)+48),'維');endtitle(tInfo)end%顯示種群速度f(wàn)igure(2)forj=1:Dif(rem(D,2)>0)subplot((D+1)/2,2,j)elsesubplot(D/2,2,j)endplot(x(:,j),'b*');gridonxlabel('粒子')ylabel('初始速度')tInfo=strcat('第,char(j+48),'維');if(j>9)tInfo=strcat('第',char(floor(j/10)+48),char(rem(j,10)+48),'維);endtitle(tInfo)endfigure(3)%第一個(gè)圖subplot(1,2,1)%初始化種群個(gè)體(在此限定速度和位置)x1=x;v1=v;%初始化個(gè)體最優(yōu)位置和最優(yōu)值p1=x1;pbest1=ones(N,1);fori=1:Npbest1(i)=fitness(x1(i,:),D);end%初始化全局最優(yōu)位置和最優(yōu)值g1=1000*ones(1,D);gbest1=1000;fori=1:Nif(pbest1(i)<gbest1)g1=p1(i,:);gbest1=pbest1(i);endendgb1=ones(1,T);%浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù)fori=1:Tforj=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);endv1(j,:)=w*v1(j,:)+c11*rand*(p1(j,:)-x1(j,:))+c21*rand*(g1-x1(j,:));x1(j,:)=x1(j,:)+v1(j,:);endgb1(i)=gbest1;endplot(gb1)TempStr=sprintf('c1=%g,c2=%g',c11,c21);title(TempStr);xlabel('迭代次數(shù)');ylabel('適應(yīng)度值');%第二個(gè)圖subplot(1,2,2)%初始化種群個(gè)體(在此限定速度和位置)x2=x;v2=v;%初始化種群個(gè)體最有位置和最優(yōu)解p2=x2;pbest2=ones(N,1);fori=1:Npbest2(i)=fitness(x2(i,:),D);end%初始化種全局最有位置和最優(yōu)解g2=1000*ones(1,D);gbest2=1000;fori=1:Nif(pbest2(i)<gbest2)g2=p2(i,:);gbest2=pbest2(i);endendgb2=ones(1,T);%浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù)fori=1:Tforj=1:Nif(fitness(x2(j,:),D)<pbest2(j))p2(j,:)=x2(j,:);pbest2(j)=fitness(x2(j,:),D);endif(pbest2(j)<gbest2)g2=p2(j,:);gbest2=pbest2(j);endv2(j,:)=w*v2(j,:)+c12*rand*(p2(j,:)-x2(j,:))+c22*rand*(g2-x2(j,:));x2(j,:)=x2(j,:)+v2(j,:);endgb2(i)=gbest2;endplot(gb2)TempStr=sprintf('c1=%g,c2=%g',c12,c22);title(TempStr);xlabel('迭代次數(shù)');ylabel('適應(yīng)度值');b)適應(yīng)度函數(shù)%適應(yīng)度函數(shù)(fitness.m)functionresult=fitness(x,D)sum=0;fori=1:Dsum=sum+x(i)^2;endresult=sum;%程序4程序4對(duì),分別對(duì)其取值,,,測(cè)試函數(shù)。a)%主函數(shù)源程序(main.m)%基本粒子群算法(particleswarmoptimization)%名稱:基本粒子群算法%初始格式化clearall;%清除所有變量clc;%清屏formatlong;%將數(shù)據(jù)顯示為長(zhǎng)整形科學(xué)計(jì)數(shù)%給定初始條條件N=40;%3初始化群體個(gè)數(shù)D=10;%初始化群體維數(shù)T=100;%初始化群體最迭代次數(shù)c1=1.1;%學(xué)習(xí)因子1c2=2;%學(xué)習(xí)因子2w1=1.2;%慣性權(quán)重w2=1.5;%慣性權(quán)重eps=10^(-6);%設(shè)置精度(在已知最小值的時(shí)候用)--%初始化種群個(gè)體(限定位置和速度)x=zeros(N,D);v=zeros(N,D);fori=1:Nforj=1:Dx(i,j)=randn;%隨機(jī)初始化位置v(i,j)=randn;%隨機(jī)初始化速度endend%顯示群位置figure(1)forj=1:Dif(rem(D,2)>0)subplot((D+1)/2,2,j)elsesubplot(D/2,2,j)plot(x(:,j),'b*');gridonxlabel('粒子')ylabel('初始位置')tInfo=strcat('第',char(j+48),'維');if(j>9)tInfo=strcat('第',char(floor(j/10)+48),char(rem(j,10)+48),'維');endtitle(tInfo)end%顯示種群速度f(wàn)igure(2)forj=1:Dif(rem(D,2)>0)subplot((D+1)/2,2,j)elsesubplot(D/2,2,j)endplot(x(:,j),'b*');gridonxlabel('粒子')ylabel('初始速度')tInfo=strcat('第,char(j+48),'維');if(j>9)tInfo=strcat('第',char(floor(j/10)+48),char(rem(j,10)+48),'維);endtitle(tInfo)endfigure(3)subplot(1,2,1)%初始化種群個(gè)體(在此限定速度和位置)x1=x;v1=v;%初始化個(gè)體最優(yōu)位置和最優(yōu)值p1=x1;pbest1=ones(N,1);fori=1:Npbest1(i)=fitness(x1(i,:),D);end%初始化全局最優(yōu)位置和最優(yōu)值g1=1000*ones(1,D);gbest1=1000;fori=1:Nif(pbest1(i)<gbest1)g1=p1(i,:);gbest1=pbest1(i);endendgb1=ones(1,T);%浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù)fori=1:Tforj=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);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('迭代次數(shù)');ylabel('適應(yīng)度值');subplot(1,2,2)%初始化種群個(gè)體(在此限定速度和位置)x2=x;v2=v;%初始化種群個(gè)體最有位置和最優(yōu)解p2=x2;pbest2=ones(N,1);fori=1:Npbest2(i)=fitness(x2(i,:),D);end%初始化種全局最有位置和最優(yōu)解g2=1000*ones(1,D);gbest2=1000;fori=1:Nif(pbest2(i)<gbest2)g2=p2(i,:);gbest2=pbest2(i);endendgb2=ones(1,T);%浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù)fori=1:Tforj=1:Nif(fitness(x2(j,:),D)<pbest2(j))p2(j,:)=x2(j,:);pbest2(j)=fitness(x2(j,:),D);endif(pbest2(j)<gbest2)g2=p2(j,:);gbest2=pbest2(j);endv2(j,:)=w2*v2(j,:)+c1*rand*(p2(j,:)-x2(j,:))+c2*rand*(g2-x2(j,:));x2(j,:)=x2(j,:)+v2(j,:);endgb2(i)=gbest2;endplot(gb2)TempStr=sprintf('w=%g',w2);title(TempStr);xlabel('迭代次數(shù)');ylabel('適應(yīng)度值');b)適應(yīng)度函數(shù)%適應(yīng)度函數(shù)(fitness.m)functionresult=fitness(x,D)sum=0;fori=1:Dsum=sum+x(i)^2;endresult=sum;%程序5程序5對(duì),對(duì)分別取,隨筆其迭代影響a)%主函數(shù)源程序(main.m)%基本粒子群算法(particleswarmoptimization)%名稱:基本粒子群算法%初始格式化clearall;%清除所有變量clc;%清屏formatlong;%將數(shù)據(jù)顯示為長(zhǎng)整形科學(xué)計(jì)數(shù)%給定初始條條件N=40;%3初始化群體個(gè)數(shù)D=10;%初始化群體維數(shù)T=100;%初始化群體最迭代次數(shù)c1=1.1;%學(xué)習(xí)因子1c2=2;%學(xué)習(xí)因子2w1=1.2;%慣性權(quán)重w2=0;%慣性權(quán)重eps=10^(-6);%設(shè)置精度(在已知最小值的時(shí)候用)--%初始化種群個(gè)體(限定位置和速度)x=zeros(N,D);v=zeros(N,D);fori=1:Nforj=1:Dx(i,j)=randn;%隨機(jī)初始化位置v(i,j)=randn;%隨機(jī)初始化速度endend%顯示群位置figure(1)forj=1:Dif(rem(D,2)>0)subplot((D+1)/2,2,j)elsesubplot(D/2,2,j)plot(x(:,j),'b*');gridonxlabel('粒子')ylabel('初始位置')tInfo=strcat('第',char(j+48),'維');if(j>9)tInfo=strcat('第',char(floor(j/10)+48),char(rem(j,10)+48),'維');endtitle(tInfo)end%顯示種群速度f(wàn)igure(2)forj=1:Dif(rem(D,2)>0)subplot((D+1)/2,2,j)elsesubplot(D/2,2,j)endplot(x(:,j),'b*');gridonxlabel('粒子')ylabel('初始速度')tInfo=strcat('第,char(j+48),'維');if(j>9)tInfo=strcat('第',char(floor(j/10)+48),char(rem(j,10)+48),'維);endtitle(tInfo)endfigure(3)subplot(1,2,1)%初始化種群個(gè)體(在此限定速度和位置)x1=x;v1=v;%初始化個(gè)體最優(yōu)位置和最優(yōu)值p1=x1;pbest1=ones(N,1);fori=1:Npbest1(i)=fitness(x1(i,:),D);end%初始化全局最優(yōu)位置和最優(yōu)值g1=1000*ones(1,D);gbest1=1000;fori=1:Nif(pbest1(i)<gbest1)g1=p1(i,:);gbest1=pbest1(i);endendgb1=ones(1,T);%浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù)fori=1:Tforj=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);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('迭代次數(shù)');ylabel('適應(yīng)度值');subplot(1,2,2)%初始化種群個(gè)體(在此限定速度和位置)x2=x;v2=v;%初始化種群個(gè)體最有位置和最優(yōu)解p2=x2;pbest2=ones(N,1);fori=1:Npbest2(i)=fitness(x2(i,:),D);end%初始化種全局最有位置和最優(yōu)解g2=1000*ones(1,D);gbest2=1000;fori=1:Nif(pbest2(i)<gbest2)g2=p2(i,:);gbest2=pbest2(i);endendgb2=ones(1,T);%浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù)fori=1:Tforj=1:Nif(fitness(x2(j,:),D)<pbest2(j))p2(j,:)=x2(j,:);pbest2(j)=fitness(x2(j,:),D);endif(pbest2(j)<gbest2)g2=p2(j,:);gbest2=pbest2(j);endv2(j,:)=w2*v2(j,:)+c1*rand*(p2(j,:)-x2(j,:))+c2*rand*(g2-x2(j,:));x2(j,:)=x2(j,:)+v2(j,:);endgb2(i)=gbest2;endplot(gb2)TempStr=sprintf('w=%g',w2);title(TempStr);xlabel('迭代次數(shù)');ylabel('適應(yīng)度值');b)適應(yīng)度函數(shù)%適應(yīng)度函數(shù)(fitness.m)functionresult=fitness(x,D)sum=0;fori=1:Dsum=sum+x(i)^2;endresult=sum;程序6標(biāo)準(zhǔn)粒子群a)%主函數(shù)源程序(main.m)%基本粒子群算法(particleswarmoptimization)%名稱:基本粒子群算法%初始格式化clearall;%清除所有變量clc;%清屏formatlong;%將數(shù)據(jù)顯示為長(zhǎng)整形科學(xué)計(jì)數(shù)%給定初始條條件N=40;%3初始化群體個(gè)數(shù)D=10;%初始化群體維數(shù)T=100;%初始化群體最迭代次數(shù)c1=2;%學(xué)習(xí)因子1c2=2;%學(xué)習(xí)因子2w=1.2;%慣性權(quán)重eps=10^(-6);%設(shè)置精度(在已知最小值的時(shí)候用)%初始化種群個(gè)體(限定位置和速度)x=zeros(N,D);v=zeros(N,D);fori=1:Nforj=1:Dx(i,j)=randn;%隨機(jī)初始化位置v(i,j)=randn;%隨機(jī)初始化速度endend%顯示群位置figure(1)forj=1:Dif(rem(D,2)>0)subplot((D+1)/2,2,j)elsesubplot(D/2,2,j)endplot(x(:,j),'b*');gridonxlabel('粒子')ylabel('初始位置')tInfo=strcat('第',char(j+48),'維');if(j>9)tInfo=strcat('第',char(floor(j/10)+48),char(rem(j,10)+48),'維');endtitle(tInfo)end%顯示種群速度f(wàn)igure(2)forj=1:Dif(rem(D,2)>0)subplot((D+1)/2,2,j)elsesubplot(D/2,2,j)endplot(x(:,j),'b*');gridonxlabel('粒子')ylabel('初始速度')tInfo=strcat('第',char(j+48),'維');if(j>9)tInfo=strcat('第',char(floor(j/10)+48),char(rem(j,10)+48),'維');endtitle(tInfo)endfigure(3)%初始化群體個(gè)體最有位置和最優(yōu)解p=x;pbest=ones(N,1);fori=1:Npbest(i)=fitness(x(i,:),D);end%初始化全局最優(yōu)位置和最優(yōu)解g=1000*ones(1,D);gbest=1000;fori=1:Nif(pbest(i)<gbest)g=p(i,:);gbest=pbest(i);endendgb=ones(1,T);%進(jìn)入主循環(huán),按照公式依次迭代,直到滿足精度要求--fori=1:Tforj=1:Nif(fitness(x(j,:),D)<pbest(j))p(j,:)=x(j,:);pbest(j)=fitness(x(j,:),D);endif(pbest(j)<gbest)g=p(j,:);gbest=pbest(j);endv(j,:)=w*v(j,:)+c1*rand*(p(j,:)-x(j,:))+c2*rand*(g-x(j,:));x(j,:)=x(j,:)+v(j,:);endgb(i)=gbest;endplot(gb)TempStr=sprintf('w=%g',w);title(TempStr);xlabel('迭代次數(shù)');ylabel('適應(yīng)值');%適應(yīng)度函數(shù)functionresult=fitness(x,D)sum=0;fori=1:Dsum=sum+x(i)^2;endresult=sum;%程序6程序6對(duì),對(duì)分別取,隨筆其迭代影響a)%主函數(shù)源程序(main.m)%基本粒子群算法(particleswarmoptimization)%名稱:基本粒子群算法%初始格式化clearall;%清除所有變量clc;%清屏formatlong;%將數(shù)據(jù)顯示為長(zhǎng)整形科學(xué)計(jì)數(shù)%給定初始條條件N=40;%3初始化群體個(gè)數(shù)D=10;%初始化群體維數(shù)T=100;%初始化群體最迭代次數(shù)c1=1.1;%學(xué)習(xí)因子1c2=2;%學(xué)習(xí)因子2w1=0.4%慣性權(quán)重1w2=0.8%慣性權(quán)重2w3=1.2%慣性權(quán)重3w4=1.4%慣性權(quán)重4w5=1.6%慣性權(quán)重5eps=10^(-6);%設(shè)置精度(在已知最小值的時(shí)候用)--%初始化種群個(gè)體(限定位置和速度)x=zeros(N,D);v=zeros(N,D);fori=1:Nforj=1:Dx(i,j)=randn;%隨機(jī)初始化位置v(i,j)=randn;%隨機(jī)初始化速度endend%顯示群位置figure(1)forj=1:Dif(rem(D,2)>0)subplot((D+1)/2,2,j)elsesubplot(D/2,2,j)plot(x(:,j),'b*');gridonxlabel('粒子')ylabel('初始位置')tInfo=strcat('第',char(j+48),'維');if(j>9)tInfo=strcat('第',char(floor(j/10)+48),char(rem(j,10)+48),'維');endtitle(tInfo)end%顯示種群速度f(wàn)igure(2)forj=1:Dif(rem(D,2)>0)subplot((D+1)/2,2,j)elsesubplot(D/2,2,j)endplot(x(:,j),'b*');gridonxlabel('粒子')ylabel('初始速度')tInfo=strcat('第,char(j+48),'維');if(j>9)tInfo=strcat('第',char(floor(j/10)+48),char(rem(j,10)+48),'維);endtitle(tInfo)endfigure(3)subplot(1,2,1)%初始化種群個(gè)體(在此限定速度和位置)x1=x;v1=v;%初始化個(gè)體最優(yōu)位置和最優(yōu)值p1=x1;pbest1=ones(N,1);fori=1:Npbest1(i)=fitness(x1(i,:),D);end%初始化全局最優(yōu)位置和最優(yōu)值g1=1000*ones(1,D);gbest1=1000;fori=1:Nif(pbest1(i)<gbest1)g1=p1(i,:);gbest1=pbest1(i);endendgb1=ones(1,T);%浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù)fori=1:Tforj=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);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('迭代次數(shù)');ylabel('適應(yīng)度值');figuresubplot(1,2,2)%初始化種群個(gè)體(在此限定速度和位置)X3=xV3=v;%初始化種群個(gè)體最有位置和最優(yōu)解P3=x3;Pbest3=ones(N,1);fori=1:Npbest3(i)=fitness(x3(i,:),D);end%初始化種全局最有位置和最優(yōu)解g3=1000*ones(1,D);gbest3=1000;fori=1:Nif(pbest3(i)<gbest3)g3=p3(i,:);gbes3.=pbest3(i);endendgb3=ones(1,T);%浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人年終工作總結(jié)模板
- 湖北xx內(nèi)河航電樞紐項(xiàng)目可行性研究報(bào)告
- 鋼材銷售月工作總結(jié)
- 銷售軍訓(xùn)心得體會(huì)總結(jié)
- 校園演講稿模板集錦9篇
- 工程訓(xùn)練實(shí)習(xí)總結(jié)
- 供熱項(xiàng)目投標(biāo)書(shū)
- 2022年學(xué)習(xí)委員年終工作總結(jié)
- 公司新員工試用期工作總結(jié)(合集15篇)
- 競(jìng)聘銀行主任演講稿合集三篇
- 辦稅服務(wù)外包投標(biāo)方案(完整版)
- 青甘大環(huán)線路線
- 醫(yī)院女工委工作計(jì)劃(2篇)
- 創(chuàng)新思維與方法(第2版)PPT全套完整教學(xué)課件
- DB21∕T 1237-2020 行業(yè)用水定額
- 2023年江蘇省泰州市中考語(yǔ)文總復(fù)習(xí):現(xiàn)代文閱讀(附答案解析)
- 完整版初中英語(yǔ)命題計(jì)劃表及雙向細(xì)目表
- 音樂(lè)傳奇-張國(guó)榮
- 抗菌藥物臨床應(yīng)用指導(dǎo)原則(2023年版)
- 2023-2024學(xué)年福建省福州市小學(xué)語(yǔ)文 2023-2024學(xué)年六年級(jí)語(yǔ)文期末試卷期末評(píng)估試卷
- GB/T 22544-2008蛋雞復(fù)合預(yù)混合飼料
評(píng)論
0/150
提交評(píng)論