网络流量中的“增加的边缘”

时间:2018-08-17 15:51:41

标签: algorithm graph-theory network-flow ford-fulkerson

  

我们获得了网络流量以及网络中的最大流量。如果以任意正数增加容量,一条边将被称为增加边,这也会增加最大流量。

     

提供一种算法,该算法可以找到增加的边(如果存在)并以$ O(n ^ 2)$运行。

我想到了以下想法-

  • 找到图中的最小割线,这是使用福特-富克森算法给我们的。
  • 将切口左侧的所有边缘的容量增加1。
  • 在残留网络中运行BFS以查找是否存在改进的路径。如果存在的话,我们的优势将越来越大。为了找到它,我们必须将原始网络与新网络进行比较。 我们必须这样做n次,因为每次我们将容量增加1时就必须检查一条改进的路径。

对吗,我符合要求的运行时间吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为您只需要找到一条从源到汇的路径,如果最多增加一个节点的容量,则将成为增加路径。

首先找到可以使用剩余容量到达顶点的所有最佳路径。如果找到了接收器,那么开始时就没有最大流量。

然后找到所有其他顶点,但这些顶点的边缘处于最大容量。

然后尝试找到从这些顶点到汇点的扩展路径。

总的复杂度为O(N),所以无论您问您这个问题,可能还有其他想法。