最大流问题——Ford-Fulkerson算法

该算法的核心是三个重要的概念:

1.残存网络(residual network) : 指的是除去一条路径并对该路径加上取反边之后的网络,实际上表示可供反悔的网络

2.增广路径  (augmenting path) :指的是残存网络中可以从s到t连通的一条路径

3.割(cut):指的是截面的切割

切割的容量:指的是一个切割的正向边的容量和

切割的净流量:指的是一个切割的正向边流量减去负向边流量。

最大流最小切割定理:最大流量等于最小切割容量

另外的概念:

1.残存容量:在一条增广路径p上能够为每条边增加的流量的最大值。

 

Ford-Fulkerson算法:

1.先把所有边的flow置为零

2.(可以用广搜)找到一条路径,建立残存网络。

3.找到这条路径中边的最小残存容量

4.这个路径的每条非残存边的流加上这个容量。否则在其反向边减去此流量。

5.继续遍历新的路径直到此残存网络不再存在一条通路

 

Ford-Fulkerson 算法是一种迭代方法。开始时,对所有 u, v ∈ V 有 f(u, v) = 0,即初始状态时流的值为 0。在每次迭代中,可通过寻找一条增广路径来增加流值。增广路径可以看做是从源点 s 到汇点 t 之间的一条路径,沿该路径可以压入更多的流,从而增加流的值。反复进行这一过程,直至增广路径都被找出为止。最大流最小割定理将说明在算法终止时,这一过程可产生出最大流。

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值