文章目录

  • 一、理论基础
    • 1、回溯搜索优化算法
      • (1)种群初始化
      • (2)选择Ⅰ
      • (3)变异
      • (4)交叉
      • (5)选择Ⅱ
    • 2、BSA算法伪代码
  • 二、仿真实验与结果分析
  • 三、参考文献

一、理论基础

1、回溯搜索优化算法

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

(1)种群初始化

BSA通过上界和下界随机产生poppoppop和historical_pophistorical\_ pophistorical_pop,如式(1)和式(2)所示。popi,j=rand×(upj−lowj)+lowj(1)pop_{i,j}=rand\times(up_j-low_j)+low_j\tag{1}popi,j​=rand×(upj​−lowj​)+lowj​(1)historical_popi,j=rand×(upj−lowj)+lowj(2)historical\_ pop_{i,j}=rand\times(up_j-low_j)+low_j\tag{2}historical_popi,j​=rand×(upj​−lowj​)+lowj​(2)其中,popi,jpop_{i,j}popi,j​为初始种群,historical_popi,jhistorical\_ pop_{i,j}historical_popi,j​为历史种群,i=1,2,⋯,Ni=1,2,\cdots,Ni=1,2,⋯,N,j=1,2,⋯,Dj=1,2,\cdots,Dj=1,2,⋯,D,NNN为种群数量,DDD为问题维数,lowjlow_jlowj​和upjup_jupj​分别是变量的下界和上界。

(2)选择Ⅰ

BSA在每次迭代之前通过式(3)产生新的历史种群historical_pophistorical\_ pophistorical_pop。ifa<bthenhistorical_pop=pop(3)\text{if}\,\,a<b\,\,\text{then}\,\,historical\_ pop=pop\tag{3}ifa<bthenhistorical_pop=pop(3)其中,a,ba,ba,b是(0,1)(0,1)(0,1)均匀分布的随机数,当生成historical_pophistorical\_ pophistorical_pop后,需对historical_pophistorical\_ pophistorical_pop中的个体利用式(4)进行随机排序。historical_pop=permuting(historical_pop)(4)historical\_ pop=permuting(historical\_ pop)\tag{4}historical_pop=permuting(historical_pop)(4)其中,permutingpermutingpermuting是随机排序函数。

(3)变异

为了生成新的个体,采用式(5)进行变异操作:offsprings=pop+F×(historical_pop−pop)(5)offsprings=pop+F\times(historical\_ pop-pop)\tag{5}offsprings=pop+F×(historical_pop−pop)(5)其中,FFF为变异尺度系数,F=3×randnF=3\times randnF=3×randn,randnrandnrandn为标准正态分布随机数。

(4)交叉

BSA的交叉策略是一种基于两种交叉方式等概率调用的联合交叉策略。首先,生成一个初始值为1、大小为N×DN\times DN×D的矩阵;然后,通过式(6)更新矩阵MapMapMap;最后,通过矩阵MapMapMap来确定种群交叉的位置,具体如式(7)所示:{Mapi,u[1:ceil(mixrate×rand×D)]=0,a<bMapi,randi(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)Ti,j={offspringsi,j,Mapi,j=0popi,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,ba,ba,b是(0,1)(0,1)(0,1)均匀分布的随机数;mixratemixratemixrate是交叉率;randrandrand是(0,1)(0,1)(0,1)均匀分布的随机数;DDD是问题维数;randi(D)randi(D)randi(D)是(0,D)(0,D)(0,D)内的一个随机整数;u=randperm(D)u = randperm(D)u=randperm(D)是对DDD重新排序;ceilceilceil是向上取整。BSA通过这种新交叉方式产生种群TTT。然后对生成的新种群TTT进行边界越界处理,对超出边界的个体按式(1)重新生成。

(5)选择Ⅱ

比较新种群和初始种群的适应度值,保留适应度值小的个体并且记录当前最优解和最优个体,同时更新当代种群,具体如式(8)所示:popi={Ti,fitness(Ti)<fitness(popi)popi,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模型,请参考这里。
①设监测区域为50m×50m50m\times50m50m×50m的二维平面,传感器节点个数N=35N=35N=35,其感知半径是Rs​=5mR_s​=5mRs​​=5m,通信半径Rc​=10mR_c​=10mRc​​=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

②设监测区域为20m×20m20m\times20m20m×20m的二维平面,传感器节点个数N=24N=24N=24,其感知半径是Rs​=2.5mR_s​=2.5mRs​​=2.5m,通信半径Rc​=5mR_c​=5mRc​​=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

③设监测区域为100m×100m100m\times100m100m×100m的二维平面,传感器节点个数N=35N=35N=35,其感知半径是Rs​=10mR_s​=10mRs​​=10m,通信半径Rc​=20mR_c​=20mRc​​=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.

基于回溯搜索优化算法的WSN覆盖优化相关推荐

  1. 基于改进鲸鱼优化算法的WSN覆盖优化

    文章目录 一.理论基础 1.WSN节点覆盖模型 2.基本鲸鱼算法 3.改进鲸鱼优化算法 (1)量子位Bloch球面初始化 (2)改进搜索猎物过程 (3)莱维飞行扰动策略 二.算法流程 三.仿真实验与分 ...

  2. 基于流向算法的WSN覆盖优化

    文章目录 一.理论基础 1.流向算法 2.FDA算法流程图 二.WSN覆盖优化仿真 1.二维覆盖优化 2.三维覆盖优化 三.参考文献 一.理论基础 1.流向算法 流向算法(Flow Direction ...

  3. 【布局优化】基于遗传算法的的无线传感器网(WSN)覆盖优化Matlab源码

    一.WSN模型 1.1 动机 近年来,随着对等网络.云计算和网格计算等分布式环境的发展,无线传感器网络(WSN)得到了广泛的应用.无线传感器网络(WSN)是一种新兴的计算和网络模式,它可以被定义为一个 ...

  4. 【WSN定位】基于matlab磷虾群算法求解WSN定位优化问题【含Matlab源码 448期】

    ⛄一. 磷虾群算法简介 通过研究南极磷虾觅食和生活习性的仿真模拟实验, 2012年Gandomi和Alavi提出了一种处理复杂优化问题的磷虾群算法.KH算法仍然属于粒子智能算法, 它采用实数编码随机产 ...

  5. 【优化调度】基于matlab帝国企鹅算法求解航空调度优化问题【含Matlab源码 YXS001期】

    一.帝企鹅算法简介 目前,关于帝企鹅算法在国内外研究较少,在中对该算法进行了分析,并且与常见的粒子群算法.萤火虫算法进行了对比分析. 帝企鹅从事各种活动,如狩猎.群体觅食,是群居性动物.每当恶劣的气候 ...

  6. 【布局优化】基于鲸鱼算法实现3D无线传感器网(WSN)覆盖优化 Matlab源码

    ​ 一.WSN模型 ​ 二.鲸鱼算法 2.1. 鲸鱼优化算法的生物机制 ​ 图1 座头鲸的泡泡捕食示意图 据研究,鲸鱼大脑的某些区域有与人类相似的梭形细胞,而这些细胞负责人类的判断.情感和社会行为.鲸 ...

  7. 基于社交网络搜索算法的WSN覆盖优化和工程优化

    文章目录 一.理论基础 1.社交网络搜索算法 1.1 情绪1:模仿 1.2 情绪2:对话 1.3 情绪3:争论 1.4 情绪4:创新 2.SNS算法流程图 二.仿真实验与结果分析 1.WSN覆盖优化 ...

  8. 改进灰狼优化算法在WSN节点部署中的应用

    文章目录 一.理论基础 1.节点与覆盖模型 2.灰狼优化算法基本原理 3.改进灰狼优化算法 (1)非线性收敛因子 (2)δ\deltaδ狼的融合变异 二.节点部署优化算法 1.算法步骤 2.算法流程图 ...

  9. 复现一篇分布式装配置换流水车间调度问题的代码——基于回溯搜索的超启发式算法

    复现一篇分布式装配置换流水车间调度问题的代码--基于回溯搜索的超启发式算法 摘要 算法框架 说明 代码 测试类 算法主体 Assignment Heuristics Individual Method ...

最新文章

  1. java调用、执行groovy代码
  2. 优化Java序列化– Java,XML,JSON,Kryo,POF
  3. linux操作系统之线程同步及互斥量
  4. nginx 电子书_13本免费的电子书,拿走,不谢
  5. linux网络日志文件,系统日志文件 进程配置文件 进程信息文件 网络连接文件
  6. Mysql (21)---连接的使用
  7. vim打造成C++的IDE
  8. 【linux之bash】
  9. dcp9020cdn硒鼓!错误_显示硒鼓错误的解决办法
  10. 英伟达各版本CUDA地址以及与驱动对应关系
  11. 存储程序式计算机特征,冯.诺依曼机模型是以运算器为中心的存储程序式的计算机模型,它由五大部分构成,即运算器、控制器、存储器、输入设备和输出设备...
  12. 计算机英语形成性考核册,开放英语1形成性考核册答案(中央广播电视大学外语部)doc...
  13. selenium中文文档_基于selenium的大麦网演唱会抢票程序
  14. 网络营销实战密码——策略、技巧、案例(修订版)
  15. 计算机课前导学结题报告,《导学──自悟》课题研究的结题报告
  16. css来回摆动,css3 animation(左右摆动) (放大缩小)
  17. 百度云下载文件方法:PC 和 群晖 Docker
  18. ORA-15018: diskgroup cannot be created
  19. L1-020 帅到没朋友(两种方法)
  20. 范德堡大学排名计算机,【usnews世界大学排名2019】2019范德堡大学排名(USNews排名)...

热门文章

  1. Element tree树组件 鼠标双击事件
  2. ajax调用fastreport,使用Ajax更新ASP.Net MVC项目中的报表对象
  3. Discuz!NT 代码阅读笔记(8)--DNT的几个分页存储过程解析
  4. JavaScript获取元素
  5. Spring Cloud Gateway(二):Spring Cloud Gateway整合Eureka应用
  6. odoo tree 颜色设置decoration
  7. 屏蔽第三方网站中的百度广告和百度推荐
  8. 支撑电子政务平台的CMS内容管理系统
  9. python的上下文管理用哪个关键字_正确理解python中的关键字“with”与上下文管理器...
  10. 发那科2021参数_FANUC常用参数说明