智能优化算法应用:基于教与学算法无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于教与学算法无线传感器网络(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)=(xn−xp)2+(yn−yp)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 m∗n个像素点,像素点的坐标为 ( 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)=(xi−x)2+(yi−y)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=m∗n∑Pcov(5)
那我们的最终目标就是找到一组节点使得覆盖率最大。
3.教与学算法
教与学算法原理请参考:https://blog.csdn.net/u011835903/article/details/107861628
该算法是寻找最小值。于是适应度函数定义为未覆盖率最小,即覆盖率最大。如下:
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(1−CoverRatio)=argmin(1−m∗n∑Pcov)(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代码
相关文章:
智能优化算法应用:基于教与学算法无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于教与学算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于教与学算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.教与学算法4.实验参数设定5.算法结果6.参考文献7.…...
Bitcoin SV 和 Bitcoin Core 之间首次跨链原子交换
我们已经执行了 Bitcoin SV 和 Bitcoin Core 之间的首次原子交换。 这一成就代表了比特币 SV 的重大进步,以去信任的方式促进了与其他区块链的无缝互操作性。 图片源自Gemini 在上一篇文章中,我们解释了原子交换的高级理论。 我们深入研究了使用哈希时间…...
RT-DETR改进 | 2023 | InnerEIoU、InnerSIoU、InnerWIoU、InnerDIoU等二十余种损失函数
论文地址:官方Inner-IoU论文地址点击即可跳转 官方代码地址:官方代码地址-官方只放出了两种结合方式CIoU、SIoU 本位改进地址: 文末提供完整代码块-包括InnerEIoU、InnerCIoU、InnerDIoU等七种结合方式和其AlphaIoU变种结合起来可以达到二十…...
JDBC编程基础
JDBC编程基础 JDBC介绍创建JDBC项目的步骤1.引入依赖2.注册驱动3.获取数据库连接4.获取sql执行对象 JDBC 常用 API 详解sql执行对象PreparedStatement作用 事务管理结果集对象 JDBC项目demo测试 JDBC介绍 每个数据库都会提供一组API来支持程序员实现自己客户端,自己…...
Linux shell命令
Linux shell命令 1、Shell简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问…...
Vue 3 面试经验分享
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...
Vue简易的车牌输入键盘,可以根据需要修改
效果图如下: 代码如下: <template><div><div class"carNoBoxInput"><div style"padding: 6px;border: 2px solid #fff;border-radius: 6px;margin: 6px 3px 6px 6px;"><input class"inputBox"…...
十分钟搭建VScode C/C++运行环境
一、下载配置vscode 1.下载安装VScode 地址:https://code.visualstudio.com/download 下载后,运行安装程序 (VSCodeUserSetup-{version}.exe)。这只需要一分钟。安装程序会将 Visual Studio Code 添加到环境变量中%,可以使用CMD键入“code”…...
控制台gbk乱码
引用IntelliJ IDEA中 统一设置编码为utf-8或GBK-CSDN博客 特别注意file coding 的文件path和java的编码格式 配置...
Springboot日志-logback
logback-spring.xml的配置项 共有一个父标签、两种属性、三个节点: 一个父标签:configuration 两种属性:contextName和property 三个节点:appender、root、logger 日志级别 日志级别从低到高分为TRACE < DEBUG < INFO < WARN &…...
六、Lua 运算符
文章目录 一、Lua 运算符(一)算术运算符(二)关系运算符(三)逻辑运算符(四)其他运算符 二、运算符优先级 一、Lua 运算符 运算符是一个特殊的符号,用于告诉解释器执行特定…...
Android frameworks 开发总结十一
1.修改GMS的setup wizard 1.1 找到需要修改的文件 打开vendor/partner_gms/apps/GmsSampleIntegration/res/values/config.xml文件。以Arashi R为例: <resources><string name="wizard_script_uri" translatable="false">android.resource…...
学嵌入式,已经会用stm32做各种小东西了,下一步是什么
学嵌入式,已经会用stm32做各种小东西了,下一步是什么,研究stm32的内部吗? 针对题主这种类型的,首先我想提出几个技术问题。 1,除了那几个常用的外设,stm32上集成的众多外设是否都有实际的使用经…...
Java面试题10
1.MyBatis 中 #{}和 ${}的区别是什么? #{} 是预编译的占位符,MyBatis会将其转化为一个占位符参数,安全性较高,可以防止 SQL注入; ${} 是字符串替换,直接将内容替换到SQL语句中,不会进行参数处理…...
DBeaver连接MySQL提示“Public Key Retrieval is not allowed“问题解决方式
更新时间:2023年10月31日 11:37:53 作者:产品人小柒 dbeaver数据库连接工具,可以支持几乎所有的主流数据库.mysql,oracle.sqlserver,db2 等等,这篇文章主要给大家介绍了关于DBeaver连接MySQL提示"Public Key Retrieval is not allowed"问…...
振弦式轴力计和振弦采集仪组成的安全监测解决方案
振弦式轴力计和振弦采集仪组成的安全监测解决方案 振弦式轴力计和振弦采集仪是一种常用的结构安全监测工具,可以用于评估建筑物、桥梁、隧道或其他结构的结构健康状态和安全性能。这种监测方案较为先进、精确,并且能够监测长期的结构反应,因此…...
卡尔曼滤波
通过 Eigen 矩阵运算实现线性卡尔曼滤波。模拟的是一辆带火箭发动机的汽车,一开始沿着X轴匀速运动,到X轴中间开启火箭发动机匀加速向Y轴起飞。同理可以仿真(x,y,z,yaw,pitch,raw) 6自由度的真实飞行情况 #include <iostream&g…...
不受平台限制,Sketch 网页版震撼登场
Sketch 是一种基于 Mac 的矢量图形编辑器,可用于数字设计。其主要功能包括无损矢量编辑、完美像素精度和数百个插件同步功能,可导出预设和代码。它是目前流行的页面交互协作设计工具。但是 Sketch 最大的缺点是对 Windows/PC 用户不友好。严格来说&#…...
如何使用.pth训练模型
一.使用.pth训练模型的步骤如下: 1.导入必要的库和模型 import torch import torchvision.models as models# 加载预训练模型 model models.resnet50(pretrainedTrue) 2.定义数据集和数据加载器 # 定义数据集和数据加载器 dataset MyDataset() dataloader to…...
C++11线程以及线程同步
C11中提供的线程类std::thread,基于此类创建一个新的线程相对简单,只需要提供线程函数和线程对象即可 一.命名空间 this_thread C11 添加一个关于线程的命名空间std::this_pthread ,此命名空间中提供四个公共的成员函数; 1.1 get_id() 调用命名空间s…...
SiameseUniNLU镜像免配置部署:预置中文分词器+标点规范化+繁简转换中间件
SiameseUniNLU镜像免配置部署:预置中文分词器标点规范化繁简转换中间件 1. 什么是SiameseUniNLU? SiameseUniNLU是一个通用自然语言理解模型,采用了创新的"提示(Prompt)文本(Text)"…...
实时口罩检测-通用惊艳案例分享:单帧检测耗时<12ms(T4实测)
实时口罩检测-通用惊艳案例分享:单帧检测耗时<12ms(T4实测) 1. 项目简介与核心优势 实时口罩检测-通用是一个基于先进目标检测技术的智能识别系统,专门用于快速准确地检测图像中是否有人佩戴口罩。这个模型在实际测试中表现出…...
终极文档下载指南:kill-doc浏览器脚本快速突破文档获取限制
终极文档下载指南:kill-doc浏览器脚本快速突破文档获取限制 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是…...
Shutter与Frame Length的动态平衡:如何在低光环境下优化帧率与画质
1. 低光环境下的成像挑战 昏暗的室内、夜晚的街道、烛光晚餐的场合——这些典型的低光环境总是让拍摄设备如临大敌。我清楚地记得第一次测试运动相机夜拍性能时的场景:画面要么布满雪花般的噪点,要么像卡顿的幻灯片。这背后的核心矛盾在于——当环境光线…...
无人机遥控器射频技术:功率优化与频段选择实战指南
1. 无人机遥控器射频技术基础入门 刚接触无人机时,我最困惑的就是为什么同样的机型,朋友在郊区能飞2公里,而我在小区里500米就断联。后来才发现,问题出在遥控器的射频技术上。射频技术就像无人机的"隐形风筝线"…...
千问3.5-9B镜像+OpenClaw:10分钟搭建云端自动化测试环境
千问3.5-9B镜像OpenClaw:10分钟搭建云端自动化测试环境 1. 为什么选择云端部署OpenClaw 去年我在本地折腾OpenClaw时,光是解决Python环境冲突就花了两天时间。最近发现星图平台提供了千问3.5-9B和OpenClaw的预置镜像组合,实测从创建实例到运…...
Virtuoso新手必看:tsmcN65工艺库安装避坑指南(从下载到验证)
Virtuoso新手必看:tsmcN65工艺库安装避坑指南(从下载到验证) 在集成电路设计领域,工艺库的安装是每位工程师必须掌握的基础技能。对于刚接触Cadence Virtuoso的新手来说,tsmcN65这样的先进工艺库安装过程往往充满挑战…...
造相-Z-Image-Turbo与嵌入式系统联动:基于STM32的硬件控制与图像显示方案
造相-Z-Image-Turbo与嵌入式系统联动:基于STM32的硬件控制与图像显示方案 最近在捣鼓一个智能相框的原型,想让它能自动更新展示AI生成的画作。核心想法很简单:让云端强大的AI模型负责“创作”,让手边便宜又皮实的嵌入式硬件负责“…...
MATLAB算法移植与优化:借助LiuJuan20260223Zimage转换为Python代码
MATLAB算法移植与优化:借助LiuJuan20260223Zimage转换为Python代码 1. 引言 很多工程师和研究者都遇到过类似的困境:手头有一套用MATLAB写好的核心算法,运行稳定,逻辑清晰,但项目要求转向更开放、生态更丰富的Python…...
OpenClaw成本优化:Qwen3.5-9B-AWQ-4bit量化模型长期运行实测
OpenClaw成本优化:Qwen3.5-9B-AWQ-4bit量化模型长期运行实测 1. 为什么关注量化模型与OpenClaw的适配性 第一次用OpenClaw执行图片处理任务时,我的MacBook Pro风扇狂转的噪音让我意识到问题的严重性——原版Qwen3.5-9B模型在连续处理20张产品截图后&am…...
