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%。
运行过程
LEACH在运行过程中不断的循环执行簇的重构过程,每个簇重构过程可以用回合的概念来描述。每个回合可以分成两个阶段:簇的建立阶段和传输数据的稳定阶段。为了节省资源开销,稳定阶段的持续时间要大于建立阶段的持续时间。簇的建立过程可分成4个阶段:簇头节点的选择、簇头节点的广播、簇头节点的建立和调度机制的生成。
依据网络中
所需要的簇头节点总数
和
迄今为止每个节点已成为簇头节点的次数
来决定。具体的选择办法是:
每个传感器节点随机选择0-1之间的一个值
。
如果选定的值小于某一个阈值
,那么这个节点
成为簇头节点
。
广播告知整个网络
。网络中的其他 节点
根据接收信息的信号
强度决定从属
的簇,并通知相应的簇头节点,完成簇的建立。最后,簇头节点采用
TDMA方式为簇中每个节点分配向其传递数据的时间点。
,传感器节点将采集的 数据传送
到簇头节点。簇头节点对簇中所有节点所采集的数据进行信息融合后再传送给汇聚节点,这是一种较少通信业务量的合理工作模型。稳定阶段持续一段时间后,网络重新进入簇的建立阶段,进行下一回合的簇重构,不断循环,每个簇采用不同的CDMA代码进行通信来减少其他簇内节点的干扰。
簇建立阶段和稳定运行阶段所持续的时间总和为一轮(round)。
随机生成一个0,1之间的 随机数
,并且与
阈值T(n)
做比较,如果小于该阈值,则该节点就会当选为簇头。T(n)按照下列公式计算:
式中:P为节点成为簇头节点的百分数,r为当前轮数,G为在最近的1/p轮中未当选簇头的节点集合。簇头 节点
选定后,广播自己成为簇头的消息,节点根据接收到的消息的强度决定加入哪个簇,并告知相应的簇头,完成簇的建立过程。然后,簇头节点采用 TDMA
的方式,为簇内成员分配传送数据的 时隙
。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222776.html原文链接:https://javaforall.net

