資源描述:
《PSO 粒子群算法 Matlab源碼.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、PSO粒子群算法Matlab源碼???????%PSO標(biāo)準(zhǔn)算法其中wc1c2a可以改變%包含初始化函數(shù)?迭代函數(shù)還有總體的PSO算法函數(shù)function[Result,OnLine,OffLine,MinMaxMeanAdapt]=PSO_Stand(SwarmSize,ParticleSize,ParticleScope,IsStep,IsDraw,LoopCount,IsPlot)%function[Result,OnLine,OffLine,MinMaxMeanAdapt]=PSO_Stand(SwarmSize,ParticleSiz
2、e,ParticleScope,InitFunc,StepFindFunc,AdaptFunc,IsStep,IsDraw,LoopCount,IsPlot)%功能描述:一個循環(huán)n次的PSO算法完整過程,返回這次運(yùn)行的最小與最大的平均適應(yīng)度,以及在線性能與離線性能%[Result,OnLine,OffLine,MinMaxMeanAdapt]=PsoProcess(SwarmSize,ParticleSize,ParticleScope,InitFunc,StepFindFunc,AdaptFunc,IsStep,IsDraw,LoopCou
3、nt,IsPlot)%輸入?yún)?shù):SwarmSize:種群大小的個數(shù)%輸入?yún)?shù):ParticleSize:一個粒子的維數(shù)%輸入?yún)?shù):ParticleScope:一個粒子在運(yùn)算中各維的范圍;% ParticleScope格式:% 3維粒子的ParticleScope格式:% [x1Min,x1Max% x2Min,x2Max% x3Min,x3Max]%%輸入?yún)?shù):I
4、nitFunc:初始化粒子群函數(shù)%輸入?yún)?shù):StepFindFunc:單步更新速度,位置函數(shù)%輸入?yún)?shù):AdaptFunc:適應(yīng)度函數(shù)%輸入?yún)?shù):IsStep:是否每次迭代暫停;IsStep=0,不暫停,否則暫停。缺省不暫停%輸入?yún)?shù):IsDraw:是否圖形化迭代過程;IsDraw=0,不圖形化迭代過程,否則,圖形化表示。缺省不圖形化表示%輸入?yún)?shù):LoopCount:迭代的次數(shù);缺省迭代100次%輸入?yún)?shù):IsPlot:控制是否繪制在線性能與離線性能的圖形表示;IsPlot=0,不顯示;% ??????????
5、???????????????IsPlot=1;顯示圖形結(jié)果。缺省IsPlot=1%返回值:Result為經(jīng)過迭代后得到的最優(yōu)解%返回值:OnLine為在線性能的數(shù)據(jù)%返回值:OffLine為離線性能的數(shù)據(jù)%返回值:MinMaxMeanAdapt為本次完整迭代得到的最小與最大的平均適應(yīng)度%%用法[Result,OnLine,OffLine,MinMaxMeanAdapt]=PsoProcess(SwarmSize,ParticleSize,ParticleScope,InitFunc,StepFindFunc,AdaptFunc,IsStep
6、,IsDraw,LoopCount,IsPlot);%%異常:首先保證該文件在Matlab的搜索路徑中,然后查看相關(guān)的提示信息。%%編制人:XXX%編制時(shí)間:2007.3.26%參考文獻(xiàn):XXXXX%%修改記錄:%添加MinMaxMeanAdapt,以得到性能評估數(shù)據(jù)%修改人:Jeary%修改時(shí)間:2012.12.12%參考文獻(xiàn):XXX.%容錯控制ifnargin<3%ifnargin<4???error('輸入的參數(shù)個數(shù)錯誤。')end[row,colum]=size(ParticleSize);ifrow>1
7、
8、colum>1???err
9、or('輸入的粒子的維數(shù)錯誤,是一個1行1列的數(shù)據(jù)。');end[row,colum]=size(ParticleScope);ifrow~=ParticleSize
10、
11、colum~=2???error('輸入的粒子的維數(shù)范圍錯誤。');end%設(shè)置缺省值ifnargin<4%ifnargin<7???IsPlot=1;???LoopCount=100;???IsStep=0;???IsDraw=0;%elseifnargin<8elseifnargin<5???IsPlot=1;???IsDraw=0;???LoopCount=100;%e
12、lseifnargin<9elseifnargin<6???LoopCount=100;???IsPlot=1;%elseifnargin<10elseifnarg