上下界网络流——operator_

1.上下界网络

很好理解,在以往的网络中,我们的每条边只有个最大值,即可流过的最大流量,现在我们还有一个 流过流量的最小值 的限制,即 下界

2.无源汇上下界可行流

因为有了下界,所以我们其实连找到一条可行流都很困难,所以总是先考虑可行流的求解。

当我们拿到一个上下界网络时,会很想用差值网络来代替原网络,因为我们无法处理下界这个限制。然而很显然这是错的,因为在差值网络中,我们甚至无法保证流量平衡。

好,现在的问题就转化为了怎么保证差值网络流量平衡,可以发现,在一个正常的网络流中,唯一流量不平衡的是 源点与汇点 ,所以我们有了一个方向:尝试把所有不平衡的流量全放到源点与汇点里去。当然,这两个源点与汇点是虚点,实际原网络中并不存在。

再深入,我们就有了一个系统的建模方法:在差值网络的基础上,如果流进点 u u u 的流量大于流出的,就从虚拟源点连一条流量为差值的边,反之就连向汇点。注意这里说的“流进流出”都是指下界。

建完模,考虑寻找可行流,由建模的原理,只要源点与汇点所有有关的边全部满流(易证源点满流时汇点也满流),就可以保证原网络流量平衡,即寻得一条可行流,那么只要跑一遍最大流即可。

3.有源汇上下界可行流

我们刚刚是新建了两个虚点作源点与汇点,那么如果已有源汇点呢?其实由于流量平衡,所以流出源点( S S S )的流量与流入汇点( T T T )的流量是相等的,我们连一条 ( T , S , [ 0 , i n f ) ) (T,S,[0,inf)) (T,S,[0,inf)) 的边就可以将其抵消,此时再跑一遍无源汇上下界可行流即可。

4.有源汇上下界最大流

我们先求一遍有源汇上下界可行流,此时若有可行流,记为 f 1 f_1 f1 ,那么新源点与新汇点的所有边已经满了,同时也已经让新网络的残量网络流量平衡(感性理解,可以视作都减去一个不同的差值使其平衡),所以我们以原网络的源点与汇点跑一遍最大流 f 2 f_2 f2 就可以“榨干”这个残量网络(记得删去从 T T T S S S 的那条边!另外倒没太大关系)。

a n s = f 1 + f 2 ans=f_1+f_2 ans=f1+f2

5.有源汇上下界最小流

呃,这我不知道什么原理,但是记从汇点到源点的最大流为 f 2 f_2 f2 ,则 a n s = f 1 − f 2 ans=f_1-f_2 ans=f1f2

P.S. 还有一个东西叫无(有)源汇上下界最小费用可行流,但这东西我不知道咋做,有缘更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值