LEACH算法仿真结果
LEACH算法仿真结果

仿真一:在100*100的区域内随机生成100个节点(matlab仿真代码: clear;xm=100;%x轴范围ym=100;%y轴范围sink.x=0.5*xm;%基站x轴 50sink.y=0.5*ym;%基站y轴 50n=100;E0=0.02;for i=1:1:nS(i).xd=rand(1,1)*xm;S(i).yd=rand(1,1)*ym;S(i).G=0;%每一周期结束此变量为0S(i).E=E0;%设置初始能量为E0S(i).type='N';%节点类型为普通plot(S(i).xd,S(i).yd,'o');hold on;end%设置SINK节点的坐标S(n+1).xd=sink.x;S(n+1).yd=sink.y;plot(S(n+1).xd,S(n+1).yd,'*');%绘制基站节点仿真结果图片:(‘O’代表随机散布的节点,‘*’代表SINK节点)仿真二:LEACH 分簇效果图(matlab 代码见附件)仿真结果:(p=0.1) 1、簇头个数14.01020304050607080901002、簇头个数:113、簇头个数:1201020304050607080901004、簇头个数:10102030405060708090100(p=0.05) 1、簇头=61020304050607080901002、簇头=73、簇头=124、簇头=81020304050607080901005、0102030405060708090100102030405060708090100xyLEACH 分簇算法成簇效果图仿真三:LEACH 分簇算法第一个节点死亡的轮数10203040506070809010001020304050607080901001020304050607080901000102030405060708090100第一死亡节点出现的分布及轮数xy0102030405060708090100xy经过matlab 仿真,LEACH 分簇算法在第一个节点死亡时,已经运行的轮数分别为: 122、143、125、149、122、72.仿真四:20%的节点死亡时分布及轮数1、yx 2、yxy0102030405060708090100x轮数:196、207、205、181.。
无线传感器网络LEACH算法改进及其仿真

【 A b s t r a c t ] T o p r o l o n g e f f e e t i v l y t h e l i f e t i m e o f t h e n e t w o r k , t h i s p a p e r p r o p o s e s a n i m p r o v e d l o w e n e r g y a d a p t i v e ቤተ መጻሕፍቲ ባይዱ c l u s t e r i n g h i e r a r c h y a l g o i r t h m
基于LEACH路由的分簇算法研究

• 73•作为无线传感器网络的重要技术,WSN 路由协议是学术研究的热门话题。
LEACH 协议作为典型的的分簇算法它有很多的优点,但也有不足之处。
本文首先分析了原始的LEACH 算法。
缺点是没有考虑节点的剩余能量和位置。
在本文中,改进了缺陷,并将剩余的能量添加到考虑标准中,并且还增加了簇头之间的距离以避免形成热区域和簇头分布太密集。
通过Matlab 仿真,验证了改进的LEACH 算法可以使簇头分布更均匀,更能节省能耗,提高了网络生命周期。
1 LEACH协议LEACH (Low Energy Adaptive Clustering Hierarchy )全称是“低能耗自适应分簇型路由算法”,它是一种基于LEACH 协议的算法,因此被称作LEACH 算法,它作为层次型分簇路由算法,是无线传感器中很典型的代表(柳丽娜,无线传感器网络中LEACH 算法的研究和改进:吉林大学,2012)。
第一步,节点的初始化;第二步,选出网络中的簇头节点;第三步,正常部分成为簇头之后的初始化(基站的初始化,公共传感器节点的能量等),属于网络的建立阶段,并且选择簇头是在随机过程中生成的。
然后网络稳定来进行数据传输。
这属于一个循环,然后来回循环直到能量耗尽。
其中在选择簇头的过程中,首先会产生0到1的随机数值,如果产生的此数值比T(n)大,那么该节点就被选为簇首,T(n)就作为能否当选为簇头的标准。
T(n)的表达式为:(1)其中:P 是选举的簇头比例;r 是此时正在进行的轮数;G 是此时还没当选簇头的节点集合。
2 LEACH协议不足在分析了经典的LEACH 分簇算法过程中,虽然优点很多,但也存在一些缺点(唐甲东,蔡明,无线传感器网络路由协议研究-LEACH 路由协议的改进:计算机工程,2013):(1)簇头很容易产生在一些能量很低的节点上,从而会大大降低网络的寿命。
(2)簇头节点分布不均匀,有些过于集中,因此能量不能达到均衡状态。
LEACH算法讲解

LEACH算法讲解LEACH(low energy adaptive clustering hierarchy)算法是⼀种⾃适应分簇拓扑算法,它的执⾏过程是周期性的,其中定义了“轮”(round)的概念来实现周期性。
每轮循环分为族的建⽴阶段和稳定的数据通信阶段。
1、在簇的建⽴阶段,相邻节点动态地形成簇,随机产⽣簇头;2、在数据通信阶段,簇内节点把数据发送给簇头,簇头进⾏数据融合并把结果发送给汇聚节点。
由于族头需要完成数据融合、与汇聚节点通信等⼯作,所以能量消耗⼤。
LEACH算法能够保证各节点等概率地担任簇头,使得⽹络中的节点相对均衡地消耗能量。
1、簇头选举⽅法LEACH算法选举簇头的过程如下:节点产⽣⼀个0~1之间的随机数,如果这个数⼩于阀值T(n),则发布⾃⼰是簇头的公告消息。
在每轮循环中,如果节点已经当选过簇头,则把T(n)设置为0,这样该节点不会再次当选为簇头。
对于未当选过簇头的节点,则将以T(n)的概率当选;随着当选过簇头的节点数⽬增加,剩余节点当选簇头的阀值T(n)随之增⼤,节点产⽣⼩于T(n)的随机数的概率随之增⼤,所以节点当选簇头的概率增⼤。
当只剩下⼀个节点未当选时,T(n)=1,表⽰这个节点⼀定当选。
T(n)可表⽰为:其中,P是簇头数量占全部节点数量的百分⽐(⼀般会设为⼀个固定值,如 0.05 ),r是选举轮数,r mod (1/P)代表这⼀轮循环中当选过簇头的节点个数,G是在最后1/P轮中没有成为簇头的节点集。
2、数据通信当簇头选定之后,簇头节点主动向⽹络中节点⼴播⾃⼰成为簇头的消息。
接收到此消息的节点,依据接收信号的强度,选择它所要加⼊的簇,并发消息通知相应的簇头。
基于时分多址(Time Division Multiple Address,简称TDMA)的⽅式,簇头节点为其中的每个成员分配通信时隙,并以⼴播的形式通知所有的簇内节点。
这样保证了簇内每个节点在指定的传输时隙进⾏数据传输,⽽在其他时间进⼊休眠状态,减少了能量消耗。
LEACH协议的改进与仿真研究

文章编号:100721385(2008)022*******LEACH 协议的改进与仿真研究王琳霖1 李曰沈2 田 丰1(11沈阳航空工业学院,辽宁沈阳 110034;21沈阳通盛交通设施标牌厂,辽宁沈阳 110044)摘 要:无线传感器网络由能量受限的节点组成,高效节能的路由算法是路由设计的关键问题。
在LE ACH 算法的基础上,提出了一种新的分簇式路由策略,从簇头个数的确定、簇头选举方法对LE ACH 算法进行了改进,数据传输方式允许采用多跳方式与基站节点通信,仿真结果表明该算法具有降低网络能耗、延长网络生命周期的优点。
关键词:无线传感器网络;分簇路由;簇头;多跳中图分类号:T N915文献标识码:A 无线传感器网络(w ireless sensor net work,简称W S N )[1]是一种新的信息获取和处理模式,具有自组织、动态性、无中心、硬件资源有限、电源容量有限等特点。
基于这些特点,无线传感器网络也面临着一系列问题,因此如何有效地使用能量降低能耗,最大化网络生命周期成为无线传感器网络研究的重点之一。
传感器网络中,网络层的路由技术对W S N 的性能有着极其重要的影响。
随着W S N 研究的发展,许多适合不同网络环境的路由协议陆续出现,分簇路由协议具有拓扑管理方便、能量利用高效、数据融合简单等优点[2][3],成为当前重点研究的路由技术。
以网络的拓扑结构为基础的分簇路由协议,网络被划分为簇,每个簇由一个簇头和多个簇内成员组成,低一级网络的簇头是高一级网络中的簇内成员,由最高层的簇头与基站通信,如图1所示。
图1 分簇路由协议拓扑结构收稿日期22作者简介王琳霖(2),女,山东济南人,助工 在每个簇内,根据一定的机制算法,协调成员节点之间的工作,簇内成员节点将数据信息发送到簇头,簇头负责簇内信息的收集和数据的融合处理以及簇间转发,最后发送至基站B S 完成通信。
本文提出了一种基于LEACH 低功耗自适应分层路由算法的改进策略,通过改变簇头选举策略并采用多跳算法BEM 达到提高网络生命周期的目的。
无线传感器网络LEACH算法的改进与仿真

t i p p rwe a ay e t e o e ai g p n i l fL AC p oo o n r s n n i rv d ag r h , ih tk s it c o n h r tc l S hs a e n lz h p r t r cp e o E H r tc la d p e e t mp o e lo i m wh c a e n o a c u tte p oo o ’ n i a t
p r me es c n i e n t e r a d o iin ic m sa e f t e o e a a tr o sd r g he neg i y n p sto cr u tnc o h n d s,h n e h n d wih e c t e o e t hih r r d mi a c i c mp e nsv g e p e o n n e n o r he ie
p r r n e i s lce o b h l se e d S mu ain rs l e n tae t a e i r v d a g rtm up romst e L e o ma c s ee td t e t e c u t rh a . i lt e ut d mo srt h tt mp o e lo h o t ef r h EAC r tc l n f o s h i H p oo o i
p ro m a e fe e g e ucin, e wo k lftm e p oo g to nd m o trn o e a e a s r n e, t. e r nc s o n r y r d to n t r iei r ln a in a nio g c v rg s u a c ec f i
[课件]NS2网络模拟简介以及MTE、LEACH、LEACH-C协议仿真PPT
![[课件]NS2网络模拟简介以及MTE、LEACH、LEACH-C协议仿真PPT](https://img.taocdn.com/s3/m/fc5bba69e45c3b3567ec8b52.png)
NS2的总体系结构
NS2的目录结构
ns-2.34:存放C++代码的地方; ns-2.34\tcl:存放OTcl代码的地方; Ns-2.34\tcl\lib:存放与组件(agent, node, link, packet, address, routing ) 实现有关的OTcl代码;在此目录下,有以下几个文件:ns-lib.tcl: Simulator 类定义与成员函数实现,如 run,simplexlink,flush-trace等;ns-default.tcl :各种网络组件配置的缺省值。 ns-2.34\tcl\ex, ns-2.34\tcl\test: 存放一些例子脚本文件和验证结果。
NS2的部分类结构
分类器——classifier是Ns-2基本网络组件的一个大类。 它的基本派生类有地址分类器(AddrClassifier)和多播 分类器(McastClassifier)等。基于分类器的基本网络 组件具有1个或多个可能的数据输出路径,属于交换 (Switch)设备(对应来说,连接器Connector只有一个 数据的输出路径)。 拓扑结点(Node)是由一个结点入口对象和若干个分类 器(Classifier)组成的一个符合对象。
节点存活率
节点能量消耗
数据包发送量
仿真后生成 x.data,x.alive,x.energy等文件(x对应的为协 议名称),分别对应的为各个协议的数据包传送个数, 节点生存情况和节点能量消耗,用awk语言编写程序, 提取数据进行分析 在Cygwin中用gnuplot 作出分析结果曲线
节点分布拓扑图(基站位置(0,0))
LEACH模型
无线传感器网络能耗均衡LEACH路由算法

路 由协议
数 据融 合
能耗 均衡
簇头 选取
文献 标志 码 :A
Ab s t r a c t: Ai mi n g a t t he r a n d o mn e s s a n d un e v e n d i s t ib r u t i o n o f c l u s t e r h e a d n o d e s s e l e c t i o n b y u s i n g c l a s s i c a l L EACH ,t h e i mp r o v e d L EACH a l g o it r h m i s p r o p o s e d . Co n s i d e r i n g t h e p r i ma r y e n e r g y c o n s u mp t i o n o f t h e n o d e s i n t h e c l us t e r ,a n d i n t r o d uc i n g f o u r o f t h e p a r a me t e r s ,i . e. , n o d e r e ma i n i n g e n e r y ,n g o d e e n e r g y c o ns u mpt i o n s pe e d,n e t wo r k a v e r a g e r e ma i n i n g e n e r y g a n d n e t wo r k a v e r a g e e n e r g y c o n s u mp t i o n s p e e d。t h e n u mb e r s o f c l u s t e r he a d s a n d c l u s t e r no d e s a r e s e l e c t e d mo r e r e a s o n a b l y,t h us e f f e c t i v e l y r e d u c e s e n e r g y c o n s u mp t i o n a n d p r o l o n g s t h e n e t wo r k l i f e c y c l e .Th e r e s u l t s o f s i mu l a t i o n s h o w t h a t t h e i mpr o v e d lg a o r i t hm i mp l e me n t s e ne r y g c o n s u mp t i o n e q u a l i z a t i o n i n c e r t a i n d e g r e e,t he n e t wo r k e n e r y g c o n s u mp t i o n r e d u c e s 1 4. 7% .a n d t h e n e t wo r k l i f e c y c l e e x t e n ds 1 7. 3% .
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
仿真一:在100*100的区域内随机生成100个节点
(matlab仿真代码: clear;
xm=100;%x轴范围
ym=100;%y轴范围
sink.x=0.5*xm;%基站x轴 50
sink.y=0.5*ym;%基站y轴 50
n=100;
E0=0.02;
for i=1:1:n
S(i).xd=rand(1,1)*xm;
S(i).yd=rand(1,1)*ym;
S(i).G=0;%每一周期结束此变量为0
S(i).E=E0;%设置初始能量为E0
S(i).type='N';%节点类型为普通
plot(S(i).xd,S(i).yd,'o');
hold on;
end
%设置SINK节点的坐标
S(n+1).xd=sink.x;
S(n+1).yd=sink.y;
plot(S(n+1).xd,S(n+1).yd,'*');%绘制基站节点仿真结果图片:(‘O’代表随机散布的节点,‘*’代表SINK节点)
仿真二:LEACH 分簇效果图(matlab 代码见附件)
仿真结果:(p=0.1) 1、簇头个数14.
0102030405060708090100
2、簇头个数:11
3、簇头个数:12
0102030405060708090100
4、簇头个数:10
10
20
30
40
50
60
70
80
90
100
(p=0.05) 1、簇头=6
10
20
30
40
50
60
70
80
90
100
2、簇头=7
3、簇头=12
4、簇头=8
10
20
30
40
50
60
70
80
90
100
5
、
010203040
5060708090
100
102030405060708090100x
y
LEACH 分簇算法成簇效果图
仿真三:LEACH 分簇算法第一个节点死亡的轮数
10
20
30
40
50
60
70
80
90
100
0102030405060708090
100
10
20
30
40
50
60
70
80
90
100
0102030405060708090100
第一死亡节点出现的分布及轮数
x
y
0102030405060708090100x
y
经过matlab 仿真,LEACH 分簇算法在第一个节点死亡时,已经运行的轮数分别为: 122、143、125、149、122、72.
仿真四:20%的节点死亡时分布及轮数
1、
y
x 2、
y
x
y
0102030405060708090100
x
轮数:196、207、205、181.。