当前位置:文档之家› 式算法设计基础(第四章)路由算法

式算法设计基础(第四章)路由算法

分布式算法设计基础第四章路由算法(Routing Algorithms)一般地,一个进程并不直接用一个其他每一个结点联结,一个结点能够直接发送信息邮包的结点集合称之为该结点的邻居。

所谓路由是一个刻画决策过程的术语,根据这个决策过程,一个结点选择其邻居结点中的一个(或一个以上),使这条路上的邮包最终到达目的地。

设计路由算法的目的是对每个结点产生一个决策过程,以便执行该功能并确保每个邮包的投递。

显然,每个结点都要保留网络拓扑结构的一些信息作为(局部)决策的工作基础,我们把这些信息与路由表联系在一起,根据这些表的引导,路由问题可以很自然地分成两部分:(1)表计算在网络初始化的时候计算路由表,且当网络拓扑结构发生改变时,该表必须重新计算更新;(2)邮包转递通常,我们从以下几个方面来判断和评价一个“好”的路由方法:(3)正确性算法必须把递交给网络的每一个邮包投递到它的最终目的地;(4)复杂性路由表的计算算法应该尽可能地使用极少的信息、时间和存储;(5)有效性算法必须经过“好”的路径发送邮包,例如,路径只承受小的时间延迟,并且保证整个网络高度流畅(通畅)。

若一个路由算法使用“最佳”路径,则该算法称为最优的,令人满意的;(6)健壮性在拓扑结构被改变的情况下(如增加或删除一个结点和通道),算法能自动更新路由表,以便在修改后的网络中执行路由选择功能;(7)适应性算法应能调整路由表以便平衡通道和结点负载,以免这些要经过的结点和通道过于忙碌;(8)公平性算法应该以相同的优先级公平地为每个用户提供服务。

这些标准并不一定都能达到,其中一些有时候是相互冲突的,大多数算法只能针对其中的一部分是比较好的。

一般地,网络的拓扑结构抽象地用一个图来表示,于是,算法的最优性依赖于图中什么是“最佳”路径。

有几种“最佳”的概念,每一种都与其自己的路由算法联系在一起,就象编译和文法的分析方法一样。

(1)最小跳跃应用一般路径的成本度量为该路径跳跃的数目,即经过的结点数目减一, hop(跳跃)表示经过通道或从一个结点到一个结点的步数。

一个最小跳跃路由算法使用一条具有最小可能跳跃数目的路径。

(2)最短路径每个通道静态地被赋予一个非负数,也称权。

一段路径的成本度量为该路径上通道的权和。

一个最短路径算法使用一条具有最低可能成本的路径。

(3)最小延迟每个通道动态赋予一个权,该权取决于通道上的交通忙闲情况。

一个最小延迟算法以下列方式重复修正一个表,使得这条路径的选择具有最小总延迟数,即总的延迟时间最小。

当通道上遇到的延迟依赖于实际交通时,经过网络发送的各个邮包会相互影响,并由此导致群延迟,这是十分复杂的。

1.基于目的地的路由当投递一个邮包通常只涉及邮包的目的地(和路由表的内容)时要做路由决策,而且,这种决策与邮包最初的发送者是无关的。

这样,路由可以忽略源头同时仍使用最优路径策略。

本章所得到的结果并不依赖于路径上具体的最优性标准的选择,即无论是最短路径、最小跳跃或其他标准都可以,但下列假设必须成立(回忆:一个路径是简单的,如果他包含每个结点至多一次;称一个路径是一个环,如果第一个结点等于最后一个结点):(1)经一条路径P发送一个邮包的成本与该路径的实际利用无关,特别,当其他信息也可以使用P的边时,这一假设允许我们把使用路径P的成本看成是路径函数,故将P的成本用C(P) R表示。

(2)两条路径连接的成本等于被连接的路径的成本之和,即对所有的i=0,1,2,k,C(<u0,u1,⋯,u k>)= C(<u0,u1,⋯,u i>)+ C(<u i,u i+1,⋯,u k>)特别,空路径<u0> 的成本满足C(<u0>)= 0 。

(3)图中不包含一个负成本的环。

最小跳跃和最短路径成本标准满足这些标准。

从u到v的一条路径称为是最优的,如果不存在从u到v的具有更小成本的路径。

注意,一条最优路径并不总是唯一的,有可能存在不同的路径,它们都具有相同的最小成本。

引理4.1设G =(V,E),u,v V,如果G中存在一条从u到v的路径,则存在一条最优的简单路径。

证明:直接在黑板上证明。

定理4.2对每一个d V,存在一棵树T d = ( V,E d ) 使得,E d ⊆ E,且使得对每一个结点v V,T d中从v到d的路径是G中从v到d的最优路径。

证明:这棵树实际上是一棵生成树。

定理4.2中每一棵树 T d 实际上是原来图中一棵以d为根结点的最优汇集树,他是一棵生成树,但不一定是一棵最小生成树。

术语:若一棵树具有定理4.2中所给定的性质,则称该树为最优汇集树。

最优汇集树的存在性表明:如果仅考虑路由算法,那么,算法4-2中的转发机制不会是对最优性的折中,即不会损害算法的最佳路由。

在算法中,table-lookup u是仅有一个变量的局部过程,它根据路由表作出判断,返回u的近邻作为值。

当所有目的地为d的邮包,经过朝向根为d的生成树最优路由时,如果对于所有的u≠d,table-lookup u(d)返回的是生成树T d中u的父结点,则转发是最优的。

当转发机制具有这种形式且拓扑结构不再变化,使用下面的结果就能验证路由表的正确性。

称(针对目的地结点d)路由表包含回路,若存在结点u1,u2,⋯,u k,满足对任意i,u i≠d,对任意i<k,table_lookup u i(d) = u i+1,且 table_lookup u k(d) = u1若对任何目的地d,路由表不包含回路,则称它是无回路的。

算法4.2 基于目的地的向前推进算法。

(转发算法)引理4.3 向前推进机制把每个邮包投递到它的目的地,当且仅当路由表无回路。

∙ 最小延迟分支路由算法作一个简单的说明。

2.所有点对最短路径问题本节针对一个网络中同时计算所有结点的路由表问题讨论由Toueg提出的算法,该算法对每一对结点(u,v),计算从u到v的最短路径。

, C×C ≥0, , ⇝0 ⋜i< k(Z, I, ⊢i, ⊢s, ⊢r),⊢s⊢r Z×M×Zc ⊢d ⇔ (c,d) ∈⊢i ∨ m ∈ M((c,m,d)∈ ⊢s ∪ ⊢r)P={p1,p2,⋯⋯,p N},(Z p i, I p i, ⊢pi i, ⊢pi s, ⊢pi r))⑴ C ={(c p1,c p2 ,⋯⋯,c pN,M):(p∈P:c p ∈ Z p)且M∈M(M)}⑵ =(∪p∈Pp),p,pi(c p1,c p2 ,⋯,c pi ,⋯,c pN,M1),(c p1,c p2 ,⋯,c’pi,⋯,c pN,M2)① (c pi,c’pi )∈ ⊢pi i 且 M1 = M2 ;② 对某个m∈M,(c pi,m,c’pi )∈ ⊢pi s 且 M2 = M1∪{m} ;③ 对某个m∈M,(c pi,m,c’pi )∈ ⊢pi r 且 M1 = M2∪{m} ;⑶ I ={(c p1,c p2 ,⋯⋯,c pN,M):(p∈P:c p ∈ I p)且M=φ }(c,d)∈⊢p i=(c p1,c p2 ,⋯,c p ,⋯,c pN,M),(c p1,c p2 ,⋯,d,⋯,c pN,M)=(c p1,c p2 ,⋯,c p ,⋯,c pN,M),(c p1,c p2 ,⋯,d,⋯,c pN,M∪{m})(Z p i, I p i,⊢pi i, ⊢pi s, ⊢pi r))C ={(p1,p2 ,⋯⋯,p N): p∈P:c p ∈ Z p }=(∪p∈Pp)∪(∪p, q∈P: p≠qpq),(c p1,c p2 ,⋯,c pi ,⋯,c pN),(c p1,c p2 ,⋯,c’pi,⋯,c pN),(⋯,c pi ,⋯,c pj ,⋯),(⋯,c pi ,⋯,c’pj,⋯),(c pi,m,c’pi )∈ ⊢pi s 且 (c pj,m,c’pj )∈ ⊢pj rI ={(c p1,c p2 ,⋯⋯,c pN) :(p∈P:c p ∈ I p}true 如果P在 成立P()=False 否则{ P }{ Q }⑴ ∈I,P(),且⑵ { P }{ P }⑴ ∈I,Q() ⇒ P(),且⑵ { Q ∧ P }{ Q ⇒ P } ( 是变迁)⑴ ∈I,Q()∧ P(),且⑵ { Q ∧ P }{ Q ∧ P } ( 是变迁)∈I,Q()w1 ≻ w2 ≻ w3 ≻w4 ≻ ⋯⋯ w i∈W。

>,或P()term ⇒ P, ,e()=(c p1,c p2 ,⋯,d,⋯,c pN,(M- x)∪ y )e p=(b p,x p ,y p,d p)e q=(b q,x q ,y q,d q)=(⋯,c p ,⋯,c q ,⋯,M)c p = b p,c q = b q,x p ⊆ M,x q⊆ M =(⋯,d p,⋯,c q,⋯,(M- x p)∪ y p),当x q⊆ M 且x q∩ x p = φ=(⋯,d p,⋯,d q,⋯,(((M- x q)∪ y q)- x p)∪ y p),((M- x p∪ y p)- x q∪y q)=((M- x q∪ y q)- x p∪ y p),⋯,,e p(),e q(e p()),⋯a = e0,e1,e2,⋯,e k = b≼ , = =(c p1,c p2 ,⋯,c pN,M),=(c’,x’,y’,d’),c p = d’,,(X,<)a≺b (a)<(b)。

(e1,⋯,e k) e1≺ e2≺⋯≺ e k = aa≺b (a)<(b)(a1,⋯,a n)≤(b1,⋯,b n)i(1≤i ≤n): a i≤ b i≺≮∽∢≤≤≥≮≯⋯a ≼ b。

相关主题