Gomory-Hu Tree (最小割树)

Gomory-Hu Tree (最小割树)

基本定义

割 cut

对于一张带权无向图 G = ( V , E ) G=(V,E) G=(V,E),定义一个割 (cut) 为两个集合 S , T ∈ V S,T\in V S,TV,满足 S ∩ T = ∅ , S ∪ T = V S\cap T = \emptyset, S\cup T = V ST=,ST=V。定义一条边为割边 (cut edge) 当且仅当它的两个端点分别在 S S S集合和 T T T集合内。定义一个割的容量 (capacity of a cut) 为所有的割边的边权的和。

定义s-t割 (s-t cut) 为满足 s ∈ S , t ∈ T s\in S,t\in T sS,tT的割。

流 flow

对于一张满足所有的边的容量 c ( u , v ) c(u,v) c(u,v)(即 u u u v v v这条边的边权)非负的带权有向图 G = ( V , E ) G=(V,E) G=(V,E),指定一个源点 (source)汇点 (sink),则定义它的一个流网络 (flow network) 为一个映射 f : V × V → R f:V\times V \to R f:V×VR,满足以下三个性质:

  1. f ( u , v ) ≤ c ( u , v ) f(u,v)\le c(u,v) f(u,v)c(u,v)
  2. f ( u , v ) = − f ( v , u ) f(u,v)=-f(v,u) f(u,v)=f(v,u)
  3. 对于任意 u ≠ s , u ≠ t u\not= s, u\not = t u=s,u=t,满足 ∑ x ∈ V f ( x , u ) = ∑ x ∈ V f ( u , x ) \sum_{x\in V}f(x,u) = \sum_{x\in V} f(u,x) xVf(x,u)=xVf(u,x)

最大流问题:找出一个从源点到汇点的可行流,使得该可行流的流量最大。

最大流最小割定理 max-flow min-cut theorem

最大流的流量等于最小割的容量。

符号 & 约定

对于 G = ( V , E ) G=(V,E) G=(V,E),令 W W W V V V的一个子集, δ ( W ) \delta(W) δ(W)表示所有恰好有一个端点在 W W W以内的的边构成的集合。

则我们也可以用一个满足 s ∈ W , t ∉ W s\in W, t\not\in W sW,tW δ ( W ) \delta (W) δ(W)来表示一个 s − t s-t st割。我们用 c ( W ) c(W) c(W)表示这个割的容量。

下文中均用 f ( u , v ) f(u,v) f(u,v)表示 u , v u,v u,v的最大流流量(也是最小割容量)。

一些引理

a)

设对于某一张带权图 G G G,用 f ( u , v ) f(u,v) f(u,v)表示从 u u u v v v的最大流(也等于最小割),则有: f ( u , v ) ≥ min ⁡ { f ( u , w ) , f ( v , w ) } f(u,v) \ge \min \{ f(u,w),f(v,w) \} f(u,v)min{ f(u,w),f(v,w)}

b) symmetry

对于任意 W ⊆ V W\subseteq V WV,有 c ( W ) = c ( ∁ V W ) c(W) = c(\complement_VW) c(W)=c(VW)

c) submodularity

对于任意的 A ⊆ V , B ⊆ A , v ∈ V A\subseteq V, B \subseteq A, v\in V AV,BA,vV,有 c ( A ∪ { v } ) − c ( A ) ≥ c ( B ∪ { v } ) − c ( B ) c(A \cup \{ v\}) - c(A) \ge c(B\cup\{v\}) - c(B) c(A{ v})c(A)c(B{ v})c(B)

推广:

  1. X ⊆ ∁ V A X \subseteq \complement_V A X
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值