网络流专题

来源:互联网 发布:淘宝认证在哪里 编辑:程序博客网 时间:2024/06/05 04:10
网络流之最大流

基本概念:

第一步:了解Ford-Fulkerson方法 《数据结构与算法分析C语言描述》p233
        算法模板 pascal教程〉图论4-网络流〉图论4-网络流初步.doc
        模板题:PKU 1273 Drainage Ditches

第二步:Edmonds-Karp算法
        在Ford-Fulkerson算法中,增广路径是随意找一条,如果用广度优先搜索来查找一条增广路径,即查找从s到t最短的增广路径,算法的时间复杂度为O(VE2)。如果是每次寻找包含弧的个数最少的增广路进行增广,并引入距离标号的概念,称为SAP算法(SAP:Shortest Augmenting Paths ,最短增广路),算法的时间复杂度为O(V2E)。

第三步: ISAP算法
         ISAP 算法则是最短增广路算法的一个改进(Improved Shortest Augmenting Path,改进的最短增广路)。概括地说,ISAP算法就是不停地找最短增广路,找到之后增广;如果遇到死路就retreat,直到发现s,t不连通,算法结束。找最短路本质上就是无权最短路径问题,因此采用BFS的思想。具体来说,使用一个数组d,记录每个节点到汇点t的最短距离。搜索的时候,只沿着满足d[u]=d[v]+1的边u→v(这样的边称为允许弧)走。显然,这样走出来的一定是最短路。
     算法模板 pascal教程〉图论4-网络流〉图论4-网络流初步.doc
     网络流-最大流问题ISA 算法解释:http://www.renfei.org/blog/isap.html
     网络流sap算法演示:http://wenku.baidu.com/view/ff0b8ace9ec3d5bbfd0a7413.html?re=view

第四步: Dinic算法
               Dinic算法

0 0