Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 26 Maximum Flow. 2 26.1 流量網路與流量 Flow network( 流量網路 ) G=(V,E) 是一個有向圖, 每一邊 (u,v) ∈ E 均有 Capacity( 容量 ) c(u,v)>0 。如 c(u,v)=0 即代表 (u,v) ∉ E 。 s v1v1.

Similar presentations


Presentation on theme: "Chapter 26 Maximum Flow. 2 26.1 流量網路與流量 Flow network( 流量網路 ) G=(V,E) 是一個有向圖, 每一邊 (u,v) ∈ E 均有 Capacity( 容量 ) c(u,v)>0 。如 c(u,v)=0 即代表 (u,v) ∉ E 。 s v1v1."— Presentation transcript:

1 Chapter 26 Maximum Flow

2 2 26.1 流量網路與流量 Flow network( 流量網路 ) G=(V,E) 是一個有向圖, 每一邊 (u,v) ∈ E 均有 Capacity( 容量 ) c(u,v)>0 。如 c(u,v)=0 即代表 (u,v) ∉ E 。 s v1v1 v3v3 v2v2 v4v4 t c(s,t)=0 ,因 (s,t) ∉ E

3 3 流量網路與流量 令 s 為 Source vertex , t 為 Sink vertex 。一個 Flow( 流 量 ) 係一函數 f : V×V  R ,對任兩點 u,v 而言滿足 下列性質: –Capacity constraint: f(u,v)≤c(u,v) –Skew symmetric: f(u,v)=-f(v,u) –Flow conservation: 若 u ∈ V-{s,t} ,則 Σ w ∈ V f(u,w)=0 。 |f|=Σ v ∈ V f(s,v) 稱作流量 f 的值。

4 4 最大流量問題 給一流量網路 G , Source s 以及 Sink t 。求出具有最 大值的流量 f 。 s v1v1 v3v3 v2v2 v4v4 t f(u,v)/c(u,v) 11/16 8/13 0/10 1/4 12/12 11/14 4/9 7/7 15/20 4/4

5 5 Residue Network 與 Augmenting Path 由一 Flow network G 及一 Flow f 所導出的 Residue network G f 為一個 Flow network ,其 Capacity c f (u,v)=c(u,v)-f(u,v) 。 一個 Flow network G 及 Flow f 所導出的 Augmenting path 即是 Residue network G f 上一個 s  t 的路徑 p 。

6 6 Residue Network 與 Augmenting Path 如果一 Flow network 找的到 Augmenting path 代表可 以找到一個 Flow f ,其值大於 0 。 如一 Flow network G 及一 Flow f 所導出的 Residue network G f ,以找不到任何 Augmenting path ,則 f 是最大流量。

7 7 s v1v1 v3v3 v2v2 v4v4 t f(u,v)/c(u,v) 11/16 7/13 0/10 1/4 12/12 10/14 4/97/7 15/20 3/4 s v1v1 v3v3 v2v2 v4v4 t 5 6 11 3 12 5 7 15 Flow network Residue Network 11 7 4 5 10 4 1 3 Augmenting Path

8 8 26.2 Ford-Fulkerson 演算法 主要是利用 Residue network 的觀點來找出 Maxium flow 。 重複下列動作直到找不到 Augmenting path 為止。 – 找出 Augmenting path p 。 – 將 Flow f 沿著 p 增加 min{c f (u,v):(u,v) 在 p 上 } ,即 residue network G f 中路徑 p 上最小的 Capacity 。

9 9 Ford-Fulkerson(G,s,t) {for each edge (u,v) ∈ E[G] do f[u,v]  0 f[v,u]  0 while ∃ path p from s to t on G f do c f (p)  min{c f (u,v):(u,v) is in p} for each (u,v) in p do f[u,v]  f[u,v]+cf(p) f[v,u]  -f[u,v] return f }

10 10 s v4v4 v2v2 v3v3 v1v1 t 16 13 104 9 7 14 4 20 (a) 12 s v4v4 v2v2 v3v3 v1v1 t 4/16 13 104 4/9 7 4/14 4/4 20 4/12

11 11 s v4v4 v2v2 v3v3 v1v1 t 11/16 13 7/10 4 4/9 7/7 11/14 4/4 7/20 4/12 (b) s v4v4 v2v2 v3v3 v1v1 t 12 13 10 4 5 8 7 4 20 4 10 4 4 4

12 12 (c) s v4v4 v2v2 v3v3 v1v1 t 11/16 8/13 101/4 4/9 7/7 11/14 4/4 15/20 12/12 s v4v4 v2v2 v3v3 v1v1 t 5 13 3 11 5 8 7 4 13 11 7 3 4 4

13 13 (d) s v4v4 v2v2 v3v3 v1v1 t 11/16 12/13 101/4 9 7/7 11/14 4/4 19/20 12/12 s v4v4 v2v2 v3v3 v1v1 t 5 13 3 3 5 12 7 4 5 11 15 3 5 4 11

14 14 s v4v4 v2v2 v3v3 v1v1 t 5 12 11 3 9 12 7 4 1 (e) 11 19 3 1 因無 Augmenting path ,故 Maximum flow 如下所示: s v4v4 v2v2 v3v3 v1v1 t 11/16 12/13 101/4 9 7/7 11/14 4/4 19/20 12/12

15 15 Edmonds-Karp 演算法 使用 Breadth-first search 來找 Augmenting path 。 主要能夠避免下面這種情形發生: 每次找出的 Augmenting path 是 (s,b,a,t) 跟 (s,a,b,t) 交 錯出現,如此要執行 2M 個 Iteration 才能做完。 s a b t MM MM 1

16 16 s a b t MM MM 1 s a b t M-1M M 1 1 1 s a b t 1 1 1 1 1 s a b t MM MM 1 需要 2M 次

17 17 Maximum flow and minimum cut 對一個流量網路 G=(V,E) 而言,一個 Cut (S,T) 是將 點集合 V 分割為 S 跟 T=V-S 兩部份且滿足 s ∈ S 及 t ∈ T 。 Cut (S,T) 的容量 (Capacity) , c(S,T) ,定義為:所有 滿足 u ∈ S 及 v ∈ T 的邊 (u,v) 之容量和。

18 18 Cut 範例 s v1v1 v3v3 v2v2 v4v4 t f(u,v)/c(u,v) 11/16 8/13 0/10 1/4 12/12 11/14 4/9 7/7 15/20 4/4 S T c(S,T)=c(v 1,v 3 )+c(v 2,v 4 ) =12+14=26

19 19 Lemma 5 Proof:

20 20 Cor6 Proof:

21 21 Maximum flow=minimum cut 最大流量跟容量最小的 Cut 是相等的。 Thm26.7 以下三敘述等價 –(1) f 是流量網路 G=(V,E) 的最大流量 –(2) Residue network G f 找不到 Augmenting path –(3) 存在一個 Cut (S,T) , |f|=c(S,T) 。

22 22

23 23

24 24 Minimum cut 的應用 可用於決定經營投資策略。如開發產品 A 1 需要先 購入工具 T 1,T 2 ,而產品 A2 需要先購入工具 T 2 T 3 , 則同時開發僅需要負擔 T 1,T 2,T 3 的成本。 可以將此問題一般化,假定產品 A i 需要先購入 k 個 工具 T i 1 T i 2 …T i k 。而產品 A i 開發完成可獲利 P i ,購 入工具 T j 需要 Q j 的金錢,則該選擇哪些產品開發?

25 25 利用 Minimum cut s T1T1 T2T2 T m-1 TmTm …………. A1A1 A2A2 A n-1 AnAn …………. t Q1Q1 Q2Q2 Q m-1 QmQm P1P1 P2P2 P n-1 PnPn 如 A i 需要 T j ,則自 T 1 拉一條容量無限大的邊到 A i 。

26 26 流量網路的建構方式 將圖如上頁一般的建構出來,有 source s, sink t , 以及每一個產品與工具。 對每個工具 T j 自 s 拉一條容量為 Q j 的邊。 自每一個產品 A i 拉一條容量為 P i 的邊到 t 。 如 Ai 需要 Tj ,則自 T1 拉一條容量無限大的邊到 Ai 。

27 27 與最大獲利的對應 所有產品的利潤總和扣掉該圖的 minimum cut 即是 最大獲利。 觀察:能夠獲利的產品,獲利必然比投入的工具 成本高,故將此類的產品與工具劃入 T ,其他的劃 入 S 。 理想的狀態是所有的產品利潤全得,沒有投入的 產品部份係扣除產品接到 sink 的容量,而有投入 的產品需扣除投入的工具成本,故扣除 source 接到 工具的容量。所扣除部分即為 cut 的容量。

28 28 s T1T1 T2T2 T m-1 TmTm …………. A1A1 A2A2 A n-1 AnAn …………. t Q1Q1 Q2Q2 Q m-1 QmQm P1P1 P2P2 P n-1 PnPn T S 需投入成本 得不到獲利

29 29 26.3 Maximum Bipartite Matching 一個 Bipartite Graph G=(V=L ∪ R,E) ,具有下列性質: –V 可以分割成 L 及 R=V-L 兩個集合。 – 所有的邊 (u,v) 的兩個端點 u 及 v 不會同在 L 或同在 R 之中。

30 30 Bipartite Graph 範例 LR

31 31 Matching 對一個圖 G=(V,E) 所謂的配對 (Matching) 是一個不 共用點的邊子集合。即: – 對任意兩邊 (u 1,v 1 ) , (u 2,v 2 ) 而言, u 1,v 1,u 2,v 2 四點 均相異。 最大配對 (Maximum matching) 是指具有最多邊的 配對。

32 32 Matching 範例 LR 紅色邊所成 的即為一個 配對 (Matching)

33 33 Maximum Matching 範例 LR 紅色邊所成 的即為一個 最大配對 (Maximum matching)

34 34 利用最大流量求最大配對 令 G’=(V ∪ {s,t},E ∪ {(s,u):u ∈ L} ∪ {(v,t):v ∈ R}) 。即新 增 source s 及 sink t 進入圖 G ,並且在 s 與 L 的所有點 之間拉一條邊,而在 R 跟 t 之間拉一條邊。 如果所有邊的容量均設定為 1 ,則最大流量等於最 大配對。

35 35 流量網路圖 LR s t

36 36 最大流量與最大配對 LR s t


Download ppt "Chapter 26 Maximum Flow. 2 26.1 流量網路與流量 Flow network( 流量網路 ) G=(V,E) 是一個有向圖, 每一邊 (u,v) ∈ E 均有 Capacity( 容量 ) c(u,v)>0 。如 c(u,v)=0 即代表 (u,v) ∉ E 。 s v1v1."

Similar presentations


Ads by Google