基于密度的无线传感器网络聚类算法的博弈分析(Matlab代码实现)

 👨‍🎓个人主页:研学社的博客   

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

提高能源效率是无线传感器网络面临的关键挑战之一,无线传感器网络日益普遍。由于节点(传感器)通常不得不依赖有限的能量存储来执行其数据收集工作,作为对来自其他节点的数据的中继,因此数据传输路径的优化对于提高网络寿命变得很重要。将节点分组到具有簇头(CH)的簇中是实现这一点的常见方式。

然而,节点作为数据收集器和数据中继的两个角色在能耗方面相互冲突;随着数据中继操作(整个网络正常运行所必需的)深入有限的能量存储,它可能会缩短节点的寿命,阻碍其数据收集。自我生存和对网络的贡献之间的这种内在冲突,为博弈论在传感器网络建模中的应用开辟了有趣的途径。本文提出了一个这样的模型——DEGRA,并与其他模型(即LEACH和DEER)进行了比较。该算法通过考虑所讨论的节点以及周围节点的剩余能量来实现这一点。

📚2 运行结果

主函数部分代码:

1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%   Energy Density Based Algorithm Proposed                            %
%                                                                      %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
​
clear;
​
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PARAMETERS %%%%%%%%%%%%%%%%%%%%%%%%%%%%
​
%Field Dimensions - x and y maximum (in meters)
xm = 100;
ym = 100;
%x and y Coordinates of the Sink
%sink.x =0.5 * xm;
%sink.y = ym + 50;
%sink.x=50;
%sink.y=175;
sink.x = -100;
sink.y = -100;
%sink.x=0.5*xm;
%sink.y=0.5*ym;
​
%Number of Nodes in the field
n = 100;
%Optimal Election Probability of a node to become cluster head
%p=0.05;
PacketLength =4000;
ctrPacketLength = 125;
%Energy Model (all values in Joules)
%Initial Energy
Eo = 0.25;
%Eelec=Etx=Erx
ETX=50*0.000000001;
ERX=50*0.000000001;
%Transmit Amplifier types
Efs=10*0.000000000001;
Emp=0.0013*0.000000000001;
%Data Aggregation Energy
EDA=5*0.000000000001;
​
INFINITY = 999999999999999;
%maximum number of rounds
rmax=3000;
%%%%%%%%%%%%%%%%%%%%%%%%% END OF PARAMETERS %%%%%%%%%%%%%%%%%%%%%%%%
%Computation of do
​
do=sqrt(Efs/Emp);
​
%Creation of the random Sensor Network
figure(1);
for i=1:1:n
    S(i).xd(1) = rand(1,1)*xm;%×ø±ê
    %XR(i)=S(i).xd;
    S(i).yd(1) = rand(1,1)*ym;
    %YR(i)=S(i).yd;
    %S(i).G = 0;
    %initially there are no cluster heads only nodes
    S(i).type(1) = 'N';
    S(i).E(1) = Eo;
    %S(i).ENERGY(1) = 0;
    % hold on;
    plot (S(i).xd,S(i).yd,'og')
    hold on;
end
​
S(n+1).xd(1) = sink.x;
S(n+1).yd(1) = sink.y;
%plot(S(n+1).xd, S(n+1).yd, 'x')
hold on;
​
%First Iteration
figure(1);
​
%counter for CHs
countCHs=0;
%counter for CHs per round
rcountCHs=0;
cluster=1;
​
countCHs;
rcountCHs=rcountCHs+countCHs;
flag_first_dead=0;
​
TOT_ENERGY_INIT(1).E = 0;
for i = 1:1:n
    if (S(i).E(1)>0)
        TOT_ENERGY_INIT(1).E = TOT_ENERGY_INIT(1).E + S(i).E(1);
    end
end

🎉3 参考文献

​[1]王超. 无线传感器网络中数据收集方法研究[D].北京邮电大学,2012.

部分理论引用网络文献,若有侵权联系博主删除。

🌈4 Matlab代码实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值