1
$\begingroup$

While applying the algorithm to solve the max flow of the network with minimal requirements on edges, I have encountered a problem. The algorithm states:

For graph G

  • create an edge from target to source with infinite capacity
  • create two new source S' and target T'
  • for every demand d of an edge E we create two edges, one leading from the new source S' to the target node of the edge E and one to the new target T' from the source node of the edge E, both with capacity d. We subtract the capacity d from the capacity of the edge E.
  • find a saturating max flow from S' to T' (so all new edges are saturated)
  • transform graph back

The problem is, that we can find a saturating flow, even when there is no feasible solution. Let's see the following graph.

basic graph

It can be transformed to the following graph, then a max flow can be found.

transformed graph with max flow

So the result is the cycle saturated with flow 2.

But it is not feasible because of the edges with capacity 1. Why doesn't it work? What to do to repair the algorithm so it would work? I did not see any mentions of this problem in the papers.

$\endgroup$
2
  • 1
    $\begingroup$ One obvious problem is that there are no legal flows through that graph. Does the algorithm perhaps require the existence of at least one legal flow? What presentation of the algorithm are you working from? $\endgroup$
    – Ben Barber
    Commented Dec 11, 2014 at 10:41
  • $\begingroup$ @BenBarber It is stated in the algorithm (see paper here ), that if there is no feasible solution, the edges from/to S'/T' will not be saturated. But here it's not the case. Existence of one legal flow is not enough. Imagine the graph above with one more edge without requirements - that's a one legal flow you needed. $\endgroup$
    – Eramol
    Commented Dec 11, 2014 at 19:30

0

You must log in to answer this question.

Browse other questions tagged .