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

news2024/11/23 12:46:00

文章目录

    • 【可更换其他算法,`获取资源`请见文章第6节:资源获取】
    • 1. SSA算法
    • 2. WSN节点感知模型
    • 3. 混合WSN覆盖优化
    • 4. 部分代码展示
    • 5. 仿真结果展示
    • 6. 资源获取


【可更换其他算法,获取资源请见文章第6节:资源获取】


1. SSA算法

网上已有很多介绍,此处不再赘述,可以参考原始SSA算法。

2. WSN节点感知模型

本文所使用的模型是传感器部署研究中最常见的一种感知模型-布尔感知模型。布尔感知模型比较简单,定义如下:N节点的感知范围是以节点N为圆心,以Rs为半径的一个圆形区域,其中Rs是由节点的物理特性决定的,名为感知半径。只有落在该圆形区域内的目标点p才能视为被节点N覆盖。这个模型也被称为0-1感知模型。

在这里插入图片描述

图1 布尔感知模型图

首先,假设目标监测网络为矩形区域,监测区域内分布有若干节点,每个节点的覆盖范围为以节点位置为圆心,监测半径为Rs的圆;其次,将目标监测区域进行离散化处理,形成若干监测点,根据0-1感知模型计算各检测点的感知概率;最后,通过计算覆盖监测点数占整个检测区域总点数来计算网络覆盖率大小。

3. 混合WSN覆盖优化

混合无线传感器网络可以有效利用移动节点的动态部署弥补固定节点所形成的信号覆盖盲区, 从而与仅有固定节点组成的传感器网络相比能更好地解决网络资源浪费、易出现覆盖盲区等问题。

区域中包括部分固定节点和可移动节点。在本文中,固定节点的坐标为已知条件,利用SSA算法对移动节点的坐标进行优化,以覆盖率最大化为优化目标,不断优化可移动节点的位置,最终确定可移动节点的最终位置,使得覆盖率达到最优。
在这里插入图片描述

图2 混合WSN覆盖图

如图2所示,深色圆为固定节点的覆盖范围,浅色圆为可移动节点的覆盖范围,本文就是通过不断优化可移动节点的坐标,使得该正方形区域的空白部分达到最小,也即整体覆盖率达到最优。

4. 部分代码展示

%% 优化前覆盖图
figure(1)
% 固定点
FoodPositionX=Solution_Guding(1,1:end);
FoodPositionY=Solution_Guding(2,1:end); 
for i=1:size(Solution_Guding,2)
   x = FoodPositionX(1,i);
   y = FoodPositionY(1,i);
   h2= cc(x,y,R,1);%固定参数为1
   hold on;
end
% 移动点
FoodPositionX=init_BestX;
FoodPositionY=init_BestY; 
for i=1:dim
    x = FoodPositionX(1,i);
    y = FoodPositionY(1,i);
    h1=cc(x,y,R,0);
    hold on;
end
axis([0 w 1 w]);
xlabel('X(m)');
ylabel('Y(m)');
title('优化前覆盖效果');
legend([h2,h1],'固定','移动')

5. 仿真结果展示

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

在这里插入图片描述

6. 资源获取

A资源获取说明.rar

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

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

相关文章

数字逻辑(计科专业)

半加器 用与非门实现 全加器 编码器 编码就是将信息装换成独特的代码或信号输出的电路 普通编码器:任何时候只允许输入一个有效编码信号,否则输出就会发生混乱。 优先编码器:允许同时输入两个以上的有效编码信号。当同时输入几个有效编码信…

【算法学习系列】05 - 对数器的说明与使用

文章目录 对数器说明对数器使用创建随机样本生成器实现 isSorted(int[] arr) 函数验证排序正确性实现选择排序算法进行大样本随机测试验证算法正确性 总结 对数器说明 在算法领域中,对数器指的是一个用于测试算法正确性的工具。对于一个需要被测试的算法A&#xff0…

Redis分片集群搭建及其原理

Redis分片集群搭建及其原理 1.Redis分片集群1.1.搭建分片集群1.2.准备实例和配置1.3.启动1.4.创建集群1.5.测试 2.散列插槽原理2.1.插槽原理2.2.小结 3.集群伸缩3.1.需求分析3.2.创建新的redis实例3.3.添加新节点到redis3.4.转移插槽 4.故障转移4.1.自动故障转移4.2.手动故障转…

十三、进程信号

文章目录 一、什么是信号二、信号列表(一)查看系统定义的信号列表 三、信号处理四、信号产生(一)通过终端按键产生信号1.什么是核心转储?2.核心转储功能有什么用?3.core dump标志 (二&#xff0…

计算机论文写作入门

什么是顶会 顶级会议一般是,在业界(本领域本方向)受到广泛的承认,影响力较大的会议。一方面一般顶级专家、学者都倾向于将paper投到这些 会议;另一方面这些会议的论文代表了该领域的目前很优秀、有重大意义的进展。"顶级会议"的投稿竞争压力一般都很大,属于在经典 p…

05. 数据结构之队列

前言 队列(queue)是一种线性数据结构,队列中的元素只能先入先出(First In First Out,简称 FIFO)。队列和实际生活中的排队相对应,是一种和生活息息相关的数据结构,在很多系统中都会…

MATLAB 之 其他形式的二维图形

文章目录 一、对函数自适应采样的绘图函数二、其他坐标系下的二维曲线图1. 对数坐标函数2. 极坐标图 三、其他特殊二维图像1. 条形类图形2. 面积类图形3. 散点类图形4. 矢量类图形 二维图线除采用直角坐标系外,还可采用对数坐标或极坐标。除了绘制二维曲线外&#x…

大环境不好难找工作?三面阿里,幸好做足了准备,已拿offer

大环境不好难找工作?三面阿里,幸好做足了准备,已拿offer 三面大概九十分钟,问的东西很全面,需要做充足准备,就是除了概念以外问的有点懵逼了(呜呜呜)。回来之后把这些题目做了一个分…

软件测试学习规划(学习思路、学习方法、面试技巧、后期发展、职业规划等)

软件测试学习思路 1、基础知识、理论知识(用例编写,测试方法,用例管理),测试思维的学习,很多人不屑理论,一股劲的扎进测试工具里面。最大的误区,工具永远学不完,测试必须…

【Node.js搭建服务器】使用Nodejs搭建简单的HTTP服务器----公网远程访问

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

C++入门--auto关键字、内联函数学习

目录 1.auto关键字(C11)1.1auto简介1.2auto的使用细则1.3auto函数不能推导的场景1.auto不能作为函数的参数2.auto不能直接用来声明数组 2.基于范围的for循环(C)2.1范围for循环的语法2.2使用auto的for循环2.3基于for循环的使用条件…

【linux网络】firewalld 防火墙

firewalld防火墙 一、firewalld防火墙1.1firewalld防火墙概述1.2firewalld与iptables的区别1.3Firewalld网络区域1.4firewalld数据处理的流程1.5firewalld防火墙的配置方法 二、firewall-cmd的命令选项2.1默认区域2.2网卡接口增删改查区域2.3源地址增删改查区域2.4区域规则的增…

接口测试之测试原则、测试用例、测试流程......

之前都是在网上杂乱得看了很多接口测试的资料,但总感觉不够系统,特地找了本书重新系统的学习一下,结合之前收集的一些资料查漏补缺。 《接口自动化测试持续集成postman》,这本大部分内容还是讲的是 postman 工具的使用方法&#…

spark应用程序的执行

1 SparkContext -》{ sparkconf --配置对象,基础配置 sparkEnv --环境对象,通讯环境 SchedulerBackend --通讯后台 住哟啊用于和Executor之间进行通讯 TaskScheduler – 任务调度器 任务调度 DAGScheduler – 阶段调度器 阶段划分 } spark.sparkContext…

贪心算法专练

⭐️前言⭐️ 本篇文章主要分享几道贪心算法的题目,贪心算法是一种基于自然智慧的算法,这类题目并没有统一的解法,但通常都是每一步做出一个局部最优的选择,最终的结果就是全局最优。 🍉欢迎点赞 👍 收藏 …

图神经网络:(化学领域)再次认识图神经网络

文章说明: 1)参考资料:PYG官方文档。超链。 2)博主水平不高,如有错误还望批评指正。 3)我在百度网盘上传了这篇文章的jupyter notebook和有关文献。超链。提取码8848。 文章目录 Mutagenicity数据集搭建模型训练模型文献阅读重新回来 Mutagen…

day36_JQuery

今日内容 零、 复习昨日 一、正则表达式 二、JQuery 零、 复习昨日 零、正则表达式 Regular expression RegExp 0.1 正则表达式 正则表达式是描述字符模式的对象。正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。语法: va…

京东云技术团队 —— 浅谈测试用例设计

一、测试用例为什么存在 1.1 定义 测试用例(Test Case)是指对特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。测试用例内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档类的输出。简而言之&am…

04. 数据结构之栈

前言 栈(stack)是一种线性数据的逻辑存储结构。栈中的元素只能先入后出(First In Last Out,简称FILO)。最早进入的元素存放的位置叫作栈底(bottom),最后进入的元素存放的位置叫作栈…

网络故障老搞不定,就看这篇笔记

大家好,我是老杨。 做咱们这行,每天遇到的故障千奇百怪什么都有。很多网工每天只是在工作而已,遇到一个问题,就解决一个问题,每天的日子都是一样的,枯燥无趣。 但是,就很少有人去汇总问题&…