基于回溯搜索优化算法的WSN覆盖优化

一、理论基础

1、回溯搜索优化算法

回溯搜索优化算法(Backtracking Search Optimization Algorithm, BSA)是Civicioglu在2013年提出的一种求解优化问题的进化算法。该算法结构简单,仅有一个控制参数,使其受初始控制参数影响很小,且在变异策略中充分考虑历史种群的影响,并采用了新型的交叉方式,使算法具有较强的搜索能力,能够很好地解决不同类型的优化问题,已被广泛用于许多工程领域。
回溯搜索优化算法与差分进化算法在框架上有一定的相似性,不同之处在于该算法有两个选择过程分别是选择Ⅰ和选择Ⅱ。BSA算法通常包含种群初始化、选择Ⅰ、变异、交叉和选择Ⅱ五个步骤。

(1)种群初始化

BSA通过上界和下界随机产生 p o p pop pop h i s t o r i c a l _ p o p historical\_ pop historical_pop,如式(1)和式(2)所示。 p o p i , j = r a n d × ( u p j − l o w j ) + l o w j (1) pop_{i,j}=rand\times(up_j-low_j)+low_j\tag{1} popi,j=rand×(upjlowj)+lowj(1) h i s t o r i c a l _ p o p i , j = r a n d × ( u p j − l o w j ) + l o w j (2) historical\_ pop_{i,j}=rand\times(up_j-low_j)+low_j\tag{2} historical_popi,j=rand×(upjlowj)+lowj(2)其中, p o p i , j pop_{i,j} popi,j为初始种群, h i s t o r i c a l _ p o p i , j historical\_ pop_{i,j} historical_popi,j为历史种群, i = 1 , 2 , ⋯   , N i=1,2,\cdots,N i=1,2,,N j = 1 , 2 , ⋯   , D j=1,2,\cdots,D j=1,2,,D N N N为种群数量, D D D为问题维数, l o w j low_j lowj u p j up_j upj分别是变量的下界和上界。

(2)选择Ⅰ

BSA在每次迭代之前通过式(3)产生新的历史种群 h i s t o r i c a l _ p o p historical\_ pop historical_pop if    a < b    then    h i s t o r i c a l _ p o p = p o p (3) \text{if}\,\,a<b\,\,\text{then}\,\,historical\_ pop=pop\tag{3} ifa<bthenhistorical_pop=pop(3)其中, a , b a,b a,b ( 0 , 1 ) (0,1) (0,1)均匀分布的随机数,当生成 h i s t o r i c a l _ p o p historical\_ pop historical_pop后,需对 h i s t o r i c a l _ p o p historical\_ pop historical_pop中的个体利用式(4)进行随机排序。 h i s t o r i c a l _ p o p = p e r m u t i n g ( h i s t o r i c a l _ p o p ) (4) historical\_ pop=permuting(historical\_ pop)\tag{4} historical_pop=permuting(historical_pop)(4)其中, p e r m u t i n g permuting permuting是随机排序函数。

(3)变异

为了生成新的个体,采用式(5)进行变异操作: o f f s p r i n g s = p o p + F × ( h i s t o r i c a l _ p o p − p o p ) (5) offsprings=pop+F\times(historical\_ pop-pop)\tag{5} offsprings=pop+F×(historical_poppop)(5)其中, F F F为变异尺度系数, F = 3 × r a n d n F=3\times randn F=3×randn r a n d n randn randn为标准正态分布随机数。

(4)交叉

BSA的交叉策略是一种基于两种交叉方式等概率调用的联合交叉策略。首先,生成一个初始值为1、大小为 N × D N\times D N×D的矩阵;然后,通过式(6)更新矩阵 M a p Map Map;最后,通过矩阵 M a p Map Map来确定种群交叉的位置,具体如式(7)所示: { M a p i , u [ 1 : c e i l ( m i x r a t e × r a n d × D ) ] = 0 , a < b M a p i , r a n d i ( D ) = 1 , otherwise (6) \begin{dcases}Map_{i,u[1:ceil(mixrate\times rand\times D)]}=0,\quad a<b\\[2ex]Map_{i,randi(D)}=1,\quad\quad\quad\quad\quad\quad\text{otherwise}\end{dcases}\tag{6} Mapi,u[1:ceil(mixrate×rand×D)]=0,a<bMapi,randi(D)=1,otherwise(6) T i , j = { o f f s p r i n g s i , j , M a p i , j = 0 p o p i , j ,      otherwise (7) T_{i,j}=\begin{dcases}offsprings_{i,j},\quad Map_{i,j}=0\\[2ex]pop_{i,j},\quad\quad\quad\quad\,\,\,\, \text{otherwise}\end{dcases}\tag{7} Ti,j=offspringsi,j,Mapi,j=0popi,j,otherwise(7)其中, a , b a,b a,b ( 0 , 1 ) (0,1) (0,1)均匀分布的随机数; m i x r a t e mixrate mixrate是交叉率; r a n d rand rand ( 0 , 1 ) (0,1) (0,1)均匀分布的随机数; D D D是问题维数; r a n d i ( D ) randi(D) randi(D) ( 0 , D ) (0,D) (0,D)内的一个随机整数; u = r a n d p e r m ( D ) u = randperm(D) u=randperm(D)是对 D D D重新排序; c e i l ceil ceil是向上取整。BSA通过这种新交叉方式产生种群 T T T。然后对生成的新种群 T T T进行边界越界处理,对超出边界的个体按式(1)重新生成。

(5)选择Ⅱ

比较新种群和初始种群的适应度值,保留适应度值小的个体并且记录当前最优解和最优个体,同时更新当代种群,具体如式(8)所示: p o p i = { T i , f i t n e s s ( T i ) < f i t n e s s ( p o p i ) p o p i , otherwise (8) pop_i=\begin{dcases}T_i,\quad\quad fitness(T_i)<fitness(pop_i)\\[2ex]pop_i,\quad \text{otherwise}\end{dcases}\tag{8} popi=Ti,fitness(Ti)<fitness(popi)popi,otherwise(8)重复上述步骤,直至满足终止条件即可。

2、BSA算法伪代码

BSA算法伪代码如下图所示。
在这里插入图片描述

图1 BSA算法伪代码

二、仿真实验与结果分析

节点覆盖模型采用0/1模型,请参考这里
①设监测区域为 50 m × 50 m 50m\times50m 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次。初始部署、BSA优化覆盖、BSA算法覆盖率进化曲线如下图所示。
在这里插入图片描述在这里插入图片描述在这里插入图片描述初始部署和最终部署的节点位置及对应的覆盖率分别为:

初始位置:
47.124     47.9344
32.5198     30.4192
4.5342     18.0913
46.4069     4.2561
28.2659     28.5879
46.3592     28.6416
47.9616     34.6558
18.8673     29.756
0.11117     39.4307
14.8831     15.3668
21.089     34.6613
10.1279     31.8318
40.5279     33.284
37.8267     42.3
46.4861     4.868
1.553     6.1206
23.6908     46.7875
33.2589     24.9997
39.0657     20.0988
6.0795     42.5905
39.2437     37.0335
34.4225     48.9753
30.9386     44.1549
46.4969     46.5101
5.3762     10.1219
32.1108     17.3128
7.9179     2.2977
34.038     25.5166
12.1176     22.4935
41.0189     27.5623
27.2771     4.0213
15.9385     16.8411
17.207     3.2149
33.3682     14.7687
44.8786     22.0029
初始覆盖率:0.68589
最优位置:
0     46.5608
28.8421     30.8317
5.6644     18.6004
46.5196     3.4667
28.3778     39.7438
45.5776     29.1696
45.2379     35.0487
18.8673     1.6263
14.0855     40.6004
15.4417     48.4898
21.4952     35.5414
10.7442     32.0443
17.5666     32.7407
38.113     5.556
0.35894     5.5321
1.5414     36.889
23.2231     46.3201
33.7721     24.3522
24.8332     19.816
7.5879     42.1201
37.0714     37.3455
34.4225     47.1616
30.4075     17.1938
45.7491     45.384
5.3762     11.0979
35.1515     13.3957
8.7832     2.5393
20.6683     26.1557
12.1176     22.6683
0.84542     27.4787
27.8354     3.9388
21.4406     11.7861
13.3941     11.2898
45.3908     14.7022
43.9823     22.3353
最优覆盖率:0.8589

②设监测区域为 20 m × 20 m 20m\times20m 20m×20m的二维平面,传感器节点个数 N = 24 N=24 N=24,其感知半径是 R s ​ = 2.5 m R_s​=2.5m Rs=2.5m,通信半径 R c ​ = 5 m R_c​=5m Rc=5m,迭代500次。初始部署、BSA优化覆盖、BSA算法覆盖率进化曲线如下图所示。
在这里插入图片描述在这里插入图片描述在这里插入图片描述初始部署和最终部署的节点位置及对应的覆盖率分别为:

初始位置:
10.1231     12.9502
14.3391     12.1233
13.4715     3.0371
1.2104     5.771
8.725     9.3677
2.0251     0.83083
15.9921     16.03
16.9868     18.041
18.2207     16.1717
9.1811     18.1447
3.9475     17.8618
9.2425     2.7359
1.8625     12.5561
18.5876     11.5972
12.7748     16.9615
15.7844     5.2876
9.1319     15.0238
15.042     14.653
0.38377     12.3122
18.9084     12.5346
1.6442     11.6659
15.8214     11.0128
8.1621     6.7259
17.6736     1.2873
初始覆盖率:0.70975
最优位置:
8.9069     8.3014
18.2393     4.7769
14.0097     17.819
2.2386     17.0904
9.445     17.5835
10.4066     12.174
16.6946     0.69316
0.21363     9.8217
13.8475     7.0866
4.457     1.0457
19.5863     10.5938
7.7861     0.86812
0.072549     1.4563
15.2427     10.5352
4.2111     12.322
12.8047     1.0715
4.984     5.2729
12.6191     14.4157
18.4766     19.9354
10.1765     5.3295
5.3901     9.7
1.7606     5.8059
17.8318     15.9513
5.3892     17.7656
最优覆盖率:0.87755

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

初始位置:
17.4147     85.7722
77.2585     45.9465
93.9948     21.9034
93.7464     56.6486
21.2996     84.1832
85.0283     41.7371
94.6524     46.6222
35.0798     72.6364
48.0477     59.5051
74.9584     73.4895
3.9251     5.0775
32.9689     86.4033
83.3193     76.4871
10.8632     67.2208
55.4786     82.9804
17.8693     94.6589
63.2786     46.4459
73.4102     26.4675
45.6915     59.011
2.3292     46.9054
67.5321     26.7515
22.8698     30.6846
35.6113     32.7242
11.9705     30.3345
28.8913     70.4301
52.3793     96.2492
29.054     79.9265
63.5569     10.1929
77.1899     81.7939
65.7461     75.2585
95.1037     75.9692
36.8222     6.2811
78.8527     28.4769
43.9197     17.6966
58.8876     25.9329
初始覆盖率:0.68493
最优位置:
68.362     39.8069
42.4735     40.1471
30.9132     24.0716
93.2503     43.8365
83.3062     54.3827
12.9007     26.1287
92.7266     100
8.444     69.8985
36.2364     7.8423
60.6229     65.3817
75.8586     71.1338
39.758     64.2407
59.1204     13.4932
69.3549     88.4127
8.9913     35.1674
16.7231     7.8267
26.5689     38.3477
89.5034     84.2039
23.995     59.8732
36.0154     94.3748
66.1861     55.3857
15.7094     96.833
98.7229     12.4147
67.7447     7.5694
95.8975     72.1728
9.1492     51.2291
55.319     42.8871
71.2064     21.1396
80.7131     6.5392
9.2481     87.1618
45.4099     23.4949
29.1164     85.5924
88.2643     28.2161
52.035     85.1147
43.1142     74.197
最优覆盖率:0.84982

实验结果表明:BSA算法实现了较高的网络覆盖率,节点分布更加均匀,覆盖盲区和感知范围重叠区面积更少,可以验证BSA算法的有效性。

三、参考文献

[1] Pinar Civicioglu. Backtracking Search Optimization Algorithm for numerical optimization problems[J]. Applied Mathematics and Computation, 2013, 219: 8121-8144.
[2] 魏锋涛, 史云鹏, 石坤. 具有组合变异策略的回溯搜索优化算法[J]. 计算机工程与应用, 2020, 56(9): 41-47.

猜你喜欢

转载自blog.csdn.net/weixin_43821559/article/details/123849595