网络流专题

求最大流:

       求最大流的过程,就是不断找到一条源到汇的路径,然后构建残余网络,再在残余网络上寻找新的路径,使总流量增加,然后形成新的残余网络,再寻找新路径…..直到某个残余网络上找不到从源到汇的路径为止,最大流就算出来了。重要的一点就是建立反向边。

Edmonds-Karp 最短增广路算法:

      先用BFS找到从源点到汇点的最短可行路径,并记录每个点的前驱点和路径上最小的流量值,然后反向从汇点到源点的边把最小流量值减去的同时加上反向边,不断这样找,直到找不到路时就结束,把所求的最小流量值加起来就得到最大流。

Dinic 快速网络流算法:

先利用BFS对残余网络分层,分完层后,从源点开始,用DFS从前一层向后一层反复寻找增广路(即要求DFS的每一步都必须要走到下一层的节点),复杂度为O(n^2m)。

有源上下界网络最大流:

      先对原图把所有下界通过两个超级汇点st-ed替换,原图的流量就是上界-下界,然后加上一条流量无穷大的t-s边,求出最大流,求出s汇点的流出的量记录为sum1并检查超级汇点的流量是否流满,如果满流,就满足下界的条件,然后把超级汇点、所连的边和无穷大的t-s的边删除,然后再求一次s-t的最大流,记录为sum2,最后满足条件的最大流就是sum1+sum2;如果不满足,就不能求出满足题意的最大流。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最大流&&最小费用最大流&&最大二分匹配 中文是2017年8月的笔记,英文是2018.11月的笔记 英文笔记来自于...
    廖少少阅读 35,352评论 6 20
  • 目录 1.流网络及最大流问题1.1 流网络1.2 最大流问题1.3 最大流问题的三种解法对比 2.Ford-Ful...
    王侦阅读 10,151评论 0 3
  • 1 序 2016年6月25日夜,帝都,天下着大雨,拖着行李箱和同学在校门口照了最后一张合照,搬离寝室打车去了提前租...
    RichardJieChen阅读 10,605评论 0 12
  • 题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流。 输入输出格式 输入格式第一行包含四个正整数N...
    Ricardo_Y_Li阅读 12,343评论 2 4
  • 转载自这里最小费用最大流通过EK,Dinic,ISAP算法可以得到网络流图中的最大流,一个网络流图中最大流的流量m...
    Gitfan阅读 8,792评论 0 1