2

How can I check that a graph network contains an unique maximal flow? Are there any polynomial-time algorithms which can do that? Thanks!

Description:
Find all cuts between source and sink. For every cut, if there are two edges with minimum capacity, then the maximum cannot be unique. Return false. If all cuts have a single minimum capacity, then return true.

But I need a more efficient algorithm.

I need to know if a graph network has an unique maximal flow (I can send maximal flow from source to sink in only one way).

General Grievance
  • 4,555
  • 31
  • 31
  • 45
  • You can search internet for the algorithm. Can you cite what have you tried... – TryinHard Dec 31 '13 at 14:14
  • 1
    Find all cuts between source and sink. For every cut, if there are two edges with minimum capacity, then the maximum cannot be unique. Return false. If all cuts have a single minimum capacity, then return true. But I need a more efficient algorithm. – user3149336 Dec 31 '13 at 14:15
  • Can you check this [link](http://en.wikipedia.org/wiki/Max-flow_min-cut_theorem#Linear_program_formulation) if it fits. It has a linear program formulation. – TryinHard Dec 31 '13 at 14:21
  • 1
    I need to know if a graph network has an ***unique*** maximal flow (I can send maximal flow from source to sink in only one way). – user3149336 Dec 31 '13 at 15:02

1 Answers1

-1

I'll suppose there isn't any vertex of degree 2 otherwise you can contract one of it's edge and update the capacity of the other one accordingly. Similar thing works for parallel edges. We can find an arbitrary maximum flow, then delete one edge from a flow in a graph. Check wether there still is another flow with same amount. If not, add back deleted edge and do same action for another edge. Unlike your previous attempt (finding all cuts, which can be exponential) this algorithm is polynomial in size of a gragh.

Saeed Amiri
  • 22,252
  • 5
  • 45
  • 83
  • There are all kind of algorithms that detect the maximum value of a flow, but I can't see any of them which find a flow path. How can I do that? – Carmen Cojocaru Jan 07 '14 at 18:26