




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、程序 1 當(dāng) c11 c21 2 , c12 c22 1.5 , w 1.2 。 a)% 主函數(shù)源程序( main.m) % 基本粒子群算法 (particle swarm optimization) % 名稱: 基本粒子群算法 % 初始格式化 clear all; %清除所有變量 clc; %清屏 format long; %將數(shù)據(jù)顯示為長整形科學(xué)計(jì)數(shù) %給定初始條條件 N=40; %3初始化群體個數(shù) D=10; %初始化群體維數(shù) T=100; %初始化群體最迭代次數(shù) c11=2; %學(xué)習(xí)因子 1 c21=2; %學(xué)習(xí)因子 2 c12=1.5; c22=1.5; w=1.2; %慣性權(quán)重 e
2、ps=10A(-6); %設(shè)置精度(在已知最小值的時候用) %初始化種群個體 (限定位置和速度) x=zeros(N,D); v=zeros(N,D); for i=1:N for j=1:D x(i,j)=randn; %隨機(jī)初始化位置 v(i,j)=randn; %隨機(jī)初始化速度 end end % 顯示群位置 figure(1) 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(初始位置) tI nfo=str
3、cat(第: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) else subplot(D/2,2,j) end plot(x(:,j),b*);grid on xlabel(粒子) ylabel(初始速度) tI nfo=strcat(第,char(j+48),維); if(j9) tin fo=strcat(第:c
4、har(floor(j/10)+48), char(rem(j,10)+48),維); end title(tInfo) end figure(3) %第一個圖 subplot(1,2,1) % 初始化種群個體(在此限定速度和位置) x1=x; v1=v; % 初始化個體最優(yōu)位置和最優(yōu)值 - p1=x1; pbest1=ones(N,1); for i=1:N pbest1(i)=fitness(x1(i,:),D); end % 初始化全局最優(yōu)位置和最優(yōu)值 g1=1000*ones(1,D); gbest1=1000; for i=1:N if (pbest1(i)gbest1) g1=p1
5、(i,:); gbest1=pbest1(i); end end gb1=ones(1,T); % 浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù) - 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(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,:
6、); x1(j,:)=x1(j,:)+v1(j,:); end gb1(i)=gbest1; end plot(gb1) TempStr=sprintf(c1= %g ,c2=%g,c11,c21); title(TempStr); xlabel(迭代次數(shù)); ylabel(適應(yīng)度值); %第二個圖 subplot(1,2,2) % 初始化種群個體(在此限定速度和位置) x2=x; v2=v; %初始化種群個體最有位置和 最優(yōu)解 p2=x2; pbest2=ones(N,1); for i=1:N pbest2(i)=fitness(x2(i,:),D); end %初始化種全局最有位置和 最
7、優(yōu)解 g2=1000*ones(1,D); gbest2=1000; for i=1:N if(pbest2(i)gbest2) g2=p2(i,:); gbest2=pbest2(i); end end gb2=ones(1,T); %浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù) 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
8、,2,j) end plot(x(:,j),b*);grid on xlabel(粒子) ylabel(初始位置) tI nfo=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) else subplot(D/2,2,j) end plot(x(:,j), b* );grid on xlabel(粒子
9、) ylabel(初始速度) tI nfo=strcat(第,char(j+48),維); if(j9) tin fo=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; % 初始化個體最優(yōu)位置和最優(yōu)值 - p1=x1; pbest1=ones(N,1); for i=1:N pbest1(i)=fitness(x1(i,:),D); end % 初始化全局最優(yōu)位置和最優(yōu)
10、值 g1=1000*ones(1,D); gbest1=1000; for i=1:N if(pbest1(i)gbest1) g1=p1(i,:); gbest1=pbest1(i); end end gb1=ones(1,T); %浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù) 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(j)gbest1) g1=p1(j,:); gbest1=pbest1(j); e
11、nd 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; end plot(gb1) TempStr=sprintf(c1= %g ,c2=%g,c11,c21); title(TempStr); xlabel(迭代次數(shù)); ylabel(適應(yīng)度值); %第二個圖 subplot(1,2,2) % 初始化種群個體(在此限定速度和位置) x2=x; v2=v; %初始化種群個體最有位置和 最優(yōu)解 p2=x2; pbest2=one
12、s(N,1); for i=1:N pbest2(i)=fitness(x2(i,:),D); end %初始化種全局最有位置和 最優(yōu)解 g2=1000*ones(1,D); gbest2=1000; for i=1:N if (pbest2(i)gbest2) g2=p2(i,:); gbest2=pbest2(i); end end gb2=ones(1,T); %浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù) for i=1:T for j=1:N if (fitness(x2(j,:),D)pbest2(j) p2(j,:)=x2(j,:); pbest2(j)=fitness(
13、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(初始位置) tI nfo=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
14、)/2,2,j) else subplot(D/2,2,j) end plot(x(:,j),b*);grid on xlabel(粒子) ylabel(初始速度) tI nfo=strcat(第,char(j+48),維); if(j9) tin fo=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; % 初始化個體最優(yōu)位置和最優(yōu)值 - p1=x1; pbest1=o
15、nes(N,1); for i=1:N pbest1(i)=fitness(x1(i,:),D); end % 初始化全局最優(yōu)位置和最優(yōu)值 g1=1000*ones(1,D); gbest1=1000; for i=1:N if (pbest1(i)gbest1) g1=p1(i,:); gbest1=pbest1(i); end end gb1=ones(1,T); % 浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù) - for i=1:T for j=1:N if (fitness(x1(j,:),D)pbest1(j) p1(j,:)=x1(j,:); pbest1(j)=fitn
16、ess(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; end plot(gb1) TempStr=sprintf(c1= %g ,c2=%g,c11,c21); title(TempStr); xlabel(迭代次數(shù)); ylabel(適應(yīng)度值); %第二個圖 subplot(1,2
17、,2) % 初始化種群個體(在此限定速度和位置) x2=x; v2=v; %初始化種群個體最有位置和 最優(yōu)解 p2=x2; pbest2=ones(N,1); for i=1:N pbest2(i)=fitness(x2(i,:),D); end %初始化種全局最有位置和 最優(yōu)解 g2=1000*ones(1,D); gbest2=1000; for i=1:N if(pbest2(i)gbest2) g2=p2(i,:); gbest2=pbest2(i); end end gb2=ones(1,T); %浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù) for i=1:T for j=
18、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(初始位置) tI nfo=strcat(第:char(j+48),維); if(j9) tInfo=strcat(第,char(floor(j/10)+48), char(rem(j,10)+48),維); end tit
19、le(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(初始速度) tI nfo=strcat(第,char(j+48),維); if(j9) tin fo=strcat(第:char(floor(j/10)+48), char(rem(j,10)+48),維); end title(tinfo) end figure(3) subplot(1,2,1) %
20、初始化種群個體(在此限定速度和位置) x1=x; v1=v; % 初始化個體最優(yōu)位置和最優(yōu)值 - p1=x1; pbest1=ones(N,1); for i=1:N pbest1(i)=fitness(x1(i,:),D); end % 初始化全局最優(yōu)位置和最優(yōu)值 g1=1000*ones(1,D); gbest1=1000; for i=1:N if(pbest1(i)gbest1) g1=p1(i,:); gbest1=pbest1(i); end end gb1=ones(1,T); %浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù) for i=1:T for j=1:N if
21、(fitness(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); end v1(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; end plot(gb1) TempStr=sprintf(w= %g ,w1); title(TempStr)
22、; xlabel(迭代次數(shù)); ylabel(適應(yīng)度值); subplot(1,2,2) % 初始化種群個體(在此限定速度和位置) x2=x; v2=v; %初始化種群個體最有位置和 最優(yōu)解 p2=x2; pbest2=ones(N,1); for i=1:N pbest2(i)=fitness(x2(i,:),D); end %初始化種全局最有位置和 最優(yōu)解 g2=1000*ones(1,D); gbest2=1000; for i=1:N if (pbest2(i)gbest2) g2=p2(i,:); gbest2=pbest2(i); end end gb2=ones(1,T); %
23、浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù) - 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(初始位置) tI nfo=strcat(第:char(j+48),維); if(j9) tI nfo=strcat(第:char(fl
24、oor(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) else subplot(D/2,2,j) end plot(x(:,j),b*);grid on xlabel(粒子) ylabel(初始速度) tI nfo=strcat(第,char(j+48),維); if(j9) tin fo=strcat(第,char(floor(j/10)+48), char(rem(j,10)+48),維); end t
25、itle(tInfo) end figure(3) subplot(1,2,1) % 初始化種群個體(在此限定速度和位置) x1=x; v1=v; % 初始化個體最優(yōu)位置和最優(yōu)值 - p1=x1; pbest1=ones(N,1); for i=1:N pbest1(i)=fitness(x1(i,:),D); end % 初始化全局最優(yōu)位置和最優(yōu)值 g1=1000*ones(1,D); gbest1=1000; for i=1:N if (pbest1(i)gbest1) g1=p1(i,:); gbest1=pbest1(i); end end gb1=ones(1,T); % 浸入主循環(huán)
26、,按照公式依次迭代直到滿足精度或者迭代次數(shù) - 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(j)gbest1) g1=p1(j,:); gbest1=pbest1(j); end v1(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; end plot(
27、gb1) TempStr=sprintf(w= %g ,w1); title(TempStr); xlabel(迭代次數(shù)); ylabel(適應(yīng)度值); subplot(1,2,2) % 初始化種群個體(在此限定速度和位置) x2=x; v2=v; %初始化種群個體最有位置和 最優(yōu)解 p2=x2; pbest2=ones(N,1); for i=1:N pbest2(i)=fitness(x2(i,:),D); end % 初始化種全局最有位置和最優(yōu)解 g2=1000*ones(1,D); gbest2=1000; for i=1:N if(pbest2(i)gbest2) g2=p2(i,:
28、); gbest2=pbest2(i); end end gb2=ones(1,T); % 浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù) - 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) end plot(x(:,j), b* );grid on xlabel(粒子) ylabel(初始位置) tI nfo=strc
29、at(第:char(j+48),維); if(j9) tI nfo=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) else subplot(D/2,2,j) end plot(x(:,j),b*);grid on xlabel(粒子) ylabel(初始速度) tI nfo=strcat(第,char(j+48),維); if (j9) tl nfo=strcat(第:
30、char(floor(j/10)+48),char(rem(j,10)+48),維); end title(tInfo) end figure(3) % 初始化群體個體最有位置和最優(yōu)解 p=x; pbest=ones(N,1); for i=1:N pbest(i)=fitness(x(i,:),D); end %-初始化全局最優(yōu)位置和最優(yōu)解 g=1000*ones(1,D); gbest=1000; for i=1:N if (pbest(i)gbest) g=p(i,:); gbest=pbest(i); end end gb=ones(1,T); % 進(jìn)入主循環(huán),按照公式依次迭代,直到滿
31、足精度要求 - for i=1:T for j=1:N if (fitness(x(j,:),D)pbest(j) p(j,:)=x(j,:); pbest(j)=fitness(x(j,:),D); end if(pbest(j)0) subplot(D+1)/2,2,j) else subplot(D/2,2,j) plot(x(:,j), b*) ; grid on xlabel(粒子) ylabel(初始位置) tI nfo=strcat(第:char(j+48),維); if(j9) tInfo=strcat(第,char(floor(j/10)+48), char(rem(j,10
32、)+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(初始速度) tI nfo=strcat(第,char(j+48),維); if(j9) tin fo=strcat(第:char(floor(j/10)+48), char(rem(j,10)+48),維); end title(tinfo) end figure(3)
33、subplot(1,2,1) % 初始化種群個體(在此限定速度和位置) x1=x; v1=v; % 初始化個體最優(yōu)位置和最優(yōu)值 - p1=x1; pbest1=ones(N,1); for i=1:N pbest1(i)=fitness(x1(i,:),D); end % 初始化全局最優(yōu)位置和最優(yōu)值 g1=1000*ones(1,D); gbest1=1000; for i=1:N if(pbest1(i)gbest1) g1=p1(i,:); gbest1=pbest1(i); end end gb1=ones(1,T); %浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù) for i=
34、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(j)gbest1) g1=p1(j,:); gbest1=pbest1(j); end v1(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; end plot(gb1) TempStr=sprintf(w= %g ,w1
35、); title(TempStr); xlabel(迭代次數(shù)); ylabel(適應(yīng)度值); figure subplot(1,2,2) % 初始化種群個體(在此限定速度和位置) X3=x V3=v; %初始化種群個體最有位置和 最優(yōu)解 P3=x3; Pbest3=ones(N,1); for i=1:N pbest3(i)=fitness(x3(i,:),D); end % 初始化種全局最有位置和最優(yōu)解 g3=1000*ones(1,D); gbest3=1000; for i=1:N if(pbest3(i)gbest3) g3=p3(i,:); gbes3.=pbest3(i); end
36、 end gb3=ones(1,T); % 浸入主循環(huán),按照公式依次迭代直到滿足精度或者迭代次數(shù) - for i=1:T for j=1:N if (fitness(x3(j,:),D)pbest3(j) p3(j,:)=x3(j,:); pbest3(j)=fitness(x3(j,:),D); end if (pbest3(j)gbest3) g3=p3(j,:); gbest3=pbest3(j); end v3(j,:)=w3*v3(j,:)+c1*rand*(p3(j,:)-x3(j,:)+c2*rand*(g3-x3(j,:); x3(j,:)=x3(j,:)+v3(j,:); end gb3(i)=gbest3; end plot(gb3) TempStr=sprintf(w= %g ,w3); title(TempStr); xlabel(迭代次數(shù)); ylabel(適應(yīng)度值); figure subplot(1,2,2) % 初始化種群個體(在此限定速度和位置) X4=x; V4=v; %初始化種群個體最有位置和 最優(yōu)解 P4=x4; Pbest4=ones(N,1); for i=1:N pbest4(i)=fitness(x4(i,:),D); end % 初始化種全局最有位置和最優(yōu)解 g4=1000*ones(1,D); gbest4=1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度旅游景區(qū)保安臨時工臨時服務(wù)合同
- 二零二五年度醫(yī)療貸款擔(dān)保人免責(zé)服務(wù)合同
- 二零二五年度旅游產(chǎn)品未簽合同消費(fèi)者權(quán)益保障合同
- 2025年度智能制造行業(yè)勞動合同解除及保密協(xié)議模板
- 2025年度購物中心店面轉(zhuǎn)租與租賃期滿續(xù)約合同
- 天津市2025年度租賃房屋裝修與維修責(zé)任協(xié)議
- 二零二五年度美容院轉(zhuǎn)讓合同附帶技術(shù)培訓(xùn)與售后服務(wù)
- 二零二五年度專業(yè)培訓(xùn)機(jī)構(gòu)教師團(tuán)隊(duì)建設(shè)與培養(yǎng)合同
- 2025年遂寧考從業(yè)資格證貨運(yùn)試題
- 2025年銀川貨運(yùn)從業(yè)資格證考試題目及答案解析
- 沒頭腦和不高興-竇桂梅.精選優(yōu)秀PPT課件
- 鋼棧橋計(jì)算書(excel版)
- 租賃合同審批表
- 事業(yè)單位綜合基礎(chǔ)知識考試題庫 綜合基礎(chǔ)知識考試題庫.doc
- 巖石堅(jiān)固性和穩(wěn)定性分級表
- 譯林初中英語教材目錄
- 律師事務(wù)所函[]第號
- 物業(yè)交付后工程維修工作機(jī)制
- 農(nóng)作物病蟲害專業(yè)化統(tǒng)防統(tǒng)治管理辦法
- 新形勢下如何做一名合格的鄉(xiāng)鎮(zhèn)干部之我見
- 食品經(jīng)營單位經(jīng)營場所和設(shè)備布局、操作流程示意圖模板
評論
0/150
提交評論