网络流——算法概述

算法名称

复杂度

概要

增广路方法

一般增广路算法

O(nmU)

在残留网络中,每次任意找一条增广路径增广。

容量缩放增广路算法

O(nm logU)

在残留网络中,每次找一条有最大可增广容量和的增广路径增广,即残留网络中源到汇的最长路。

最短增广路算法

O(nm­­2­)

在残留网络中,每次找一条含结点数最少的增广路增广,即残留网络中源到汇的BFS 路径。

连续最短增广路算法

O(n­­2­m)

在 Edmonds Karp 的基础上改造。在每次BFS 找增广路时,记录每个点的距离标号。在距离标号的所构成的最短路图上,不断地 DFS找增广路。即一次标号多次增广,以提高速度。

预流推进方法

一般预流推进算法

O(n­­2­m)

维护一个预流,不断地对活跃结点执行push操作或relabel操作来调整这个预流,直到不能操作。

先进先出预流推进算法

O(n­­3­)

以先进先出队列维护活跃结点。

最高标号预流推进算法

O(n­­2­m­­1/2­)

每次检查具有最高标号的活跃结点。

posted @ 2012-01-17 22:42  你滴韩王  阅读(258)  评论(0)    收藏  举报