1.二次部署的WSN栅栏强化方法,包括如下步骤:步骤1,根据部署区域的环境和要求部署静态传感器节点,然后采用栅栏构建算法构建栅栏,然后对初始栅栏分析;
步骤11,利用能耗感知模型;
步骤111,传感器节点的感知半径与节点自身存储的能量的关系模型如式(1)所示:式(1)中ek为节点消耗的能量,c1表示感知常数,rk表示感知半径变化量;
步骤112,传感器节点的总能量为E,如式(2)所示,节点消耗能量为e时的感知半径r如式子(3)所示:式(2)和(3)中的R为最大感知半径,e为消耗的能量,E为传感器节点的总能量;
步骤12,进行薄弱点查找;
步骤121,遍历栅栏中所有的传感器节点,计算相邻节点的距离d,栅栏中相邻节点间距离的集合为D={d1,d2,d3...ds-1},其中s为传感器节点数量;
步骤122,随机部署的静态传感器节点间的距离集合D满足高斯分布,如式(4)所示:式(4)中 s表示距离集合大小,将集合D中元素di∈[μ+σ,2R]对应的相邻节点间的中点wn作为薄弱点,建立薄弱点集合W={w1,w2,w3...wn},n为薄弱点的个数;
步骤2,进行二次部署;
步骤21,在第一次部署之后,沿着已经构建的栅栏再次部署移动节点,利用移动节点修补或强化栅栏,具体步骤如下:步骤211,在第一次部署之后,随着节点能量的消耗,容易出现间隙,从而导致栅栏的监测功能失效,因此进行步骤212,部署移动节点用于强化栅栏;
步骤212,采用line-based方法沿着步骤211中已构建的栅栏部署可移动节点;
步骤3,进行栅栏强化;
步骤31,计算可强化的薄弱点数量;
步骤311,使用一种基于集合的最大流算法,已知薄弱点集合为W,可移动节点的集合为M={m1,m2,m3…mk},移动节点的可移动距离为md,当wi与mi的距离小于md,其中wi∈W、mi∈M,则mi称为薄弱点的邻居节点,具体步骤为:步骤3111,计算薄弱点的邻居移动节点的集合,并将静态节点的公共邻居节点区分开后得到薄弱点新的邻居节点子集合c;
步骤3112,以每个薄弱点的新邻居节点子集合c中元素数量为权重值,建立有向图G;
步骤3113,采用最大流算法计算图G的最大流,当最大流等于薄弱点的数量,则此时薄弱点可被全部强化,否则存在不能被强化的薄弱点,因为它没有可移动邻居节点;
步骤32,进行强化策略;
步骤321,合并多个子集合c为全部邻节点集合N,集合N中的可移动节点到它的邻居薄弱点的距离集合为MD={md1,md2,md3,...mdnum|mdi≤md},num为所有距离集合的个数,对集合MD升序排序得到集合MD',采用二分查找法搜索mdoptimum,mdmin<mdoptimum<mdmax,mdmin和mdmax为升序得到的最小值和最大值,使得满足集合ED={MD'|mdi≤mdoptimum}的移动节点恰好能强化所有的薄弱点,则此时移动节点移动的距离总和最小,二分法算法具体步骤为:步骤3211,初始化 L=0,
步骤3212,更新薄弱点的邻居子集合c,将距离薄弱点大于mdoptimum的节点从邻居集合移除,并更新有向图G的权重和拓扑;
步骤3213,计算更新后有向图G的最大流,当最大流小于薄弱点数量,则L=optimum, 当最大流等于薄
弱点数量,且|L-optimum|<ε,输出mdoptimum,算法结束,否则执行步骤3214;
步骤3214 ,跳回步骤3212。