ImageVerifierCode 换一换
格式:PDF , 页数:4 ,大小:293.30KB ,
资源ID:3177784      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3177784.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(网络最大流的最大容量有向路算法_精品文档.pdf)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

网络最大流的最大容量有向路算法_精品文档.pdf

1、2 0 0 9 年1 2 月第9 卷第6 期廊坊师范学院学报(自然科学版)J o u r n a lo fL a n g f a n gT e a c h e r sC o l l e g e(N a t u r n a lS c i e n c eE d i t i o n)D e c 2 0 0 9V 0 1 9N o 6网络最大流的最大容量有向路算法郑桂君1张薇2(1 湛江师范学院,广东湛江5 2 4 3 0 0;2 东北大学,辽宁沈阳1 1 0 0 0 4)【摘要】针对单源、单汇网络给出最大流问题的一个新算法最大容量有向路算法,算法的核心思想是利用分层原理在增量网络中反复寻找从源点到汇

2、点的在一定规则下的容量最大的有向路,直至找不到有向路为止。给出算法的复杂度为0(a n)与最大流问题的两个具有代表性的算法F o r d-F I l l k e r s o n 算法和D i n i c 算法,作了复杂性和实例比较,结论是最大容量有向路算法的效果好于F o r d F u l k e r s o n,算法不低于D i n i c 算法。该算法完全能够编程实现,仿真试验结果表明,算法效果良好。【关键词】分层;增量网络;最大容量有向路算法;有向路;复杂度T h eM a x i m a lC a p a c i t yo fD i r e c t e dP a t hA l g o

3、 r i t h mo nM a x i m u mF l o wN e t w o r kz H E N GG u i-;u nZ H A N GW e i【A b s t r a c t】AF l e wa l g o r i t h m t h em a x i m a lc a p a c i t yo fd i r e c t e dp a t ha l g o r i t h ma i m i n ga ts i n g l es o u r c ea n ds i n g l es i n kn e t w o r ka b o u tm a x i m u mf l o wp

4、r o b l e mi sg i v e n T h ec o r ei d e ao ft h em a x i m a lc a p a c i t yo fd i r e c t e dp a t ha l g o r i t h mi st of i n dt h em a x i m a lc a p a c i t yo fd i r e c t e dp a t hw i t hs p e c i a lr e g u l a t i o ni ni n c r e m e n t a ln e t w o r ku s i n gd e l a m i n a t i o n

5、p r i n c i p l ef r o ms o u r c et os i n ku pt on o t h i n g T h ec o m p l e x i t yo ft h i sn e wa l g o r i t h ma l s oh a sb e e ns t u d i e dt h a ti sO(m n)T h ec o m p a r i s i o no nc o m p l e x i t ya n de x a m p l e sw i t hb e i n gp r o v i d e dw i t ht w or e p r e s e n t a

6、t i v ea l g o r i t h m s F o r d f u l k e r s o na l g o r i t h ma n dD i n i ca l g o r i t h mh a sb e e nd o n e T h ee f f e c to ft h en e wa l g o r i t h mi sb e t t e rt h a nt h ee f f e c to fF o r d f u l k e r s o na l g o r i t h ma n dn o tl o w e rt h a nt h ee f f e c to fD i n i

7、 ca l g o r i t h m T h ea l g o r i t h mc o u l db ea c h i e v e db yp r o g r a m m i n ge n t i r e l y E m l u a t o re x p e r i m e n ti n d i c a t e st h ee f f e c to ft h en e wa l g o r i t h mb e t t e r【l(e yw o r d s】d e l a m i n a t i o np r i n c i p l e;i n c r e m e n t a ln e t

8、 w o r k;t h em a x i m a lc a p a c i t yo fd i r e c t e dp a t ha l g o r i t h m;d i r e c t e dp a t h;c o m p l e x i t y 中图分类号 T P 3 0 1 6 文献标识码 A 文章编号 1 6 7 4 3 2 2 9(2 0 0 9)0 6 0 0 2 2 0 3最大流问题是网络流的调度问题,是指对“源节点来到汇节点去”的网络中的流量进行合理分配,运用网络流理论及其算法得出流量的最优分配方案,使整个系统处于某一准则下的流的最优分布状态。网络最大流问题从提出到现在已

9、有4 0 多年的发展历史。在此期间出现了一些最大流算法,如何提高算法效率减少网络最大流算法的计算量一直是最大流问题研究的一个主要方向。特别在2 0 世纪7 0 年代后,围绕着提高算法效率所作的减少网络最大流算法的计算量相继出现许多改进方法,但都不能完全令人满意。1 基础知识定义1 1 给定有向图D=(V,A)后,通常要对图的每一条弧a 赋予一个实数c(a),称为弧a 的权。赋权的有向图称为网络,记为N=(V,A,W)。如果一个网络的每条弧a 的权c(a)O,那么又称为弧的容量,表示该弧的最大通过量,这时的N 称为容量网络,记为N=(V,A,c(a)。定义1 2 在讨论网络问题时,我们经常在网络

10、中指定两个特定的点s 和t,s 往往没有人弧,s 称为网络的源;t 往往没有出弧,t 称为网络的汇。网络中其余的点称为中间点。定义1 3 在增量网络N(f)中,用广探法找出从源点s 到任意一点v EV 的最短路的长度h(v),即由s 到v 的弧数最少的路的弧数,并把长度相同的节点称为同一层的节点(第零层只有一个节点s,因为h(s)=0)。把所有节点分层后,N(f)中所有弧 收稿E t 期 2 0 0 9 1 I 一0 5 作者简介】郑桂君(1 9 8 1 一),女,湛江师范学院基础教育学院教师,硕士,主要从事最优化理论及其应用研究。2 2 万方数据第9 卷第6 期郑桂君等:网络最大流的最大容茸

11、有向路算法2 0 0 9 年1 2 月可以分成以下三类:从第i 层节点指向第i+l 层节点的弧叫做第一类;从第i 层节点指向同一层节点的弧叫做第二类;从第i 层节点指向第j 层节点的弧(其中j 1)的弧。定义1 4 指定了从起点到终点或者从终点到起点的方向的路称为有向路。定义1 5 按由低层至高层的顺序依次给网络各层内节点从上至下(或从下至上)由小到大编号,从小标号指向大标号的弧称为正向弧。反之从大标号到小标号的弧为反向弧。定理1 1(流量一容量)增量网络N(f)中从s到t 的有向路与N 中f 的增广路一一对应,且可以增广的流值恰好等于有向路的容量。定理1 2(有向路定理)网络N 达到最大流当

12、且仅当N 的增量网络N(f)没有从s 到t 的有向路。证明由定理1 1 显然可以看出,当增广路可以增广的流值为O 时,N(f)中所对应的s t 有向路的容量就为0。此时网络N 中没有增广路,增量网络N(f)中也就没有s t 有向路。那么由增广路定理可知,这时网络N 已达到最大流。反之亦然。2 最大容量有向路算法最大容量有向路算法的基本思想是首先找出网络关于当前可行流的增量网络,对增量网络分层、标号,然后按广探法和深探法在增量网络中寻找“容量最大”的从源点到汇点的有向路,再由有向路得到新的可行流及其增量网络。如此下去,直至找不到增量网络中从源点到汇点的有向路。初始可行流的流量与找到的所有有向路的

13、容量之和即是网络的最大流量。根据上述基本思想,我们给出网络最大流的最大容量有向路算法。2 1算法(网络最大流的最大容量有向路算法)已知网络N,节点数为n,源点记为v o,汇点记为v。,初始可行流毛(通常取为f=0 )及其流量v(厶),置i=0。S t e p l:求出关于当前流的增量网路N(f i)。S t e p 2:按定义1 3 对增量网络N(f i)分层,按定义1 5 标号。S t e p 3:用广探法和深探法寻找增量网路N()中从v 0 至v 川的有向路:首先寻找与v o 相连接的容量最大的弧的节点v k,即c o k(f)m-m a xc o J(f)(j 0)。若不存在容量最大的弧

14、,则表明当前流是最大流,转S t e p 4;否则,若容量最大的弧不唯一,则通过在与所有容量最大的弧相连接的所有弧中再选择容量最大的以确定一个节点v。,并以此类推。以后再寻找与所找到的每一个节点v。相连接的容量最大的弧的节点v。,在与v D 的所有正向弧中寻找容量最大的弧(v,v。),即c p h(f)=m a x(f)(j p)。如果没有正向弧,则在反向弧中找容量最大的弧(v,v k),即c p h(f)=m a x c p i(f)(j P)。若不存在容量最大的弧,则表明当前流f i 是最大流,转S t e D 4;否则,若容量最大的弧不唯一,则通过在与所有容量最大的弧相连接的所有弧中再选

15、择容量最大的以确定一个节点v。,并以此类推。重复此过程,直至汇点v 川。反向追踪,便得到一条从v 0 至v。一。的有向路。求从v o 至v 的有向路的流量v(+。)。v(f i+。)等于这条有向路上容量最小的弧的容量。置i:=i+l,转S t e p l。S t e p 4:计算最大流的流量v(f),v(f)=v(f o)+v(f 1)+v(f j),计算终止。下面举例说明最大容量有向路算法初始可行流取为零流的好处。例1 求如图l 所示的网络的最大流。图1初始可行流取为零流】,用最大容量有向路算法只找到两条最大容量有向路,即迭代两次,就达到了最大流。该题的初始可行流共有2 9 种取法,其中需迭

16、代两次以上的有1 6 种,需迭代一次的有1 3 种。这表明初始可行流取为零流的迭代次数比随意取一个初始可行流所用的迭代次数总体上要少。2 3 万方数据2 0 0 9 年1 2 月廊坊师范学院学报(自然科学版)第9 卷第6 期2 2 算法的计算复杂度设m 代表网络的弧数,n 代表网络的节点数,u代表网络的弧的最大容量。根据流量一容量定理1 1 可知,最大容量有向路算法的计算复杂度不高于D i n i c 算法的计算复杂度O(r a n)。3 算法比较3 1理论比较(1)F o r d F u l k e r s o n 算法:是最早的网络最大流算法。算法没有明确指出求增广路的方法,因为它没有指出待检查节点的选取方法;初始增广路的选取具有任意性及随意性,这使得这个算法存在这样的危险性:如果初始增广路选取不恰当,就有可能使计算量变得很大,甚至不能保证一定求到网络的最大流;该算法依赖于算法的具体执行,与网络的节点数和弧数以及弧上的容量分布有关,计算复杂度为0(m U)。(2)D i n i c 算法:引进分层增量网络的概念,使得能更有效地在增量网络中找出最短的增广路;明确指出怎样找增广路;采用

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1