粒子群优化是以邻域原理(neighborhood principle)为基础进行操作的,该原理来源于社会网络结构研究中。驱动粒子群优化的特性是社会交互作用。群中的个体(粒子)相互学习,而且基于获得的知识移动到更相似于它们的、较好的邻近区域。邻域内的个体进行相互通信。
群是由粒子的集合组成的,而每个粒子代表一个潜在的解答。粒子在超空间流动,每个粒子的位置按照其经验和邻近粒子的位置而发生变化。速度矢量推动优化过程,并反映出社会所交换的信息。下面简单介绍一下三种不同的粒子群优化算法,它们对社会信息交换扩展程度是不同的。
粒子群优化算法
1.个体最佳算法
对于个体最佳(individual best)算法,每一个体只把它的当前位置与自己的最佳位置pbest相比较,而不使用其他粒子的信息。具体算法如下:
(1)对粒子群P(t)初始化,使得t=0时每个粒子P∈P(t)在超空间中的位置X(t)是随机的。
(2)通过每个粒子的当前位置评价其性能f。
(3)比较每个个体的当前性能与其至今有过的最佳性能。
(4)改变每个粒子的速度矢量。
(5)转回第(2)步,重复递归直至收敛。
上述算法中粒子离开其先前发现的最佳解答越远,使该粒子(个体)移回它的最佳解答所需要的速度就越大。随机值P的上限为用户规定的系统参数。p的上限越大,粒子轨迹振荡就越大。较小的P值能够保证粒子的平滑轨迹。
粒子群优化算法
2.全局最佳算法
对于全局最佳(global best)算法,粒子群的全局优化方案gbest反映出一种被称为星形(stan)的邻域拓扑结构。在该结构中,每个粒子能与其他粒子(个体)进行通信,形成一个全连接的社会网络。用于驱动各粒子移动的社会知识包括全群中选出的最佳粒子位置,此外,每个粒子还根据先前已发现的最好的解答来运用它的历史经验。
对于全局最佳算法,粒子离开全局最佳位置和它自己的最佳解答越远,使该粒子回到它的最佳解答所需的速度变化也越大。
3.局部最佳算法
局部最佳(local best)算法用粒子群优化的最佳方案lbest反映一种称为环形(ring)的邻域拓扑结构。该结构中每个粒子与它的n个中间邻近粒子通信。如果n=2,那么一个粒子与它的中间相邻粒子的通信如下图所示。粒子受它们邻域的最佳位置和自己过去经验的影响。
粒子群优化算法
以上三种算法的第(2)步检测各粒子的性能。其中,采用一个函数来测量相应解答与最佳解答的接近度。在进化计算中,称这种接近度为适应度函数。
粒子群优化已用于求解非线性函数的极大值和极小值,也成功地应用于神经网络训练。这时,每个粒子表示一个权矢量,代表一个神经网络。粒子群优化也成功地应用于人体颤抖分析,以便诊断帕金森(Parkinson)疾病。