1. 程式人生 > 實用技巧 >流網路和可行流

流網路和可行流

流網路

有向圖中有兩個特殊的點是 源點 和 匯點,
流網路中的每條邊都有一個屬性,就是流網路的容量。


流網路對比到城市的自來水管道,每個點都是管道的交匯點,每條邊都是一條水管。


邊的容量就是水管每秒流過的水量。

  • 源點就是大的水庫 ☞ 源源不斷有無窮多的流量可以流出去。
  • 匯點可以是大海 ☞ 可以容納無窮多的容量。


整體來看,就是從源點源源不斷的把水通過每條管道,不斷流向匯點的過程,這個圖就被稱為流網路。





流網路  G = ( V, E )

在流網路中是不考慮反向邊的。


對於有反向邊的圖,需要等價的變成沒有反向邊的圖


 

如果一條邊不存在,則定義這條邊的容量是0。

可行流

指定每條邊的容量(即指定每條水管每秒流過的速率),只要滿足兩個條件,它就是一個可行的流。

  1. 滿足容量限制   從 u 到 v 的流量
  2. 流量守恆 ☞ 整個網路裡除了源點和匯點之外,其餘所有點是不儲存容量的。


對於任意的點x屬於點集V(不包括源點和匯點),都有流入的流量等於流出的流量。


 表示一個方案,即每條邊的取值。

對於某個可行流來說,那麼每秒從源點流到匯點的流量具體是多少呢?這個定義為可行流的流量值用  表示。

  每秒從源點流出的所有流量 減去 流入源點的流量。一般沒有後面的流入源點的流量。


對於一個流網路來說有很多可行流。最大流是最大可行流

最大流指的是:流網路的所有可行流中流量值最大的可行流。