改进哈里斯鹰优化算法及其在变指数非线性马斯京根模型参数优选中的应用

2023-12-21 04:12王文川
水利规划与设计 2023年12期
关键词:哈里斯测试函数猎物

王文川,杨 斐

(华北水利水电大学水资源学院,河南 郑州 450046)

0 引言

暴雨洪水频繁发生给人们的生命财产造成了严重的损失[1]。因此,提高河道洪水演进精度是“四预”研究中“降雨-产流-汇流-演进”规律研究的关键环节,对减少洪水对人民生命财产的损失至关重要。马斯京根模型是河道洪水演进模型中一个常用的数学模型,由于使用方便,在生产实践中得到了广泛的应用。然而,在实际应用中,传统的线性马斯京根模型无法描述其非线性特征[2]。为此,研究者开始探索如何改进马斯京根模型[3],以适应复杂的现实环境。2015年Easa等[4]提出了变指数非线性马斯京根模型(Variable exponent parameters nonlinear Muskingum model,VEP-NMM),它通过引入无量纲入流变量ut,将模型中的指数m赋予了时变性的物理意义。此外,Easa等人[4]还采用广义梯度进化算法(GRG)对模型进行参数率定,取得了较为理想的效果。然而,随着模型参数的增加,其参数优选一直是模型应用中的一个研究热点问题[5-6]。从最初的试错法和最小二乘法发展到后来的智能优化算法,越来越多学者应用各种优化算法来优化马斯京根模型的参数[7],例如遗传算法[8]、差分进化算法[9]以及随机分形搜索算法[10]等。虽然智能优化算法在处理复杂非线性问题上的优越性已经被证明[7,11],但仍然存在着演算精度不高、易陷入局部最优解等问题。因此,仍需要探索更为高效的算法来求解VEP-NMM的参数优化问题。

基于此,本文提出了基于Tent混沌映射策略及黄金分割系数改进的哈里斯鹰优化算法(TGHHO),并将其应用于VEP-NMM的参数优化,构建TGHHO-VEP-NMM河道洪水演进模型。哈里斯鹰优化算法[12](Harris Hawks Optimizer,HHO)在处理非线性优化问题时表现出了良好的性能,但存在容易陷入局部最优解,且收敛速度慢的问题[13-15]。为了进一步提高HHO的优化效率,本文引入了Tent混沌映射策略及黄金分割系数,以增加算法的种群多样性和搜索效率,从而提高算法的全局搜索能力。将提出的TGHHO算法与蝴蝶优化算法[16](Butterfly Optimization Algorithm,BOA)、灰狼优化算法[17](Grey Wolf Optimizer,GWO)及哈里斯鹰[12](Harris Hawks Optimizer,HHO)优化算法在4个标准的测试函数上进行对比测试,然后在两个典型河道洪水验算问题:Wilson[18]数据以及Viessman和Lewis[19]数据上测试了其性能。结果表明,本文所提出的TGHHO算法能有效提高变指数非线性马斯京根模型演算精度,为变指数非线马斯京根模型参数优化问题提供了一种新的求解方法。

1 变指数非线性马斯京根模型

变指数非线性马斯京根模型[4]的建模过程如下:

(1)

St=K[xIt+(1-x)Qt]β(ut)

(2)

式中,St、It、Qt-河段时间t内的总槽蓄量、入流量、出流量;k-槽蓄系数;x-流量比重因子。

该模型与非线性马斯京根模型[3]的区别在于本模型的指数β(ut)是一个连续型指数方程,在计算时段内均与流量It有关,具体公式为:

β(ut)=a+be-ecut

(3)

(4)

式中,a、b、c-待优化求解的参数;Imax-河道最大入流量。

初始化参数后,可得到各时段的β(ut),假设初始演算出流量等于入流量,即Q0=I0,初始河道槽蓄量的计算公式为:

S0=K[xI0+(1-x)Q0]β(u0)

(5)

β(u0)=a+be-ecu0

(6)

河道槽蓄量第i时段变化率ki的计算公式为:

(7)

下一个时段的槽蓄量、出流量的计算公式分别为:

St+1=St+Δtki

(8)

(9)

为使演算流量过程尽可能准确,一般选取实测出流量和演算出流量的误差平方和最小作为模型参数优化目标,其目标函数为:

(10)

2 哈里斯鹰优化算法

哈里斯鹰优化算法(HHO)是由Heidari et al等人[12]在2019年提出的,模仿哈里斯鹰捕食猎物的真实情况,用数学公式来模拟哈里斯鹰在不同机制下捕捉猎物的策略。在HHO中,哈里斯鹰是候选解,猎物(兔子)随迭代逼近最优解。可分为两个阶段:勘探阶段和开发阶段。由能量E的大小控制转换,当|E|≥1时,表示HHO算法处于探索阶段,相反,当逃逸能量|E|<1时,算法处于开采阶段。

2.1 勘探阶段

在探索阶段,有两种更新哈里斯鹰位置的方法:一种是根据鹰群其他成员和猎物的位置描述哈里斯鹰的栖点,另一种是选择描述哈里斯鹰随机栖息的树木。对于这两种方法,都是由一个从(0,1)均匀分布的随机数字中选择q,因此鹰的位置更新如下式所示[12]:

(11)

式中,X(t+1)-第t+1次迭代时哈里斯鹰的位置;Xrabbit(t)-第t次迭代时的猎物;r1、r2、r3、r4和q-(0-1)之间的随机数;在每次迭代中更新中,LB和UB表示变量的上下界;Xrand(t)-从当前种群中随机选择的一只鹰;Xm(t)-当前鹰种群的平均位置。鹰的平均位置如下:

(12)

式中,Xi(t)-第t次迭代时第i个鹰的位置;N-哈里斯鹰的总数。

2.2 开采阶段

在这个阶段,哈里斯鹰根据全局探索阶段的观察逮捕预期猎物,猎物则试图逃离危险。根据哈里斯鹰的追逐策略和猎物的逃跑行为,鹰有4种不同的诱捕策略[15,20]。这些策略的选择取决于猎物的逃跑能量,以及猎物是否成功逃脱的概率。假设概率为参数u,其为从0到1的均匀分布随机变量中抽取的样本。当u<0.5时,猎物逃跑成功。当u≥0.5时,猎物逃跑失败。另外,引入参数E模拟哈里斯鹰的围攻策略。所有的策略都将在接下来的论文中描述。

Step 1:软围攻阶段。当|E|≥0.5时,执行软围攻。在这个阶段,兔子有足够的能量,逃跑的概率很高,哈里斯鹰选择逐渐消耗猎物的能量,然后在最佳的位置逮捕兔子。其位置更新公式为:

X(t+1)=Xrabbit(t)-X(t)-E|JXrabbit(t)-X(t)|

(13)

式中,ΔX(t)-迭代时哈里斯鹰与猎物的位置之差;J=2(1-r5)-猎物逃脱围捕过程中的随机跳跃力量;r5-区间(0,1)的随机数。

Step 2:硬围攻阶段。当|E|≥0.5且u≥0.5时,进行硬围攻阶段。在这个阶段,兔子已筋疲力尽,逃跑的能量很低。然而兔子仍可以成功逃跑,鹰的位置更新公式为:

Xt+1=Xrabbit,t-E|Xrabbit(t)-X(t)|

(14)

Step 3:加速俯冲式软围攻。当|E|≥0.5,u<0.5时,发生递进式的快速俯冲的软包围。在这种情况下,兔子有足够的能量逃脱攻击,而鹰仍然构建了一个软围攻。鹰的位置更新公式为:

Y=Xrabbit(t)-E|JXrabbit-X(t)|

(15)

随即,鹰将比较这一行为的结果与之前的俯冲结果。如果结果不好,哈里斯鹰就会开始进行不规则的、突然的和快速的跳水。鹰的位置更新函数为:

Z=Y+S×LF(D)

(16)

式中,D-待优化问题的维度;S-大小为1×D的随机向量;LF-莱维飞行函数;u,v-(0,1)内的随机值;β-设置为1.5的默认常量,其计算公式为:

(17)

在这种情况下,鹰的更新公式为:

(18)

式中,Y和Z由式(15)和式(16)计算;F-适应度函数。

Step 4:加速俯冲式硬围攻。当|E|<0.5,u<0.5时,发生递进式的快速俯冲的硬围攻。在这种情况下,兔子的能量太低而无法逃脱攻击,同时鹰进行猛烈的围攻,鹰的更新如公式为:

(19)

式中,Y=Xrabbit(t)-E|JXrabbit(t)-Xm(t)|;Z=Y+S×LF(D);Xm(t)-鹰的平均位置,通过式(12)可得。

3 改进哈里斯鹰优化算法(TGHHO)

在HHO算法中,采用随机初始化种群的方法导致哈里斯鹰鹰群样本过少,多样性不足,影响算法的参数寻优能力和全局寻优能力。针对此问题,本文引入了Tent混沌映射[21]机制来增加种群的不确定性、不可重复性及不可预测性。Tent混沌映射是一个具有均匀分布函数和良好相关性的混沌映射,且在其参数范围内系统都处于混沌状态。该映射公式为:

(20)

将哈里斯鹰种群使用混沌映射机制初始化后,再生成混沌种群的反向解。然后,将哈里斯鹰种群及其反向解按适应度从大到小排序。最终,选择前1/2的哈里斯鹰个体作为种群的新一代个体,从而提高了HHO算法的全局寻优能力。反向种群的计算公式为:

Xf=(ub+lb)-X

(21)

混沌映射策略为全局优化奠定基础。再利用黄金正弦算法改进HHO算法的Step 1和Step 2,使哈里斯鹰以黄金正弦方式移动逮捕猎物,在每次的迭代过程中,普通的个体会与最优个体交换信息,充分吸收与最佳个体位置差距的信息。另外,黄金分割系数减小鹰群捕捉兔子的搜索范围,引导个体在缩小后的范围内尽快接近最终值。此过程优化了HHO算法的寻优方式,从而提高算法的开发能力和寻优性能。其位置更新公式为:

Xt+1=Xt×|sin(R1)|+R2×sin(R1)×
|x1×Xrabbit,t-x2×Xt|

(22)

4 实验设计与分析

4.1 测试函数对比实验

为了验证TGHHO算法的性能。选取4个标准测试函数,与近年来比较新颖的蝴蝶优化算法[16](BOA)、灰狼优化算法[17](GWO)以及哈里斯鹰优化算法[12](HHO)进行仿真对比实验。4个测试函数的理论最优值都为0。算法的参数统一设置为:种群规模N=30,问题维数D=30,最大迭代次数T=500。4组测试函数的基本信息见表1,其中F1、F2为单峰函数,F3、F4为多峰函数,分别测试算法的局部开采性能和全局探索性能等。

表1 测试函数详细信息

仿真测试结果见表2所列,从表可以看出改进后的算法在4个测试函数中的寻优能力最强,明显优于其他3种算法。函数F1、F2为单模态函数,改进后的算法可以直接搜索到函数的最优值;F3、F4属于多模态函数,改进的算法在F3函数中也可以直接寻找到其最优值0,对于函数F4,其寻优效果虽未达到最优值0,但相比其他智能优化算法其收敛精度也达到最佳。且在测试函数中,HHO算法其标准差值分别为2.02×10-75、5.61×10-50、1.26×10-49、8.01×10-5,而TGHHO算法标准差值分别为0、0、0、6.19×10-7。说明TGHHO算法不仅寻优效果高于其他算法且其稳定性也有所提高,TGHHO算法在一定程度上提高了HHO算法的寻优能力和收敛精度。为了直观展示TGHHO算法的寻优速度和性能,如图1所示给出测试函数的收敛曲线。

图1 函数图像及算法收敛曲线图

表2 优化算法测试结果对比

从图1可以直观地看出,TGHHO算法的收敛精度和速度完全优于其他3种算法,并且其收敛速度也相对较快。由其收敛曲线得知,改进后的算法在函数F1、F2、F3中,收敛精度直接达到最优且收敛速度也大幅提高。在函数F4中改进后的算法较原始算法其收敛精度和收敛速度也有所提升,并且TGHHO算法收敛曲线出现多个拐点,说明改进后的算法更易跳出局部寻优从而达到理想的全局寻优能力。

4.2 在变指数非线性马斯京根模型参数优选中的应用

选取两个著名的河道洪水演进计算实例:一是1974年Wilson给出的单峰河道洪水数据[18];二是2003年Viessman和Lewis给出的双峰河道洪水数据[19]。以最小化实测流量与演算流量的误差平方和(SSQ)最小作为目标函数,采用提出的TGHHO算法对变指数非线性马斯京根模型进行优化求解,计算结果见表3。在表3中也给出了几个代表性文献对三参数非线性马斯京根模型的研究结果。从表3中可以得出,对于实例1,相对于GRG和HHO算法,提出的TGHHO算法其目标函数值分别降低了27.01%和33.28%。相对于三参数马斯京根模型的MHBMO[24]优化方法,其目标函数值降低了66.97%。对于实例2,使用提出的TGHHO算法比使用HHO算法,其目标函数值降低了5.05%;比MHBMO[22]算法,其SSQ值降低了13.9%。

表3 各方法参数率定结果对比

应用TGHHO与HHO算法计算实例1和2的收敛曲线和洪水演算过程对比如图2-3。从图2-3中可以看出,提出的TGHHO方法的收敛速度和精度优于HHO算法。说明本文所提出的TGHHO优化算法在马斯京根河道洪水演进模型参数寻优中具有较高的适用性。

图2 单峰实例收敛曲线和洪水演算过程比较图

图3 双峰实例收敛曲线和洪水演算过程比较图

5 结论与展望

本文提出了一种基于Tent混沌映射策略及黄金分割系数改进的哈里斯鹰优化算法(TGHHO),通过引入Tent混沌映射策略和黄金正弦分割系数,混沌映射策略扩大了哈里斯鹰种群数量从而提升了鹰群的多样性,在围捕过程中,加入黄金正弦算法中的黄金分割系数,从而减小鹰群捕捉兔子的搜索范围,提高算法的寻优能力。通过两个单峰两个多峰测试函数结果表明,TGHHO较HHO在收敛精度和收敛速度上都有明显提高。针对复杂非线性马斯京根模型参数优选困难的问题,使用TGHHO算法进行参数优选,从而构建了一种TGHHO-VEP-NMM河道洪水演进新模型。通过两个河道洪水演算实例,对不同算法优选的结果进行比较,验证了本文提出的TGHHO算法优于其他算法,说明提出的TGHHO在优化复杂非线性马斯京根模型参数时具有很好的推广应用价值。未来,可以进一步探究TGHHO算法在其他优化问题中的应用,并进一步改进TGHHO算法的性能;同时,可以进一步研究TGHHO-VEP-NMM河道洪水演进模型在不同地区的适用性。

猜你喜欢
哈里斯测试函数猎物
蟒蛇为什么不会被猎物噎死
可怕的杀手角鼻龙
具有收缩因子的自适应鸽群算法用于函数优化问题
霸王龙的第一只大型猎物
神奇的蝴蝶
你是创业圈的猎人还是猎物
带势函数的双调和不等式组的整体解的不存在性
约束二进制二次规划测试函数的一个构造方法
哈里斯中波广播发射机外部接口研究
哈里斯50kW机器改频经验谈