网络流的基本建模与实现技巧[天坑。以后有时间再填]
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为汇求最大流。费用流是一个意思的。