網絡流(一)基礎知識篇


傳送門:

網絡流(一)基礎知識篇

網絡流(二)最大流的增廣路算法

網絡流(三)最大流最小割定理

網絡流(四)dinic算法

網絡流(五)有上下限的最大流

網絡流(六)最小費用最大流問題

 轉載自:https://blog.csdn.net/txl199106/article/details/64441994

網絡流入門

基本概念(從書上摘抄,可以直接跳過不看)

容量網絡和網絡最大流

容量網絡: 設 G(V, E)是一個有向網絡, 在 V 中指定了一個頂點, 稱為源點(記為 Vs ), 以及另一個頂點, 稱為匯點(記為 Vt); 對於每一條弧 <u, v>∈E, 對應有一個權值 c(u, v)>0, 稱為弧的容量, 通常把這樣的有向網絡 G 稱為容量網絡。

也就是指: 一個擁有源點、匯點並且可以容納流量的圖.

弧的流量: 通過容量網絡 G 中每條弧 <u, v> 上的實際流量(簡稱流量), 記為 f(u, v)
網絡流: 所有弧上流量的集合 f = { f(u, v) },稱為該容量網絡 G 的一個網絡流。
可行流: 在容量網絡 G(V, E) 中, 滿足以下條件的網絡流 f, 稱為可行流:

  • 弧流量限制條件: 
  • 平衡條件: 除了 Vs, Vt 外, 其余的點流入的流量總和等於流出的流量總和, 其中 Vs 流出的流量總和 - 流出的流量總和 = fVt 流入的流量總和 - 流出的流量總和 = f, 並且稱 f 為可性流的流量.

也就是指: 在圖中有一條從 Vs 到 Vt 的路徑, 這條路徑上起點 , 終點 , 其他的點 , 並且所有的邊的當前流量小於等於最大流量.(其中  代表流入流量,  代表流出流量)

偽流: 如果一個網絡流只滿足弧流量限制條件, 不滿足平衡條件, 則這種網絡流稱為偽流, 或稱為容量可行流。
最大流: 在容量網絡 G(V, E) 中, 滿足弧流量限制條件和平衡條件、且具有最大流量的可行流, 稱為網絡最大流, 簡稱最大流。

鏈與增廣路

在容量網絡 G(V, E) 中, 設有一可行流 f = { f(u, v) }, 根據每條弧上流量的多少、以及流量和容量的關系,可將弧分四種類型:

  • 飽和弧, 即 ;
  • 非飽和弧,即 ;
  • 零流弧, 即 ;
  • 非零流弧, 即 。

鏈: 在容量網絡中,稱頂點序列為一條鏈,要求相鄰兩個頂點之間有一條弧, 如 <u, u1> 或 <u1, u> 為容量網絡中一條弧。沿着 Vs 到 Vt 的一條鏈, 各弧可分為兩類:

  • 前向弧: 方向與鏈的正方向一致的弧, 其集合記為 P+;
  • 后向弧: 方向與鏈的正方向相反的弧, 其集合記為 P-;

增廣路: 設 f 是一個容量網絡 G 中的一個可行流, P 是從 Vs 到 Vt 的一條鏈, 若 P 滿足下列條件:

  • 在 P 的所有前向弧 <u, v> 上, , 即 P+ 中每一條弧都是非飽和弧;
  • 在 P 的所有后向弧 <u, v> 上, , 即 P– 中每一條弧是非零流弧。

則稱 P 為關於可行流 f 的一條增廣路, 簡稱為 增廣路(或稱為增廣鏈、可改進路)。沿着增廣路改進可行流的操作稱為增廣

殘留容量與殘留網絡

殘留容量: 給定容量網絡 G(V, E) 及可行流 f, 弧 <u, v> 上的殘留容量記為 。每條弧的殘留容量表示該弧上可以增加的流量。因為從頂點 u 到頂點 v 流量的減少, 等效於頂點 v 到頂點 u 流量增加, 所以每條弧 <u, v> 上還有一個反方向的殘留容量 。

一個容量網絡中還可以壓入的流量稱為殘留容量

殘留網絡: 設有容量網絡 G(V, E) 及其上的網絡流 f,G 關於 f 的殘留網絡(簡稱殘留網絡)記為 G'(V', E'), 其中 G’的頂點集 V’和 G 的頂點集 V 相同,即 V’=V, 對於 G 中的任何一條弧 <u, v>, 如果 , 那么在 G’中有一條弧 <u, v>∈E', 其容量為 , 如果 ,則在 G’中有一條弧 <v, u>∈E', 其容量為 , 殘留網絡也稱為剩余網絡.

由殘留的容量以及源點匯點構成的網絡。

割與最小割

割: 在容量網絡 G(V, E) 中, 設 E'⊆E, 如果在 G 的基圖中刪去 E’ 后不再連通, 則稱 E’ 是 G 的割。割將 G 的頂點集 V 划分成兩個子集 S 和 T = V - S。將割記為(S, T)。
s-t 割: 更進一步, 如果割所划分的兩個頂點子集滿足源點 Vs ∈ S,匯點 Vt ∈ T, 則稱該割為 s-t 割。 s-t 割(S, T)中的弧 <u, v>(u∈S, v∈T) 稱為割的前向弧, 弧 <u, v>( u∈T, v∈S) 稱為割的反向弧。
割的容量: 設 (S, T) 為容量網絡 G(V, E) 的一個割, 其容量定義為所有前向弧的容量總和, 用 c(S, T) 表示。
最小割: 容量網絡 G(V, E) 的最小割是指容量最小的割。

相關定理

殘留網絡與原網絡的關系

設 f 是容量網絡 G(V, E) 的可行流, f’ 是殘留網絡 G’ 的可行流, 則 f + f’ 仍是容量網絡 G 的一個可行流。(f + f’ 表示對應弧上的流量相加)

網絡流流量與割的凈流量之間的關系

在一個容量網絡 G(V, E) 中, 設其任意一個流為 f, 關於 f 的任意一個割為(S, T), 則有 ,即網絡流的流量等於任何割的凈流量。

網絡流流量與割的容量之間的關系

在一個容量網絡 G(V, E) 中, 設其任意一個流為 f, 任意一個割為(S, T), 則必有 ,即網絡流的流量小於或等於任何割的容量。

最大流最小割定理

對容量網絡 G(V, E), 其最大流的流量等於最小割的容量。

增廣路定理

設容量網絡 G(V, E) 的一個可行流為 f, f 為最大流的充要條件是在容量網絡中不存在增廣路。

幾個等價命題

設容量網絡 G(V, E)的一個可行流為 f 則:

  • 1) f 是容量網絡 G 的最大流;
  • 2) | f |等於容量網絡最小割的容量;
  • 3) 容量網絡中不存在增廣路;
  • 4) 殘留網絡 G’中不存在從源點到匯點的路徑。


免責聲明!

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



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