26 最大流

就像我们可以对一个路网构建一个有向图求最短路一样,我们也可以将一个有向图看成是一个"流量网络(flow network)",用它来回答关于流的问题.

Just as we can model a road map as a directed graph in order to find the shortest path from one point to another, we can also interpret a directed graph as a “flow network” and use it to answer questions about material flows.

想像一下在一个流量系统中,一种物质从一个源点,那个物质产生的地方,流向一个汇点,也就是物质流向的地方.源点以一个固定的速率产生那种物质,汇点以相同的速度消耗那种物质.

The source produces the material at some steady rate, and the sink consumes the material at the same rate.

在这个流量系统的每一个点上,这种物质的流速(flow)顾名思义,就是这种物质移动地多快.流量网络可以为许多问题建立模型,包括流经管道的液体的速度,流水线的组装,流经电路的电流,以及信息穿过联络网络.

The “flow” of the material at any point in the system is intuitively the rate at which the material moves.Flow networks can model many problems, including liquids flowing through pipes,parts through assembly lines, current through electrical networks, and information
through communication networks.

可以想像,我们的流量网络的每一条边(edge),都对物质流动有一个限制.每一个限制都给出了一个额定流量(stated capacity),也就是这种物质可以流经这条边的最大速度,比如每小时有200加仑液体可以流经一个管道或一条电线可以通过20安培的电流.顶点(vertex/vertices(复数))是限制连接的地方,除非是源点或者汇点,流经这些顶点的流是不会改变的.换句话说,流入一个顶点的流等于流出一个顶点的流.我们将这个性质称为流量保护(flow conservation),这与在此流量网络是一个电路时,应用在这个电路上的基尔霍夫电压定律是等价的.

We can think of each directed edge in a flow network as a conduit for the material. Each conduit has a stated capacity, given as a maximum rate at which the material can flow through the conduit, such as 200 gallons of liquid per hour through a pipe or 20 amperes of electrical current through a wire. Vertices are conduit junctions, and other than the source and sink, material flows through the vertices without collecting in them. In other words, the rate at which material enters a vertex must equal the rate at which it leaves the vertex. We call this property “flow conservation,” and it is equivalent to Kirchhoff’s current law when the material is electrical current.

在最大流问题中,我们将要计算的,是从源点到汇点不触犯这个网络中任何限制的最大流量.这是对于流量网络最简单的应用.正如我们将在这章中看到的,这个问题可以通过一些十分有效率的算法来解决.更进一步的说,我们将用这些基础的网络流算法来解决一些更加复杂的网络流问题.

这个章节将要叙述两种不同的解决最大流问题的算法.#26.1将网络流问题中可能用到的记号和这个问题本身形式化了.#26.2描述了传统的FFF(Ford and Fulkerson for Finding maximum flows)算法.这种算法的一个应用,就是寻找一个二分无向图的最大匹配,将在#26.3中出现.#26.4呈现了pr(push relabel)算法,是构成当今最快的几种最大流算法的基础.#26.5则描述了rtf(relabel-to-front)算法,是一种prpr算法的特殊实现,可以在O(V3)的时间内跑出来.虽然这不是已知最快的算法,它勾勒了一些渐进意义上最快的算法的一些技巧,而且在实际使用中,rtf是足够快的.

[先更新这些吧..//亮点自寻]

最新文章

  1. [LeetCode] Nested List Weight Sum II 嵌套链表权重和之二
  2. 烂泥:php5.6源码安装与apache集成
  3. MyEclipse去除网上复制下来的来代码带有的行号
  4. [android] 手机卫士保存密码时进行md5加密
  5. iOS - Swift NSTimer 定时器
  6. Maven打包可执行Jar包方式
  7. lenovo X230热键功能
  8. hibernate4 二级缓存demo实例
  9. Linux系统查找文件find命令使用(不断更新)
  10. Java Junit4测试功能
  11. [转] 关于 Eclipse 导出 Android项目 JavaDoc 详细过程
  12. C#调用WebService时插入cookie
  13. linux下安装软件
  14. PHP实现 手机号码归属地查询
  15. leetcode344 反转字符串 c++实现
  16. BouncyCastle 密钥转换 - Java
  17. p3792 由乃与大母神原型和偶像崇拜(思维+线段树)
  18. Character Sets: Migrating to utf8mb4 with pt_online_schema_change
  19. 实训四(cocos2dx sharesdk集成-1)
  20. 005.KVM日常管理2-virt管理

热门文章

  1. 阿里面试回来,想和Java程序员谈一谈(转载)
  2. winform之判断验证码,,附加验证码的一般处理程序
  3. winform之权限判断小技巧
  4. MVC升级以后出现"当前上下文中不存在ViewBag"的问题解决
  5. ubuntu 12.04安装telnet和ssh服务
  6. resharper安装后,一不小心点错了(选择了object browser)
  7. java链接到mysql
  8. gvim-ide plugins
  9. C++ 的语言杂谈(一)--C++不是新手友好的
  10. 繁华模拟赛 Vincent的城堡