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

一、理论基础

1、流向算法

流向算法(Flow Direction Algorithm, FDA)模拟了流向排水池中具有最低高度的出口点的水流方向,是一种基于物理的优化算法。
FDA算法在将降雨转化为径流后,确定流域中的流向。该算法首先在搜索空间中创建初始种群。然后,气流流向海拔较低的位置,以达到最佳答案或最低海拔出口点。
该算法基于以下假设执行:

  1. 每个流都有一个位置和一个高度。
  2. 每个流周围都有 β \beta β位置,每个位置都有一个高度或目标函数。
  3. 水流运动速度与坡度直接相关。
  4. 水流速度为 V V V,流向海拔最低的方向。
  5. 流域出口点是具有最优目标函数的水流位置。

该算法的初始参数包括种群数量 α \alpha α、邻域数量 β \beta β和邻域半径 Δ \Delta Δ。关于FDA算法,流的初始位置通过以下关系计算: F l o w _ X ( i ) = l b + r a n d ∗ ( u b − l b ) (1) Flow\_X(i)=lb+rand^*(ub-lb)\tag{1} Flow_X(i)=lb+rand(ublb)(1)其中, F l o w _ X ( i ) Flow\_X(i) Flow_X(i)表示第 i i i个流的位置, l b lb lb u b ub ub分别表示决策变量的下限和上限, r a n d rand rand表示0和1之间均匀分布的随机值。还假设每个流周围都存在 β β β邻域,其位置由以下式子产生: N e i g h b o r _ X ( j ) = F l o w _ X ( i ) + r a n d n ∗ Δ (2) Neighbor\_X(j) = Flow\_X(i)+randn^*\Delta\tag{2} Neighbor_X(j)=Flow_X(i)+randnΔ(2)其中, N e i g h b o r _ X ( j ) Neighbor\_X(j) Neighbor_X(j)表示第 j j j个邻居的位置; r a n d n randn randn表示标准正态分布随机数;小数值 Δ \Delta Δ在小范围内搜索,大数值 Δ \Delta Δ允许在大范围内搜索该参数。事实上,在大范围内搜索会产生更多种类的解,并增加找到接近最优解的概率(全局搜索)。当算法的解接近全局最优解时,在小范围内搜索可获得更高精度的全局最优解(局部搜索),突出了在这两种能力之间建立平衡。其原因是,仅实现全局搜索算子会导致算法无法以所需的精度找到全局最优解。 另一方面,只进行局部搜索会导致算法陷入局部最优。因此,为了在全局搜索和局部搜索之间建立平衡,本研究使用以下公式,将 Δ \Delta Δ从较大值线性减少到较小值。因此, Δ \Delta Δ方向朝向随机位置,以获得更多的多样性。 Δ = ( r a n d ∗ X r a n d − r a n d ∗ F l o w _ X ( i ) ) ∗ ∣ ∣ B e s t _ X − F l o w _ X ( i ) ∣ ∣ ∗ W (3) \Delta=(rand^*Xrand-rand^*Flow\_X(i))^*||Best\_X-Flow\_X(i)||^*W\tag{3} Δ=(randXrandrandFlow_X(i))Best_XFlow_X(i)W(3)其中, r a n d rand rand是均匀分布的随机数, X r a n d Xrand Xrand是由式(1)生成的随机位置, W W W是随机数在0和inf之间的非线性权重。在上式中,第一项表示 F l o w _ X ( i ) Flow\_X(i) Flow_X(i)移动到随机位置( X r a n d Xrand Xrand),对于第二项,通过增加迭代, F l o w _ X ( i ) Flow\_X(i) Flow_X(i)接近 B e s t _ X Best\_X Best_X,并且 B e s t _ X Best\_X Best_X F l o w _ X ( i ) Flow\_X(i) Flow_X(i)之间的欧几里得距离减小为零。因此,局部搜索已停止。第三项中的 W W W计算如下: W = ( ( 1 − i t e r M a x _ I t e r ) ( 2 ∗ r a n d n ) ) ∗ ( r a n d ‾ ∗ i t e r M a x _ I t e r ) (4) W=\left(\left(1-\frac{iter}{Max\_Iter}\right)^{(2^*randn)}\right)*\left(\overline{rand}^*\frac{iter}{Max\_Iter}\right)\tag{4} W=((1Max_Iteriter)(2randn))(randMax_Iteriter)(4)其中, r a n d rand rand是均匀分布的随机向量。图1显示了通过增加迭代得到的 W W W的变化图。很明显, W W W在迭代过程中有很大的变化,能够使得FDA算法跳出局部最优。
在这里插入图片描述

图1 W W W的变化

如前所述,流以 V V V的速度向目标函数最小的邻居移动。另一方面,流向邻近地区的流速与坡度直接相关。因此,以下关系式用于确定流速矢量: V = r a n d n ∗ S 0 (5) V=randn^*S_0\tag{5} V=randnS0(5)其中, S 0 S_0 S0表示相邻位置和流的当前位置之间的斜率向量,随机数 r a n d n randn randn生成各种解决方案并增加全局搜索。第 i i i个流相对于其第 j j j个邻居流的斜率向量由以下关系式确定: S 0 ( i , j , d ) = F l o w _ f i t n e s s ( i ) − N e i g h b o r _ f i t n e s s ( j ) ∣ ∣ F l o w _ x ( i , d ) − N e i g h b o r _ x ( j , d ) ∣ ∣ (6) S_0(i,j,d)=\frac{Flow\_fitness(i)-Neighbor\_fitness(j)}{||Flow\_x(i,d)-Neighbor\_x(j,d)||}\tag{6} S0(i,j,d)=Flow_x(i,d)Neighbor_x(j,d)Flow_fitness(i)Neighbor_fitness(j)(6)其中, F l o w _ f i t n e s s ( i ) Flow\_fitness(i) Flow_fitness(i) N e i g h b o r _ f i t n e s s ( j ) Neighbor\_fitness(j) Neighbor_fitness(j)分别表示流 i i i和邻居 j j j的目标值, d d d参数表示问题的维度。以下式子用于确定流的新位置: F l o w _ n e w X ( i ) = f l o w _ X ( i ) + V ∗ F l o w _ X ( i ) − N e i g h b o r _ X ( j ) ∣ ∣ F l o w _ x ( i ) − N e i g h b o r _ x ( j ) ∣ ∣ (7) Flow\_newX(i)=flow\_X(i)+V^*\frac{Flow\_X(i)-Neighbor\_X(j)}{||Flow\_x(i)-Neighbor\_x(j)||}\tag{7} Flow_newX(i)=flow_X(i)+VFlow_x(i)Neighbor_x(j)Flow_X(i)Neighbor_X(j)(7)其中 F l o w _ n e w X ( i ) Flow\_newX(i) Flow_newX(i)表示流 i i i的新位置。
这里值得注意的是,任何邻居的目标函数都可能不小于流的目标函数,这类似于确定流向的水槽填充过程。为了模拟这种状态,FDA方法随机选择另一个流,如果该水流的目标函数小于当前水流的目标函数,则该水流将沿同一方向移动,否则,该水流将沿主导坡度方向移动。下式说明了如何在这些条件下模拟流向: F l o w _ n e w X ( i ) = { F l o w _ X ( i ) + r a n d n ‾ ∗ ( F l o w _ X ( r ) − F l o w _ X ( i ) )    F l o w _ f i t n e s s ( r ) < F l o w _ f i t n e s s ( i ) F l o w _ X ( i ) + 2 r a n d n ∗ ( B e s t _ X ( r ) − F l o w _ X ( i ) ) F l o w _ f i t n e s s ( r ) < F l o w _ f i t n e s s ( i ) (8) Flow\_newX(i)=\begin{dcases}Flow\_X(i)+\overline{randn}^*(Flow\_X(r)-Flow\_X(i))\quad\,\, Flow\_fitness(r)<Flow\_fitness(i)\\[2ex]Flow\_X(i)+2randn^*(Best\_X(r)-Flow\_X(i))\quad Flow\_fitness(r)<Flow\_fitness(i)\end{dcases}\tag{8} Flow_newX(i)=Flow_X(i)+randn(Flow_X(r)Flow_X(i))Flow_fitness(r)<Flow_fitness(i)Flow_X(i)+2randn(Best_X(r)Flow_X(i))Flow_fitness(r)<Flow_fitness(i)(8)其中 r a n d n ‾ \overline{randn} randn为一个随机整数。

2、FDA算法流程图

FDA算法流程图如图2所示。
在这里插入图片描述

图2 FDA算法流程图

二、WSN覆盖优化仿真

1、二维覆盖优化

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

初始位置:
45.135     44.6587     
0.63621     24.149     
40.4713     44.5851     
15.5711     29.254     
15.1929     42.0229     
43.3405     14.3418     
0.57793     32.0344     
21.8746     3.0609     
31.8399     12.9757     
45.9775     5.9047     
9.1862     17.6141     
18.5531     44.7669     
25.1904     41.8104     
45.8507     23.686     
37.6895     16.5394     
13.777     37.4331     
26.0774     33.5378     
25.5093     16.0777     
4.2206     3.5401     
4.1302     34.716     
28.8115     13.0075     
40.7766     23.9536     
32.7322     36.8545     
42.2413     48.0119     
35.4823     5.8687     
6.5766     7.1371     
46.8889     39.247     
33.9846     25.3123     
44.7094     31.8397     
41.1027     0.45447     
15.9888     33.3547     
5.5563     25.6614     
41.7533     37.7452     
30.3822     15.9267     
10.4704     1.4335     
初始覆盖率:0.70396
最优位置:
45.4192     43.2825     
2.3978     15.7442     
36.1022     45.2353     
16.2966     27.464     
6.469     45.9584     
45.812     14.4383     
0.7297     31.0661     
20.1324     3.6469     
20.3359     14.687     
46.6155     5.6113     
11.6273     19.8117     
16.8389     46.8174     
26.4997     45.8229     
48.026     23.0483     
38.0916     12.4712     
14.6145     34.2604     
24.3655     32.5757     
24.6833     22.5662     
4.2546     4.6644     
5.6702     37.4025     
26.3122     9.5319     
41.33     23.2943     
31.8998     37.3818     
43.7465     48.95     
33.3153     4.3336     
11.6172     12.7165     
47.5374     37.3999     
33.4266     24.764     
46.9412     30.6388     
40.7032     1.2179     
16.0863     39.2823     
7.8795     27.5396     
40.243     34.4042     
31.7287     17.441     
10.6304     3.3714     
最优覆盖率:0.8812

实验结果表明,FDA算法能够提升二维无线传感器网络中节点的覆盖率。

2、三维覆盖优化

节点覆盖模型请参考这里。设监测区域为 50 m × 50 m × 50 m 50m×50m×50m 50m×50m×50m的三维空间,传感器节点个数 N = 30 N=30 N=30,其感知半径是 R s = 10 m R_s=10m Rs=10m,通信半径 R c = 20 m R_c=20m Rc=20m,迭代500次。初始部署、FDA优化覆盖、FDA算法覆盖率进化曲线如下图所示:
在这里插入图片描述在这里插入图片描述在这里插入图片描述初始部署和最终部署的节点位置及对应的覆盖率分别为:

初始位置:
38.9158     31.0918     49.6115
4.2869     5.8615     25.407
21.2853     12.3805     21.9046
22.9254     4.0466     29.6936
40.6879     30.8166     17.0857
9.1902     33.0474     24.1768
1.0055     39.7558     36.9518
30.0795     45.6335     13.0089
35.2937     20.2642     42.0577
8.4326     18.1383     48.4396
43.1993     28.107     34.9074
16.4891     42.7117     34.5155
47.1738     40.9736     19.3998
0.15542     44.1199     14.6595
2.0276     34.8896     4.6404
32.7953     14.5777     13.8357
36.1545     37.1754     45.0583
44.8993     0.86676     11.7305
6.0495     12.2381     36.9404
17.191     27.4408     3.4439
42.1436     26.5688     16.2104
28.1508     33.6091     41.0181
24.3276     13.4735     25.028
35.2693     8.2411     25.6697
47.3464     16.926     30.9007
9.7998     0.10682     6.404
17.9226     9.0317     5.3287
32.9734     46.0808     12.8873
30.8015     36.0761     20.635
11.7668     21.9844     10.022
初始覆盖率:0.58725
最优位置:
38.4152     20.0493     43.4511
9.6294     11.0045     22.5949
25.66     5.6433     21.7455
21.0363     6.4948     40.6119
43.2533     34.626     13.1454
9.288     27.6972     25.4243
6.2778     34.5425     41.9706
24.362     41.8288     6.6189
38.3527     5.7967     41.4726
10.2898     18.2278     42.5781
46.6322     31.2011     42.0262
19.1003     43.4868     35.3416
44.5226     42.7598     27.8916
9.2794     42.759     20.3554
5.3366     38.3235     7.6704
31.4148     19.6606     16.7247
37.7471     43.1121     42.6866
41.66     6.8736     8.4817
3.4434     6.4902     35.8814
21.3023     27.8065     7.6402
39.931     22.6251     4.4309
23.4398     30.307     41.9153
25.4385     19.158     32.0482
42.5623     8.1126     25.8119
43.6407     24.1965     27.6729
5.7529     5.6839     8.4993
22.8784     9.4841     6.1243
30.4813     45.789     20.7953
27.6432     33.1874     24.1186
6.9987     20.5535     8.2148
最优覆盖率:0.78214

实验结果表明,FDA算法能够提升三维无线传感器网络中节点的覆盖率。

三、参考文献

[1] Hojat Karami, Mahdi Valikhan Anaraki, Saeed Farzin, et al. Flow Direction Algorithm (FDA): A Novel Optimization Approach for Solving Optimization Problems[J]. Computers & Industrial Engineering, 2021, 156: 107224.

猜你喜欢

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