【学习笔记】网络流进阶
15.网络流
杂七杂八
可行流即满足三大约束(容量限制,流量守恒,斜对称性)的流
流网络->流矩阵
残量网络->残量矩阵
网络与矩阵满足双射关系,故可以从矩阵角度分析网络流
增广路径定理(引理)
-
残量流叠加引理:原始网络中的一个合法流 \(f\),加上其残留网络 \(G_f\) 中的任意一个合法流 \(g\),叠加后仍然是原始网络 \(G\) 中的一个合法流。
-
残量路径增广引理:\(𝑝_𝑃\) 是流值为 \(𝛿\) 的可行残量流;因此 \(𝑓 + 𝑝_𝑃\) 是可行流,且 \(|𝑓 + 𝑝𝑃 | = |𝑓| + 𝛿\)。
以上引理引出了网络流算法
-
增广路判定定理:可行流 𝑓 是最大流,当且仅当其残量网络不存在 𝑠-𝑡 路径。
-
最大流最小割定理:最大流值等于最小割容量。
流分解
流分解定理:任意满足 \(|𝑓| ≥ 0\) 的可行流 \(𝑓\) 都能分解成若干条总流量为 \(|𝑓|\) 的 \(𝑠-𝑡\) 路径流与若干循环流。
循环流是指不与s和t链接的可行流,它满足三大限制,但是对于最大流算法无用,所以dinic给他忽略了,但是客观上是存在的
增广路径是合成,而流分解是拆分
平面图与最小割
- 平面割与对偶路径定理:原图最小 \(𝑠-𝑡\) 割的容量等于对偶图中 \(𝑠∗\) 到 \(𝑡∗\) 的最短路长度。
最小割树
最小割树定理:对于任意一个带非负权重的无向图 G,都存在一棵带权树 T(即Gomory-Hu树),使得树 T 上任意两点间路径上的最小边权,等于在原图 G 中这两点间的最小割值
最小割树收缩引理:若 \(cut(u,v)\) 将图分为 \(U\) 和 \(V\) 两部分,则任意 \(x \in U, y \in V\) 有 \(|cut(x,y)|<=|cut(u,v)|\)
Gomory–Hu 构造定理:在一张图上选取(u,v)跑网络流,最小割权值作为边权,将图割开,分治(表述不太规范)。
割等价性:对于树上的两点u,v,他们的最小割是他们之间简单路径的最小路径权值。
Dinic
阻塞流:当前分层图下的局部最大流
时间复杂度 \(O(V^2E)\),这是一个很松的上界
当 \(V≥5000\) 且 \(E≥10000\) 时,心里要敲一下警钟,考虑一图是不是太密了;但如果 \(V≤1000\),无论怎么建图,Dinic 都能轻松拿下。
Dinic二分图匹配复杂度为 \(O(E\sqrt V)\)
费用流
SSP+SPFA
\(O(n*m*f)\)
SSP+Dijkstra(Primal-Dual 原始对偶算法)
这是SPFA的优化版本,通过势能(Potential)函数将负权边转为非负,从而使用更快的Dijkstra算法
\(O(f * m * log n)\)
模拟费用流
模拟费用流AGC034D:即模拟费用流过程,优化边数
16.点覆盖与独立集
互补性:一个点集是点覆盖,当且仅当它的补集是独立集。
极值对偶性:最小点覆盖的补集,一定是最大独立集。
17.二元代价的割
与S,T联通决定属性
按照逻辑建图
P2774,CF311E
总数减去最小割(建图按照逻辑顺序)
18.最大权闭合
若选择对象 \(u\) 会强制选择 \(v\),则合法集合满足 \(u∈S⇒v∈S\) ;所有蕴含形成有向图,合法集合对后继闭合。目标是最大化所选点权和。
19.切糕模型(❌️)
限制1: \(𝑥_𝑢 ≤ 𝑥_𝑣 + 𝑤\)
对每个 \(1 ≤ 𝑟 ≤ 𝑚 − 𝑤\),连接 \(𝑝_{𝑢,𝑟+𝑤} → 𝑝_{𝑣,𝑟}\)
容量为 +∞。
限制2: \(𝑥_𝑢 >= 𝑥_𝑣 + 𝑤\)
对每个 \(1 ≤ 𝑟 ≤ 𝑚 − 𝑤\),连接 \(𝑝_{v,𝑟} → 𝑝_{u,𝑟+w}\)
容量为 +∞。
他们其实就是把加边的方向变了一下
29.带点供需的费用流
通过手动构造超级源点 S' 和超级汇点 T' 并添加边,来将原问题转化为一个标准的、所有中间节点都满足流量守恒的费用流问题
21.模拟费用流
用反悔贪心模拟费用流退流的过程,以达到加速的目的
P3620
22.上下界网络流
无源汇上下界可行流
填下界,改变容量限制,此时为带供需的图,建S',T'连边,判断能否满足供需
有源汇上下界最大流和最小流
加入容量 +∞ 的 𝑡 → 𝑠,再做无源汇可行流。设辅助边流量为 𝐹0;
删除超级结构与辅助边后:
• 最大流:残量网络求 𝑠 到 𝑡 的最大流 Δ,答案为 𝐹0 + Δ;
• 最小流:残量网络求 𝑡 到 𝑠 的最大流 Δ,答案为 𝐹0 − Δ。
即先按照无源汇上下界可行流的方式,求出图的基本流,保证其守恒,然后再在原图上跑最大流,拼接
若边有费用,先计入下界的固定费用,自由边保留原费用,超级边费用为 0;再发送 𝐷 单位最小费用流。

浙公网安备 33010602011771号