第二讲图论基础解析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
增广路径 在残量网络中,从源点S出发到汇点T的一条路径。 增广路径上的最小残量表示该网络还可增加的额外流量。 点集间的流量 定义点集间的流量:f X, Y ∑ ∑f x, y 则有: f X,X 0 流的对称性 f X,Y -f Y,X 流的对称性 f X∪Y,Z f X,Z + f Y,Z f X,Y∪Z f X,Y + f X,Z x∈X y∈Y 点集间的流量 不包含s,t的点集,与它关联的边上的流量和为零 证明:f X, V ∑ ∑f x,v ∑0 流量收支平衡 0 x∈X v∈V x∈X 网络中的割 割(S,T)由两个点集S,T组成,满足 1、 S + T V 2、 源点在S集合中 3、 汇点在T集合中 4、 f S,T 表示割的流量 5、 c S,T 表示割的容量 最小切割时使c S,T 最小的切割 割的流量 任意割的流量等于网络的流量 证明: f S,T f S,V – f S,S f S,V + 0 f s, V + f S- s , V f s, V + 0 |f| 割的流量 网络的流量小等于任意割的容量 证明: |f| f S, T ∑ ∑f x, y ∑ ∑c x, y c S, T 所以有最小割等于最大流 x∈S y∈T x∈S y∈T 最小割最大流定理 网络的最大流等于最小割 f是网络的最大流 残量网络中无可增广路径 存在某个切割 S,T ,使f c S, T 以上三个命题是等价的,证明之: 1 — 2 反证法 假设残量网络中还有增广路径, 增广路径上的流量至少为1 由该路径增广后的流量 f 与f是最大流矛盾 2 — 3 此时的残量网络中不存在s-t通路 定义S为s可达的点集 定义T为可达t的点集 显然S+T V S,T 中所有弧都满载,否则残量网络将不为0,使s-t有通路 所以|f| c S,T 3 — 1 由|f| c S,T (任意割) 当|f| c S,T |f|为最大值 从上面的证明,我们可以得到求最大流从增广路径算法。 从2- 3的证明给出了从最大流构造最小割的过程,即求出s的可达点集S, 再令T V - S 求最大流的增广路算法 每次用BFS找一条最短的增广路径; 然后沿着这条路径修改流量值(实际修改的是残量网络的边权)。 路径上的后向弧+流量值 路径上的前向弧-流量值 当没有增广路时,算法停止,此时的流就是最大流。 最大流例题BOJ1154 典型的最大流问题 已知网络容量,求最大流量 根据题意构图如下: 1为源点,M为汇点. 容量为题目已知给出,可能的情况是相同两个结点之间有多条水渠,将它们累加即可. 初始化流量网络为0,则残量网络即初始为容量网络. 算法流程: 构图- 求最大流- 输出最大流 最大流例题BOJ1154 寻找增广路 bool findload memset visited,0,sizeof visited ; head tail 0; queue[tail++] s; while head tail j queue[head++]; for i 1; i m; i++ if !visited[i] cap[j][i] 0 //cap为容量,本题可以直接表示为残量 pre[i] j; //路径标志 visited[i] 1; if i t return true; //找到s-t通路 queue[tail++] i; return false; 最大流例题BOJ1154 求最大流 int maxflow int i, j, flow 0, min; //min为增广路径上的瓶颈流量;flow网络最大流 while findload min 0x7ffffff; for i t; i! s; i pre[i] min cap[pre[i]][i]; //找增广路径的瓶颈流量 flow + min; for i t; i ! s; i pre[i] //更新路径上的流量 cap[pre[i]][i] - min; //前向弧加min cap[i][pre[i]] + min; //后向弧减min return flow; 最大流模型构图 对于求流网络最大流的算法我们可以有现成的模板套用,在实际问题中,如何去构图建立最大流模型才是解决问题的难点和关键。 构图一般考虑下面几个要素: 1、问题是否符合求源点到目标点的所经过网络的等效最大流。 2、找准源点和汇点 3、源点和网络中

文档评论(0)

33894522 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档