发明内容
针对上述技术问题,本公开提供一种分布式传感器网络的智能拓扑方法及装置,在TORA路由协议生成路由链路后,通过算法缩减路由冗余的边界,节省路由开销,延长分布式传感器网络寿命,在运行中优化网络结构,大幅提高传输效率。
所述一种分布式传感器网络的智能拓扑方法具体包括以下步骤:
步骤1,分布式传感器网络通过TORA路由协议生成路由链路;
步骤2,通过路由链路建立有向无环图构建;
步骤3,根据有向无环图计算出拓扑图;
步骤4,根据拓扑图重设路由拓扑。
进一步地,在步骤1中,所述分布式传感器网络通过TORA路由协议生成路由链路的方法以下子步骤,
步骤1.1,读取设定高度值;
步骤1.2,每一个收到UDP分组的中间节点都需要将本身的高度值与收到UDP分组的节点的高度值进行对比,如果收到UDP分组的节点的高度值大于本身的高度值,则将收到的UDP分组中的高度值更新为节点本身的高度值,然后再向原来给自己发送QRY分组的发送者返回发送修改后的UDP分组,一直循环直到源节点收到了UDP分组为止;
步骤1.3,路由链路的建立过程完成;
所述高度值的获取方法为,如果是由某个中间节点的转发回复,高度值就取这个中间节点本身相对于目标节点高度值。
进一步地,在步骤2中,通过路由链路建立有向无环图的方法为,链路中相邻节点高度值中高的节点用一条边指向高度值低的节点,所有相邻的节点之间构建指向边依次目标节点,所有的边形成了一个有向无环图。
进一步地,在步骤3中,根据有向无环图计算出拓扑图的方法以下子步骤,
步骤3.1,输入:有向无环图G=(V
1,V
2,E),其中V
1和V
2为两个节点集、E为边集、节点集V
2包含节点的度均为1,节点集
参数T,缩减阈值R
R;转到步骤3.2;
步骤3.2,将V1中全部节点按度从大到小顺利排列,并抽取前nh个最大度节点构成节点子集V1 H,其中这nh个节点中相同度重复数的最大值为T,转到步骤3.3;
步骤3.3,计算V1 L=V1/V1 H,设d1,d2,…,ds为有向无环图G中节点集V1的全部节点度,初始化有向无环图G′=(V1′,V2′,E′)←G=(V1,V2,E),初始化节点集V1 L′←V1 L,V1 H′←V1 H,计算最终需要删除边的总数Ed=||E||·RR,初始化变量t=0;转到步骤3.4;
步骤3.4,如果t<Ed,则以概率P=γL′/(γH′+γL′)转到步骤3.5,并以概率1-P转到步骤3.5;否则,G′=(V1′,V2′,E′),其中V1′=V1 H′∪V1 L′,为最终输出结果,转到步骤3.7;其中,
步骤3.5,如果
则随机选择一条与节点v相邻的边e,并更新有向无环图G′=(V
1′,V
2′,E′),E′←E′/{e};如果d
v=0,则更新V
1 L′←V
1 L′/{v};如果
则此步不作任何操作,转到步骤3.6;
步骤3.6,更新t←t+1,转到步骤3.4;
步骤3.7,输出拓扑图G′=(V1′,V2′,E′);
其中,输入的节点集
被包含于拓扑图G′=(V
1′,V
2′,E′),即
图G中节点集V
2包含节点的度均为1,图G′中节点集V
2′包含节点的度均为1;
其中,||S||表示集合S的势,即集合S包含元素的总数;x←y表示将右边的函数或数值y赋值给左边的变量x;当节点v∈V
1或v∈V
1 H或v∈V
1 L,d
v表示节点v在图G=(V
1,V
2,E)的度,其他情况或没有特定约束下,d
v表示节点v在图G′=(V
1′,V
2′,E′)的度;A/B:如果A和B为数值,则表示除法,如果A和B为集合,则表示从集合A中删除集合B的所有元素,A/B:如果A和B为集合,则表示从集合A中删除集合B的所有元素;∈表示“属于”;
表示“不属于”;∧表示“逻辑与”;节点的度是指与该节点相邻边的总数;
表示集合A被包含于集合B;∪表示集合的并集;∩表示集合的交集;输入参数缩减阈值R
R被定义为需要从输入的有向无环图中删除边的总数与该输入有向无环图包含边数的比率符号,可以进行人工调整,d
v(G)表示节点v在图G的度。
本发明还提供了一种分布式传感器网络的智能拓扑装置,所述装置包括:
路由链路生成单元,用于分布式传感器网络通过TORA路由协议生成路由链路;
有向无环图构建单元,用于通过路由链路建立有向无环图构建;
拓扑图计算单元,用于根据有向无环图计算出拓扑图;
路由拓扑单元,用于根据拓扑图重设路由拓扑。
本公开的有益效果为:本公开提供一种分布式传感器网络的智能拓扑方法及装置,在TORA路由协议生成路由链路后,通过算法缩减路由冗余的边界,节省路由开销,延长分布式传感器网络寿命,在运行中优化网络结构,大幅提高传输效率,实现了在大规模的分布式网络中动态的优化路由路径。
具体实施方式
以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示为根据本公开的一种分布式传感器网络的智能拓扑方法及装置工作流程图,下面结合图1来阐述根据本公开的用户偏好分析方法。
本公开提出一种分布式传感器网络的智能拓扑方法,具体包括以下步骤:
步骤1,分布式传感器网络通过TORA路由协议生成路由链路;
步骤2,通过路由链路建立有向无环图构建;
步骤3,根据有向无环图计算出拓扑图;
步骤4,根据拓扑图重设路由拓扑。
进一步地,在步骤1中,所述分布式传感器网络通过TORA路由协议生成路由链路的方法以下子步骤,
步骤1.1,读取设定高度值;
步骤1.2,每一个收到UDP分组的中间节点都需要将本身的高度值与收到UDP分组的节点的高度值进行对比,如果收到UDP分组的节点的高度值大于本身的高度值,则将收到的UDP分组中的高度值更新为节点本身的高度值,然后再向原来给自己发送QRY分组的发送者返回发送修改后的UDP分组,一直循环直到源节点收到了UDP分组为止;
步骤1.3,路由链路的建立过程完成;
所述高度值的获取方法为,如果是由某个中间节点的转发回复,高度值就取这个中间节点本身相对于目标节点高度值。
进一步地,在步骤1中,分布式传感器网络通过TORA路由协议生成路由链路的方法为:
当有数据需要从一个节点发送到另一个节点,但是源节点处缺没有储存有可用的路由信息的时候,源节点就会产生一个记录着目的地址的QRY路由分组,再广播到该节点所有相邻节点,此时称第一个节点为源节点。当源节点的邻节点i收到了源节点广播的QRY分组时:
如果节点i正好就是被请求的目标节点,它将直接回复一个UDP分组并且把自己高度设置为0(0,0,0,0,i);
如果节点i是没有下游链路的,就先判断本节点的RRi的值,如果是0则说明节点i没有收到过该QRY分组,此时先转播该QRY分组,再将自己的RRi设置为1;如果RRi已经是1了,说明节点i已经收到过该QRY分组,由于没有下行链路,则直接丢弃该QRY分组;
如果节点i有一个或者以上的下游链路,先将收到QRY分组的时间和最近一次广播过的UDP分组里的时间做一个对比,如果已经广播过对应的UDP分组则丢弃该QRY分组。
否则经过RRi标识检测之后,节点i会先对比自己存储好的路由表看其中是否有储存了目标节点的路由信息,如果有的话就会回播一个UDP路由分组至源节点;如果没有的话就将该QRY分组转播给节点i的所有的相邻节点,同时设置RRi的值,一直重复直到这个QRY分组传达到目标节点,或者是任意一个拥有任意可以到达目标节点的路由路径信息的中间节点。这时候这个拥有到达目标节点的路由路径信息的那个中间节点就会回播一个UDP路由分组给QRY分组的发送者并且依次回传至源节点为止,在该UDP分组中存储了目标节点的高度值Hi。根据情况这个高度值有两种取法:
如果回应QRY分组的是目标节点本身,它会在回复的UDP包中把高度值设置为0(0,0,0,0,i);
如果是由某个中间节点的转发回复,高度值就取这个中间节点本身相对于目标节点高度值。在之后的回传至源节点的过程中,每一个收到UDP分组的中间节点都需要将本身的高度值与收到UDP分组的节点的高度值进行对比,将收到的UDP分组中的高度值设置为比收到的这个UDP分组中的高度值更高的高度值,同时修改自身的高度值,然后再向原来给自己发送QRY分组的发送者返回发送修改后的UDP分组,一直循环直到源节点收到了UDP分组为止。这样一来,位于这条路由路径中的每一个节点都会获得一个相对于目标节点的高度值,高度值比较高的节点用一条边指向高度值比较低的节点,直到到达目标节点,这样就形成了一个有向无环图,数据包就可以依据这个有向无环图从源节点发送到达目标节点。这样就完成一次路由的建立过程。
进一步地,在步骤2中,通过路由链路建立有向无环图的方法为,链路中相邻节点高度值中高的节点用一条边指向高度值低的节点,所有相邻的节点之间构建指向边依次目标节点,所有的边形成了一个有向无环图。
进一步地,在步骤3中,根据有向无环图计算出拓扑图的方法以下子步骤,
步骤3.1,输入:有向无环图G=(V
1,V
2,E),其中V
1和V
2为两个节点集、E为边集、节点集V
2包含节点的度均为1,节点集
参数T,缩减阈值R
R;转到步骤3.2;
步骤3.2,将V1中全部节点按度从大到小顺利排列,并抽取前nh个最大度节点构成节点子集V1 H,其中这nh个节点中相同度重复数的最大值为T,转到步骤3.3;
步骤3.3,计算V1L=V1/V1 H,设d1,d2,...,ds为有向无环图G中节点集V1的全部节点度,初始化有向无环图G′=(V1′,V2′,E′)←G=(V1,V2,E),初始化节点集V1 L′←V1 L,V1 H′←V1 H,计算最终需要删除边的总数Ed=||E||·RR,初始化变量t=0;转到步骤3.4;
步骤3.4,如果t<Ed,则以概率P=γL′/(γH′+γL′)转到步骤3.5,并以概率1-P转到步骤3.5;否则,G′=(V1′,V2′,E′),其中V1′=V1 H′∪V1 L′,为最终输出结果,转到步骤3.7;其中,
步骤3.5,如果
则随机选择一条与节点v相邻的边e,并更新有向无环图G′=(V
1′,V
2′,E′),E′←E′/{e};如果d
v=0,则更新V
1 L′←V
1 L′/{v};如果
则此步不作任何操作,转到步骤3.6;
步骤3.6,更新t←t+1,转到步骤3.4;
步骤3.7,输出拓扑图G′=(V1′,V2′,E′);
其中,输入的节点集
被包含于拓扑图G′=(V
1′,V
2′,E′),即
图G中节点集V
2包含节点的度均为1,图G′中节点集V
2′包含节点的度均为1;
其中,||S||表示集合S的势,即集合S包含元素的总数;x←y表示将右边的函数或数值y赋值给左边的变量x;当节点v∈V
1或v∈V
1 H或v∈V
1 L,d
v表示节点v在图G=(V
1,V
2,E)的度,其他情况或没有特定约束下,d
v表示节点v在图G′=(V
1′,V
2′,E′)的度;A/B:如果A和B为数值,则表示除法,如果A和B为集合,则表示从集合A中删除集合B的所有元素,A/B:如果A和B为集合,则表示从集合A中删除集合B的所有元素;∈表示“属于”;
表示“不属于”;∧表示“逻辑与”;节点的度是指与该节点相邻边的总数;
表示集合A被包含于集合B;∪表示集合的并集;∩表示集合的交集;输入参数缩减阈值R
R被定义为需要从输入的有向无环图中删除边的总数与该输入有向无环图包含边数的比率符号,可以进行人工调整,d
v(G)表示节点v在图G的度。
本发明还提供了一种分布式传感器网络的智能拓扑装置,如图2所示,所述装置包括:
路由链路生成单元,用于分布式传感器网络通过TORA路由协议生成路由链路;
有向无环图构建单元,用于通过路由链路建立有向无环图构建;
拓扑图计算单元,用于根据有向无环图计算出拓扑图;
路由拓扑单元,用于根据拓扑图重设路由拓扑。
所述一种分布式传感器网络的智能拓扑装置可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述一种分布式传感器网络的智能拓扑装置可运行的装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种分布式传感器网络的智能拓扑装置的示例,并不构成对一种分布式传感器网络的智能拓扑装置的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种分布式传感器网络的智能拓扑装置还可以包括输入输出设备、网络接入设备、总线等。所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种分布式传感器网络的智能拓扑装置运行装置的控制中心,利用各种接口和线路连接整个一种分布式传感器网络的智能拓扑装置可运行装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种分布式传感器网络的智能拓扑装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
尽管本公开的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本公开的预定范围。此外,上文以发明人可预见的实施例对本公开进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本公开的非实质性改动仍可代表本公开的等效改动。