How can I find the minimum cut on a graph using a maximum flow algorithm?

后端 未结 7 1697
旧时难觅i
旧时难觅i 2020-12-07 13:27

I need to find the minimum cut on a graph. I\'ve been reading about flow networks, but all I can find are maximum flow algorithms such as Ford-Fulkerson, push-relabel, etc.

7条回答
  •  独厮守ぢ
    2020-12-07 14:01

    I don't want to be picky, but the suggested solution is not quite right as proposed.

    Correct solution: What you actually should be doing is bfs/dfs on the Residual-Network Gf (read it up on wikipedia) and marking vertices. And then you can pick those with marked from-vertex and unmarked to-vertex.

    Why 'following unsaturated edges' is not enough: Consider, that the flow algorithm saturates the edges as shown in the picture. I marked the vertices I'm visiting with the approach of "just following unsaturated edges" with green. Clearly the only correct min-cut is the edge from E-F, while the suggested solution would also return A-D (and maybe even D-E).

    Note that the vertex D would be visited by the dfs/bfs if we considered the Residual network instead, because there'd be an edge from E to D, thereby making the edge E-F the only one with a marked from-vertex and an unmarked to-vertex.

提交回复
热议问题