4

Let G = (V, E) be a network with s and t being the source and the sink. Let f be a maximum flow in G. Find an algorithm that determines whether there exists a unique min-cut in G.

I have managed to find a similar question on this site:

Determining the uniqueness of a min-cut

A summary of the answer given there:

Find all the vertices reachable from s in the residual graph and we've found a min-cut (S,T) in G.

Look at the same residual graph, starting at t. Look at the group of vertices reachable from t in the reverse direction of the arrows (meaning all the vertices which can reach t).

This group is also a min-cut.

If that cut is identical to your original cut, then there is only one. Otherwise, you just found 2 cuts, so the original one can't possibly be unique.

I don't understand why if the cut is identical to the original cut then the cut is unique. Who can promise us that there is no other min-cut ?

Thanks in advance

Community
  • 1
  • 1
Robert777
  • 801
  • 3
  • 12
  • 24

4 Answers4

7

Actually, I don't quite understand that solution. But in the original question, the second answer provided by davin is absolutely correct.

I just copy and paste it here

Given a minimum S-T cut, (U,V) with cut-edges E', we make one simple observation:
If this minimum cut is not unique, then there exists some other minimum cut with 
a set of cut-edges E'', such that E'' != E'.

If so, we can iterate over each edge in E', add to its capacity, recalculate the
max flow, and check if it increased.

As a result of the observation above, there exists an edge in E' that when
increased, the max flow doesn't increase iff the original cut is not unique.

some explanation of my own:

What you need to prove actually is

there exists an edge in E' that when increased, the max flow doesn't increase
<=>
the original cut is not unique

=>:
You increase the capacity of edge e by 1, calculate the new max flow and it remains the same, which means that e is not in the new min-cut. (if e is in, according to the property of min-cut, f(e)=capacity of e, which leads to an increase). Since e is not in the new min-cut, it is also a min-cut of the original graph which has the same volume with the cut we know.Thus, the original cut is not unique.

<=:
The original cut is not unique(Let's call them E and E'), which means you can find an edge e that is in E but not in E'. Then you just increase the capacity of e by 1. When calculating the min-cut of the new graph, E' is already there. Since E' doesn't contain edge e, max flow remains the same with no doubt.

Hope you understand :)

laike9m
  • 18,344
  • 20
  • 107
  • 140
  • 1
    Why do we need to increase the capacity of each edge in `E'` to check if the flow increases. If the min cut is unique, it means all other cuts can allow more flow than `E`. We can increase capacity of just one edge in `E'` and check if it gets though to `t`. If it does, then `E'` is the min-cut, otherwise, its not. – Muhammad Adeel Zahid Apr 21 '17 at 23:17
  • @MuhammadAdeelZahid Because if we increase the capacity of only one edge in E' we won't cover all the cases. Suppose we increase the capacity of one edge in E' by one unit of flow. Then we run the max flow algorithm on our new graph G'' and the max flow increases. It could be that we got lucky and chose an edge which could bear an additional unit of flow if given the capacity to do so. But there could still be another edge e'' in E' such that bumping the capacity up by 1 does not permit an additional unit of flow to move through the graph. – ClownInTheMoon Oct 26 '17 at 17:19
1

another option to prove by contradiction the first way: ->: let's say there's a single minimal (S,T) cut with cut edges E'. After increasing the capacity of edge e which belongs to E' by 1 and finding that the max flow remains the same, leads that e is not in the new min-cut. (if e is in E', according to the property of min-cut the max flow would be increased). However at the beginning we said the e is in E' - contradiction

xYaelx
  • 144
  • 1
  • 1
  • 11
1

The algorithm that you talked about is more efficient than the suggested ones. The algorithm:

For graph G=(V,E)

  1. Find maximum flow in the graph, and let R be the last residual graph.
  2. Run BFS from s (find nodes reachable from s), lets call them X
  3. Run BFS from t with reversed edges (find nodes that there is a path to t), lets call them Y.
  4. if X + Y = V ('+' as in union) return TRUE, else FALSE

A short explanation:

in step 2 we find the nodes that determine the minimum cut (X, V/X).X is the set of all nodes reachable from s in our last residual graph. In step 3 we find the set of nodes from which t is reachable in the last residual graph. This set defines the cut (V-Y,Y) which is the minimum-cut closest to t. In step 4, is go the same cut from both ends (X + Y = V), then the graph has a unique minimum cut.

The complexity is mainly finding the maximum flow. With Edmonds Karp O(|E|^2|V|), and BFS O(|E| + |V|).

The complexity of the suggested answer will be O(|V||E|^3).

sheldonzy
  • 5,505
  • 9
  • 48
  • 86
  • 1
    out of curiosity, if the only saturated edges are the ones in the min-cut then there is a unique min-cut am I right? – BOB123 Jan 28 '20 at 20:39
0

So far, all discussion of the algorithm presented in the original post (both here an d in the post from which it is copied) seem to stop short of actually proving that if the two minimum cuts are the same, then it is the unique minimum cut. But this isn't hard!

OK, so what are these two minimum cuts? We run a maximum flow algorithm and look at the residual graph. The first cut is (S,T=V-S) where S is the set of all nodes that can be reached from the source using only edges with residual capacity. The second cut is (V-T,T) where T is the set of all nodes that can reach the sink using only edges with residual capacity.

If these two cuts are different, then clearly there is more than one minimal cut. But if they are the same, then we can use the technique described by laike9m to show that this is the only minimum cut. Why? Well, by the definitions of S and T in the previous paragraph, each edge e=(v0->v1) in the cut comes with a path s->v0 and a path v1->t that have residual capacity. Thus, if we increase the capacity of e, we know that we will increase the maximum flow. Since this is true for every edge e in the cut, this means that this minimum cut is unique.