智能优化算法应用:基于平衡优化器算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于平衡优化器算法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)=(xn−xp)2+(yn−yp)2+(zn−zp)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 m∗n∗l个空间点,空间点的坐标为 ( 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)=(xi−x)2+(yi−y)2+(zi−z)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=m∗n∗l∑Pcov(5)
那我们的最终目标就是找到一组节点使得覆盖率最大。
3.平衡优化器算法
平衡优化器算法原理请参考:https://blog.csdn.net/u011835903/article/details/111388552
平衡优化器算法是寻找最小值。于是适应度函数定义为未覆盖率最小,即覆盖率最大。如下:
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(1−CoverRatio)=argmin(1−m∗n∗l∑Pcov)(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代码
相关文章:

智能优化算法应用:基于平衡优化器算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于平衡优化器算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于平衡优化器算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.平衡优化器算法4.实验参数设定5.算法…...

Netty详细文档
Netty教程 文章目录 Netty教程 Netty简介Netty 的介绍Netty 的应用场景互联网行业游戏行业大数据领域其它开源项目使用到 Netty Netty 的学习资料参考 Java BIO编程I/O 模型BIO、NIO、AIO 使用场景分析Java BIO 基本介绍Java BIO 工作机制Java BIO 应用实例问题分析 Java NIO编…...

C语言结构体和位段
自定义类型:结构体及联合和枚举 一.结构体类型的声明1.1 结构体的概念1.2结构的声明1.3特殊的声明1.4结构体的自引用1.5可以使用typedef重命名 二.结构体变量的创建和初始化2.1结构体变量的初始化使用{}2.2初始化:定义变量的同时赋初值。2.3结构体嵌套及…...

【剑指offer|图解|数组】寻找文件副本 + 螺旋遍历二维数组
🌈个人主页:聆风吟 🔥系列专栏:数据结构、剑指offer每日一练 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. ⛳️寻找文件副本(题目难度:简单)1.1 题目1.2 示例1.3 限制1.4 解题思路一c代…...
Python核心编程之文件和输入输出
目录 一、文件对象 二、 文件内建函数[open()和file()] 1、工厂函数 file() 2、通用换行符支持(UNS)...

Axure 9基本元件,表单及表格元件简介,表单案例
目录 一.基本元件 1.元件基本介绍 2.基本元件的使用 二.表单及表格元件 三.表单案例 四.简单简历绘制 一.基本元件 1.元件基本介绍 概述 - 在Axure RP中,元件是**构建原型图的基础模块**。 将元件从元件库里拖拽到画布中,即可添加元件到你的原型…...

ARM I2C通信
1.概念 I2C总线是PHLIPS公司在八十年代初推出的一种串行的半双工同步总线,主要用于连接整体电路2.IIC总线硬件连接 1.IIC总线支持多主机多从机,但是在实际开发过程中,大多数采用单主机多从机模式 2.挂接到IIC总线上,每个从机设备都…...

Cent OS7 磁盘挂载:扩展存储空间和自动挂载
文章目录 (1)概述(2)查看磁盘使用情况(3)VMware虚拟机挂载磁盘(4)物理机磁盘挂载(5)ntfs硬盘处理 (1)概述 在Linux系统中,…...

《使用ThinkPHP6开发项目》 - 创建应用
《使用ThinkPHP6开发项目》 - 安装ThinkPHP框架-CSDN博客 《使用ThinkPHP6开发项目》 - 设置项目环境变量-CSDN博客 《使用ThinkPHP6开发项目》 - 项目使用多应用开发-CSDN博客 根据前面的步骤,我们现在就可以开发我们的项目开发了,根据项目开发的需要…...

SpringBoot进行自然语言处理,利用Hanlp进行文本情感分析
. # 📑前言 本文主要是SpringBoot进行自然语言处理,利用Hanlp进行文本情感分析,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风…...

MySQL 报错 You can‘t specify target table for update in FROM clause解决办法
You can’t specify target table for update in FROM clause 其含义是:不能在同一表中查询的数据作为同一表的更新数 单独执行复合查询是正常的,如下: 但是当执行子查询删除命令时,报如下错误 DELETE FROM abpusers WHERE Id I…...

Linux中使用podman管理容器
本章主要介绍使用podman管理容器 了解什么是容器,容器和镜像的关系安装和配置podman拉取和删除镜像给镜像打标签导出和导入镜像创建和删除镜像数据卷的使用管理容器的命令使用普通用户管理容器 对于初学者来说,不太容易理解什么是容器,这里…...

飞天使-linux操作的一些技巧与知识点3-http的工作原理
文章目录 http工作原理nginx的正向代理和反向代理的区别一个小技巧dig 命令巧用 http工作原理 http1.0 协议 使用的是短连接,建立一次tcp连接,发起一次http的请求,结束,tcp断开 http1.1 协议使用的是长连接,建立一次tc…...

微搭低代码实现登录注册功能
目录 1 创建用户数据源2 实现登录逻辑3 搭建登录页面4 设置登录框5 实现登录的逻辑6 用户注册总结 原来产品在创建应用的时候可以创建模型应用,模型应用对应我们小程序的后端。最新的更新已经将模型应用的能力下线,那我们不得不自己实现一下后端的逻辑。…...

使用Cobalt Srike制作钓鱼文件
钓鱼 钓鱼文件是一种常见的网络攻击手段,旨在欺骗用户,诱使他们点击恶意链接、下载恶意附件或提供敏感信息。钓鱼文件的概念是通过伪装成合法、可信的文件或链接来欺骗受害者,使其相信文件或链接的来源是可信的,从而促使他们采取…...

任意文件读取漏洞
使用方法php://filter/readconvert.base64-encode/resourcexxx 任意文件读取漏洞 php://filter/readconvert.base64-encode/resourceflag 在url后边接上 以base64的编码形式 读取flag里面的内容 php://filter/readconvert.base64encode/resourceflag 用kali来解码 创建一个文…...

一个文件下png,jpg,jpeg,bmp,xml,json,txt文件名称排序命名
#utf-8 #authors 会飞的渔WZH #time:2023-12-13 import os# 要修改的图像所在的文件夹路径 root_path rD:\images\lines2\3 # 要修改的图像所在的文件夹路径filelist os.listdir(root_path) #遍历文件夹 print(len(filelist)) i0for item in filelist:if item.endswith(.…...

phpstudy小皮(PHP集成环境)下载及使用
下载 https://www.xp.cn/download.html直接官网下载即可,下载完解压是个.exe程序,直接点击安装就可以,它会自动在D盘目录为D:\phpstudy_pro 使用 phpMyAdmin是集成的数据库可视化,这里需要下载一下,在软件管理-》网站程…...
[BUG记录]UART占用CPUload过高问题
目录 关键词平台说明一、背景二、根本原因三、措施 关键词 嵌入式、C语言、autosar、TDA4 平台说明 项目ValueOSautosar OSautosar厂商vector芯片厂商TI编程语言C,C编译器HighTec (GCC) 一、背景 在基于TDA4开发的域控中使用到了UART打印debug信息,不…...

Flutter常用命令
一、环境安装 flutter --version 查看当前安装的flutter 版本 flutter upgrade 升级当前的flutter 版本 flutter doctor 检查环境安装是否完成 二、项目编译运行 flutter clean 清空build目录 flutter pub get 获取pub插件包 flutter run --设备名称 运行项目到指定设…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...

练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...

深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...