美文网首页
群智能算法-哈里斯鹰算法(HHO)

群智能算法-哈里斯鹰算法(HHO)

作者: jenye_ | 来源:发表于2021-10-04 10:29 被阅读0次

    Harris hawks optimization

    HEIDARI A A, MIRJALILI S, FARIS H, et al. Harris hawks optimization: algorithm and applications[J]. Future Generation Computer Systems, 2019

    HHO是一种基于种群、无梯度的优化技术。因此,只要有适当的公式,它可以应用于任何优化问题

    算法过程

    HHO划分为探索阶段和**开发阶段。

    整体的算法过程如下图所示:

    image-20211002155726939
    • 探索阶段

      在这一部分中,描述HHO的探索机制。如果我们考虑Harris鹰的性质,它们可以用强大的眼睛追踪和探测猎物,但偶尔猎物不容易看到。因此,Harris鹰等待、观察并监视地点,以便在几个小时后发现猎物。在HHO中,Harris鹰是候选解,每一步中的最佳候选解被视为目标猎物或接近最优解。在HHO中,哈里斯鹰随机栖息在某些位置,并根据两种策略等待发现猎物。

      两种等待策略:考虑每个栖息策略的均等机会Q。它们基于与自己接近的其他家庭成员和兔子的位置。

    \left.X(t+1\right)=\left\{\begin{array}{cl}X_{\text {rand }}(t)-r_{1}\left|X_{\text {rand }}(t)-2 r_{2} X(t)\right| & q \geq 0.5 \\ \left(X_{\text {rabbit }}(t)-X_{m}(t)\right)-r_{3}\left(L B+r_{4}(U B-L B)\right) & q<0.5\end{array}\right.

    • 其中X(t+1)是下一次迭代t中鹰的位置向量
    • X(t)Xrabbit(t)是当前应鹰的位置和兔子的位置向量
    • r1、r2、r3、r4和q是(0,1)之间的随机数,在每次迭代中更新
    • LB和UB是变量的上下界
    • Xrand(t) 是种群中随机挑选的一只鹰
    • Xm(t)是种群中鹰的平均位置

    第一条规则:
    根据随机位置和其他鹰的位置生成下一个时间的位置
    第二条规则:
    我们用迄今为止最好的位置和减去的平均位置,加上基于变量上下界的随机部分。
    其中r3是一个比例系数,目的是当r4的值接近于1或者出现相似的分布时增加随机性。在此规则中,我们向LB添加了一个随机缩放的移动长度。然后,我们考虑了组件的随机缩放系数r3,以提供更多的多样化趋势,并探索特征空间的不同区域。
    鹰的平均位置通过以下公式获得:
    X_{m}(t)=\frac{1}{N} \sum_{i=1}^{N} X_{i}(t)
    其中X_(t)表示迭代t中每个鹰的位置,N表示鹰的总数。可以通过不同的方式获得平均位置,这里使用了最简单的规则

    • 探索阶段到开发阶段的转变

      HHO算法可以根据猎物逃逸的能量,从探索转移到开发,然后在不同的开发行为之间改变。在逃跑行为中,猎物的能量显著降低。为了模拟这一事实,猎物的能量被模拟为:

    E=2 E_{0}\left(1-t / t_{\max }\right)

    E0表示其能量的初始状态。在HHO中,E0在每次迭代时在区间(-1,1)内随机变化。当E0的值从0减少到-1时,兔子的身体在衰退,而当E0的值从0增加到1时,则意味着兔子在增强。在迭代过程中,动态逃逸能量E呈下降趋势。当逃逸能量| E |≥1,哈里斯鹰搜索不同的区域以进一步探索猎物的位置,此时对应全局搜索阶段;,当| E |<1时,里斯鹰对相邻的解进行局部探索,故而对应局部开发阶段。


    image
    • 开发阶段

      在这一阶段,哈里斯的老鹰通过攻击前一阶段检测到的目标猎物进行突袭。然而,猎物往往试图逃离危险的环境。因此,在实际情况中会出现不同的追逐风格。根据猎物的逃逸行为和Harris鹰的追逐策略,HHO中提出了四种可能的策略来模拟攻击阶段。

      • 捕猎的条件

      猎物总是试图逃离危险的环境。假设r逃脱的概率,是猎物成功逃脱(r<0.5)或未成功逃脱(r≥0.5)。无论猎物做什么,鹰都会进行硬围攻软围攻来捕捉猎物。

      哈里斯鹰将根据猎物的剩余能量从不同方向轻柔或强硬地攻击猎物。在实际情况下,哈里斯鹰会越来越接近预期的猎物,并通过突袭而增加了合作杀死猎物的机会。一段时间后,猎物将损失越来越多的能量,这时哈里斯鹰便加强围攻过程,从而捕获猎物。在这个过程中,逃逸能量E 的作用不言而喻。原文假设|E |≥0.5时,进行轻柔围攻;当|E |<0.5时,进行强硬围攻。

      1. 软包围

        r ≥0.5且|E |≥0.5时,兔子仍然有足够的能量,兔子会进行随机跳跃,并且可以轻易逃脱,哈里斯鹰通过包围,徘徊的方式,耗尽兔子的能量再进行攻击:

      X(t+1)=\Delta X(t)-E\left|J \cdot X_{\text {rabbit }}(t)-X(t)\right|

      \Delta X(t)= X_{\text {rabbit }}(t)-X(t)

      \Delta X(t)是兔子的位置向量和迭代t中的当前位置之间的差

      J=2(1− r5),r5是(0,1)内的随机数表示兔子在整个逃逸过程中的随机跳跃强度。J值在每次迭代中随机变化,以模拟兔子运动的性质。

      1. 强包围

        r ≥0.5且|E |<0.5时,兔子能量不足,鹰对兔子进行压迫式围攻。

        X(t+1)=X_{\text {rabbit }}(t)-E|\Delta X(t)|

        image-20211002172711608
      2. 软围攻渐进式俯冲 当r <0.5且|E |≥0.5时

      Y=X_{\text {rabbit }}(t)-E\left|J X_{\text {rabbit }}(t)-X(t)\right|

      然后,他们将这一动作的可能结果与前一次俯冲进行比较,以判断这是否是一次好的俯冲。如果效果不好(当他们看到猎物表现出更具欺骗性的动作时),他们也会在接近兔子时开始进行不规则、突然和快速的俯冲。

      Z=Y+S \times L F(D)

      L F(x)=0.01 \times \frac{u \times \sigma}{|v|^{\frac{1}{\beta}}}, \sigma=\left(\frac{\Gamma(1+\beta) \times \sin \left(\frac{\pi \beta}{2}\right)}{\Gamma\left(\frac{1+\beta}{2}\right) \times \beta \times 2^{\frac{\beta-1}{2}}}\right)^{\frac{1}{\beta}}

    其中u、v 为[0,1]内均匀分布的随机数, β=1.5。

    总而言之:
    X(t+1)=\left\{\begin{array}{lll}Y & \text { if } \quad \text { fitness }(Y)<\text { fitness }(X(t)) \\ Z & \text { if } \quad \text { fitness }(Z)<\text { fitnesss }(X(t))\end{array}\right.

    image-20211002172711608

    其中D 为空间维度,S 是一个1×D 的随机向量,即S=randn(1,D);LF (D)为Levy飞行函数。

    1. 渐进俯冲的强包围 当r<0.5且|E |<0.5
      Z=Y+S \times L F(D)
      Y=X_{r a b b i t}(t)-E\left|J \cdot X_{r a b b i t}(t)-X_{m}(t)\right|
      X(t+1)=\left\{\begin{array}{ll}Y & \text { if } \quad \text { fitness }(Y)<\text { fitness }(X(t)) \\ Z & \text { if } \quad \text { fitness }(Z)<\operatorname{fitn} \operatorname{sss}(X(t))\end{array}\right.
      这一步在猎物一侧的情况与软包围中的情况类似,但这一次,鹰试图缩短它们与逃跑猎物的平均位置距离。
    image image

    Pseudo-code

    image

    相关文章

      网友评论

          本文标题:群智能算法-哈里斯鹰算法(HHO)

          本文链接:https://www.haomeiwen.com/subject/wheinltx.html