不會咕!算法
下面是一些概念,理解便可,不需強記。網絡
一個網絡流圖是一個沒有自環的有向連通圖,知足:spa
允許流,又叫可行流.blog
在網絡流圖中,對於每條邊 \(e=(i,j)\) 給定實數 \(f_e\), 若是知足:it
每一條邊的容量 \(f_e\le c_e\);class
流量平衡:對於任意 \(x\ne S, T\),\(\sum\limits_{e=(x,i)}f_e=\sum\limits_{e=(i,x)}f_e\);方法
對於源點 \(S\) 和匯點 \(T\) 有:\(\sum\limits_{e=(S,i)}f_e=\sum\limits_{e=(i,T)}f_e=W\)im
即源點流進去多少,匯點就會流出多少,不會有流量的損失.img
則稱這一組 \(f\) 爲該網絡的一個允許流,\(W\)稱爲他的流量。di
一個容量 \(W\) 最大的允許流 。
可增廣路,又叫可改進路.
介紹這個概念以前,先看看幾個別的概念:
給定一個允許流 \(f\) 。
給定一個允許流 \(f\),\(P\) 是從 \(S\) 到 \(T\) 的一條道路,若是知足:
那麼就稱 \(P\) 是 \(f\) 的一條可增廣路,之因此稱爲」可增廣路「,是由於可改進路上弧的流量經過必定的規則修改,能夠使整個流量放大。
基本思路:不斷嘗試尋找增流路徑,增長允許流的流量,直到沒法增長爲止,此過程稱爲增廣過程
\(\text{Ford-Fulkerson}\),一種迭代算法,先對圖中全部頂點對的流清零(此時網絡流大小也爲 \(0\))。在每次迭代中,經過尋找一條增廣路徑來增長流的值,一直迭代到沒法再找到增廣路徑爲止。
剩餘的容量+反向平衡的流量共同構成了殘留網絡。
感謝 ACM大神 dengsiyu 和 XLightGod 大神的講課!
參考資料: