最大流问题:最大流的Ford-Fulkerson算法

本文介绍了最大流问题,通过Ford-Fulkerson算法寻找物资从起点S到终点T的最大运输量。该算法包括初始化网络、寻找增广路径、更新流量等步骤,并利用宽度优先搜索来找到增广路径。通过对算法的详细解析,帮助初学者理解最大流问题的解决方法。
摘要由CSDN通过智能技术生成

这里初学,总结出一些知识点,这里于大家共享。

引入问题:

现在想将一些物资从S运到T,必须经过一些中转站。连接中转站的是一些单向公路,每条公路都有最大运载量。最多能将多少货物从S运到T?

建图:

V表示整个图中节点的集合
E表示整个图中所有边的集合
G = (V, E)表示整个图
对于每条边(u, v), 有一个容量c(u, v)表示每条公路的最大运载量 c(u, v) ≥ 0
对于每条边(u, v), 有一个流量f(u, v)表示每条公路经过货物的数量
S表示整个图的源点,T表示整个图的汇点【s是起点,T是终点】

Ford-Fulkerson算法操作步骤:

(1)初始化网络中所有边的容量,C(u,v)称为边的容量,C(v,u)称为退回边,初始化其最大流为0;

(2)在残留网络中找到一条从源点S到汇点T的增广路P,如果找到了,转(3),否则转(5);

(3)在增广路P中找到所谓的瓶颈边【即路径中容量最小的边】,记录下这个值a,并且累加到最大流中,转(4);

(4)将增广路中所有的f(u,v)加上a,所有f(v,u)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值