Computer Science Stack Exchange is a question and answer site for students, researchers and practitioners of computer science. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Consider an undirected graph with a source and a sink vertex. We would like to remove minimum number of vertices in that graph to disconnect any path between source and sink.

Can we do this using say a max-flow, min-cut algorithm?

share|cite|improve this question
It should work (I assume all edges have the same capacity). – A.Schulz Dec 17 '12 at 9:26
Check this question on CSTheory – adrianN Sep 4 '14 at 12:15

(This answer was originally given as part of the question, with the goal of it being verified.)

My intuition tells me that we can use max-flow, min-cut algorithm to solve this problem:

  1. Replace each of the undirected edges with a pair of directed edges.
  2. Replace each vertex $v$ with two vertices $v_\text{in}$ and $v_\text{out}$ connected by an edge. all the incoming edges of $v$ will be connected with $v_\text{in}$, all the outgoing edges of $v$ will be connected with $v_\text{out}$.
  3. Try to find a minimum cut $M$. The edges of $M$ refer to the vertices that we need to remove.
share|cite|improve this answer
It's not clear to me why this would be guaranteed towork. What if the minimum cut of the modified graph includes some edges that are not between some $v_\text{in}$ and $v_\text{out}$, but are a directed edge from step 1 of the solution? Why do you think that each min-vertex-cut of the original graph will be in one-to-one correspondence with a min-edge-cut of the modified graph? I think a proof is needed. – D.W. Sep 5 '14 at 6:02
To support the answer by FrankW, please follow the below links, there is a paper from Abdol–Hossein Esfahanian supporting the replacement of an undirected edge with two directed edges. -… - – pawanp Oct 28 '15 at 23:53
@pawanp, I don't follow you. Of course you can replace an undirected edge with two directed edges. The question is not whether you can do it, but whether after applying the algorithm FrankW listed, whether the output is guaranteed to be a correct solution to the original problem. I don't see how NetworkX library man page is relevant. Regarding the paper: it's 14 pages long, with 11 different algorithms, most with no proof of correctness. Can you be more specific about exactly which part you see as relevant here? – D.W. Oct 29 '15 at 23:46

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.