加急见刊

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

赵 吉 须文波 孙  2008-09-26

摘要:介绍了利用量子行为粒子群算法解决非线性方程组的问题。求方程组的解归结为一个最优化问题,当方程组有多个解时,它的适应值函数就是具有多个最优解的多峰函数。为此,引进一种物种形成原理算法,该算法根据群体微粒的相似度并行地分成子群体。每个子群体是围绕一个群体种子而建立的。对每个子群体进行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算法可以表示为:

下载