Question: Find all minimal edge cuts of a graph.

An edge cut is a set of edges that, if removed from a connected graph, will disconnect the graph.

A minimal edge cut is an edge cut such that if any edge is put back in the graph, the graph will be reconnected.

A minimum edge cut is an edge cut such that there is no other edge cut containing fewer edges.

Note that a minimum edge cut is always minimal, but a minimal edge cut is not always minimum. 

For example: 

Fig. 1 shows the original graph.

Fig. 2 shows a minimum (and therefore minimal) edge cut.

Fig. 3 shows a minimal edge cut (which is not minimum).

 

 

I'd like to find all (not one) minimal edge cuts of the following graph G.

g:= "S~tIID@OI?{@n~V?goYEDOWd?qI?sJ?[C";
G := GraphTheory:-ConvertGraph(g);
GraphTheory:-DrawGraph(G)

How to find its all minimal edge cuts? I have searched Literature [1] for the corresponding polynomial algorithm (which you can view). But I don't see any code implementation. 

For the above graph (with 20 vertices and 72 edges), perhaps a violent search would be possible.

[1] Karzanov, A.V., Timofeev, E.A. Efficient algorithm for finding all minimal edge cuts of a nonoriented graph. Cybern Syst Anal 22, 156–162 (1986). https://doi.org/10.1007/BF01074775

Please Wait...