Overview
The k-Edge Connected Components algorithm aims to find groups of nodes that have strong interconnections based on their edges. By considering the connectivity of edges rather than just the nodes themselves, the algorithm can reveal clusters or communities within the graph where nodes are tightly linked to each other. This information can be valuable for various applications, including social network analysis, web graph analysis, biological network analysis, and more.
Related material of the algorithm:
- T. Wang, Y. Zhang, F.Y.L. Chin, H. Ting, Y.H. Tsin, S. Poon, A Simple Algorithm for Finding All k-Edge-Connected Components (2015)
Concepts
Edge Connectivity
The edge connectivity of a graph is a measure that quantifies the minimum number of edges that need to be removed in order to disconnect the graph or reduce its connectivity. It represents the resilience of a graph against edge failures. Given a graph G = (V, E), G is k-edge connected if it remains connected after the removal of any k-1 or fewer edges from G.
The edge connectivity can also be interpreted as the maximum number of edge-disjoint paths between any two nodes in the graph. If the edge connectivity of a graph is k, it means that there are k edge-disjoint paths between any pair of nodes in the graph.
Below shows a 3-edge connected graph and the edge-disjoint paths between each node pair.
Edge-disjoint paths are paths that do not have any edge in common.
k-Edge Connected Components
Instead of determining whether the entire graph G is k-edge connected, the k-Edge Connected Components algorithm is interested in finding the maximal subsets of nodes Vi ⊆ V, where the subgraphs induced by Vi are k-edge connected.
For example, in social networks, finding a group of people who are strongly connected is more important than computing the connectivity of the entire social network.
Considerations
- For k = 1, this problem is equivalent to finding the connected components of G.
- The k-Edge Connected Component algorithm ignores the direction of edges but calculates them as undirected edges.
Syntax
- Command:
algo(kcc)
- Parameters:
Name |
Type |
Spec |
Default |
Optional |
Description |
---|---|---|---|---|---|
k | int | >1 | / | No | There are k edge-disjoint paths between any pair of nodes in the k-edge connected components |
Examples
The example graph is as follows:
File Writeback
Spec |
Content |
Description |
---|---|---|
filename | _id ,_id ,... |
The IDs of nodes that are contained in each k-edge connected component |
algo(kcc).params({
k: 3
}).write({
file:{
filename: 'result'
}
})
Results: File result
F,G,I,H,
J,K,M,L,