首页 > 其他分享 >m基于NSGAII优化的WSN网络覆盖率问题matlab仿真,优化激活节点数量,网络能耗以及覆盖率

m基于NSGAII优化的WSN网络覆盖率问题matlab仿真,优化激活节点数量,网络能耗以及覆盖率

时间:2023-05-13 23:33:01浏览次数:38  
标签:支配 覆盖率 步骤 decision Object 网络 Pop 个体 优化

1.算法仿真效果 matlab2022a仿真结果如下: 2.png1.png3.png5.png6.png7.png4.png

2.算法涉及理论知识概要 首先将一群具有多个目标的个体(解集,或者说线代里的向量形式)作为父代初始种群,在每一次迭代中,GA操作后合并父代于自带。通过非支配排序,我们将所有个体分不到不同的pareto最优前沿层次。然后根据不同层次的顺序从pareto最优前沿选择个体作为下一个种群。出于遗传算法中的“物种多样性”保护,还计算量“拥挤距离”。拥挤距离比较将算法各阶段的选择过程引向一致的前沿。

   与单目标(遗传算法)最大的不同就是进行选择操作之前进行快速非支配排序,这一步也是为了选择操作而来的,选择哪些、怎么选是通过非快速支配排序来的。这就不像单目标,挑好的选就行了。
   支配: 在多目标优化问题中,如果个体p至少有一个目标比个体q好,而且个体p中的所有目标都不比个体q差,那么称个体p支配个体q。

  序值: 如果p支配q,那么p的序值比q低。如果p和q互不支配,那么p和q有相同的序值。

  拥挤距离:用来计算某前端中的某个体与该前端中其他个体之间的距离,用以表征个体间的拥挤程度。希望pareto解出来之后,点与点之间距离是相近的,不要太多的聚集在某个地方。用某个点与前后两个点之间的xy的距离和表示。算法会选择拥挤距离大的去领头。

 快速非支配排序:快速非支配排序就是将解集分解为不同次序的Pareto前沿的过程。将一组解分成n个集合:rank1,rank2…rankn,每个集合中所有的解都互不支配,但ranki中的任意解支配rankj中的任意解(i<j).

综上所述,NSGAII的步骤如下所示:

步骤1:编码。遗传算法在进行搜索之前,将变量编成一个定长的编码——用二进制字符串来表示,这些字符串的不同组合, 便构成了搜索空间不同的搜索点。 步骤2:产生初始群体。随机产生N个字符串,每个字符串代表一个个体。 步骤3:按目标函数的个数分割子群体,对每个子群体进行如下操作: 1)计算目标函数值(此步调用ANSYs有限元程序,将ANSYS有限元程序得到的后处理结果传给MATLAB程序作为目标函数值); 2)计算每个个体的适应度,本文中采用线性排序法和选择压差为2估算适应度; 3)用随机遍历抽样方法在每个子种群中选择个体。 步骤4:将每个子种群中选择出的个体进行合并。 步骤5:交叉操作。本文中采用的是单点交叉操作。 步骤6:变异。对个体按给定的概率进行变异,形成新一代群体。 步骤7:将步骤6产生的个体合重复进行步骤3~ 步骤6的操作,直至完成规定的遗传迭代总次数。 ————————————————

优化目标1:

    网络覆盖率是衡量网络覆盖性能最重要的指标,一般定义为所有工作节点覆盖的总范围与目标区域面积大小的比值,其中传感器节点覆盖的范围取所有节点覆盖面积的并集。因此,网络覆盖率总是小于或者等于 1。

优化目标2:

节点倒数

当节点使用越少的时候,这个指标就越小

优化目标3:

网络的均衡能耗

    实际系统中,整个网络的各个节点的剩余能量是不同的,为了使得建立的新的覆盖范围的网络具有更久的使用寿命,我们必须考虑建立的优化目标的网络节点剩余能量。

3.MATLAB核心程序

      Pop_comb(1:Pop_num,1:Num_Object+N_decision_var+2)                = Pop_Gat_dist;
      [Size_x,Size_y]                                                  = size(Off_Gens);
      Pop_comb(Pop_num+1:Pop_num+Size_x,1:Num_Object+N_decision_var+2) = Off_Gens;
      %非支配排序和聚焦距离更新
      [gen_non_dominant_pop,Pop_Info] = func_non_dominant_sort(Pop_comb,Num_Object,N_decision_var);
      nsdc_pop                        = func_crowding_distance(gen_non_dominant_pop,Num_Object,N_decision_var,Pop_Info);
      %交叉变异
      [Pop_Gat_dist]   = func_gene_off(nsdc_pop,Num_Object,N_decision_var,Pop_num);
      
      %选择,交叉,变异产生下一个子代
      poolsize   = round(Pop_num/2);
      %选择锦标赛的元度
      toursize   = 2;
      select_pop = func_sel(Pop_Gat_dist,poolsize,toursize,Num_Object,N_decision_var);
      [Off_Gens,Object] = func_gene_oper(select_pop,Num_Object,N_decision_var,Pc,Pm,xmax,xmin,Para,X,Y,Pdet,r);
      t          = t+1;
      
      %保存每次迭代的优化结果
..............................................................
      end
      %Pc和Pm的自适应更新
      if t == 1
         Pc = 20;
         Pm = 20;
      else
         delta = abs(Opt_node2(t) - Opt_node2(t-1))+abs(Opt_same2(t) - Opt_same2(t-1))+abs(Opt_power2(t) - Opt_power2(t-1));
         Pc    = 20/(1+exp(-delta));
         pm    = 20/(1+exp(-delta));
      end
      %保存不同覆盖率下的覆盖节点值
      load node.mat
      Nodes(t,:) =  NODES;
 
end

标签:支配,覆盖率,步骤,decision,Object,网络,Pop,个体,优化
From: https://blog.51cto.com/matworld/6274118

相关文章

  • m基于NSGAII优化的WSN网络覆盖率问题matlab仿真,优化激活节点数量,网络能耗以及覆盖率
    1.算法仿真效果matlab2022a仿真结果如下:           2.算法涉及理论知识概要      首先将一群具有多个目标的个体(解集,或者说线代里的向量形式)作为父代初始种群,在每一次迭代中,GA操作后合并父代于自带。通过非支配排序,我们将所有个体分不到不......
  • 【容器化应用程序设计和开发】2.4 容器网络和存储
    往期回顾:第一章:【云原生概念和技术】第二章:2.1容器化基础知识和Docker容器第二章:2.2Dockerfile的编写和最佳实践第二章:2.3容器编排和Kubernetes调度2.4容器网络和存储容器网络和存储是容器化应用中非常重要的两个概念。容器网络可以帮助不同的容器之间进行通信,而容器存......
  • 你对这4个ICT行业的网络设备,可能一无所知
    晚上好,我是老杨。上个月给你整了篇安全方向的报告分析,反响不错。那篇主要是对网络安全的就业前景和怎么入门进行了具体分析,没看过的可以看看:《一不留神,网络安全工程师的岗位需求,破237万了》。不少小友反馈,希望老杨可以多出一些行业内的专业性分析,毕竟数据、图表,才是大实话。这不,开......
  • GWO-GRU多变量回归预测,灰狼算法优化门控循环单元的回归预测(Matlab)
    GWO-GRU多变量回归预测,灰狼算法优化门控循环单元的回归预测(Matlab)1.data为数据集。2.MainGWO_GRUNN.m为程序主文件,其他为函数文件无需运行。3.命令窗口输出R2、MAE和MBE。4.灰狼算法优化参数为学习率,隐藏层节点个数,正则化参数。ID:4929695080564332......
  • PSO-SVM粒子群优化支持向量机的数据分类预测(Matlab) 1.输入多个特
    PSO-SVM粒子群优化支持向量机的数据分类预测(Matlab)1.输入多个特征,分四类2.运行版本2018b及以上所有程序经过验证,保证原始程序有效运行。ID:2229695080756287......
  • GWO-BiLSTM多变量回归预测,灰狼算法优化双向长短期记忆网络的回归预测(Matlab)
    GWO-BiLSTM多变量回归预测,灰狼算法优化双向长短期记忆网络的回归预测(Matlab)1.data为数据集。2.MainGWO_BiLSTMNN.m为程序主文件,其他为函数文件无需运行。3.命令窗口输出R2、MAE和MBE,可在下载区获取数据和程序内容。4.灰狼算法优化参数为学习率,隐藏层节点个数,正则化参数。ID:252969......
  • SSA-CNN-GRU麻雀算法优化卷积门控循环单元时间序列预测(Matlab)
    SSA-CNN-GRU麻雀算法优化卷积门控循环单元时间序列预测(Matlab)所有程序经过验证,保证有效运行。可有偿替换数据及其他服务。2.输入数据为单变量时间序列数据,即一维数据;3.运行环境Matlab2020b及以上,data为数据集,运行主程序SSA-CNN-GRUTS,其余为函数文件无需运行,所有程序和数据放在一个......
  • SSA-CNN-LSTM麻雀算法优化卷积长短期记忆神经网络时间序列预测(Matlab)
    SSA-CNN-LSTM麻雀算法优化卷积长短期记忆神经网络时间序列预测(Matlab)所有程序经过验证,保证有效运行。可有偿替换数据及其他服务。2.输入数据为单变量时间序列数据,即一维数据;3.运行环境Matlab2020b及以上,data为数据集,运行主程序SSA-CNN-LSTMTS,其余为函数文件无需运行,所有程序和数据......
  • PSO-GRU多变量回归预测,粒子群优化门控循环单元(Matlab) 所有程序
    PSO-GRU多变量回归预测,粒子群优化门控循环单元(Matlab)所有程序经过验证,保证有效运行。1.data为数据集,输入7个特征,输出一个变量。2.PSO_GRU.m为程序主文件,fitness为函数文件无需运行。3.命令窗口输出R2、MAE和RMSE。4.粒子群优化门控循环单元,优化隐含层单元数量和初始学习率。注......
  • LSTM长短期记忆神经网络多输入多输出预测(Matlab) 所有程序经
    LSTM长短期记忆神经网络多输入多输出预测(Matlab)所有程序经过验证,保证有效运行。1.data为数据集,10个输入特征,3个输出变量。2.MainLSTMNM.m为主程序文件。3.命令窗口输出MAE和R2,ID:8466693061106335......