动态调整学习因子的种群分类粒子群优化算法

动态调整学习因子的种群分类粒子群优化算法(PSO)首先利用粒子适应值的统计规律对粒子种群进行分类,对属于不同类别的粒子采用不同的进化模型,对于利用完全模型进化的粒子,速度更新公式中的“认知部分”和“社会部分”采用动态调整权重c1和c1的方法,这种“种群分类”与“动态学习因子”交互作用的方式,大大改进了算法的性能。

PSO算法的速度更新公式为:

V’ = w*V + c1*rand()*(pBest-X) + c2*rand()*(gBest-X)

由上式可知公式可以分为3部分:

(1)w*V是“惯性”部分,表示粒子对上一次迭代速度的继承;

(2)c1*rand()*(pBest-X)是“认知”部分,表示粒子从自身学习的成分;

(3)c2*rand()*(gBest-X)是“社会”部分,表示粒子从群体学习的成分。

对于PSO算法的速度更新公式,当c2=0时对应“认知模型”;当c1=0时对应“社会模型”;当c1<>0且c2<>0时对应“完全模型”。一般而言,“认知模型”只考虑粒子本身的信息,缺少社会信息的交流和共享,所以收敛速度慢;“社会模型”只考虑群体因素,倾向于群体学习,收敛速度比较快,但容易早熟。

种群分类

随机初始化均匀分布的粒子群在每一次进化中,大部分粒子都会聚集在某一个中心点周围,此时粒子适应值的分布呈现出类高斯分布的特征,由此可推出每一次进化中会有少部分的粒子位于粒子群中心点过远或过近的范围。当粒子进化到某一代时,用Fi表示粒子i的适应值,AvgF表示整个群体适应值的均值,VarF表示粒子适应值的二阶原点矩,通过比较Fi-AvgF和正负VarF的大小,就可以将粒子群划分成3类。

种群分类粒子群优化算法就是基于上面提到的分类方法,充分利用“认知模型”和“社会模型”各自的特点,对属于不同类别的粒子采用不同的进化模型,并且动态的调整2种模型在进化的不同阶段应点的比重,从而提高算法的优化性能。

首先采用粒子适应值的二阶原点矩VarF作为分界值对粒子进行分类:

(1)如果Fi-AvgF < -VarF,此时粒子适应值较小,离最优解比较近,进化策略采用使粒子能够在自身邻域内细致搜索的“认知模型”;

(2)如果Fi-AvgF > VarF,此时粒子适应值较大,离最优解比较远,进化策略采用“社会模型”,这样做的目的是使这些表现差的粒子加快收敛速度;

(3)如果-VarF < Fi-AvgF < VarF,此时粒子的适应值适中,进化策略采用“完全模型”,并采用动态调整c1和c2的方法。

动态调整学习因子

对于采用“完全模型”的进化策略,在进化初期,应设置较大的c1值和较小的c2值,这样设置,可以让粒子在进化初期仔细的在自身的邻域内搜索,防止粒子匆忙向局部最优解汇聚而错过自身邻域内的全局最优解;进化末期,应设置较小的c1值和较大的c2值,这样可以使粒子更快速、更准确地收敛于全局最优解。所以,将学习因子c1构造成随着进化推进而单调递减的函数,将学习因子c2构造成随着进化推进而单调递增的函数。



发表评论

You must be logged in to post a comment.