锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

【优化覆盖】基于matlab粒子群算法求解传感器覆盖优化问题【含Matlab源码 598期】

时间:2022-12-01 07:00:00 ii5919传感器cnt传感器

一、无线传感器网络覆盖优化简介

无线传感器网络覆盖优化问题
1.1 无线传感器网络模型

在无线传感器网络中, 节点数量和节点划分区域直接关系到无线传感器网络覆盖目标事物的死角面积。 增加节点数量可以提高网络覆盖密度。节点更多地分为靠近目标事物的区域, 提高网络数据传输的安全性和准确性。构建无线传感器网络认知模型的目的是定义和测量无线传感器网络的覆盖死角, 为此, 基于粒子群算法的无线传感器网络覆盖优化方法可看成是对认知模型的参数优化问题。

传感器网络节点容易受到噪声和电磁波的干扰,导致传输误差, 一系列由不可抗因素引起的一系列网络覆盖问题被统称为无效事件。无线传感器网络认知模型的起点坐标是S、在p的节点上测量无效事件的概率P (S, p) , 降低P (S, p) 覆盖率可以提高。P (S, p) 定义为:
在这里插入图片描述
式中:β节点认知衰减函数;d (S, p) 表示S与p欧几里得之间的测量。

从式 (1) 可以清楚地看到, 如果d (S, p) =0, 则P (S, p) =1, 此时的模型测量工作毫无意义。 需要对式 (1) 进行改进, 指定节点的概率约束值r, 则式 (1) 可变更为:

式 (2) 可表示无线传感器网络认知模型的最终表达式, 从中可以知道, 该模型已将无线传感器网络覆盖优化转化为r≤d (S, p) <2r条件下的P (S, p) 最小值问题。

1.2 问题描述的覆盖率优化
将无线传感器网络对目标物体的监控区域视为二维区域, N个已知坐标节点存在于二维区域, 设置区域内所有节点的认知半径均为R1, 节点传输半径均为R2.在保持网络稳定通信的同时,尽量减少电磁波的不良影响, 可令R2=2R1。

式中:β1, β二是无线传感器网络节点的测量项目数据;λ1, λ2是参数, λ1=r d, λ2=2r-d。

将式 (3) 耦合可获得无线传感器网络覆盖率的表达式:

2 粒子群算法的传感器网络覆盖优化
根据上述描述, 无线传感器网络覆盖率采用粒子群算法优化, 简要介绍粒子群算法的基本原理, 重点设计网络覆盖优化流程。

2.1 粒子群算法的工作原理
粒子群算法是进化算法的流派, 它也是生物随机索引算法的一个分支, 是目前的研究热点。粒子群算法的基本原理如图1所示。

图1 粒子群算法的基本原理
由图1可知, 实现粒子群算法非常简单, 其基本原理是通过迭代获得最优解, 实时更新粒子的速度和坐标。算法先初始化粒子, 赋予粒子历史最优解。在算法进入迭代过程之前, 首先设置位置参数g的最大值, 即循环系数, 负责控制算法的迭代次数。每次迭代, 位置参数g的值增加1, 当g大于循环系数时, 则停止迭代。粒子群算法的迭代可以获得粒子适应性, 历史最优解、粒子群最优解、粒子速度和坐标以适应性为标准依次更新。粒子速度vN1与坐标xi1的更新方程为:

式中:vN, xi是粒子的初始设定值;c1, c二是粒子群算法的学习因素, 一般值为2;rand1, rand二是随机参数;bestN是粒子适应度的约束值。

2.2 无线传感器网络覆盖优化流程
无线传感器网络覆盖优化过程如图2所示。

图2 无线传感器网络覆盖优化流程
首先编码模型, 其目的是固定节点位置, 粒子群算法的编码是二进制百兆数据码, 编码长度等于无线传感器网络节点的数量。r≤d<2r, 为获取P (x, y, cN) 的最大值, 粒子群算法的编码结果应满足以下公式:

式 (6) 元素值为0或1, 0表示传感器节点可以重置, 表示固定节点。

适应度是评价最优解质量的函数, 在粒子群算法迭代之前, 无线传感器网络认知模型的初始适应性需要提前设置适应性函数, 对比迭代结果很方便, 输出最合适的节点优化位置, 优化无线传感器网络覆盖率。

在式 (6) 在给出的编码基础上, 使用式 (7) 计算模型适应性:

无线传感器网络覆盖率的瞬时值R1可通过式 (4) 进行求取;w1和w2分别表示R1在无线传感器网络中的初始权重和实际权重。

当式 (7) 满足w1 w2=1时, P (x, y, cN) 最大值可以达到。 粒子群算法迭代的目标是使粒子群算法迭代工作w1 w2=1.实现迭代目标后, 基于粒子群算法的无线传感器网络覆盖优化方法需要更新无线传感器网络的节点位置, 并输出优化后的无线传感器网络覆盖率。

二、部分源代码

close all clear clc addpath(genpath(cd)) warning('off') %% N=10;                       % 节点数 area=[10,10];              % 以米为单位的节点部署区域 Trange=2;                   % 传感器节点的传输范围(以米为单位) nodes.pos=area(1).*rand(N,2);% 节点地理位置
lambda=0.125;                % 以米为单位的信号波长
nodes.major = Trange;        % 椭圆范围的长轴,以米为单位
nodes.minor = lambda*Trange;  % 椭圆范围的短轴,以米为单位
% redundantNo=9;               % 愈合节点数 
redundantNo=round(10*N/100);
%% 绘制节点部署
cnt=1;
for ii=1:N      
    for jj=1:N
        if ii~=jj
            nodes.distance(ii,jj)=pdist([nodes.pos(ii,:);nodes.pos(jj,:)]);
            if nodes.distance(ii,jj)<Trange || nodes.distance(ii,jj)==Trange
                nodes.inrange(ii,jj)=1;
            else
                nodes.inrange(ii,jj)=0;
            end
        end
    end
end


三、运行结果




四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]张红霞.基于粒子群算法的无线传感器网络覆盖优化[J].现代电子技术. 2017,40(09)

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章