7.3.2 多种群协同粒子群算法
1.标准粒子群算法
粒子群优化(PSO)算法由Eberhart和Kennedy在1995年提出[10],它是一种启发式的全局随机搜索算法。该算法参照自然界鸟群的觅食行为,通过群体中个体间的信息交流搜寻全局的最优解。在PSO算法中,每个粒子的位置代表解空间的一个解,然后通过迭代搜寻最优解。在每一轮迭代过程中,每个粒子通过自己的经验和周围相邻粒子的经验追踪一个当前全局最优值gbest。同时,每个粒子也会记录它目前为止经历的个体最优值pbest,每个粒子可以根据全种群的最好位置gbest和它过去的最好位置pbest确定自己的移动方向,进而使得整个粒子群朝更优的方向移动。每个粒子迭代时的速度矢量和位置矢量按照式(7-23)和公式(7-24)进行更新:

其中,v i(g)表示第i个粒子在第g代的速度,w是惯性权重,pbest i(g)表示第i个粒子在第g代时追踪到的自己的最优位置(previous best value),gbest(g)表示第g代时的全局最优位置,x i(g)表示第i个粒子第g代时的位置,c 1、c 2是学习因子,rand()表示[0,1]之间的随机数[11]。
由式(7-23)可以看出,粒子速度由以下因素决定:粒子上一次迭代的速度、粒子自身的历史最优速度和目前搜索到的全局最优速度。由式(7-24)可以看出,粒子的位置由原先的位置和速度共同决定。(https://www.daowen.com)
2.多种群协同粒子群算法
虽然标准粒子群算法在全局寻优问题上表现出了出色的性能,但其仍然存在一些问题。因为在PSO算法中,所有的粒子都可能被任何一个粒子吸引到最佳位置,所以在迭代中可能会丢失粒子的多样性。针对这个问题,文献[12]提出了一种多种群协同粒子群优化(MCPSO)算法。在该算法中,会初始化N个粒子群,其中包括一个主粒子群和N-1个副粒子群。每个副粒子群按照标准粒子群算法独立进化。主粒子群在迭代过程中需要按照式(7-25)和式(7-26)更新速度和位置:

由式(7-25)和式(7-26)可以看出,主粒子群在迭代过程中,会同时基于主粒子群的搜索结果和副粒子群的搜索结果来更新粒子的状态。