主权项 |
一种基于剩余能量感知的分布式容错拓扑控制方法,包括如下步骤:(1)网络中每个节点u发送自己的HELLO包,并接收初始邻节点发送的HELLO包,该HELLO包中包括节点的ID序列号、剩余能量信息以及位置信息;(2)网络中每个节点u构建自己的局部拓扑子图G<sub>u</sub>:(2a)网络中的每个节点u根据接收到的初始邻节点的HELLO包信息,确定自己与初始邻节点的连接关系,以及这些初始邻节点之间的连接关系,建立局部拓扑子图G<sub>u</sub>;(2b)根据局部拓扑子图,每个节点u计算局部拓扑子图中任意两个有连接关系的节点x,y之间的链路代价权重<img file="FDA0000760706070000011.GIF" wi="156" he="82" />及距离权重<img file="FDA0000760706070000012.GIF" wi="209" he="86" />(3)网络中每个节点u构建局部k连通生成子图S<sub>u</sub>=(V(S<sub>u</sub>),E(S<sub>u</sub>)):(3a)网络中的每个节点u将局部k连通生成子图S<sub>u</sub>的节点集合V(S<sub>u</sub>)初始化成局部拓扑子图中所有节点,将局部k连通生成子图S<sub>u</sub>的边集合E(S<sub>u</sub>)初始化成空集;(3b)基于局部拓扑子图,每个节点u根据链路代价权重<img file="FDA0000760706070000013.GIF" wi="183" he="85" />构建以u为根,遍及局部拓扑子图中所有节点的最短路径树T<sub>u</sub>=(V(T<sub>u</sub>),E(T<sub>u</sub>)),其中V(T<sub>u</sub>)=V(G<sub>u</sub>)为局部拓扑子图中所有节点,E(T<sub>u</sub>)为构成最短路径树的所有有向边;(3c)把最短路径树T<sub>u</sub>中的有向边E(T<sub>u</sub>)全部添加到局部k连通生成子图S<sub>u</sub>中,即<img file="FDA0000760706070000014.GIF" wi="505" he="72" /><img file="FDA0000760706070000015.GIF" wi="61" he="31" />表示赋值,∪表示两个集合的并;(3d)对局部拓扑子图中的有向边按距离权重大小进行排序,获得有序的边序列E′(G<sub>u</sub>);(3e)遍历E′(G<sub>u</sub>)中的每条有向边(x,y),若<img file="FDA0000760706070000016.GIF" wi="303" he="68" />判断节点x,y在S<sub>u</sub>中是否达到k连通:若S<sub>u</sub>中x,y没有达到k连通,则把(x,y)添加到E(S<sub>u</sub>)中,即(x,y)∈E(S<sub>u</sub>),然后开始遍历下一条边,直至遍历完E′(G<sub>u</sub>)中的全部有向边;若S<sub>u</sub>中x,y已达到k连通,则直接遍历下一条边,直至遍历完E′(G<sub>u</sub>)中的全部有向边;(3f)每个节点u将局部k连通生成子图S<sub>u</sub>上的一跳邻节点v作为逻辑邻节点,并构成逻辑邻节点集:LN<sub>u</sub>={v∈V(S<sub>u</sub>)|(u,v)∈E(S<sub>u</sub>)};(4)网络中每个节点u确定自己的发射功率,即将发射功率调整为能够覆盖到局部k连通生成子图S<sub>u</sub>中最远的逻辑邻节点所需要的最小功率:<img file="FDA0000760706070000021.GIF" wi="555" he="81" />(5)每个节点u检查在其发射功率所对应的传输半径范围内是否存在非逻辑邻节点z:若存在非逻辑邻节点z,则把节点u到该节点z的链路添加到局部k连通生成子图S<sub>u</sub>中;若不存在非逻辑邻节点z,则保持原局部k连通生成子图S<sub>u</sub>不变;(6)将网络中的所有节点以及每个节点与自己的逻辑邻节点间的链路组合起来,构成最终的全网拓扑,即G=(V(G),E(G)),其中V(G)为网络中所有节点,E(G)={(u,v)|u∈V(G),v∈LN<sub>u</sub>};(7)在经过一个拓扑更新周期T的时间后,开始重新执行上述步骤1~步骤6。 |