哈里斯鹰优化(harris hawk optimization,HHO)算法是由Heidari等于2019年提出的仿生智能优化算法,其灵感源于哈里斯鹰的群体狩猎的突袭围捕行为。
如图2.1所示为哈里斯鹰。哈里斯鹰与其他猛禽相比最大的特点是以团队形式合作狩猎,其狩猎对象大多数为野兔,在搜寻目标时,哈里斯鹰首先会各自飞向不同区域四处巡视,并以一种类似“蛙跳”的方式在各树梢间对猎物进行观察;在追逐猎物时,主要采取“突袭围捕”。当鹰群发现猎物时,几只鹰将尝试从不同方向合作突袭猎物,同时向猎物周围汇聚,通常此过程只需要几秒,便可捕获受到惊吓的猎物,但当猎物拥有足够的体力逃脱时,突袭围捕则是在短时间内在猎物附近多次、短距离的快速突袭,哈里斯鹰会根据场景特性和猎物的逃跑模式(猎物的反应和躲避方向)改变追逐策略。
图2.1 哈里斯鹰
可以将哈里斯鹰狩猎行为划分为3个阶段:第一阶段为搜索阶段,这个阶段哈里斯鹰处于搜寻猎物的状态,采用的是机会对等策略搜索猎物位置;第二阶段为从搜索到开发转换阶段,这个阶段哈里斯鹰处于发现猎物的状态;第三阶段为开发阶段,这个阶段哈里斯鹰处于对猎物进行捕捉的状态,它们采用软围攻、硬围攻、渐进式快速俯冲的软包围和渐进式快速俯冲的硬包围4种策略对猎物进行捕捉。
在搜索阶段,哈里斯鹰出现在任意位置对猎物进行搜索,其搜索猎物的过程主要是通过敏锐的眼睛对猎物进行探测和跟踪。在这个阶段中,HHO算法通过机会对等策略模拟哈里斯鹰寻找猎物的过程,如果每种机会对等策略中的机会 q 均等,则当 q ≥0.5时,此时还没有任何一只鹰发现猎物,因此将会随机选择种群中的个体,朝它飞行,更新自身位置;当 q <0.5时,哈里斯鹰发现猎物,以猎物为目标,在其附近盘旋,并更新位置,其位置更新如下:
式中, X ( t ), X ( t +1)分别为当前和下一次迭代时哈里斯鹰个体的位置; t 为迭代次数; X rand ( t )为随机选出的个体位置, X rabbit ( t )为猎物位置,即拥有最优适应度的个体位置, r 1 , r 2 , r 3 , r 4 , q 为[0,1]之间的随机数 ,q 用来随机选择要采用的策略, ub 和 lb 分别为搜索空间的上界和下界; X m ( t )为哈里斯鹰的平均位置,其表示如下:
式中, X k ( t )为种群中第 t 代的每只鹰个体的位置; M 为种群规模。
在从搜索到开发的转换阶段,HHO根据猎物的逃逸能量 E 来实现这种转换。现实中猎物的逃逸能量是逐渐减小的过程,因此 E 随着迭代次数的增加而减少,基于猎物逃逸能量行为的数学模型表示如下:
式中, E 0 是猎物的初始能量,为[-1,1]之间的随机数,每次迭代时自动更新; t 为迭代次数, T 为最大迭代次数。当 E 0 从0减小到-1时,猎物野兔处于萎靡不振的状态;而当 E 0 从0增加到1时,意味着猎物野兔正在变得强壮。在迭代过程中,逃逸能量 E 呈下降趋势,当逃逸的能量 时,猎物的逃逸能量较大,鹰群持续监视和定位猎物,处于搜索阶段;当 时,猎物的逃逸能力降低,鹰群开始追逐猎物,进入开发阶段。
假设最大迭代次数 T =500,绘制猎物的逃逸能量曲线,曲线如图2.2所示。
图2.2 程序运行结果
MATLAB绘制程序如下:
哈里斯鹰会采用突袭的方式猎捕前一阶段探测到的目标猎物。在实际的捕食过程中,猎物经常试图逃脱,假设 r 是猎物在突袭前逃脱的机率,逃脱成功( r <0.5)或逃脱失败( r ≥0.5),不论猎物做什么,鹰都会以强硬或轻柔的围攻来捕获猎物,这意味着它们将根据猎物的保留能量从不同方向强硬或轻柔地包围猎物。鹰会越来越接近探测到的猎物,并通过合作突袭增加杀死猎物的机会,几分钟后,逃逸的猎物将失去越来越多的能量;然后,鹰加强围攻过程,从而抓住疲惫的猎物。
因此,在实际情况中哈里斯鹰会根据猎物的逃跑行为采用不同的追逐策略。HHO在开发阶段提出了4种可能的策略来模拟哈里斯鹰对猎物的攻击阶段,分别为软围攻、硬围攻、渐进式快速俯冲的软包围和渐进式快速俯冲的硬包围,根据猎物的逃逸能量 E 和猎物逃离概率 r 决定4种追逐方式。
当 ≥0.5, r ≥0.5时,猎物有足够的能量尝试通过一些随机的误导性跳跃逃脱。此时,哈里斯鹰使用软围攻策略缓慢包围猎物,使猎物更加疲惫,然后进行突袭。软围攻策略位置更新公式如下:
式中,Δ X ( t )为野兔位置与当前位置的差; J 为猎物在逃跑过程中的跳跃强度,其值为[0,2]之间的随机值; r 5 为[0,1]内的随机变量。
当 <0.5, r ≥0.5时,猎物非常疲惫,逃逸能量低。猎物既没有足够的能量摆脱,也没有逃脱的机会,哈里斯鹰会快速地对猎物进行捕捉,这种捕捉猎物的方式称为硬围攻策略。硬围攻策略位置更新公式如下:
硬围攻下的位置变化如图2.3所示。
图2.3 硬围攻下的位置变化示例图
当 ≥0.5, r <0.5时,猎物有充足的体力逃跑且有很大的机会从哈里斯鹰包围中逃脱,此时哈里斯鹰非常聪明,哈里斯鹰在对猎物进行捕捉之前,会对猎物实施更加严密的软围攻,以此来防止猎物逃脱,随后通过慢慢消耗猎物体力,等到猎物体力快消耗殆尽时,通过突袭的方式对猎物进行捕捉,这种捕捉猎物的方式称为渐进式俯冲软包围策略。这种策略是通过引入Levy飞行函数实现对猎物更加严密的软围攻。渐进式俯冲软包围策略位置更新公式如下:
式中, f (·)为适应度函数; D 为问题的维度; S 为1× D 的随机向量, LF (·)是Levy飞行函数,其表达式为:
式中, 是一个默认变量,通常情况下 取1.5,和 v 是一个[0,1]范围内的随机变量。
渐进式快速俯冲的软包围位置变化如图2.4所示。
图2.4 渐进式快速俯冲的软包围位置变化示例图
当 <0.5, r <0.5时,猎物有机会逃逸,但逃逸能量不足,哈里斯鹰则在突袭前形成了一个硬包围圈,尽量减少自己的平均位置与逃跑猎物的距离,等到猎物体力快消耗殆尽时,对猎物进行突袭,迅速捕捉到猎物。这种捕捉猎物的方式称为渐进式快速俯冲硬包围策略。渐进式快速俯冲硬包围策略位置更新公式如下:
式中, X m ( t )为哈里斯鹰的平均位置,由式(2.2)获得; S 、 D 和 LF (·)的含义与式(2.10)保持一致。
渐进式快速俯冲的硬包围位置变化示例如图2.5所示。
图2.5 渐进式快速俯冲的硬包围位置变化示例图
哈里斯鹰优化算法的流程图如图2.6所示,具体步骤如下。
步骤1:种群初始化。根据搜索空间每一维的上界和下界,初始化每个个体。
步骤2:计算初始适应度。将适应度最优的个体位置设为当前猎物位置。
步骤3:位置更新。计算猎物逃逸能量,根据逃逸能量和生成的随机数执行搜索或开发行为中对应的位置更新策略。
步骤4:计算适应度。计算位置更新后的个体适应度,并与猎物适应度进行比较,若位置更新后的个体适应度优于猎物,则以适应度更优的个体位置作为新的猎物位置。
重复步骤3和步骤4,当算法迭代次数达到最大迭代次数时,输出当前猎物位置作为目标的估计位置。
图2.6 哈里斯鹰优化算法的流程图