一、理论基础
1、节点覆盖模型
本文采取0/1覆盖模型,具体描述请参考这里。
2、蝠鲼觅食优化算法(MRFO)
蝠鲼觅食策略包括3种:链式觅食、旋风式觅食和筋斗式觅食。
(1)链式觅食
链式觅食是蝠鲼群头尾相连排列成一条有序的觅食链,除了最前面的个体外,其他个体不仅朝着最优位置前进,还会随着它前面的个体前进,也就是前面个体遗漏的浮游生物还会被其后的个体所觅食。那么在每次迭代中,每个个体都会被目前的最优位置以及其前的位置所更新,其更新方式可由下式来表示: x i d ( t + 1 ) = { x i d ( t ) + r [ x best d ( t ) − x i d ( t ) ] + α [ x best d ( t ) − x i d ( t ) ] , i = 1 ; x i d ( t ) + r [ x i − 1 d ( t ) − x i d ( t ) ] + α [ x best d ( t ) − x i d ( t ) ] , i = 2 , 3 , ⋯ , N . (1) x_i^d(t+1)=\begin{dcases}x_i^d(t)+r[x_{\text{best}}^d(t)-x_i^d(t)]+\alpha[x_{\text{best}}^d(t)-x_i^d(t)],\quad i=1;\\x_i^d(t)+r[x_{i-1}^d(t)-x_i^d(t)]+\alpha[x_{\text{best}}^d(t)-x_i^d(t)],\quad\, i=2,3,\cdots,N.\end{dcases}\tag{1} xid(t+1)={xid(t)+r[xbestd(t)−xid(t)]+α[xbestd(t)−xid(t)],i=1;xid(t)+r[xi−1d(t)−xid(t)]+α[xbestd(t)−xid(t)],i=2,3,⋯,N.(1) α = 2 r ∣ log ( r ) ∣ (2) \alpha=2r\sqrt{|\log(r)|}\tag{2} α=2r∣log(r)∣(2)其中, x i d ( t ) x_i^d(t) xid(t)为第 i i i个个体第 d d d维在第 t t t代的位置; r r r是 [ 0 , 1 ] [0,1] [0,1]内的随机数; α \alpha α为权重因子; x best d ( t ) x_{\text{best}}^d(t) xbestd(t)为最优位置。
(2)旋风式觅食
当蝠鲼群发现在深水处有高密度的浮游生物时,它们会彼此头尾相连形成一条呈空间螺旋状的觅食链游向食物,浮游生物会被产生的漩涡拉到中心,刚好进入了蝠鲼群张开的大嘴,并且每个个体还会随着前面的个体移动.若所有个体都以食物作为参考位置来执行搜索,其更新方式可由下式来表示:
x
i
d
(
t
+
1
)
=
{
x
best
d
+
r
[
x
best
d
(
t
)
−
x
i
d
(
t
)
]
+
β
[
x
best
d
(
t
)
−
x
i
d
(
t
)
]
,
i
=
1
;
x
best
d
+
r
[
x
i
−
1
d
(
t
)
−
x
i
d
(
t
)
]
+
β
[
x
best
d
(
t
)
−
x
i
d
(
t
)
]
,
i
=
2
,
3
,
⋯
,
N
.
(3)
x_i^d(t+1)=\begin{dcases}x_{\text{best}}^d+r[x_{\text{best}}^d(t)-x_i^d(t)]+\beta[x_{\text{best}}^d(t)-x_i^d(t)],\quad i=1;\\x_{\text{best}}^d+r[x_{i-1}^d(t)-x_i^d(t)]+\beta[x_{\text{best}}^d(t)-x_i^d(t)],\quad\, i=2,3,\cdots,N.\end{dcases}\tag{3}
xid(t+1)={xbestd+r[xbestd(t)−xid(t)]+β[xbestd(t)−xid(t)],i=1;xbestd+r[xi−1d(t)−xid(t)]+β[xbestd(t)−xid(t)],i=2,3,⋯,N.(3)
β
=
2
e
r
1
T
−
t
+
1
T
⋅
sin
(
2
π
r
1
)
(4)
\beta=2e^{r_1\frac{T-t+1}{T}}\cdot\sin(2\pi r_1)\tag{4}
β=2er1TT−t+1⋅sin(2πr1)(4)其中,
β
\beta
β为权重因子;
T
T
T为最大迭代次数;
r
1
r_1
r1为
[
0
,
1
]
[0,1]
[0,1]内的随机数。
每个个体在寻找到达新位置的最好方法是在整个搜索空间中以一个新的随机位置作为参考,该机制主要侧重于探索,使MRFO能够进行广泛的全局搜索,其可由下式来表示:
x
rand
d
=
L
b
d
+
r
(
U
b
d
−
L
b
d
)
(5)
x_{\text{rand}}^d=Lb^d+r(Ub^d-Lb^d)\tag{5}
xrandd=Lbd+r(Ubd−Lbd)(5)
x
i
d
(
t
+
1
)
=
{
x
rand
d
+
r
[
x
rand
d
−
x
i
d
(
t
)
]
+
β
[
x
rand
d
−
x
i
d
(
t
)
]
,
i
=
1
;
x
rand
d
+
r
[
x
i
−
1
d
(
t
)
−
x
i
d
(
t
)
]
+
β
[
x
rand
d
−
x
i
d
(
t
)
]
,
i
=
2
,
3
,
⋯
,
N
.
(6)
x_i^d(t+1)=\begin{dcases}x_{\text{rand}}^d+r[x_{\text{rand}}^d-x_i^d(t)]+\beta[x_{\text{rand}}^d-x_i^d(t)],\quad\,\,\,\,\, i=1;\\x_{\text{rand}}^d+r[x_{i-1}^d(t)-x_i^d(t)]+\beta[x_{\text{rand}}^d-x_i^d(t)],\quad i=2,3,\cdots,N.\end{dcases}\tag{6}
xid(t+1)={xrandd+r[xrandd−xid(t)]+β[xrandd−xid(t)],i=1;xrandd+r[xi−1d(t)−xid(t)]+β[xrandd−xid(t)],i=2,3,⋯,N.(6)其中,
x
rand
d
x_{\text{rand}}^d
xrandd为搜索空间中的任意位置;
U
b
d
Ub^d
Ubd和
L
b
d
Lb^d
Lbd分别为第
d
d
d维空间的上限和下限。
(3)筋斗式觅食
当蝠鲼群发现食物源时,它们会做一系列的翻筋斗,在浮游生物周边盘旋,将其拉向蝠鲼群。它们翻筋斗是周期性的随机运动,在这种情况下,食物的位置被视为枢纽,每个个体倾向于围绕枢轴游荡并翻腾到新的位置,即在位于当前位置及其对称位置之间的搜索域当中可以移动到新的任何位置,这个搜索域也就是筋斗范围。因此它们总是围绕着最优位置来更新位置,其可由下式来表示: x i d ( t + 1 ) = x i d ( t ) + S [ r 2 x best d − r 3 x i d ( t ) ] , i = 1 , 2 , ⋯ , N (7) x_i^d(t+1)=x_i^d(t)+S[r_2x_{\text{best}}^d-r_3x_i^d(t)],\quad i=1,2,\cdots,N\tag{7} xid(t+1)=xid(t)+S[r2xbestd−r3xid(t)],i=1,2,⋯,N(7)其中, S S S是决定筋斗范围的筋斗因子,本文取 S = 2 S=2 S=2; r 2 r_2 r2与 r 3 r_3 r3为 [ 0 , 1 ] [0,1] [0,1]内的随机数。
二、仿真实验与分析
1、函数测试与数值分析
将MRFO与DE、CS、GSA进行对比,以文献[2]中的F5、F6(单峰函数/100维)、F11、F12(多峰函数/100维)、F18、F19(固定维度多峰函数/2维、3维)为例,种群规模设置为30,最大迭代次数设置为500,每个算法独立运算30次。结果显示如下:
函数:F5
MRFO:最差值: 23.5692,最优值:21.8566,平均值:22.6726,标准差:0.48158
DE:最差值: 245.9596,最优值:39.3235,平均值:133.3198,标准差:49.7819
CS:最差值: 2378.7793,最优值:201.6387,平均值:636.5411,标准差:490.1976
GSA:最差值: 369.7249,最优值:27.1073,平均值:85.5358,标准差:87.8989
函数:F6
MRFO:最差值: 0,最优值:0,平均值:0,标准差:0
DE:最差值: 0,最优值:0,平均值:0,标准差:0
CS:最差值: 0,最优值:0,平均值:0,标准差:0
GSA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F11
MRFO:最差值: 0,最优值:0,平均值:0,标准差:0
DE:最差值: 15.3541,最优值:9.0283,平均值:11.444,标准差:1.7913
CS:最差值: 48.8466,最优值:20.53,平均值:29.2254,标准差:7.2024
GSA:最差值: 746.0211,最优值:607.2186,平均值:676.8524,标准差:31.2412
函数:F12
MRFO:最差值: 0.036333,最优值:0.00061192,平均值:0.0076389,标准差:0.006621
DE:最差值: 970667.9344,最优值:51585.2223,平均值:472679.0138,标准差:214885.6427
CS:最差值: 1406.746,最优值:13.4084,平均值:132.795,标准差:290.3171
GSA:最差值: 17.4585,最优值:5.7389,平均值:10.1218,标准差:3.1287
函数:F18
MRFO:最差值: 3,最优值:3,平均值:3,标准差:1.7859e-15
DE:最差值: 3,最优值:3,平均值:3,标准差:1.3424e-15
CS:最差值: 3,最优值:3,平均值:3,标准差:1.6118e-15
GSA:最差值: 3,最优值:3,平均值:3,标准差:4.2882e-15
函数:F19
MRFO:最差值: -3.8628,最优值:-3.8628,平均值:-3.8628,标准差:2.6962e-15
DE:最差值: -3.8628,最优值:-3.8628,平均值:-3.8628,标准差:2.7101e-15
CS:最差值: -3.8628,最优值:-3.8628,平均值:-3.8628,标准差:2.4795e-15
GSA:最差值: -2.3907,最优值:-3.821,平均值:-3.3081,标准差:0.35801
实验结果验证了MRFO算法较其他智能算法可以有效提高收敛速度和寻优精度。
2、MRFO优化WSN覆盖
设监测区域为
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次。初始部署、MRFO优化覆盖、MRFO算法覆盖率进化曲线如下图所示。
初始部署和最终部署的节点位置及对应的覆盖率分别为:
初始位置:
42.5811 35.7306
23.9576 35.0767
34.1511 3.7239
34.2306 38.2833
8.8815 27.4745
36.2441 13.4014
3.0569 5.3172
4.4437 31.1401
1.7897 28.9515
11.7576 15.1994
15.8755 28.9142
12.2625 36.5508
25.1451 15.7389
28.0447 27.7336
16.877 36.942
4.058 41.5493
47.0175 28.982
44.5954 0.68227
41.9762 20.5639
26.5603 1.6002
12.693 15.2769
17.1676 0.90168
24.2369 8.8142
45.5946 9.7092
18.3173 8.1208
5.5997 29.1446
34.0424 38.8864
6.5807 20.4417
34.2164 43.0551
3.1052 11.6989
10.9125 44.069
22.4911 33.3531
25.1751 39.5738
29.9511 12.1105
10.3992 46.655
初始覆盖率:0.7055
最优位置:
47.696 40.3136
26.6611 38.3416
37.6458 6.6927
36.4856 39.8992
12.4422 28.7269
37.4035 20.1435
4.3398 3.8576
4.4495 36.7412
2.7616 26.652
9.2802 12.6271
18.0535 34.5879
13.2935 40.4657
28.2563 18.7276
27.3398 28.6841
21.5099 45.7124
4.5102 45.948
45.4574 31.257
45.9505 3.795
46.3618 21.3394
30.5159 3.1057
16.3122 17.8214
20.5852 24.7757
29.474 11.2962
46.5944 11.5606
21.6376 11.2092
8.0779 34.1552
40.9265 47.4109
7.6176 20.6703
36.332 26.6509
3.1642 13.3713
14.4016 47.2297
35.634 33.7169
30.5287 47.3916
37.7678 15.5722
13.4752 4.0509
最优覆盖率:0.90581
实验结果表明,MRFO能够有效提升传感器节点的覆盖率,使得节点分布更加均匀。
三、参考文献
[1] Weiguo Zhao, Zhenxing Zhang, Liying Wang. Manta ray foraging optimization: An effective bio-inspired optimizer for engineering applications[J]. Engineering Applications of Artificial Intelligence, 2020, 87: 103300.
[2] Weiguo Zhao, Liying Wang. An effective bacterial foraging optimizer for global optimization[J]. Information Sciences, 2016, 329: 719-735.