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

news2024/11/18 21:38:12

智能优化算法应用:基于跳蛛算法无线传感器网络(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/123832349
该算法是寻找最小值。于是适应度函数定义为未覆盖率最小,即覆盖率最大。如下:
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代码

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端依赖下载速度过慢解决方法,nrm 镜像管理工具

npm 默认镜像 :https://registry.npmjs.org/ 问题 使用 npm install 安装依赖的时候,受网络的限制,速度会很慢。 解决 使用国内镜像代理。 nrm nrm 是镜像源管理工具; 1. 安装 nrm npm install nrm --global# 查看镜像源列…

Java线程安全问题及其三大线程同步“锁”方案

文章目录 一、 线程安全问题概述二、线程安全问题的demo演示三、线程同步方案四、线程同步代码块五、同步方法六、Lock锁七、附录—多线程常用方法 在实际开发过程中,使用线程时最重要的一个问题非线程安全问题莫属。这篇博客会带你由浅入深的初步了解该问题&#x…

FolkMQ 内存型消息中间件,v1.0.18 发布

简介 采用 “内存运行” “快照持久化” “Broker 集群模式”(可选)基于 Socket.D 网络应用协议 开发,使用“多路复用”技术。全新设计,自主架构! 角色功能生产端发布消息(Qos0、Qos1)、发布…

SOLIDWORKS参数化工具如何设置部分提取

编制参数表是参数化设置必不可少的一环,提取零部件参数又是生成参数表所必须的步骤,然而很多时候,模型的量级很大,需要变化的零部件只有三分之一,那如果全部提取出来,将耗费大量的时间,因此部分…

Swagger页面报错Resolver error at definitions

问题描述 打开swagger页面报错Resolver error at definitions 原因分析: 从错误提示可以看出,是由map引起的原因,具体是因为swagger配置没有默认添加map的复杂结构引起的,需要手动添加。 解决方案: 找到swagger配置类…

黄金代理商怎么做才会受客户青睐?

黄金代理商是市场中推广现货黄金投资的角色,黄金代理商做的越好,推广的效果越明显,投资者就越多,这样他们就可以获得多一点黄金代理平台的佣金。所以,黄金代理商们会使劲浑身解数,让自己获得更多客户的青睐…

【ARM Trace32(劳特巴赫) 使用介绍 13 -- Trace32 Var 变量篇】

文章目录 Trace32 查看变量值Var.view 查看变量值Var.view 查看数据类型的大小Var.view 根据变量地址查看变量值 地址类型判断 Trace32 查看变量值 步骤1 步骤2 步骤3: 步骤4: 查看结构体变量 str_t32 的值 struct t32_str {uint32_t t32_val…

【JavaEE进阶】 Spring使用注解存储对象

文章目录 🌴序言🍀前置⼯作:配置扫描路径🎄添加注解存储 Bean 对象🌳类注解🚩为什么要这么多类注解🚩注解之间的联系 🎋⽅法注解 Bean🚩⽅法注解需要配合类注解使⽤ ⭕总…

合合信息旗下启信宝与鹏城实验室达成数据托管合作,“AI靶场”让数据管理更精准

数字经济时代,数据已成为新型生产要素。通过“数据托管”等形式对数据进行集中管理,有助于保护数据主体权益,促进数据共享和运用效率,对数字经济的发展具有重要意义。近期,在深圳数据交易所(简称“深数所”…

如何使用eXtplorer+cpolar内网穿透搭建个人云存储实现公网访问

文章目录 1. 前言2. eXtplorer网站搭建2.1 eXtplorer下载和安装2.2 eXtplorer网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1. 前言 通过互联网传输文件,是互联网最重要的应用之一,无论是…

Cloak斗篷技术不知道?超实用干货,FP商家必读!

都2023年了,还有很多人犹豫要不要入局独立站。心动不如行动,如果想要在跨境独立站中干出一番新事业,要赶紧动起来。部分卖家在出海初期,都想着出售FP产品,涉及到FP产品,各大主流平台上都有严格的审核机制&a…

如何教你四个类搞定分层自动化测试框架

写在前面 我们刚开始做自动化测试,可能写的代码都是基于原生写的代码,看起来特别不美观,而且感觉特别生硬。 来看下面一段代码: 如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放…

华三AC+AP部署无线基本配置

拓扑图: 1、创建管理VLAN与AP管理VLAN、终端接入VLAN、配置管理VLAN IP地址 设备管理VLAN 56、AP管理VLAN 101、终端接入VLAN 10 AC、HeXin、JieRu。(创建VLAN)[H3C]vlan 101[H3C-vlan101]description AP-vlan[H3C]vlan 56[H3C-vlan56]desc…

SAP UI5 walkthrough step9 Component Configuration

在之前的章节中,我们已经介绍完了MVC的架构和实现,现在我们来讲一下,SAPUI5的结构 这一步,我们将所有的UI资产从index.html里面独立封装在一个组件里面 这样组件就变得独立,可复用了。这样,无所什么时候我…

【51单片机系列】74HC595实现对LED点阵的控制

本文是关于LED点阵的使用,使用74HC595模块实现对LED点阵的控制。 文章目录 一、8x8LED点阵的原理1.1 LED点阵显示原理1.2 LED点阵内部结构图1.3 开发板上的LED点阵原理图1.4 74HC595芯片 二、使用74HC595模块实现流水灯效果三、 使用74HC595模块控制LED点阵对角线亮…

IDEA中表明或者字段找不到时报红

问题 idea 中mysql的sql语句报红,无论表名还是表字段 原因 是由于sql方言导致的 当我们选择某一个sql方言的时候,xml配置会按照指定规则校验sql是否规范,并给出提示 解决方案 取消sql方言,设置sql方言为None。设置完重启idea既…

Mysql启动占用内存过高解决

Hi, I’m Shendi Mysql启动占用内存过高解决 前言 最近服务器内存不够用了,甚至还出现了内存溢出问题,导致程序宕机。但请求与用户量并没有多少,所以从各种启动的程序中想方设法的尽可能的减少其占用的内存。 而在我的服务器中,…

二叉树的非递归遍历(详解)

二叉树非递归遍历原理 使用先序遍历的方式完成该二叉树的非递归遍历 通过添加现有项目的方式将原来编写好的栈文件导入项目中 目前项目存在三个文件一个头文件,两个cpp文件: 项目头文件的代码截图:QueueStorage.h 项目头文件的代码&#xff…

golang学习笔记——TCP端口扫描器

文章目录 TCP 端口扫描器非并发版本并发版本goroutine 池并发版 TCP 端口扫描器 time.Sincefunc Since net包Conn 接口func Dialfunc DialTimeoutfunc FileConn TCP 端口扫描器 非并发版本 package mainimport ("fmt""net" )func main() {for i : 21; i …

HarmonyOS学习 第1节 DevEco Studio配置

俗话说的好,工欲善其事,必先利其器。我们先下载官方的开发工具DevEco Studio. 下载完成后,进行安装。 双击DevEco Studio,点击Next按照指引完成安装 重新启动DevEco,点击 Agree 进入环境配置,安装Node.js和ohpm 点击Ne…