资源描述:
《PSO标准算法_数学_自然科学_专业资料》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、PSO标准算法其中wclc2a可以改变%包含初始化函数迭代函数还有总体的PSO算法函数function[Result,0nLine,OffLine,MinMaxMeanAdaptJ=PSO_Stand(SwarmSize,ParticleSize,ParticleScope,IsStep,IsDraw,LoopCountJsPlot)%function[Result,OnLinc5OffLinc,MinMaxMcanAdapt]=PSO_Stand(SwannSizc,ParticlcSizc,ParticlcScopc,InitFunc,StepFindFunc,Adap
2、tFuncJsStepJsDraw,LoopCountJsPlot)%功能描述:一个循环n次的PSO算法完整过程,返回这次运行的最小与最人的平均适应度,以及在线性能与离线性能%fResult,OnLine,OffLine,MinMaxMeanAdapt]=PsoProcess(SwarmSize,ParticleSize,ParticleScopcJnitFunc,StcpFindFunc,AdaptFuncJsStcp,IsDraw,LoopCount,IsPlot)%输入参数:SwarmSizc:种群大小的个数%输入参数:ParticleSize:一个粒子的维数%输入参
3、数:ParticleScope:一个粒子在运算中各维的范围;%ParticlcScopc格式:%3维粒了的ParticleScope格式:%[xlMin,xlMaxx2Min,x2Max%x3Min,x3Max]%%输入参数:InitFunc:初始化粒子群函数%输入参数:StepFindFunc:单步更新速度,位置函数%输入参数:AdaptFunc:适应度函数%输入参数:IsStep:是否每次迭代暂停;IsStep=(),不暂停,否则暂停。缺省不暂停%输入参数:IsDmw:是否图形化迭代过程;IsDmw=0,不图形化迭代过程,否则,图形化表示。缺省不图形化表示%输入参数:L
4、oopCount:迭代的次数;缺省迭代100次%输入参数:IsPlot:控制是否绘制在线性能与离线性能的图形表示;IsPlo匸0,不显示;IsPlot二1;显示图形结果。缺省IsPlot=l%返回值:Result为经过迭代后得到的最优解%返回值:OnLine为在线性能的数据%返回值:OffLine为离线性能的数据%返回值:MinMaxMeanAdapt为木次完整迭代得到的最小与最人的平均适应度%%用法[Result,OnLine,OffLine,MinMaxMeanAdapt]=PsoProcess(SwarmSize,ParticleSize,ParticleScope,
5、InitFunc,StepFindFunc,AdaptFunc,IsStep,IsDraw,LoopCount,IsPlot);%%异常:首先保证该文件在Matlab的捜索路径中,然后查看相关的提示信息。%%编制人:XXX%编制时间:2007.3.26%添加MinMaxMcanAdapt,以得到性能评佔数据%修改时间:2012.12.12%容错控制ifnargin<3%ifnargin<4error('输入的参数个数错误。')endlrow,colum]=size(ParticleSize);ifrow>l
6、
7、colum>lerrorC输入的粒子的维数错误,是一个1行1列的
8、数据。endLrow,columJ=size(ParticleScope);讦row-=ParticleSize
9、
10、colum-=2crror(输入的粒了的维数范围错误「);end%设直缺省值ifnargin<4%ifnargin<7IsPlot=l;LoopCount=100;IsStep=0;IsDraw=0;%elseifnargin<8clscifnargin<5IsPlot=l;lsDraw=0;LoopCount=100;%elseifnargin<9clscifnargin<6LoopCount=100;IsPlot=l;%elseifnargin<10els
11、eifnargin<7IsPlot=l;end%控制是否显示2维以下粒了维数的寻找最优的过程%ifIsDraw~=0%DrawObjGraphic(ParticlcSizc,ParticIcScopc,AdaptFunc);%end%初始化种群%[ParSwarm,OptSwarm]=InitFunc(SwarmSize,ParticleSize,ParticleScope,AdaptFunc);[ParSwarm,OptSwarm]=InitSwarm(SwarmSize,ParticleSize,Particl