最大权闭合子图的简单证明

一、概念

闭合图:对于一个有向图 G G G,设 V V V是图中的某一点集,那么从该点集中的任何一点沿着它连出去的边走,走到的点还是属于点集 V V V,这些点集以及它们之间的边形成的图就是闭合图。

最大权闭合子图,顾名思义,就是所有闭合子图中点权之和最大的那个,注意这里的权指的是点权,不是边权,因为闭合图是对于点集而言的。


结论:最大权闭合子图 = = =所有正点权的和 − - 最小割。

二、证明

2.1流网络的构造

对于一个有向图 G G G,先将其构造成一个流网络 G ′ G^{'} G

从源点 s s s向图中所有的正点权连接一条容量是该点点权的边,从图中所有的负点权向汇点 t t t连接一条容量是该负点权绝对值的边。原图中的边都不变,容量是正无穷 ∞ \infty 。(如下图)

在这里插入图片描述


2.2首先证明原图G的任何一个闭合子图都与新图 G ′ G{'} G的一个简单割一一对应。

首先在本问题中定义一个简单割的概念:

简单割是指一个割的割边不包含边权是 ∞ \infty 的边,也就是不包含上图中边集3里的边。简单割是所有割的一个子集。

可以得出,最小割一定是一个简单割,因为 最 小 割 = 最 大 流 最小割=最大流 =,而从源点 s s s流出的流量是有限的,那么最大流就是有限的,最小割也就是有限的,如果包含边权是 ∞ \infty 的很明显是不可能的(要不然最小割就是无限的)。

V V V是原图G的所有点的点集。

  1. 对于任何一个闭合子图,都可以构造出一个简单割:
    假设原图的一个闭合子图的闭合点集是 V ′ V{'} V,我们可以构造这样一个割[S, T],其中 S = V ′ + s , T = V − V ′ + t S=V^{'}+s,T=V-V^{'}+t S=V+s,T=VV+t
    我们可以证明,该割一定是一个简单割。
    因为 V ′ V^{'} V是一个闭合点集,也就是说,沿着 V ′ V^{'} V中的任何一条边走,最终还是只能到达 V ′ V^{'} V,也就是说,从 V ′ V^{'} V无法走到 T T T的集合。那么,割[S, T]中间的割边一定不包含容量是 ∞ \infty 的边(如果存在,一定是从 V ′ V^{'} V连出去的,但是就和它是闭合点集矛盾了)。

  2. 任何一个简单割,同样也能构造出一个闭合子图:
    设图 G ′ G^{'} G的一个简单割是[S, T],令点集 V ′ = S − s V^{'}=S-s V=Ss
    我们可以证明 V ′ V^{'} V一定是一个闭合点集。
    因为该割是一个简单割,那[S,T]之间就不存在容量是 ∞ \infty 的边。那么我们沿着集合 S S S中的容量是 ∞ \infty 的边走(因为只有这样的边才是原图G的边),一定走不到 T T T,还是只能走到 S S S,符合闭合点集的定义。

所以,原图G的任何一个闭合子图都与新图 G ′ G{'} G的一个简单割一一对应,那么我们要求的闭合子图的最值,就对应着简单割的最值。


2.3闭合点集的点权与它对应的简单割的数量关系

V V V是原图G的所有点的点集, W i W_i Wi表示 i i i的点权。

有简单割[S, T],令 S = V 1 + s S=V_1+s S=V1+s T = V 2 + t T=V_2+t T=V2+t,其中 V 1 + V 2 = V V_1+V_2=V V1+V2=V

  1. [S, T]的容量C[S, T]的表达式:
    割边可以分为以下 4 4 4类:
    在这里插入图片描述
    s → t s \to t st,该类边不存在,因为我们建图的时候并没有从 s s s t t t连边。
    s → V 2 s \to V_2 sV2,建图时 s s s连向的点都是正点权。
    V 1 → t V_1 \to t V1t,建图时连向 t t t的点都是负点权。
    V 1 → V 2 V_1 \to V_2 V1V2,该类边不存在,因为该割是简单割,那么割边就不存在原图内部的边,因为这样的边的容量是 ∞ \infty
    所以,实际上,简单割的割边只有②③两类边,简单割的容量就是这两类边的边权和。
    V 1 − V_1^- V1表示点集 V 1 V_1 V1中点权为负的点, V 2 + V_2^+ V2+同理。
    那么C[S, T] = ∑ v ∈ V 2 + ( W v ) + ∑ v ∈ V 1 − ( − W v ) =\sum_{v \in V_2^+}(W_v)+\sum_{v \in V_1^-}(-W_v) =vV2+(Wv)+vV1(Wv) 注 意 , 负 点 权 要 取 反 , 因 为 建 图 时 连 的 边 的 边 权 都 是 正 的 。 _{注意,负点权要取反,因为建图时连的边的边权都是正的。}

  2. 闭合子图点权和 W ( V 1 ) W(V_1) W(V1)的表达式:
    W ( V 1 ) = ∑ v ∈ V 1 + ( W v ) + ∑ v ∈ V 1 − ( W v ) W(V_1)=\sum_{v \in V_1^+}(W_v)+\sum_{v \in V_1^-}(W_v) W(V1)=vV1+(Wv)+vV1(Wv)
                 = ∑ v ∈ V 1 + ( W v ) − ∑ v ∈ V 1 − ( − W v ) \ \ \ \ \ \ \ \ \ \ \ \ =\sum_{v \in V_1^+}(W_v)-\sum_{v \in V_1^-}(-W_v)             =vV1+(Wv)vV1(Wv)

这样,就得到了两个表达式:
C[S, T] = ∑ v ∈ V 2 + ( W v ) + ∑ v ∈ V 1 − ( − W v ) =\sum_{v \in V_2^+}(W_v)+\sum_{v \in V_1^-}(-W_v) =vV2+(Wv)+vV1(Wv)

W ( V 1 ) = ∑ v ∈ V 1 + ( W v ) − ∑ v ∈ V 1 − ( − W v ) W(V_1)=\sum_{v \in V_1^+}(W_v)-\sum_{v \in V_1^-}(-W_v) W(V1)=vV1+(Wv)vV1(Wv)

两式结合有:
C[S, T] + W ( V 1 ) = ∑ v ∈ V 1 + ( W v ) + ∑ v ∈ V 2 + ( W v ) +W(V_1)=\sum_{v \in V_1^+}(W_v)+\sum_{v \in V_2^+}(W_v) +W(V1)=vV1+(Wv)+vV2+(Wv)

其中 ∑ v ∈ V 1 + ( W v ) + ∑ v ∈ V 2 + ( W v ) = ∑ v ∈ V + ( W v ) = 定 值 s u m \sum_{v \in V_1^+}(W_v)+\sum_{v \in V_2^+}(W_v)=\sum_{v \in V^+}(W_v)=定值sum vV1+(Wv)+vV2+(Wv)=vV+(Wv)=sum
s u m 就 是 原 图 所 有 正 点 权 的 和 _{sum就是原图所有正点权的和} sum
所以,C[S, T] + W ( V 1 ) = s u m +W(V_1)=sum +W(V1)=sum

要想让 W ( V 1 ) W(V_1) W(V1)最大,就要让C[S, T]最小。
就是求一个最小的简单割,而原图的最小割一定是一个简单割,也就是求原图的最小 割。

证毕!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值