由于PSO算法本身的缺陷,其存在容易出现早熟收敛、后期迭代效率不高、搜索精度不高的问题,在线性递减惯性权重PSO算法的基础上,与GA遗传算法相结合,针对PSO易陷入局部最优,通过采用GA杂交变异的思想,增加了粒子的多样性,跳出局部最优,增强混合算法的全局搜索能力,提高搜索精度[1]。
下图左右分别为PSO_GA混合算法和线性递减惯性权重PSO算法迭代寻优PID参数的适应度值的迭代结果,可以看出PSO_GA混合算法的精确度可以达到小数点后四位,而线性递减惯性权重PSO算法的精确度只能达到小数点后三位,所以运用混合算法,其精确度可以提高一个数量级,这个结果是相当可喜的。
但是由于PSO_GA混合算法加入了遗传算法部分,计算时间与之PSO算法大大提高,这也是精确度提高的代价吧,这也对进行仿真的工作站提出了更高的要求。
本文的PSO_GA混合算法的思想如下图所示,是采用先PSO算法后GA算法的串行混合方式,其可以保证初期经过PSO算法的迭代所形成的种群中有很接近最优解的个体,GA算法的遗传操作使种群多样性得到改善,全局快速寻优,能避免算法陷入局部最优,快速准确地从接近最优解个体的种群中找到最优值,特别是在多峰值函数优化问题上表现突出[2]。
混合算法用文字表述可以分成以下几个部分:
PSO部分
步骤1:随机初始化种群中各粒子的位置和速度;
步骤2:评价每个粒子的适应度,将当前各粒子的位置和适应度值存储在gbest、fgbest中,将全局最优个体的位置和适应度值存储于zbest、fzbest中;
步骤3:根据速度公式和位置公式更新速度和位置;