有上下界的網絡流


    有上下界的網絡最大流是指在網絡流圖中兩點之間的路徑上的流量Flow必須在一個范圍之內。用[Bi,Ci]表示路徑i,說明路徑i上的流量Flow(i)大於等於Bi且小於等於Ci. 
    有上下界的網絡流問題可以分為四類: 
1. 無源匯網絡可行流 
2. 有源匯網絡可行流 
3. 有源匯網絡最大流 
4. 有源匯網絡最小流

無源匯網絡可行流

    無源匯網絡是指在網絡流圖中沒有明確指定源點和匯點,流在網絡中是循環流動的,可行流是指網絡中所有路徑上的流量均滿足 Flow(i) 屬於[Bi, Ci],且每個點的流入量之和等於流出量之和。 
    每條邊必須有一個流量下界,這非常麻煩,考慮將流量下界單獨出去,成為一個新圖,使得邊的流量下界為0,流量上界為 Ci-Bi,變成了一個普通的網絡流問題(每條邊只有流量上界,即容量)。稱每條邊的流量下界為必須流,每條邊的流量減去流量下界為自由流,由於邊的流量范圍的限制,有些情況下網絡流圖可能無法流通。比如下圖中國 1-->2 的邊上的流量上界為3,而2-->3的邊上的流量下界為4,那么網絡就無法流動。網絡中存在滿足邊的上下界要求的網絡流,稱為可行流 
 
    求解可行流 
    設每個點所有流入量的流量下界之和IBi和所有流出量下界之和OBi,然后虛擬一個源點SS和一個匯點TT,使得原圖中每個點都有OBi的流量流入SS,同時有IBi的流量從TT流入,這樣,就將每個點的流量下界獨立出來。這樣,每條邊的必須流就被SS和TT管理。 
    以SS,TT分別為新圖的源點和匯點,尋找網絡最大流,如果最大流使得從SS出發的每條路徑都被填滿(那么到達TT的每條路徑也必然被填滿),那么說明對於原圖中的每個點,都滿足最低流入量的流流入和最低流出量的流流出,從而存在滿足原圖流量下界的可行流。 
如下圖: 
 
原圖中邊上的數字表示邊的流量范圍。

 
   加SS和TT之后的新圖,從每個點的引出容量為最低流出量之和OBi的路徑指向匯點TT,並從SS引入容量為最低流入量之和IBi的路徑指向該點。 同時,每條邊的最低流量變為0,容量變為Ci-Bi。 
    然后,從SS到TT尋找網絡最大流。圖中所示,SS-->1-->2-->TT的路徑上流量為3,SS-->1-->TT路徑上流量為1,SS-->2-->3-->TT路徑上的流量為1,SS-->3-->TT路徑上流量為3。則最大流為8,且能夠使得SS到原圖中每個點的邊上的流量均滿流。因此,原圖存在可行流。

有源匯網絡的可行流

    對於流量有上下界的有源匯網絡,原圖中存在源點S和匯點T,為了求可行流,先將其轉換為無源匯網絡。 
    從T-->S引入一條邊,其流量上下界為[0, INF],此時原圖變為了無源匯網絡,然后按照無源匯網絡求解可行流的方法來求解。 

有源匯網絡的最大流

    要求最大流,先求可行流,通過“有源匯網絡的可行流”的求解方法來判斷有源匯網絡存在可行流。 
    若存在可行流,記從S流出的流量sum1,然后將T-->S的邊取消,再次從S到T求解網絡的最大流,記從S流出的流量sum2. 那么該有源匯網絡的最大流為 sum1 + sum2. 
    其中,sum1是在網絡滿足流量下界的條件下,從源點S流出的流量;求出sum1之后,網絡中可能還有余量可以繼續增廣,那么再次求解從S到T的最大流,得到sum2,sum1 + sum2即為最終的最大流。

有源匯網絡的最小流

    求解有源匯網絡最小流分為以下幾步: 
(1)對SS到TT求一次最大流,即為f1.(在有源匯的情況下,先把整個網絡趨向必須邊盡量滿足的情況); 
(2)添加一條邊T-->S,流量上限為INF,這條邊即為P.(構造無源網絡) 
(3)對SS到TT再次求最大流,即為f2。(判斷此時的網絡中存在可行流,同時求出SS-->TT最大流) 
    如果所有必須邊都滿流,證明存在可行解,原圖的最小流為“流經邊P的流量”(原圖已經構造成無源匯網絡,對於S同樣滿足 入流和==出流和,只有新添加的邊流向S,而S的出流就是原圖的最小流)。 
注: 最小流求法的正確性不知如何證明,待繼續學習。


免責聲明!

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



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