ACM网络流专题1-基本概念

1.流网络

流网络是一个有向图 G<V,E>,其中有两个特殊点 s,t∈V ,分别为源点汇点。G 中每一条边有一个≥0 的权值,称作边的容量,边 (u,v) 容量可记做 c(u,v)。

源点相当于一个水源,汇点相当于一个大海,中间的边和点相当于河流水道,水从水源流出,流经河道,流向大海。容量描述的就是这些河流水道的宽度/深度/etc.。

 为了简化问题,我们假设若存在边 (u,v)∈E,则不存在 (v,u)∈E 。

其实我们也有一种办法消除这种边,只需要将 (v,u) 拆成 (v,t) 和 (t,u) 就可以了。

总之,在考虑问题时,不用考虑反向边

2.可行流

对于每一个流网络,我们可以考虑它的任意一个可行流(可简称流),流用 ff来表示,f(u,v) 表示的是单位时间内从 u 点到 v 点流经边 (u,v) 的流。

通俗的来说,就是河道里面流了多少水。

就是说我们要指定每一条边的流量得到一个方案 f ,若满足两个条件:容量限制 和 流量守恒 ,则称这个 f 是一个可行流。

容量限制:流经边的流量小于等于边的容量,即:

流量守恒:除了源点汇点之外其他点不能存储流量。也就是说,流入的流量之和应该等于流出的流量之和,即:

我们完全不用考虑反向边。

对于一个可行流 f,|f| 代表这个可行流的流量值,表示流从源点流向汇点的速率。我们定义:

3.最大流

最大流,也叫最大可行流,一个流 f 是最大流当且仅当 |f| 最大。

4.残留网络

定义一个有向图 G<V,E,W>对应一个可行流 f 的残留网络 Gf<Vf,Ef,Wf> ,其 Vf=V , Ef=E+{(u,v)|(v,u)∈E},其每条边的容量 c′(u,v) 与原图及对应可行流 f 的关系如下:

 

 

可以看出,对于原网络的任意一个可行流都可以建立一个残留网络。

上图示:(红色为可行流,蓝色为容量)

 这个网络的残留网络应为:(红色为反向边及其权值,蓝色为原图有的边及其权值)

 残留网络的性质

1.若 f 为图 G 的一个可行流,f′ 是其残留网络的一个可行流,则 f+f′也是图 G 的一个可行流。

定义这里的流量相加的规则为:

2. 推论:若对于图 G 的一个可行流 f ,其残留网络 Gf 中存在一个可行流 f′ ,其 |f′|>0 则 f 一定不是最大流。逆命题仍然成立。

5.增广路径

在残留网络里面,从源点开始沿容量大于0的边走到汇点的简单路径称为增广路径,也叫流增广路径。

增广路径一定是原网络的一个可行流。

6.增广路定理

设flow是网络G的一个可行流,若不存在从源点到汇点的增广路,则flow是G的一个最大流。

7.割

有向图 G 的割为点集 V 的一个划分方案 <S,T> 使得 S∩T=∅,S∪T=V。

一个割 <S,T> 在可行流 f 下的流量F(S,T) 为

 运算方式

割的性质

  1. 对于任意割 <S,T> ,其流量一定小于等于容量。

    定义式相加易得。

  2. 对于割 <S,T>,其对应的可行流的值 |f|=F(S,T)。

    由流量守恒原则易得。

  3. 对于任意一个 f ,有 |f|≤C(S,T) 对任意割成立。

    推论:最大流流量小于等于最小割容量

8.最大流最小割定理

 9.FF思想

基于最大流最小割定理,我们可以得到如下方法求解最大流。

  1. 输入一个网络 G
  2. 确定一个可行流 f,为当前可行流
  3. 在其残留网络Gf中寻找增广路径 f′。
  4. 更新当前可行流为 f+f′
  5. 转3,若找不到增广路,输出当前可行流。

https://zhuanlan.zhihu.com/p/122375531 

对于为什么要引入反向边

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值