CN1195364C - 基于宽度优先搜索的性能可调启发式服务质量路由方法 - Google Patents
基于宽度优先搜索的性能可调启发式服务质量路由方法 Download PDFInfo
- Publication number
- CN1195364C CN1195364C CNB021599300A CN02159930A CN1195364C CN 1195364 C CN1195364 C CN 1195364C CN B021599300 A CNB021599300 A CN B021599300A CN 02159930 A CN02159930 A CN 02159930A CN 1195364 C CN1195364 C CN 1195364C
- Authority
- CN
- China
- Prior art keywords
- node
- algorithm
- path
- shortest path
- tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
基于宽度优先搜索的性能可调启发式服务质量路由方法属于互联网路由技术领域,其特征在于:在向计算机输入服务质量请求的各项参数后,以目的节点为树根基于线性能量函数用Dijkstra算法建立反向最短路径树,计算反向最短路径树各节点至目的节点的k重权值并据此对所有节点反向标号;最后基于非线性能量函数用Dijkstra算法计算正向最短路径树,在把一个节点加入到该树时,需要考虑其搜索深度H以内的所有子节点(含父节点)是否最优,判断从源节点到达该节点的路径是否满足约束条件:满足则成功返回该路径,否则返回路径计算失败。随着约束个数增加,只要增加搜索深度,依然能保持很高的性能,而且同时对网络规模具有良好的可扩展性。
Description
技术领域
基于宽度优先搜索的性能可调启发式服务质量路由算法属于互联网路由技术领域,尤其涉及具有多个服务质量参数的服务质量路由技术。
背景技术
如何为应用提供不同的服务质量(Quality-of-service,QoS)保证是互联网络面临的一个重要难题,而服务质量路由(QoS Routing,QoSR)则是其中的一个核心技术和热点问题,它的主要作用是为QoS业务寻找能够同时满足多种QoS约束的可行路径。通常QoS限制可分为链路限制和路径限制。其中,链路限制可以转化为对整个路径上瓶颈链路的限制,如带宽;而路径限制则是对组成端到端路径上的所有链路的限制,如延迟。由于对链路限制来说,可以通过剪枝预先除去不符合要求的链路,从而保证在剩余子图中求得的路径符合链路限制,因此这个专利主要考虑多重(k>=2)路径限制(也称为多约束)的情况。
由于多约束的QoSR是NP完全(即多项式时间不可解)问题,为此研究人员设计了很多启发式算法。然而这些算法往往具有很大的局限性:(1)计算复杂度过高、无法应用到实际环境中;(2)算法性能太低,找不到实际存在的可行路径;(3)算法只是针对某些特殊情况设计的,不具有普适性。这个专利提出一种基于路径评价的可调QoSR算法,该算法首先对每个节点标号,然后根据对这些标号优劣的评估来计算可行路径。计算过程中,算法的性能能够随CPU负载和网络规模来实时调节,从而达到满意的效果。
由于寻找一条同时满足多种约束条件的路径具有NP完全的复杂度,因此人们设计了很多算法试图解决该问题。Jaffe针对两重约束的QoSR问题设计了分布式算法,其复杂度为O(n5blognb),其中b为路径权值的最大值,n为网络节点数。由于路径权值往往可以连续取值,因此这种依赖路径权值空间大小的算法是伪多项式算法。因为延迟约束的最小代价问题为单一约束下的优化问题,更容易设计伪多项式的近似算法。这类算法的特点是对于任意ε>0,存在一个多项式时间的算法能够找到一条路径,在满足延迟约束的同时,花费不超过最小花费的(1+ε)倍。由于这些算法的复杂度与ε有关,因此有时也叫做伪多项式算法,如Lorenz算法的复杂度为O(nmlognloglogn+(mn/ε)),其中m为网络中的链路数目。
除了上述针对两种QoS度量的算法外,多种度量的QoSR问题也得到了广泛关注。当网络中使用一类加权公平队列时,队列延迟、抖动、丢失率等都可以转化为带宽的函数而不再彼此独立,这样原来多约束的NPC问题就可以简化为多项式的复杂度。Orda对基于这种思想的QoSR算法做了较为全面的研究。此外,Orda等针对多约束的优化问题,通过量化花费函数设计了计算复杂度为O(
HmlogC)的预计算算法,其中H为最长路径的跳数,C为路径花费的上限,该算法性能依赖于预先设定的最长路径跳数H和小量ε等。
在多种度量的QoSR问题中,为了将多种度量转化为单一度量,基于能量函数的思想也得到了广泛关注。Jaffe最早使用线性能量函数g(p)=a1w1(p)+a2w2(p)来求解两重约束的问题。文章指出对于给定的约束(c1,c2),当
时,使用Dijkstra算法所求解的具有最小化g(p)的路径能够以最大概率满足该约束。Neve等基于非线性函数,为PNNI协议设计了求解多约束的路由算法,该算法首先构造非线性能量函数 ,并针对每个QoS请求使用启发式算法试图找到最小化gλ(p)所对应的路径。由于该花费函数的非线性特点导致不能保证在多项式时间内找到最小化gλ(p)的路径p,因此算法使用计算K最短路径的Dijkstra算法的变体,算法的复杂度为O(Knlog(Kn)+K3km)。Korkmaz等则设计了一种通过逆向标号过程求解多约束的最小花费路径的算法H_MCOP。该算法首先基于线性函数g1(p),使用逆向Dijkstra算法对每个节点进行标号;然后在正向计算过程中基于非线性函数gλ≠1(p),使用Dijkstra算法对每个节点及其标号进行评估。
发明内容
本发明的目的在于提供一种基于宽度优先搜索的性能可调的启发式服务质量路由方法。
本发明所提出的方法的特征在于:在计算正向最短路径树并且在把一个节点加入到正向最短路径树时,需要考虑其搜索深度H以内的所有子节点(含父节点)是否最优,即从源节点到达该节点的路径是否满足约束条件。该方法依次含有以下步骤:
(1)向计算机输入:宽度优先搜索深度H、网络拓扑图G、服务质量请求的源节点和目的节点对(s,t),各链路的k重度量值即权值以及k重约束向量c=(c1,c2,…,ck);
(2)以连接请求的目的节点t作为树根,基于线性能量函数
,使用反向Dijkstra算法建立反向最短路径树SPT,其中1≤l≤k而wl(p)是链路具有k重度量时路径p的度量值;
(3)计算反向最短路径树上各个节点的各自到达目的节点t的k重度量值即权值,再根据这些k重权值对所有节点进行反向标号;
(4)基于非线性能量函数
,用Dijkstra算法计算正向最短路径树,在将一个节点加入到正向最短路径树时要考虑其搜索深度H以内的子节点(含父节点)是否最优;
(5)判断沿着正向最短路径树,从源节点s到目的节点t的路径的度量值是否满足约束条件c:如果满足,则成功返回该路径;否则返回路径计算失败。
实验证明:随着约束个数的增加,只要增加搜索深度,笨发明依然能够保持很高的性能,而且对服务质量请求的约束个数敏感度小;在多约束情况下对网络规模N人具有良好的可扩展性。
附图说明
图1.基于宽度优先搜索的多约束路由(Breadth-first-search based Multi-ConstrainedRouting,简写为BFS_MCP)方法流程图
图2.本方法运用实例的网络拓扑图
图3.本方法运用实例的流程图
图4.本方法(BFS_MCP)的伪码描述
图5.BFS_Relax函数伪码描述
图6.K约束下的算法性能(实验模拟结果)
具体实施方式
用有向图G(V,E)表示一个网络,其中V为节点集,元素v∈V称为图G的一个顶点(节点);E为弧集,元素eij∈E记为e=vi→vj称为图G的一条边。在QoSR中给每个链路e关联上一组相互无关的权值(w1(e),w2(e),…,wk(e))称为链路e的QoS度量,简写为w(e)。其中wl(e)∈R+(即大于0的实数集)为路径约束类型的度量,对1≤l≤k。也就是对于路径p=v0→v1→…→vn,权值
满足可加性。
定义1:多约束路径(Multi-Constrained Path,MCP)
对于给定的有向图G(V,E),包含源节点s、目的节点t和k≥2重权值wk(e)∈R+,以及约束向量c=(c1,c2,…,ck),从s到t的路径p称为多约束路径,如果wl(p)≤cl,对1≤l≤k,简写为w(p)≤c。 □
对于给定的QoS请求,QoSR的主要任务就是在当前的网络状态下寻找满足要求的路径MCP。Dijkstra给出了单一度量下计算最短路径树(SPT)的经典算法,具有较低的算法复杂度。然而对于MCP问题涉及到同时考虑多种度量,因此导致问题的复杂度为NPC而无法直接使用原有算法。一种可能的思路是将多种度量转化为单一度量,以便使用原有算法。
定义2:称
为路径p的能量函数,表示该路径的耗费值,其中c为特定QoS请求的约束。 □
我们针对多重路径约束的QoSR问题设计了启发式算法BFS_MCP,如图4所示。算法输入图G,给定QoS请求的源节点s、目的节点t和约束向量c,其中c=(c1,c2,…,ck)为k重约束。BFS_MCP算法首先从目的节点t到源节点s对每个节点进行反向标号,标号过程使用线性函数g1建立小能量树SPTλ=1,从而保证每个节点u沿着该树到达节点t具有最小能量Gr[u]。每个节点u的标号记录了沿着这条路径到达目的节点t的k重权值,从而在正向宽度搜索时,可以参考这些权值。完成节点标号后,BFS_MCP算法使用非线性函数g∞计算从s到t的正向最小能量路径。这时,对Dijkstra算法的扩展集中体现在Relax松弛部分:使用宽度优先的搜索方式并结合对反向标号的考虑。如果从s到t的正向最小能量路径具有的K维度量d[t]满足约束c,则返回该路径,否则拒绝该请求。算法中,各个符号所表示的意义如表1所示。
原有Dijkstra算法包括以下几个步骤:初始化、寻找最优节点u(Extract)、将最优节点u加入到部分建成的SPT中、松弛节点u(Relax)。其中,松弛节点u是依次检查u的所有不在SPT中的邻居节点v,并根据花费的大小需要更改v的父节点以及到达节点v的花费值。在BFS_MCP算法中分别使用了Reverse_Dijkstra函数和BFS_Dijkstra函数。Reverse_Dijkstra算法与标准Dijkstra算法的差别在于Reverse_Dijkstra算法的松弛过程使用Reverse_Relax函数;BFS_Dijkstra算法与标准Dijkstra算法的差别在于BFS_Dijkstra算法的松弛过程使用BFS_Relax函数。这两个函数都是在原有Dijkstra算法基础上的扩展,将原来的花费改成了能量值,在Reverse_Dijkstra函数中使用Reverse_Relax函数取代原来Dijkstra算法中松弛节点u的函数;在BFS_Dijkstra函数中使用BFS_Relax函数来取代原来的松弛节点u的函数,并引入了宽度优先的搜索策略。其中在Reverse_Relax函数中,使用g1函数算出Gr[u]作为原有Dijkstra算法的关键字,计算反向最小能量树SPTλ=1。下面具体讲述BFS_Relax函数的功能。
BFS_Relax函数的伪码描述如图5所示。该函数首先初始化(第1-6行),然后将x放入队列(第7行),进而当队列不空时,通过宽度优先的循环来寻找节点v的子孙节点所具有的最小能量值(g∞)(第8-22行)。WHILE循环中,首先取出队列中的第一个元素x(第9行),然后计算节点x.v所具有的能量值(第10行),而将本次宽度优先搜索中找到的最小能量值记录在minVal中(第11-12行)。如果发现x.v所对应的路径能够满足约束c,则返回目前所找到的最小能量(第13-14行);否则在满足深度小于H的情况下(第15行),将x.v的子节点放入队列(第16-22行)。
BFS_MCP算法使用基于线性能量函数g1的反向标号(Reverse_Dijkstra)和基于非线性能量函数g∞的正向计算(BFS_Dijkstra),并在正向计算中的Dijkstra算法松弛节点过程中,引入了可调节的宽度优先搜索策略。用H表示宽度优先所搜索的深度,则当H=0时,BFS_MCP算法退化为H_MCOP算法(不考虑优化情况)。由于基于能量函数g1和g∞的操作都满足保序性,因此只要网络状态信息一致,各个节点节点所计算的路由表不会构成回路。
表1算法中符号的意义
算法中使用的符号 | 符号所代表的意义 |
u | 任一中间节点 |
Gr[u] | Reverse_Dijkstra对节点u的能量值(关于g1) |
r[u]=(r1[u],…,rK[u]) | 沿着反向小能量树SPTλ=1从t到u的度量 |
v节点 | 节点u的子节点 |
∏r[v] | 节点v的前驱节点 |
d[u] | 沿着正向小能量树SPTλ=∞从s到u的度量 |
x | 队列中的一个元素,包括该元素对应的当前节点x.v、节点v的前驱节点x.u、v所在的深度x.h和v所对应的度量x.w |
算法流程图如图1所示。下面通过一个实例来说明算法是如何工作的。网络拓扑结构如图2.a所示,其中每条链路包含延迟和抖动两个参数,通过路由协议交互,节点s已经具有全部网络状态信息。假设应用业务为从s到t具有约束c=(13,13)的QoS请求,现在在节点s上运行BFS_MCP算法,以找到一条满足约束条件的从s到t的路径。具体步骤如图3所示。首先,给计算机输入拓扑图G和搜索深度H,以及QoS请求的源、目的节点对(s,t)和约束向量c,然后以线性能量函数g(p)=w0(p)/13+w1(p)/13建立以目的节点t为树根的反向最短路径树,如图2.b所示。进而根据该最小能量树对每个节点标号即每个节点到达t的度量,如节点d的标号为(5,1)、c的标号为(10,2)等。
完成标号过程后,开始建立以节点s为树根的正向最短路径树:假设算法所配置的H=1,则算法将s、a、b加入SPT后,我们考虑在当前SPT(即sab组成的SPT)的邻居中选取的节点为节点c时如何把c加入SPT的情况。首先在i=0层计算节点c的优化值:如果c的父节点取为a,则c的度量值为(2,3)+(4,4)+(10,2)=(16,9),能量为16/13:如果c的父节点取为b,则c的度量值为(1,5)+(1,5)+(10,2)=(12,12),能量为12/13。进而在i=1层计算c的子节点的优化值:如果c的父节点取为a,d的度量值为(2,3)+(4,4)+(5,1)+(5,1)=(16,9),能量为16/13;e的度量值为(2,3)+(4,4)+(9,9)+(9,9)=(24,25),能量为25/13。如果c的父节点取为b,再分别计算d和e的能量。最终得到c的父节点取为b的情况下,节点c(包括其子节点)具有最小的能量值12/13,因此将c加入为b的子节点。
类似的,本发明逐步选择下一个邻居节点加入SPT,直到所有的节点都在SPT上并建立如图2.c所示的正向最小能量树。最后判断沿着该树从s到t的路径(sbcdt)是否满足应用业务的QoS约束。如果采用H=2的配置,则可以检查更多的节点以利于建立更好的SPT。
目前,我们已经通过实验模拟验证了该算法具有良好的性能。在评价过程中,我们基于N个节点的完全随机拓扑图,为每个链路产生了在[1,1000]区间内均匀分布的K种度量wk(e),且相互无关。我们分别模拟了网络节点数N为50、100、200和500的情况,并对每种情况产生了10个拓扑图,在每个拓扑图上随机选取100次QoS请求的源一目的节点对(一个节点可能被选取多次),每个源节点s使用BFS_MCP算法计算最小能量路径。算法评价中,首先对这100次路由计算其成功率SR(Successful Ratio),然后再通过对10个同类拓扑图所对应的10个成功率的统计,得到其均值SR。
为了在多约束(k>=2)的情况下研究搜索深度与算法性能之间的关系,我们针对每个源目的对(s,t)产生QoS约束条件时,首先取随机数α1~uniform(0,1),然后令
从而再以
为关键字构造最小能量路径p,然后以度量w(p)为QoS请求的约束条件,即c(s,t)=w(pi)。图6给出了多约束条件对算法性能的影响,其中横坐标为QoS度量的个数K,而纵坐标SR为路由成功率,H代表BFS_MCP算法搜索的深度。
图6表明,随着约束个数的增加,非宽度优先搜索算法(H=0)性能下降很快;相反,随着搜索深度的增加,BFS_MCP算法依然能够保持很高的性能,并且对QoS约束个数的敏感性很小。此外,BFS_MCP算法对在多约束的情况下对网络规模N仍然具有良好的可扩展性。因此BFS_MCP能够适应具有多重QoS度量的下一代互联网络。
由于基于服务质量的网络是国际互联网发展的必然方向,而网络中的路由器为了提供QoS的支持,就需要使用QoSR算法,因此QoSR算法也必然广泛的应用在下一代互联网中。由于我们所设计的启发式算法BFS_MCP不仅具有很高的基本性能,而且能够随着路由器的CPU负载和实际网络规模来实时调节算法的运行时间和路由性能。因此,BFS_MCP能够充分利用路由器中CPU的空闲时间,从而达到满意的效果。由于这种算法具有广泛的适用性,因此是下一代互联网可能采用的QoSR算法。
由此可见,本发明达到了预期目的。
Claims (1)
1.基于宽度优先搜索的性能可调启发式服务质量路由方法,其特征在于,它依次含有以下步骤:
(1)向计算机输入:宽度优先搜索深度H、网络拓扑图G、服务质量请求的源节点和目的节点对(s,t),各链路的k重度量值即权值以及k重约束向量c=(c1,c2,…,ck);
(2)以连接请求的目的节点t作为树根,基于线性能量函数
使用反向Dijkstra算法建立反向最短路径树SPT,其中1≤l≤k而wl(p)是链路具有k重度量时路径p的度量值;
(3)计算反向最短路径树上各个节点的各自到达目的节点t的k重度量值即权值,再根据这些k重权值对所有节点进行反向标号;
(4)基于非线性能量函数
用Dijkstra算法计算正向最短路径树,在将一个节点加入到正向最短路径树时要考虑其搜索深度H以内的子节点是否最优;
(5)判断沿着正向最短路径树,从源节点s到目的节点t的路径的度量值是否满足约束条件c:如果满足,则成功返回该路径;否则返回路径计算失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021599300A CN1195364C (zh) | 2002-12-30 | 2002-12-30 | 基于宽度优先搜索的性能可调启发式服务质量路由方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021599300A CN1195364C (zh) | 2002-12-30 | 2002-12-30 | 基于宽度优先搜索的性能可调启发式服务质量路由方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1416243A CN1416243A (zh) | 2003-05-07 |
CN1195364C true CN1195364C (zh) | 2005-03-30 |
Family
ID=4753360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021599300A Expired - Fee Related CN1195364C (zh) | 2002-12-30 | 2002-12-30 | 基于宽度优先搜索的性能可调启发式服务质量路由方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1195364C (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7111188B2 (en) * | 2003-07-31 | 2006-09-19 | International Business Machines Corporation | Dynamically configurable fault tolerance in autonomic computing with multiple service points |
CN100387026C (zh) * | 2004-12-24 | 2008-05-07 | 华为技术有限公司 | 带指定服务路径的目标节点集的联通路由搜索方法 |
GB0503141D0 (en) * | 2005-02-15 | 2005-03-23 | British Telecomm | Process configuration in a network |
CN101005442B (zh) * | 2006-01-20 | 2012-01-11 | 华为技术有限公司 | 一种重路由方法 |
CN101043236B (zh) * | 2006-05-10 | 2010-05-12 | 华为技术有限公司 | 控制网状网络节点发射功率的方法及网状网络节点 |
CN101252779B (zh) * | 2008-03-19 | 2012-06-13 | 中兴通讯股份有限公司 | 策略执行点选择方法及设备 |
CN101321134B (zh) * | 2008-07-21 | 2012-05-23 | 西安电子科技大学 | 动态网络条件下的服务质量路由选择方法 |
CN101753425B (zh) * | 2008-12-01 | 2011-11-09 | 北京航空航天大学 | 在多约束下求取网络中多条最短简单路径的启发式方法 |
CN103164493B (zh) * | 2011-12-19 | 2016-03-09 | 中国人民解放军63928部队 | 基于法线测量的非线性搜索方法和系统 |
CN108683593B (zh) * | 2018-07-10 | 2021-01-15 | 烽火通信科技股份有限公司 | 一种k短路径的计算方法 |
CN109327255B (zh) * | 2018-09-26 | 2023-01-24 | 中国民航管理干部学院 | 一种用于无人机自组网的路由方法及系统 |
-
2002
- 2002-12-30 CN CNB021599300A patent/CN1195364C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1416243A (zh) | 2003-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100544008B1 (ko) | 효율적인 경로 코스트 집합 도출 방법 및 장치 | |
CN1195364C (zh) | 基于宽度优先搜索的性能可调启发式服务质量路由方法 | |
Clímaco et al. | Internet packet routing: Application of a K-quickest path algorithm | |
CN1240004C (zh) | 具有可转换路径选择标准的路径计算装置 | |
Tang et al. | QoS information approximation for aggregated networks | |
Chen et al. | An efficient neural network-based next-hop selection strategy for multi-hop VANETs | |
Layuan et al. | A routing protocol for dynamic and large computer networks with clustering topology | |
Ishikawa et al. | New parallel shortest path searching algorithm based on dynamically reconfigurable processor DAPDNA-2 | |
CN1167229C (zh) | 基于线性能量函数的服务质量路由预计算的方法 | |
Hao et al. | Performance of the PNNI protocol in large networks | |
CN1710882A (zh) | 基于优化直径网络的按度值对目的节点分段迭代的路由法 | |
Tang et al. | State aggregation of large network domains | |
Bhardwaj et al. | On analysis and discussion of various performance parameters of omega and advance omega interconnection network | |
CN1195363C (zh) | 基于线性构造的服务质量路由性能评价方法 | |
Prabha et al. | Performance Comparison of Routing Protocols in Opportunistic Networks. | |
Oliveira et al. | Performance Comparison and Evaluation of Hybrid Wired-Wireless Networks-on-Chip | |
CN103346965A (zh) | 基于编码子图优化编码代价的光组播路由方法 | |
CN1543160A (zh) | 一种实现路由器外部路由计算的方法 | |
Zheng et al. | An efficient dynamic weight coefficient qos routing algorithm | |
Wang et al. | Design of a heuristic topology generation algorithm in multi-domain optical networks | |
Hou et al. | Performance analysis of quantization-based approximation algorithms for precomputing the supported QoS | |
Cheng et al. | Achieving 100% success ratio in finding the delay constrained least cost path | |
Tham et al. | A QoS-based routing algorithm for PNNI ATM networks | |
Akel et al. | Improving QoS in information central networks (ICN) | |
Yang et al. | Applying tabu search to backup path planning for multicast networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |