智能优化算法应用:基于差分进化算法无线传感器网络(WSN)覆盖优化 - 附代码

news2025/1/17 8:59:56

智能优化算法应用:基于差分进化算法无线传感器网络(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.差分进化算法

差分进化算法原理请参考:网络博客
该算法是寻找最小值。于是适应度函数定义为未覆盖率最小,即覆盖率最大。如下:
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/1280823.html

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

相关文章

IM通信技术快速入门:短轮询、长轮询、SSE、WebSocket

文章目录 前言即时通讯常用技术 短轮询(Short Polling)实现原理优点缺点 长轮询(Long Polling)实现原理改进点基于iframe的长轮询实现原理总结 Server-Sent Events(SSE)实现原理浏览器对 SSE 的支持情况SSE vs WebSocket总结 WebS…

基于英特尔平台及OpenVINO2023工具套件优化文生图任务

当今,文生图技术在很多领域都得到了广泛的应用。这种技术可以将文本直接转换为逼真的图像,具有很高的实用性和应用前景。然而,由于文生成图任务通常需要大量的计算资源和时间,如何在英特尔平台上高效地完成这些计算是一个重要的挑…

基于Java SSM框架+Vue实现企业公寓后勤管理系统项目【项目源码+论文说明】

基于java的SSM框架Vue实现企业宿舍后勤管理网站演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所…

RC低通滤波电路直接带载后会发生什么?

1、滤波的含义 滤波是频域范畴,它说的是不同频率的信号经过一个电路处理后,信号发生变化的问题,变化包含了原始信号幅值和相位的变化,滤波电路对信号的幅值做出的响应称为幅频响应,对信号相位做出的反应称为相频响应。…

【MySQL】视图 + 用户管理

视图 前言正式开始视图用户管理user表创建新用户修改用户密码权限管理给用户赋权剥夺权限 前言 本篇所讲的视图和我上一篇事务中所讲的读视图不是一个东西,二者没有任何关系,如果看过我前一篇博客的同学不要搞混了。 其实视图和用户管理本来是想着分开…

perl脚本批量处理代码中的中文注释乱码的问题

代码中统一使用utf-8编码是最好的,但是有一些多人合作的项目或者一些历史遗留代码,常见一些中文注释乱码的问题。这里以一个开源项目evpp为例子 evpp。以项目中的一个commit id为例: 477033f938fd47dfecde43c82257cd286d9fa38e , …

数据结构之堆排序以及Top-k问题详细解析

个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 数据结构初阶 欢迎大家点赞,评论,收藏。 一起努力 目录 1.前言 2.堆排序 2.1降序排序 2.2时间复杂…

充电桩新老国标兼容性分析

1、背景介绍 1.1、充电桩相关标准发展历程 1.2、兼容性分析历史 1.3、兼容性分析的目的 1.4、兼容性分析的内容 2、B类协议兼容性分析 2.1、协议分层结构 2.2、链路层分析 2.3、版本协商与链路检测 ## 2.4、传输层分析 2.5、应用层 2.5.1、应用层数据 2.5.2、应用层数据…

谈谈MYSQL索引

基本介绍 索引是帮助MySQL高效获取数据的数据结构,主要是用来提高数据检索的效率,降低数据库的IO成本,同时通过索引列对数据进行排序,降低数据排序的成本,也能降低了CPU的消耗。 通俗来说, 索引就相当于一本书的目录,…

QML中常见布局方法

目录 引言常见方法锚定(anchors)定位器Row、ColumnGridFlow 布局管理器RowLayout、ColumnLayoutGridLayoutStackLayout 总结 引言 UI界面由诸多元素构成,如Label、Button、Input等等,各种元素需要按照一定规律进行排布才能提高界…

Java数据结构之《构造哈夫曼树》题目

一、前言: 这是怀化学院的:Java数据结构中的一道难度中等(偏难理解)的一道编程题(此方法为博主自己研究,问题基本解决,若有bug欢迎下方评论提出意见,我会第一时间改进代码,谢谢!) 后面其他编程题…

kgma转换flac格式、酷狗下载转换车载模式能听。

帮朋友下载几首歌到U盘里、发现kgma格式不能识别出来,这是酷狗加密过的格式,汽车不识别,需要转换成mp3或者flac格式,网上的一些辣鸡软件各种收费、限制、广告,后来发现一个宝藏网站,可以在线免费转换成flac…

长度最小的子数组(Java详解)

目录 题目描述 题解 思路分析 暴力枚举代码 滑动窗口代码 题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条…

MyBatis自动生成代码(扩展)

可以利用Mybatis-Generator来帮我们自动生成文件 1、自动生成实体类 可以帮助我们针对数据库中的每张表自动生成实体类 2、自动生成SQL映射文件 可以帮助我们针对每张表自动生成SQL配置文件,配置文件里已经定义好对于该表的增删改查的SQL以及映射 3、自动生成接…

数据层融合、特征层融合和决策层融合是三种常见的数据融合方式!!

文章目录 一、数据融合的方式有什么二、数据层融合三、特征层融合:四、决策层融合: 一、数据融合的方式有什么 数据层融合、特征层融合和决策层融合是三种常见的数据融合方式。 二、数据层融合 定义:数据层融合也称像素级融合,…

Chat-GPT原理

GPT原理 核心是基于Transformer 架构 英文原文: ​ Transformers are based on the “attention mechanism,” which allows the model to pay more attention to some inputs than others, regardless of where they show up in the input sequence. For exampl…

10 分钟解释 StyleGAN

一、说明 G在过去的几年里,生成对抗网络一直是生成内容的首选机器学习技术。看似神奇地将随机输入转换为高度详细的输出,它们已在生成图像、生成音乐甚至生成药物方面找到了应用。 StyleGAN是一种真正推动 GAN 最先进技术向前发展的 GAN 类型。当Karras …

6-13连接两个字符串

#include<stdio.h> int main(){int i0,j0;char s1[222],s2[333];printf("请输入第一个字符串&#xff1a;\n");gets(s1);//scanf("%s",s1);printf("请输入第二个字符串&#xff1a;\n");gets(s2);while(s1[i]!\0)i;while(s2[j]!\0)s1[i]s2…

python--自动化办公(Word)

python自动化办公之—Word python-docx库 1、安装python-docx库 pip install python-docx2、基本语法 1、打开文档 document Document() 2、加入标题 document.add_heading(总标题,0) document.add_heading(⼀级标题,1) document.add_heading(⼆级标题,2) 3、添加文本 para…