网络流(一)基础知识篇

传送门:

网络流(一)基础知识篇

网络流(二)最大流的增广路算法

网络流(三)最大流最小割定理

网络流(四)dinic算法

网络流(五)有上下限的最大流

网络流(六)最小费用最大流问题

 转载自:https://blog.csdn.net/txl199106/article/details/64441994

网络流入门

基本概念(从书上摘抄,可以直接跳过不看)

容量网络和网络最大流

容量网络: 设 G(V, E)是一个有向网络, 在 V 中指定了一个顶点, 称为源点(记为 Vs ), 以及另一个顶点, 称为汇点(记为 Vt); 对于每一条弧 <u, v>∈E, 对应有一个权值 c(u, v)>0, 称为弧的容量, 通常把这样的有向网络 G 称为容量网络。

也就是指: 一个拥有源点、汇点并且可以容纳流量的图.

弧的流量: 通过容量网络 G 中每条弧 <u, v> 上的实际流量(简称流量), 记为 f(u, v)
网络流: 所有弧上流量的集合 f = { f(u, v) },称为该容量网络 G 的一个网络流。
可行流: 在容量网络 G(V, E) 中, 满足以下条件的网络流 f, 称为可行流:

  • 弧流量限制条件: 
  • 平衡条件: 除了 Vs, Vt 外, 其余的点流入的流量总和等于流出的流量总和, 其中 Vs 流出的流量总和 - 流出的流量总和 = fVt 流入的流量总和 - 流出的流量总和 = f, 并且称 f 为可性流的流量.

也就是指: 在图中有一条从 Vs 到 Vt 的路径, 这条路径上起点 , 终点 , 其他的点 , 并且所有的边的当前流量小于等于最大流量.(其中  代表流入流量,  代表流出流量)

伪流: 如果一个网络流只满足弧流量限制条件, 不满足平衡条件, 则这种网络流称为伪流, 或称为容量可行流。
最大流: 在容量网络 G(V, E) 中, 满足弧流量限制条件和平衡条件、且具有最大流量的可行流, 称为网络最大流, 简称最大流。

链与增广路

在容量网络 G(V, E) 中, 设有一可行流 f = { f(u, v) }, 根据每条弧上流量的多少、以及流量和容量的关系,可将弧分四种类型:

  • 饱和弧, 即 ;
  • 非饱和弧,即 ;
  • 零流弧, 即 ;
  • 非零流弧, 即 。

链: 在容量网络中,称顶点序列为一条链,要求相邻两个顶点之间有一条弧, 如 <u, u1> 或 <u1, u> 为容量网络中一条弧。沿着 Vs 到 Vt 的一条链, 各弧可分为两类:

  • 前向弧: 方向与链的正方向一致的弧, 其集合记为 P+;
  • 后向弧: 方向与链的正方向相反的弧, 其集合记为 P-;

增广路: 设 f 是一个容量网络 G 中的一个可行流, P 是从 Vs 到 Vt 的一条链, 若 P 满足下列条件:

  • 在 P 的所有前向弧 <u, v> 上, , 即 P+ 中每一条弧都是非饱和弧;
  • 在 P 的所有后向弧 <u, v> 上, , 即 P– 中每一条弧是非零流弧。

则称 P 为关于可行流 f 的一条增广路, 简称为 增广路(或称为增广链、可改进路)。沿着增广路改进可行流的操作称为增广

残留容量与残留网络

残留容量: 给定容量网络 G(V, E) 及可行流 f, 弧 <u, v> 上的残留容量记为 。每条弧的残留容量表示该弧上可以增加的流量。因为从顶点 u 到顶点 v 流量的减少, 等效于顶点 v 到顶点 u 流量增加, 所以每条弧 <u, v> 上还有一个反方向的残留容量 。

一个容量网络中还可以压入的流量称为残留容量

残留网络: 设有容量网络 G(V, E) 及其上的网络流 f,G 关于 f 的残留网络(简称残留网络)记为 G'(V', E'), 其中 G’的顶点集 V’和 G 的顶点集 V 相同,即 V’=V, 对于 G 中的任何一条弧 <u, v>, 如果 , 那么在 G’中有一条弧 <u, v>∈E', 其容量为 , 如果 ,则在 G’中有一条弧 <v, u>∈E', 其容量为 , 残留网络也称为剩余网络.

由残留的容量以及源点汇点构成的网络。

割与最小割

割: 在容量网络 G(V, E) 中, 设 E'⊆E, 如果在 G 的基图中删去 E’ 后不再连通, 则称 E’ 是 G 的割。割将 G 的顶点集 V 划分成两个子集 S 和 T = V - S。将割记为(S, T)。
s-t 割: 更进一步, 如果割所划分的两个顶点子集满足源点 Vs ∈ S,汇点 Vt ∈ T, 则称该割为 s-t 割。 s-t 割(S, T)中的弧 <u, v>(u∈S, v∈T) 称为割的前向弧, 弧 <u, v>( u∈T, v∈S) 称为割的反向弧。
割的容量: 设 (S, T) 为容量网络 G(V, E) 的一个割, 其容量定义为所有前向弧的容量总和, 用 c(S, T) 表示。
最小割: 容量网络 G(V, E) 的最小割是指容量最小的割。

相关定理

残留网络与原网络的关系

设 f 是容量网络 G(V, E) 的可行流, f’ 是残留网络 G’ 的可行流, 则 f + f’ 仍是容量网络 G 的一个可行流。(f + f’ 表示对应弧上的流量相加)

网络流流量与割的净流量之间的关系

在一个容量网络 G(V, E) 中, 设其任意一个流为 f, 关于 f 的任意一个割为(S, T), 则有 ,即网络流的流量等于任何割的净流量。

网络流流量与割的容量之间的关系

在一个容量网络 G(V, E) 中, 设其任意一个流为 f, 任意一个割为(S, T), 则必有 ,即网络流的流量小于或等于任何割的容量。

最大流最小割定理

对容量网络 G(V, E), 其最大流的流量等于最小割的容量。

增广路定理

设容量网络 G(V, E) 的一个可行流为 f, f 为最大流的充要条件是在容量网络中不存在增广路。

几个等价命题

设容量网络 G(V, E)的一个可行流为 f 则:

  • 1) f 是容量网络 G 的最大流;
  • 2) | f |等于容量网络最小割的容量;
  • 3) 容量网络中不存在增广路;
  • 4) 残留网络 G’中不存在从源点到汇点的路径。
posted @ 2018-04-16 11:37  _努力努力再努力x  阅读(4007)  评论(1编辑  收藏  举报