基于构建二信道连通下k点连通的拓扑控制方法与流程

文档序号:12500903阅读:230来源:国知局
基于构建二信道连通下k点连通的拓扑控制方法与流程

本发明属于无线通信领域,特别涉及拓扑控制方法,可用于认知Ad Hoc网络。



背景技术:

在影响认知Ad Hoc网络性能的众多因素之中,网络的拓扑结构是不可忽视的一个方面,因此如何优化认知Ad Hoc网络的拓扑结构、增强网络拓扑的容错能力并为上层通信协议提供良好的底层拓扑支撑是拓扑控制技术研究的重点。

认知Ad Hoc网络户分为两类,一类是主用户,另一类是次用户,主用户享有信道的优先使用权,当主用户不使用信道时,次用户可以使用该信道。由于次用户只能机会式地接入信道,次用户网络的连通性容易受到主用户的影响,当主用户要使用某个信道时,次用户为了保护主用户的正常通信就会空出该信道并处于静默状态,静默节点会降低次用户网络的连通性,严重时会导致网络的分割,为了减小主用户对次用户网络连通性的影响,研究者已经提出了一些拓扑控制算法,如Hai Liu等作者在IEEE ICCCN 2012上发表的文章“Generalized-Bi-Connectivity for Fault Tolerant Cognitive Radio Network”和Xijun Wang等作者在IEEE JSAC 2014上发表的文章“Achieving Bi-Channel-Connectivity with Topology Control in Cognitive Radio Networks”等可以保证次用户网络的连通,并且能够消除次用户之间的干扰,但是这些方法只单独考虑了主用户占用了任意一个信道后,仅仅保证网络的基本连通性。

当网络中次用户因能量耗尽或出现其他突发状况,如硬件损坏而失去与其它次用户通信的能力时,同样可能造成网络的分割,使得次用户间无法建立有效的连接,在这种情况下,为了增强网络的容错能力,研究者已经提出一些拓扑算法,如Ning Li等作者在IEEE TPDS上发表的文章“Localize Fault-Topology Control in Wireless Ad Hoc Networks”,但该算法只单独考虑了保证网络的k点连通,未考虑主用户对次用户的影响,导致主用户占用任意一个信道时次用户网络可能产生分割,使得次用户间无法建立有效的连接。



技术实现要素:

本发明的目的在于针对上述现有技术的问题,提出一种基于构建二信道连通下k点连通的拓扑控制方法,以在主用户任意占用网络的一个信道后,次用户网络仍为k点连通,保证次用户网络在任意k-1个节点失去与其他节点的通信能力时,次用户网络仍能建立有效的连接,同时消除次用户之间的干扰,有效的提高网络的鲁棒性。

为了实现上述目的,本发明的实现步骤包括如下:

(1)初始化网络为k点连通,网络中每个节点u分别获得一跳和两跳节点的序列号和位置信息,k≥2;

(2)根据序列号和位置信息建立局部两跳拓扑子图其中,为的节点集合,为的边集合;

(3)基于局部两跳拓扑子图每个节点u建立局部k-1点连通拓扑子图Gu

(3a)初始化局部k-1点连通拓扑子图节点u根据Gu找到其邻节点集合PNu,并构建k-1点连通拓扑子图SNu

(3a1)初始化第一k-1点连通拓扑子图的节点集合为将节点集合中任意两点在Gu中对应的边赋予的边集合即其中,E(x,y)∈E(Gu),{u}表示节点u组成的集合,PNu为节点u在中的一跳邻节点集合;

(3a2)运用最大流算法判断是否为k-1点连通:若是,则跳到步骤(4),否则,执行步骤(3b);

(3b)初始化第二k-1点连通拓扑子图

(3b1)判断是否为空集:若是,则跳到步骤(3c),否则,执行步骤(3b2);

(3b2)运用最大流算法判断是否为k-1点连通:若是,则跳到步骤(4);否则,按照节点序列号将中的节点m加入顶点集合即同时将节点集合中任意两节点在中对应的边赋予即返回步骤(3b1),其中,

(3c)初始化第三k-1点连通拓扑子图

(3c1)运用最大流算法判断是否为k-1点连通:若是,则跳到步骤(4),否则,执行步骤(3c2);

(3c2)节点u根据步骤(1)和步骤(2)获知其h跳邻节点的信息,得到V(Gu)的所有邻节点按照节点序列号将中的节点w依次加入的节点集合和Gu的节点集合V(Gu),即同时将节点w与V(Gu)中节点的关联边加入的边集合和Gu的边集合,即返回步骤(3c1),其中,c∈V(Gu),且

(4)根据局部k-1点连通拓扑子图Gu,每个节点u计算任意两个有连接关系的节点x,y之间的链路能耗权重wp(x,y)=Px,y和链路距离权重wd(x,y)=dx,y,其中,x,y∈V(Gu),Px,y为任意两个有连接关系的节点x,y之间直接传输所需要的最小发送功率,dx,y是任意两个有连接关系的节点x,y之间的欧氏距离;

(5)网络中每个节点u构建局部生成子图S=(V(S),E(S)),并根据局部生成子图S得到每个节点u的逻辑冲突节点集合LCNu,其中V(S)表示S的节点集合,E(S)表示S的边集合;

(6)每个节点u根据其他节点v发来的拓扑信息更新自己的局部生成子图S和逻辑冲突邻节点集合LCNu,将局部生成子图S上的一跳邻节点作为逻辑邻节点,构成逻辑邻节点集合:其中,v∈V(S)且E(u,v)∈E(S),即节点v属于局部生成子图S的节点集合V(S)且节点u和v对应的边E(u,v)属于局部生成子图S的边集合E(S);

(7)网络中每个节点u确定自己的发射功率,即将发射功率调整为能够覆盖到所有逻辑邻节点所需要的最小功率:其中,Pu,v表示节点u到节点v所需的最小发射功率;

(8)将网络中的所有节点以及每个节点与自己的逻辑邻节点间的链路组合起来,构成最终的全网拓扑,即G=(V(G),E(G)),其中,V(G)为网络中所有节点,E(G)为网络中所有边;

(9)使用贪婪染色算法对已构建的最终全网拓扑G中的每个节点u进行信道分配。

本发明具有如下优点:

1)本发明联合功率控制和信道分配,通过功率控制使得主用户任意占用一条信道后还能保证次用户网络的k点连通;通过信道分配给相互干扰的次用户分配不同的信道,从而消除次用户之间的干扰。

2)本发明通过功率控制构建适合于信道分配的拓扑,避免了高复杂度的连通性判断,从而降低了算法的整体复杂度。而且次用户只需局部拓扑信息,因此算法可以分布式运行。

3)本发明联合功率控制和节点度控制,减小了节点的发射功率和网络所需信道数。

附图说明

图1为本发明适用的认知Ad Hoc网络场景示意图;

图2为本发明的实现总流程图;

图3为本发明在50个节点网络场景中形成的最大功率拓扑;

图4为本发明中构建局部生成子图的子流程图;

图5为本发明中获得k-1点连通子图SNu和局部k-1点拓扑子图Gu的子流程图;

图6为本发明中在k-1点连通子图SNu中构建生成子图SNu'的子流程图;

图7为本发明中根据冲突子图CSu中构建二阶生成子图Su'的子流程图;

图8对本发明生成拓扑的仿真验证图;

图9为对本发明得到的平均传输半径在不同k值下的仿真对比图;

图10为对本发明得到的平均信道数在不同k值下的仿真对比图;

图11为对本发明得到的最大信道数在不同k值下的仿真对比图。

具体实施方式

下面将结合附图对本发明实施方式和效果做进一步详细描述。

参照图1,本发明使用的认知Ad Hoc网络由n个分布在二维平面区域内的节点组成。每个节点代表一个次用户,且具有唯一的序列号,并可以通过GPS或是其他定位技术来获取它自身的位置信息。所有的节点受到同一个主用户的影响,主用户可以使用C个信道中的任意一个信道。每个节点可以在C个信道中的任意一个信道发送数据,同时在其他所有信道上侦听数据,除此之外每个节点在物理结构、初始设置、功能特性、参数指标等方面不存在任何差异。在网络中,任意节点间的无线信道为加性高斯白噪声信道。节点通过全向天线与周围节点通信,最大发射功率均为Pmax。任意节点u的发射功率Pu可以在最小和最大之间连续调节,即0≤Pu≤Pmax。传输半径r为对应于节点发射功率的传输距离,任意两个节点之间存在无线链路的充要条件为它们之间的欧式距离小于或等于节点的传输半径r。

参照图2,本发明的实现步骤如下:

步骤1,网络中每个节点u发送自己的第一节点信息HELLO-1包,并接收一跳邻节点发送的HELLO-1包。

(1a)当网络中每个节点均使用最大功率传输时形成的拓扑结构为最大功率拓扑,如图3所示,最大功率拓扑表示为:Gmax=(V(Gmax),E(Gmax)),其中V(Gmax)为节点集合,表示网络节点,E(Gmax)为边集合,表示节点间存在的无线链路;

(1b)位于节点u的传输半径范围内的所有节点v1,组成节点u的一跳邻节点集合其中,v1∈V(Gmax)且节点u和v1之间存在连接关系,即两者对应的边E(u,v1)属于E(Gmax),节点v1与节点u的距离为1跳;

(1c)网络中的每个节点u以最大发射功率Pmax向u的一跳邻节点广播一次HELLO-1包,该HELLO-1包中含有节点u的序列号和节点u的位置信息;

(1d)网络中的每个节点u接收一跳邻节点以最大发射功率Pmax广播的HELLO-1包。

步骤2,根据上述步骤1中的第一节点信息HELLO-1包,网络中每个节点u发送自己的第二节点信息HELLO-2包,并接收一跳邻节点发送的HELLO-2包。

(2a)节点u利用其一跳和两跳可以到达的所有节点,构成节点u的两跳邻节点集合其中,v2∈V(Gmax)且节点v2至少与节点u的一跳邻节点集合中的一个节点存在关联边,为节点u的一跳邻节点集合,节点v2与节点u的距离为2跳;

(2b)网络中的每个节点u接收完所有一跳邻节点发送的HELLO-1包后,以最大发射功率Pmax向u的一跳邻节点广播一次HELLO-2包,并接收其一跳邻节点发送的HELLO-2包,HELLO-2包中含有u的所有一跳邻节点的序列号和位置信息。

步骤3,网络中每个节点u构建自己的局部两跳拓扑子图

(3a)网络中的每个节点u根据接收到的一跳邻节点发送的第一节点信息HELLO-1和第二节点信息HELLO-2包,获取并记录自己所有两跳邻节点v12的序列号和位置信息,其中

(3b)每个节点u根据自己的位置信息以及两跳邻节点的位置信息,计算任意两个节点x与y之间直接传输所需要的最小发射功率其中,β为根据接收机的灵敏度和误码率要求确定的接收信噪比门限值,α为路径损耗因子,dx,y是节点x,y之间的欧式距离;

(3c)根据计算的最小发射功率Px,y,判断两跳邻节点之间的连接关系,若Px,y小于节点的最大发射功率Pmax,则确定节点x与y之间存在连接关系;否则,节点x与y之间不存在连接关系;

(3d)每个节点u根据两跳邻节点之间的连接关系,建立局部两跳拓扑子图其中的节点集合为的边集合为对于中的任意两个节点x和y,当x到y所需的传输功率小于其最大传输功率时,将节点x和y对应的边E(x,y)赋予即其中,{u}表示节点u组成的集合。

步骤4,网络中每个节点u构建自己的局部k-1点连通拓扑子图Gu

参照图4,本步骤的具体实现如下:

(4a)初始化局部k-1点连通拓扑子图构建k-1点连通拓扑子图SNu

(4a1)初始化第一k-1点连通拓扑子图的节点集合为将节点集合中任意两点在Gu中对应的边赋予的边集合即其中,E(x,y)∈E(Gu),{u}表示节点u组成的集合,PNu为节点u在中的一跳邻节点集合;

(4a2)运用最大流算法判断是否为k-1点连通:若是,则跳到步骤(4d),否则,执行步骤(4b);

(4b)初始化第二k-1点连通拓扑子图

(4b1)判断是否为空集:若是,则跳到步骤(4c),否则,执行步骤(4b2);

(4b2)运用最大流算法判断是否为k-1点连通:若是,则跳到步骤(4d),否则,按照节点序列号将中的节点m加入第二k-1点连通拓扑子图的节点集合即同时将节点集合中任意两节点在局部两跳拓扑子图中对应的边赋予即返回步骤(4b1),其中,

(4c)初始化第三k-1点连通拓扑子图

(4c1)运用最大流算法判断是否为k-1点连通:若是,则跳到步骤(4d),否则,执行步骤(4c2);

(4c2)节点u根据步骤1和步骤2获知其h跳邻节点的信息,得到V(Gu)的所有邻节点按照节点序列号将中的节点w依次加入的节点集合和Gu的节点集合V(Gu),即同时将节点w与V(Gu)中任意节点c的关联边E(c,w)加入第三k-1点连通拓扑子图的边集合和局部k-1点连通拓扑子图Gu的边集合,即返回步骤(4c1),其中,c∈V(Gu),且

以上步骤(4a)到步骤(4c),如图5所示;

(4d)根据局部k-1点连通拓扑子图Gu,每个节点u计算任意两个有连接关系的节点x,y之间的链路能耗权重wp(x,y)=Px,y和链路距离权重wd(x,y)=dx,y,其中,x,y∈V(Gu),Px,y为任意两个有连接关系的节点x和y之间直接传输所需要的最小发送功率,dx,y是任意两个有连接关系的节点x和y之间的欧氏距离。

步骤5,网络中每个节点u构建局部生成子图S,并确定自己的逻辑邻节点。

(5a)网络中的每个节点u将局部生成子图S=(V(S),E(S))的节点集合V(S)初始化成局部k-1点连通拓扑子图Gu中的所有节点,即将边集合E(S)初始化成空集;

(5b)根据局部k-1点连通拓扑子图Gu,运用kruskal最小生成树算法构建最小生成树Tu,并根据k-1点连通子图SNu,运用FLSSk算法构建具有最小节点度的k-1点连通生成子图SNu':

参照图6,本步骤的具体实现如下:

(5b1)初始化k-1点连通生成子图SNu'=(V(SNu'),E(SNu')),令SNu'的边集合E(SNu')为E(SNu),SNu'的节点集合E(SNu')为E(SNu);

(5b2)将E(SNu')中的边以链路距离权重wp(x,y)为链路能耗权重wd(x,y)降序排列,令m表示边集合E(SNu')中元素个数,初始化循环因子i=0;

(5b3)判断i是否等于m:若是,跳到步骤(5c),否则,执行步骤(5b4);

(5b4)将边集合E(SNu')中最大权重边E(x,y)从E(SNu')中去除,即同时将该边权重置零并令i=i+1;运用最大流算法判断节点x和y在SNu'中是否存在k-1条点不相关路径:若是,返回步骤(5b3),否则,将边E(x,y)添加到k-1点连通生成子图SNu'中,即返回步骤(5b3);

(5c)根据最小生成树Tu=(V(Tu),E(Tu))和k-1点连通生成子图SNu'构建一阶生成子图Su=(V(Su),E(Su)),Su的节点集合为Su的边集合为并更新局部生成子图S,即其中,V(Tu)表示Tu的节点集合,E(Tu)表示Tu的边集合,表示赋值;

(5d)网络中的每个节点u根据一阶生成子图Su找到其物理邻节点和冲突邻节点,分别构成邻节点集合PNu和冲突邻节点集合CNu,并初始化逻辑冲突邻节点集合LCNu和冲突子图CSu=(V(CSu),E(CSu)),其中,E(x,y)∈E(Gu),x,y∈CNu;节点u的邻节点集合定义为:沿Su一跳可达的所有节点构成的集合即节点u的冲突邻节点集合定义为:沿Su两跳可达的所有节点构成的集合即表示为节点u的一跳邻节点集合中每个节点的物理邻节点组成的节点集合;

(5e)运用最大流算法判断u的邻节点集合PNu中任意两个节点在冲突子图CSu中是否存在k-1条点不相关路径:若是,则执行步骤(5f),否则,跳到步骤(5g);

(5f)节点u在冲突子图CSu上构建二阶生成子图Su':

参照图7,本步骤的具体实现如下:

(5f1)节点u将二阶生成子图Su′=(V(Su′),E(Su′))中的点集合初始化为CSu中的所有节点,即将边集合初始化为其中x,y∈V(Su'),E(x,y)∈E(CSu),即将节点集合V(Su')中的任意两点在冲突子图CSu中对应的边赋予二阶生成子图Su'的边集合E(Su');

(5f2)将E(Su')中的边以链路距离权重wp(x,y)为链路能耗权重wd(x,y)进行降序排列,令n表示集合E(SNu')中元素个数,初始化循环因子j=0;

(5f3)判断j是否等于n:若是,跳到步骤(5j),否则,执行步骤(5f4);

(5f4)将E(Su')中最大权重边E(x,y)从E(Su')中去除,即同时将该边权重置零并令j=j+1;运用最大流算法判断u的邻节点集合PNu中任意两个节点在Su'中是否存在k-1条点不相关路径:若是,返回步骤(5f3),否则,将边E(x,y)添加到Su'中,即返回步骤(5f3);

(5g)运用最大流算法判断u的邻节点集合PNu中任意两个节点在Gu\u中是否存在k-1条点不相关路径:若是,执行步骤(5h),否则,跳到步骤(5i),其中,Gu\u表示局部k-1点连通拓扑子图Gu去掉节点u和其关联边的生成子图;

(5h)按照步骤(5f1)-(5f4)在Gu\u上构建二阶生成子图Su′,同时,将节点u的邻节点集合PNu中任意两个节点k-1条路径上的节点Pk-1添加到节点u的逻辑冲突邻节点集合LCNu中,即跳到步骤(5j),其中,Gu\u表示局部k-1点连通拓扑子图Gu去掉节点u和其关联边的生成子图;

(5i)节点u利用步骤1和步骤2的方法获取其h跳邻节点信息,构建局部h跳拓扑子图并在上构建二阶生成子图Su',其中,表示去掉节点u和其关联边的生成子图:

(5i1)初始化局部h跳拓扑子图初始化的节点集合为的边集合

(5i2)节点u利用步骤1和步骤2的方法通过发送Hello包获知其h跳邻节点的信息,得到的所有邻节点将节点的邻节点w加入到点集合和逻辑冲突邻节点集合LCNu中,同时将边E(c,w)加入到的边集合中,即其中,并且{w}表示节点w组成的集合;

(5i3)判断节点u的邻节点集合PNu中任意两个节点在中是否存在k-1条点不相关路径:若是,执行步骤(5i4),否则,返回步骤(5i2);

(5i4)参照步骤(5f1)-(5f4)的方法在上构建二阶生成子图Su',同时,将PNu中任意两个节点k-1条路径上的节点Pk-1添加到LCNu中,即

(5j)节点u将二阶生成子图Su'的边集合E(Su')记录到局部生成子图S的边集合E(S)中,即将二阶生成子图Su'的节点集合V(Su')记录到局部生成子图S的节点集合V(S)中,即节点u通过洪泛的方式把LCNu和E(S)的拓扑信息发送给S中的所有节点;

(5k)每个节点u根据其他节点发送来的拓扑信息更新自己的局部生成子图S和逻辑冲突邻节点集合LCNu,将局部生成子图S上的一跳邻节点v作为逻辑邻节点,并构成逻辑邻节点集合:LNu={v∈V(S)|(u,v)∈E(S)},LNu表示节点u的逻辑邻节点集合;

(5l)更新边集信息其中E(S')表示网络中所有节点生成总的生成图的边集合;

其中上述步骤(5b)中所述kruskal算法参照J.B.Kruskal在PASM 1956上发表的"On the shortest spanning subtree of a graph and the traveling salesman problem"pp.48-50;上述步骤(5b)中所述的运用FLSSk中推论构建局部最小节点度k-1点连通子图算法参照Ning Li等作者在IEEE TPDS 2006上发表的文章“Localized Fault-Tolerant Topology Control in Wireless Ad Hoc Networks”;上述步骤4和步骤5中采用的最大流算法判局部是否k-1点连通,参照ShimonEven和R.Endre Tarjan等作者发表的“Network Flow and Testing Graph Connectivity”。

步骤6,网络中每个节点u确定自己的发射功率,即将发射功率调整为能够覆盖到所有逻辑邻节点所需要的最小功率:其中,pu,v表示u到逻辑邻节点v所需最小发射功率。

步骤7,根据上述拓扑控制过程,网络中的每个节点独立确定与自己的逻辑邻节点的连接关系,将网络中的所有节点以及每个节点与自己的逻辑邻节点间的链路组合起来,构成最终的全网拓扑,即G=(V(G),E(G)),其中V(G)=V(Gmax)为网络中的所有节点,E(G)网络中的所有边,也即是网络中每个节点与自己的逻辑邻节点间的链路组成的集合。

步骤8,使用贪婪染色算法对已构建的最终全网拓扑中的每个节点u进行信道分配。

(8a)节点u用最大发送功率Pmax在公共控制信道上广播请求分配信道包RAC,其他节点在收到这个包时需要再次中转该包,直到逻辑冲突邻节点集合LCNu中的所有节点都接收到RAC包为止;

(8b)节点u的逻辑冲突邻节点集合LCNu中所有节点在收到RAC包后,查看自己已经分配的信道,并回馈信道分配包AC给节点u,其中信道分配包AC中包含了该节点已经分配的信道,如果该节点还未分配信道就将包AC记为空包;

(8c)节点u收集所有LCNu中的节点回馈的AC包,从还未被占用的信道中选择主用户占用概率最小的信道,作为自己的可用信道;

(8d)每个节点独立执行上述过程,直到所有节点都分配完信道为止。

本发明的效果可通过仿真进一步说明:

(1)仿真条件

在仿真场景中,网络节点随机均匀分布在一个1000×1000m2的二维平面区域中,将接收信噪比SNR的门限值β设为-80dBm,路径损耗因子α取值为4;网络中所有节点采用相同的最大发射功率,其中最大发射功率Pmax=256mW,对应的最大传输半径Rmax=400m;假设主用户会影响到所有的次用户节点。

(2)仿真内容和结果

仿真1,用本发明在50节点的场景中生成拓扑网络,结果如图8所示,其中

图8(a)为最大功率拓扑;

图8(b)为生成的拓扑,其中的数字表示节点分配的信道;

图8(c)表示主用户占用一个信道时次用户网络的拓扑;

图8(d)表示主用户占用一个信道,同时有一个节点失去与其他节点的通信能力时次用户网络的拓扑;

图8(e)表示主用户占用一个信道,同时有两个节点失去与其他节点的通信能力时次用户网络的拓扑;

通过图8(a)‐8(e)可以看出,本发明方法生成的拓扑在主用户任意占用一个信道时,次用户的网络仍然是k-1点连通。

仿真2,用本发明方法与现有最大功率拓扑MaxPower对节点平均传输半径的不同k值进行仿真,结果如图9所示。

从图9可见,随着网络中次用户节点数的增多,最大功率拓扑MaxPower的平均传输半径保持不变,均为400m,而本发明的平均传输半径随着网络中次用户节点数的增加不断减小,而随着k的增加,平均传输半径不断增加;同时,当k=2时,本发明方法的传输半径小于CBCC算法,可见本发明方法能很好的减小节点的能耗,增大网络的生存期。

仿真3,用本发明方法与现有最大功率拓扑MaxPower对所需平均信道数的不同k值进行仿真,结果如图10所示。

从图10可见,随着网络中次用户节点数的增多,最大功率拓扑MaxPower的平均信道数呈线性增长,本发明方法所需平均信道数较少,且随着网络中次用户节点数的增多,平均信道数缓慢增长,而随着k的增加,平均信道数也缓慢增长,同时当k=2时本发明方法的所需平均信道数小于CBCC算法。

仿真4,用本发明方法与最大功率拓扑MaxPower对所需最大信道数的不同k值进行仿真,结果如图11所示。

从图11可见,随着网络中次用户节点数的增多,最大功率拓扑MaxPower的最大所需信道数呈线性增长,本发明方法最大所需信道数较少,且随着网络中次用户节点数的增多,最大所需信道数缓慢增长,而随着k的增加,平均信道数也缓慢增长,同时,当k=2时,本发明方法的所需最大信道数小于CBCC算法所需最大信道。

从图10和图11可以得出本发明不仅大大节约了信道资源,而且保证了网络的k点连通,从而使得网络具有很好的鲁棒性。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1