【问题标题】:How can a directed cycle exist in the residual graph of a Bipartite Flow Network with a perfect matching?完美匹配的二分流网络的残差图中如何存在有向环?
【发布时间】:2014-04-08 03:26:42
【问题描述】:

我正在研究算法分析。我目前正在阅读Network Flow 算法。我正在考虑应用Network Flow 算法来寻找最低成本的bipartite matchings

  • G与对应的网络流G'
  • M 成为perfect matching 中的G
  • G<sub>M</sub> 成为与此匹配关联的residual graph

来自 Jon Kleinberg 和 Eva Tardos 的Algorithm Design 7.13,第 406 页,

Theorem 7.62 状态:

(7.62) 令 M 为完美匹配。如果GM中存在负成本有向循环C,则M不是最小成本

这个定理是有道理的,但是我很困惑perfect matchingbipartite flow network's residual graph 如何实际上包含一个循环。我能看到循环的唯一方法是是否涉及sinksource

但是在perfect matching 中,source 将不包含离开它的边缘,而sink 将不包含进入它的边缘。此外,内部节点中发生的循环似乎与Bipartite graph 的定义相矛盾。

有人可以在残差图中提供这样一个循环的例子吗?

【问题讨论】:

    标签: algorithm graph computer-science bipartite network-flow


    【解决方案1】:

    当然。考虑 a = 成本和 c = 容量的图表:

      a=3,c=1
    Ao----->oB
      \    ^
       \  /a=1,c=1
        \/
        /\
       /  \a=1,c=1
      /    v
    Co----->oD
      a=3,c=1
    

    所以显然有 2 个可能的最大流量。一个使用水平边缘,另一个使用对角线。

    对于沿水平方向的流动,我们有一个残差图:

      a=-3,c=1
    Ao<-----oB
      \    ^
       \  /a=1,c=1
        \/
        /\
       /  \a=1,c=1
      /    v
    Co<-----oD
     a=-3,c=1
    

    注意循环 B->A->D->C,容量为 1,成本为 -3 + 1 -3 + 1 = -4。

    对这个循环的直观解释是,在循环中沿着边缘流动的单位流量每增加一次 - 或者相反,沿着其边缘沿着相反方向流动的每一次减少 - 我们将减少 4 的总流动成本因为我们将用更便宜的对角线边缘的流量代替相对昂贵的水平边缘的流量。

    在最小成本流的增广路径算法中,我们会继续沿着这个循环推动 1 个单位的流,并最终沿着对角线得到一个新的、更便宜的流。这将提供新的残差图:

      a=3,c=1
    Ao----->oB
      ^    /
       \  /a=-1,c=1
        \/
        /\
       /  \a=-1,c=1
      v    \
    Co----->oD
      a=3,c=1
    

    现在循环是 A->B->C->D,成本为 3 - 1 + 3 - 1 = 4,因此沿对角线的最大流量是最小成本最大流量。

    【讨论】:

    • 很好的解释以及很好的图形示例。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    • 2013-11-29
    • 2020-05-15
    • 2020-05-12
    • 2017-09-03
    • 1970-01-01
    相关资源
    最近更新 更多