基于蚁群优化的分布式服务质量多播路由方法

文档序号:7647778阅读:235来源:国知局
专利名称:基于蚁群优化的分布式服务质量多播路由方法
技术领域
本发明涉及计算机网络通信领域中的路由技术,尤其是指一种基于蚁群优化的分布式服务质量多播路由方法。
背景技术
随着计算机网络的不断发展,越来越多的网络应用要求具有服务质量(quality of service,服务质量)的保证,如视频会议、分布式数据库开发、远程教学、网络实时游戏等。上述应用对网络的承载能力提出了越来越高的要求,除了采用更高速度的交换机、路由器、更高带宽的通讯介质等硬件设施外,人们越来越多的关注如何采用更好的路由策略来适应这种要求。因为改造硬件设备成本较高,而且更换单一部件往往会导致传输的拥塞瓶颈转移,改造效果不会很理想。多播技术在此背景下应运而生[1-5],并很快成为解决上述矛盾的热点研究课题[6-13]。数据包在计算机网络中传输一般有三种形式单播、广播和多播,单播方式为每一个目标节点发送一份完全相同的报文,因此需占用大量的带宽和其他网络资源;广播方式则导致大量非目标节点的开销,因此下一代互联网协议IPV6中取消了广播传播方式。多播传输方式只有一份报文在网络中传递,在路由控制器的协调下,仅目标节点会收到相关报文,所以既节省了网络宽带,又避免了非目标节点的开销。
应用多播的关键是确定有效的多播路由(multicaste routing),即求解最优Steiner树,这一问题被证明是NP完全问题[14]。目前提出的大多数的启发式算法本质上都是集中式的,即至少需要一个掌握整个网络拓扑信息的核心节点。如Parsa等[15]人提出了一种限界最短的多播算法(bounded shortest multicastalgrithm,BSMA),由Kou等[16]提出的KMB算法,Widyono[17]提出的约束Bellman-Ford算法等。文献[18-20]分别采用遗传算法得到了性能较好的多播树,刘芳[21]等通过在遗传算法中引入克隆策略大大提高了算法的收敛速度,但这些算法同样需要一个掌握整个网络拓扑信息的“核心”节点的存在。由于集中式路由算法首先要通过某个链路协议获得完整的网络拓扑信息,易造成链路拥塞,给网络造成较大的负荷冲击,因此根据网络的局部信息进行路由选择的分布式算法就显得尤为重要。
蚁群算法由于本身隐含的并行、分布式计算能力与网络路由具有较强的相似性,而且蚂蚁选择路径时是基于概率的,因此可方便的实现拥塞规避,这是其他算法所无法比拟的。文献[22,23]较早的采用蚁群算法求解最优多播树,但都是先由“核心”节点通过某种算法获得备选路径集,在此基础上采用蚁群算法进行寻优,因此本质上还是集中式算法。这种算法当网络规模增大时要耗费大量的存储资源。本章在上述研究的基础上提出了一种基于蚁群算法的具有服务质量保证的分布式多播路由算法(Distributed Multicast Routing algorithm basedon ACO with QoS),分布式多播路由算法能够在不需要核心节点的情况下找到代价可以接受的多播路由。
参考文献[1]S.DeeringHost extensions for IP multicasting.InternetEngineering Task Force,RFC 1112,Stanford University,1989. S.E.DeeringMulticast Routing in a Datagram Internetwork[D].PhDthesis,Stanford University,1991. S.Armstrong,A.Freier,K.MarzulloMulticast Transport Protocol.Internet Engineering Task Force,RFC 1301,1992. R.Braudes,S.ZabeleRequirements for Multicast Protocols.Internet Engineering Task Force.RFC1458,1993. W.StevensTCP/IP Illustrated.Addison-Wesley,1994. S.RampalRouting and End-to-End Quality of Service in MultimediaNetworks[D].PhD Thesis.N.C.State University,1995. S.Chen,K.NahrstedtAn overview of quality-of-service routingfor the next generation high-speed networksproblems andsolutions[J].IEEE Network,1998.12(6)p.64-79. X.H.Jia,Y.C.Zhang,N.Pissinou,et al.A distributed multicastrouting protocol for real-time multicast applications[J].ComputerNetworks,1999.31p.101-110. B.Wang,J.HouMulticast routing and its服务质量extensionproblems,algorithms,and protocols[J].IEEE Network,2000.14(1)p.22-36. A.Striege,G.ManimaranA survey of服务质量multicastingissues[J].IEEE Communications,2002.40(6)p.82-87. N.Bean,A.CostaAn analytic modelling approach for networkrouting algorithms that use″ant-like″mobile agents[J].ComputerNetworks,2005.49(243-268). G.FengA multi-constrained multicast服务质量routingalgorithm[J].Computer Communications,2006.29p.1811-1822. C.Garrozi,A.F.R.AraujoMultiobjective genetic algrithm formulticast routing[C].IEEE Congress on Evolutionary Computation,Canada,2006p.2513-2520. P.WinterSteiner problem in networksA survey[J].Networks,1987.17(2)p.129-167. M.Parsa,Q.ZhuAn iterative algorithm for delay-constrainedminimum-cost multicasting[J].IEEE Transactions on Networking,1998.6(4)p.461-474. L.Kou,G.Markowsky,L.BermanA fast algorithm for Steiner tree[J].Acta Information,1981.15(2)p.141-145. R.WidyonoThe design and evaluation of routing algorithms for realtime channels[R].CaliforniaDepartement of EECS,University ofCalifornia at Berkeley.ICSI TR-94-024,1994. 何小燕,费翔等Internet中一种基于遗传算法的服务质量路由选择策略[J].计算机学报,2000.23(11)p.1171-1178. M.Karabi,M.Fathy,M.Dehghan服务质量multicast routing basedon a heuristic genetic algorithm[C].IEEE CCGEI,2004p.1727-1730. M.Hamdan,M.E.El-HawaryMuticast routing with delay and delayvariation constraints using genetic algorithm[C].IEEE CCGEI,2004p.2363-2366. 刘芳,杨海潮参数可调的克隆多播路由算法[J].软件学报,2005.16(1)p.145-150. 张素兵,刘泽民基于蚂蚁算法的时延受限分布式多播路由研究[J].通信学报,2001.22(3)p.70-74. 王颖,谢剑英一种基于蚁群算法的多媒体网络多播路由算法[J].上海交通大学学报,2002.36(4)p.526-528.

发明内容
本发明的目的是提供一种基于蚁群优化的分布式服务质量多播路由方法。
基于蚁群优化的分布式服务质量多播路由方法借鉴蚁群觅食搜索最短路径的仿生思想,采用基于概率的正反馈路由选择机制;结合多播路由问题的特点,采用超边技术改进了标准蚁群优化算法,具体步骤如下(1)初始化网络,建立路由表;(2)选择某一有多播要求的目的节点di∈Dest,从源节点释放antnum只蚂蚁,寻找满足约束条件的最优多播路径。蚂蚁每走一步判断是否满足约束条件,如果满足则继续向下一节点转移,否则蚂蚁简单死亡。蚂蚁由当前点vi转移到下一点vj的概率计算采用基于概率的正反馈路由选择机制;(3)如果蚂蚁当前所在点u=di,表明此次寻路成功,重复步骤(2)利用超边技术直到该蚂蚁遍历了Dest中的所有节点;(4)重复步骤(2)、(3),直到所有蚂蚁都成功的遍历了Dest中的所有节点,转步骤(5);(5)根据Pj1,di=Pj1,di+ΔP1+ΔP]]>和Pj,di=Pj,di1+ΔP,]]>j∈neighbors(r),且j≠j1对蚂蚁经过的节点进行信息素更新;(6)重复执行步骤(2)-(5)直到满足算法停止条件。
所述的基于概率的正反馈路由选择机制为位于节点i的蚂蚁k选择下一节点j的概率按照下式计算Pi,jk=[τi,j]·[ηi,j]βΣs∉tabuk[τi,s]·[ηi,s]β]]>式中,ηi,j=1c(i,j)]]>为启发式信息,可以是包括诸如链路<vi,vj>的时延等价格参数。τi,j为路径(i,j)的信息素量,参数β表示信息素和启发式信息的相对重要程度,tabuk记录蚂蚁已经访问节点的信息。
所述的超边技术是指蚂蚁在爬行路由的过程中同时进行超边替换。
本发明的优点1)分布式多播路由算法不需要一个具有全网信息的核心节点来负责计算和协调多播路由树,克服了集中式路由算法易造成链路拥塞,以及异步更新的不足;2)基于概率的正反馈路由选择机制使分布式多播路由算法能自适应地避开故障、拥塞节点,并有效地解决了循环回路的产生;3)采用超过技术改进标准蚁群优化算法,使建立分布式多播路由树的效率大大提高。


图1是基于蚁群优化的分布式服务质量多播路由方法示意图;
图2是本明的超边替换过程示意图;图3是基于Waxmax随机图模型生成的多播路由网络;图4是分布式多播路由算法与集中式多播理由算法BSMA、KMB的仿真结果对比图。
具体实施例方式
下面结合附图,对本发明作进一步的说明。
如图1所示,节点V1为源节点,目标节点集合为{V6、V8、V10、V12、V14}。
网络路由的服务质量要求包括很多内容,如端到端的时延、时延抖动、带宽、包丢失率、跳数等等。目前在服务质量多播路由问题上,应用前景最广阔也是最基本的是建立时延受限的多播树问题,因此下面就该问题展开详细的讨论。
计算机网络可以表示为有向图G(V,E),其中V={v1,v2,L,vn}为图G中节点的集合,代表实际网络中的路由器集合;E={e1,e2,L,em}为图G的边的集合,对应实际网络中任意两相邻节点间通信链路的集合。为了不失一般性,假设在任意两个节点之间至多存在一条直接连通的链路。设Dest={d1,d2,L,dn}表示有多播要求的目标节点集合,每个目标节点都有自己的服务质量要求,这里规定至少包含一个阈值Δ,表示对时延的要求;每一条边上有两个权值Dei≥0和Cei≥0,(1≤i≤m)分别代表该链路的时延和代价。这里链路的时延包括数据包在传输介质中传输的时延与数据包在路由器中排队、处理的时延之和;代价可以是包含时延、丢包率、带宽利用率等多项指标的综合。
这里将时延作为很重要的一个度量指标主要原因有两个(1)时延可以在很大程度上反映所经过的节点数、链路的传输能力和节点的处理速度;(2)当经过拥塞节点时,因为人工蚂蚁具有与数据包同样的优先级,其时延的大小也能有效地反映拥塞程度。
基于上述描述,多播树可表示为T=(VT,ET),其中VT_V,ET_E。多播树T的总代价为C(T)=Σe∈ETCe]]>多播树的时延取源节点到各目的节点时延的最大值,即D(T)=max(Σe∈ETDe)]]>
故寻找时延受限的最小代价路由可以表示为min(Σe∈ETCe)]]>s.t.D(T)≤Δ在DMACO中,每一只蚂蚁就是一个数据包,其中包含一些简单信息,根据蚂蚁功能的不同可分为以下两类(1)Fant(Forward ant)此类蚂蚁主要负责路径的探寻工作,其数据包的结构如表1所示。其中source-ID和dest-ID分别表示源节点和目标节点的IP地址;TTL(time to live)表示该数据包的最大生存周期,以避免由于不可预知的情况导致该数据包在网络内的无限制循环;Iteration-tag表示当前的迭代次数,可以区分在故障状态下蚂蚁的类型;DestTab是目标节点序列集合,当蚂蚁执行超边替换时使用;tabu用来记录蚂蚁已经遍历过的节点,避免进入死循环。
表1Fant的数据包结构

(2)Bant(Backward ant)当前向蚂蚁Fant找到目标节点以后,Fant即宣告死亡,目标节点会发送一个应答帧,即反向蚂蚁Bant,其数据结构如表2所示。Bant沿Fant的路径返回源节点,其主要功能是告诉源节点该蚂蚁已经成功找到目标节点,并且报告该路径的时延,即拥塞情况,可根据“时间戳”(time stamp)域进行判断。每当蚂蚁在返回路径中到达一个节点的时候,就会根据时间戳上的值进行信息素表的更新。
表2Bant的数据包结构

在应用蚁群算法时首先要为每一个网络节点建立一张路由表,也称为信息素表或者概率表。表3为网络中某一节点k的信息素表的具体形式,其中di(i=1,L,n)表示从k点能够到达的目标节点;aj(j=1,L,m)表示k点的邻居节点;pij表示信息素的强度,即蚂蚁由k点到达目标节点di时选择邻居节点aj的概率。
表3网络路由中节点k的信息素表


表中的每一行满足Σj∈LneiPjdi=1]]>式中Lnei={neighbors(k)}表示蚂蚁可以选择的当前节点k的邻居节点,Pjd表示从当前节点k经邻居节点j到目的节点di的概率。
位于节点i的蚂蚁k选择下一节点j的概率按照下式计算Pi,jk=[τi,j]·[ηi,j]βΣs∉tabuk[τi,s]·[ηi,s]β]]>式中,ηi,j=1c(i,j)]]>为启发式信息,可以是包括诸如链路<vi,vj>的时延等价格参数。参数β表示信息素和启发式信息的相对重要程度,tabuk记录蚂蚁已经访问节点的信息。
为了充分利用Fant收集的信息,当Bant到达路径上的某一节点r时,不仅更新节点r到目的节点di的信息素值,同时更新节点r到其它中间节点的信息素值,这里的中间节点指的是节点r与目的节点di之间的节点。信息素更新过程按下式进行Pj1,di=Pj1,di+ΔP1+ΔP,]]>选择邻居节点j1到达diPj,di=Pj,di1+ΔP,]]>j∈neighbors(r),且j≠j1式中0≤ΔP≤1,取值与蚂蚁经历的时延成反比关系。当一条链路拥塞时,将推迟转发经过的数据包,即蚂蚁,则蚂蚁经历的时延增加,选择这条路径的概率就变小了。显然,更新后的信息素表仍然满足Σj∈LneiPjdi=1]]>的约束条件。
基于蚁群算法的求解最优多播路由算法的具体步骤如下(1)初始化网络,建立路由表;(2)选择某一有多播要求的目的节点di∈Dest,从源节点释放antnum只蚂蚁,寻找满足约束条件的最优多播路径。蚂蚁每走一步判断是否满足约束条件,如果满足则继续向下一节点转移,否则蚂蚁简单死亡。蚂蚁由当前点vi转移到下一点vj的概率由Pi,jk=[τi,j]·[ηi,j]βΣs∉tabuk[τi,s]·[ηi,s]β]]>计算;(3)如果蚂蚁当前所在点u=di,表明此次寻路成功,重复步骤(2)利用超边技术直到该蚂蚁遍历了Dest中的所有节点;(4)重复步骤(2)、(3),直到所有蚂蚁都成功的遍历了Dest中的所有节点,转步骤(5);(5)根据Pj1,di=Pj1,di+ΔP1+ΔP]]>和Pj,di=Pj,di1+ΔP,]]>j∈neighbors(r),且j≠j1对蚂蚁经过的节点进行信息素更新;(6)重复执行步骤(2)-(5)直到满足算法停止条件。
如图2所示为分布式多播路由算法方法中的超边替换示意图。上述蚁群算法虽然实现简单,但当网络规模增大时存在着收敛速度较慢、解的质量下降等问题,为此需要根据问题的特点对算法进行改进。首先定义一些符号设蚂蚁i本次迭代已经成功遍历过的节点构成的多播树记为CurTree;该蚂蚁本次从源节点出发寻找目标节点dj(dj_CurTree,dj∈Dest)时已经遍历过的节点记为tabu。
具体改进如下蚂蚁一边爬行一边进行“超边”的替换,以提高收敛速度,改善解的质量。超边的概念与文献[15]中“superedge”的概念相类似。
定义超边设某一路径path由节点<v0,v1,Λ,vk-1,vk>组成,其中<v1,Λ,vk-1>是度为1的中继节点(非源节点和目标节点),而v0和vk或者是度大于1的中继节点,或者是源节点和目标节点,则称path为超边。
超边替换的过程如图2所示。设源节点为v1,目标节点集合为Dest={v6,v8,v10,v12,v14}。图中实线表示蚂蚁i当前已经建立的多播树,则A=<v3,v4,v5,v6>是该树的一条超边。此时蚂蚁在寻找新的目标节点v14时很可能沿图中虚线路径行进,即沿路径B=<v3,v6>前进。比较A与B的费用,如果cost(A)>cost(B),且替换后的多播树CurTree’仍满足时延约限制,则替换超边A,该蚂蚁从v6继续前进。可见蚂蚁一边前进一边对已经建立的多播树进行优化,从而提高收敛速度,改善解的质量。
如图3所示,实验中采用的网络图由Waxman随机图模型生成,在此随机图中,边的生成概率为Pe(u,v)=h·exp(-d(u,v)gL)]]>其中d(u,v)表示节点u至节点v的几何距离,L表示两节点间的最大距离,参数g用来控制随机图中短边和长边呈现的数量,参数h则用来控制随机图的平均度。本仿真中使用的网络图的平均度均在4.0~4.8之间。图3为随机生成的具有100个节点的网络。
在仿真实验中首先要设定分布式多播路由算法算法的相关参数,这里设定启发式因子β=2,蚂蚁数目与目标节点数目相同,迭代次数Nc=10。对于分布式多播路由算法策略,每组实验独立运行50次,取平均值。实验所用的硬件平台为P4-1.7GHz,512M-RAM;软件平台为windows xp的操作系统,Matlab 6.5编程环境。
为了验证该算法的有效性,将本文提出的分布式多播路由算法算法与集中式算法中比较成功的BSMA和KMB算法进行比较。BSMA算法能在多项式时间内取得次优解,其平均质量是最优解的107%。KMB是一种无约束的算法,求得的准Steiner树的费用与最优费用之比不超过(2-2/l),其中l表示Steiner树的叶子节点的数目。
图4是分布式多播路由算法与集中式多播路由算法BSMA、KMB的仿真结果对比图。时延限制Δ=20,网络规模n=100,多播组规模分别为destnum=5、7、10、12、15、17、20时的多播费用情况。从图中可以看出,在多播规模变化时,分布式多播路由算法与KMB算法的比值始终保持在1~1.3以内;分布式多播路由算法与BSMA多播费用的比值也始终保持在1~1.4以内。由于BSMA和KMB是集中式多播路由算法中性能较好的两个,可以看出分布式多播路由算法算法还是能够得到性能良好、可以接受的多播树的。
权利要求
1.一种基于蚁群优化的分布式服务质量多播路由方法,其特征在于借鉴蚁群觅食搜索最短路径的仿生思想,采用基于概率的正反馈路由选择机制;结合多播路由问题的特点,采用超边技术改进了标准蚁群优化算法,具体步骤如下(1)初始化网络,建立路由表;(2)选择某一有多播要求的目的节点di∈Dest,从源节点释放antnum只蚂蚁,寻找满足约束条件的最优多播路径,蚂蚁每走一步判断是否满足约束条件,如果满足则继续向下一节点转移,否则蚂蚁简单死亡,蚂蚁由当前点vi转移到下一点vj的概率计算采用基于概率的正反馈路由选择机制;(3)如果蚂蚁当前所在点u=di,表明此次寻路成功,重复步骤(2)利用超边技术直到该蚂蚁遍历了Dest中的所有节点;(4)重复步骤(2)、(3),直到所有蚂蚁都成功的遍历了Dest中的所有节点,转步骤(5);(5)根据Pj1,di=Pj1,di+ΔP1+ΔP]]>和Pj,di=Pj,di1+ΔP,]]>j∈neighbors(r),且j≠j1对蚂蚁经过的节点进行信息素更新;(6)重复执行步骤(2)-(5)直到满足算法停止条件。
2.根据权利要求1所述的一种基于蚁群优化的分布式服务质量多播路由方法,其特征在于所述的基于概率的正反馈路由选择机制为位于节点i的蚂蚁k选择下一节点j的概率按照下式计算Pi,jk=[τi,j]·[ηi,j]βΣs∉tabuk[τi,s]·[ηi,s]β]]>式中,ηi,j=1c(i,j)]]>为启发式信息,可以是包括诸如链路<vi,vj>的时延等价格参数。τi,j为路径(i,j)的信息素量,参数β表示信息素和启发式信息的相对重要程度,tabuk记录蚂蚁已经访问节点的信息。
全文摘要
本发明公开了种基于蚁群优化的分布式服务质量多播路由方法。基于蚁群优化的分布式服务质量多播路由方法借鉴蚁群觅食搜索最短路径的仿生思想,采用基于概率的正反馈路由选择机制;结合多播路由问题的特点,采用超边技术改进了标准蚁群优化算法。本发明的优点1)分布式多播路由算法不需要一个具有全网信息的核心节点来负责计算和协调多播路由树,克服了集中式路由算法易造成链路拥塞,以及异步更新的不足;2)基于概率的正反馈路由选择机制使分布式多播路由算法能自适应地避开故障、拥塞节点,并有效地解决了循环回路的产生;3)采用超过技术改进标准蚁群优化算法,使建立分布式多播路由树的效率大大提高。
文档编号H04L12/56GK101043444SQ20071006824
公开日2007年9月26日 申请日期2007年4月26日 优先权日2007年4月26日
发明者刘彦鹏, 安庆敏, 吴明光 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1