• 基于逃逸鸟搜索算法的函数寻优算法


    一、理论基础

    1、逃逸鸟搜索算法

    文献[1]提出了一种新的元启发式算法——逃逸鸟搜索(Escaping bird search, EBS)算法,该算法受鸟类空中逃跑策略以避免被猎人捕获的启发。
    EBS是一种基于种群的算法,通过在每对作为搜索代理的人工鸟类中进行空中机动来发现搜索空间。在从种群中随机挑选的每对鸟中,适应度较低的鸟被视为猎物(逃逸鸟),而其他鸟则被视为捕食者。人工鸟在搜索空间中的位置类似于鸟在飞行过程中改变的搜索向量。
    在模拟中,这种被捕食的鸟可能会选择以下策略之一来逃离捕食者:

    • 水平机动:被捕食者可以选择快速转弯,以避免被水平攻击的捕食者(猎鸟)捕获。
    • 垂直机动:为了躲避潜水捕食者,猎物通常采用快速爬升飞行的策略。另一种策略是,当捕食者有一个攀爬方向来捕捉猎物时,由猎物潜入水中。

    鸟的机动性与一些因素有关,如其身体面积、翅膀拍打率和速度。在目前的数值模拟中,第 i i i只人工鸟的机动能力 M P i MP_i MPi由式(1)定义: M P i = b i ∣ ∣ V i ∣ ∣ β i (1) MP_i=b_i||V_i||^{\beta_i}\tag{1} MPi=biViβi(1)其中,速度矢量 V i V_i Vi取第 i i i只鸟当前位置和之前位置之间的差值, ∣ ∣ V i ∣ ∣ = ∑ j V i , j 2 ||V_i||=\sqrt{\displaystyle\sum_jV_{i,j}^2} Vi=jVi,j2 V i V_i Vi的范数;鸟翼拍频变化对机动能力的影响由参数 β β β( ( 0 , 2 ) (0,2) (0,2)的随机数)表示。身体因素 b i b_i bi通过以下标准化关系模拟鸟的身体面积(成本)的影响: b i = C max ⁡ − C i C max ⁡ − C min ⁡ + ε (2) b_i=\frac{C_{\max}-C_i}{C_{\max}-C_{\min}+\varepsilon}\tag{2} bi=CmaxCmin+εCmaxCi(2)其中, C i C_i Ci表示第 i i i个个体的代价(适应度值); C max ⁡ C_{\max} Cmax C min ⁡ C_{\min} Cmin分别表示当前种群中的最大和最小成本;无穷小正数 ε \varepsilon ε用于防止被零除。
    逃逸率 E R ER ER根据攻击鸟的机动能力定义, A B AB AB为捕食者, E B EB EB为猎物,通过以下关系式计算: E R = M P E B M P A B + M P E B (3) ER=\frac{MP_{EB}}{MP_{AB}+MP_{EB}}\tag{3} ER=MPAB+MPEBMPEB(3)其中, M P A B MP_{AB} MPAB M P E B MP_{EB} MPEB分别表示攻击鸟和逃跑鸟的机动能力。
    在垂直机动过程中,逃跑的鸟以与捕食者相反的方式选择目的地。这里通过以下人工飞行进行模拟: X E B = X E B + r × E R × ( O p p ( X A B ) − X E B ) (4) X_{EB}=X_{EB}+r\times ER\times(Opp(X_{AB})-X_{EB})\tag{4} XEB=XEB+r×ER×(Opp(XAB)XEB)(4)其中, X A B X_{AB} XAB X E B X_{EB} XEB分别是攻击鸟和逃跑鸟的位置; r r r表示随机生成的值,其均匀分布在0和1之间;逃逸率 E R ER ER由式(3)计算;函数 O p p ( . ) Opp(.) Opp(.)返回搜索空间中向量的反方向,定义如下: O p p ( X A B ) = X L + X U − X A B (5) Opp(X_{AB})=X_L+X_U-X_{AB}\tag{5} Opp(XAB)=XL+XUXAB(5) E R ER ER较小时,人工猎物通过改变其当前方向来选择水平机动。通过切换到随机生成的位置向量进行数值模拟,如下所示: X E B = X L + R ⊗ ( X U − X L ) (6) X_{EB}=X_L+R\otimes(X_U-X_L)\tag{6} XEB=XL+R(XUXL)(6)其中, X L X_L XL X U X_U XU分别表示搜索空间的上下界; ⊗ \otimes 表示元素乘积; R R R是范围 [ 0 , 1 ] [0,1] [0,1]内的随机向量。
    捕食者的飞行基本上是针对猎物的位置。然而,在目前的模拟中,为这种飞行添加了另一个方向,即迄今为止全居最佳的猎物位置,由 X G b e s t X_{Gbest} XGbest表示。因此,捕食者的机动方式如下: X A B C a n d i d a t e = X A B + r 1 × C R × ( X E B − X A B ) + r 2 × ( X G b e s t − X E B ) (7) X_{AB}^{Candidate}=X_{AB}+r_1\times CR\times(X_{EB}-X_{AB})+r_2\times(X_{Gbest}-X_{EB})\tag{7} XABCandidate=XAB+r1×CR×(XEBXAB)+r2×(XGbestXEB)(7)其中,随机值 r 1 r_1 r1 r 2 r_2 r2在范围 [ 0 , 1 ] [0,1] [0,1]内随机生成,捕获率 C R CR CR定义为: C R = 1 − E R (8) CR=1-ER\tag{8} CR=1ER(8)当逃逸率较高时,捕获率趋于零,反之亦然。这就是为什么 C R CR CR E R ER ER是相辅相成的。根据式(3),ER模拟了空中挑战中捕食者和猎物的影响。
    式(7)引入了向量和位置更新,这是其他一些元启发式算法(如PSO)中常见的行走策略。然而,EBS只有一个自适应系数 C R CR CR,而不是PSO的认知和惯性因素。同时,式(7)的最后一项未按任何规定的因子进行缩放。

    2、EBS算法步骤

    应用人工捕食者—猎物对的模拟动作,通过以下步骤形成所提出的算法。
    Step 1. 初始化随机定位的 N N N只人工鸟类种群。通过以下方式生成搜索空间上下限范围内的第 i i i只鸟: X i = X L + R ⊗ ( X U − X L ) (9) X_i=X_L+R\otimes(X_U-X_L)\tag{9} Xi=XL+R(XUXL)(9)右侧的参数已在式(6)中定义。因此,评估所有鸟类的成本函数(适应度值),并将其速度设置为零。最初的种群包括攻击鸟和逃逸鸟,将在Step 3中进行区分。
    Step 2. 根据式(1)确定每只鸟的机动能力,通过式(2)计算每只鸟的标准化成本值。
    Step 3. 重复以下主循环,直到满足终止条件:

    • For i i i from 1 to N N N:
      挑选第 i i i只鸟,随机将其与种群中的另一只配对。从中选择最好的一项为 A B AB AB,最差的一项为 E B EB EB
      通过式(1)~(3)和式(8)计算当前一对捕食者( A B AB AB)和猎物( E B EB EB)的 M P MP MP E R ER ER C R CR CR
      通过式(7)为 A B AB AB产生新解并贪婪选择当前个体位置。
      使用式(6)中的水平机动或式(4)中的垂直机动生成 E B EB EB的新解。通过以下关系式在这些逃生动作之间切换: X E B C a n d i d a t e = { X L + R ⊗ ( X U − X L ) if    E R < 1 / N X E B + r × E R × ( O p p ( X A B − X E B ) )   otherwise (10) X_{EB}^{Candidate}=
      \begin{dcases}X_L+R\otimes(X_U-X_L)\quad\quad\quad\quad\quad\quad\quad\quad \text{if}\,\,ER<1/N\\[2ex]X_{EB}+r\times ER\times(Opp(X_{AB}-X_{EB}))\quad\, \text{otherwise}\end{dcases}
      \tag{10}
      XEBCandidate=XL+R(XUXL)ifER<1/NXEB+r×ER×(Opp(XABXEB))otherwise(10)
      然后通过贪婪选择当前个体位置。
      更新 X G b e s t X_{Gbest} XGbest
    • 如果 i = = N i==N i==N并且 N F E < N F E max ⁡ NFE<NFE_{\max} NFE<NFEmax,那么转至Step 3,否则退出循环,转至Step 4

    Step 4. 主循环终止后,最后更新的 X G b e s t X_{Gbest} XGbest为全局最优解。很明显,EBS只使用两个控制参数 N N N N F E max ⁡ NFE_{\max} NFEmax工作。

    二、仿真实验与结果分析

    将EBS与CS、CSA、LAPO和GWO进行对比,实验设置种群规模为40,最大迭代次数为100,每种算法独立运行30次,以文献[1]中表1的12个测试函数为例,结果显示如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    函数:F1
    EBS:最差值: 1.7935e-47, 最优值: 4.5479e-57, 平均值: 6.9871e-49, 标准差: 3.2729e-48
    CS:最差值: 0.0053473, 最优值: 0.00031162, 平均值: 0.0013597, 标准差: 0.0010618
    CSA:最差值: 3.0093e-05, 最优值: 4.1216e-08, 平均值: 2.607e-06, 标准差: 5.6836e-06
    LAPO:最差值: 1.2127e-12, 最优值: 2.8647e-16, 平均值: 1.4741e-13, 标准差: 2.8413e-13
    GWO:最差值: 7.2336e-18, 最优值: 1.6495e-27, 平均值: 2.4557e-19, 标准差: 1.3199e-18
    函数:F2
    EBS:最差值: 6.1741e-15, 最优值: 4.9539e-19, 平均值: 9.2833e-16, 标准差: 1.6506e-15
    CS:最差值: 10000000000, 最优值: 10000000000, 平均值: 10000000000, 标准差: 0
    CSA:最差值: 152805027680545.7, 最优值: 118.5018, 平均值: 5105823196273.06, 标准差: 27895942003695.93
    LAPO:最差值: 7.2257, 最优值: 2.0593, 平均值: 4.2632, 标准差: 1.2737
    GWO:最差值: 0.39691, 最优值: 0.065034, 平均值: 0.17196, 标准差: 0.079264
    函数:F3
    EBS:最差值: -0.35239, 最优值: -0.35239, 平均值: -0.35239, 标准差: 1.5462e-16
    CS:最差值: -0.35238, 最优值: -0.35239, 平均值: -0.35239, 标准差: 4.8736e-07
    CSA:最差值: -0.35239, 最优值: -0.35239, 平均值: -0.35239, 标准差: 7.3619e-10
    LAPO:最差值: -0.35239, 最优值: -0.35239, 平均值: -0.35239, 标准差: 1.2709e-16
    GWO:最差值: -0.35238, 最优值: -0.35239, 平均值: -0.35238, 标准差: 1.8422e-06
    函数:F4
    EBS:最差值: -1, 最优值: -1, 平均值: -1, 标准差: 4.7986e-15
    CS:最差值: -0.97847, 最优值: -1, 平均值: -0.99848, 标准差: 0.0039293
    CSA:最差值: -0.99985, 最优值: -1, 平均值: -0.99998, 标准差: 3.3992e-05
    LAPO:最差值: -1, 最优值: -1, 平均值: -1, 标准差: 3.425e-16
    GWO:最差值: -4.658e-07, 最优值: -1, 平均值: -0.96665, 标准差: 0.18257
    函数:F5
    EBS:最差值: 6.7086e-33, 最优值: 1.0338e-40, 平均值: 3.2683e-34, 标准差: 1.229e-33
    CS:最差值: 346.3659, 最优值: 174.7128, 平均值: 247.2598, 标准差: 38.9387
    CSA:最差值: 33.2639, 最优值: 9.6581, 平均值: 17.1503, 标准差: 5.0705
    LAPO:最差值: 3.6412, 最优值: 0.29486, 平均值: 1.1823, 标准差: 0.71828
    GWO:最差值: 7.8415, 最优值: 0.21708, 平均值: 1.5449, 标准差: 1.4282
    函数:F6
    EBS:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 1.062e-12
    CS:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 7.863e-07
    CSA:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 1.5998e-09
    LAPO:最差值: 0.40624, 最优值: 0.3979, 平均值: 0.39963, 标准差: 0.0024083
    GWO:最差值: 0.39975, 最优值: 0.39789, 平均值: 0.39798, 标准差: 0.00033818
    函数:F7
    EBS:最差值: 4.1053e-17, 最优值: 1.4642e-19, 平均值: 5.1106e-18, 标准差: 1.0169e-17
    CS:最差值: 29.2987, 最优值: 19.905, 平均值: 23.972, 标准差: 2.2948
    CSA:最差值: 11.4257, 最优值: 3.0734, 平均值: 6.1895, 标准差: 2.0728
    LAPO:最差值: 0.10452, 最优值: 0.018258, 平均值: 0.038744, 标准差: 0.015466
    GWO:最差值: 2.043, 最优值: 0.0085069, 平均值: 0.12973, 标准差: 0.38009
    函数:F8
    EBS:最差值: -33, 最优值: -33, 平均值: -33, 标准差: 0
    CS:最差值: -32.3028, 最优值: -33, 平均值: -32.9509, 标准差: 0.15758
    CSA:最差值: -14.3075, 最优值: -16.7019, 平均值: -15.6394, 标准差: 0.62557
    LAPO:最差值: -33, 最优值: -33, 平均值: -33, 标准差: 0
    GWO:最差值: -23.4078, 最优值: -30.6667, 平均值: -27.285, 标准差: 1.7054
    函数:F9
    EBS:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0
    CS:最差值: 260.9061, 最优值: 184.8105, 平均值: 223.8189, 标准差: 16.1862
    CSA:最差值: 172.7298, 最优值: 103.512, 平均值: 132.6149, 标准差: 21.1822
    LAPO:最差值: 171.4054, 最优值: 1.2954, 平均值: 31.3677, 标准差: 50.3456
    GWO:最差值: 59.3942, 最优值: 11.5793, 平均值: 26.9495, 标准差: 10.6753
    函数:F10
    EBS:最差值: 0.998, 最优值: 0.998, 平均值: 0.998, 标准差: 7.1047e-11
    CS:最差值: 1.0144, 最优值: 0.998, 平均值: 0.99937, 标准差: 0.0039377
    CSA:最差值: 3.9683, 最优值: 0.998, 平均值: 1.5064, 标准差: 0.9698
    LAPO:最差值: 1.0021, 最优值: 0.998, 平均值: 0.9983, 标准差: 0.00091028
    GWO:最差值: 15.5038, 最优值: 0.998, 平均值: 5.1805, 标准差: 3.9806
    函数:F11
    EBS:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0
    CS:最差值: 80.5258, 最优值: 38.1425, 平均值: 56.6577, 标准差: 11.3744
    CSA:最差值: 13.5837, 最优值: 3.9754, 平均值: 6.6474, 标准差: 1.9797
    LAPO:最差值: 1.0383, 最优值: 0.49577, 平均值: 0.85757, 标准差: 0.17205
    GWO:最差值: 0.12501, 最优值: 0.0012372, 平均值: 0.042755, 标准差: 0.044834
    函数:F12
    EBS:最差值: 4.4409e-15, 最优值: 8.8818e-16, 平均值: 1.4803e-15, 标准差: 1.3467e-15
    CS:最差值: 19.0746, 最优值: 14.9702, 平均值: 17.2083, 标准差: 0.91583
    CSA:最差值: 8.2516, 最优值: 5.4222, 平均值: 6.7979, 标准差: 0.81062
    LAPO:最差值: 1.3625, 最优值: 0.21741, 平均值: 0.60156, 标准差: 0.31803
    GWO:最差值: 0.019416, 最优值: 0.0056945, 平均值: 0.011265, 标准差: 0.0034264
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72

    实验结果表明:EBS算法具有较快的收敛速度和较高的竞争性能。

    三、参考文献

    [1] Mohsen Shahrouzi, Ali Kaveh. An efficient derivative-free optimization algorithm inspired by avian life-saving manoeuvres[J]. Journal of Computational Science, 2022, 57: 101483.

  • 相关阅读:
    DataHub元数据采集
    深度学习 - 46.DIN 深度兴趣网络
    从零开始研究Gitlab(利用vscode进行同步)
    回溯 -- 21天学习挑战赛第一天
    音乐播放器蜂鸣器ROM存储歌曲verilog,代码/视频
    @MapperScan的作用
    java spring cloud 工程企业管理软件-综合型项目管理软件-工程系统源码
    一抹石榴红,肆拾玖坊和敬四方酒诠释“以和为贵”的精髓
    巨神奇,2013年的老Mac,竟直接装上macOS Ventura 13.1 Beta版
    visual studio使用注意
  • 原文地址:https://blog.csdn.net/weixin_43821559/article/details/125366913