Algorithm 运行“最大流”算法后,在流网络中查找处于某个最小切割中的所有边
设G=(V,A,s,t,U)为流网络。假设我们得到了一个最大流。是否有一个快速算法来找到所有在某个最小切割中的边 我知道如果Algorithm 运行“最大流”算法后,在流网络中查找处于某个最小切割中的所有边,algorithm,graph,network-flow,Algorithm,Graph,Network Flow,设G=(V,A,s,t,U)为流网络。假设我们得到了一个最大流。是否有一个快速算法来找到所有在某个最小切割中的边 我知道如果x是一个最大流,那么我们可以在剩余网络G(x)中找到可以从源S到达的顶点集S,以及T我们可以从中到达T的顶点集。因此,S及其补码是最小割集。此外,T及其补码也构成一个最小割 不幸的是,如果T不是S的补码,则最小切割不是唯一的。我想知道是否有一种很好的方法来确定其端点既不在S中也不在T中的边是否属于最小切割。每个弧u-->v都属于一些S--T最小切割当且仅当 从u到t没有剩余
x
是一个最大流,那么我们可以在剩余网络G(x)
中找到可以从源S
到达的顶点集S
,以及T
我们可以从中到达T
的顶点集。因此,S
及其补码是最小割集。此外,T
及其补码也构成一个最小割
不幸的是,如果T
不是S
的补码,则最小切割不是唯一的。我想知道是否有一种很好的方法来确定其端点既不在S
中也不在T
中的边是否属于最小切割。每个弧u-->v
都属于一些S--T
最小切割当且仅当
u
到t
没有剩余路径s
到v
没有剩余路径,并且u
到v
没有剩余路径为了证明IF方向,考虑一个残差路径,包括由<代码> S/<代码>或<代码> u>代码>的残差路径,它是一个残差路径,它是一个<代码> s- t<代码>(1),具有零剩余容量,因此是一个<代码> s -t/t>代码>按构造切割,包含(2)和(3)<代码> u>>V < /> >
为了证明唯一的if方向,我们可以使用包含u>v
的s--t
最小切割来表明,对于从u
到t
、从s
到v
或从u
到v
的每条路径,路径中的一些弧是非残差的
这使您可以相当轻松地到达O(n m)
时间。也许这已经足够好了——如果不是的话,有一本关于回答离线可达性查询的文献可能会有用