1.一种无线传感器网络动态分簇路由方法,其特征在于,所述方法包括以下步骤:
步骤1,初始化无线传感器网络;
步骤2,构造无线传感器网络的拓扑图模型;
步骤3,将拓扑图模型生成有向拓扑图;
步骤4,构造基于最小成本数据链路转换次数的最小成本树;
步骤5,计算最小成本数据链路数;
步骤6,根据最小成本数据链路数进行数据链路和路由分配;
其中,构造无线传感器网络的拓扑图模型的方法为,用拓扑图G(V,E,W)来表示无线传感器网络传输数据的路由路径的数据链路图,其中V={v1, v2,…, vn}是无线传感器网络节点集,无线传感器网络节点以下简称节点,E={eij}是网络链路的集合,每条链路eij表示节点vi到vj的一个拓扑路径,vi和vj是链路eij的两个端点,W={w1,w2,…, wk}表示网络中的可用能量集,即网络中每条链路上可用能量集的并集,r(s;D)表示从源节点s到簇头节点集D的组播传送,且D⊆V-{s},设无线传感器网络中的每个节点都具有独立的能量储备,且每个节点都能够从与当前节点连接转换连接到与下一个相邻的节点进行通信连接,即路由节点的路径可变,用w(e)表示链路e上的可用能量集,e∈E,V(wi)表示链路可用能量集中含有数据链路wi的所有链路e的端点集合,如果v∈V(w),则称v被数据链路w分簇,E(wi)表示链路可用能量集中含有数据链路wi的所有链路e的集合,由V(wi)和E(wi)所构成的拓扑图叫做wi的分簇簇区;
其中,将拓扑图模型生成有向拓扑图的方法为,根据每一个节点所在的分簇簇区的链路及节点情况,将拓扑图G(V,E,W)表示成k个分簇簇区G(V(wi),E(wi), wi),i=1,2,…,k,若G(V(wi), E(wi), wi)不连通,即分簇数据链路wi的节点集和链路集所构成的拓扑图是不连通的,则先将V(wi)分成cmi个连通图,wi∈W也相应地分成cmi个数据链路,即个,将拓扑图G(V,E,W)中的数据链路集合转换为,i=1,2,…,k,拓扑图G(V,E,W)可分离成l个分簇簇区G(V(wi),E(wi), wi),i=1,2,…,l,对每个分簇簇区用λi,i=1,2,…,l来表示, 并用λvi表示λi分簇的网络节点集,将每个λi,i=1,2,…,l作为一个数据链路节点,并与源节点s及簇头节点一起构成一个新图F(V,E,ω),其中V表示拓扑图的节点集,它由数据链路节点、源节点和簇头节点构成,即V={s}∪{λi}∪D ,i=1,2,…,l,E是拓扑图F中的链路集合,生成方法如下:若λi所分簇的网络节点集λvi中包含源节点s,则将λi与s用一条s→λi的有向边相连,设有向边的权值ω为0;若λi所分簇的网络节点集λvi中包含某个簇头节点d,d∈D,则将λi与d用一条λi→d的有向边相连,设有向边的权值ω为0;若λi所分簇的网络节点集λvi与λj所分簇的网络节点集λvj中有公共的节点,则将λi与λj用一条无向边相连,并设有向边的权值ω为1,用dij表示λi与λj共同分簇的节点集合,这样设定边的权值的目的是只有需要跨越两个不同数据链路的连接时,才将边的权值设为1,即此时必须经过一次数据链路转换,而在可用相同数据链路连接的两个点间,由于无需数据链路转换,所以设这些边的权值为0,如此生成一个新的有向拓扑图F(V,E,ω);
其中,构造基于最小成本数据链路转换次数的最小成本树的方法为,以拓扑图F(V,E,ω)为基础,从源节点s出发,采用启发式最小成本组播树算法构造一个总权值最小的组播树,生成的最小成本树以源节点为根,连接到所有簇头节点,具体步骤为:
步骤4.1,令树F’为空,将源节点加入树中;
步骤4.2,通过Dijkstra算法计算任意一个不在树F’中的簇头节点到树F’权值最小的最短路径并加以比较,将其中路径成本最小的簇头节点及其相应的最短路径加入到树F’中;
步骤4.3,判断树F’是否包含了所有的簇头节点,若不是转到步骤4.2;若树F’已经包含了所有的簇头节点,则树F’即为一个从源节点到所有簇头节点总权值最小的steiner树,记为F’(V,E),组播树是以总权值最小为目标生成的,在组播树中,从源节点到簇头节点的通信链路在经过权值为1的链路时,由于跨过了两个不同的数据链路,要想完成信息的正确传输,就必须进行一次数据链路转换,所以说这棵组播树的总权值就是完成此项组播业务最少所需的数据链路转换次数,启发式最小成本组播树算法是首先将源节点加入到树T中,然后从余下的簇头节点中选取到树T的路径最短的那个节点,如有多个则随机选取一个,将簇头节点和这条路径上的所有边和节点加入到树T中,直到所有的簇头节点都加入到树T中为止;
其中,计算最小成本数据链路数的方法为,首先将拓扑图G(V,E,W)分离成l个连通的分簇簇区G(V(wi),E(wi), wi),i=1,2,…,l,对每个分簇簇区用λi,i=1,2,…,l来表示,用λvi表示λi分簇的网络节点集,将λi,i=1,2,…,l作为节点,与源节点s及簇头节点一起共同构成一个新图H(V,E,ω),其中V={s}∪{λi}∪D,i=1,2,…,l,E是拓扑图F中的链路集合,生成方法如下:若λi所分簇的网络节点集λvi中包含源节点s,则将λi与s用一条s→λi的有向边相连,设有向边的权值为1,即组播树只要使用了这个数据链路,所使用的总数据链路数就要加1;若λi所分簇的网络节点集λvi中包含某个簇头节点d,d∈D,则将λi与d用一条λi→d的有向边相连,设有向边的权值为0;两个有相同的分簇节点的数据链路节点用一条无向边相连,并设其权值为1,如此生成一个新的有向拓扑图H(V,E,ω),将有向拓扑图H(V,E,ω)依照最小成本树的生成方法生成一个权值最小的组播树,组播树中的数据链路节点的个数就是完成此项组播业务所需的最小数据链路数;
其中,根据最小成本数据链路数进行数据链路和路由分配的方法为,以最小成本数据链路转换次数为基础进行数据链路和路由分配,在上面生成的组播树F’(V,E)中,所有数据链路节点对应的数据链路就是完成此项组播业务所需要的数据链路,设这些数据链路的集合为Λ,分别找出F’(V,E)中从源节点到每个簇头节点的最短路,将这条最短路上的每个数据链路节点还原成它所对应的分簇簇区,并在分簇簇区的每条链路上标记数据链路节点所对应的数据链路,若有一条链路被F’(V,E)中的多个数据链路节点分簇,则在链路上标记这些数据链路节点所对应的多个数据链路值,这时,F’(V,E)中从源节点到一个簇头节点的最短路就转换成包含源节点和簇头节点的拓扑图,在这个拓扑图上采用Dijkstra最短路算法求出从源节点到簇头节点跳数最小的路由,链路上所标的数据链路为这条最短路可选用的数据链路,这样就同时完成了从源节点到簇头节点的选路和数据链路分配。