最大流算法(网络流问题)

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


以上是关于最大流算法(网络流问题)的主要内容,如果未能解决你的问题,请参考以下文章

浅谈网络流

有啥方法可以拆分通量流吗?

网络流:最大流之Dinic算法

网络流:最大流之SAP算法

网络流的最大流和最小流是啥算法

网络流最大流——dinic算法