国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

有上下界的網絡流 學習筆記

2019-11-11 06:53:11
字體:
來源:轉載
供稿:網友

預備知識

f(u,v)表示u->v這條邊的實際流量 b(u,v)表示u->v這條邊的流量下界 c(u,v)表示u->v這條邊的流量上界 在一個無源匯的普通網絡流圖中,滿足

0≤f(u,v)≤c(u,v)∑f(u,i)=∑f(i,v)

分別稱為流量限制條件和流量平衡條件 而在有上下界的網絡流圖中,由于多了流量下界b(u,v)的限制,滿足

b(u,v)≤f(u,v)≤c(u,v)∑f(u,i)=∑f(i,v)

無源匯可行流

建圖方法

將有上下界的網絡流圖轉化成普通的網絡流圖

首先建立附加源點ss和附加匯點tt對于原圖中的邊x->y,若限制為[b,c],那么連邊x->y,流量為c-b對于原圖中的某一個點i,記d(i)為流入這個點的所有邊的下界和減去流出這個點的所有邊的下界和 若d(i)>0,那么連邊ss->i,流量為d(i)若d(i)<0,那么連邊i->tt,流量為-d(i)

求解方法

在新圖上跑ss到tt的最大流 若新圖滿流,那么一定存在一種可行流 此時,原圖中每一條邊的流量應為新圖中對應的邊的流量+這條邊的流量下界

證明

在原圖中,假設每條邊的實際流量為f(u,v)=b(u,v)+g(u,v) 其中g(u,v)≤c(u,v)?b(u,v)

我們可以將原圖中的邊改為上界為c(u,v)?b(u,v)的邊,變成一個普通的網絡流圖 經過以上的改造,g(u,v)實際上是新圖中邊u->v的實際流量,原圖中的實際流量f(u,v)=b(u,v)+g(u,v) 但是如果在這個新圖中直接求可行流的話是錯誤的

舉個栗子 原圖 這里寫圖片描述 按照上面的方法改造過的新圖 這里寫圖片描述 這個圖的可行流為1,還原成原圖的實際流量為 這里寫圖片描述 很顯然滿足流量限制條件,但是不滿足流量平衡條件 即∑g(u,i)≠∑g(i,v)

由于需要滿足流量平衡條件 ∑f(u,i)=∑f(i,v) ∑[b(u,i)+g(u,i)]=∑[b(i,v)+g(i,v)] ∑b(u,i)?∑b(i,v)=∑g(i,v)?∑g(u,i)d(i)=∑b(u,i)?∑b(i,v)d(i)>0∑g(i,v)=∑g(u,i)+d(i) 所以需要一條邊流量為d(i)來補流 這里寫圖片描述d(i)<0∑g(u,i)=∑g(i,v)+[?d(i)] 所以需要一條邊流量為d(i)來分流 這里寫圖片描述 可以發現,添加的所有與附加源點或者附加匯點相連的邊必須滿流,原圖才有可行流 證畢

有源匯可行流

建圖方法

在原圖中添加一條邊t->s,流量限制為[0,inf] 即讓源點和匯點也滿足流量平衡條件 這樣就改造成了無源匯的網絡流圖 其余方法同上

求解方法

同 無源匯可行流

證明

同 無源匯可行流

有源匯最大流

建圖方法

同有源匯可行流

求解方法

在新圖上跑ss到tt的最大流 若新圖滿流,那么一定存在一種可行流 記此時∑f(s,i)=sum1 將t->s這條邊拆掉,在新圖上跑s到t的最大流 記此時∑f(s,i)=sum2 最終答案即為sum1+sum2

證明

添加附加源匯的作用:為了滿足流量平衡條件,在新圖中進行相應的補流或分流 只要連接附加源匯的邊滿流,新圖中s->t的任意一種可行流都是原圖的可行流 跑ss->tt的最大流了之后,相當于是使連接附加源匯的邊滿流,進而求出了一種可行流 再將t->s的邊拆掉(使s->t變成一個有源匯的網絡流圖),跑s到t的最大流,加上跑出來的最大流即為原圖中一種可行的最大流

有源匯最小流

建圖方法

同 無源匯可行流

求解方法

求ss->tt最大流 連邊t->s,inf 求ss->tt最大流 答案即為邊t->s,inf的實際流量

證明

第一遍做的時候并無t->s這條邊,所以s->t的流量已經盡力往其它邊流了 加上t->s這條邊后,流過這條邊的都是些剩余的流不到其他邊的流量,從而達到盡可能減少T->S這邊上的流量的效果,即減小了最終答案。

有源匯費用流

建圖方法

將有上下界的網絡流圖轉化成普通的網絡流圖

首先建立附加源點ss和附加匯點tt對于原圖中的邊x->y,若限制為[b,c],費用為cost,那么連邊x->y,流量為c-b,費用為cost對于原圖中的某一個點i,記d(i)為流入這個點的所有邊的下界和減去流出這個點的所有邊的下界和 若d(i)>0,那么連邊ss->i,流量為d(i),費用為0若d(i)<0,那么連邊i->tt,流量為-d(i),費用為0連邊t->s,流量為inf,費用為0

求解方法

跑ss->tt的最小費用最大流 答案即為(求出的費用+原圖中邊的下界*邊的費用)

證明

注意: 有上下界的費用流指的是在滿足流量限制條件和流量平衡條件的情況下的最小費用流 而不是在滿足流量限制條件和流量平衡條件并且滿足最大流的情況下的最小費用流 也就是說,有上下界的費用流只需要滿足網絡流的條件就可以了,而普通的費用流是滿足一般條件并且滿足是最大流的基礎上的最小費用

證明同 有源匯的可行流

小結

重點理解“補流”和“分流”的作用 注意流的“等效”


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 锡林浩特市| 特克斯县| 保山市| 巩义市| 梨树县| 克什克腾旗| 通州市| 安丘市| 宁明县| 玉田县| 望江县| 宕昌县| 游戏| 嘉峪关市| 安庆市| 邵阳市| 双流县| 江永县| 泗洪县| 邹城市| 开原市| 商南县| 济源市| 海城市| 金乡县| 龙川县| 安平县| 沾化县| 东方市| 大关县| 佛学| 丰城市| 揭西县| 军事| 高清| 宜都市| 北票市| 寿宁县| 江川县| 称多县| 深州市|