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

113 阅读3分钟

1.程序功能描述

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

 

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

MATLAB2022a版本运行

1.jpeg

2.jpeg

3.jpeg

4.jpeg

5.jpeg

 

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

 

9d3a2f7f5d549ede7549711a6d70e262_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

 

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

 

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

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

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

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

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

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

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