认知AdHoc网络中构建K信道连通的分布式拓扑方法与流程

文档序号:11158073阅读:556来源:国知局
认知AdHoc网络中构建K信道连通的分布式拓扑方法与制造工艺

本发明属于无线通信领域,特别涉及一种基于构建K信道连通的网络拓扑结构的方法,可用于认知Ad Hoc网络。



背景技术:

网络的拓扑结构是影响认知Ad Hoc网络性能的一个十分重要的因素,提高认知Ad Hoc网络的鲁棒性、增强网络拓扑的容错能力成为了拓扑控制技术的重点研究方向。认知Ad Hoc网络中有两种用户,一是主用户,另一个是次用户。主用户享有信道的优先使用权。当主用户占用信道时,次用户必须退让该信道处于静默状态,很有可能影响次用户的连通性。而当多个主用户占用多个信道时,会有大量的次用户退让信道的使用权,这可能会使得网络分割的情况将更加严重,因此,多个主用户出现占用信道资源时如何维持认知Ad Hoc网络的连通性成为了一个关键性问题。在Xinjun Wang等作者在IEEE VTC 2014上发表的文章“Bi-Channel-Connected Topology Control in Cognitive Radio Networks”等的算法中可以保证次用户网络的连通,也能消除次用户之间的干扰,但是该方法只对单一主用户有效,当多个主用户出现时,不能保证网络的连通,也不能消除次用户的干扰,从而影响认知Ad Hoc网络的容错能力。



技术实现要素:

本发明的目的在于针对上述现有技术的问题,提出一种认知Ad Hoc网络中构建K信道连通的分布式拓扑方法,以保证次级用户网络的连通性,消除次级用户之间的干扰,从而提高认知Ad Hoc网络的容错能力。

为实现上述目的,本发明的技术方案包括如下:

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

(2)根据步骤(1)中的序列号和位置信息建立局部两跳拓扑子图并计算中任意两个有连接关系的节点x,y之间的链路能耗权重wp(x,y)和链路距离权重wd(x,y);

(3)网络中每个节点u构建局部生成子图Su

(3a)初始化每个节点局部生成子图Su的节点集合V(Su)为局部两跳拓扑子图中的所有节点,初始化每个节点局部生成子图Su的边集合E(Su)为空集;

(3b)基于局部两跳拓扑子图每个节点u根据链路能耗权重wp(x,y),构建以u为根,遍及局部两跳拓扑子图中所有节点的最短路径树Tu=(V(Tu),E(Tu)),其中为局部两跳拓扑子图中的所有节点,E(Tu)为构成最短路径树的所有边,并将这些边记录到局部生成子图的边集合E(Su)中,即E(Su)<=E(Tu)∪E(Su);

(3c)网络中的每个节点u根据最短路径树Tu找到与自己冲突的节点,构成冲突节点集合CNu,并根据CNu和构建冲突子图CSu=(V(CSu),E(CSu)),其中

(3d)判断冲突子图CSu是否为k-1点连通:若是,则将CSu放入到冲突子图集合{CSu}中;否则,在局部两跳拓扑子图中构建k-1点连通冲突子图令即将放入到冲突子图集合{CSu}中;

(3e)判断k-1≥2是否成立:若成立,则执行步骤(3f),否则,跳到步骤(3m);

(3f)初始化i=2,其中i表示冲突子图处于第i层;

(3g)初始化j=1,其中j表示冲突子图CSu中第j个冲突节点;

(3h)令其中{CSu}j表示在冲突子图CSu的第j个节点的冲突子图,表示第i-1层冲突子图;

(3i)对于所有的节点在中找到相应的冲突节点集合CNuv,根据CNuv和构建第i层冲突子图其中的节点集边集

(3j)判断是否为k-i点连通冲突子图:若成立,则将并入到冲突子图集合{CSu}中,否则,构建k-i点连通冲突子图令并将并入到集合{CSu}中;

(3k)判断j是否满足j=|{CSu}|:若成立,执行步骤(3l),否则,j=j+1,跳到步骤(3h);

(3l)判断i是否满足i=k-1:若成立,执行步骤(3m),否则,i=i+1,跳到步骤(3g);

(3m)对集合{CSu}中的所有冲突子图利用分布式二信道连通算法DBCC构建生成子树Su=(V(Su),E(Su)),其中V(Su)表示Su的节点集,E(Su)表示Su的边集;

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

(3p)更新边集信息E(S)=E(S)∪E(Su),更新逻辑邻节点信息LCNu=V(Su),其中E(S)表示网络中所有节点生成总的生成图的边集,LCNu表示节点u的逻辑邻节点集合;

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

(5)将网络中的所有节点以及每个节点与自己的逻辑邻节点间的链路组合起来,构成最终的全网拓扑,即G=(V(G),E(G)),其中V(G)为网络中所有节点,E(G)={(u,v)|u∈V(G),v∈LCNu},其中E(G)表示网络G中的边集;

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

本发明具有如下优点:

1)本发明通过分布式构建局部生成子图,并联合功率控制和信道分配使得次用户网络的独立集不构成网络的割集,解决了多个主用户占用多个信道时,网络不连通的情况,从而保证次用户网络的连通性,实现网络的K信道连通;

2)本发明联合功率控制和信道分配,不仅减小了节点的发射功率,而且也减少了所需的信道数,从而节约了频谱资源。

3)本发明通过对已构建的最终全网拓扑中的每个节点u进行信道分配,消除了次用户之间的干扰。

附图说明

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

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

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

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

图5为本发明中节点u构建拓扑的示例图;

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

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

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

图9为对本发明得到的最大信道数在不同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)为边集合,表示节点间存在的无线链路。

(2b)位于节点u的传输半径范围内的所有节点,组成节点u的一跳邻节点集其中次用户v1和次用户u的距离为1跳;

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

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

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

(2a)节点u用在两跳以内包括两跳可以到达的所有节点,组成节点u的两跳邻节点集∪表示两个集合的并,&&表示并且,其中次用户v2和次用户u的距离为2跳;

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

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

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

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

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

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

(3d)每个节点u根据两跳邻节点之间的连接关系,建立局部两跳拓扑子图其中的节点集合为局部两跳拓扑子图的边集合为:即对于中的任意两个节点当时,将边放入到局部两跳拓扑子图的边集合中;

(3e)每个节点u计算任意两个有连接关系的节点x,y之间的链路能耗权重:wp(x,y)=Px,y,其中,Px,y为任意两个有连接关系的节点x,y之间直接传输所需要的最小发送功率;

(3f)节点u计算任意两个有连接关系的节点x,y之间的链路距离权重:wd(x,y)=dx,y,其中,dx,y是任意两个有连接关系的节点x,y之间的欧氏距离。

步骤4,网络中每个节点u构建局部生成子图Su=(V(Su),E(Su)),并确定自己的逻辑邻节点。

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

(4a)初始化每个节点局部生成子图Su的节点集合V(Su)为局部两跳拓扑子图中的所有节点,初始化每个节点局部生成子图Su的边集合E(Su)为空集;

(4b)基于局部两跳拓扑子图以链路能耗权重wp(x,y)为链路权重,节点u通过使用Dijkstra算法,构建以u为根,遍及局部两跳拓扑子图中所有节点的最短路径树Tu=(V(Tu),E(Tu)),其中为局部两跳拓扑子图中的所有节点,E(Tu)为构成最短路径树的所有边,从而在局部范围内获得到达局部两跳拓扑子图中任意节点的最短路径,并将这些边记录到局部连通子图Su中,即E(Su)<=E(Tu)∪E(Su),<=表示赋值;

(4c)网络中的每个节点u根据最短路径树Tu找到与自己冲突的节点,构成冲突节点集合CNu,并根据CNu和构建冲突子图CSu=(V(CSu),E(CSu)),其中V(CSu)=CNu

(4d)根据最大流算法判断冲突子图CSu是否为k-1点连通:

若是,则将CSu放入到冲突子图集合{CSu}中;

否则,在局部两跳拓扑子图中构建k-1点连通冲突子图令即将放入到冲突子图集合{CSu}中,按如下(4d1)-(4d2)构建k-1点连通子图:

(4d1)根据的冲突节点集合CNu,添加冲突节点v的邻节点x和节点对(v,x)所连接的边E(v,x)到中,形成其中v∈CNu

(4d2)根据最大流算法判断是否k-1点连通:若成立,令否则,返回到步骤(4d1);

(4e)判断k-1≥2是否成立:若成立,则执行步骤(4f),否则,跳到步骤(4m);

(4f)初始化i=2,其中i表示冲突子图处于第i层;

(4g)初始化j=1,其中j表示冲突子图CSu中第j个冲突节点;

(4h)令其中{CSu}j表示在冲突子图CSu的第j个节点的冲突子图,表示第i-1层冲突子图;

(4i)对于所有的节点在中找到相应的冲突节点集合CNuv,根据CNuv和构建第i层冲突子图其中的节点集边集

(4j)根据最大流算法判断是否为点连通冲突子图k-i:

若是,则将并入到冲突子图集合{CSu}中;

否则,构建k-i点连通冲突子图令并将并入到集合{CSu}中,按如下(4j1)-(4j2)构建k-i点连通子图::

(4j1)根据的冲突节点集合CNuv,添加冲突节点w的邻节点x和节点对(w,x)所连接的边E(w,x)到中,形成其中w∈CNuv

(4j2)根据最大流算法判断是否为k-1点连通:若成立,令否则,返回到步骤(4j1);

(4k)判断j是否满足j=|{CSu}|:若成立,执行步骤(4l),否则,j=j+1,跳到步骤(4h);

(4l)判断i是否满足i=k-1:若成立,执行步骤(4m),否则,i=i+1,跳到步骤(4g);

(4m)对集合{CSu}中的所有冲突子图利用分布式二信道连通算法DBCC构建生成子树Su=(V(Su),E(Su)),其中V(Su)表示Su的节点集,E(Su)表示Su的边集,具体步骤如下:

(4m1)对于集合{CSu}中的每个冲突子图构造相应的局部生成子图T′u=(V(T′u),E(T′u));

(4m2)更新局部生成子图Su的边集E(Su),即E(Su)<=E(T′u)∪E(Su),更新局部生成子图Su的边集V(Su),即V(Su)<=V(T′u)∪V(Su),并将节点V(T′u)记录到逻辑冲突邻居集LCNuv中,即LCNuv=V(T′u),然后节点u通过洪泛的方式把LCNuv和E(Su)的拓扑信息发送给Su中的所有节点。

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

(4p)更新边集信息E(S)=E(S)∪E(Su),更新逻辑邻节点信息LCNu=V(Su),其中E(S)表示网络中所有节点生成总的生成图的边集,LCNu表示节点u的逻辑邻节点集合;

通过步骤(4c)-(4m),得到具体的局部生成子图Su的结果如图5所示,其中第一层表示节点u的k-1点连通冲突子图第二层表示的任一节点v的相应的k-2点连通冲突子图第三层表示任一节点v的相应的k-2点连通冲突子图的任一节点w的相应的k-3点连通冲突子图最后一层表示最终形成的局部生成子图Su

其中上述步骤(4b)中所述Dijkstra算法参照Xinjun Wang等作者在IEEE VTC 2014上发表的文章“Bi-Channel-Connected Topology Control in Cognitive Radio Networks”;上述步骤(4d)中采用的最大流算法判断冲突子图是否k-1点连通和步骤(4j)中采用的最大流算法判断冲突子图是否k-i点连通,参照Shimon Even和R.Endre Tarjan等作者发表的“Network Flow and Testing Graph Connectivity”。

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

步骤6,根据上述步骤4-步骤5拓扑控制过程,网络中的每个节点独立确定与自己的逻辑邻节点的连接关系,将网络中的所有节点以及每个节点与自己的逻辑邻节点间的链路组合起来,构成最终的全网拓扑,即G=(V(G),E(G)),其中V(G)为网络中所有节点,E(G)={(u,v)|u∈V(G),v∈LCNu}.

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

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

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

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

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

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

(1)仿真条件

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

(2)仿真内容和结果

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

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

图6(b)为本发明方法生成的拓扑,其中的数字表示节点分配的信道;

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

图6(d)表示两个主用户占用两个信道时次用户网络的拓扑;

图6(e)表示三个主用户占用三个信道时次用户网络的拓扑;

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

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

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

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

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

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

从图9可见,随着网络中次用户节点数的增多,最大功率拓扑MaxPower的最大所需信道数呈线性增长,本发明方法最大所需信道数较少,且随着网络中次用户节点数的增多,最大所需信道数缓慢增长,而随着k的增加,平均信道数也缓慢增长,从图8和图9可以得出本发明不仅大大节约了信道资源,而且维持了网络的连通性,从而使得网络具有很好的鲁棒性。

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