【学习笔记】网络流进阶

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.点覆盖与独立集

互补性:一个点集是点覆盖,当且仅当它的补集是独立集。

极值对偶性:最小点覆盖的补集,一定是最大独立集。

\[QWQ \]

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;再发送 𝐷 单位最小费用流。

无源汇上下界最小费用流

posted @ 2026-09-01 20:57  Aistyr  阅读(5)  评论(0)    收藏  举报