最大流最小割(概念)
来源:互联网 发布:linux有什么用途 编辑:程序博客网 时间:2024/06/16 03:53
最大流和最小割
先前学习了最大流,那么,这个最小割是怎么又跟最大流联系在了一起呢?
先来理一下割的有关概念和定量
1.割的定义:
割(CUT)是网络中顶点的一个划分。它把顶点分成两个集合:S和T。其中,源点s属于S,汇点t属于T。记作CUT(S,T)
如图,源点s = 1,汇点t = 5。棕色的数字代表容量。
例如,
1 )顶点集合S={1,2,3}和T={4,5}构成一个割。
2 ) 顶点集合S={1,3}和T={2,4,5}构成一个割。
3 ) 顶点集合S={1,3,5}和T={2,4}不能构成一个割。
因为s=1和t=5处在了同一个集合S。
2.割边
如果一条弧的两个顶点分别属于顶点集S和T(即一个顶点在S,另一个顶点在T),那么这条弧称为割CUT(S和T)的一条割边。
从S指向T的割边是正向割边。
从T指向S的割边是逆向割边。
例如 顶点集合S={1,3}和T={2,4,5}构成的一个割,其中,正向割边:1->2, 3->5 逆向割边:2->3
割CUT(S,T)中所有正向割边的容量和称为割CUT(S,T)的容量。
例如,1 )中的割CUT的容量为 3+4=7。
2 )中割CUT的容量为 4+4=8
3.网络流与割的关系
定理1:如果f是网络中的一个流,CUT(S,T)是任意一个割,那么f的值等于正向割边的流量与负向割边的流量之差。
推论:1.如果f是网络中的一个流,CUT(S,T)是一个割,那么f的值不超过割CUT(S,T)的容量;2.网络中的最大流不超过任何割的容量。
定理2:在任何网络中,如果f是一个流,CUT(S,T)是一个割,且f的值等于割CUT(S,T)的容量,那么f是一个最大流,CUT(S,T)是一个最小割(容量最小的割)。
定理3:在任何网络中,最大流的值等于最小割的容量。
最大流=7,最小割=7。
结论:最大流时,最小割CUT(S,T)中,正向割边的流量=容量,逆向割边的流量为0,否否则还可以增广。
问题:如何求集合S?
答:数组pre[i]记录增广路径上节点i的前驱节点。初始值pre[i]=-1,b[1]=0;假设1是源点。
那么,如果pre[i] > 1, 说明i有前驱,是能从源点1找到的点,那么i属于S。
- 最大流最小割(概念)
- 最大流/最小割
- 最大流最小割
- 最大流最小割
- 最大流最小割
- 最大流最小割
- poj 3469(最大流最小割)
- Dinic模板(最大流最小割)
- dinic最大流模板(最小割)
- 最大流最小割定理
- 最大流-最小割简介
- 最大流最小割定理
- poj3308 最大流最小割
- 最小割转最大流
- 最大流和最小割
- 最小割最大流记录
- hdu2435最大流最小割
- 最大流最小割定理
- 6. Error opening trace file: Permission denied ;No such file or directory
- 从AIDL看Android跨进程通信
- cocos2dx C++一些实用方法
- 关于OC中的static关键字使用
- inotify+rsync安装配置
- 最大流最小割(概念)
- app:transformClassesWithDexForDebug异常处理
- curl模拟post请求提交
- hibernate的一对一映射-外键映射-双向-mysql数据库
- php 实现get,set方式读取属性值
- Yougth's Game[Ⅲ]
- [华为编程题] 16进制转换为10进制
- 进程间的通信方式
- jquery-zclip插件