Skip to contents

Liu and Zheng's hybrid characteristic centrality adds a local and a global characteristic on the same scale: \(HCC(u)=k^{ex}(u)/k^{ex}_{max}+pos(u)/pos_{max}\). The local half is the extended degree \(k^{ex}(u)=\delta k(u)+(1-\delta)\sum_{v\in\phi(u)}k(v)\), the node's own degree blended with its neighbors'; the global half is the E-shell position index, the round in which a repeated minimum-extended-degree peel removes the node. Both terms are divided by their largest value, so each lies in \([0,1]\) and the raw score lies in \([0,2]\).

Usage

centrality_hcc(x, ...)

Arguments

x

Network input accepted by centrality.

...

Additional arguments to centrality, including hcc_delta.

Value

Named numeric vector in input node order.

Details

The E-shell hierarchy decomposition is not a k-shell decomposition, although the Centrality Zoo describes it as "a variant of k-shell decomposition". There is no outer loop over a shell index and no repeat-until-stable inner loop: each round removes exactly the set of remaining nodes attaining the current minimum extended degree, recomputes the extended degrees on what is left, and tags the removed nodes with the round number. The position indexes therefore run \(1,\dots,pos_{max}\) with every value attained, rather than being shell numbers, and the two procedures disagree on the source's own figure 1.

The source's printed algorithm contains a typo, and cograph implements the correction its own tables require. Step 3 of the E-shell procedure prints \(S_p=\arg\max_{u\in G_p}\{k^{ex}(u)\}\) while the same sentence calls \(S_p\) "the set of minimum nodes", the preceding paragraph says "the nodes with minimum extended degree are found and deleted", and the paper's table 2 heads its column "Minimum extended degree" with the increasing values 2, 2.5, 3, 4.5, 5, 6. The minimum reading reproduces every printed row; the literal maximum reading is a different measure.

The peel recomputes but equation (4) does not. Step 6 updates the extended degrees on the residual graph after every removal, which is what the printed table 2 minima require. The \(k^{ex}(u)\) of equation (4), and the \(k^{ex}_{max}\) it is divided by, are nevertheless the original-graph values: the paper's own worked line \(HCC(a)=4.5/11+4/6\) uses the original 4.5 and the original maximum 11, and its node \(d\) settles the question, since its original 9.5 gives the printed 1.86 while its residual 6 at removal time would give 1.55.

Raw scores are not component-local. \(k^{ex}_{max}\) and \(pos_{max}\) are single global constants, so adding a disconnected component – an isolate included – can change every score, and not merely by a common factor, because the two terms rescale independently. The source does not discuss disconnected graphs.

Degenerate cases are cograph decisions, not the source's. An isolate has extended degree zero, which for \(\delta\in[0,1]\) is the global minimum, so it always leaves in the first round with \(pos=1\). On an edgeless graph every extended degree is zero and \(k^{ex}_{max}=0\), making the first term \(0/0\); it is written as zero, which leaves the E-shell term alone. One round then removes everything, so every node of an edgeless graph – a singleton included – scores exactly 1. Empty graphs return no scores.

hcc_delta defaults to the source's 0.5 and is restricted to the source's stated domain \([0,1]\), where \(\delta=1\) recovers the classical degree and \(\delta=0\) drops the node's own degree entirely. Values outside that interval are refused with a cograph_bad_parameter error rather than extended: they make the extended degree negative on some graphs, and then equation (4) divides by a nonpositive maximum, which the source never contemplates.

Uses the simple undirected unweighted skeleton, the source's stated domain: either arc creates one edge, parallel edges count once and loops are removed. Edge weights, mode, cutoff and path-weight inversion are ignored, and directed input is symmetrized rather than read as a directed case, which the source does not define. The source states no further normalization; normalized = TRUE max-scales the finished vector as elsewhere in centrality, on top of the two divisions equation (4) already performs. Cost is one dense matrix-vector product per peeling round, so \(O(n^3)\) in the worst case rather than the \(O(n+m)\) a sparse min-heap would give.

Numerical verification establishes agreement with the definition and with the values the source prints for its figure 1, not parity with author software, which does not exist, and not any claim about spreading performance.

References

Liu, J. and Zheng, J. (2023). Identifying important nodes in complex networks based on extended degree and E-shell hierarchy decomposition. Scientific Reports, 13, 3197. Equations (3) and (4) and the eight-step E-shell procedure on page 3, with the worked example on page 4. doi:10.1038/s41598-023-30308-5 .

See also

centrality_ehcc for the neighborhood sum of this score, centrality_dkgm for another shell-and-degree hybrid, and list_centralities for the catalogue.

Examples

# Every node of a regular graph has the same extended degree, so one
# round removes the whole graph and every node scores 1 + 1 = 2.
centrality_hcc(igraph::make_ring(6))
#> 1 2 3 4 5 6 
#> 2 2 2 2 2 2 

# A star peels its leaves first and its center second.
centrality_hcc(igraph::make_star(6, mode = "undirected"))
#>   1   2   3   4   5   6 
#> 2.0 1.1 1.1 1.1 1.1 1.1 

# delta = 1 is the classical degree in the extended-degree slot.
centrality_hcc(igraph::make_star(6, mode = "undirected"), hcc_delta = 1)
#>   1   2   3   4   5   6 
#> 2.0 0.7 0.7 0.7 0.7 0.7