Search code examples
algorithmgraphunique

Determining the uniqueness of a min-cut


Disclaimer: this was a homework problem. The deadline has passed now, so discussions can continue without needing to worry about that.

The problem I'm struggling with is to determine whether a particular minimum s-t cut in a graph G = (V, E) is unique. It's simple enough to find some min-cut using a max-flow algorithm as per this example, but how would you show it's the min-cut?


Solution

  • Ok, since you don't want the whole answer right away, I'm gonna give you a few hints. Read as many as you feel are necessary for you, and if you give up - go ahead and read them all.

    1:
    The cut is unique iff there is no other min-cut.

    2:
    If you succeed in finding a different min-cut, then the first min-cut isn't unique.

    3:
    Your link gave us one min-cut, which is all the reachable vertices from s in the residual graph. Can you think of a way to obtain a different cut, not necessarily the same?

    4:
    Why did we take those vertices reachable from s in particular?

    5:
    Maybe we can do something analogous from t?

    6:
    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).

    7:
    This group is also a min-cut (or actually S \ that group, to be precise).

    8 (final answer):
    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.