【数据结构】最大流

最大流

1 简述

最大流:从源点到经过的所有路径的最终到达汇点的所有流量和

流网络G=(V,E)是一个有向图,其中每条边(u,v)∈E均有一个非负容量c(u,v)>=0。如果(u,v)不属于E,则假定c(u,v)=0。

流网络有n个点,有m条有向边,有一个点很特殊,只出不进,叫做源点,通常规定为1号点。另一个点也很特殊,只进不出,叫做汇点,通常规定为n号点。每条有向边上有两个量,容量和流量,从i到j的容量通常用c[I,j]表示,流量则通常是f[I,j]。通常可以把这些边想象成道路,流量就是这条道路的车流量,容量就是道路可承受的最大的车流量。很显然的,流量<=容量。而对于每个不是源点和汇点的点来说,可以类比的想象成没有存储功能的货物的中转站,所有”进入”他们的流量和等于所有从他本身”出去”的流量。
把源点比作工厂的话,问题就是求从工厂最大可以发出多少货物,是不至于超过道路的容量限制,也就是,最大流。

2 求最大流

比如这个图。每条边旁边的数字表示它的容量。

3 解析

  • 该题的最大流为 3+4+1+1 = 9
  • 图中增广路径有4条,分别是
    1. s -> a -> b -> t delta=3
    2. s -> c -> d -> t delta=4
    3. s -> c -> a -> b -> d -> t delta=1
    4. s -> a -> b -> d -> t delta=1
原文地址:https://www.cnblogs.com/lwp-nicol/p/14001764.html