百度粒子群分析和總結(jié)_第1頁
百度粒子群分析和總結(jié)_第2頁
百度粒子群分析和總結(jié)_第3頁
百度粒子群分析和總結(jié)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、粒子公式在找到這兩個最優(yōu)值時,粒子根據(jù)如下的公式來更新自己的速度和新的位置:v =w*v +cl *rand() * (pbest-present) +c2*rand() * (gbest-present) (a)present口 = present + v (b)v是粒子的速度,w是慣性權(quán)重,prsnt是當(dāng)前粒子的位置.pbestf and gbest如 前定義rand ()是介于(0, 1)之間的隨機數(shù).cl,c2是學(xué)習(xí)因子.通常cl = c2 = 2.程序的偽代碼如下For each particleInitialize particleENDDoFor each particleCal

2、culate fitness valueIf the fitness value is be甘er than the best fitness value (pBest) in historyset current value as the new pBestEndChoose the particle with the best fitness value of all the particles os the gBestFor each particleCalculate particle velocity according equation (a)Update particle pos

3、ition according equation (b)EndWhile maximum iterations or minimum error criteria is not attained在每一維粒子的速度都會被限制在一個最大速度Vmox,如果某一維更新后的速度超過 用戶設(shè)定的Vmcix,那么這一維的速度就被限定為Vmcix實現(xiàn)C+代碼代碼來自2008年數(shù)學(xué)建模東北賽區(qū)B題,l#includestdafx.h2#include3#include4#include5#include6usingnamespacestd;7intcl=2;加速因子 8intc2=2;加速因子 9doublew

4、=l;/慣性權(quán)重10doubleWmax=l;/最大慣性權(quán)重 lldoubleWmin=0.6; /最小慣性權(quán)重 12intKmax=110;/ 迭代次數(shù) 13intGdsCnt;/物資總數(shù) 14intconstDim=10; /粒子維數(shù)intconstPNum=50; /粒子個數(shù) 16intGB:Index=0;/最優(yōu)粒子索引doublea=0.6; /適應(yīng)度調(diào)整因子 18doubleb=0. 5;/適應(yīng)度調(diào)整因子 19intXupDim; /粒子位置上界數(shù)組 20intXdownDim = ;/粒子位置下界數(shù)組 21intValueDim;/初始急需度數(shù)組 22intVmax Dim;最大

5、速度數(shù)組 23classPART工CLE/申明粒子節(jié)點 24voidCheck(PART:CLE&,irrt);/約束函數(shù) 2E void工nput(if stream&);/輸入變量 26void工nitial();/初始化相關(guān)變量 27doubleGetFit(PART 工 CLE&);/計算適應(yīng)度 28voidCalculateFit()/計算適應(yīng)度 29voidBirdsFly();粒子飛翔30voidRun(ofstream&J int=2000); 運行函數(shù) 31classPART 工 CLE/微粒類32public:34intXDim; /微粒的坐標(biāo)數(shù)組35intXBest Di

6、m; 微粒的最好位置數(shù)組 36intVDim; 粒子速度數(shù)組doubleFit;/微粒適合度38doubleFit Best;/微粒最好位置適合度 39”人斯工(:1_”|1111印;粒子數(shù)組 40intmain()/主函數(shù)4142ofstreamoutf(out.txt);43if streaminf (data . txt); /關(guān)聯(lián)輸入文件44inf GdsCnt;/輸入物資總數(shù)45工 nput(inf);46Initial();4 Run(outf100);48system(pause);4S returnO;50)51voidCheck(PART工CLE&p,intcount)參數(shù):

7、p 粒子對象,count 物資數(shù)量52srand(unsigned)time(NULL);54intsum=0;55for(inti=0;iXup)58p.X=Xup;59elseif(p,XVmax)6:p.V=Vmax;elseif(p.Vcount)6869p.Xrand()%Dim70sum=0;71for(inti=0;iXup)74p.X=Xup;elseif(p.XVmax)78p.V=Vmax;79elseif(p.V0)80p.V=0;8:sum+=p.X;8/ void工nput(ifstream&inf)/以 inf 為對象輸入數(shù)據(jù)8586for(inti=0;iXup;

8、88for(inti=0;iValue;90)91void:Enitial()初始化數(shù)據(jù)9293GBIndex=0;94srand( (unsigned )time( NULL); 初始化隨機函數(shù)發(fā)生器95for(inti=0;iDim;i+)96Vmax=(int)(Xup-Xdown)*0.035);97for(inti=0;i 98for(intj=0;jParrGBIndex.Fit)107GBIndex=i;108)109)llCdoubleGetFit(PART:ECLE&p)/計算對象適應(yīng)度111doublesum=0;for(inti=0;iDim;i+)114for(intj

9、=l;j=p.X;j+)115sum+=(l-(j-l)*a/(Xup-b)*Value;returnsum;117)118voidCalculateFit()/計算數(shù)組內(nèi)各粒子的適應(yīng)度119(120for(inti=0;i 121Parr.Fit=GetFit(Parr); 122123)124voidBirdsFly()/粒子飛行尋找最優(yōu)解125(126srand(unsigned)time(NULL);staticintk=10;128w=Wmax-k*(Wmax-Wmin)/Kmax;129k+;130for(inti=0;i for(intj=0;jDim;j+) 132133Par

10、r.Vj=(int)(w*Parr.Vj);134Parr.Vj+=(int)(cl*rand()/(double)RAND_MAX*(Parr.XBestj-Parr.Xj);135Parr,Vj+=c2*rand()/(double)RAND_MAX*(ParrGBIndex.XBestj-Parr.Xj);136)137)13ECheck(ParrGdsCnt);139for(intj=0;j=Parr.FitBest) 147148Parr.FitBest=Parr.Fit;149for(intj=0;jParrGBIndex.FitBest&i!=GBIndex) 156GBIndex=i;157)158)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論