10-最大流问题辩析.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
结点容量 每个结点都有一个允许通过的最大流量,称为结点容量 解:把每个原始结点u分裂成u1和u2两个结点,中间连一条有向弧,容量等于u的结点容量。原先到达u的弧改成到达u1;原先从u出发的弧改成从u2出发。 1 11 0 2 1 3 4 0 5 6 2 8 7 3 4 10 9 5 无源无汇有容量下界网络的可行流 建立附加源s和汇t,然后对弧进行改造:首先添加弧t-s并设置容量为无穷大,然后把每条下界为b弧拆分成3条,,然后合并。最后,求改造后的网络的s-t最大流即可。当且仅当所有附加弧满载时原网络有可行流。 有容量下界网络的s-t最大/最小流 容量同时有上下界,且源点s和汇点t各有一个,求s到t的最大流和最小流。 先求出可行流,然后用传统的s-t增广路算法即可得到最大流。把t看成源点,s看成汇点后求出的t-s最大流就是s-t最小流。注意,原先每条弧u-v的反向弧容量为0,而在有容量下界的情形中,反向弧的容量应该等于容量下界。 费用与流量平方成正比的最小流 容量c均为整数,并且每条弧还有一个费用系数a,表示该弧流量为x时费用为ax^2,如何求最小费用最大流? 解:用拆边法 Dining (poj 3281) 题目大意:有F种食物,D种饮料,N头奶牛,只能吃某种食物和饮料(而且只能吃特定的一份)。一种食物被一头牛吃了之后,其余牛就不能吃了。 第一行有N,F,D三个整数 接着2-N+1行代表第i头牛,前面两个整数是Fi与Di(食物与饮料的种类数量),接着是食物的种类与饮料的种类 要求输出最多分配能够满足的牛的数量 建立网络流模型: ?1.对每种食物建立从源点指向它的一条边,流量为1 ????2.在牛与它所喜爱的食物间建立一条边,流量为1 ?3.在牛与它所喜欢的饮料间建立一条边,流量为1 ?4.对每种饮料建立一条指向汇点的边,流量为1 ?5.在上面的基础上,将牛拆点,在拆开的点间建立一条流量为1的边 ???在以上条件下,从源点到汇点的最大流即为答案 Farm Tour(POJ 2135) FJ带他的朋友参观农场,他们的起点是1,终点是N, 点与点之间可能存在路径。现在要求从1到N,在从N回到1所走的最短路程。并且返回时已经被走过的路不能再走 先求最短路,删边,在求最短路? 1 2 1 1 3 2 2 4 2 2 3 1 3 4 100 3 5 1 4 5 1 求最小费用流。 建一个源点与点1相连,容量为2,代价为0,建一个汇点 t与点n相连,容量为2,代价为0。别的路代价是长度,容量为1。因为是无向图,对每条路都要建两条边,所以不可以用邻接矩阵,只能用邻接表 二分图带权最大独立集 公平分配问题 区间k覆盖问题(poj 3680) 练习 POJ 3614 POJ 3204 POJ 3189 POJ 3498 POJ 1637 POJ 2391 POJ 2455 POJ 2112 最大流问题 在一个单源单汇的简单有向图引入流量因素,且要求计算满足流量限制和平衡条件的最大可行流时,就产生了最大流问题。 基本概念 (1)网络的定义:设D是一个简单有向图D=(V,E)。在V中指定了一个源点(记为Vs)和一个汇点(记为Vt),对于每一条弧(Vi,Vj)∈E,对应有一个Cij=0,称为弧的容量。也记为D=(V,E,C)。 (2)网络的可行流F。满足下述条件的流F称为网络的可行流。 流的容量限制:对于每条弧(u,v)∈E来说,弧流量为一个不大于弧容量的非负数,即0=f(u,v)=C(u,v)。 流的平衡条件:除源点和汇点外的任意中间点u,流入u的“流量”与流出u的“流量”相等。 (3)网络的流量V(F):指源点的净流出流量和汇点的净流入流量。 寻找网络G上可能的最大流量即为网络G上的最大流问题 在可增广路径的基础上计算最大流 最大流算法的核心是计算可增广路径 可增广路径的基本概念 退流的概念和弧的分类 若p是网络中连接源点s和汇点t的一条路,且路的方向是从s到t的,则路上的弧有前向弧和后向弧两种。 前向弧:弧的方向与路的方向一致。前向弧的全体记为p+ 后向弧:弧的方向与路的方向相反。后向弧的全体记为p- 可增广路径的定义 设F是一个可行流,p是从s到t的一条路,若p满足下述两个条件,则称p是关于可行流F的一条可增广路径,亦称可改进路径: 在p+的所有前向弧(u,v)上,0=f(u,v)C(u,v)。 在p-的所有后向弧(u,v)上,0f(u,v)=C(u,v)。 增广路径SACBDET 在可增广路径p上改进流量 残留网络 按照上述方法对弧进行分类,初始流图中的每条弧既有容量又有前向弧流量和后向弧流量,因此不够简洁,不方便寻找可增广路径。 所谓残留网络,就是将初始流图上的前向弧的容量调整为“剩余容量”=C(u,v)-f(u,v);

文档评论(0)

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

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

1亿VIP精品文档

相关文档