网络流建图分析学习.pdf

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络流建图分析 By Rj 网络流建图分析 —— RJ 网络流作为一个综合性极强的图论模型,自然是NOI 的重要考点,而网络流最难的地方就是建图,这 里我就简单的谈一谈我对建图的体验和方法。 首先,分析题目之后,可以对题目的模型有一个初步的判断:如果这个模型是一个很明显的基础模型, 如:最大权闭合图、最大权独立集、最小权覆盖集、多进程的问题、多重匹配、最小割或者二分图的一些 基本计算等,都是可以很轻松地通过一些构图技巧实现建图。 如果题目要求的不是这些基础模型,那就需要进行更深层次的分析。 据我总结,针对这样的题目,构图大概可以分为三步: 1.分析题目约束条件,写出恰当的表达式。 2.适当变形以使其满足网络流的性质。* 3.根据约束条件构图。 *关于网络流的性质,详情参见胡伯涛《最小割》。 以下我举两个例子来进行讨论: 1.餐巾问题 题目简述: 一个餐厅在相继的N 天里, 每天需用的餐巾数不尽相同。 假设第i 天需要ri 块餐巾(i=1, 2,…,N) 。餐厅可以购买新的餐巾,每块餐巾的费用为p 分;或者把旧餐巾送到快洗部, 洗一块需 m 天,其费用为 f 分;或者送到慢洗部,洗一块需 n 天(nm) ,其费用为 sf 分。 每天结束时,餐厅必须决定将多少块脏的餐巾送到快洗部,多少块餐巾送到慢洗部,以及多 少块保存起来延期送洗。 但是每天洗好的餐巾和购买的新餐巾数之和, 要满足当天的需求量。 试设计一个算法为餐厅合理地安排好N 天中餐巾使用计划,使总的花费最小。 解析: 乍看来,不是我们的基本模型,因此,先分析约束条件 able[i]表示第i 天可用的餐巾数,buy[i]表示第i 天购买的餐巾数,used[i]表示第i 天的脏餐巾数,today[i] 表示第i 天的需求,yesterday[i]表示第i 天的前一天送过来的脏餐巾数。 able[i]=buy[i]+wash[i]; ① used[i]=today[i]+yesterday[i]; ② able[i]=today[i]; ③ 合并①③ buy[i]+wash[i]= today[i] ; ④ 如果将每一天的可用的餐巾看做一个集合b ,每一天的脏餐巾看做一个集合a,②式就反应了i.a 的流 网络流建图分析 By Rj 量情况,每天的脏餐巾是今天剩下的和昨天剩下的和起来;④式就反应了 i.b 的流量情况,即每一天可用 的来源于购买的和洗干净的餐巾;这事实上是一种流量守恒,可用来构建网络流图。然后是洗餐巾的问题, 一块餐巾洗后就成了一块可用的餐巾,等效于重新买了一张,只是费用不同,数量也有限制罢了。 因此我们可以如此建图: 建立附加源S 汇T 。 1、从S 向每个I.a 连一条容量为ri ,费用为0 的有向边。 2、从每个I.b 向T 连一条容量为ri ,费用为0 的有向边。 3、从S 向每个I.b 连一条容量为无穷大,费用为p 的有向边。 4、从每个I.a 向(I+1).a(i+1=N)连一条容量为无穷大,费用为0 的有向边。 5、从每个I.a 向(I+m).b (i+m=N)连一条容量为无穷大,费用为f 的有向边。 6、从每个I.a 向(I+n).b (i+n=N)连一条容量为无穷大,费用为s 的有向边。 求

您可能关注的文档

文档评论(0)

189****6140 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档