10.9传输网(Transport network)
10.9传输网(Transport network)
一些名词:
流量守恒(Conservation of flow)
除源点s(source)和宿点t(sink)之外,要求其他节点流入的流量和流出的流量相等
最大流(Maximal flow)
对于网络流图G,流量最大的可行流f,称为最大流
基本算法描述
- 最为朴素的算法,便是利用回溯法,对所有可能的路径情况分析并取所有可能情况的最大值
- 基于贪心算法的思考,在最开始先找一可行流(feasible flow),在此基础上上不断的寻找增广路径,直到再无增广路径;但是问题在于贪心寻找时不一定最优,故引入反向边的概念,利用这一思路达到回溯的作用以确保正确性;这就是这个算法的精华部分,利用反向边,使程序有了一个后悔和改正的机会
因此得到如下基本算法:
- 找一可行流,对每条边的流量更新称剩余流量和反向流量
- 寻找增广路径,注意流量既可以走正向流量,也可以走反向流量;将总的流量值更新
- 重复过程2直至再无增广路径;此时得到的流量值即为最大流
最大流最小割定理
一言以蔽之,最大流等于最小割
编程算法实现
从寻找增广路径着手,可以深搜,广搜和一些其他记忆化操作来辅助寻找增广路径(如给节点通过BFS进行分层,规定只能从低层级向高层级流通等进行优化),最常用高效的求最大流的算法:Dinic算法<暂缺>