一、理论基础
1、莱维飞行分布算法
本文提出了一种新的基于莱维飞行的元启发式算法,称为莱维飞行分布(Lévy flight distribution, LFD),用于求解实际优化问题。LFD算法的灵感来自莱维飞行随机游走,用于探索未知的大搜索空间(例如,无线传感器网络(Wireless sensor network, WSN))。
为该算法的数学模型建模的仿真环境是WSN环境,在该环境中,算法首先计算每两个相邻传感器节点之间的欧几里德距离
E
D
ED
ED,然后根据计算结果确定传感器节点是否处于其原始位置计算出的距离
E
D
ED
ED或将其移动到另一个位置。将使用LFs模型执行另一位置,其中新位置将位于靠近具有少量邻居节点的传感器节点的位置,或位于部署区域(搜索空间)中没有传感器节点的位置,以减少传感器节点之间发生重叠的机会。
LFs的数学模型具体请参考这里。从数学上讲,所提出的LFD算法使用式(1)计算前两个相邻代理位置之间的欧氏距离
E
D
ED
ED,即
X
i
X_i
Xi和
X
J
X_J
XJ(
X
i
X_i
Xi的邻居)。
E
D
(
X
i
,
X
J
)
=
(
x
J
−
x
i
)
2
+
(
y
J
−
y
i
)
2
(1)
ED(X_i,X_J)=\sqrt{(x_J-x_i)^2+(y_J-y_i)^2}\tag{1}
ED(Xi,XJ)=(xJ−xi)2+(yJ−yi)2(1)其中,
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)为
X
i
X_i
Xi的位置坐标,
(
x
J
,
y
J
)
(x_J,y_J)
(xJ,yJ)为
X
J
X_J
XJ的位置坐标。将距离
E
D
ED
ED与给定阈值进行比较,直到代理在特定次数的迭代后完成。如果距离小于阈值(这意味着在搜索空间中部署代理时存在问题),则该算法通过使用式(2)调整这些代理的位置来启动LFs机制。
X
J
(
t
+
1
)
=
L
e
v
y
_
F
l
i
g
h
t
(
X
J
(
t
)
,
X
L
e
a
d
e
r
,
L
B
,
U
B
)
(2)
X_J(t+1)=Levy\_Flight(X_J(t),X_{Leader},LB,UB)\tag{2}
XJ(t+1)=Levy_Flight(XJ(t),XLeader,LB,UB)(2)其中,
t
t
t是当前迭代次数;
L
e
v
y
_
F
l
i
g
h
t
Levy\_Flight
Levy_Flight是根据步长和方向执行Lévy飞行工作的函数,算法1演示了此函数的伪代码;
U
B
UB
UB和
L
B
LB
LB分别是搜索空间的最大值和最小值;
X
L
e
a
d
e
r
X_{Leader}
XLeader是邻居数最少的代理的位置,将用作LF方向。式(2)将代理
X
J
X_J
XJ移向具有最少邻居数的代理位置。
X
J
(
t
+
1
)
=
L
B
+
(
U
B
−
L
B
)
r
a
n
d
(
)
(3)
X_J(t+1)=LB+(UB-LB)rand()\tag{3}
XJ(t+1)=LB+(UB−LB)rand()(3)其中,
r
a
n
d
(
)
rand()
rand()是用于生成
[
0
,
1
]
[0,1]
[0,1]间均匀分布的随机数
R
R
R的函数。式(3)为在搜索空间中发现非访问位置解提供了更多机会,并增加了所提出算法的探索阶段。该方程将
X
J
X_J
XJ的位置更新为搜索空间中没有其他代理的新区域。
R
=
r
a
n
d
(
)
,
C
S
V
=
0.5
(4)
R=rand(),\,\,CSV=0.5\tag{4}
R=rand(),CSV=0.5(4)其中,
C
S
V
CSV
CSV是在
X
J
X_J
XJ位置的每次更新中与
R
R
R进行比较的标量值。为了更新传感器节点
X
J
X_J
XJ,算法在每次迭代时都会检查式(4)中的
R
R
R值,如果该值小于
C
S
V
CSV
CSV,则执行式(2);否则,执行式(3)以使算法有更多机会发现搜索空间。改变算法的解将增加其探索能力并提高其性能。所提出的算法使用式(5)更新
X
i
X_i
Xi的位置。
X
i
(
t
+
1
)
=
T
P
+
α
1
×
T
F
N
e
i
g
h
b
o
u
r
s
+
r
a
n
d
(
)
×
α
2
×
(
(
T
P
+
α
3
X
L
e
a
d
e
r
)
/
2
−
X
i
(
t
)
)
(5)
X_i(t+1)=TP+\alpha_1\times TF_{Neighbours}+rand()\times\alpha_2\times((TP+\alpha_3X_{Leader})/2-X_i(t))\tag{5}
Xi(t+1)=TP+α1×TFNeighbours+rand()×α2×((TP+α3XLeader)/2−Xi(t))(5)
X
i
N
e
w
(
t
+
1
)
=
L
e
v
y
_
F
l
i
g
h
t
(
X
i
(
t
+
1
)
,
T
P
,
L
B
,
U
B
)
(6)
X_i^{New}(t+1)=Levy\_Flight(X_i(t+1),TP,LB,UB)\tag{6}
XiNew(t+1)=Levy_Flight(Xi(t+1),TP,LB,UB)(6)其中,新位置
X
i
X_i
Xi由式(5)计算,而
X
i
X_i
Xi的最终位置由式(6)给出,
L
e
v
y
_
F
l
i
g
h
t
Levy\_Flight
Levy_Flight是算法1中说明的函数,而
T
P
TP
TP是达到目标函数的最佳适应值的位置(解),称为目标位置。随机数
α
1
\alpha_1
α1、
α
2
\alpha_2
α2和
α
3
\alpha_3
α3的取值范围为
0
≤
α
1
,
α
2
,
α
3
≤
10
0\leq\alpha_1,\alpha_2,\alpha_3\leq10
0≤α1,α2,α3≤10。
X
i
(
t
)
X_i(t)
Xi(t)邻居的目标适应度
T
P
N
e
i
g
h
b
o
u
r
s
TP_{Neighbours}
TPNeighbours如式(7)所示:
T
F
N
e
i
g
h
b
o
u
r
s
=
∑
k
=
1
N
N
D
(
k
)
×
X
k
N
N
(7)
TF_{Neighbours}=\sum_{k=1}^{NN}\frac{D(k)\times X_k}{NN}\tag{7}
TFNeighbours=k=1∑NNNND(k)×Xk(7)其中,
X
k
X_k
Xk是
X
i
(
t
)
X_i(t)
Xi(t)的邻居位置,
k
k
k是邻居的索引,
N
N
NN
NN是
X
i
(
t
)
X_i(t)
Xi(t)邻居的总数,
D
(
k
)
D(k)
D(k)是每个邻居的适应度,由式(8)给出:
D
(
k
)
=
∂
1
(
V
−
M
i
n
(
V
)
)
M
a
x
(
V
)
−
M
i
n
(
V
)
+
∂
2
(8)
D(k)=\frac{\partial_1(V-Min(V))}{Max(V)-Min(V)}+\partial_2\tag{8}
D(k)=Max(V)−Min(V)∂1(V−Min(V))+∂2(8)其中,
V
=
F
i
t
n
e
s
s
(
X
J
(
t
)
)
F
i
t
n
e
s
s
(
X
i
(
t
)
)
,
a
n
d
0
<
∂
1
,
∂
2
≤
1
(9)
V=\frac{Fitness(X_J(t))}{Fitness(X_i(t))},\,\,\,and\,\,0<\partial_1,\partial_2\leq1\tag{9}
V=Fitness(Xi(t))Fitness(XJ(t)),and0<∂1,∂2≤1(9)
2、LFD算法流程图
LFD算法的流程图如图1所示。
二、仿真实验与结果分析
1、函数测试与数值分析
以IEEE CEC 2019[2]测试函数F1、F3、F5、F7、F9为例,结果显示如下:
实验结果表明:LFD算法在复杂函数测试中能够取得不错的效果。
2、WSN覆盖优化
本文采取0/1覆盖模型,具体描述请参考这里。设监测区域为
50
m
×
50
m
50m×50m
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次。初始部署、LFD优化覆盖、LFD算法覆盖率进化曲线如下图所示:
初始部署和最终部署的节点位置及对应的覆盖率分别为:
初始位置:
12.0759 41.7792
11.5346 7.1594
49.7403 35.5009
2.8143 32.6912
8.6019 38.704
47.8574 44.9733
46.3158 33.9835
33.6528 24.6405
36.8374 17.0185
23.5378 36.4429
6.938 13.8543
42.9107 47.9338
19.582 14.8836
17.3175 30.7272
26.6631 29.6912
37.6012 35.5387
0.11532 12.4429
47.5906 8.3037
41.1344 32.9728
24.2799 45.1179
41.4758 8.1617
3.6379 41.6474
13.6829 44.7971
32.1833 19.951
43.9869 4.8925
33.7995 21.0245
44.7298 1.525
23.7567 5.1091
13.7469 13.299
23.0245 33.432
40.1515 17.9911
5.5947 45.1971
8.7989 42.2701
32.7145 8.855
5.1326 3.7284
初始覆盖率:0.6682
最优位置:
25.4406 35.2932
22.6948 17.2012
46.1572 37.0037
42.1345 7.0717
1.9135 46.9157
35.7124 32.7617
19.5928 2.2712
3.3252 44.3469
48.9015 13.2704
34.1787 11.1672
11.7195 21.8172
32.3862 2.9025
37.8697 44.5897
47.2718 3.4247
5.1375 17.4529
2.5824 10.737
14.6132 46.3916
8.7555 27.8153
46.5386 20.1929
45.3048 45.8603
46.2572 29.2407
16.8096 23.859
34.1228 40.7691
25.8544 25.5033
2.6144 33.3828
7.8023 4.0375
29.4761 2.9576
13.1543 11.9176
8.1993 37.9867
31.8471 22.3021
39.3084 20.5194
13.3124 32.3056
27.3255 14.3125
26.5268 47.0383
1.4609 23.6899
最优覆盖率:0.83506
结果表明:LFD算法在WSN二维覆盖优化问题上取得一定的效果。
三、参考文献
[1] Essam H. Houssein, Mohammed R. Saad, Fatma A. Hashim. Lévy flight distribution: A new metaheuristic algorithm for solving engineering optimization problems[J]. Engineering Applications of Artificial Intelligence, 2020, 94: 103731.
[2] K. V. Price, N. H. Awad, M. Z. Ali, P. N. Suganthan. Problem Definitions and Evaluation Criteria for the 100-Digit Challenge Special Session and Competition on Single Objective Numerical Optimization[R]. Technical Report, Nanyang Technological University, Singapore, November 2018.