APP下载

改进粒子群优化算法的非线性方程组求解研究*

2022-08-17郭煜

自动化技术与应用 2022年7期
关键词:线性方程组测试函数极值

郭煜

(陕西邮电职业技术学院,陕西咸阳 712000)

1 引言

近年来,应用数学相关研究者与工程技术相关研究者一直将研究的重点放在针对非线性方程组求解方法探索中[1]。从上世纪90 年代开始,越来越多的数学家将研究的核心内容放在非线性方程求解的研究中。各国学者提出众多有效求解方法,其中最为有效的方法包括进化计算方法、牛顿法以及数值迭代法等[2-3]。使用数值迭代法对非线性方程组求解是目前学术界使用最为常见和经典的方法。Newton-Raphson迭代法是所有数值迭代法的基础,该迭代方法具有较快的收敛速度和较强的局部二阶收敛性[4]。但是该迭代算法的计算过程较为复杂,每实现一次迭代都需要对Jacobi矩阵实行计算,再对线性方程组求解;而且Newton-Raphson迭代法在选择初值时具有较强的敏感性,很难获得收敛至所需解的初值;一旦Jacobi 矩阵陷入奇异中或者接近奇异,Newton-Raphson迭代法则不能继续迭代。近年来还有学者将遗传算法作为基础对非线性方程组求解[5],该方法通用性较强,但是在实际使用过程中仍旧遇到很多无法解决的问题。

上世纪末,广大学者对于集群智能相关研究产生极大兴趣,该时期涌现出许多具有代表性的集群智能方法,如粒子群算法和蚁群算法。其中粒子群算法主要是仿真简化社会模型,该算法的主要思想来源于鱼类和鸟类的集群现象和人工生命理论,是极具代表性的集群智能方法之一[6-7]。与蚁群算法类似,粒子群算法也是将群体作为基础实现优化。粒子群算法具有以下三个特点:赋予各粒子随机速度,使得每个粒子都能在问题空间内自由流动;经过粒子之间相互竞争与合作实现粒子的进化;每个粒子都具有极强的记忆功能[9-11]。国内外各类学者都对粒子群算法实行深入研究,逐渐发现粒子群算法存在稳定性较差收敛速度较慢等问题,因此提出一种粒子群优化算法,该算法经过各类学者的反复验证,确定粒子群优化算法具有收敛速度快、快速实现全局最优、概念简单、实现便捷、参数少等优点,被学术界广泛认可。基于粒子群算法的优秀特性,在电力、经济、水利、函数优化等大规模组合优化问题内应用广泛[12]。由于粒子群优化算法极强的高效并行能力,在多峰值、非线性以及不可微等复杂问题方面都有极广泛的应用。

本文将非线性方程组的求解问题转换为函数优化问题,将改进的粒子群优化算法作为基础,对非线性方程组求解。

2 改进粒子群优化算法分析

2.1 粒子群优化算法

在自然环境下,学者通过实际观察鸟类集群中对事物实行搜索时的行为获得启示,研究出粒子群优化算法。通过总结个体自身经验并且共享个体之间的信息,将个体行动策略修正,获得最终优化问题解。在粒子群优化算法内,粒子在搜索空间内等同于优化问题的各潜在解,根据优化函数确定全部粒子的各个适应值。各粒子的飞翔距离与飞翔方向由各个粒子的速度决定,在解空间内,最优粒子实行搜索时会有很多粒子在其后跟随。粒子群优化算法在初始阶段会生成蚁群随机粒子,经过不断迭代寻找到整个粒子群中的最优解。粒子群算法优化过程中,将各粒子的不同认知域作为基础,使粒子群算法性能得到提高。粒子的认知域是指将粒子在计算当下所能得到的最好位置作为中心,当前适应度作为半径划分的区域。所谓最大认知域(Maximum Cognitive Domain,MCD)就是指这个区域的边界位置。第i个粒子的最大认知域为:

式中,fiti(l)表示第i个粒子的适应度值;maxfiti(l)表示第i个粒子在当下能够获取的最佳适应度值。

假设存在某个粒子,该粒子在认知域内的飞行方向被称为认知方向C:

式中,PBest(k,l)与disPBest分别表示某个粒子在l时刻k变量下能够获得的最佳值与最佳值各位变量平方和,disPBest=;D代表粒子变量维数。粒子发挥本身能力找到的最优解(也被称为个体极值)使用式(3)表示:

式中,r1(t)与r2(t)均代表(0,1)之中随机数;w表示PBest(k,l)的飞行率,通常情况下取值为0.001至0.01。

全部粒子种群在一定时间段内所能找到的最优解为全局极值,使用gBest表示。历次迭代过程中更新粒子时需要对两个“极值”实行跟踪得以实现更新。通过式(4)和式(5)各个粒子实现自身位置与速度的更新:

式中,φ0与vt分别表示惯性常数和第t次迭代时粒子的速度,xt与φ1、φ2分别表示第t次迭代时粒子空间位置与各学习因子。

2.2 改进粒子群优化算法

在粒子群优化算法中,各个粒子不会对除自身以外的粒子活动情况加以考虑,更新自身距离与位置时只会考虑各粒子自己的个体极值与全局极值,所以在整个解空间中,粒子群的搜素方式呈现单向性。本文所使用的改进粒子群优化算法,排序粒子群中的粒子时依据的规则为对应各个粒子个体极值的适应值大小,修正各粒子下一次迭代的行动策略时需要选择前n个粒子信息[13]。由此可以看出本文所使用的改进粒子群优化算法在解空间内实行搜索时粒子群内的全部粒子实行多方向性均匀搜索,将改进粒子群优化算法的全局收敛性与计算精度有效提高,式(6)与式(7)表示改进粒子群优化算法的基本公式:

式中,r2i(t)与φ2i分别代表(0,1)中的随机数和学习因子。

适应值大小与全部粒子中粒子个体极值对应,按照适应值大小对粒子排序,取排序完成后的前n个粒子,这些粒子在整个解空间内所处的位置即为gBest,其中n<m。根据式(6)可得出判断:n=1 的特例即为常见的粒子群优化算法。常规情况下,若想求解效果较好,则需要设定40至60个粒子作为粒子群数目,如果求解问题比较特殊,则可以适当将粒子数目增加。粒子最大速度vmax会在历次迭代过程中限制个粒子的运行速度。最大速度vmax变量变化范围控制在10%至20%之间变能实行局部搜索能力与全局搜索能力的平衡。

2.3 求解非线性方程组

求解非线性方程组时,根据定理,||F(x)||2全局极小值点与非线性方程组F(x)=0是等价的[14]。求解非线性方程组的具体过程如下:(1)将改进粒子群优化算法中的粒子速度vt+1与位置xt+1以及整个粒子群的种群规模N初始化,把最大迭代次数max iterations与终止条件精度eps确定下来;(2)设定目标函数:非线性方程组||F(x)||2,对各粒子的适应度值fit(l)实行计算,将各粒子的位置vt+1与适应度值fit(l)存储起来,从中选出最佳适应度的粒子位置,使用FBest表示;(3)利用式(6)和式(7)进化操作各粒子;(4)对于进化完成的粒子确定极值,刷新整个粒子群体的历史最优位置以及粒子历史最优位置;(5)不断重复第(4)个计算步骤,一直到算法满足终止条件。

3 算例分析

本文实验研究分别从改进粒子群算法性能以及求解分线性方程组两个方面开展。

3.1 改进粒子群优化算法性能分析

在测试求解非线性方程组方法性能时,选取3个测试函数对方法的性能实行测试,3个测试函数分别为球曲面(Sphere)函数、非凸(Rosenbrock)函数以及格里旺克(Griewank)函数,3 个测试函数如式(8)所示。各测试函数的最优值均为0。为对比本文方法性能,使用大型线性方程组求解的可验证外包方法与两类五阶解非线性方程组的迭代方法与本文方法形成对比,这两个对比方法分别为文献[4]算法与文献[5]方法。性能分析在Matlab仿真平台下开展,将3种测试函数直接输入到Matlab仿真平台的工具箱中,方便调用。

分析三种方法在各测试函数下的平均适应度函数,在测试过程中,将粒子群种群规模、粒子维数以及整体粒子群的粒子最优位置这三类实验参数统一设置,平均适应度值结果见表1。从表1中能够看出,在实验各影响参数条件相同的情况中,本文方法无论在哪种测试函数之下,都远远低于另两种对比方法的平均适应度值。在反复实验验证中也证明本文方法具有良好的稳定性,历次实验中都能实现目标值,没有出现失败情况。

表1 平均适应度值

以球曲面(Sphere)函数f1为例,分析3 种方法的寻优情况,结果见图1。从图1能够看出,文献[4]方法寻优能力较差,随着迭代次数的增加,粒子适应度始终在降低,寻优能力较差;文献[5]方法虽然也实现寻优,但是速度较较慢,极易陷入局部最优解;本文方法,能够跳出局部最优,寻优性能较强。

图1 寻优曲线变化趋势

针对各方法的在收敛过程中的稳定情况,绘制图2,分析各方法的稳定情况。从图2中能够看出,文献[4]方法和文献[5]方法几乎需要迭代次数达到560 次以上稳点系数才能逐渐上升至0.90以上,而本文方法在迭代达到280次时便能实现收敛曲线迅速上升趋于平稳,证明本文方法收敛速度较快,实现计算时精度较高。

图2 收敛情况对比

3.2 非线性方程组求解

为了验证本文方法对于非线性方程组的求解效果,选取两组非线性方程组作为求解对象,能够本文方法对其求解,以下为分析过程及结果。

非线性方程组(1):

依据上文研究,||F(x)||2全局极小值点与非线性方程组F(x)=0是等价的,所以非线性方程组f1(x)可以表示为F1(x)=,将变换后的非线性方程组作为目标函数,使用本文方法对其求解,表2位求解结果。

通过表2能够看出,使用本文方法弄够对非线性方程求解,具有较高的使用价值。

表2 非线性方程组求解结果

非线性方程组(2):

非线性方程(2)的计算过程与非线性方程(1)的计算过程原理相同,通过F2(x)表示f2(x)。表3和表4分别为具体求解结果以及三种方法对分线性方程组求解结果比较。通过表3与表4中的非线性方程组求解结果以及比较结果可以看出本文方法求解结果较为精准,没实行一次计算便能获得一次求解结果,由此证明具有100%的概率求出非线性方程组的结果。且本文方法的求解精度较高。同时本文方法具有计算过程简单,所需参数较少等特点,再对非线性方程组求解过程中具备一定优势。

表3 非线性方程组求解结果

表4 求解结果比较

4 结束语

本文将改进粒子群优化算法作为基础,利用粒子全砌墙的收敛性能,实现非线性方程组的有效求解,使用该方法求解,具有快速高效的特点,所求得的非线性方程组解精度较高,与同类方法相比具有一定优势。利用仿真平台开展实验证明该方法具有良好的有效性与可行性,从多角度开展实验证明该方法具有高效利用性,为非线性方程组的求解计算拓展新的研究方向。

对于非线性方程组的相关研究一直是数学专业研究人员一直关注的问题,在今后的研究中,可以从各种细化角度开展,例如通过优化参数实现非线性方程的精度求解;探寻是否存在更加简便快捷的方式或算法,进一步精确求解非线性方程组。

猜你喜欢

线性方程组测试函数极值
一类整系数齐次线性方程组的整数解存在性问题
齐次线性方程组解的结构问题的教学设计
解信赖域子问题的多折线算法
极值(最值)中的分类讨论
极值点带你去“漂移”
一种基于精英选择和反向学习的分布估计算法
求解非线性方程组的Newton迭代与Newton-Kazcmarz迭代的吸引域
极值(最值)中的分类讨论
极值点偏移问题的解法
基于自适应调整权重和搜索策略的鲸鱼优化算法