2.4权重改进的粒子群算法
在微粒群算法的可调整参数中,惯性权重w是重要的的参数,较大的w有利于提高算法的全局搜索能力,而较小的w会增强算法的局部搜索能力,更具不同的权重变化公式,可得到不同的PSO算法,常见的有线性递减权重,自适应权重,随机权重算法,下面分别进行讲述。
2.4.1线性递减权重法
线性递减权重法PSO算法原理:
由于较大的惯性因子有利于跳出局部极小点,便于全局搜索,而较小的惯性因子则有利于对当前的搜索区域进行精确局部搜索,以利于算法收敛,因此针对PSO算法容易早熟,以计算法后期易在全局最优解附近产生震荡现象,可以采用线性变化的权重,让惯性权重从最大值wmax线性减小到最小值wmin,w随算法迭代次数的变化公式为:
(2-12)
其中wmax,wmin分别表示w的最大值和最小值,t表示当前迭代步数,tmax表示最大迭代步数,通常取wmax=0.9,wmin=0.4.
算法步骤:
线性递减粒子群算法的基本步骤如下:
①随机初始化种群中各微粒的位置和速度;
②评价每个微粒的适应度,将当前各微粒的位置和适应值存储在各微粒的pbest中,将所有pbest中适应值最优个体的位置和适应值存储于gbest中;
③用下式更新粒子的速度和位移
④更新权重
⑤对每个微粒,将其适应值与其经历过的最好位置作比较如果较好,则将其作为当前的最好位置,比较当前所有的pbest和gbest的值,更新gbest;
⑥若满足停止条件,搜索停止,输出结果,否则返回③继续搜索
取值
N:粒子数目; 40
C1:学习因子1; 2
C2:学习因子2; 2
wmax:最大权重; 0.9
wmin:最小权重; 0.4
M:最大迭代次数; 10000
D:问题的文数; 2
程序见附录3 [xm,fv] = LinWPSO(@fitness,40,2,2,0.9,0.4,10000,2)
得出xm =
取值
N:粒子数目; 40
C1:学习因子1; 2
C2:学习因子2; 2
wmax:最大权重; 0.9
wmin:最小权重; 0.4
M:最大迭代次数; 10000
D:问题的文数; 30
程序间附录3
输入[xm,fv] = LinWPSO(@fitness,40,2,2,0.9,0.4,10000,30)
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
matlab微粒群算法研究与仿真 第6页下载如图片无法显示或论文不完整,请联系qq752018766