【问题标题】:Given a Flow Network and an Edge e, Describe an Algorithm that Determines Whether e Crosses Some Minimum Cut给定一个流网络和一条边 e,描述一个确定 e 是否穿过某个最小割的算法
【发布时间】:2023-03-06 22:55:01
【问题描述】:

给定一个流网络 G = (V,E),其源为 s,汇为 t,边 e = (u,v),描述一种算法来确定边 e 是否穿过某个最小割 (S,T )。

我的第一个想法是计算最大流量 f,然后将 e 的容量减少一些 a > 0。然后我们检查残差图是否有从 s 到 t 的路径(这意味着我们可以增加流量 f更多)。

现在,如果没有从 s 到 t 的路径,我们可以确定 e 不会越过任何最小割。

问题出在另一个方向。如果有一条从 s 到 t 的路径,那可能是因为我们在选择 a > 0 时不小心创建了一个新的 e 交叉的最小割。

那么如何选择足够小的 a > 0 呢?

【问题讨论】:

    标签: algorithm graph graph-algorithm flow max-flow


    【解决方案1】:

    这是一个很酷的问题。

    " 我的第一个想法是计算最大流量 f,然后将 e 的容量减少一些 a... "

    你是说增加吗?因为如果你减少容量,流量就不会增长..

    任何方式:

    运行算法以找到最大流量并假设流量为 F。

    检查e上流过的流量是否等于它的容量,如果不是,则返回false。

    这是否意味着如果相等,e 必须越过某个最小切线?

    假设e=(u,v):由于edges规则,进入u的流必须完全离开,

    这意味着对于您将进行的每一次剪辑,都会有一些 ecrooses it and e=(x,y),

    我们将有一些路径从 u->v....->x 或 y->....u->v.

    如果我们将删除这条边(e),并且流量将减少,这意味着我们无论如何都不能 像以前一样返回到达 x 的流量(或离开 y 现在无法找到通往水槽的方式的流量)。这意味着 e 在某个最小剪辑中。

    如果流量没有改变,那只意味着我们找到了另一种方式来返回我们“丢失”的流量,这意味着 e 不属于任何最小切割,因为它不影响任何最小切割容量 whitch 等于最大流量。

    您对问题的直觉很好,但请注意它不会起作用,因为 e 的增加/减少可能导致没有办法,因为有一个简单的示例,您更改了 e 的容量并且仍然没有从 s 的路径到残差网络中的t,但e仍然属于某个最小割。

    【讨论】:

      猜你喜欢
      • 2023-03-28
      • 2022-12-14
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多