1. 程式人生 > >網絡流基礎-最大流最小割定理

網絡流基礎-最大流最小割定理

找到 對沖 src 分享圖片 後悔 最小 最大 大於 不存在

最大流最小割定理,指網絡流的最大流等於其最小割。

最大流指符合三個性質的前提下,從S到T能流過的最大流量。

最小割指符合割的定義,最小的割容量。

求最大流:

不斷尋找增廣路,計算能增加的最小流量,然後增加。

技術分享圖片

找到一條增光路,最多能流過2,則:

技術分享圖片

找到第二條路徑:

技術分享圖片

最後還剩a-c-e一條,則可計算出最大流量為4。

但遇到以下情況,且第一條路徑為a-b-c-d時,就不行了:

技術分享圖片

此時需要增加反向路徑,即當減去增廣路時,反向加上減去的流量,提供後悔的選擇:

技術分享圖片

這樣,當考慮a-c-b-d時,可以對沖掉b-c的流量。

證明:

定理一:對於任一割和任一流,流量等於正向割邊流量減去反向割邊流量。即f = fc+

- fc-,其中c+代表正向割邊流量。

  推論:任一割容量必定大於等於任一流量,由於:C+ > fc+ > fc+ - fc- > f。

則如果存在某流量和某割,則此流量必定為最大流,此割必定為最小割。

當我們計算出最大流時,不妨思考下此時的殘留網絡:

  此時殘留網絡不存在增廣路,即不存在一條能從S到T的路徑。

  此時殘留網絡中,我們把S能到達的節點記為s‘集,能到達T的節點記為t’集,則s‘和t‘構成割集。

  在殘留網絡中,流量指容量為0的邊(滿流),而這些邊又是割邊,所以流量和等於割的容量和。

比如對於:

技術分享圖片

其一個殘留網絡為:

技術分享圖片

其中兩條虛線邊為滿流的邊,也是割邊。

網絡流基礎-最大流最小割定理