什么是网络流

1什么是网络流?


在生活中,什么比较像图呢?答案一定不少吧,其中我想举的例子就是水管了。水管相互之间都是连通的,会构成一张图。从供水的一端出发,水必然沿一个固定的方向流向最终的汇聚点,也就是有向图。同时,在条件的限制下,水管有粗有细,不同的水管单位时间内的流水量限制是不同的,可以看做是带权图。


运输货物、限载限量、快递等等,是不是都很类似?我们称这样的带权、有向图为网络,因为有流量,即为网络流。具体定义就是,供应流量的出发点称为源点 S,接受流量的汇聚点称为汇点 T。比如下图就是一个网络,其中所标注的权值为这条边的容量——即可以流过的最大值。



2最大流


最大流是网络流中最常见的问题,我们先来定义什么是可行流:要求每条边上流过的值不超过它的容量,且在每个点、边都不允许有 “ 积水 ”,即源点出去的流量 = 汇点收到的流量。最大流是求在所有的可行流中,流动的 “ 水 ” (流量)最多有多少。这确实是一个比较实际的问题,因为比如在水管系统中,我们都希望在水管不会出现任何故障的情况下,能够流过最多的水。


之前提到的网络中,看上去的最大流应该是 24,就是流入汇点的最大容量。但实际上的最大流如下图所示(红色的数表示流量),应该是 23,具体需要用算法来求解这个问题,一个比较直观的解释就是,容量为 12、7 和 4 这三条边已经都满流了,无法再增加流量。




3后记


求最大流的算法有很多,从上世纪五六十年代开始,到现在还一直有研究。关于网络流的其他问题也有不少,都非常有趣。其实,一些实际用网络流解决的题目,看上去和网络流没有任何关系。网络流单独出现的情况比较少见,多数还是需要和其它算法相结合解题,主要的难点在于问题模型的建立,以及把最大流等相关算法转化成正确的、有点长的代码等等。敬请期待我之后介绍的关于网络流的算法!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值