HiveBrain v1.2.0
Get Started
← Back to all entries
patternMinor

Algorithm to determine which vertices/edges would disconnect undirected graph if removed

Submitted by: @import:stackexchange-cs··
0
Viewed 0 times
edgesdisconnectgraphremovedalgorithmwouldundirecteddeterminewhichvertices

Problem

Is anyone aware of an algorithm to determine which vertices/edges would disconnect an undirected graph if removed? For all vertices/edges.

Of course I could run a BFS for each vertex and for each edge to test if the remaining graph would be connected. But is there anything more efficient?

In the end I would like to uniformly draw a vertex/edge out of those that would not disconnect the graph, to make simulations for fail-over routing in a computer network.

Solution

For vertices you could use articulation point algorithm that uses DFS and runs in $O(|V| + |E|)$ time. Similarly you could find bridges. Look here and here. But if there is no bridge and you are interested in cut-set (of edges) I guess you could use maximum flow minimum cut algorithm by assigning weight equal to 1 to each edge if they are not weighted. And finally if you are interested in subgraphs whose vertices are connected with each other (there is a path between each pair of vertices) then use an algorithm for computing strongly connected components.

Context

StackExchange Computer Science Q#78014, answer score: 5

Revisions (0)

No revisions yet.