• [原]最大流, 最小分割分析


    1如果图G存在s-t流f,并且在剩余图Gf中没有s-t的路径, 存在一个s-t的分割cut(A, B), 且v(f) = cut(A, B),  并且f拥有最大的流值, 分割cut(A, B)拥有最小的负载能力
    证明: 以上论断,声明存在一个分割满足特定的属性; 因此我们应该识别这个分割. A表示所有的点集, 在Gf中存在一个s-v的路径, B表示所有其他的点构成的集合.
    首先证明,A, B是分割.
    源s在A中, 因为总存在s-s的路径.
    目的t不在A中, 因为由论断假设已知, 流f, 的G图中,Gf没有s-t路径.
    因此, A, B 都非空.
    接下来, 假设e = (u, v)是G中的边, 且起点在A中, 且终点在B中,  则f(e) = Ce, 因为若存在余量, 则在剩余图Gf中, 存在前进边e = (u, v), 而因为s-u存在路径, u-v存在路径, 所以 s-v存在路径, 矛盾于, v属于B, 不存在路径集合.
    假设e = (u', v')且起点u' 在B, 终点v'在A中, 则f(e) = 0. 因为, 若不为0, 则在剩余图Gf中, 存在后退边 e' = (v', u'),而导致产生路径到u', 矛盾.
    因此, 所有A中的输出边界边是完全充满流量, 而进入边界边完全为空.
     
    2以上算法返回的流是最大的.

    3给定一个最大流, 总能构造出一个最小分割.
    证明: 通过构造s可达到的点的集合, 可以构造出最小分割.

    可能存在多个最小负载的分割, 以上构造方法找到一个特定于最大流的分割.

    4在每个流网络中, 存在一个流f 和分割cut(A, B), 且v(f) = c(A, B)
    证明的关键在于存在最大s-t流, 因为如果存在更大的流f', 则违反了分割的限制原则, 即任何分割的负载能力, 都大于等于流量.
    而如果存在更小的负载能力分割, 则当前获得的流同样违背了以上原则.

    5在每个流网络中, s-t流的最大值等于s-t分割的最小负载能力.



    作者:liyonghelpme 发表于2010/6/20 13:53:00 原文链接
    阅读:783 评论:0 查看评论
  • 相关阅读:
    [LeetCode] 210. Course Schedule II
    [LeetCode] 207. Course Schedule
    [LeetCode] 450. Delete Node in a BST
    [LeetCode] 1122. Relative Sort Array
    [LeetCode] 1013. Partition Array Into Three Parts With Equal Sum
    [LeetCode] 173. Binary Search Tree Iterator
    [LeetCode] 208. Implement Trie (Prefix Tree)
    [LeetCode] 211. Add and Search Word
    [LeetCode] 449. Serialize and Deserialize BST
    [LeetCode] 236. Lowest Common Ancestor of a Binary Tree
  • 原文地址:https://www.cnblogs.com/liyonghelpme/p/4273541.html
Copyright © 2020-2023  润新知