APP下载

基于人工蜂群算法的混沌系统参数估计①

2021-03-19刘文霞王荣杰郜怀通

计算机系统应用 2021年3期
关键词:参数估计蜂群人工

刘文霞,王荣杰,2,韩 冉,郜怀通

1(集美大学 轮机工程学院,厦门 361021)

2(福建省船舶与海洋重点实验室,厦门 361021)

非线性科学是近些年来研究的热点之一,Wang 等[1]将非线性系统应用于伺服电机的控制中,Zhang 等[2]应用超谐波响应分析法测试旋转叶片受气压影响的形变程度,Zheng 等[3]运用非线性系统到分子动力学,充分说明了对非线性系统研究的重要性.自1963年Lorenz提出了第一个具有非线性动力学特性的混沌吸引子,即Lorenz 系统.此后,学术界对混沌系统的研究逐渐深入.2020年,Peng 等将改进的返回结果映射法应用于混沌系统的参数估计,与经典返回结果映射法相比节省了大量的运算时间[4].Zhuang 等[5]应用Jaya-Powell 算法估计Lorenz 混沌系统的参数,为边缘计算提供了便利.国外研究员用改进的粒子群算法估计基于混沌响应的永磁同步电动机模型参数,并取得了良好的效果[6].

混沌是非线性系统中普遍存在的一种现象,它作为非线性动力系统的固有特性引起了极大的关注[7],尤其是混沌系统在生物医学、保密通信以及信息科学等领域需求的推动下,致使许多国内外研究者加入研究,并提出了大量的研究方法[8-10],但这些研究方法大多以参数已知为前提.在许多实际应用中,由于系统的复杂性等因素,导致系统参数在大多数情况下是无法确定的,为了降低在参数寻优过程中的难度,需要对未知参数设置一定的范围,所以对混沌系统中的未知参数进行有效评估成为混沌系统中的关键问题[11].对混沌系统中的未知参数进行有效评估实质是多维复杂函数优化问题,群体智能优化算法对解决复杂函数优化问题提出了有效的方案.例如:人工蜂群算法[12]、萤火虫算法[13]、差分进化算法[14]、花朵授粉算法[15]、粒子群算法[16]等相继被用于对混沌系统的参数估计,具有比传统优化算法更好的效果.

人工蜂群算法是仿生智能计算领域中一种十分典型的群体智能优化算法,它是通过模仿蜜蜂的采蜜过程而得到的,主要特点是可以直接通过对局部候选解的优劣进行比较,选出全局最优值[17].相比其他群智能优化算法,人工蜂群算法在处理多维问题及全局搜索方面所需参数较少,计算简单,易于实现等优点[18,19].故本文利用人工蜂群算法解决混沌系统中参数估计的问题.

1 混沌系统参数估计

定义m个参数的n维混沌系统的状态变量估计值如式(1):

式(1)中,X=(x1,x2,···,xn)T∈Rn是系统的状态向量;θ=(θ1,θ2,···,θm)T∈Rm是系统未知参数向量;X0是系统的初始状态;F:Rn×Rm→Rn是给定的非线性向量函数.

假设系统结构已知,当对系统参数进行估计时被估计系统可定义为式(2):

式(2)中,Y=(y1,y2,···,yn)T∈Rn是被估计系统中的状态向量是系统估计参数.

参数估计问题也可转化为式(3):

式(3)中,N表示用于状态变量的数据长度,xi和yi分别表示在其状态变量下系统的真值和估计值.显然,J(θ)是多维和多模非线性函数,混沌系统具有动态不稳定且对初始参数敏感的特性.因此,难以有效且准确地估计出混沌系统的参数.而人工蜂群算法在处理多维问题上易于实现,故本文采用人工蜂群算法并以式(3)为目标函数进行求解.基于人工蜂群算法的混沌系统参数估计框图如图1所示.首先,将原系统输出的值x1,x2,···,xn和待估计系统输出的值y1,y2,···,yn进行计算得到参数估计的误差平方和J(θ);然后,将得到的J(θ)反馈到人工蜂群算法中生成新的估计值;最后,通过多次迭代调整估计值θ ˆ使优化函数J最小.

图1 混沌系统参数估计框图

2 基于人工蜂群算法的混沌系统参数估计

2.1 人工蜂群算法

人工蜂群算法(Artificial Bee Colony algorithm,ABC)是一种通过模仿蜜蜂的采蜜过程而得到的优化算法,它是由土耳其学者Karaboga 于2005年提出的用来解决多变量函数的优化问题[20].通过对问题的局部寻优行为,找到全局最优值的过程.ABC 算法主要有初始化、雇佣蜂、观察蜂和侦查蜂4 个阶段.

初始化阶段:ABC 算法在初始化阶段,每只雇佣蜂会随机产生一个食物源,每个食物源与待优化解的个数SN一一对应,SN为蜂群规模,而每个待优化解V(i)是一个n维的向量.即初始值生成公式如式(4):

式(4)中,i=1,2,···,SN,j=1,2,···,n.Vmin(j)和Vmax(j)分别是第n维的最小值和最大值.rand表示0和1 之间的随机数.

雇佣蜂阶段:在此阶段,每只雇佣蜂通过搜索方程在其当前位置的附近生成新的食物源VEB(i),其搜索方程如式(5):

式(5)中,i=1,2,···,SN,j=1,2,···,n.λ是−1 到1 之间的随机数,r是1 到SN之 间的任意整数且r≠i.

当得到新的食物源VEB(i),便对其进行评估且与旧的食物源V(i)进行比较.如果VEB(i)的适用性优于V(i),则将VEB(i)替换V(i);否则保留V(i).

观察蜂阶段:当所有雇佣蜂搜索完成后,它们通过舞蹈分享保存的信息给观察蜂.观察蜂根据相应的概率在雇佣蜂传递的信息基础上更新候选解,并评估其适应度选择食物源.更新方程如式(6):

式(6)中,i=1,2,···,SN,j=1,2,···,n.β是−1 到1 之间的随机数,k是1 到SN之间的任意整数且k≠i.

当得到新的食物源VOB(i),便对其进行评估且与更新的食物源V(i)进行比较.如果VOB(i)的适用性优于V(i),则将VOB(i)替换V(i);否则保留V(i).

侦查蜂阶段:为了防止陷入局部最优,对于连续klimit次没更新的解由式(4)重新生成新的候选解代替它.

当得到新的候选解VSB(i),便对其进行评估且与原候选解V(i)进行比较.如果新候选解的适用性优于原候选解,则替换它;否则保留原候选解.

ABC 算法的优化流程图如图2所示.

2.2 基于人工蜂群算法的混沌系统参数估计法的实现

虽然ABC 算法在处理多维问题及全局搜索方面所需参数较少,计算简单,易于实现.但其收敛速度相对较慢,精度不高.

本节为充分利用搜索方程对蜂源进行搜索得到优化解,引入了可选择的概率p得到新的搜索机制,舍弃了概率计算和限制次数内蜂群没替换重新生成随机蜂群的方法,算法的具体改进之处如下.

在雇佣蜂阶段,改用搜索方程如式(7):

式(7)中,i=1,2,···,SN,j=1,2,···,n.Vmin(j)和Vmax(j)分别是第n维的最小值和最大值.

在观察蜂阶段,引用了差分进化中变异[21]的方法.其搜索方程如式(8):

式(8)中,i=1,2,···,SN,j=1,2,···,n.Vbest(j)是雇佣蜂求出的最优值,r1和r2的取值范围为1 到SN,但r1≠r2.ϕ的取值范围为−1 到1.

在侦查蜂阶段,引用了概率p,如果p>rand,则用如下搜索方程更新如式(9):

式(9)中,i=1,2,···,SN,j=1,2,···,n.k的取值范围为1 到SN,ϕ的取值范围为−1 到1.

图2 ABC 算法流程图

本文ABC 算法的优化步骤如算法1 所示.

算法1.本文ABC 算法1.初始化阶段:设置最大迭代次数FEmax,蜜蜂个数为维度为n;由式(4)得到初始混沌系统的参数估计值,并通过式(3)计算得到估计参数转化的函数值J1.While (符合终止条件)2.雇佣蜂阶段:由式(7)更新参数估计值,并通过式(3)计算得到目标函数值J2;将当前最优目标函数值J1和J2 进行比较,最小值即为最优值,选出最优值放于J1.3.观察蜂阶段:由式(8)更新参数估计值,并通过式(3)计算得到目标函数值J3;将当前最优目标函数值J1和J3 进行比较,最小值即为最优值,选出最优值放于J1.4.侦察蜂阶段:S N V(i,j)

比较概率p和rand的大小,根据比较结果决定是否更新参数估计值;由式(9)更新参数估计值,并通过式(3)计算得到目标函数值J4;将当前最优目标函数值J1和J4 进行比较,最小值即为最优值,选出最优值放于J1.FE=FE+1迭代次数 ;End

3 仿真分析

3.1 基准函数测试

为了验证本文ABC 算法的有效性,将本文ABC 算法和ABC 算法及文献[12]中的IABC 算法的优化能力进行评估.分别采用了Sphere 函数、Griewank 函数、Ragstrigin 函数、Rosenbrock 函数、Ackley 函数、Schaffer 函数6 个标准的测试函数进行测试,测试函数的表达式、维度、搜索范围及函数最优值如表1所示[22].

将所有函数的最大迭代次数FEmax设置为100,各函数的收敛曲线如图3所示.从各函数的收敛曲线图可以看出,本文ABC 算法与ABC 算法及IABC 算法相比下降趋势更快、坡度更陡、所用迭代次数更少,其函数f3、f5和f6尤为明显.故本文ABC 算法相比ABC 算法和IABC 算法收敛速度更快,优化效果更佳.这说明本文ABC 算法是可行的.

表1 标准测试函数

图3 标准测试函数收敛曲线

3.2 Lorenz 系统参数估计

Lorenz 系统是最典型的混沌系统[23,24],这里以Lorenz 系统为例,验证本文ABC 算法对混沌系统中未知参数估计的适用性.Lorenz 系统的状态方程如式(10):

未知参数的真实值a=10,b=28,c=8/3.以x(0)=0.1,y(0)=0.1,z(0)=0为初始状态值对系统进行仿真,设置采样次数N=10 000.数值仿真采用四阶Rayleigh-Benard法[25]来计算式(10)中每个整数点的变量值,步长h=0.01,混沌系统[26]如图4所示.

图4 Lorenz 混沌吸引子三维图

在本文ABC 算法中,设置最大迭代次数FEmax=100,种群大小SN=20,混沌系统的未知参数范围设置为:8 ≤a≤12,2 5 ≤b≤30和2 ≤c≤3.图5是参数估计值在每次迭代中记录的最优解曲线图.图6是目标函数值在每次迭代中记录的最优解曲线图.

图5 参数估计值收敛曲线

图6 目标函数值收敛曲线

由图5和图6仿真结果可以得出,本文ABC 算法的收敛性及稳定性明显优于ABC 算法及IABC 算法.图7、图8和图9分别是通过两种算法得到的最优估计参数值由式(10)得出的状态变量估计值和真值之间的对比图,其中误差e(t)的方程如式(11).

式(11)中 δi(t)是分别是参数x(t)、y(t)、z(t)的真值,是分别是参数x(t)、y(t)、z(t)的估计值.

图7 ABC 算法状态变量

由图7~图9可见,图9中真值和估计值曲线更趋近于重合尤其随采样次数的增大,重合度越高,而图7中的真值和估计值曲线在随采样次数增大时有明显的分叉现象,图8的重合度相比于图9较差,所以本文ABC 算法的趋近性明显优于ABC 算法和IABC 算法.参数a、b、c及目标函数的最优值、最差值和平均值是由ABC 算法和本文ABC 算法及IABC 算法分别独立运行30 次计算得到的平均值,记录于表2.

图8 IABC 算法状态变量

由表2可以得出,在最优值、最差值和平均值上由本文ABC 算法仿真得出的参数a趋近于10、参数b趋近于28、参数c趋近于8/3的效果明显优于由ABC 算法和IABC 算法仿真得出的参数趋近值.利用本文ABC 算法得出的目标函数值也明显小于由ABC算法和IABC 算法得出的目标函数值,故本文ABC 算法在稳定性及收敛速度上明显优于ABC 算法和IABC算法.

图9 本文ABC 算法状态变量

表2 文献[14]ABC和本文ABC 算法参数估计结果

4 结论

针对人工蜂群算法收敛速度相对较慢,精度不高,本文首先引入了可选择的概率p得到新的搜索机制;在此基础上,将混沌系统中复杂的参数估计问题转化为多维问题,利用改进的人工蜂群优化算法求解混沌系统的参数.测试函数优化实验证了人工蜂群算法改进方案的有效性;Lorenz 混沌系统的参数辨识仿真实验结果表明了本文的基于人工蜂群算法的混沌系统参数辨识方法比传统ABC 算法及IABC 算法具有更高的估计精度,且较快的收敛速度.

猜你喜欢

参数估计蜂群人工
全国第一! 2022年山西安排人工造林339.2万亩
基于参数组合估计的多元控制图的优化研究
人工“美颜”
基于部分相关的LFM脉冲全参数估计
浅谈死亡力函数的非参数估计方法
浅谈死亡力函数的非参数估计方法
统计推断的研究
人工制冷
蜂群春管效果佳
蛰伏为王