网络流(2):正确性证明

Last updated on May 18, 2025 pm

本文为SJTU-AI2615算法课程的知识点复习,主要复习内容为Ford-Fulkerson算法的正确性证明

最大流最小割定理

最小割问题

  • 割的定义:给定带权图 G=(V,E,c)G = (V, E, c) 及顶点对 s,tVs, t \in V,一个 ss-tt 割将 VV 划分为两个子集 LLRR,满足 sLs \in LvRv \in R
  • 割的值c(L,R)=(u,v)E,uL,vRc(u,v)c(L, R) = \sum_{(u, v) \in E, u \in L, v \in R} c(u, v)
  • 最小割问题:给定带权图 G=(V,E,c)G = (V, E, c) 和顶点对 s,tVs, t \in V,要求找到所有可能的 ss-tt 割中,​值最小的割​(即最小割)

定理陈述

  • 定理内容:最大流等于最小割,即

maxfv(f)=minL,Rc(L,R)\max_{f} v(f) = \min_{L, R} c(L, R)

定理证明

  • Lemma 1:对任意流 ff 和任意割 {L,R}\{L, R\}v(f)c(L,R)v(f) \le c(L, R)
    • 含义:任意割的值是任意流的值的上界
    • Claimv(f)=fou(L)fin(L)v(f) = f_{ou}(L) - f_{in}(L)
    • v(f)fou(L)=(u,v)E,uL,vRf(u,v)(u,v)E,uL,vRc(u,v)=c(L,R)v(f) \le f_{ou}(L) = \sum_{(u, v) \in E, u \in L, v \in R} f(u, v) \le \sum_{(u, v) \in E, u \in L, v \in R} c(u, v) = c(L, R)
  • Lemma 2:存在一个割 {L,R}\{L, R\} 使得 Ford-Fulkerson 算法输出的流 ff 满足 v(f)=c(L,R)v(f) = c(L, R)
    • 可以推出最大流最小割定理及 Ford-Fulkerson 算法正确性
    • LL 表示 GfG^f 中从 ss 可达的顶点集合
    • Claim 1fou(L)=c(L,R)f_{ou}(L) = c(L, R)
    • Claim 2fin(L)=0f_{in}(L) = 0 (贪心不能保证)
    • 从而 v(f)=fou(L)fin(L)=c(L,R)v(f) = f_{ou}(L) - f_{in}(L) = c(L, R)

最大流最小割示意图

最小割算法

  1. ​求解最大流 ff 并​构造残留网络 GfG^f
  2. ​令 LL = 在 GfG^f 中从 ss 可达的顶点集合,RR = VLV \setminus L
  3. 返回 {L,R}\{L, R\}

应用:霍尔婚姻定理

定理陈述

  • 内容:设二分图 G=(A,B,E)G = (A, B, E) 存在大小为 A|A| 的匹配当且仅当 SA,SN(S)\forall S \subseteq A, |S| \leq |N(S)|,其中 N(S)N(S) 表示与 SS 中顶点直接相连的 BB 中顶点的集合
  • 解读:霍尔婚姻定理给出了二分图存在完美匹配的充要条件

二分图匹配转化为最大流问题示意图

定理证明

  • 必要性\Rightarrow):反证法,比较显然
  • 充分性\Leftarrow):反证法,假设条件成立但最大匹配大小 M<AM < |A|
    1. 由整数流定理,最大匹配 MM 对应流网络的最大流值 v(f)=Mv(f) = M
    2. 由最大流最小割定理,存在值为 MM 的最小割值
    3. 最小割 {L,R}\{L, R\} 的可能情况:
      • Case 1:LL 仅包含源点 ss,此时割值为 A|A|
      • Case 2:RR 仅包含汇点 tt,此时割值为 B|B|,则 AN(A)B<A|A| \le N(A) \le |B| < |A|,矛盾
      • Case 3:

Case 3 分析

注:本文中所有图片均来自张宇昊老师的课程PPT。


网络流(2):正确性证明
https://cny123222.github.io/2025/04/25/网络流-2-:正确性证明/
Author
Nuoyan Chen
Posted on
April 25, 2025
Licensed under