基于人工蜂鸟算法的函数寻优及工程优化应用

一、理论基础

1、人工蜂鸟算法

人工蜂鸟算法(Artificial hummingbird algorithm, AHA)模拟了自然界中蜂鸟的特殊飞行技能和智能觅食策略。建立了三种用于觅食策略的飞行技能模型,包括轴向飞行、对角飞行和全向飞行。此外,还实现了引导觅食、区域性觅食和迁徙觅食,并构建了访问表来模拟蜂鸟对食物来源的记忆功能。

(1)初始化

n n n只蜂鸟个体被安置在 n n n个食物源上,随机初始化如下: x i = L o w + r ⋅ ( U p − L o w ) , i = 1 , 2 , ⋯   , n (1) x_i=Low+r\cdot(Up-Low),\quad i=1,2,\cdots,n\tag{1} xi=Low+r(UpLow),i=1,2,,n(1)其中, L o w Low Low U p Up Up分别是 d d d维问题的上下边界, r r r [ 0 , 1 ] [0,1] [0,1]的随机向量, x i x_i xi表示第 i i i个个体的位置。
食物来源的访问表初始化如下: V T i , j = { 0   i ≠ j null i = j    i = 1 , ⋯   , n ; j = 1 , ⋯   , n (2) VT_{i,j}=\begin{dcases}0\quad\quad\, i≠j\\\text{null}\quad i=j\end{dcases}\,\,i=1,\cdots,n;j=1,\cdots,n\tag{2} VTi,j={0i=jnulli=ji=1,,n;j=1,,n(2)其中, i = j , V T i , j = null i=j,VT_{i,j}=\text{null} i=j,VTi,j=null表示蜂鸟在特定的食物来源进食; i ≠ j , V T i , j = 0 i≠j,VT_{i,j}=0 i=j,VTi,j=0表示第 i i i只蜂鸟在当前迭代中刚刚访问了第 j j j个食物源。

(2)引导觅食

每只蜂鸟都有一种自然的倾向,即以最大的花蜜量访问食物源,这意味着目标源需要有较高的花蜜补充率和蜂鸟较长的未访问时间。因此,在AHA中,蜂鸟应该为引导觅食行为确定访问级别最高的食物来源,然后从中选择花蜜补充率最高的食物来源作为其目标食物来源。确定目标食物来源后,蜂鸟可以飞向目标觅食。在觅食过程中,通过引入方向切换向量,AHA算法充分利用并建模了三种飞行技能,包括全向、对角和轴向飞行。该向量用于控制 D D D维空间中的一个或多个方向是否为可用。
这些飞行模式可以扩展到 d − D d-D dD空间,其中轴向飞行定义如下: D ( i ) = { 1 i = r a n d i ( [ 1 , d ] ) 0 e l s e i = 1 , ⋯   , d (3) D^{(i)}=\begin{dcases}1\quad i=randi([1,d])\\0\quad else\end{dcases}\quad i=1,\cdots,d\tag{3} D(i)={1i=randi([1,d])0elsei=1,,d(3)对角飞行的数学模型如下: D ( i ) = { 1 i = P ( j ) , j ∈ [ 1 , k ] , P = r a n d p e r m ( k ) , k ∈ [ 2 , ⌈ r 1 ⋅ ( d − 2 ) ⌉ + 1 ] 0 e l s e i = 1 , ⋯   , d (4) D^{(i)}=\begin{dcases}1\quad i=P(j),j\in[1,k],P=randperm(k),k\in[2,\lceil{r_1\cdot(d-2)}\rceil+1]\\0\quad else\end{dcases}\quad i=1,\cdots,d\tag{4} D(i)={1i=P(j),j[1,k],P=randperm(k),k[2,r1(d2)+1]0elsei=1,,d(4)全向飞行的定义如下: D ( i ) = 1 i = 1 , ⋯   , d (5) D^{(i)}=1\quad i=1,\cdots,d\tag{5} D(i)=1i=1,,d(5)其中, r a n d i ( [ 1 , d ] ) randi([1,d]) randi([1,d])表示生成一个从1到 d d d的随机整数; r a n d p e r m ( k ) randperm(k) randperm(k)表示创建一个从1到 k k k整数的随机排列; r 1 r_1 r1 ( 0 , 1 ] (0,1] (0,1]的随机数。
有了这些飞行能力,蜂鸟就可以访问其目标食物来源,从而获得候选食物来源。因此,根据从所有现有来源中选择的目标食物来源,从旧来源更新食物来源。模拟引导觅食行为和候选食物源的数学方程推导如下: v i ( t + 1 ) = x i , t a r ( t ) + a ⋅ D ⋅ ( x i ( t ) − x i , t a r ( t ) ) (6) v_i(t+1)=x_{i,tar}(t)+a\cdot D\cdot(x_i(t)-x_{i,tar}(t))\tag{6} vi(t+1)=xi,tar(t)+aD(xi(t)xi,tar(t))(6) a ∼ N ( 0 , 1 ) (7) a\sim N(0,1)\tag{7} aN(0,1)(7)其中, x i ( t ) x_i(t) xi(t)是在第 t t t次迭代时第 i i i个食物源的位置; x i , t a r ( t ) x_{i,tar}(t) xi,tar(t)是第 i i i只蜂鸟计划访问的目标食物源的位置; a a a是一个服从标准正态分布的引导因子。式(6)允许每个当前食物源更新其在目标食物源附近的位置,并通过不同的飞行模式模拟蜂鸟的引导觅食。第 i i i个食物源的位置更新如下: x i ( t + 1 ) = { x i ( t )      f ( x i ( t ) ) ≤ f ( v i ( t + 1 ) ) v i ( t + 1 ) f ( x i ( t ) ) > f ( v i ( t + 1 ) ) (8) x_i(t+1)=\begin{dcases}x_i(t)\quad\quad\,\,\,\, f(x_i(t))≤f(v_i(t+1))\\v_i(t+1)\quad f(x_i(t))>f(v_i(t+1))\end{dcases}\tag{8} xi(t+1)={xi(t)f(xi(t))f(vi(t+1))vi(t+1)f(xi(t))>f(vi(t+1))(8)其中, f ( ⋅ ) f(\cdot) f()表示函数适应度值。式(8)表明,如果候选食物源的花蜜补充率优于当前食物源的花蜜补充率,蜂鸟将放弃当前食物源,并停留在式(6)中得出的候选食物源处觅食。
在AHA算法中,访问表是存储食物源访问信息的重要组成部分。根据每次迭代的访问表,任何蜂鸟都可以找到它想要访问的目标食物源。访问表记录了自上次同一只蜂鸟访问每个食物来源以来,没有访问它的时间,长时间未访问表示访问级别高。每只蜂鸟都希望选择访问级别最高的食物来源。如果同一最高访问级别有多个源匹配,则蜂鸟将访问的目标食物源选择具有最佳花蜜补充率的源。种群中的每只蜂鸟都通过式(6)访问自己的目标食物源。在每次迭代期间,当蜂鸟使用式(6)对其目标食物源执行引导觅食时,该蜂鸟的其他食物源的访问级别增加1,并且其访问的目标食物源的访问级别初始化为0。在执行引导觅食后,如果没有更好的花蜜补充率,蜂鸟将不会改变其食物来源;如果有更好的花蜜补充率,则当前来源将被新来源取代,然后蜂鸟将留在新的食物来源。相应蜂鸟所在食物源的更新表示所有其他蜂鸟的食物源的访问级别更新。要更新的访问级别设置为其他食物来源的最高级别,增量为1。AHA的引导觅食策略如下图所示。
在这里插入图片描述

(3)区域性觅食

蜂鸟在访问了食用花蜜的目标食物来源后,很可能会寻找新的食物来源,而不是访问其他现有的食物来源。因此,蜂鸟可以很容易地移动到自己区域内的邻近地区,在那里可以找到一种新的食物来源,作为可能比目前更好的备选解决方案。模拟蜂鸟在区域性觅食策略和候选食物源中的局部搜索的数学方程如下: v i ( t + 1 ) = x i ( t ) + b ⋅ D ⋅ x i ( t ) (9) v_i(t+1)=x_i(t)+b\cdot D\cdot x_i(t)\tag{9} vi(t+1)=xi(t)+bDxi(t)(9) b ∼ N ( 0 , 1 ) (10) b\sim N(0,1)\tag{10} bN(0,1)(10)其中, b b b是服从标准正态分布的区域性觅食因子。式(9)可以让任何蜂鸟根据其特殊的飞行技能,根据其个体位置,在其附近轻松找到新的食物来源。执行区域性觅食策略后,应更新访问表。AHA的区域觅食策略如下图所示。
在这里插入图片描述

(4)迁徙觅食

当蜂鸟经常造访的地区往往缺乏食物时,这种蜂鸟通常会迁移到较远的食物来源觅食。在AHA算法中,定义了迁徙系数。如果迭代次数超过迁徙系数的预定值,则位于花蜜填充率最差的食物源的蜂鸟将迁徙到在整个搜索空间中随机产生的新食物源。此时,这只蜂鸟将抛弃旧的来源,留在新的来源处觅食,然后更新访问表。蜂鸟从补充花蜜率最差的来源迁移到随机产生的新来源的觅食情况如下: x w o r ( t + 1 ) = L o w + r ⋅ ( U p − L o w ) (11) x_{wor}(t+1)=Low+r\cdot(Up-Low)\tag{11} xwor(t+1)=Low+r(UpLow)(11)其中, x w o r x_{wor} xwor是种群中花蜜补充率最差的食物来源。AHA的迁移觅食策略如下图所示。
在这里插入图片描述在AHA中,除了两个常见参数(种群规模和最大迭代次数)外,在考虑是否执行迁移时,只需确定一个控制参数。在最坏的情况下,如果在执行引导觅食和区域性觅食时没有替代所有食物源,蜂鸟将根据每次迭代的访问表依次访问每个食物源作为其目标源。假设有50%的概率在引导觅食或区域觅食之间进行选择,并且在引导觅食中访问其他来源的概率相同。因此,在最坏的情况下,蜂鸟在重复2次后可能会访问与其目标源相同的食物源。在这种情况下,需要执行迁徙觅食策略以改善停滞状态并探索搜索空间。因此,建议将迁徙系数相对于种群规模的定义如下: M = 2 n (12) M=2n\tag{12} M=2n(12)

2、AHA伪代码

AHA首先初始化一组随机解和一个访问表。在每次迭代中,执行引导觅食或区域性觅食的概率为50%。引导觅食使蜂鸟能够向它们各自的目标食物源移动,这些食物源由访问表和花蜜补充率决定;区域性觅食迫使蜂鸟扰乱他们自己的领地;每2次迭代执行一次迁徙觅食。这三种觅食行为都使用了三种飞行技能,包括全向、对角和轴向飞行。所有操作和计算都以交互方式执行,直到达到停止标准。最终,具有最佳花蜜补充率的食物源作为全局最优值的近似值返回。下图给出了AHA的伪码。
在这里插入图片描述

二、仿真实验与分析

1、函数测试与数值分析

将AHA与SSA、WOA、CS、TLBO和BOA进行对比,以文献[2]中的F1、F2(单峰函数/30维)、F10、F11(多峰函数/30维)、F17、F18(固定维度多峰函数/2维、2维)为例,种群规模设置为50,最大迭代次数设置为1000,每个算法独立运算30次。结果显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

函数:F1
SSA:最差值: 1.1859e-08,最优值:4.861e-09,平均值:8.4526e-09,标准差:1.7138e-09,秩和检验:3.018e-11
WOA:最差值: 2.7816e-171,最优值:5.1364e-189,平均值:1.695e-172,标准差:0,秩和检验:3.018e-11
CS:最差值: 0.016572,最优值:0.00308,平均值:0.0091215,标准差:0.0031982,秩和检验:3.018e-11
TLBO:最差值: 1.0606e-178,最优值:5.0987e-181,平均值:1.409e-179,标准差:0,秩和检验:3.018e-11
BOA:最差值: 1.9231e-14,最优值:1.5141e-14,平均值:1.6978e-14,标准差:9.0632e-16,秩和检验:3.018e-11
AHA:最差值: 3.059e-291,最优值:0,平均值:1.0197e-292,标准差:0,秩和检验:1
函数:F2
SSA:最差值: 3.4463,最优值:0.00096052,平均值:0.94667,标准差:1.0658,秩和检验:3.0199e-11
WOA:最差值: 2.2919e-106,最优值:1.0256e-119,平均值:9.1686e-108,标准差:4.1908e-107,秩和检验:3.0199e-11
CS:最差值: 4.2442,最优值:0.41206,平均值:1.4246,标准差:0.74716,秩和检验:3.0199e-11
TLBO:最差值: 8.822e-89,最优值:1.1342e-90,平均值:9.3691e-90,标准差:1.5917e-89,秩和检验:3.0199e-11
BOA:最差值: 1.1506e-11,最优值:2.7655e-12,平均值:9.5493e-12,标准差:2.3595e-12,秩和检验:3.0199e-11
AHA:最差值: 6.0566e-150,最优值:1.4165e-168,平均值:2.5743e-151,标准差:1.1309e-150,秩和检验:1
函数:F10
SSA:最差值: 4.2114,最优值:1.8958e-05,平均值:1.7828,标准差:0.92461,秩和检验:1.2118e-12
WOA:最差值: 7.9936e-15,最优值:8.8818e-16,平均值:3.7303e-15,标准差:2.3603e-15,秩和检验:8.725e-08
CS:最差值: 13.3722,最优值:2.449,平均值:5.0032,标准差:2.616,秩和检验:1.2118e-12
TLBO:最差值: 4.4409e-15,最优值:4.4409e-15,平均值:4.4409e-15,标准差:0,秩和检验:1.6853e-14
BOA:最差值: 1.2712e-11,最优值:6.2395e-12,平均值:1.0069e-11,标准差:2.1015e-12,秩和检验:1.2118e-12
AHA:最差值: 8.8818e-16,最优值:8.8818e-16,平均值:8.8818e-16,标准差:0,秩和检验:NaN
函数:F11
SSA:最差值: 0.061409,最优值:3.4712e-08,平均值:0.012305,标准差:0.013161,秩和检验:1.2118e-12
WOA:最差值: 0.051552,最优值:0,平均值:0.0031456,标准差:0.012026,秩和检验:0.1608
CS:最差值: 0.14086,最优值:0.039652,平均值:0.078588,标准差:0.02729,秩和检验:1.2118e-12
TLBO:最差值: 4.095e-08,最优值:0,平均值:1.365e-09,标准差:7.4765e-09,秩和检验:0.33371
BOA:最差值: 1.1102e-14,最优值:0,平均值:2.0724e-15,标准差:2.5343e-15,秩和检验:5.7091e-11
AHA:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN
函数:F17
SSA:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:3.1981e-15,秩和检验:6.349e-05
WOA:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:4.2233e-07,秩和检验:1.2118e-12
CS:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:0,秩和检验:NaN
TLBO:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:0,秩和检验:NaN
BOA:最差值: 0.58607,最优值:0.39789,平均值:0.41226,标准差:0.03864,秩和检验:1.2118e-12
AHA:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:0,秩和检验:NaN
函数:F18
SSA:最差值: 3,最优值:3,平均值:3,标准差:6.5529e-14,秩和检验:5.2114e-12
WOA:最差值: 3,最优值:3,平均值:3,标准差:4.4543e-06,秩和检验:5.2152e-12
CS:最差值: 3,最优值:3,平均值:3,标准差:1.784e-15,秩和检验:0.025149
TLBO:最差值: 3,最优值:3,平均值:3,标准差:2.0451e-15,秩和检验:0.62618
BOA:最差值: 3.7505,最优值:3.0001,平均值:3.0456,标准差:0.14064,秩和检验:5.2152e-12
AHA:最差值: 3,最优值:3,平均值:3,标准差:1.2749e-15,秩和检验:1

结果表明,AHA在计算量和求解精度方面优于文献中已有的优化算法。

2、求解压缩弹簧设计优化问题

压缩弹簧设计问题具体请参考这里。仿真实验中,6种算法的运行次数、种群规模和最大迭代次数都保持一致,即 N = 50 , M a x _ i t e r = 1000 N=50,Max\_iter=1000 N=50,Max_iter=1000,每种算法分别独立运行30次。结果显示如下:
在这里插入图片描述

SSA:最差值: 0.013086,最优值:0.012669,平均值:0.012805,标准差:0.00010274,秩和检验:2.9729e-11
WOA:最差值: 0.017768,最优值:0.012721,平均值:0.013813,标准差:0.001306,秩和检验:2.9729e-11
CS:最差值: 0.012664,最优值:0.012663,平均值:0.012663,标准差:2.386e-08,秩和检验:2.9729e-11
TLBO:最差值: 0.012684,最优值:0.012663,平均值:0.012666,标准差:5.0366e-06,秩和检验:2.9729e-11
BOA:最差值: 22.5896,最优值:0.013201,平均值:0.99649,标准差:4.168,秩和检验:2.9729e-11
AHA:最差值: 0.012663,最优值:0.012663,平均值:0.012663,标准差:1.1939e-13,秩和检验:1

实验结果表明:AHA在求解压缩弹簧设计约束优化问题时具有优越的性能。

3、WSN覆盖优化

本文采用0/1覆盖模型。设监测区域为 50 m × 50 m 50 m×50 m 50m×50m的二维平面,传感器节点个数 N = 35 N=35 N=35,其感知半径是 R s = 5 m R_s=5m Rs=5m,通信半径 R c = 10 m R_c=10m Rc=10m,迭代500次。初始部署、AHA优化覆盖、AHA算法覆盖率进化曲线如下图所示。
在这里插入图片描述在这里插入图片描述在这里插入图片描述初始部署和最终部署的节点位置及对应的覆盖率分别为:

初始位置:
35.0591     5.2347
25.6518     32.6113
2.4132     13.3024
25.6055     32.9303
7.5279     39.2267
4.4646     17.2521
17.5283     23.0968
6.2728     29.7016
40.4121     12.3942
27.0403     5.8922
48.8571     42.9803
31.4652     49.9767
37.6822     31.7451
7.5834     46.488
15.1663     34.6881
40.964     43.2909
27.4744     41.2386
40.2968     42.3998
10.9409     19.2006
11.3019     16.8711
0.58894     29.7114
1.5991     9.9457
21.2618     4.6656
15.8854     37.0771
24.3206     0.98289
20.8811     42.7015
12.415     2.4427
18.1693     48.2187
18.0554     45.5749
28.3715     21.1697
46.4974     31.6417
39.2601     4.0393
26.8087     29.3194
38.247     2.0572
33.5147     42.6074
初始覆盖率:0.67128
最优位置:
28.9042     39.3569
47.1491     46.2727
38.5881     40.8398
6.5576     10.3037
28.3095     16.5742
12.6975     2.471
4.0251     26.5092
46.0228     16.4301
34.3108     47.62
38.2979     21.5132
14.4087     11.652
38.7418     3.7907
15.7042     48.4327
4.3654     45.3313
4.1036     17.1473
19.4627     19.1472
46.4287     6.7203
36.7182     12.565
20.6318     4.3091
3.2015     36.8294
45.4931     28.1435
13.3882     40.6197
22.5339     11.1561
20.0856     27.6854
28.4925     22.6464
21.3036     36.3488
37.2945     33.2951
3.6598     4.1102
28.5413     31.0967
30.0822     4.4805
34.3246     27.5475
24.5823     46.6666
11.9409     32.6501
47.4622     36.7473
12.1036     22.4816
最优覆盖率:0.92234

实验结果表明,AHA能够有效提升WSN的覆盖率,使得节点分布更加均匀。

三、参考文献

[1] Weiguo Zhao, Liying Wang, Seyedali Mirjalili. Artificial hummingbird algorithm: A new bio-inspired optimizer with its engineering applications[J]. Computer Methods in Applied Mechanics and Engineering, 2022, 388: 114194.
[2] Weiguo Zhao, Liying Wang. An effective bacterial foraging optimizer for global optimization[J]. Information Sciences, 2016, 329: 719-735.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心️升明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值