【WSN覆盖】基于麻雀搜索算法的三维混合无线传感器网络覆盖优化 三维WSN覆盖空洞修复【Matlab代码#25】

news2024/11/22 22:48:52

文章目录

    • 【可更换其他算法,`获取资源`请见文章第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

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

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

相关文章

机器学习与深度学习——通过奇异值分解算法压缩图片

机器学习与深度学习——通过奇异值分解算法压缩图片 什么是奇异值分解? 奇异值分解(Singular Value Decomposition,SVD)是一种重要的线性代数方法,用于将一个矩阵分解成三个部分的乘积形式。它的应用非常广泛&#x…

Leecode98

leecode98 验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 &#x1…

【Linux】shell编程—Here Document免交互

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、免交互概述二、免交互常规用法1.read 命令的读取2.wc -l 的内容行数统计3.passwd用户密码的修改4.cat 查看内容并输出到文件中5.cat 查看交互内容并输出到新的文…

Spring传播机制(七种)

一、概述 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。Propagation枚举则引用了这些类型,开发过程中我们一般直接用Propagation枚举。 1.1 Propagation源码 public enum Propagation {REQUIRED(0),SUPPORTS(1),MANDATORY(2),REQUIRES_NEW(…

redis源码浅析-ziplist实现

redis中的list是有多种实现的,其中一种是ziplist,其介绍如下 ziplist 是一个经过特殊编码的双向链表,旨在提高内存效率。 它存储字符串和整数值,其中整数被编码为实际整数而不是一系列字符。 它允许在 O(1) 时间内在列表的任一侧进…

戴尔 Dell Latitude E7480电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网,转载需注明出处。(下载请直接百度黑果魏叔) 硬件配置 硬件型号驱动情况 主板戴尔 Dell Latitude E7480 处理器Intel Core i7-7700U已驱动 内存8GB 2133MHz DDR4 * 2已驱动 硬盘Sandisk 1T M.2 NVMe SSD已驱动 显…

windows解决python安装django架构没有django-admin命令

目录 一.尝试安装与配置 1.直接pip命令安装 2.用pycharm测试 3.官网下包安装 二.解决 1.找到django安装的路径 2.配置系统变量 3.测试创建项目 3.1.执行访问页面 3.2.解决 3.3.继续测试 4.pycharm打开 一.尝试安装与配置 1.直接pip命令安装 pip install django dja…

chatgpt赋能Python-python_7

Python 7 - 探索最受欢迎的Python版本 如果你是一位Python开发人员,你就会知道Python 7是什么。Python 7是Python编程语言的第7个主要版本,它带来了许多新的功能和改进,包括内置类型注释、上下文变量、字节码优化和更多。 在本文中&#xf…

度小满科技金融迭代:普惠小微与技术创新并肩而行

2015年,深度贫困乡镇隘口镇推出“本土人才”政策,呼吁大学生人才下基层,助力乡村经济振兴工作。 叶茂的人生轨迹因此而发生改变。彼时,20多岁的叶茂果断辞去药材公司的高薪工作,开始了回乡种植黄精的创业路,并成功竞选东坪村村主任…

log4cpp的安装(vs/visual studio版)

log4cpp安装下载源visual studio安装方法 log4cpp安装 下载源 log4cpp visual studio安装方法 将下载好的压缩包解压缩后得到下列目录(解压缩的文件夹最好放C盘,不然在编译阶段往往会出现链接不上的问题) 找到mscv10文件夹内的mscv10.sl…

【概念篇】浅谈 AOP、OOP、DDD、IOC

前言 在招聘要求中,有没有经常看见,对AOP、OOP、DDD、IOC有一定的认识,能够自主开发模块,这一类的要求。听起来是不是挺高大上,然后百度一搜,给你出来一堆概念性的东西——结果就是,东西…

《LKD3粗读笔记》(14)块I/O层

什么是块设备? 系统中能够随机访问固定大小数据片的设备被称为块设备,这些数据片称作块,最常见的块设备是硬盘。什么是字符设备? 字符设备按照字符流的方法被有序访问,像串口和键盘就都属于字符设备。这两种设备的区别…

从零开始搭建 Lsky Pro 兰空图床

本文源码:https://github.com/chen2438/chenhaotian.top/tree/main/source/_posts/linux-app/lsky.md 在我的博客上查看:https://chenhaotian.top/2022/12/30/linux-app/lsky/ 从零开始搭建 Lsky Pro 兰空图床 官方教程 安装环境 使用OneinStack安装…

第五章 面向对象-8.enum 枚举

enum 枚举 枚举的实例对象是固定的,实例是自动new,每个枚举类会自动继承java.lang.Enum 抽象类 如何声明枚举? 所有枚举类都是java.lang.Enum的子类,无需用extends来继承,如下是枚举类拥有的常用方法 方法名称说明…

测试报告框架 —— Allure2测试报告

目录 Allure2测试报告 1、使用 Allure2 运行方式-Python 2、使用 Allure2 运行方式-Java 3、生成测试报告 4、Allure2 报告中添加用例标题 5、allure2报告中添加用例步骤 6、allure2报告中添加用例链接 7、allure2报告中添加用例分类 8、Allure2 报告中添加用例描述 …

【面试题】前端必修-浏览器的渲染原理

大厂面试题分享 面试题库 前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 1.浏览器的渲染原理 #浏览器是如何渲染页面的 1.什么叫渲染 render 当我们输入一个url地址的…

新书上市 | 从大脑认知开始,全方面提高编程能力,助你摆脱“GPT焦虑症”

目录 一、ChatGPT火爆全网二、《程序员超强大脑》三、本书内容四、本书特色五、作译者简介1、费莉安赫尔曼斯(Felienne Hermans)2、蒋楠 大家好,我是哪吒。 🏆本文收录于,49天精通Java从入门到就业。 全网最细Java零…

程序人生-Hello’s P2P

摘要 本文讨论了与编程和软件开发相关的几个关键概念和过程。首先介绍了链接的概念和作用,它是将代码和数据片段组合成单一文件的过程,使得分离编译成为可能,从而可以更好地管理和修改模块。接下来探讨了进程的概念和作用,进程是正…

图像数据处理

文章目录 1:TFRecords1-1 将MNIST数据集转换成TFRecord格式1-2 读取TFRecord文件中的数据 2:图像数据的预处理2-1 处理图像编码2-2 调整图像大小2-3 剪裁和填充2-4 按比例剪裁2-5 图像翻转2-6 图像亮度调整2-7 图像对比度调整2-8 图像色相调整2-9 图像饱…

chatgpt赋能Python-python_99乘法

Python编程实现——99乘法表的生成 Python编程语言是一种高级程序设计语言,具有简单易学、可移植性强、功能强大等特点,受到广大开发者的喜爱。Python可以被应用于网站开发、数据分析、人工智能、机器学习等多个领域。而在Python编程中,生成…