Skip to main content
`Ctrl`+`K`

# Cores

Find the k-cores of a graph.

The k-core is found by recursively pruning nodes with degrees less than k.

See the following references for details:

An O(m) Algorithm for Cores Decomposition of Networks Vladimir Batagelj and Matjaz Zaversnik, 2003. https://arxiv.org/abs/cs.DS/0310049

Generalized Cores Vladimir Batagelj and Matjaz Zaversnik, 2002. https://arxiv.org/pdf/cs/0202039

For directed graphs a more general notion is that of D-cores which looks at (k, l) restrictions on (in, out) degree. The (k, k) D-core is the k-core.

D-cores: Measuring Collaboration of Directed Graphs Based on Degeneracy Christos Giatsidis, Dimitrios M. Thilikos, Michalis Vazirgiannis, ICDM 2011. http://www.graphdegeneracy.org/dcores_ICDM_2011.pdf

Multi-scale structure and topological anomaly detection via a new network statistic: The onion decomposition L. Hébert-Dufresne, J. A. Grochow, and A. Allard Scientific Reports 6, 31708 (2016) http://doi.org/10.1038/srep31708

`core_number`(G) | Returns the core number for each node.
`k_core`(G[, k, core_number]) | Returns the k-core of G.
`k_shell`(G[, k, core_number]) | Returns the k-shell of G.
`k_crust`(G[, k, core_number]) | Returns the k-crust of G.
`k_corona`(G, k[, core_number]) | Returns the k-corona of G.
`k_truss`(G, k) | Returns the k-truss of `G`.
`onion_layers`(G) | Returns the layer of each vertex in an onion decomposition of the graph.