【网络流】网络流学习笔记Part1网络流基础

蒟蒻通篇扯淡,如果有什么错误请轻喷。

有这样一些城市,城市和城市之间连接着一些管道,每个输水管道有一个固定的容量且单向输水,超过这个容量管道就会破裂,水流就没有办法输送。现在要求从水的源头城市将水送到远处的某个城市,这就是网络流的经典模型。

网络流是一个有向图,图中的每条有向边有一个容量,每条边的流量不大于它的容量。在图中,没有入度的节点为源点(Source),没有出度的节点为汇点(Sink),图中的每一条有向边称为一个弧。

我们设G(V,E)是一个有向图,G(V,E)中每一条边(u,v)有一个容量c(u,v),流量f(u,v),其中容量是固定的,流量是可以随时修改的。

在网络流中有几点限制(来自wikipedia):

容量限制(Capacity Constraints)\ f(u, v) \le c(u, v)一条边的流不能超过它的容量。
斜对称(Skew Symmetry)\ f(u, v) = - f(v, u)uv的净流必须是由vu的净流的相反(参考例子)。
流守恒(Flow Conservation)除非u = su = t,否则\ \sum_{w \in V} f(u, w) = 0一结点的净流是零,除了“制造”流的源点和“消耗”流的汇点。
按照我的理解= =

第一条的意思很明显。

第二条其实就是每个节点流出的流量和流入的流量相等。

第三条大概是指除非源点和汇点,每个点流入的流会等量流出0-0。

我们定义一个边的剩余容量为容量与当前流量之差,即Cf(u,v)=c(u,v)-f(u,v),则这条流里剩余边构成了一个残余网络。如果在这个残余网络内仍有边有剩余容量,那么我们认为这个边是一条增广路径。在百度(xiaoxuesheng)百科上好像是把它叫可改进路或者扩张路径=-=?我们找到一条路上所有弧的最小剩余流量minn,给这条路上所有弧的流量都加上minn,一定可以保证这些弧依旧是可行弧,整个流也是可行流。通过这样的方法可以逐渐消除增广路径从而找到最大流。

最大流定理 如果当前残留网络上不存在增广路径了,那么当前流就是最大流;同样的,如果当前流不是最大流,网络中一定还存在增广路径。

网络的割切 我们将V网络整体划分成两大部分,一个叫做St,一个叫做Ed,使得source在St内,sink在Ed内,在网络中弧头(边的起点)在St,弧尾(边的终点)在Ed的所有弧构成的集合我们称为这个网络的割。

比如对于下图(手残请不要在意0-0)


图中,St={Source,A,B},Ed={C,D,Sink},割(St,Ed)的净流量f=7+2+5+1,容量c=8+9+10+1,当然净流量可以计算两个方向的弧,从St到Ed的记为正数,Ed到St的记为负数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值