基于缎蓝园丁鸟优化算法的无线传感器网络覆盖优化

一、理论基础

1、节点覆盖模型

本文采取0/1覆盖模型,具体描述请参考这里

2、缎蓝园丁鸟优化算法

在缎蓝园丁鸟优化(Satin Bowerbird Optimizer, SBO)算法中,成年雄性园丁鸟在交配季节开始在自己的区域上用不同的材料建造凉亭。它们利用的各种各样的材料(如鲜花、水果)以及戏剧性的姿态,都是吸引雌性园丁鸟的变量。成年雌性园丁鸟由于凉亭的美丽和戏剧性的姿态,被吸引到凉亭。值得注意的是,雄鸟利用它们的自然本能和对其他雄鸟的模仿来筑窝。根据园丁鸟生活的着色原则,将SBO算法分为以下5个阶段:
(1)随机生成初始种群。在可行域内随机生成一个包含 N N N个求偶亭的初始种群,每个求偶亭的位置定义为 D D D维,当前进化代数为 q q q
(2)计算每个个体的适应度值,然后计算出此适应度值在群体适应度值总和中所占的比例,表示该个体在选择过程中被选中的概率。求偶亭被选中的概率通过式(1)和式(2)计算: P i = f i t i ∑ n = 1 N f i t n (1) P_i=\frac{fit_i}{\displaystyle\sum_{n=1}^Nfit_n}\tag{1} Pi=n=1Nfitnfiti(1) f i t i = { 1 1 + f ( x i ) ,    f ( x i ) ≥ 0 1 + ∣ f ( x i ) ∣ , f ( x i ) < 0 (2) fit_i=\begin{dcases}\frac{1}{1+f(\boldsymbol x_i)},\quad\,\, f(\boldsymbol x_i)≥0\\1+|f(\boldsymbol x_i)|,\quad f(\boldsymbol x_i)<0\end{dcases}\tag{2} fiti=1+f(xi)1,f(xi)01+f(xi),f(xi)<0(2)其中, f i t i fit_i fiti代表第 i i i个求偶亭的适应度值,通过式(2)计算, f ( x i ) f(\boldsymbol x_i) f(xi)是第 i i i个求偶亭的目标函数,每次迭代保证目标函数的函数值不断减小。
(3)种群位置更新。雄性园丁鸟根据历史经验并利用信息共享机制,不断调整求偶亭的位置,其位置更新公式如式(3)所示: x i k q + 1 = x i k q + λ k ( ( x j k + x b e s t , k 2 ) − x i k q ) (3) x_{ik}^{q+1}=x_{ik}^q+\lambda_k\left(\left(\frac{x_{jk}+x_{best,k}}{2}\right)-x_{ik}^q\right)\tag{3} xikq+1=xikq+λk((2xjk+xbest,k)xikq)(3)其中, x i k q x_{ik}^q xikq表示第 q q q代第 i i i个个体的第 k k k维分量;位置 x j k x_{jk} xjk为当前搜索到最优位置的第 k k k维分量, x j \boldsymbol x_j xj通过轮盘赌选择机制确定; x b e s t , k x_{best,k} xbest,k为整个种群当前最优位置的第 k k k维分量; λ k \lambda_k λk是步长因子,通过式(4)计算,可有效避免算法跳过函数峰值。 λ k = α 1 + P j (4) \lambda_k=\frac{\alpha}{1+P_j}\tag{4} λk=1+Pjα(4)其中, α \alpha α为步长的最大阈值; P j P_j Pj是目标求偶亭的被选中概率,取值为0~1。当目标位置被选中概率越大时,步长越小;当目标位置被选中概率为0时,步长最大为 α \alpha α;当目标位置的被选中概率为1时,步长最小,为 α / 2 \alpha/2 α/2
(4)个体变异。在大多数情况下,强壮的雄鸟会从其它雄鸟那里偷材料,甚至破坏它们的求偶亭,因此在算法循环的最后,以一定的概率随机变异,在变异过程中, x i k x_{ik} xik服从正态分布,如式(5)所示: x i k q + 1 ∼ N ( x i k q , σ 2 ) (5) x_{ik}^{q+1}\sim N(x_{ik}^q,\sigma^2)\tag{5} xikq+1N(xikq,σ2)(5) N ( x i k q , σ 2 ) = x i k q + ( σ ⋅ N ( 0 , 1 ) ) (6) N(x_{ik}^q,\sigma^2)=x_{ik}^q+(\sigma\cdot N(0,1))\tag{6} N(xikq,σ2)=xikq+(σN(0,1))(6)在式(6)中,标准差σ的计算公式如式(7)所示: σ = z × ( v a r max ⁡ − v a min ⁡ ) (7) \sigma=z\times(var_{\max}-va_{\min})\tag{7} σ=z×(varmaxvamin)(7)其中, z z z是缩放比例因子, v a r max ⁡ var_{\max} varmax v a r min ⁡ var_{\min} varmin分别是变量 x i k x_{ik} xik的上限和下限。
(5)组合旧种群和从变异中获得的种群。在每次循环的最后,对旧种群和从变异获得的群体进行组合,形成组合种群,并对组合种群中的所有个体的目标函数值从小到大进行排序,保留函数值最小的个体,其余个体被淘汰掉。此时若满足终止条件,则输出最佳位置及其对应的最优值;反之,则继续进行迭代。

3、SBO算法伪代码

SBO算法的伪代码如图1所示。
在这里插入图片描述

图1 SBO算法伪代码

二、仿真实验与分析

①设监测区域为 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次。初始部署、SBO优化覆盖、SBO算法覆盖率进化曲线如下图所示。
在这里插入图片描述在这里插入图片描述在这里插入图片描述初始部署和最终部署的节点位置及对应的覆盖率分别为:

初始位置:
43.6047     1.7053
16.942     46.2413
4.3591     18.0524
13.542     48.5323
39.186     28.4905
19.6817     29.0247
21.4398     27.7022
33.2896     35.1117
14.4599     22.9348
28.6174     47.7174
4.5189     39.8062
10.2765     15.5469
4.1278     16.4538
34.8951     43.221
9.5653     34.2328
39.3243     17.3845
10.0364     20.7461
3.3168     47.1438
37.4473     32.777
40.6287     24.2472
15.6379     9.0552
12.4589     26.9682
22.8682     17.4264
45.8417     31.1358
34.6843     25.2175
22.7822     38.8152
49.7569     22.4299
30.81     7.6864
21.8252     8.7425
21.1382     48.0489
14.3836     17.2808
40.9794     32.8869
44.6629     29.8403
49.7486     16.571
6.1031     3.308
初始覆盖率:0.68166
最优位置:
43.5087     4.5053
21.573     45.2445
3.033     26.4569
13.541     48.1508
37.2061     19.2282
20.4926     35.6985
22.4989     24.5836
28.6689     38.0284
21.4641     18.5049
30.4359     47.2703
3.4742     36.7372
11.5211     13.9017
3.4049     13.2691
37.7861     41.776
10.5292     31.4217
38.01     12.6155
14.1907     23.3264
4.3954     45.8622
37.1166     32.8866
28.577     30.7319
14.3514     4.367
6.3803     21.5355
28.6751     13.2957
45.9452     32.4922
30.4894     22.7518
18.7303     31.0554
46.7392     23.2966
33.9322     4.528
24.8354     4.1992
12.5794     40.2742
19.5518     11.327
39.1946     25.3212
45.876     43.4341
46.4262     13.9518
4.5458     4.0432
最优覆盖率:0.91734

②设监测区域为 20 m × 20 m 20 m × 20 m 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次。初始部署、SBO优化覆盖、SBO算法覆盖率进化曲线如下图所示。
在这里插入图片描述在这里插入图片描述在这里插入图片描述初始部署和最终部署的节点位置及对应的覆盖率分别为:

初始位置:
3.7922     4.2436
11.6983     15.836
8.0923     0.76536
1.5532     10.3023
19.8732     3.6982
9.8772     8.8074
5.6192     19.8568
2.7355     14.4544
9.8606     12.1579
18.0267     10.6955
0.57535     7.4873
18.1931     0.86417
2.3294     2.7314
12.9982     14.7553
3.3588     0.87279
4.4568     14.4115
1.7448     16.2652
2.8138     19.7516
11.6593     1.7054
16.3378     10.5399
17.9471     17.1654
8.9564     14.8222
7.6575     4.4899
7.4945     18.287
初始覆盖率:0.72562
最优位置:
5.1286     5.9857
13.6519     14.3072
7.4907     1.9584
2.3245     10.4844
18.6866     4.9895
12.7878     8.8389
8.319     18.5718
5.0147     13.7695
9.803     11.4039
17.9145     11.0616
1.2135     7.9156
17.0142     1.1772
1.2117     2.8884
7.0969     10.2572
3.7016     1.2205
4.9636     15.1893
1.2207     15.0022
3.1521     18.9417
12.0454     2.2209
15.0027     6.1386
18.041     17.141
9.4301     14.1675
9.6468     5.6768
12.8675     18.3609
最优覆盖率:0.9161

③设监测区域为 100 m × 100 m 100 m × 100 m 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次。初始部署、SBO优化覆盖、SBO算法覆盖率进化曲线如下图所示。
在这里插入图片描述在这里插入图片描述在这里插入图片描述初始部署和最终部署的节点位置及对应的覆盖率分别为:

初始位置:
45.2367     63.2568
43.6     43.7073
33.9465     22.1239
24.4084     35.1405
87.2664     36.1606
72.5286     64.3123
36.4075     47.9942
53.9689     0.85084
48.1455     44.8547
92.2973     99.2696
36.2205     96.1322
77.0572     97.6579
3.5962     20.4577
56.7964     53.4914
87.1688     18.6535
9.5902     68.319
29.4118     89.4286
91.6453     9.1584
11.8733     45.5853
53.7465     32.195
78.8505     79.9295
97.8704     61.4277
65.9826     15.5921
29.5049     69.6352
14.6672     61.0423
45.8738     93.8049
43.8556     67.7826
71.087     68.6292
12.9709     18.712
87.8596     92.7768
69.1037     49.2277
15.7969     95.8469
2.5843     97.1789
43.2358     25.1276
48.1715     86.9619
初始覆盖率:0.71199
最优位置:
64.3448     42.9707
56.6429     26.9682
37.394     21.7617
20.618     32.0071
91.2947     23.903
78.3551     60.5837
40.1077     34.1615
64.9338     7.0272
47.6084     45.282
89.9498     93.3493
43.3962     94.7842
63.5296     92.1556
8.1925     19.3395
77.3466     38.4032
92.1923     41.7654
37.6258     65.2973
19.0766     57.4538
85.5007     7.5039
8.2598     46.4464
48.1383     62.6044
77.2785     79.5535
92.9929     58.008
71.8481     21.4427
19.914     74.5323
4.4216     66.7594
48.495     80.6563
29.4792     47.8304
63.6032     72.4913
23.5215     9.1935
92.9784     75.9188
61.5724     55.7191
23.3886     95.0911
7.533     88.7271
47.218     8.7554
30.1301     81.339
最优覆盖率:0.9054

实验结果表明,SBO算法实现了较高的网络覆盖率,节点分布更加均匀,可以验证SBO算法的有效性。

三、参考文献

[1] Moosavi S, Bardsiri V K. Satin bowerbird optimizer: A new optimization algorithm to optimize ANFIS for software development effort estimation[J]. Engineering Applications of Artificial Intelligence, 2017, 60: 1-15.
[2] 王依柔, 张达敏, 樊英. 非均匀变异的互利自适应缎蓝园丁鸟优化算法[J]. 计算机工程与科学, 2020, 42(12): 2233-2241.

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

心️升明月

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

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

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

打赏作者

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

抵扣说明:

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

余额充值