其中wmax,wmin分别表示w的最大值和最小值,f表示粒子当前的目标函数值,favg和fmin分别表示当前所有微粒的平均目标值和最小目标值。在上式中,惯性权重随着微粒的目标函数值而自动改变,因此称为自适应权重。
当各微粒的目标值趋于一致或者区域局部最优时,将使惯性权重增加,而各微粒的目标值比较分散时,将使惯性权重减小,同时对于目标函数值优于平均目标值的微粒,其对应的惯性权重因子较小,从而保护了该微粒,反之对于目标函数值差于平均目标值的微粒,其对应的惯性权重因子较大,是得该微粒向较好的搜索区域靠拢。
自适应权重粒子群算法的基本步骤如下:
①随机初始化种群中各微粒的位置和速度;
②评价每个微粒的适应度,将当前各微粒的位置和适应值存储在各微粒的pbest中,本文来自辣%文,论'文.网,毕业论文 www.751com.cn 加7位QQ324~9114找原文将所有pbest中适应值最优个体的位置和适应值存储于gbest中;
③用下式更新粒子的速度和位移
④更新权重
⑤对每个微粒,将其适应值与其经历过的最好位置作比较如果较好,则将其作为当前的最好位置,比较当前所有的pbest和gbest的值,更新gbest;
⑥若满足停止条件,搜索停止,输出结果,否则返回③继续搜索
取值
N:粒子数目; 40
C1:学习因子1; 2
C2:学习因子2; 2
wmax:最大权重; 0.9
wmin:最小权重; 0.6
M:最大迭代次数; 10000
D:问题的文数; 2
程序见附录4
输入[xm,fv] = SAPSO(@fitness,40,2,2,0.9,0.6,10000,2)
得出 xm = 1.0e-006*
-0.097621759330578
-0.236400284536190
Fv = 0
自适应权重的粒子群算法求得的结果的与预期优化结果十分近似,精度很高。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>