您好, 访客   登录/注册

一种改进的粒子群优化算法

来源:用户上传      作者: 王皓

  【摘 要】为了避免粒子群优化算法早熟收敛,本文提出了一种改进的粒子群优化算法。为保持解的多样性,采用种群分组策略,并根据邻域内粒子的选择概率,选择粒子。仿真实验结果表明,本文算法优于GPSO算法。
  【关键词】粒子群;多峰问题;邻域
  粒子群优化算法(PSO)是一种模拟鸟群社会行为的群体搜索算法[1],是由Kennedy和Eberhart在1995年提出。粒子群的概念的最初意图是形象地模拟鸟群的优雅而不可预测的行为,目的是发现统御鸟群同步飞行的模式,以及在最优形式重组时突然改变方向的模式。PSO的应用十分简单,已经广泛地应用于科学,工程等领域。
  虽然PSO算法在解决多数优化问题时表现出色,但在解决复杂的多峰值优化问题时,标准PSO很容易陷入局部最优[2]。在全连接PSO算法中(GPSO),每个粒子都可以跟其他粒子通信,算法的收敛速度快,但容易陷入局部最优。一些学者的研究表明,LPSO中每个粒子只与最近的邻居沟通,算法需要更长的迭代次数,但是求得解得质量会更好。因此本文将GPSO和LPSO相结合,提出基于分组策略的改进的粒子群算法,避免算法陷入局部最优。
  1 标准粒子群算法
  一个由m粒子组成的群体在D维搜索空间中以一定的速度飞行,每个粒子在搜索时,考虑到了自己搜索到的历史最好点和群体内其他粒子的历史最好点,在此基础上进行位置的变化。
  粒子的位置和速度根据如下方程进行变化:
  其中,第i个粒子的位置表示为:xi=(xi1,xi2,…,xiD);第i个粒子的速度表示为:vi= (vi1,vi2,…,viD),1≤i≤m,1≤d≤D。c1和c2为学习因子,r1j(t)和r2j(t)是[0,1]的随机数。yi是粒子i的个体最佳位置,j 表示群内粒子所经过的最好位置。
  2 改进的PSO算法
  在全连接PSO算法中(GPSO),每个粒子都可以跟其他粒子通信,算法的收敛速度快,但容易陷入局部最优。而LPSO中每个粒子只与最近的邻居沟通,算法求解质量高,但是收敛速度慢[3]。为进一步提高收敛速度,避免陷入局部最优,本文提出一种改进的粒子群算法。
  本文算法是将粒子群分成若干个组,每组找出最优粒子形成邻域,计算每个粒子被邻域内各个粒子吸引的概率,通过轮盘赌的方式选择向哪个最佳粒子移动。
  定义1 邻域:每组中最优粒子组成。其中粒子采用随机分组的方式。
  定义2 每个粒子被邻域内各个粒子的吸引概率:
  本文算法的基本步骤为:
  步骤1:初始化粒子种群n 为50,搜索空间维数D,惯性权重ω =0.5,学习因子c1 = c2 =1.494,最大迭代次数200。初始化分组,子种群个数m。
  步骤2:找出每组中位置最好的粒子形成邻域。
  步骤3:对种群中每一个粒子i,执行以下操作:
  1)利用公式(3)计算,粒子移向每组中最优粒子的概率pij;
  2)利用轮盘赌的方法选个体j;
  3)利用公式(4)更新速度公式;
  4)利用公式(1)更新位置公式。
  步骤4 :判断算法是否到达指定的最大迭代次数,如果是则转向步骤5,否则转向步骤2。
  步骤5: 输出结果,程序结束。
  3 实验结果
  参数设置:种群规模50,每组粒子5,惯性权重ω=0.5,学习因子c1=c2=1.494,最大迭代次数200,维度D=30。
  测试函数:
  测试结果表明,对于多峰值函数,本文提出的算法能够避免陷入局部最优,具有较好的寻优能力。
  4 结束语
  本文提出了一种新的改进的粒子群优化算法,将粒子种群随机分组,并引入择优概率。该算法能更好的平衡局部搜索和全局搜索能力,避免算法陷入局部最优,提高了求解精度。(下转第202页)
  【参考文献】
  [1]Andries, P, Engelbrecht.计算智能导论[M].北京:清华大学出版社,2010:221-223.
  [2]Liang J J,Qin A K,Suganthan P N,et al.Comprehensive learning particle swarm optimizer for global optimization of multimodal functions[J]. IEEE Transactions on Evolutionary,2006,10(3):281-295.
  [3]石松,陈云.层次环形拓扑结构的动态粒子群算法[J].计算机工程与应用,2013,49(8):1-5.
  [责任编辑:丁艳]
转载注明来源:https://www.xzbu.com/1/view-5308822.htm