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

news2024/9/30 9:19:07

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

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

相关文章

基于Python手把手教你实现flappy bird游戏

目录 前言开始前的准备工作进入正题结束语 前言 想必玩过游戏的都知道,Flappy Bird是一款简单却富有挑战性的经典的小鸟飞行游戏,让许多玩家为之痴迷,而作为开发者,那肯定要通过技术手段来再做一遍这款经典游戏。那么本文就来通…

Spring Boot 3 整合 Spring Cache 与 Redis 缓存实战

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

前端入口教程_web01

web标准 记得看! html:表示整个页面 head: titile: body: 常用标签 1.标题标签 2.段落标签 3.换行标签 4.文本格式化标签 5. 和 标签 6.图像标签 相对路径–用来插自己本地的图片 #### 绝对路径–用来插网上找的图…

java学习part31String

142-常用类与基础API-String的理解与不可变性_哔哩哔哩_bilibili 1.String 2.字符串常量池 变更储存区的原因是加快被gc的频率 比地址,equals比内容 3.字符串连接 s3s4都是字符串常量,后面几个会利用StringBuilder的toString()&a…

用python写一个简单的爬虫

爬虫是一种自动化程序,用于从互联网上获取数据。它能够模拟人类浏览网页的行为,访问网页并提取所需的信息。爬虫在很多领域都有广泛的应用,例如数据采集、信息监控、搜索引擎索引等。 下面是一个使用Python编写的简单爬虫示例: …

什么是深度「穿透式」供应链?苹果多层级穿透式供应链分析|徐礼昭

徐礼昭(商派市场负责人,重构零售实验室负责人) 什么是「穿透式供应链」? 穿透式供应链是一种新型的供应链体系,它强调纵深拓展和动态优化,以满足供应链的安全需求和价值需求。这种供应链体系由多个层级组成…

推荐系统-01-基于协同过滤的图书推荐系统(包括数据和代码)

文章目录 0. 数据下载1. 背景描述2. 预测目的3. 数据总览4. 开始处理4.1 图书4.1.1 yearOfPublication4.1.2 publisher 4.2 用户数据集4.2.1 userID4.2.2 Age 4.3 评级数据集4.3.1 统计 5. 基于简单流行度的推荐系统6. 基于协同过滤的推荐系统6.1 基于用户的协同过滤6.2 基于项…

SAP MM 批量修改物料特性CLMM初探<转载>

原文链接:https://blog.csdn.net/w_55555222/article/details/128799598 分类在SAP里面的用途很广,像001物料特性、022/023批次,032审批策略等等等等,本文针对物料特性001进行实操测试。笔者在用023批次测试的时候,发现…

基于Python的6+1号码生成器

🎈 博主:一只程序猿子 🎈 博客主页:一只程序猿子 博客主页 🎈 个人介绍:爱好(bushi)编程! 🎈 创作不易:如喜欢麻烦您点个👍或者点个⭐! &#x1f…

数据结构——二叉树(相关术语、性质、遍历过程)

遍历操作 二叉树的层次遍历-CSDN博客 二叉树的基本操作-CSDN博客 二叉树的先序遍历非递归实现-CSDN博客 后序遍历的非递归方式实现-CSDN博客 二叉树:已知先序中序求后序或者其他(秒解)-CSDN博客 因为之前发过一遍,我就不复制…

11. 哈希冲突

上一节提到,通常情况下哈希函数的输入空间远大于输出空间,因此理论上哈希冲突是不可避免的。比如,输入空间为全体整数,输出空间为数组容量大小,则必然有多个整数映射至同一桶索引。 哈希冲突会导致查询结果错误&#…

干货分享:盘点8款优秀的自动化测试工具

如今,作为一名软件测试工程师,几乎所有人都需要具备自动化测试相关的知识,并且懂得如何去利用工具,来为企业减少时间成本和错误成本。这是为什么呢? 在以前,测试人员一般都只需要扮演终端用户,…

【开发问题解决方法记录】03.dian

登录提示 ERR-1002 在应用程序 "304" 中未找到项 "ROLE_ID" 的项 ID。 一开始找错方向了,以为是代码错误,但是后来在蒋老师的提醒下在共享组件-应用程序项 中发现设的项不是ROLE_ID而是ROLEID,怪不得找不到ORZ 解决方法…

Linux下快速创建大文件的4种方法

1、使用 dd 命令创建大文件 dd 命令用于复制和转换文件,它最常见的用途是创建实时 Linux USB。dd 命令是实际写入硬盘,文件产生的速度取决于硬盘的读写速度,根据文件的大小,该命令将需要一些时间才能完成。 假设我们要创建一个名…

安卓apk抓包(apk抓不到包怎么办)

起因 手机(模拟器)有时候抓不到apk的包,需要借助Postern设置一个代理,把模拟器的流量代理到物理机的burp上。 解决方案 使用Postern代理,把apk的流量代理到burp。 Postern是一个用于代理和网络流量路由的工具&#xf…

设计模式---第五篇

系列文章目录 文章目录 系列文章目录前言一、知道观察者模式吗?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一、知道观察者模式吗? 答:观察者模式是定义对…

基于单片机设计的智能水泵控制器

一、前言 在一些场景中,如水池、水箱等水体容器的管理中,保持水位的稳定是至关重要的。传统上,人们通常需要手动监测水位并进行水泵的启停控制,这种方式不仅效率低下,还可能导致水位过高或过低,从而对水体…

执行栈和执行上下文

前端面试大全JavaScript执行栈和执行上下文 🌟经典真题 🌟执行上下文 🌟栈数据结构 🌟执行上下文生命周期 🌟真题解答 🌟总结 🌟经典真题 谈谈你对 JavaScript 执行上下文栈理解 &#…

全网最新最全的自动化测试教程:python+pytest接口自动化-requests发送post请求

简介 在HTTP协议中,与get请求把请求参数直接放在url中不同,post请求的请求数据需通过消息主体(request body)中传递。 且协议中并没有规定post请求的请求数据必须使用什么样的编码方式,所以其请求数据可以有不同的编码方式,服务…

全网最新最全的自动化测试教程:python+pytest接口自动化-请求参数格式的确定

我们在做接口测试之前,先需要根据接口文档或抓包接口数据,搞清楚被测接口的详细内容,其中就包含请求参数的编码格式,从而使用对应的参数格式发送请求。例如某个接口规定的请求主体的编码方式为 application/json,那么在…