2

I am given a flow network with a source s, a sink t, and capacities on the edges. The problem is to determine the maximum possible flow that can go through a specific edge (u, v), under the constraint that the overall flow from s to t must remain at its maximum value.

In other words, among all possible maximum flows from s to t, I want to find the one in which the flow on edge (u, v) is as large as possible.

I have tried the following idea:

First, run a standard maximum flow algorithm (like Ford-Fulkerson, Edmonds-Karp, or Dinic's) on the original network to get some valid maximum flow f.

Then, I want to somehow modify this flow in such a way that:

The flow on edge (u, v) is increased (if possible),

The total flow from s to t remains unchanged (i.e., still maximum),

And the resulting flow is still valid (respects capacities and flow conservation at all intermediate nodes).

However, I’m struggling to figure out a clean way to do this. I understand that the residual graph is relevant here, but I’m not sure how to use it to push additional flow through (u, v) while preserving the total flow and the flow constraints.

Any ideas, algorithms, or references would be greatly appreciated!

1 Answers1

0

There might be a clean way to do this, but here is an inelegant and probably suboptimal solution using some heavy machinery.

Let's do binary search on $z$, the amount of flow through edge $(u,v)$ in the optimal solution. Given a threshold $\ell$, I'll describe a procedure to check whether $z \ge \ell$. Then you can repeatedly vary $\ell$ using binary search until you've identified $z$.

The procedure is to impose a "demand" on the edge $(u,v)$ that the flow be at least $\ell$, solve for the max flow, and check whether the value of the max flow with this demand is the same as the value of the flow without this demand. There are algorithms to compute the max flow subject to a demand / lower bound: see Section F.4 of Jeff Erickson's textbook on Algorithms; or Determine whether a flow can satisfy node demands in a directed acyclic graph, Maximum flow with edge demands: can't understand the example of transition to transformed graph in the lecture notes, Network flow - minimum flow through edge.

The total running time of this approach is the time to compute a max flow ($O(VE)$ with suitably efficient algorithms) times the log of the capacity of the edge $(u,v)$ (which upper bounds the number of iterations of binary search). There might be more efficient solutions.

D.W.
  • 167,959
  • 22
  • 232
  • 500