Digraphs icon indicating copy to clipboard operation
Digraphs copied to clipboard

Implement `DigraphEdgeConnectivity` and `DigraphArcConnectivity`

Open reiniscirpons opened this issue 5 months ago • 4 comments

A cut set of a digraph D is any set of edges whose removal disconnects it. The edge connectivity of D is the minimum size of any cut set of D. It would be nice to have an edge-based counterpart to VertexConnectivity (see #94 , if we ever get it merged :D). Using the DigraphMaximumFlow function, as a consequence of the max-flow min cut theorem, we could naively compute the edge connectivity as the minimum of Sum(DigraphMaximumFlow(D, u, v)[u]) where u, v range over all pairs of vertices of D, but this might be a bit too slow (because the maximum flow computation already takes O(V^2 * E) time, where V is the number of vertices and E is the number of edges).

The notes by Abdol-Hossein Esfahanian [1] have quite a detailed exposition detailing various optimizations on top of this to reduce the number of max-flow calls and also covers arc-connectivity (strong edge-connectivity), so could be a good starting point.

1: "Connectivity Algorithms" by Abdol-Hossein Esfahanian's https://www.cse.msu.edu/~cse835/Papers/Graph_connectivity_revised.pdf

reiniscirpons avatar Sep 30 '25 13:09 reiniscirpons

I'd like to attempt this if that's okay :)

RheyaM avatar Oct 13 '25 14:10 RheyaM

@RheyaM Go for it! Happy to help if you have any questions.

reiniscirpons avatar Oct 13 '25 14:10 reiniscirpons

@RheyaM For large examples I would suggest perusing houseofgraphs.org, you can use the quite thorough search function on the website. It allows to search for graphs that have edge connectivity greater than a certain number or declaring it to be an "invariants to be 'of interest'", which means only graphs for which this property is in some sense interesting are displayed. Could be good to find biggish or complex graphs to test on. For example, the largest example (by number of vertices) for which the edge-connectivity is known I could find is https://houseofgraphs.org/graphs/51174 .

To get the graphs from the website into gap you can download the Graph6 string from the website and use the DigraphFromGraph6String function of Digraphs to convert the string into a digraph.

reiniscirpons avatar Nov 12 '25 15:11 reiniscirpons

@reiniscirpons Thank you, will do!

RheyaM avatar Nov 12 '25 15:11 RheyaM