算法导论 CLRS 26.2-9 解答

算法如下:

  从G中任取一点s,然后依次计算s到其他V-1个点的最大流,这V-1个最大流中的最小的那个流值|f|min就是要求的边连通度k

 

证明: 

    (1) 假设以t为汇点,最小割割(S,T),   容量为c(S,T)=|f|, 由于每条边的容留都是1,因此割(S,T)之间有c(S,T)条边相连,删除这c(S,T)条边,G一定会

            变成非连通,因此k<=c(S,T)=|f|。 该不等式对任意一点为汇点都成立,因此k<=|f|min

 

    (2) 假设以t为汇点,最大流值为|f|, 我们要证明至少要删除|f|条边才会导致G中没有s-->t的路径:

            由于最小割c(S,T)=|f|, 只有删除至少|f|条边才能保证存在一个割的容量c(S,T)=0;反过来说如果删除的边数少于|f|,则所有的割的容量大于0,由最小割最大流定理可知,最大流值大于0,

            也就是说存在s--->t的路径

            如果删除的边数k<|f|min, 则任取汇点都会有s到该汇点的路径,即整个图是连通的, 因此k>=|f|min

 

   综合(1)(2)可知 k=|f|min

转载于:https://www.cnblogs.com/ellusak/archive/2012/07/31/2616391.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值