最大流算法(网络流问题)
Posted Airsolstice
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最大流算法(网络流问题)相关的知识,希望对你有一定的参考价值。
最大流算法(网络流问题):
对于流的概念是,我觉得就是管道;而管道就存在一种限制,大的管道的通量要小于等于小的管道的最大的通量。
算法实现(基于DFS,我自己的思路):
**按照DFS的思想,先找到一条到目的点的路径,得到这个路径的最小权值存起来
**对于第一步用到的边,减去最小权值后(如果权值为0,则说明这个边已经走不通了),再用DFS算法,找到一条可达目的点路径,得到这个路径的最小权值,和刚刚得到的权值加起来
**重复上述步骤,直到找不到一条可达路径为止;这是最小权值的累加值就是这个图的最大流的值
**执行DFS搜索,找到一条可达6t的路径,1-2-5-6,这个路径中的最小权值是4
**所以,在经过第一次流通后,1-2的权值变为2,2-5的权值变为0,5-6的权值变为4,流通量为4
**重新执行DFS搜索,知道一条可达的路径,1-2-3-6,这个路径的最小权值是2
**所以,在经过第二次流通后,1-2的权值变为0,2-3的权值变为2,3-6的权值变为2,流通量为6
**重新执行DFS搜索,知道一条可达的路径,1-4-3-6,这个路径的最小权值是2
**所以,在经过第三次流通后,1-4的权值变为5,4-3的权值变为1,3-6的权值变为0,流通量为8
**重新执行DFS搜索,知道一条可达的路径,1-4-5-6,这个路径的最小权值是2
**所以,在经过第四次流通后,1-4的权值变为3,4-5的权值变为0,5-6的权值变为2,流通量为10
**至此,再也走不到可达的路线了,结束,最大流量是10
以上是关于最大流算法(网络流问题)的主要内容,如果未能解决你的问题,请参考以下文章