1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJWYm5dw
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
LEACH协议,全称是“低功耗自适应集簇分层型协议” (Low Energy Adaptive Clustering Hierarchy),是一种无线传感器网络路由协议。基于LEACH协议的算法,称为LEACH算法。LEACH算法是一种无线传感器网络路由协议,来源于Wendi Rabiner Heinzelman, Anantha Chandrakasan, 和Hari Balakrishnan三人在2000年Proceedings of the 33rd Hawaii International Conference on System Sciences上的一篇文章Energy-Efficient Communication Protocol for Wireless Microsensor Networks。 该算法基本思想是:以循环的方式随机选择簇头节点,将整个网络的能量负载平均分配到每个传感器节点中,从而达到降低网络能源消耗、提高网络整体生存时间的目的。仿真表明,与一般的平面多跳路由协议和静态分层算法相比,LEACH分簇协议可以将网络生命周期延长15%。
4.部分源码
.....................................................................
IniEng=1;
NetSize=200; % Network Size
NoOfNode=200; % Number of Node
Iteration=2400;
[R1,FD1,TD1,AD1]=leach(IniEng,NetSize,NoOfNode,Iteration,0.1);%% Leach
[R2,FD5,TD5,AD5]=Leach_Centralized(IniEng,NetSize,NoOfNode,Iteration,0.1); %% Centralized Leach
[R3,FD2,TD2,AD2]=Improved1_leach(IniEng,NetSize,NoOfNode,Iteration,0.1); %% Improved Leach 1
r=0:Iteration;
figure
plot(r(1:50:end),R1.DEAD(1:50:end),'-bs',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.0,0.0]);
hold on
plot(r(1:50:end),R2.DEAD(1:50:end),'-bo',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.0,0.9,0.0]);
hold on
plot(r(1:50:end),R3.DEAD(1:50:end),'-b^',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.0,0.0,0.9]);
legend('LEACH','LEACH-C','E-LEACH');
xlabel('x(time)');
ylabel('死亡节点');
figure
plot(r(1:50:end),R1.ALLIVE(1:50:end),'-bs',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.0,0.0]);
hold on
plot(r(1:50:end),R2.ALLIVE(1:50:end),'-bo',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.0,0.9,0.0]);
hold on
plot(r(1:50:end),R3.ALLIVE(1:50:end),'-b^',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.0,0.0,0.9]);
legend('LEACH','LEACH-C','E-LEACH');
xlabel('x(time)');
ylabel('存活节点');
figure;
plot(r(1:50:end),R1.PACKETS_TO_BS(1:50:end),'-bs',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.0,0.0]);
hold on
plot(r(1:50:end),R2.PACKETS_TO_BS(1:50:end),'-bo',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.0,0.9,0.0]);
hold on
plot(r(1:50:end),R3.PACKETS_TO_BS(1:50:end),'-b^',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.0,0.0,0.9]);
legend('LEACH','LEACH-C','E-LEACH');
xlabel('x(time)');
ylabel('Packets数量');
figure;
plot(r(1:50:end),R1.TotalEnergy(1:50:end),'-bs',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.0,0.0]);
hold on
plot(r(1:50:end),R2.TotalEnergy(1:50:end),'-bo',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.0,0.9,0.0]);
hold on
plot(r(1:50:end),R3.TotalEnergy(1:50:end),'-b^',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.0,0.0,0.9]);
legend('LEACH','LEACH-C','E-LEACH');
xlabel('x(time)');
ylabel('剩余能量');
A404