粒子群算法摘要:粒子群优化算法是由James Kennedy和 Russell Eberbart 设计的一种仿生优化计算方法。
PSO算法的基本设计思想来源于两个方面分别是人工生命和进化计算,设计者通过研究动物群体以及人类行为模式的计算机模拟,然后不断的试错、修改而逐渐的到算法的原型。
PSO算法的运行机理不是依靠个体的自然进化规律,而是对生物群体的社会行为进行模拟。
它最早源于对鸟群觅食行为的研究。
在生物群体中存在着个体与个体、个体与群体间的相互作用、相互影响的行为,这种相互作用和影响是通过信息共享机制体现的。
PSO算法就是对这种社会行为的模拟即利用信息共享机制,使得个体间可以相互借鉴经验,从而促进整个群体朝着更好的方向发展。
关键词:粒子群优化算法;社会行为;鸟群觅食;信息共享1 粒子群算法设计思想粒子群算法的思想来源于对鸟捕食行为的模仿,虽让鸟群在捕食过程中会发生改变飞行方向、聚集等一系列不可预测的行为但整体还是呈现一种有序性,研究证明是因为鸟群中存在一种信息共享机制。
可以设想一群鸟在随机搜索食物,刚开始每只鸟均不知道食物在哪里,所以均无特定的目标进行飞行,但是它们知道哪只鸟距离食物最近,还有自己曾经离食物最近的位置,每只鸟开始通过试图通过这两个位置来确定自己往哪个方向飞行。
因此可以将鸟群觅食行为看做一个特定问题寻找解的过程。
如果我们把一个优化问题看做是空中觅食的鸟群,那么粒子群中每个优化问题的可行解就是搜索空间中的一只鸟,称为“粒子”,“食物”就是优化问题的最优解。
个体找到食物就相当于优化问题找到最优解。
当然这里的鸟群(粒子)是经过人工处理的,它们均有记忆功能,没有质量和体积,不占空间,每个粒子均有速度和位置两个属性,同时每个粒子都有一个由优化问题决定的适应度来评价粒子的“好坏”程度,显然,每个粒子的行为就是总追随者当前的最优粒子在解空间中搜索。
2 粒子群优化算法2.1 标准粒子群优化算法首先提出两个概念,(1)探索:是值粒子在一定程度上离开原先的搜索轨迹,向新的方向进行搜索,体现了向未知区域开拓的能力,可以理解为全局搜索。
(2)开发:值粒子沿着原来的搜索轨迹进行更细的搜索,可以理解为局部搜索,种群在探索和开发的过程中向最优解靠近,因而如何控制这两种搜索过程将对PSO 算法的效率产生较大影响。
假设问题的空间是N 维,群体中有m 个粒子,每个粒子表示一个可行解),...,,(321in i i i x x x x X i =,将它带入目标函数得到适应度值,用这个值来评价每个粒子的优劣。
记粒子所经历过的最好位置为),...,,(321in i i i p p p p P i =,整个群体的最优位置为),...,,(321gn g g g p p p p P g =。
粒子的位置和速度的更新公式为: ij V k+1=w ij V k +11r c (ij Pbest k -ij x k )+22r c (ij gbest k -ij x k )ij x k+1=ij V k+1+ij x k分析上式:惯性权重w 描述了粒子的惯性对速度的影响,w 值会影响到PSO 算法的全局和局部搜索能力,w 越大则全局搜索能力越强。
1C 、2C 为常数,称为学习因子,1r ,2r 是0到1之间的随机数。
对速度的更新由三部分构成: 第一部分是粒子的当前速度,表明了粒子的当前状态。
第二部是是认知部分,表明粒子自身的能力,让粒子拥有足够强的全局搜索能力,避免局部最小。
第三部分为社会部分,表示粒子间的合作。
这三个部分共同决定了粒子的空间搜索能力,三部分共同作用才能让粒子有效地达到最好的位置。
粒子新的速度由当前速度,当前位置与自己经历过的最优位置,当前位置与种群经历过的最优位置的距离共同计算得出,然后根据位置更新公式得到下一代粒子的位置。
迭代的结束条件时达到最大迭代次数或者得到指定的适应度值,不过通常取前者,因为指定的适应度值不好设定。
另外,粒子在不断根据速度来调增位置时,还要受到最大速度max V 的限制,当速度超过max V 时将被限定为max V 。
标准粒子群优化算法的流程图如下图所示:图1 标准粒子群算法流程图步骤如下:(1)初始化种群,包括种群规模,每个粒子的位置和速度。
(2)计算每个粒子的适应度值。
(3)对每个粒子,用它的适应度和个体极值pbest相比较,如果较好,则更新pbest。
(4)对每个粒子,用它的适应度和全局极值gbest相比较,如果较好,则更新gbest。
(5)根据速度和位置的更新公式对粒子的位置和速度进行更新,以产生新一代的个体。
(6)若达到结束条件(满足迭代次数或误差足够好)则退出,否则转(2)。
2.2 离散粒子群算法根据粒子子啊一种状态到另一种状态的变化概率定义了粒子的位置和速度。
因此粒子在状态空间上的每一维的移动都被严格控制为0或1,所以首先要把粒子的速度映射到区间[0,1],用速度与概率进行映射的方法采用的函数是sigmoid 函数。
))(()(id v S rand if < then 1=id x ;else 0=id x其中函数)ex p (11)(id id v v S -+=,rand()在区间[0,1]的一个随机数,用)(id v S 来表示id x 取1的概率。
因为)(idv S 的值与id V 的值相关,所以应该把id V 限制在一个范围这样才能取得比较好的效果,设速度最大值为max V ,则][m a x m a x ,V V v -∈。
以max V =4为例,)(id v S 的关系图为:图2 速度与是S (v )在]4,4[-∈v 时的函数离散粒子群算法的流程图如下图所示:图三离散粒子群算法的流程图离散粒子群优化算法的步骤和标准粒子群优化算法大致相同,可以参考上面的步骤。
3 粒子群优化算法的优缺点分析3.1粒子群算法的优点(1)PSO算法没有交叉和变异运算,依靠粒子速度完成搜索,并且在迭代进化中只有最优的粒子把信息传递给其它粒子,搜索速度快;(2)PSO算法具有记忆性,粒子群体的历史最好位置可以记忆并传递给其它粒子;(3)需调整的参数较少,结构简单,易于工程实现;(4)采用实数编码,直接由问题的解决定,问题解的变量数直接作为粒子的维数。
3.2粒子群算法的缺点(1)缺乏速度的动态调节,容易陷入局部最优,导致收敛精度低和不易收敛;(2)不能有效解决离散及组合优化问题;(3)不能有效求解一些非直角坐标系描述问题,如有关能量场或场内粒子运动规律的求解问题(这些求解空间的边界大部分是基于极坐标、球坐标或柱坐标的)(4)参数控制,对于不同的问题,如何选择合适的参数来达到最优效果。
4 粒子群算法的应用范围粒子群优化算法已提出就受到了广泛的关注,各种粒子群算法应用研究的成果不断涌现,它的应用领域已从最初的函数优化和神经网络的训练扩展到更加开阔的领域,有力地促进了粒子群优化算法的研究。
目前粒子群优化算法的主要应用在如下几个方面:(1)函数优化PSO算法最初被应用于函数优化,但后来的学者经过研究发现,粒子群算法在解决一些经典的函数优化问题,甚至一些非线性函数时也展示出了良好的性能。
其后研究者开始尝试用PSO算法解决更为浮渣的越苏优化和多目标优化问题。
(2)神经网络训练将PSO算法用于神经网络训练也取得了良好的效果,研究表明,PSO是一种很有潜力的神经网络训练算法,如用于市区环境状况的分析和预测等取得了较高的成功率。
(3)工程领域应用很多工程中的实际问题,本质上都是优化问题,因此PSO算法自然就可以应用到实际的工程问题来,将PSO肃反和BP神经网络算法相结合训练神经网络已用于对电动汽车燃料电池组充电情况的模拟。
粒子群优化算法和其它进化算法那一样,可以解决几乎所有的优化问题,或是可以转化为优化问题来求解。
(4)用于随机优化问题的求解:比如随机雪球车辆路径问题,随机规划问题等。
(5)用于最优控制问题的求解,如求解城市环路交通协调控制系统。
5 粒子群算法发展趋势粒子群算法今后研究的主要方向和热点可以总结为如下几个方面:(1)算法基理的数学基础研究。
PSO在实际应用中被证明是有效的,但目前还没有给出收敛性、收敛速度估计等方面的数学证明,已有的工作还远远不够;(2)将各种先进理论引入到PSO。
各种先进理论的引入,首先可以研究性能良好的新型粒子群拓扑结构。
不同的粒子群邻居拓扑结构是对不同类型社会的模拟,研究不同拓扑结构的适用范围,对算法推广和使用有重要意义;其次可以优化PSO的参数及其选择。
参数的选择分别关系到粒子速度的3个部分:惯性部分、社会部分和自身部分在搜索中的作用。
如何选择、优化和调整参数,使得算法既能避免早熟又能比较快速地收敛,对工程实践有着重要意义;(3)与其它智能优化算法的融合。
将P$O和其它优化算法进行融合,主要考虑如何将PSO的优点和其它智能优化算法的优点相结合,取长补短,构造出有特色、有实用价值的混合算法;(4)PSO的扩展应用。
目前P$O的多数研究是针对直角坐标系统描述的系统、离散系统和单一优化系统,而实际系统中,很多系统是非直角坐标系统描述的系统、离散系统、组合优化的系统,目前在这些系统中应用PSO算法可供参考的研究还较少,广泛地开拓P$O在这些领域的应用不仅具有实际意义,同时对深化研究PSO也非常有意义。
6 总结粒子群优化算法是一类新兴的基于群智能的算法,同其它进化算法相比,主要特使是简洁,容易实现和更强的全局优化能力,没有很多参数需要调整,且不需要梯度信息,因此受人们广泛的关注,PSO算法是非线性连续优化问题、组合优化问题和混合整数非线性优化问题的有效优化工具,目前已经广泛应用于函数优化、神经网络训练、模糊系统控制以及其他遗传算法的应用领域。
但对该算法还有很多问题值得研究,是目前优化领域的研究热点。
本文分析该算法的思想来源,两种重要的粒子群算法(标准和离散型)介绍、PSO算法的优缺点以及和一些实际的应用范围,展望了将算法未来的研究方向和发展趋势。
参考文献:[1]王芳,粒子群算法的研究[D][2]刘衍民,粒子群算法的研究及应用[D][3]张永芳,粒子群算法的研究与应用[D][4]王岩,粒子群算法在求解组合优化问题中的应用研究[D][5]王文峰,离散粒子群算法的改进研究及其在优化问题中的应用[D][6]李兰,改进的离散粒子群算法求解0-1背包问题[D][7]陈曦,离散粒子群算法的改进及其应用研究[8]李玉毛,粒子群算法的研究与改进[D][9]莫愿斌,刘贺同,陈德钊,粒子群优化算法的发展趋势[J],计算机与应用化学,2009年4月28日,第26卷,第4期[10]王伯成,施锦丹,王凯,粒子群优化算法的研究现状与发展概述[J],Telecommunication Engineering,2008年5月第48卷第5期[11]夏桂梅, 曾建潮,微粒群算法的研究现状及发展趋势[J],2005年3月第19卷第1期[12]王瑾, 张求明, 黄波,粒子群优化算法的分析与研究[J],,计算机与现代化,2009年第7期[13]王俊伟,粒子群优化算法的改进与应用[D][14]周东先,粒子群优化算法的研究及其应用[D][15]张利彪,基于粒子群优化算法的研究[D]。