上下界网络流
在阅读这篇文章之前请先阅读 最大流 并确保自己熟练掌握最大流算法。
概述
上下界网络流本质是给流量网络的每一条边设置了流量上界
根据题目要求,我们可以使用上下界网络流解决不同问题。
无源汇上下界可行流
给定无源汇流量网络
不妨假设每条边已经流了
由于最大流需要满足初始流量平衡条件(最大流可以看成是下界为
若
若
若
如果附加边满流,说明这一个点的流量平衡条件可以满足,否则这个点的流量平衡条件不满足。(因为原图加上附加流之后才会满足原图中的流量平衡。)
在建图完毕之后跑
有源汇上下界可行流
给定有源汇流量网络
假设源点为
则我们可以加入一条
若有解,则
有源汇上下界最大流
给定有源汇流量网络
我们找到网络上的任意一个可行流。如果找不到解就可以直接结束。
否则我们考虑删去所有附加边之后的残量网络并且在网络上进行调整。
我们在残量网络上再跑一次
千万不可以在原来的流量网络上跑。
有源汇上下界最小流
给定有源汇流量网络
类似的,我们考虑将残量网络中不需要的流退掉。
我们找到网络上的任意一个可行流。如果找不到解就可以直接结束。
否则我们考虑删去所有附加边之后的残量网络。
我们在残量网络上再跑一次
对于每条
对于每个点,向
跑一次 上下界带源汇最小费用可行流 即可。
因为最小费用可行流解法与最小可行流类似,这里不再展开。
贡献者:@mgt@AzusaCat1111@Chrogeek@雷蒻@ouuan@zhouyuyang2002@Ir1d
本页面最近更新:2/3/2023, 12:00:00 AM,更新历史
发现错误?想一起完善? 在 GitHub 上编辑此页!
本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用