資源描述:
《matlab粒子群優(yōu)化算法舉例分析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、例函數(shù)對(duì)于適應(yīng)度函數(shù)fitness對(duì)其參數(shù),,做出不同方式的比較以測試其對(duì)函數(shù)結(jié)果影響。當(dāng),,。(適應(yīng)函數(shù))程序1當(dāng),,。a)%主函數(shù)源程序(main.m)%------基本粒子群算法(particleswarmoptimization)%------名稱:基本粒子群算法%------初始格式化clearall;%清除所有變量clc;%清屏formatlong;%將數(shù)據(jù)顯示為長整形科學(xué)計(jì)數(shù)%------給定初始條條件------------------N=40;%3初始化群體個(gè)數(shù)D=10;%初始化群體維數(shù)T=100;%初
2、始化群體最迭代次數(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ī)初始化
3、速度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*’表示顏色是綠的,用*顯示在圖上xlabel('粒子')ylabel('初始位置')tInfo=strcat('第',char(j+48),'維');%strcat使括號(hào)里的東西連成字符串if(j>9)tInfo=strcat('第',c
4、har(floor(j/10)+48));%floor向負(fù)無窮方向取整char(rem(j,10)+48,'維');%rem取余endtitle(tInfo)end%------顯示種群速度figure(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),'維'
5、);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%---
6、---初始化全局最優(yōu)位置和最優(yōu)值---------------g1=1000*ones(1,D);gbest1=1000;fori=1:Nif(pbest1(i)7、);endif(pbest1(j)8、二個(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%