2.4.3随机权重法
随机权重法算法原理:
将标准PSO算法中设定w为服从某种随机分布的随机数,这样一定程度上可从两方面来客服w的线性递减所带来的不足。
首先,如果在进化初期接近最好点,随机w可能产生相对小的w值,加快算法的收敛速度,另外,如果在算法初期找不到最好点,w的线性递减,使得算法最终收敛不到此最好点,而w的随机生成可以克服这种局限。
W的计算公式如下:
(2-20)
其中N(0,1)表示标准正态分布的随机数,rand(0,1)表示0到1之间的随机数。
随机权重粒子群算法的基本步骤如下:
①随机初始化种群中各微粒的位置和速度;
②评价每个微粒的适应度,将当前各微粒的位置和适应值存储在各微粒的pbest中,将所有pbest中适应值最优个体的位置和适应值存储于gbest中;
③用下式更新粒子的速度和位移
④更新权重
⑤对每个微粒,将其适应值与其经历过的最好位置作比较如果较好,则将其作为当前的最好位置,比较当前所有的pbest和gbest的值,更新gbest;
⑥若满足停止条件,搜索停止,输出结果,否则返回③继续搜索
N:粒子数目; 40
C1:学习因子1; 2
C2:学习因子2; 2
wmax:最大权重; 0.8
wmin:最小权重; 0.5
M:最大迭代次数; 10000
D:问题的文数; 2
程序见附录5
输入[xm,fv] = RandWPSO(@fitness,40,2,2,0.8,0.5,0.2,10000,2)
得出xm =
-0.08984201265110
0.71265640411647fv =
-1.03162845348988
随机权重的粒子群算法求得的实验结果与预期最优化结果十分相似,精度很高。
2.5变学习因子的粒子群算法
学习因子一般固定为常数,并且取值为2.0但是实际的应用中,也有一些其他的取值方式,常见的有同步变化和异步变化的学习因子,下面分别进行讲述。
2.5.1同步变化的学习因子
算法原理:
同步变化的学习因子指的是将学习因子c1和c2的取值范围设定为[cmin,cmax],第t次迭代时的学习因子取值公式为:
(2-24)
同步学习因子粒子群算法的基本步骤如下:
①随机初始化种群中各微粒的位置和速度;
②评价每个微粒的适应度,将当前各微粒的位置和适应值存储在各微粒的pbest中,将所有pbest中适应值最优个体的位置和适应值存储于gbest中;
③用下式更新粒子的速度和位移
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
matlab微粒群算法研究与仿真 第8页下载如图片无法显示或论文不完整,请联系qq752018766