网络流技巧

建模与模型转换:

1.多源多汇问题:

源有多个,汇也有多个,流可以从任意一个源流出,最终可以流向任意一个汇,总流量等于所有源流出的总流量,也等于流进所有汇的总流量。
解:加一个超级源s’和超级汇t’,然后从s’向每个源引一条有向弧,容量为无穷大,每个汇向t’引一条弧,容量为无穷大。


2.结点容量:

每个结点都有一个允许通过的最大流量,称为结点容量
解:把每个原始结点u分裂成u1和u2两个结点,中间连一条有向弧,容量等于u的结点容量。原先到达u的弧改成到达u1;原先从u出发的弧改成从u2出发。

     

3.无源无汇有容量下界网络的可行流:

建立附加源s和汇t,然后对弧进行改造:首先添加弧t->s并设置容量为无穷大,然后把每条下界为b弧拆分成3条,,然后合并。最后,求改造后的网络的s-t最大流即可。当且仅当所有附加弧满载时原网络有可行流。

               

            

            

 


5.有容量下界网络的s-t最大/最小流:

容量同时有上下界,且源点s和汇点t各有一个,求s到t的最大流和最小流。
先求出可行流,然后用传统的s-t增广路算法即可得到最大流。把t看成源点,s看成汇点后求出的t-s最大流就是s-t最小流。注意,原先每条弧u->v的反向弧容量为0,而在有容量下界的情形中,反向弧的容量应该等于容量下界。

6.费用与流量平方成正比的最小流:

容量c均为整数,并且每条弧还有一个费用系数a,表示该弧流量为x时费用为ax^2,如何求最小费用最大流?

解:用拆边法

                       




练习:

POJ 3614
POJ 3204
POJ 3189
POJ 3498
POJ 1637
POJ 2391
POJ 2455
POJ 2112


具体请见:http://download.csdn.net/download/boyxiejunboy/8911065(不用积分下载哦)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值