Matlab的全局及局部粒子群算法Pso.pdf
文本预览下载声明
Pso 算法说明
现在有很多粒子群算法不规范,国外有些工具包过于复杂,功能太大而无从下手,国内
的一些文档上的方法多数都是一个粒子式地简单循环,不能够全面地发挥Matlab 基于矩阵计
算的能力,本程序中的主程序及目标函数均基于向量形式,另外,很多具体程序中缺乏对约
束问题进行考虑,本程序可以针对约束问题给出结果以查看约束处理情况,另外还可以选择
是否显示离线和在线性能等,再者,本工具包里包含有全局算法及局部算法,试验后发现,
局部算法的性能要好得多 (可能针对不同问题吧),最后,本算法模块化层次条理清晰,说明
具体,可以简单改造成各种改进型算法。
由于时间有限,能力有限,难免有不足之处,本人还是希望把辛苦写出来的好的东西与
大家讨论分享。有问题请email: zhaozb1983@ QQ:278139331
赵志斌
重庆大学自动化学院
MyPsoGbest.m 2012/4/4 16:17
1
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3 %功能描述:向量化的粒子群算法,返回最后全局粒子的历史最优解及对应的适应度值。 (该程序中的全局历
4 %输入参数:AdaptFunc:适应度函数 (以min为最优),采用向量化方法
5 % [F] = Func(ParticleSwarm) 其中,F = [F1;F2;...;FN], x1 = ParticleSwarm(:,1)
6 % 则这样使用 AdaptFunc = @MyRastrigin
7 % 例如:[OutObj,OutCon] = MyPsoGbest(@MyRastrigin,100,3,[-5 5],[-4 4],150);
8 %输入参数:SwarmSize:种群大小个数
9 %输入参数:ParticleSize:一个粒子的维数 (说明中用D表示)
10 %输入参数:ParticlePosScope:粒子各维的位置范围
11 % default [-100 100], of form:
12 % [ min1 max1
13 % min2 max2
14 % ...
15 % minD maxD ]
16 %输入参数:ParticleVelScope:粒子各维的速度范围
17 % default [-4 4], of form:
18 % [ min1 max1
19 % min2 max2
20 % ...
21 % minD maxD ]
22 %输入参数:LoopCount:最大迭代次数 default = 100
23 %输出参数:OutObj:经过迭代后得到的最优解及其适应度值
24 %输出参数:OutCon:输出约束函数的值以判断处理约束能力
25 %编制人:赵志斌 (重庆大学自动化学院)Email: zhaozb1983@
26 %编制时间:2012.3.27
27 %参考文献:XXXXX%
28 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
显示全部