智能优化算法应用:基于蝙蝠算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于蝙蝠算法无线传感器网络(WSN)覆盖优化 - 附代码

文章目录

  • 智能优化算法应用:基于蝙蝠算法无线传感器网络(WSN)覆盖优化 - 附代码
    • 1.无线传感网络节点模型
    • 2.覆盖数学模型及分析
    • 3.蝙蝠算法
    • 4.实验参数设定
    • 5.算法结果
    • 6.参考文献
    • 7.MATLAB代码

摘要:本文主要介绍如何用蝙蝠算法进行无线传感器网(WSN)覆盖优化。

1.无线传感网络节点模型

本文主要基于0/1模型,进行寻优。在二维平面上传感器节点的感知范围是一个以节点为圆心,半径为 R n R_n Rn的圆形区域,该圆形区域通常被称为该节点的“感知圆盘”, R n R_n Rn称为传感器节点的感知半径,感知半径与节点内置传感器件的物理特性有关,假设节点 n n n的位置坐标为 ( x n , y n ) (x_n,y_n) (xn,yn)在0-1感知模型中,对于平面上任意一点 p ( x p , y p ) p(x_p,y_p) p(xp,yp),则节点 n n n监测到区域内点 p p p的事件发生概率为:
P r ( n , p ) = { 1 ,   d ( n , p ) ≤ R n 0 ,   e s l e (1) P_r(n,p)=\begin{cases}1, \,d(n,p)\leq R_n\\ 0,\, esle \end{cases}\tag{1} Pr(n,p)={1,d(n,p)Rn0,esle(1)
其中 d ( n , p ) = ( x n − x p ) 2 + ( y n − y p ) 2 d(n,p)=\sqrt{(x_n-x_p)^2+(y_n-y_p)^2} d(n,p)=(xnxp)2+(ynyp)2 为点和之间的欧式距离。

2.覆盖数学模型及分析

现假定目标监测区域为二维平面,在区域 A r e a Area Area上投放同型结构传感器节点的数目为N,每个节点的位置坐标值假设已被初始化赋值,且节点的感知半径r。传感器节点集则表示为:
N o d e { x 1 , . . . , x N } (2) Node\{x_1,...,x_N\} \tag{2} Node{x1,...,xN}(2)
其中 n o d e i = { x i , y i , r } node_i=\{x_i,y_i,r\} nodei={xi,yi,r},表示以节点 ( x i , y i ) (x_i,y_i) (xi,yi)为圆心,r为监测半径的圆,假定监测区域 A r e a Area Area被数字化离散为 m ∗ n m*n mn个像素点,像素点的坐标为 ( x , y ) (x,y) (x,y),目标像素点与传感器节点间的距离为:
d ( n o d e i , p ) = ( x i − x ) 2 + ( y i − y ) 2 (3) d(node_i,p)=\sqrt{(x_i-x)^2+(y_i-y)^2}\tag{3} d(nodei,p)=(xix)2+(yiy)2 (3)
目标区域内像素点被传感器节点所覆盖的事件定义为 c i c_i ci。则该事件发生的概率 P c i P{c_i} Pci即为像素点 ( x , y ) (x,y) (x,y)被传感器节点 n o d e i node_i nodei所覆盖的概率:
P c o v ( x , y , n o d e i ) = { 1 , i f   d ( n o d e i , p ) ≤ r 0 ,   e s l e (4) P_{cov}(x,y,node_i)=\begin{cases}1, if\,d(node_i,p)\leq r\\ 0,\, esle \end{cases}\tag{4} Pcov(x,y,nodei)={1,ifd(nodei,p)r0,esle(4)
我们将所有的传感器节点在目标监测环境中的区域覆盖率 C o v e r R a t i o CoverRatio CoverRatio定义为传感器节点集的覆盖面积与监测区域的面积之比,如公式所示:
C o v e r R a t i o = ∑ P c o v m ∗ n (5) CoverRatio = \frac{\sum P_{cov}}{m*n}\tag{5} CoverRatio=mnPcov(5)
那我们的最终目标就是找到一组节点使得覆盖率最大。

3.蝙蝠算法

蝙蝠算法原理请参考:https://blog.csdn.net/u011835903/article/details/107937903
该算法是寻找最小值。于是适应度函数定义为未覆盖率最小,即覆盖率最大。如下:
f u n = a r g m i n ( 1 − C o v e r R a t i o ) = a r g m i n ( 1 − ∑ P c o v m ∗ n ) (6) fun = argmin(1 - CoverRatio) = argmin(1-\frac{\sum P_{cov}}{m*n}) \tag{6} fun=argmin(1CoverRatio)=argmin(1mnPcov)(6)

4.实验参数设定

无线传感器覆盖参数设定如下:

%% 设定WNS覆盖参数,
%% 默认输入参数都是整数,如果想定义小数,请自行乘以系数变为整数再做转换。
%% 比如范围1*1,R=0.03可以转换为100*100,R=3;
%区域范围为AreaX*AreaY
AreaX = 100;
AreaY = 100;
N = 20 ;%覆盖节点数
R = 15;%通信半径

蝙蝠算法参数如下:

%% 设定优化参数
pop=30; % 种群数量
Max_iteration=80; %设定最大迭代次数
lb = ones(1,2*N);
ub = [AreaX.*ones(1,N),AreaY.*ones(1,N)];
dim = 2*N;%维度为2N,N个坐标点

5.算法结果

在这里插入图片描述
在这里插入图片描述

从结果来看,覆盖率在优化过程中不断上升,表明蝙蝠算法对覆盖优化起到了优化的作用。

6.参考文献

[1] 史朝亚. 基于PSO算法无线传感器网络覆盖优化的研究[D]. 南京理工大学.

7.MATLAB代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/197481.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

分布式运用之ELK企业级日志分析系统

1.1 ELK的概念与组件 ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 ElasticSearch: 是基于Lucene(一个全文检索引…

Python(八十九)函数的参数的内存分析

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

SQL注入-数据库基础/SQL语法

目录 一,数据库概述 1.1 数据库 1.2 了解 ACID 理论 1.3 识别数据库 二,SQL 语法基础 三,SQL语句实例 3.1 SQL基础语句 3.2 SQL高级语句 四,基于SQL注入理解语法/函数 4.1 语法 4.2 函数 五,目录数据库info…

【算法】七大经典排序(插入,选择,冒泡,希尔,堆,快速,归并)(含可视化算法动图,清晰易懂,零基础入门)

​ 目录 一、排序的概念及其运用1.1 排序的概念1.2 排序的应用1.3 常见的排序算法 二、常见排序算法的实现2.1 插入排序2.1.1 直接插入排序2.1.2 希尔排序2.1.3 直接插入排序和希尔排序的性能对比 2.2 选择排序2.2.1 直接选择排序2.2.2 堆排序2.2.3 直接选择排序和堆排序的性能…

整车测试中的UDS诊断

UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是在汽车电子ECU环境下的一种诊断通信协议。这种通信协议被用在几乎所有由OEM一级供应商所制造的新ECU上面。这些ECU控制车辆的各种功能,包括电控燃油喷射系统&#xff0…

WPF中DataGrid解析

效果如图&#xff1a; 代码如下&#xff1a; <DataGrid Grid.Row"1" x:Name"dataGrid" ItemsSource"{Binding DataList}" AutoGenerateColumns"False"SelectedItem"{Binding SelectedItem,UpdateSourceTriggerPropertyChange…

Redis 主库挂了,如何不间断服务?

目录 1、哨兵机制的基本流程 2、主观下线和客观下线 3、如何选定新的主库&#xff1f; 总结 // 你只管前行&#xff0c;剩下的交给时间 在 reids 主从库集群模式下&#xff0c;如果从库发生故障了&#xff0c;客户端可以继续向主库或其他从库发送请求&#xff0c;进行相关的…

Spring Cloud,注册中心,配置中心,原理详解

文章目录 Spring Cloud&#xff0c;注册中心&#xff0c;配置中心&#xff0c;原理详解谈谈我个人对 spring Cloud 的理解 注册中心Eureka&#xff1a;服务搭建小结 Ribbo - 负载均衡1. 负载均衡流程2. 负载均衡策略 nacos注册中心1. 配置集群1. 创建 namespace2. 配置命名空间…

Redis 的过期策略都有哪些?

思考:假如redis的key过期之后&#xff0c;会立即删除吗&#xff1f; Redis对数据设置数据的有效时间&#xff0c;数据过期以后&#xff0c;就需要将数据从内存中删除掉。可以按照不同的规则进行删除&#xff0c;这种删除规则就被称之为数据的删除策略&#xff08;数据过期策略…

如何运行C/C++程序

一、在线运行C/C 码曰 - 让代码在云端多飞一会&#xff1a;这是一个支持C/C&#xff0c;Java&#xff0c;Python等多种语言的在线编程&#xff0c;编译运行&#xff0c;粘贴分享的平台。你可以在这里输入你的代码&#xff0c;点击运行按钮&#xff0c;就可以看到输出结果。你也…

【shell】多行重定向与免交互expect与ssh、scp的结合使用

目录 一、多行重定向 举例1&#xff1a;使用read命令接收用户的输入值会有交互过程 举例2&#xff1a;设置变量的值 举例3&#xff1a;创建用户密码 举例4&#xff1a;使用多行重定向写入文件中&#xff08;以repo文件举例&#xff09; 举例5&#xff1a;变量设定 二、免…

微信小程序开发——开发账号注册与配置

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 概述 本文的重点在于介绍注册微信小程序开发账号的步骤及其流程。 账号注册 请点击官方网站右上角的 https://mp.weixin.qq.com/ 立即注册&#xff0c;图示如下&#xf…

【C++ Primer Plus学习记录】while循环

while循环是没有初始化和更新部分的for循环&#xff0c;它只有测试条件和循环体&#xff1a; while(test-condition)dody 首先&#xff0c;程序计算圆括号内的测试条件表达式。如果该表达式为true&#xff0c;则执行循环体内的语句。与for循环一样&#xff0c;循环体也由一条…

RPC之grpc重试策略

1、grpc重试策略 RPC 调用失败可以分为三种情况&#xff1a; 1、RPC 请求还没有离开客户端&#xff1b; 2、RPC 请求到达服务器&#xff0c;但是服务器的应用逻辑还没有处理该请求&#xff1b; 3、服务器应用逻辑开始处理请求&#xff0c;并且处理失败&#xff1b; 最后一种…

计算机网络高频面试八股文

目录&#xff1a; 网络分层结构三次握手两次握手可以吗&#xff1f;四次挥手第四次挥手为什么要等待2MSL&#xff1f;为什么是四次挥手&#xff1f;TCP有哪些特点&#xff1f;说说TCP报文首部有哪些字段&#xff0c;其作用又分别是什么&#xff1f;TCP和UDP的区别&#xff1f;…

Python入门学习篇(四)——if详解

if详解 1 单项分支 1.1 语法结构 if 条件:逻辑代码(条件为真时执行的代码) # 注: 如果条件不满足,那么则不执行if下面的逻辑代码1.2 示例代码 username input("请输入您的用户名: ") if username "admin":print("管理员登录成功")1.3 运行…

KMP算法【数据结构】

KMP算法 KMP算法是一种改进的字符串匹配算法 Next[j] k :一个用来存放子串返回位置的数组&#xff0c;回溯的位置用字母k来表示。其实就是从匹配失败位置&#xff0c;找到他前面的字符串的最大前后相等子串长度。默认第一个k值为-1(Next[0] -1),第二个k值为0(Next[1] 0),我…

蓝桥杯物联网竞赛_STM32L071_5_串口接收发送数据

理论&#xff1a; 串口采取异步通信&#xff0c;即不依赖时钟节拍来接收或发送数据&#xff0c;而是采用互相约定的波特率传输数据。 波特率与单位时间传输的比特数有关&#xff0c;波特率越大传输的数据越多 传输一个比特花费的时间T 1 / 比特率 接受和发送数据的时候需要…

MOM系统功能清单

什么是MOM系统&#xff1f; MOM系统是制造运营管理&#xff08;Manufacturing Operation Management&#xff09;的缩写。它是指通过协调管理企业的人员、设备、物料和能源等资源&#xff0c;把原材料或零件转化为产品的活动。MOM系统集成了生产计划、库存管理、生产调度、质量…

Java中关于ArrayList集合的练习题

目录 题目内容​编辑 完整源码 题目内容 根据下图所示数据&#xff0c;定义学生类Student&#xff0c;设置对应的字段并进行封装在Test中&#xff0c;定义ArrayList集合 ,将上述学生对象实例化&#xff0c;并放入集合&#xff0c;定义方法t1&#xff0c;参数为学生类集合&am…