網絡流(二)——最大流最小割定理


最小割
<1>什么是割?
    引例:你的仇人是一個工廠老板.你要炸掉一些車,讓他每個貨物都運不到銷售點.
        炸掉越大的車,你越容易被發現.你希望炸掉的車的容量之和盡量小.
        最小化這個值.
    定義:選出一些邊的集合,使得刪除它們之后從源點無法到達匯點,那么這個集合就叫做一個割.
        這些邊的容量之和稱作這個割的容量.
<2>最小割最大流定理
    定理1:任取一個割,其容量大於最大流的流量.
        證明:           

    從源點到匯點的每條路徑都會經過割上的至少一條邊.
            割掉這些邊之后,把源點能到達的點放到左邊,不能到達的放到右邊.
           顯然源點到匯點的流量不會超過從左邊走向右邊的次數,而這又不會超過從左邊到右邊的邊的容量之和.
            直觀一點,假設你是在車裝着貨物的時候炸掉了它.
            每個貨物你至少付出1的代價炸掉(流量小於容量的時候你要付出比貨物數更多的代價),所以你炸的代價不會小於貨物數.
    定理2:最小割的容量等於最大流的流量,且FF方法能夠正確的求出它.
        這意味着一個驚人的事實:你能夠僅付出和貨物數相同的代價,就把你的仇人的財路炸斷.
        證明:

      考慮FF算法結束時,殘量網絡上沒有了增廣路.
            那么我們假設這時候,從源點經過殘量網絡能到達的點組成的集合為X,
            不能到達的點為Y.顯然匯點在Y里,並且殘量網絡上沒有從X到Y的邊.
            可以發現以下事實成立:
                (1)Y到X的邊流量為0.如果流量不為0那么應該存在一條從X到Y的反向邊,於是矛盾.
                (2)X到Y的邊流量等於其容量.只有這樣它才不會在殘量網絡中出現.
            根據第一個條件,我們可以得知:沒有流量從X到Y之后又回到了X.
            所以當前流量應該等於從X到Y的邊的流量之和,而根據第二個條件它又等於從X到Y的邊容量之和.
            而所有從X到Y的邊又構成一個割,其容量等於這些邊的容量之和.
        這意味着我們找到一個流和一個割,使得前者的流量等於后者的容量.
        而根據前面的結論,最大流的流量不會超過這個割的容量,所以這個流一定是最大流.
        同樣的,最小割的容量也不會小於這個流的流量,所以這個割也一定是最小割.
        這就是FF法最后的局面(由於FF會終止,所以它必定求出這樣一個局面),由此我們得出結論:FF是正確的,並且最大流等於最小割
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM