网络流学习笔记

来源:互联网 发布:无线信号强度测试软件 编辑:程序博客网 时间:2024/05/23 11:48

概念:

1、点覆盖集:无向图G的一个点集,使得该图中所有边都至少有一个端点在该集合内。

2、最小点权覆盖集:在带点权无向图G中,点权之和最小的覆盖集。

3、点独立集:无向图G的一个点集,使得任两个在该集合中的点在原图中都不相邻。

4、最大点权独立集:在带权无向图G中,点权之和最大的独立集。


建图小技巧与模型:

1、最大流 = 最小割 = 最小点权覆盖集 = 点权和 – 最大点权独立集

2、点只能经过一次: 拆点,连权值为1的边

3、最小割中用正无限容量排除不参与决策的边。

4、最小割中利用与源或汇关联的边容量处理点权。

5、多源多汇问题: 建立超源超汇

6、结点容量: 拆点,连接一条权值为结点容量的边。

7、费用与流量平方成正比的最小流: 拆边法,拆成容量为1,费用为等差数列的若干条边。


在求最小割的实现上分两步,先求得最大流,再在得到最大流f 后的残留网络 f G中,从s开始深度优先遍历(DFS),所有被遍历到的点,即构成点集。

注意,虽然最小割 中的边都是满流边,但满流边不一定都是最小割中的边。在某些特殊图中,很容易犯错,误认为不用DFS,就可以直接得出割。


最大权闭合图:

1、定义:一个有向图 的闭合图是该有向图的一个点集,且该点集的所有出边都还指向该点集。即闭合图内的任意点的任意后继也一定在闭合图中。

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

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

4、建模方式:源点S向每个正权点连一条权值为该点权值的边,每个负权点向汇点T连一条权值为该点权值绝对值的边,如果点a和点b有关系,则add(a,b,INF),结果为图中所有正权点的权值和--最大流


持续更新。。。

0 0