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

news2024/11/18 17:50:51

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

文章目录

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

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

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

本文主要基于0/1模型,进行寻优。在二维平面上传感器节点的感知范围是一个以节点为圆心,半径为 R n R_n Rn的圆形区域,该圆形区域通常被称为该节点的“感知圆盘”, R n R_n Rn称为传感器节点的感知半径,感知半径与节点内置传感器件的物理特性有关,假设节点 n n n的位置坐标为 ( x n , y n , z n ) (x_n,y_n,z_n) (xn,yn,zn)在0-1感知模型中,对于平面上任意一点 p ( x p , y p , z p ) p(x_p,y_p,z_p) p(xp,yp,zp),则节点 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 + ( z n − z p ) 2 d(n,p)=\sqrt{(x_n-x_p)^2+(y_n-y_p)^2 + (z_n-z_p)^2} d(n,p)=(xnxp)2+(ynyp)2+(znzp)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 , z i , r } node_i=\{x_i,y_i,z_i,r\} nodei={xi,yi,zi,r},表示以节点 ( x i , y i , z i ) (x_i,y_i,z_i) (xi,yi,zi)为圆心,r为监测半径的球,假定监测区域 A r e a Area Area被数字化离散为 m ∗ n ∗ l m*n*l mnl个空间点,空间点的坐标为 ( x , y , z ) (x,y,z) (x,y,z),目标点与传感器节点间的距离为:
d ( n o d e i , p ) = ( x i − x ) 2 + ( y i − y ) 2 + ( z i − z ) 2 (3) d(node_i,p)=\sqrt{(x_i-x)^2+(y_i-y)^2 + (z_i-z)^2}\tag{3} d(nodei,p)=(xix)2+(yiy)2+(ziz)2 (3)
目标区域内点被传感器节点所覆盖的事件定义为 c i c_i ci。则该事件发生的概率 P c i P{c_i} Pci即为点 ( x , y , z ) (x,y,z) (x,y,z)被传感器节点 n o d e i node_i nodei所覆盖的概率:
P c o v ( x , y , z , 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,z,node_i)=\begin{cases}1, if\,d(node_i,p)\leq r\\ 0,\, esle \end{cases}\tag{4} Pcov(x,y,z,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 ∗ l (5) CoverRatio = \frac{\sum P_{cov}}{m*n*l}\tag{5} CoverRatio=mnlPcov(5)
那我们的最终目标就是找到一组节点使得覆盖率最大。

3.蝗虫算法

蝗虫算法原理请参考:https://blog.csdn.net/u011835903/article/details/107694862
蝗虫算法是寻找最小值。于是适应度函数定义为未覆盖率最小,即覆盖率最大。如下:
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 ∗ l ) (6) fun = argmin(1 - CoverRatio) = argmin(1-\frac{\sum P_{cov}}{m*n*l}) \tag{6} fun=argmin(1CoverRatio)=argmin(1mnlPcov)(6)

4.实验参数设定

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

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


蝗虫算法参数如下:

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

5.算法结果

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

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

6.参考文献

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

7.MATLAB代码

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

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

相关文章

这七款网工在线画拓扑工具,绝了!

你们好,我的网工朋友。 画拓扑图,绝对是网络工程师的基操。 上次给你来了篇手把手教你绘制拓扑图的好文,还没看过的先去看啊:《网络拓扑图怎么画最好?》。 关于画拓扑的工具,那就多了,直接用…

深入理解强化学习——马尔可夫决策过程:预测与控制

分类目录&#xff1a;《深入理解强化学习》总目录 预测&#xff08;Prediction&#xff09;和控制&#xff08;Control&#xff09;是马尔可夫决策过程里面的核心问题。预测&#xff08;评估一个给定的策略&#xff09;的输入是马尔可夫决策过程 < S , A , R , P , γ > …

如何搭建废品上门回收小程序

如今&#xff0c;随着环境保护意识的增强&#xff0c;废品的回收和再利用变得越来越重要。为了方便人们进行废品回收&#xff0c;搭建一个废品上门回收的小程序成为了一个不错的选择。本文将介绍如何从零开始搭建一个废品上门回收小程序。 …

笔记本电脑安装了Ubuntu系统设置关盖/合盖不挂起/不睡眠

文章目录 简介通过gnome-tweaks设置通过更改登录配置文件logind.conf设置参考资料 简介 学习工作中需要用到笔记本安装Ubuntu Linux系统&#xff0c;并且需要关盖电脑不关机、不挂起且不睡眠。为此&#xff0c;本篇博客整理了两种常规操作方式&#xff0c;并给了详细的步骤&am…

2023.12.11 homework Rectangle, Square

Rectangle, Square 长方形&#xff0c;正方形问题

孩子还是有一颗网安梦——Bandit通关教程:Level 0 → Level 1

&#x1f575;️‍♂️ 专栏《解密游戏-Bandit》 &#x1f310; 游戏官网&#xff1a; Bandit游戏 &#x1f3ae; 游戏简介&#xff1a; Bandit游戏专为网络安全初学者设计&#xff0c;通过一系列级别挑战玩家&#xff0c;从Level0开始&#xff0c;逐步学习基础命令行和安全概念…

mmyolo的bbox_loss和检测bbox都是空

最近用mmyolo训练自己的数据集的时候发现训练的时候loss_bbox0&#xff0c;测试和eval的时候结果也全是空的&#xff0c;排除了数据集读取的问题&#xff0c;最后发现是config中自定义了自己的类别但是没有传给dataset。。。 简而言之&#xff0c;在自定义了数据集里的metainf…

RocketMQ-源码架构

源码环境搭建 1、主要功能模块 RocketMQ官方Git仓库地址&#xff1a;GitHub - apache/rocketmq: Apache RocketMQ is a cloud native messaging and streaming platform, making it simple to build event-driven applications. RocketMQ的官方网站下载&#xff1a;下载 | R…

对比三种认证方式:传统token认证,jwt认证,oauth认证

1. Token基本原理 1、客户端使用用户名跟密码请求登录&#xff1b; 2、服务端收到请求&#xff0c;去验证用户名与密码&#xff1b; 3、验证成功&#xff0c;服务端会签发一个Token&#xff08;也就是随机生成一个字符串&#xff09;保存到(Session,redis,mysql…)中&#x…

计算机毕业设计 SpringBoot的企业内管信息化系统 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

SSD在AI发展中的关键作用:从高速缓存到数据湖-1

随着人工智能技术的飞速发展&#xff0c;存储在其中发挥着至关重要的作用。特别是在AI训练过程中&#xff0c;存储SSD&#xff08;固态硬盘&#xff09;的高性能和可靠性对于提升训练效率和保证数据安全具有不可替代的作用。 存储SSD在AI发展中的作用和趋势&#xff0c;存储将…

<url-pattern>/</url-pattern>与<url-pattern>/*</url-pattern>的区别

<url-pattern>/</url-pattern> servlet的url-pattern设置为/时&#xff0c; 它仅替换servlet容器的默认内置servlet&#xff0c;用于处理所有与其他注册的servlet不匹配的请求。直白点说就是&#xff0c;所有静态资源&#xff08;js&#xff0c;css&#xff0c;ima…

人工智能数据集可视化统计分析工具:快速了解你的数据集

人工智能数据集可视化统计分析工具&#xff1a;快速了解你的数据集 简介特征示例报告安装用法 简介 Lightly Insights&#xff1a;可以轻松获取关于机器学习数据集基本洞察的工具&#xff0c;可以可视化图像数据集的基本统计信息&#xff0c;仅需提供一个包含图像和对象检测标…

自编码器 AutoEncoder

自编码器&#xff08;AutoEncoder&#xff09;&#xff0c;也称自编码模型&#xff0c;是一种基于无监督学习的数据维度压缩和特征表示方法&#xff0c;目的是对一组数据学习出一种表示。1986年 Rumelhart 提出自编码模型用于高维复杂数据的降维。由于自动编码器通常应用于无监…

建筑学VR虚拟仿真情景实训教学

首先&#xff0c;建筑学VR虚拟仿真情景实训教学为建筑学专业的学生提供了一个身临其境的学习环境。通过使用VR仿真技术&#xff0c;学生可以在虚拟环境中观察和理解建筑结构、材料、设计以及施工等方面的知识。这种教学方法不仅能帮助学生更直观地理解复杂的建筑理论&#xff0…

SpringData JPA 搭建 xml的 配置方式

1.导入版本管理依赖 到父项目里 <dependencyManagement><dependencies><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-bom</artifactId><version>2021.1.10</version><scope>…

软文开头怎么写才能拿捏用户?媒介盒子为您解答

软文标题是吸引用户点击的关键因素&#xff0c;那软文开头就是决定用户能否读下去的主要因素&#xff0c;很多运营er在写文案时经常会面临的情况之一就是好不容易想到一个标题&#xff0c;点击率不错&#xff0c;但是开头不行用户一看开头&#xff0c;跑了&#xff01;如果不知…

Git篇---第三篇

系列文章目录 文章目录 系列文章目录前言一、git pull 和 git fetch 有什么区别?二、git中的“staging area”或“index”是什么?三、什么是 git stash?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章…

c#读取XML文件实现晶圆wafermapping显示demo计算电机坐标控制电机移动

c#读取XML文件实现晶圆wafermapping显示 功能&#xff1a; 1.读取XML文件&#xff0c;显示mapping图 2.在mapping视图图标移动&#xff0c;实时查看bincode,x,y索引与计算的电机坐标 3.通过设置wafer放在平台的位置x,y轴电机编码值&#xff0c;相机在wafer的中心位置&#…

C# 任务的异常和延续处理

写在前面 当Task在执行过程中出现异常或被取消等例外的情况时&#xff0c;为了让执行流程能够继续进行&#xff0c;可以使用延续方法实现这种链式处理&#xff1b;还可以针对前置任务不同的执行结果&#xff0c;选择执行不同的延续分支方法。子任务执行过程中的任何异常都会被…