网络流24题之太空飞行计划——最大权闭合图转最大流模型

14 篇文章 0 订阅
6 篇文章 0 订阅

做网络流24题时感觉就是对建图能力的挑战,本来应该好好整理一下的,奈何时间不足,尽在此简述一下。

一开始做这题时想了另外一个建图方式,但实际上是我读错题目了。这题只要求净收益最大,而不要求所有实验都需要进行。只关心收益的情况下,我们就可以考虑一种合适的建图方法,仅以钱为权重。这里就可以使用闭合图模型。

闭合图不是环

看见闭合图这个名词,相比很多人都会以为是含有一个很大的环的图(你懂的),但事实上并不是。

定义一个有向图 G = ( V , E ) G=(V,E) G=(V,E)的闭合图(closure)是该有向图的一个点集,且该点集的所有出边都还指向该点集。即闭合图内的任意点的任意后继也一定在闭合图中。按照上面的定义,闭合图是允许超过一个连通块的。

那么对于带点权图,就产生了一个重要的概念——最大权闭合图,即点权和最大的闭合图。

如果我们把赞助商/实验看成一个正权点(增加相应的金钱),把仪器看成一个负权点(花去相应的金钱),并让实验连一条有向边指向该实验需要的仪器,则样例可绘图如下(由于Mermaid功能有限,故使用A/B表示编号为A的点权值为B):

1/10
2/25
3/-5
4/-6
5/-7

可以看出,上图的闭合图有 { 1 , 3 , 4 } \{1,3,4\} {1,3,4}, { 2 , 4 , 5 } \{2,4,5\} {2,4,5}, { 1 , 2 , 3 , 4 , 5 } \{1,2,3,4,5\} {1,2,3,4,5},它们的权值和分别为 − 1 -1 1, 12 12 12, 17 17 17,最大权闭合图为 { 1 , 2 , 3 , 4 , 5 } \{1,2,3,4,5\} {1,2,3,4,5},权值和为 17 17 17,正好是我们本题需要求解的结果。

那么有什么好的方法可以用来求最大权闭合图呢?

最大权闭合图转最大流

我们可以在原图的基础上增加源 s s s和汇 t t t,然后让 s s s连向所有正权点,边权为正权点的权值;让所有负权点连向 t t t,边权为负权点权值的绝对值;最后让原来图中的边权全为 ∞ \infty

10
25
INF
INF
INF
INF
5
6
7
0
1
2
3
4
5
6

我们所求的最大权闭合图权值和即为所有正权边和-最小割,也就是所有正权边和-最大流。在本图中,最大流为 18 18 18,最大权闭合图权值和即为 35 − 18 = 17 35-18=17 3518=17

笔者在此无力证明最大权闭合图为何可以转化为最小割问题,若有读者想了解,可参考Amber的论文《最小割模型在信息学竞赛中的应用》。

最大权闭合图模型的应用场景

在许多实际应用中,给出的有向图常常是一个有向无环图(DAG),闭合图的性质恰好反映了事件间的必要条件的关系:一个事件的发生,它所需要的所有前提也都要发生。一个常见的例子就是制定大学的选课计划,其中一些课程需要以另一些课程为基础,这就是给出了有向无环图。若给所有课程打分,最大权闭合图对应了获益最大或效率最高的选课计划,解决了这个问题,就可以容易地选出一个最合理的选课计划。

在另外一些实际应用中,给出的是一个一般有向图,即有可能出现圈。常见的例子就是工程分期,一个工程可能含有很多项目,项目之间也有依赖关系。有些项目是需要同期一起开发,互相依赖的(即出现圈)。这样,也可以利用最大权闭合图,将最先应该完成的项目选出来作为工程的第一期。

参考资料

《最小割模型在信息学竞赛中的应用Applications of Minimum Cut Model in Informatics》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值