最大流的算法小结 Algorithm for Maximum Flow

本文深入探讨了流量网络中的增广路方法、容量缩放增广路算法、最短增广路算法、连续最短增广路算法以及预流推进方法等核心优化策略,详细解释了每种算法的工作原理、复杂度及应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【转】

————————————————————————————

算法名称

复杂度

概要

增广路方法

Augmenting path method (Ford Fulkerson method)

一般增广路算法

Labeling algorithm

O(nmU)

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

容量缩放增广路算法

Capacity scaling algorithm

O(nm logU)

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

最短增广路算法

Shortest augmenting path

algorithm (Edmonds Karp

algorithm)

O(nm­­2­)

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

连续最短增广路算法

Successive shortest

augmenting path algorithm

(Dinic algorithm)

O(n­­2­m)

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

预流推进方法

Preflow-push method

一般预流推进算法

Generic preflow-push

algorithm

O(n­­2­m)

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

先进先出预流推进算法

FIFO preflow-push algorithm

O(n­­3­)

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

最高标号预流推进算法

Highest-label preflow-push

algorithm (Relabel-to-Front

algorithm)

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

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

 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值