网络流学习笔记摘要

一.流函数的性质

1.容量限制:

\(f(x,y)<=c(x,y)\)

2.斜对称:

\(f(x,y)=-f(y,x)\)

3.流量守恒:

除源点和汇点外,任何节点流入总量等于流出总量。

网络流:在不超过容量限制的前提下,“流”从源点源源不断地产生,流经整个网络,最终全部归于汇点。

二.最大流

1.定义:

使得整个网络的流量(也可以理解为从源点流出来量)最大的流函数。

2.用途:

可解决二分图最大匹配/多重匹配问题。

3.Edmonds-Karp增广路算法

(1)算法思想:不断用 BFS 寻找增广路,直至网络中不存在增广路为止。
(2)重点:反向边的用途:给程序“反悔”的机会。
(3)时间复杂度:\(O(nm^2)\)。一般能处理\(10^3\)~\(10^4\)规模的网络。
(4)代码

4.Dinic算法

三.最小割

1.定义:

边的容量之和最小的割。

2.最大流最小割定理:

任何一个网络的最大流量等于最小割中边的容量之和。

3.构造:

求出最大流后,从源点开始沿残量网络 BFS,标记能够到达了点。E 中所有连接“已标记的点 \(x\)”和“未被标记的点 \(y\)”的边\((x,y)\) 构成网络的最小割。

四.费用流

1.定义:

总花费最小的最大流被称为最小费用最大流;
总花费最大的最大流被称为最大费用最大流。
(前提是最大流,然后再考虑费用)。

2.用途:

可解决二分图带权最大匹配。

3.Edmonds-Karp增广路算法

“用 BFS 寻找一条包含边数最少的增广路”改为“用 SPFA 寻找一条费用之和最小的增广路”。
注:反向边权应为\(-w(x,y)\)

知识点大概就这些吧,手感做题找。

posted @ 2022-12-04 15:07  Travller  阅读(52)  评论(0)    收藏  举报