求解非线性方程组的量子行为粒子群算法

电科论文 相关文章 审编:站长 来源:编辑部

摘要:介绍了利用量子行为粒子群算法解决非线性方程组的问题。求方程组的解归结为一个最优化问题,当方程组有多个解时,它的适应值函数就是具有多个最优解的多峰函数。为此,引进一种物种形成原理算法,该算法根据群体微粒的相似度并行地分成子群体。每个子群体是围绕一个群体种子而建立的。对每个子群体进行QPSO最优搜索,从而保证方程组中每个可能的解都能被搜索到,具有良好的局部寻优特性。对几个重要的测试函数进行仿真实验,结果证明了所用算法可以保证找到方程组所有的解,并且具有很好的精确度。
关键词:粒子群算法; 量子行为粒子群算法; 非线性方程组; 物种形成原理
0引言
方程组的求解是数值代数的基本问题之一,许多自然生活和工程科学的计算问题最后都可归结为求解方程组;因此,对方程组的解法的研究具有重要的意义。方程组可以分为线性方程组和非线性方程组。传统求解方程组的数值解法分为直接法和迭代法。如果考虑时间约束条件,在实时系统中现存的数值解法都可能无法对方程组进行精确求解。为此利用进化算法使用计算机模拟大自然的进化过程,可以求解许多传统数值计算方法难以解决的复杂问题。由于求方程组的解归结为一个最优化问题,当方程组有多个解时,它的适应值函数就是具有多个最优解的多峰函数。求具有多个解的方程组问题就可以转换为对多峰函数寻优的问题。
粒子群(Particle Swarm Optimization,PSO)算法和量子行为粒子群(Quantum-behaved Particle Swarm Optimization, QPSO)算法都属于进化算法,它们都具有群体智能、迭代过程相对简单和收敛速度较快等优点。其中QPSO是全局收敛的而PSO却不能保证收敛到全局最优解[1]。本文在QPSO算法的基础上引进物种形成原理算法(Speciation Algorithm),提出了改进的基于物种形成的QPSO算法,即SQPSO(Species-based QPSO)算法。在算法中将粒子群动态并行划分为不同的子群。这种物种形成原理算法与Li J.等人研究的利用遗传算法实现多峰优化问题[2]相似。它将粒子群系统中的粒子根据相似度进行划分,并将每个子群中拥有局部最优值的粒子作为该子群的种子,而种子的局部最优值被设为该子群的全局最优值。这样就使得每个子群中的粒子都收敛于该子群的局部最优值,而不是全部收敛于粒子系统中的一个全局最优值。因此这样就可以并行地产生子群,从而有效地进行多峰寻优。
1PSO算法及带惯性权重的PSO算法
PSO算法最早是在1995年由美国社会心理学家James Kennedy和电气工程师Russell Eberhart共同提出的[3],源于对鸟群捕食的行为研究。PSO中,每个优化问题的解都是搜索空间中的一只鸟,称之为粒子。所有的粒子都有一个由被优化的函数决定的适应值(Fitness Value),每个粒子还有一个速度决定它们飞翔的方向和距离。粒子们就追随当前的最优粒子在解空间中搜索。PSO初始化为一群随机粒子(随机解),然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个极值来更新自己。第一个就是粒子本身所找到的最优解。这个解叫做个体极值pbest;另一个极值是整个种群目前找到的最优解,这个极值是全局极值gbest。另外也可以不用整个种群而只是用其中一部分最好粒子的邻居,那么在所有邻居中的极值就是局部极值lbest[4,5]。在找到这两个最优值时, 粒子根据如下的公式来更新自己的速度和新的位置。
2QPSO算法
PSO是基于种群的进化搜索技术,但是所有基本的和改进的PSO算法不能保证算法的全局收敛[1],因为PSO的进化方程式使所有粒子在一个有限的样本空间中搜索。根据粒子群的基本收敛性质,受量子物理基本理论的启发,本文提出了一种新的能保证全局收敛的粒子群算法——QPSO算法[7,8]是对整个PSO算法进化搜索策略的改变,并且进化方程中不需要速度向量,进化方程的形式更简单、参数更少且更容易控制。QPSO算法在搜索能力上优于所有已开发的PSO算法。
在QPSO算法中,粒子的状态只需用位置向量来描述,并且算法中只有一个收缩扩张系数β,对这个参数的选择和控制是非常重要的,它关系到整个算法的收敛性能。 
3方程组的适应值函数
为了求方程组,通常可以将求解的适应值函数定义为
4物种形成原理算法
方程组具有多个解时,适应值函数就是具有多个最优值的多峰函数。为了实现对多峰函数寻优,引进一种物种形成原理算法。这个算法将粒子群系统中相似的微粒并行地划分成子群体,一个子群就是一类具有相似特点的粒子集合。每个子群体中的粒子都围绕在本群体中具有最优适应值的粒子周围,该粒子称为种子(Seed)。利用两个微粒间的欧氏距离来判断它们之间的相似程度,距离越远,则两个微粒间的相似度越低。
采用Li J.等人介绍的方法[2]确定一个子群种子的算法。每次迭代都使用这种算法后,就可以为不同的子群确立各自的种子,然后分别将种子的局部最优值设为该子群的全局最优值。确定种子的算法流程如下:
5SQPSO和Species-based PSO(SPSO)算法
一旦确定好每个子群的种子后,在每个子群中,种子的最优值就是同一子群中其他粒子的全局最优值,这样SQPSO算法可以表示为:
(1)初始化种群的每个粒子的位置向量;
(2)计算所有粒子的适应值;
(3)根据粒子适应值由高到低的顺序排列粒子;
(4)对当前所有粒子确定子群种子;
(5)将种子的最优值确定为其所在子群中所有粒子的全局最优值;
(6)根据式(7)、(8)改变粒子的位置;
(7)转(2),直至条件满足。
SPSO算法可以表示为:
(1)初始化种群的每个粒子的位置向量;
(2)计算所有粒子的适应值;
(3)根据粒子适应值由高到低的顺序排列粒子;
(4)对当前所有粒子确定子群种子;
(5)将种子的最优值确定为其所在子群中所有粒子的全局最优值;
(6)根据式(3)、(4)或(5)改变粒子的位置;
(7)转(2),直至条件满足。
对这两个算法说明如下:
(1)在算法中每一次迭代确定的种子总是那个子群中适应值最好的粒子。
(2)运行结束后得到的种子数组就是要求解的峰值点值。如果全局最优值只有一个,那么第一个种子就是全局最优点值。
6实验结果
表2给出了对每个系统分别使用gbest、lbest、SPSO和SQPSO进行求解的结果。从表2可以看出,当方程组有多个解时,gbest模式PSO算法或lbest模式PSO算法都无法找到所有解,本文提出的算法SPSO和SQPSO对于所有的测试方程组都能找到所有解。用这两种算法求得的解所得到的适应值都十分接近零,所有的实验结果都收敛于一个很接近零的解。表3给出了使用各种方法所得解的平均误差。可以看出SPSO和SQPSO比使用gbest和pbest的PSO算法具有更好的精度值。由表4可知,SQPSO算法优化在训练集上的平均误差小于SPSO算法优化的状态估计。
7结束语
本文在QPSO算法的基础上使用物种形成的概念,提出了一种SQPSO算法用来实现求解具有多个解的方程组。并将SQPSO算法和基于PSO

上一页 1 2 下一页

审编推荐

| 电科论文 | 相关文章

求解非线性方程组的量子行为粒子群算法”相似文章