文章目录
- 一、理论基础
- 1、节点覆盖模型
- 2、缎蓝园丁鸟优化算法
- 3、SBO算法伪代码
- 二、仿真实验与分析
- 三、参考文献
一、理论基础
1、节点覆盖模型
本文采取0/1覆盖模型,具体描述请参考这里。
2、缎蓝园丁鸟优化算法
在缎蓝园丁鸟优化(Satin Bowerbird Optimizer, SBO)算法中,成年雄性园丁鸟在交配季节开始在自己的区域上用不同的材料建造凉亭。它们利用的各种各样的材料(如鲜花、水果)以及戏剧性的姿态,都是吸引雌性园丁鸟的变量。成年雌性园丁鸟由于凉亭的美丽和戏剧性的姿态,被吸引到凉亭。值得注意的是,雄鸟利用它们的自然本能和对其他雄鸟的模仿来筑窝。根据园丁鸟生活的着色原则,将SBO算法分为以下5个阶段:
(1)随机生成初始种群。在可行域内随机生成一个包含个求偶亭的初始种群,每个求偶亭的位置定义为维,当前进化代数为;
(2)计算每个个体的适应度值,然后计算出此适应度值在群体适应度值总和中所占的比例,表示该个体在选择过程中被选中的概率。求偶亭被选中的概率通过式(1)和式(2)计算:其中,代表第个求偶亭的适应度值,通过式(2)计算,是第个求偶亭的目标函数,每次迭代保证目标函数的函数值不断减小。
(3)种群位置更新。雄性园丁鸟根据历史经验并利用信息共享机制,不断调整求偶亭的位置,其位置更新公式如式(3)所示:其中,表示第代第个个体的第维分量;位置为当前搜索到最优位置的第维分量,通过轮盘赌选择机制确定;为整个种群当前最优位置的第维分量;是步长因子,通过式(4)计算,可有效避免算法跳过函数峰值。其中,为步长的最大阈值;是目标求偶亭的被选中概率,取值为0~1。当目标位置被选中概率越大时,步长越小;当目标位置被选中概率为0时,步长最大为;当目标位置的被选中概率为1时,步长最小,为。
(4)个体变异。在大多数情况下,强壮的雄鸟会从其它雄鸟那里偷材料,甚至破坏它们的求偶亭,因此在算法循环的最后,以一定的概率随机变异,在变异过程中,服从正态分布,如式(5)所示:在式(6)中,标准差σ的计算公式如式(7)所示:其中,是缩放比例因子,和分别是变量的上限和下限。
(5)组合旧种群和从变异中获得的种群。在每次循环的最后,对旧种群和从变异获得的群体进行组合,形成组合种群,并对组合种群中的所有个体的目标函数值从小到大进行排序,保留函数值最小的个体,其余个体被淘汰掉。此时若满足终止条件,则输出最佳位置及其对应的最优值;反之,则继续进行迭代。
3、SBO算法伪代码
SBO算法的伪代码如图1所示。
图1 SBO算法伪代码
二、仿真实验与分析
①设监测区域为的二维平面,传感器节点个数,其感知半径是,通信半径,迭代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
②设监测区域为的二维平面,传感器节点个数,其感知半径是,通信半径,迭代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
③设监测区域为的二维平面,传感器节点个数,其感知半径是,通信半径,迭代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算法的有效性。