1 最大流问题的数学描述 ( w6 J. ]& p! g) ?( {- ~1.1 网络中的流 定义9 A, o! s5 l' F( t5 u |
在以V 为节点集, A 为弧集的有向图G = (V, A) 上定义如下的权函数: Q: u @& S% s8 \! E8 t: C h2 s9 M0 U$ V
(i) L : A → R 为孤上的权函数,弧 (i, j)∈ A 对应的权 L(i, j) 记为 ,称为孤 (i, j) 的容量下界(lower bound);* j5 _2 S' K* H! n
( w0 A" F+ _3 n( ]$ C(ii)U : A → R 为弧上的权函数,弧(i, j)∈ A对应的权U(i, j) 记为 ,称为孤 (i, j) 的容量上界或容量(capacity); . T8 u7 \+ L6 L2 @9 j& {* n P2 W$ C& K e; q, s" m2 x
(iii) D :V → R 为顶点上的权函数,节点i ∈V 对应的权 D(i) 记为 ,称为顶 点i 的供需量(supply/demand);( R1 P- j/ ?5 \) P6 t! A
5 Y* S/ \5 W/ T此时所构成的网络称为流网络,可以记为 N = (V, A, L,U,D) 。 由于我们只讨论V, A 为有限集合的情况,所以对于弧上的权函数 L,U 和顶点上的 权函数 D ,可以直接用所有孤上对应的权和顶点上的权组成的有限维向量表示,因此 L,U, D 有时直接称为权向量,或简称权。由于给定有向图G = (V, A) 后,我们总是可 以在它的弧集合和顶点集合上定义各种权函数,所以流网络一般也直接简称为网络。 3 k3 d$ U, `+ \. V( I9 u7 e4 ~/ n4 q# x- A; V$ P. C! }
在流网络中,弧(i, j) 的容量下界 和容量上界表示的物理意义分别是:通过该 弧发送某种“物质”时,必须发送的最小数量为 ,而发送的最大数量为 。顶点i ∈V 对应的供需量则表示该顶点从网络外部获得的“物质”数量( > 0时),或从该顶 点发送到网络外部的“物质”数量(< 0 时)。下面我们给出严格定义。 . [& i3 M2 v: D# d9 [9 l+ @( S - K2 m/ Y C4 X4 m$ u" t& M可行流(feasible flow) ' }, I( K0 A2 P" x( @: P+ w$ w) E4 s' b( `# ^. d: r ; v9 L- T1 {- j( o0 s: K% @' a: h, ^ 5 g) u& V w0 I s1 O0 Z ) B3 G9 q8 ]& s5 O可见,当 di > 0时,表示有di 个单位的流量从网络外部流入该顶点,因此顶点i 称 为供应点(supply node)或源(source),有时也形象地称为起始点或发点等;当di < 0 时,表示有|di | 个单位的流量从该顶点流失到网络外部(或说被该顶点吸收),因此顶 点i 称为需求点(demand node)或汇(sink),有时也形象地称为终止点或收点等;当 di = 0时,顶点i 称为转运点(transshipment node)或平衡点、中间点等。此外,根据 (1)可知,对于可行网络,必有 1 g* [# P4 o. t# R: z* z9 z1 V0 f* A" h0 i- i( m2 a* \& Z. Z) b / D' J% o' l* ^/ T 7 R0 p! b; A8 a2 W, L' E y也就是说,所有节点上的供需量之和为 0 是网络中存在可行流的必要条件 / m4 k+ S: ~$ Q. D8 p$ Q, L 3 h* W- A. e4 ? / z0 {/ y; Q$ z 8 ?5 {. u2 R7 {+ v$ U7 d; L" _; Y" L1 F9 R
1.2 最大流问题 7 M, o/ F# d! U- M3 g: M; C. }考虑如下流网络 N = (V, A,U,D):节点 s 为网络中唯一的源点,t 为唯一的汇点, 而其它节点为转运点。如果网络中存在可行流 f ,此时称流 f 的流量(或流值,flow value)为 (根据(3),它自然也等于 − ),通常记为v 或v( f ) ,即 e/ g! h$ K2 t& t* O 7 v2 _" V! _* D# D7 g 1 P: Q) b& {% d& B4 i* I1 U+ j对这种单源单汇的网络,如果我们并不给定 和 (即流量不给定),则网络一 般记为 N = (s,t,V, A,U) 。最大流问题( maximum flow problem )就是在 N = (s,t,V, A,U) 中找到流值最大的可行流(即最大流)。我们将会看到,最大流问题 的许多算法也可以用来求解流量给定的网络中的可行流。也就是说,当我们解决了最大 流问题以后,对于在流量给定的网络中寻找可行流的问题,通常也就可以解决了。 . z& s# H' w8 j \* N% U' ~ Z5 D+ o
用线性规划描述最大流问题 v2 p) |# s8 T D8 q5 i; Z& e
因此,用线性规划的方法,最大流问题可以形式地描述如下: % W0 d) H* r2 K0 h 3 c. ]5 w8 `) i J 5 G: b& I s/ Q " }' U/ M% E; H定义】 如果一个矩阵 A 的任何子方阵的行列式的值都等于0,1或 −1,则称 A 是 全幺模的(totally unimodular TU,又译为全单位模的),或称 A 是全幺模矩阵。 & o( |: _& b( n- N " o! C, Y- }+ Q整流定理 + P4 Q4 A. ~. K7 Y/ p2 Z【定理 7】(整流定理) 最大流问题所对应的约束矩阵是全幺模矩阵。若所有弧容量 均为正整数,则问题的最优解为整数解。 最大流问题是一个特殊的线性规划问题。我们将会看到利用图的特点,解决这个问 题的方法较之线性规划的一般方法要方便、直观得多。; @4 p7 a2 E# q, X$ d