1.最大流问题的数学描述
1.1图中的流
定义 在以
为节点集,
为弧集的有向图
上定义如下的权函数:
1.为弧上的权函数,弧
对应的权
记为
,称为弧
的容量下界;
2.为弧上的权函数,弧
对应的权
记为
,称为弧
的容量上界,或直接称为容量;
3.为顶点上的权函数,节点
对应的权
记为
,称为顶点
的供需量。
此时构成的网络称为流网络,可以记为:
由于我们只讨论
优先级和的情况,所以对于弧上的权函数
和顶点上的权函数
,可以直接用所有弧上对应的权和顶点上的权组成的有限维向量表示,因此
有时直接称为权向量,或简称权。由于给定有向图
,我们总是可以在它的弧集合和顶点集合上定义各种权函数,所以流网络一般也直接简称为网络。
在流网络中弧
的容量下界
和容量上界
表示的物理意义是:通过该弧发送某种“物质”时,必须发送最少数量为
,而发送的最大数量为
,顶点
对应的供需量
则表示该顶点从网络外部获得的“物质”数量(
时),或从该顶点发送到网络外部的“物质数量”(
时)。下面我们给出严格定义。
定义:对于流网络
其上的一个流
是指从
的弧集
的一个函数,即对每条弧赋予一个实数
(称为弧
的流量)。如果流
满足:
则称为可行流,至少存在一个可行流的网络称为可行网络,约束(1)称为流量守恒条件(也称流量平衡条件),约束(2)称为容量约束。
可见,当
时,表示有
个单位的流量从该顶点流失到网络外部,因此顶点
称为供应点或源。同理
的点称为吸收点或汇。特殊地,当
,改点称为转运点或平衡点。
一般来说,我们总是假设容量下界为0,所以约束2可改为:
1.2.饱和弧,非饱和弧和空弧
定义:在流网络
中,对于流
,如果
则称为零流,否则为非零流,如果某条弧
上的流量等于其容量
,则称该弧为饱和弧;如果某条弧
上的流量小于其容量
,则称该弧为非饱和弧;如果某条弧
上的流量为0
,则称该弧为空弧。
2.最大流问题
2.1.问题的定义和辅助定理
考虑如下流网络
;节点
为网络中唯一的源点,
为唯一的汇点,而其他节点为转运点。如果网络中存在可行流
,此时称流
的流量为
(自然也等于
),通常记为
或
,即
对于这种单源单汇的网路,如果我们并不给定和
(流量不给定),则网络一般记为
。最大流问题就是在
中找到流值最大的可行流(即最大流)。我们将会看到,最大流问题的许多算法也可以用来求解流量给定的网络中的可行流。也就是说,当我们解决了最大流问题以后,对于在流量给定的网络中寻找可行流的问题,通常也就可以解决了。
用线性规划的方法,可将最大流问题描述如下:
为了解决这个问题,给出一些定义和定理:
全幺模矩阵(全单位模矩阵):如果一个矩阵
的任何子方阵的行列式的值都是0,1,-1,则称
是全幺模的,或称A是全幺模矩阵。
整流定理:最大流问题所对应的约束矩阵是全幺模矩阵。若所有弧容量均为正整数,则问题的最优解为整数解。
最大流问题虽然是一个线性规划问题,但是其可以利用图的优点,解决这个问题的方法较之线性规划的一般方法要方便,直观得多。
2.2.单源和单汇运输网络
实际问题往往是多源多汇网络,为了计算的规格化,可将多源多汇网络化成单源单汇网络
。设
为
的源,
是
的汇
具体转化方法如下:
1.在原图中增加两个新的顶点
和
,令为新图
中之单源和单汇,则
中所有顶点
成为
的中间顶点集。
2.用一条容量为的弧把
连接到
的每个顶点。
3.用一条容量为的弧把
中的每个顶点连接到
。
和
中的流以一个简单的方式相互对应。若
是
中的流,则由:
所定义的函数是
中使得
的流,这里
表示流出
的流量,
表示流入
的流量(在
中)。
2.3.最大流和最小割关系
设,则称
为网络的一个割,其中
为尾在
,头在
的弧集,称
为割的容量。
定理:
是最大流,
是容量最小的割的充要条件是
在网络
中,对于轨
(此轨是无向的),若
,则称它为前向弧;若
,则称它为后向弧。
在网络
中,从
到
的轨
上,若对所有的前向弧
都有
,对所有的后向弧
恒有
,则称这条轨
为从
到
的关于
的可増广轨。
令
则在这条可增广轨上每条前向弧的流都可以增加一个量, 而相应的后向弧的流可减少
,这样就可使得网络的流量获得增加,同时可以使每条弧的流量不超过它的容量,而且保持为正,也不影响其它弧的流量。总之,网络中
可增广轨的存在是有意义的,因为这意味着
不是最大流。
网友评论