LEACH&LEACH-C 仿真分析(2)

来源:互联网 发布:手风琴 牌子 知乎 编辑:程序博客网 时间:2024/05/08 12:01

转自:http://blog.csdn.net/xinxiuz/archive/2010/03/10/5364839.aspx

 

网上太多介绍LEACH仿真的步骤,也出现了很多LEACH和LEACH-C的节点死亡趋势图的对比!把LEACH协议在NS2。27下仿真出来了后,也不晓得怎么去做LEACH-C的仿真,不过经过一天的努力,感觉好象只用把仿真时用的2个脚本文件做相应的修改。因为LEACH-C功能实现的文件在MIT下面也已经存在!下面就简单介绍下2个脚本文件修改的过程!首先 将.test文件打开,(路径:C:/cygwin/home/Administrator/ns-allinone-2.27/ns-2.27 test文件 leach_test 及leach-c_test 都放此路径下)在最后一行中加入./leach-c_test。

。。。。。。。

cd ../../
./leach_test
./leach-c_test

这里用到了LEACH-C_TEST,接下来就要写leach-c_test文件了,我是把本身的leach_test文件COPY了一份,然后在它的基础上做修改的。打开该文件,修改的地方如下:

该文件第5行改为 alg=leach-c好象就改这一处!

然后在startxwin.bat下进入路径ns-allinone-2.27/ns-2.27因为在LEACH仿真的时候环境变量和MAKEFILE等文件都已经配置过路径!所以这里不需要配置!OK,直接进行./test。然后等待仿真完毕(等待500秒),观察leach-c.alive文件的大小不在变化。就可以对leach.alive和leach-c.alive进行仿真对比了!

提取数据 画图

cd mit/leach_sims 进入mit/leach_sims 目录下

gawk -f test.awk leach.alive>leach.gnuplot    leach 的数据放在leach.gnuplot中

gawk -f test.awk leach-c.alive>leachc.gnuplot    leach-c 的数据放在leachc.gnuplot中

 

gnuplot回车

在gnuplot> 后输入命令plot 'leach.gnuplot' w linesp, 'leachc.gnuplot' w linesp 回车

在一张图上画多条曲线 用逗号(,)隔开

我仿真对比的图片如下所示:

 

图是出来了,但是好象跟网上仿真的图不是很一样,LEACH-C在70秒的时候就开始有节点死亡了!似乎不正常!但是目前还找不到原因!如果有学NS2的朋友发现了问题记得QQ我!谢谢!
 

LEACH&LEACH-C(绪)

 

 

    看了一些文章,自己总结了一下!对LEACH和LEACH-C又做了一下仿真,发现LEACH和LEACH-C好象他们的使用效果与BS所处的位置有很大的关系!上一篇文章我们的BS坐标是在bs_x=50    bs_y=175,在这次的仿真过程中,我只做了小小的改动,就是把BS的位置做了一定的变化。bs_x=0    bs_y=0。即BS在坐标原点!其他的步骤不变!仿真出来后发现:废话少说,直接上图。
由此图和上篇的图做比较可以明显的发现,当BS在探索区域外时,节点开始死亡的时间从70秒延长到了370,效果更好了!不过LEACH协议好象没什么影响!只不过节点开始死亡后,走势更陡峭了!具体原因还没分析!分析了再发上来!

 
 

自己对这个仿真的最后关于“陡峭”的问题写点个人的看法吧。我个人是这样理解的,LEACH和LEACH-C所有的节点和每个节点的能量都是一样的,我们从节点存活的走势曲线图来分析,要从2方面来入手。第一,节点走势保持在100的时间越久,协议在该场景条件下越优越。第二,在节点开始有死亡后,曲线走向0的时间越少,也就是越接近垂直线的接近0(所谓陡峭)。那么协议也优越。
     在理论上,我们要求我们的节点走势曲线图是  ┑ 这个样子,是最好!因此,我个人认为,在上述仿真过程和场景中LEACH比LEACH-C更符合我总结的这2点,因此它更优越。
     不知道分析的对不对,有人如果有新的想法记得留言一起探讨啊!

 


 

LEACH&LEACH-C(再绪)

 

修改 BS放在200,200 bs_x=200    bs_y=200 leach_test leach-c_test 文件 在。./test

    经过多次的实验后,我把BS的位置换了很多地方,终于能画出一个图能证明我看的那些资料所说的想法!废话少说,继续上图

 


 

 

这个仿真结果我是把BS放在了200,200的位置,因为在我们的仿真脚本文件中,节点是散布在100X100的范围内,而我们的整个仿真场景是设置的1000X1000,所以BS放在200,200时,BS是处于探测区域外。

所以我也可以得出以下结论,当BS位于探测节点范围内部时,LEACH是比LEACH-C优越的,但是当BS在探测区域之外时,LEACH-C会比LEACH更优越!
 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xinxiuz/archive/2010/03/10/5364839.aspx

 

原创粉丝点击