一、理论基础
秃鹰搜索(Bald eagle search, BES)算法是马来西亚学者Alsattar提出的一种新型元启发式算法,该算法具有较强的全局搜索能力,能够有效地解决各类复杂数值优化问题。
BES算法以秃鹰捕食猎物的行为进行模拟,将其分为选择搜索空间、搜索空间猎物和俯冲捕获猎物三个阶段,数学模型如下所示:
1、选择搜索空间
秃鹰随机选择搜索区域,通过判断猎物数目来确定最佳搜寻位置,便于搜索猎物,该阶段秃鹰位置 P i , n e w P_{i,new} Pi,new更新由随机搜索的先验信息乘以 α \alpha α来确定。该行为数学模型描述为: P i , n e w = P b e s t + α ∗ r ( P m e a n − P i ) (1) P_{i,new}=P_{best}+\alpha*r(P_{mean}-P_i)\tag{1} Pi,new=Pbest+α∗r(Pmean−Pi)(1)其中, α \alpha α表示控制位置变化参数,变化范围为 ( 1.5 , 2 ) (1.5,2) (1.5,2); r r r为 ( 0 , 1 ) (0,1) (0,1)间随机数; P b e s t P_{best} Pbest为当前秃鹰搜索确定的最佳搜索位置; P m e a n P_{mean} Pmean为先前搜索结束后秃鹰的平均分布位置; P i P_i Pi为第 i i i只秃鹰位置。
2、搜索空间猎物(探索)
秃鹰在选定搜索空间内以螺旋形状飞行搜索猎物,加速搜索进程,寻找最佳俯冲捕获位置。螺旋飞行数学模型采用极坐标方程进行位置更新,如下所示: θ ( i ) = a ∗ π ∗ r a n d (2) \theta(i)=a*\pi*rand\tag{2} θ(i)=a∗π∗rand(2) r ( i ) = θ ( i ) + R ∗ r a n d (3) r(i)=\theta(i)+R*rand\tag{3} r(i)=θ(i)+R∗rand(3) x r ( i ) = r ( i ) ∗ sin ( θ ( i ) ) , y r ( θ ( i ) ) = r ( i ) ∗ cos ( θ ( i ) ) (4) xr(i)=r(i)*\sin(\theta(i)),\,\,yr(\theta(i))=r(i)*\cos(\theta(i))\tag{4} xr(i)=r(i)∗sin(θ(i)),yr(θ(i))=r(i)∗cos(θ(i))(4) x ( i ) = x r ( i ) / max ( ∣ x r ∣ ) , y ( i ) = y r ( i ) / max ( ∣ y r ∣ ) (5) x(i)=xr(i)/\max(|xr|),\,\,y(i)=yr(i)/\max(|yr|)\tag{5} x(i)=xr(i)/max(∣xr∣),y(i)=yr(i)/max(∣yr∣)(5)其中, θ ( i ) \theta(i) θ(i)与 r ( i ) r(i) r(i)分别为螺旋方程的极角与极径; a a a与 R R R是控制螺旋轨迹的参数,变化范围分别为 ( 0 , 5 ) (0,5) (0,5)、 ( 0.5 , 2 ) (0.5,2) (0.5,2); r a n d rand rand为 ( 0 , 1 ) (0,1) (0,1)内随机数, x ( i ) x(i) x(i)与 y ( i ) y(i) y(i)表示极坐标中秃鹰位置,取值均为 ( − 1 , 1 ) (-1,1) (−1,1)。秃鹰位置更新如下: P i , n e w = P i + x ( i ) ∗ ( P i − P m e a n ) + y ( i ) ∗ ( P i − P i + 1 ) (6) P_{i,new}=P_i+x(i)*(P_i-P_{mean})+y(i)*(P_i-P_{i+1}) \tag{6} Pi,new=Pi+x(i)∗(Pi−Pmean)+y(i)∗(Pi−Pi+1)(6)其中, P i + 1 P_{i+1} Pi+1为第 i i i只秃鹰下一次更新位置。
3、俯冲捕获猎物(开发)
秃鹰从搜索空间的最佳位置快速俯冲飞向目标猎物,种群其他个体也同时向最佳位置移动并攻击猎物,运动状态仍用极坐标方程描述,如下所示: θ ( i ) = a ∗ π ∗ r a n d , r ( i ) = θ ( i ) (7) \theta(i)=a*\pi*rand,\,\,r(i)=\theta(i)\tag{7} θ(i)=a∗π∗rand,r(i)=θ(i)(7) x r ( i ) = r ( i ) ∗ sinh ( θ ( i ) ) , y r ( θ ( i ) ) = r ( i ) ∗ cosh ( θ ( i ) ) (8) xr(i)=r(i)*\sinh(\theta(i)),\,\,yr(\theta(i))=r(i)*\cosh(\theta(i))\tag{8} xr(i)=r(i)∗sinh(θ(i)),yr(θ(i))=r(i)∗cosh(θ(i))(8) x 1 ( i ) = x r ( i ) / max ( ∣ x r ∣ ) , y 1 ( i ) = y r ( i ) / max ( ∣ y r ∣ ) (9) x1(i)=xr(i)/\max(|xr|),\,\,y1(i)=yr(i)/\max(|yr|)\tag{9} x1(i)=xr(i)/max(∣xr∣),y1(i)=yr(i)/max(∣yr∣)(9)俯冲中秃鹰位置更新公式为: { δ x = x 1 ( i ) ∗ ( P i − c 1 ∗ P m e a n ) δ y = y 1 ( i ) ∗ ( P i − c 2 ∗ P b e s t ) (10) \begin{dcases}\delta_x=x1(i)*(P_i-c_1*P_{mean})\\\delta_y=y1(i)*(P_i-c_2*P_{best})\end{dcases}\tag{10} {δx=x1(i)∗(Pi−c1∗Pmean)δy=y1(i)∗(Pi−c2∗Pbest)(10) P i , n e w = r a n d ∗ P b e s t + δ x + δ y (11) P_{i,new}=rand*P_{best}+\delta_x+\delta_y\tag{11} Pi,new=rand∗Pbest+δx+δy(11)其中, c 1 c_1 c1与 c 2 c_2 c2表示秃鹰向最佳与中心位置的运动强度,取值均为 ( 1 , 2 ) (1,2) (1,2)。
4、BES算法伪代码
完整的BES算法伪代码如下图所示:
二、仿真实验与结果分析
1、函数测试与数值分析
将BES与GWO、MFO和WOA进行对比,设置种群规模为100,最大迭代次数为1000,每个算法独立运行30次,以文献[3]中F4、F6(单峰函数/30维)、F10、F11(多峰函数/30维)、F18、F19(固定维度多峰函数/2维、3维)为例,结果显示如下:
函数:F4
GWO:最差值: 4.256e-21, 最优值: 5.7202e-23, 平均值: 1.0671e-21, 标准差: 1.2747e-21, 秩和检验: 1.2118e-12
MFO:最差值: 55.4809, 最优值: 9.5927, 平均值: 29.4882, 标准差: 13.7646, 秩和检验: 1.2118e-12
WOA:最差值: 82.8772, 最优值: 1.6379e-05, 平均值: 13.5207, 标准差: 24.6058, 秩和检验: 1.2118e-12
BES:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F6
GWO:最差值: 0.50299, 最优值: 2.6684e-06, 平均值: 0.28152, 标准差: 0.1811, 秩和检验: 1.2118e-12
MFO:最差值: 9900.25, 最优值: 2.2924e-06, 平均值: 330.0084, 标准差: 1807.5301, 秩和检验: 1.2118e-12
WOA:最差值: 0.00064815, 最优值: 8.0822e-05, 平均值: 0.00029163, 标准差: 0.00013389, 秩和检验: 1.2118e-12
BES:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F10
GWO:最差值: 1.5099e-14, 最优值: 7.9936e-15, 平均值: 1.0717e-14, 标准差: 2.9033e-15, 秩和检验: 7.1637e-13
MFO:最差值: 19.9595, 最优值: 0.00042939, 平均值: 7.7121, 标准差: 9.1151, 秩和检验: 1.2118e-12
WOA:最差值: 7.9936e-15, 最优值: 8.8818e-16, 平均值: 4.0856e-15, 标准差: 2.5294e-15, 秩和检验: 3.3463e-08
BES:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
函数:F11
GWO:最差值: 0.0078927, 最优值: 0, 平均值: 0.00026309, 标准差: 0.001441, 秩和检验: 0.33371
MFO:最差值: 180.5197, 最优值: 3.3816e-06, 平均值: 18.0626, 标准差: 43.7057, 秩和检验: 1.2118e-12
WOA:最差值: 0.10965, 最优值: 0, 平均值: 0.0040439, 标准差: 0.020058, 秩和检验: 0.1608
BES:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F18
GWO:最差值: 3, 最优值: 3, 平均值: 3, 标准差: 7.8151e-07, 秩和检验: 7.8235e-12
MFO:最差值: 3, 最优值: 3, 平均值: 3, 标准差: 7.7359e-16, 秩和检验: 0.00076571
WOA:最差值: 3, 最优值: 3, 平均值: 3, 标准差: 5.375e-07, 秩和检验: 7.8235e-12
BES:最差值: 3, 最优值: 3, 平均值: 3, 标准差: 2.0014e-15, 秩和检验: 1
函数:F19
GWO:最差值: -3.8549, 最优值: -3.8628, 平均值: -3.8625, 标准差: 0.0014386, 秩和检验: 1.2118e-12
MFO:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 2.7101e-15, 秩和检验: NaN
WOA:最差值: -3.8549, 最优值: -3.8628, 平均值: -3.8616, 标准差: 0.002502, 秩和检验: 1.2118e-12
BES:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 2.7101e-15, 秩和检验: NaN
结果表明,BES算法与先进的元启发式算法相比具有良好的竞争力。
2、WSN三维覆盖优化
节点覆盖模型请参考这里。设监测区域为
50
m
×
50
m
×
50
m
50m\times50m\times50m
50m×50m×50m的三维空间,传感器节点个数
N
=
30
N=30
N=30,其感知半径是
R
s
=
10
m
R_s=10m
Rs=10m,通信半径
R
c
=
20
m
R_c=20m
Rc=20m,迭代500次。初始部署、BES优化覆盖、BES算法覆盖率进化曲线如下图所示。
初始部署和最终部署的节点位置及对应的覆盖率分别为:
初始位置:
11.355 10.6859 45.5108
23.6948 38.0039 17.9437
39.04 28.4138 32.0174
11.2678 28.0826 6.184
35.4248 23.0105 29.1266
5.6009 23.7875 49.0823
1.4984 40.4425 4.9665
45.2987 25.2861 30.172
14.7928 43.2087 26.1744
40.5501 34.9131 12.925
17.8272 38.731 37.3643
24.74 17.2886 37.9234
36.8744 45.9769 33.2397
8.8947 32.7782 15.272
0.76551 34.2478 21.7975
0.60901 7.5409 45.952
4.7 5.0919 33.2258
10.6351 18.4079 22.9549
25.948 41.4826 13.0159
7.2619 17.2009 3.5199
29.1077 17.2104 27.5287
36.2125 14.1587 47.539
18.8416 10.1199 27.7225
45.7408 36.6001 16.3731
19.0302 33.108 48.6182
42.7329 15.2312 18.4167
34.8113 35.169 28.0572
17.3963 25.1443 32.101
33.7706 2.6527 17.9317
28.1219 23.9716 16.1304
初始覆盖率:0.58529
最优位置:
23.3301 7.5649 10.1457
32.2987 43.4768 28.1238
8.6367 31.6673 25.8398
18.7342 26.477 7.9212
41.5328 5.5618 33.492
7.407 42.1648 7.3691
42.3947 7.288 6.9286
41.6307 11.3935 19.8865
23.4839 41.823 39.2707
19.5873 23.7627 42.7448
43.1861 42.6604 40.7802
28.0911 8.5074 43.5312
10.8787 39.7735 44.1824
9.6583 5.4467 41.1743
26.7234 31.0121 21.5103
5.8826 7.3222 9.1887
44.7481 26.2892 8.6663
5.4409 22.3156 42.1666
5.4509 24.3118 8.7205
34.5923 30.3657 43.2803
28.4766 18.655 29.5572
42.7112 42.7322 16.3348
43.0147 28.3533 28.3847
44.439 17.2454 42.7903
32.0054 22.059 7.6883
9.3342 14.9256 25.8545
22.5243 4.539 28.5427
18.5496 43.9886 15.4828
31.6243 40.1809 5.562
7.5669 45.2224 29.7609
最优覆盖率:0.79426
实验结果表明,BES算法能够有效提升三维无线传感器网络中节点部署的覆盖率。
三、参考文献
[1] H. A. Alsattar, A. A. Zaidan, B. B. Zaidan. Novel meta-heuristic bald eagle search optimisation algorithm[J]. Artificial Intelligence Review, 2020, 53: 2237-2264.
[2] 贾鹤鸣, 姜子超, 李瑶. 基于改进秃鹰搜索算法的同步优化特征选择[J]. 控制与决策, 2022, 37(2): 445-454.
[3] Hernán Peraza-Vázquez, Adrián F. Peña-Delgado, Gustavo Echavarría-Castillo, et al. A Bio-Inspired Method for Engineering Design Optimization Inspired by Dingoes Hunting Strategies[J]. Mathematical Problems in Engineering, 2021, 2021: 9107547.