粒子群算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

粒子群算法

摘要:粒子群优化算法是由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的概率。因为)(id

v 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 时的函数

离散粒子群算法的流程图如下图所示:

相关文档
最新文档