Algorithm 在福特富尔克森之后,仅通过改变一个边缘来增加流量
假设我在图G=(V,E)上运行了Ford-Fulkerson算法,结果是max-flow-fmax,它与min-cut-Xmin相关联。我感兴趣的是通过增加图中任何一条边的容量来尽可能地增加流量。如何识别此边缘Algorithm 在福特富尔克森之后,仅通过改变一个边缘来增加流量,algorithm,graph,graph-algorithm,max-flow,ford-fulkerson,Algorithm,Graph,Graph Algorithm,Max Flow,Ford Fulkerson,假设我在图G=(V,E)上运行了Ford-Fulkerson算法,结果是max-flow-fmax,它与min-cut-Xmin相关联。我感兴趣的是通过增加图中任何一条边的容量来尽可能地增加流量。如何识别此边缘 一种策略可能是:给定初始顶点S和最终顶点T,考虑从S到T的所有路径,并验证较低容量的边。例如,如果我有一条1/1的边,这就是我必须增加容量的顶点 有解决此问题的通用算法吗?一旦在图中找到最大流量,增加边的容量(u,v)只会在残差图中存在从s到u和从v到t的正容量路径时增加最大流量。如果不
一种策略可能是:给定初始顶点S和最终顶点T,考虑从S到T的所有路径,并验证较低容量的边。例如,如果我有一条1/1的边,这就是我必须增加容量的顶点
有解决此问题的通用算法吗?一旦在图中找到最大流量,增加边的容量(u,v)只会在残差图中存在从s到u和从v到t的正容量路径时增加最大流量。如果不是这种情况,那么在增加后的残差图中就不会有增加路径,因此最大流量将保持最大 在具有此属性的边(u,v)中,在增加(u,v)的容量后,可以从s到t推动的最大额外流量将有界。如果你能推动任何气流通过这条边,你必须找到一条从s到u的路径和一条从v到t的路径。这样做时,两条路径中的每一条都会有一个瓶颈边缘,流量的增加不能超过这个。因此,解决问题的一个选项是执行以下操作:
- 在残差图中找到从s到可从s到达的每个其他节点的最大瓶颈路径
- 在残差图中找到从每个节点到t的最大瓶颈路径
- 对于穿过该路径的每条边(u,v),可推动通过该边的最大额外流量由从s到u的最大瓶颈路径和从v到t的最大瓶颈路径中的最小值给出
希望这有帮助 很好的解释,不过有一个问题。是否有可能在时间O(k*| E |)内计算新容量的最大流量,其中k是我们使用增强算法增加边缘容量的量?我不清楚,你能告诉我我是对还是错吗?还有一件事,流量增加的最大量是多少?