网络流最大流初步-Push–relabel maximum flow algorithm

本文介绍了网络流最大流算法中的Push-Relabel方法,包括其基本原理和优化策略,特别是使用优先队列进行优化后的性能提升。讨论了如何避免形成环和堰塞湖,并通过调整节点高度来解决问题。虽然基础版本的时间复杂度较高,但通过优先队列优化可达到更优的时间复杂度。
摘要由CSDN通过智能技术生成

简介

做网络流最大流的题,常用的算法就是Dinic's algorithm。时间复杂度为O\left ( V^{2}E \right ),通常由于出题人水平较低,几乎能过所有的题。功利地看,这样就没问题了。但是,站在追求真(zhuang)理(B)的角度上。我们有理由去了解更多的算法。

事实上网络流最大流算法,(在具有正确性的前提下,)大体分两类:增广路(augmenting path)算法和推进-重标号(push-relabel)算法(又称预流推进(preflow-push)算法,括号外面的是我自己翻译的)。前一类很常用,常见的同时也是比较优秀的有Edmonds-Karp Algorithm(O\left ( VE^{2} \right ))和Dinic's algorithm(O\left ( V^{2}E \right ))。后类个体之间的区别在于优化方式,普通的做法复杂度达到了O\left ( V^{2}E \right ),队列优化(此种优化后的算法又称HLPP,Highest label preflow push algorithm 最高标号预流推进算法)后是O\left ( V^{3} \right ),优先队列优化后是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值