网络流的基本建模与实现技巧[天坑。以后有时间再填]

jys posted @ Mar 23, 2013 12:55:11 AM in 未分类 , 1256 阅读

边的流量有上下界的最大流/费用流:

I、二分

I.从汇点T到源点S连边,下界为f上界oo。二分此下界f。

II.建立新网络(无下界有源有汇,新建源点s',汇点t'),每一条新边(u,v)的容量即为原图中(u,v)边的上界减下界。

III.对于每一个点u,令M=(入u边的下界和)减去(出u边的下界和),如果M非负则连边(s',u),容量M,如果M为负则连边(u,t'),容量-M。称这种新加的边为附加边。

IV.对新网络以s'为源t'为汇求最大流,如果每一条附加边都满载,那么原网络存在一个流量至少为f的可行流。

II、直接做

I、从汇点T到源点S连边,下界0上界oo。

II.建立新网络(无下界有源有汇,新建源点s',汇点t'),每一条新边(u,v)的容量即为原图中(u,v)边的上界减下界。

III.对于每一个点u,令M=(入u边的下界和)减去(出u边的下界和),如果M非负则连边(s',u),容量M,如果M为负则连边(u,t'),容量-M。称这种新加的边为附加边。

IV.在新网络里以s’为源t’为汇求最大流,如果每一条附加边都满载那么原网络存在可行流。然后再在残量网络中以s为源t为汇求最大流。那么求得即为原网络最大流。如果要求最小流,那么以t为源s为汇求最大流。费用流是一个意思的。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter