Page 308 - 《软件学报》2021年第8期
P. 308

2590                                   Journal of Software  软件学报 Vol.32, No.8,  August 2021

                                                        D ∈ ∑  j D ∑  λ i j aw i
                                                                     i
                                                  () =
                                                UD            i φ ∈  R (D j  )  ,
                                                           k ∑  a w
                                                              i φ ∈R  i  i
                            ⎧  |{ |ll ∈  D ∧  φ ∈  R  }| ⎫
                 其中, λ =  min ⎨     j  i  l  ,1 . ⎬
                      j
                      i
                            ⎩       k        ⎭
                    综上,我们就解决了在无源传感器网络当中的 k-覆盖问题.
                 5    实验结果
                 5.1   朴素算法
                    在介绍实验结果之前,我们首先提出了如下基于贪心策略的朴素算法(naïve algorithm),用来与 TPA 算法进
                 行对比.
                    算法 2.  朴素算法.
                                   1
                    Input:  VS R  , ,  ,,{ , ,...,rr r c 2  r c L },T  .
                                s
                                   c
                    Output: C.
                    1   C=∅;
                    2   for each t∈T do
                    3      C t =∅;
                    4      while C t ≠V||∃i∈V−C t ,B i (t)≥B f  do
                    5         for each i∈V−C t  && B i (t)≥B f  do
                                    1
                              (, )t =
                    6            ri  r ;
                                    c
                              c
                    7            if C t ∪S∪{i}的导出图是连通的  then
                    8               u i =Q(C t ∪{i})−Q(C t );
                    9            else
                    10              u i =−1;
                    11           i=argmax{u i |i∈V−C t ∧B i (t)≥B f };
                    12           C t =C t ∪{i};
                    13     C=C∪C t ;
                    14     更新每个无源节点的能量;
                    15 return C;
                    该算法在任意时间槽 t 内构造局部覆盖C t .在任意时间槽 t,该算法将局部覆盖C t 初始化为空集(Line 3),并执
                 行以下步骤.
                    Step 1(Line 4~Line 12):当C t ≠V,或存在 V−C t 中的节点 i,且 B i (t)≥B f 时,重复以下子步骤.
                         (1)  对于任意 i∈V−C t 且 B i (t)≥B f ,设置节点 i 在时间槽 t 的通信半径为 (, )ri t =  r .这一步的目的是尽
                                                                                        1
                                                                                       c
                                                                                 c
                             量减少无源节点的能量消耗;
                         (2)  对于满足步骤(1)中条件的无源节点 i,如果集合C t ∪{i}∪S 的导出图是连通图,则说明将无源节点
                             i 加入局部覆盖C t 后,覆盖的连通性可以得到满足,这样,为无源节点 i 分配权值:u i =Q(C t ∪{i})−
                             Q(C t );否则,为无源节点 i 分配权值 u i =−1;
                         (3)  对于所有 i∈V−C t 且 B i (t)≥B f ,选取权值最大的无源节点,并加入局部覆盖C t 当中.
                    Step 2(Line 13):将 Step 1 中所得到的局部覆盖C t 加入全局覆盖C中.
                    Step 3(Line 14):根据基本能量分布更新无源节点的能量,即:对于 i∈C t ,B i (t+1)=min{B i (t)+μ i −Δ 1 ,B};对于 i≠C t ,
                 B i (t+1)=min{B i (t)+μ i ,B}.在更新无源节点的能量之后,进行下一时间槽的局部覆盖的构造.
   303   304   305   306   307   308   309   310   311   312   313