Algorithm 福特-富尔克森算法&;最大流最小割定理

Algorithm 福特-富尔克森算法&;最大流最小割定理,algorithm,graph-theory,ford-fulkerson,Algorithm,Graph Theory,Ford Fulkerson,嗨,我在学习福特·富尔克森算法时遇到了麻烦 根据该定理,最大流量应等于被切割边缘的总重量 然而,看到视频,我感到困惑。讲师说,根据福特-富尔克森算法,最大流量为19,但我找不到任何费用为19的削减。怎么了?切割意味着在源和漏之间定义切割。该切割不必是直线、曲线或任何其他形状即可 例如,在这里,我选择蓝色切割,这样的边缘AB,AD和CD通过切割。现在,如果我们看这些边的指定流,我们将它们相加,得到4+6+9=19 例如,另一种切割方式是绿色切割。这里我们有“向前”移动的边缘BT、AD和AC,以及“

嗨,我在学习福特·富尔克森算法时遇到了麻烦

根据该定理,最大流量应等于被切割边缘的总重量


然而,看到视频,我感到困惑。讲师说,根据福特-富尔克森算法,最大流量为19,但我找不到任何费用为19的削减。怎么了?

切割意味着在源和漏之间定义切割。该切割不必是直线、曲线或任何其他形状即可

例如,在这里,我选择蓝色切割,这样的边缘AB,AD和CD通过切割。现在,如果我们看这些边的指定流,我们将它们相加,得到4+6+9=19

例如,另一种切割方式是绿色切割。这里我们有“向前”移动的边缘BT、AD和AC,以及“向后”移动的边缘DC。因此,流量之和为9+6+9-5=19。因此,不管我们采取什么样的削减,总和总是19(当然,我们需要做适当的簿记,并减去相反方向的流量)

当然,您可以选择任何想要的切割(例如,在源之后或在排放之前的切割),如果算法正确,则所有这些切割的总和始终为19。这是合乎逻辑的,因为如果一个割流的流量大于(或小于)19,则存在一个割“前进”一个流量为19的节点,这意味着在该节点中,流已消失或出现

然而,它认为,如果你迭代所有可能的切割,那么最小切割就是容量总和最大化的切割。严格地说,我们可以迭代所有可能的切割,每次跟踪容量的总和,最后选择流量最小的一个。然而,如果简单地迭代所有切割,那么简单的方法将导致O(2n)算法,与福特-富尔克森算法相比,这当然是不可取的


您对最大流量最小切割定理的解释没有错

最小切割集由边缘SA和CD组成,总容量为19

要进行切割并计算成本,您可以:

  • 将所有顶点分为两组,即S和D,使源位于S,漏位于D
  • 剪切从S中的顶点到D中的顶点的所有边。请注意,不需要剪切从D到S的边
  • 将切割边的容量相加

  • 对于上面的min cut,S包含顶点S和c,D包含其余顶点。

    算法完成后,进行切割(不管是哪个切割),然后将通过切割的所有边的流相加,得出19.Ah。我注意到我错误地计算了削减产能的费用。。不流动。非常感谢你,希·吉瑟普。到底是怎么解决的?如果你指的是下面的答案,你可以通过勾选答案旁边的复选标记将问题标记为已解决。如果没有,也许你可以加上你自己的答案。将问题的标题标记为“已解决”并不是如何处理堆栈溢出。您可以阅读本文了解更多信息:同时,我已将您的问题回滚,以删除标题中的“已解决”。@JiseopHan您绝对可以计算容量削减的费用。