文章目录
- 【可更换其他算法,`获取资源`请见文章第6节:资源获取】
- 1. SSA算法
- 2. 节点感知模型
- 3. 三维混合WSN覆盖问题
- 4. 部分代码展示
- 5. 仿真结果展示
- 6. 资源获取
 
【可更换其他算法,获取资源请见文章第6节:资源获取】
 
1. SSA算法

 
2. 节点感知模型
由于节点随机抛洒,而传感器节点的分布情况会影响网络覆盖率。在三维覆盖区域中,传感器节点的覆盖区域是某一半径确定的球。在三维监测区域中随机抛洒 
     
      
       
       
         N 
        
       
      
        N 
       
      
    N个传感器节点,形成节点集合 
     
      
       
       
         ( 
        
        
        
          s 
         
        
          1 
         
        
       
         , 
        
        
        
          s 
         
        
          2 
         
        
       
         , 
        
        
        
          s 
         
        
          3 
         
        
       
         , 
        
       
         . 
        
       
         . 
        
       
         . 
        
       
         , 
        
        
        
          s 
         
        
          N 
         
        
       
         ) 
        
       
      
        (s_{1},s_{2},s_{3},...,s_{N}) 
       
      
    (s1,s2,s3,...,sN),第 
     
      
       
       
         i 
        
       
      
        i 
       
      
    i个节点的坐标为 
     
      
       
        
        
          s 
         
        
          i 
         
        
       
         ( 
        
        
        
          x 
         
        
          i 
         
        
       
         , 
        
        
        
          y 
         
        
          i 
         
        
       
         , 
        
        
        
          z 
         
        
          i 
         
        
       
         ) 
        
       
      
        s_{i}(x_{i},y_{i},z_{i}) 
       
      
    si(xi,yi,zi),三维监控节点集合中的某一点为 
     
      
       
        
        
          l 
         
        
          v 
         
        
       
         ( 
        
        
        
          x 
         
        
          v 
         
        
       
         , 
        
        
        
          y 
         
        
          v 
         
        
       
         , 
        
        
        
          z 
         
        
          v 
         
        
       
         ) 
        
       
      
        l_{v}(x_{v},y_{v},z_{v}) 
       
      
    lv(xv,yv,zv),三维监控点与目标点的距离为: 
     
      
       
       
         d 
        
       
         ( 
        
        
        
          s 
         
        
          i 
         
        
       
         , 
        
        
        
          l 
         
        
          v 
         
        
       
         ) 
        
       
      
        d(s_{i},l_{v}) 
       
      
    d(si,lv)。
 若 
     
      
       
       
         d 
        
       
         ( 
        
        
        
          s 
         
        
          i 
         
        
       
         , 
        
        
        
          l 
         
        
          v 
         
        
       
         ) 
        
       
      
        d(s_{i},l_{v}) 
       
      
    d(si,lv)小于等于感知半径 
     
      
       
        
        
          R 
         
        
          s 
         
        
       
      
        R_{s} 
       
      
    Rs,则目标点在三维覆盖区域内,感知度标记为1,;相反,则在三维覆盖区域之外感知度标记为0。采用布尔感知模型,感知度为:
 
 将三维监控节点集合中每个点的感知度求和,并除以三维监控节点集合中的节点数,即可得到整体覆盖率。
3. 三维混合WSN覆盖问题
无线传感网络(WSN)在智能交通、智能农业、医疗健康、工业监测和军事上应用广泛。伴随着WSN应用场景的不同,无线传感器网络的应用也会有所区别。近年来,WSN覆盖优化成为新的研究热点。在监测区域中,传感器节点的部署数量和分布状态对网络服务质量影响很大,如何利用最少的节点个数实现最大的覆盖率,同时保证节点分布均匀性。在二维平面,无线传感器网络在覆盖率方面近乎完善,但是二维平面及感知模型无法适应实际应用场景,节点在三维空间的部署研究刻不容缓。
 
在三维立体空间随机部署节点时,由于外部因素的限制,网络中会出现覆盖空洞。空洞是由周围多个节点形成的一个闭合空间,如下图所示。图中1-7个节点可以视为固定节点,其各自的球形范围可以视为固定节点的覆盖范围,本文通过麻雀搜索算法不断优化移动节点的坐标,从而使得三维立体空间内的空洞越小越好,也即整个区域的覆盖率最大化。

4. 部分代码展示
% 画图
figure(2)
% FoodPositionX=FoodPosition(:,1:3:end);
% FoodPositionY=FoodPosition(:,2:3:end); 
% FoodPositionZ=FoodPosition(:,3:3:end); 
for i=1:dim
    x = FoodPositionX(1,i);
    y = FoodPositionY(1,i);
    z = FoodPositionZ(1,i);
    h1=cc(x,y,z,R,0);
    hold on;
end
% 固定节点上色
FoodPositionX=Solution_Guding(1,1:end);
FoodPositionY=Solution_Guding(2,1:end); 
FoodPositionZ=Solution_Guding(3,:); 
for i=1:size(Solution_Guding,2)
    x = FoodPositionX(1,i);
    y = FoodPositionY(1,i);
    z = FoodPositionZ(1,i);
    h2=cc(x,y,z,R,1);
    hold on;
end
xlabel('X(m)');
ylabel('Y(m)');
zlabel('Z(m)');
title('优化后覆盖效果');
legend([h1,h2],'移动','固定')
figure(3)
plot(Convergence_curve(2:end),'r-','LineWidth',1.2);
xlabel('迭代次数');
ylabel('覆盖率');
title('算法训练过程');
5. 仿真结果展示

 
 
6. 资源获取
A资源获取说明.rar


















