首页 > 编程语言 >基于GA遗传算法的WSN网络节点覆盖优化matlab仿真

基于GA遗传算法的WSN网络节点覆盖优化matlab仿真

时间:2024-07-21 23:42:21浏览次数:14  
标签:end JJ NN WSN 适应度 matlab GA 节点

1.程序功能描述

       通过遗传优化算法,优化WSN无线传感器网络中的各个节点的坐标位置以及数量,使得整个网络系统已最少数量的节点达到最大的网络覆盖率。仿真最后输出覆盖率收敛曲线,节点数量收敛曲线,GA优化前后的覆盖率变化情况。

 

2.测试软件版本以及运行结果展示

MATLAB2022a版本运行

 

 

3.核心程序

while gen < MAXGEN;   
      gen
      Pe0 = 0.999;
      pe1 = 0.001; 
FitnV=ranking(Objv);    
      Selch=select('sus',Chrom,FitnV);    
      Selch=recombin('xovsp', Selch,Pe0);   
      Selch=mut( Selch,pe1);   
      phen1=bs2rv(Selch,FieldD);   

      for a=1:1:NIND
xij     = phen1(a,:);
          X       = xij(1:NN); 
          Y       = xij(1+NN:NN+NN); 
NNbest  = round(xij(end));
          %计算对应的目标值
          [FGL,FGL2,IMG]  = func_obj(X,Y,NNbest,R,W,H,Grids);
          JJ(a,1) = FGL2;
          JJ2(a,1) = FGL;
      end 


Objvsel=(JJ);    
      [Chrom,Objv]=reins(Chrom,Selch,1,1,Objv,Objvsel);   
      gen=gen+1; 

      %保存参数收敛过程和误差收敛过程以及函数值拟合结论
      index1      = isnan(JJ);
      index2      = find(index1 == 1);
JJ(index2)  = [];
      Error2(gen) = mean(JJ);
      [V,I] = min(JJ); 

NNbests=round(phen1(:,end));
      Error0(gen) = mean(NNbests);
      Error1(gen) = mean(JJ2);
end 
figure;
plot(Error0(3:end),'b','linewidth',2);
xlabel('迭代次数');
ylabel('节点数量');
grid on


figure;
plot(Error1(3:end),'b','linewidth',2);
xlabel('迭代次数');
ylabel('覆盖率%');
grid on


figure;
plot(Error2(3:end),'b','linewidth',2);
xlabel('迭代次数');
ylabel('适应度值');
grid on

[V,I] = min(JJ); 
Xo=phen1(I,1:NN); 
Yo=phen1(I,1+NN:NN+NN); 
NNbest=round(phen1(I,end));

figure
for i=1:NNbest
plot(Xo(i),Yo(i),'-r>',...
    'LineWidth',1,...
    'MarkerSize',5,...
    'MarkerEdgeColor','r',...
    'MarkerFaceColor',[0.9,0.9,0.0]);
    hold on
    circle([Xo(i),Yo(i)],R,1000,'m');
    hold on 
i=i+1;
end
axis([0,W,0,H]);

[FGL,FGL2,IMG] = func_obj(Xo,Yo,NNbest,R,W,H,Grids);
title(['优化后','节点数量:',num2str(NNbest),'覆盖率:',num2str(100*FGL),'%']);
12_016m

  

 

4.本算法原理

        无线传感器网络(WSN)是由大量传感器节点组成的一种分布式网络,广泛应用于环境监测、智能交通、农业智能化等领域。节点覆盖优化是WSN中的一个重要问题,它旨在通过合理地部署和调整传感器节点的位置和工作状态,实现对目标区域的有效覆盖,并延长网络的生命周期。

 

4.1、遗传算法原理

       遗传算法是一种模拟生物进化过程的优化算法,通过选择、交叉、变异等操作,不断生成新的解,并在搜索空间中寻找最优解。其基本流程包括初始化种群、计算适应度、选择操作、交叉操作、变异操作和终止条件判断。

 

4.2、WSN节点覆盖优化数学模型

        为了对WSN节点覆盖优化问题进行数学建模,我们作如下假设:传感器节点部署在二维平面上,每个节点的感知范围是一个圆形区域,目标区域是一个矩形区域。我们的目标是最小化所需的工作节点数,同时保证目标区域被完全覆盖。

 

 

 

      覆盖约束:确保目标区域内的每个点至少被一个工作节点覆盖。连通性约束:保证工作节点之间能够相互通信,形成连通网络。这是一个典型的约束优化问题,我们可以采用遗传算法进行求解。

 

4.3、基于GA的WSN节点覆盖优化方法

编码方式:采用二进制编码,每个染色体表示一种节点的工作状态配置。

适应度函数:以适应度函数来衡量每个染色体的优劣,适应度函数综合考虑覆盖率和网络连通性。

选择操作:采用轮盘赌选择法,选择适应度较高的染色体进入下一代。

交叉操作:采用单点交叉,随机选择两个染色体的某一位置进行交换。

变异操作:以一定的概率对染色体中的某个基因进行取反操作。

终止条件:设定最大进化代数或适应度阈值作为终止条件。

 

标签:end,JJ,NN,WSN,适应度,matlab,GA,节点
From: https://www.cnblogs.com/softcodes/p/18315140

相关文章

  • 基于深度学习网络的USB摄像头实时视频采集与手势检测识别matlab仿真
    1.算法运行效果图预览(完整程序运行后无水印) 训练过程如下:   将摄像头对准手势,然后进行识别,识别结果如下:   本课题中,使用的USB摄像头为:   2.算法运行软件版本MATLAB2022a 3.部分核心程序程序中包括MATLAB读取摄像头的配置方法,摄像头配置工具......
  • 利用【MATLAB】和【Python】进行【图与网络模型】的高级应用与分析】
    目录一、图与网络的基本概念1.无向图与有向图2.简单图、完全图、赋权图3.顶点的度4.子图与连通性5.图的矩阵表示MATLAB代码实例Python代码实例 二、最短路径问题1.最短路径问题的定义2.Dijkstra算法MATLAB代码实例Python代码实例三、最小生成树问题1.......
  • P3041 [USACO12JAN] Video Game G 题解 AC自动机
    本题是一道AC自动机上的dp。首先不难想到状态定义f(i,j)表示仅考虑前i 个位置,第i 个字符是j 的分数,但无法转移,所以考虑将j这一维转化为表示AC自动机上的点。再定义val(i)表示以i 结尾的所有技能种数,则转移方程为f(i,j)=max(f(i,j),f(i-1,father(j)+val(j......
  • (7-4-03)RRT算法:基于Gazebo仿真的路径规划系统(3)
    (6)函数select_branch实现了RRT_*_FND算法中的选择分支策略,用于删除不再位于路径上的节点及其子节点。它接收当前达到的节点以及先前的路径作为输入,并根据路径更新图中的节点和边。随着节点的移除,函数会实时显示图的变化。最后,它返回更新后的路径。defselect_branch(G:Graph,......
  • matlab永磁同步电机反馈试验装置的设计和永磁同步电机仿真
    1、内容简介略85-可以交流、咨询、答疑2、内容说明略摘要:得益于电力电子器件及控制技术的高速发展,使得电机的应用越来越方便及精确,适应了实际应用对电机性能及质量提出的更高要求和标准。同时电机测试技术也因为电力电子技术的发展,变得更加智能,更加节能,更加可靠和准确。......
  • 心形,五角星,五星红旗----MATLAB绘图
    目录一、心形绘图1.数学代码2.代码运行结果二、五角星绘图1.数学代码2.代码运行结果三、五星红旗绘图1.数学代码2.代码运行结果        要绘制函数的图形,需要执行以下步骤:1.通过指定变量x的值范围来定义x,为此函数将绘制出来;2.定义函数,y=f(x);3.调用pl......
  • C. Game on Permutation
    原题链接code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;voidsolve(){intn;cin>>n;vector<int>p(n+4);for(inti=1;i<=n;i++)cin>>p[i];set<int>lose,win;//lose表示先移动必输的点f......
  • C. Salyg1n and the MEX Game
    原题链接题解在bob操作之后,alice可以选一个与bob一样的数补充,因此,最后的s为初始s加初始alice添加的元素,所以alice第一次要添加mex初始scode#include<bits/stdc++.h>#definelllonglongusingnamespacestd;inta[100005];voidsolve(){intn;cin>>n;......
  • 【故障诊断】基于斑马优化算法ZOA优化长短记忆网络LSTM实现故障诊断附matlab代码
    %导入数据集load(‘fault_diagnosis_data.mat’);%假设故障诊断数据保存在fault_diagnosis_data.mat文件中%数据预处理%这里省略了数据预处理的步骤,包括数据归一化、特征提取等%划分训练集和测试集train_ratio=0.8;%训练集占总数据的比例train_size=round......
  • 【独家首发】Matlab实现淘金优化算法GRO优化Transformer-LSTM实现负荷数据回归预测
    %导入数据集load(‘load_data.mat’);%假设负荷数据保存在load_data.mat文件中%数据预处理%这里省略了数据预处理的步骤,包括数据归一化、特征提取等%构建Transformer-LSTM模型model=create_transformer_lstm_model();%自定义创建Transformer-LSTM模型的函数......