一种基于迭代编码的多约束组播路由算法

文档序号:7799654阅读:131来源:国知局
一种基于迭代编码的多约束组播路由算法
【专利摘要】本发明涉及网络通讯领域,尤其是一种基于迭代编码的多约束组播路由算法。本发明针对现有技术存在的问题,在具有多约束要求的通信网路中,提供一种本发明一种基于迭代编码的多约束组播路由算法。设计具备去除环路功能并且具有较好编解码适用性的组播树编码方法,同时,该方法对于已经生成的组播树也具有消除环路的功能。本发明通过合并两棵组播树,生成新的组播树;判定新组播树满足路由约束条件或者计算过程达到迭代次数后输出组播树。
【专利说明】一种基于迭代编码的多约束组播路由算法
【技术领域】
[0001]本发明涉及网络通讯领域,尤其是一种基于迭代编码的多约束组播路由算法。
【背景技术】
[0002]在当前的网络通信中,组播通信是一种重要的方式。组播通信相比于单播通信,在点到多点的数据传输方面更为有效。实现组播通信的关键是建立组播路由。与单播通信中的传输路径不同,组播路由的拓扑是一棵组播树。目前,通信网络承载的业务有着差异化的网络传输QoS要求。这些要求主要体现在网络通信过程中的传输时延、时延抖动、吞吐量和丢包率等几个方面。这使得多约束条件下的组播路由问题成为一个研究的热点。现有的研究成果中,有许多方式可以解决无约束的组播路由问题,例如di jkstra算法和Steiner树。但是这些传统的方法并不能解决多约束条件下的组播路由问题。
[0003]目前,可以利用一些启发式的算法和群体智能算法来解决多约束条件下的组播路由问题,例如模拟退火算法、遗传算法、蚁群算法、粒子群优化算法和萤火虫群优化算法等。但是,上述算法在求解多约束组播路由问题时,存在求解速度慢,计算复杂度高等缺点。

【发明内容】

[0004]本发明所要解决的技术问题是:针对现有技术存在的问题,在具有多约束要求的通信网路中,提供一种本发明一种基于迭代编码的多约束组播路由算法。设计具备去除环路功能并且具有较好编解码适用性的组播树编码方法,同时,该方法对于已经生成的组播树也具有消除环路的功能。
[0005]本发明采用的技术方案如下:
[0006]一种基于迭代编码的多约束组播路由算法包括:
[0007]步骤1:输入网络拓扑结构,以及网络路由约束条件时延Dera1、时延抖动DJra1、吞吐量Thra1、丢包率PLRrai,利用组播树生成方法生成一个有向组播树;
[0008]步骤2:基于步骤1,删除组播树中不满足丢包率PLRrai约束条件的节点以及与这些节点相连的链路,删除不满足时延Dera1、时延抖动DJra1、吞吐量Thrai的链路后,生成一棵组播树Xj (t);
[0009]步骤3:基于步骤1,再利用组播树生成方法随机生成一棵组播树Xi (t);
[0010]步骤4:根据组播树编码方法,合并步骤2与步骤3得到的组播树,生成新的组播树x,.U+l) =xt[t) ?Xj{t);
[0011]步骤5:如果组播树Xi(t+1)满足路由约束条件或者计算过程达到迭代次数,则执行步骤6 ;否则,t=t+l,执行步骤2 ;
[0012]步骤6:输出组播树Xi (t+Ι)。
[0013]进一步的,所述组播树生成方法具体包括:
[0014]步骤11:初始化 一棵空的组播树X0= (O1, O2,...,On);
[0015]步骤12:将源节点的先验节点设置为其本身,即Xs=(C)1, O2, - ,Ss,…,On);[0016]步骤13:从目的节点集合中随机选择一个目的节点作为当前节点;
[0017]步骤14:从与当前节点有连接关系的节点集合中删除最近后继节点。则可以生成当前节点的先验节点集合;
[0018]步骤15:从当前节点的先验节点集合中随机选择一个节点作为当前节点的一个先验节点。然后将选择的先验节点设置为当前节点;
[0019]步骤16:如果当前节点的先验节点集合为空,即为“0”,转步骤14,否则转步骤S17 ;
[0020]步骤S17:如果所有目的节点的先验节点集合为空,即为“0”,转步骤S108,否则转步骤S13。
[0021]步骤18:输出该有向组播树 X= (Prior1, Prior2,..., Priorn);
[0022]进一步的,步骤4中组播树编码方法具体包括:
[0023]步骤41:从目标节点集合M中选择第i个节点作为当前节点,判断i是否大于M的大小,若是转步骤44,若否转步骤42 ;其中i范围是从I到目标节点集合M数量;
[0024]步骤42:判断当前节点是否为源节点,当当前节点不是源节点时,执行步骤43 ;否则,转步骤41,i=i+l ;
[0025]步骤43:判断当前节点的先验节点数量是否大于1,若先验节点数量大于1,则随机选择一个先验节点作为当前节点,转步骤42 ;否则,当前节点作为先验节点,转步骤42 ;
[0026]步骤44:输出不存在环路的组播树Xi (t+Ι)。
[0027]进一步的,所述X.M+l) =x,⑴中算子?定义如下:组播树xjt)和Xj(t)合
并为一棵新的组播树Xi (t+Ι),合并后的节点集合为Xi (t)和\(t)所包含的所有节点,链路集合为Xi (t)和\(t)所包含的所有链路。
[0028]进一步的,所述组播树指的是从目的节点向源节点回溯,除了源节点没有先验节点之外,其他一个节点只有一个先验节点。
[0029]进一步的,所述迭代次数是根据网络状况确定,人工设定:网络规模小则可以设定较少的迭代次数,网络规模大则可以设定较大的迭代次数。因为规模小迭代次数多的话,组播树的性能提升不明显,且计算花销很大(效费比低);网络规模大,迭代次数少的话在概率上难取得性能较好的组播树。
[0030]综上所述,由于采用了上述技术方案,本发明的有益效果是:
[0031]本发明可以用于任何具有多约束要求的网络规模和网络拓扑结构。能够高效地生成满足多约束要求的组播路由树,从而较好地解决多约束组播路由问题。
[0032]本发明通过利用一种迭代编码思想,高效地生成满足通信网路多约束要求的组播路由树,从而较好地解决多约束组播路由问题。该算法适用于所有当前的通信网络拓扑结构,算法实现简单,部署使用时对设备硬件无特殊要求,能够完全保证已有的设备投入。
【专利附图】

【附图说明】
[0033]本发明将通过例子并参照附图的方式说明,其中:
[0034]图1新生成组播树的方法。
[0035]图2本专利流程图。【具体实施方式】
[0036]本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
[0037]本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
[0038]本发明相关说明:
[0039]1、组播树:从目的节点向源节点回溯,除了源节点没有先验节点之外,其他一个节点只有一个先验节点。
[0040]2、步骤4中合并完之后再利用组播树编码方法对合并后的组播树进行去环路处理,逐渐逼近符合约束条件的目标组播树。
[0041]3、组播树生成方法:是将通讯网络上各个独立的网络节点,组成一棵有向组播路由树。
[0042]4、迭代次数:根据网络状况确定,人工设定:网络规模小则可以设定较少的迭代次数,网络规模大则可以设定较大的迭代次数。因为规模小迭代次数多的话,组播树的性能提升不明显,且计算花销很大(效费比低);网络规模大,迭代次数少的话在概率上难取得性能较好的组播树。
[0043]5、对合并生成的组播树应用步骤41至步骤44的组播树编码方法即可去除其中的环路;针对时延Dere,、时延抖动DJra1、吞吐量Thra1、丢包率PLRrai等问题,在步骤2中对不满足约束条件的节点和边进行删除,组播树合并后,对原来满足条件的部分保留了下来,同时,将组播树补充完整,补充的部分可能又满足约束条件(时延Dera1、时延抖动DJra1、吞吐量?Κ,、丢包率PLRrai)的节点和边,也有不满足条件的节点和边,但是总的效果是好于或等于上一棵组播树的。
[0044]&^Xl{t + \)=Xi{t)?Xj[t),其中算子十定义如下:组播树Xi (t)和^⑴合并为一
棵新的组播树Xi(t+1),合并后的节点集合为Xi(t)和&⑴所包含的所有节点,链路集合为Xi (t)和Xj (t)所包含的所有链路。
[0045]7> Xi (t)与Xj(t)表示两棵不同的组播树。X=(PriorpPriorf^Priorn)是任意一棵组播树的表达式。O2,…,On)表示初始化空的组播树。Xs=(C)1, O2,…,Ss,…,On)表示将源节点的先验节点设置为其本身。Xi(t+1)表示经过编码的组播树,等到其作为输入量时,Xi (t)=Xi(t+l)。
[0046]实施例一:
[0047]对于具有多约束要求的通信网路,可以抽象为一个有向连通图,V表示网络的节点集合,E表示网络的链路集合,为源路由节点,为目的路由节点,为网络中的任意一条链路。该网络中的网络路由有下述QoS约束条件:时延(Dereq),时延抖动(DJreq),吞吐量(Threq),丢包率(PLRrai)15本发明的目的在于高效的生成一棵组播路由树,使其能够尽量满足上述路由约束条件。单播和广播路由可以看作是组播路由的两种特殊情况(单播路由是一条链路,没有分叉;广播路由是源节点向通信网中的所有节点进行数据发送;这是组播树的两种极端情况,组播树是从源节点向整个通信网的选择出来的部分节点进行数据发送,对于本专利影响只在于目的节点集合的选取不同)。多约束条件下的组播树生成流程如下:[0048]步骤S1:初始化阶段:输入网络拓扑结构,以及网络路由约束条件Derai, DJrai, Thrai和PLR_。利用组播树生成方法初始化一棵组播树X(1。
[0049]步骤S2:基于步骤1,删除组播树中不满足丢包率约束条件的节点以及与这些节点相连的链路,删除不满足时延、时延抖动和吞吐量的链路,生成一棵组播树Xj(t);
[0050]步骤3:基于步骤1,再利用组播树生成方法随机生成一棵组播树Xi (t);
[0051]步骤4:根据组播树编码方法,合并步骤2与步骤3得到的组播树,生成新的组播
树 Xj (t+1) =Xi (t) +Xj (t);
[0052]步骤5:如果组播树\ (t+Ι)满足路由约束条件或者计算过程达到迭代次数,则执行步骤6 ;否则,t=t+l,执行步骤2 ;
[0053]步骤6:输出组播树Xj (t+Ι)。
[0054]进一步的,组播树生成方法:对组播树进行编码时需要考虑编码和解码的适用性,要避免在组播树中产生环路。组播树编码细节如下:
[0055]X= (Prior1, Prior2, r, Priorn) (1)
[0056]式(I)中,X为一棵组播树,Priori表示第i个节点的先验节点,其中i范围是I到η。对于不属于组播树的节点的先验节点,统一用“O”来表示。源节点的先验节点是其本身。
[0057]组播树编码方法的具体流程如下所述:
[0058]步骤11:初始化一棵空的组播树Xtl=(C)1, O2,…,On)。
[0059]步骤12:将源节点的先验节点设置为其本身,即Xs=(C)1, O2, - ,Ss, - ,On)。
[0060]步骤13:从目的节点集合中随机选择一个目的节点作为当前节点。
[0061]步骤14:从与当前节点有连接关系的节点集合中删除最近后继节点。则可以生成当前节点的先验节点集合。
[0062]步骤15:从当前节点的先验节点集合中随机选择一个节点作为当前节点的一个先验节点。然后将选择的先验节点设置为当前节点。
[0063]步骤16:如果当前节点的先验节点集合为空,即为“0”,转步骤14,否则转步骤17。
[0064]步骤17:如果所有目的节点的先验节点集合为空,即为“0”,转步骤S108,否则转步骤13。
[0065]步骤18:输出该组播树 X= (Prior1, Prior2,…,Priorn)。
[0066]进一步的,在生成满足多约束条件的组播树的迭代过程中,定义Xi(t)和\(t)为合并前的两棵不同的组播树,Xi (t+Ι)为合并后的组播树,则合并方式如下:
[0067]
【权利要求】
1.一种基于迭代编码的多约束组播路由算法,其特征在于包括: 步骤1:输入网络拓扑结构,以及网络路由约束条件时延Dera1、时延抖动DJra1、吞吐量Th,e(1、丢包率PLRrai,利用组播树生成方法生成一个有向组播树; 步骤2:基于步骤1,删除组播树中不满足丢包率PLRra^A束条件的节点以及与这些节点相连的链路,删除不满足时延De,e(1、时延抖动DJra1、吞吐量Thrai的链路后,生成一棵组播树(t);其中t表示迭代次数,t为大于O的正整数;i和j分别表示不同的两棵组播树;步骤3:基于步骤1,再利用组播树生成方法随机生成一棵组播树Xi (t); 步骤4:根据组播树编码方法,合并步骤2与步骤3得到的组播树,生成新的组播树Xf{t+l ) =Xjit) ? Xj(J) J 步骤5:如果组播树\(t+l)满足路由约束条件或者计算过程达到迭代次数,则执行步骤6 ;否则,t=t+l,执行步骤2 ; 步骤6:输出组播树Xj(t+1)。
2.根据权利要求1所述一种基于迭代编码的多约束组播路由算法,其特征在于所述组播树生成方法具体包括: 步骤11:初始化一棵空的组播树Xtl=(C)1, O2,…,On); 步骤12:将源节点的先验节点设置为其本身,即Xs=(C)1, O2, - ,Ss,…,On); 步骤13:从目的节点集合中随机选择一个目的节点作为当前节点; 步骤14:从与当前节点有连接关系的节点集合中删除最近后继节点,则可以生成当前节点的先验节点集合; 步骤15:从当前节点的先验节点集合中随机选择一个节点作为当前节点的一个先验节点,然后将选择的先验节点设置为当前节点; 步骤16:如果当前节点的先验节点集合为空,即为“0”,转步骤14,否则转步骤S17 ; 步骤S17:如果所有目的节点的先验节点集合为空,即为“0”,转步骤S108,否则转步骤S13 ; 步骤18:输出该有向组播树的X= (Prior1, Prior2, , Priorn)。
3.根据权利要求1或2—种基于迭代编码的多约束组播路由算法,其特征在于所述步骤4中组播树编码方法具体包括: 步骤41:从目标节点集合M中选择第i个节点作为当前节点,判断i是否大于M的大小,若是,则执行步骤44,否则,执行步骤42 ;其中范围是I到目标节点集合M的数量; 步骤42:判断当前节点是否为源节点,当当前节点不是源节点时,执行步骤43 ;否则,转步骤41,i=i+l ; 步骤43:判断当前节点的先验节点数量是否大于1,若先验节点数量大于1,则随机选择一个先验节点作为当前节点,转步骤42 ;否则,当前节点作为先验节点,转步骤42 ; 步骤44:输出不存在环路的组播树Xi (t+Ι)。
4.根据权利要求3所述的一种基于迭代编码的多约束组播路由算法,其特征在于所述组播树指的是从目的节点向源节点回溯,除了源节点没有先验节点之外,其他一个节点只有一个先验节点。
5.根据权利4所述的一种基于迭代编码的多约束组播路由算法,其特征在于所述μy+1)=χ#)Θλ)⑴中算子十定义如下:组播树Xi(t)和Xj(t)合并为一棵新的组播树Xi(t+Ι),合并后的节点集合为Xi(t)和Xj(t)所包含的所有节点,链路集合为Xi(t)和Xj(t)所包含的所有链路。
【文档编号】H04L12/761GK103905319SQ201410109422
【公开日】2014年7月2日 申请日期:2014年3月24日 优先权日:2014年3月24日
【发明者】刘杰, 田永春, 姜永广, 胡薇 申请人:中国电子科技集团公司第三十研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1