Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 运行“最大流”算法后,在流网络中查找处于某个最小切割中的所有边_Algorithm_Graph_Network Flow - Fatal编程技术网

Algorithm 运行“最大流”算法后,在流网络中查找处于某个最小切割中的所有边

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没有剩余

设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
    没有剩余路径
  • 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)
    时间。也许这已经足够好了——如果不是的话,有一本关于回答离线可达性查询的文献可能会有用