Skip to contents

Liu, Xiong, Shi, Shi and Wang rank a node by its degree plus the share it can claim of the importance of the lines that touch it. A line matters when its two endpoints reach far beyond it and when no triangle offers a way round it, so the importance of the line \(e_{mn}\) is \(I_{e_{mn}}=U/\lambda\) with \(U=(k_m-p-1)(k_n-p-1)\) and \(\lambda=p/2+1\), where \(p\) is the number of triangles one of whose edges is \(e_{mn}\). That importance is then split between the endpoints in proportion to their own degrees, \(W_{v_iv_j}=I_{e_{ij}}(k_i-1)/(k_i+k_j-2)\), and the score is \(L_{v_i}=k_i+\sum_{v_j\in\Gamma_i}W_{v_iv_j}\) over the open neighborhood \(\Gamma_i\). The measure is strictly two-hop local: only the degrees of a node, of its neighbors and the triangles on its incident lines enter, so it costs \(O(n\langle k\rangle^2)\) and its raw scores are component-local.

Usage

centrality_dil(x, ...)

Arguments

x

Network input accepted by centrality.

...

Additional arguments to centrality.

Value

Named numeric vector in input node order, one score per node, each at least the node's degree in the simple undirected skeleton.

Details

\(\lambda\) is \(p/2+1\), and reading it from a text layer gets it wrong. The stacked fraction extracts from the published PDF as \(\lambda=2p+1\), in Liu et al.'s original as much as in the Almasi and Hu (2019) reproduction of it. The page image shows \(p\) over \(2\); so does the paper's own worked example, in printed prose, on page 210: for the seven-line network of its Fig. 1(b) it writes \(p=1\), \(U=4\), "\(\lambda=1/2+1=1.5\)" and \(I_{e_{45}}=4/1.5\approx 2.6667\). The wrong reading returns \(4/3\) there. cograph reproduces \(8/3\).

\(U\) is never negative, so a score never falls below the node's degree. For a line \((i,j)\), \(j\) belongs to \(N(i)\) but to neither \(N(j)\) nor the intersection, so \(p=|N(i)\cap N(j)|\le k_i-1\) and both factors of \(U\) are at least zero. Since \(\lambda\ge 1\), every \(I\) and every \(W\) is at least zero and \(L_{v_i}\ge k_i\). Equality is common rather than exceptional: every line of a complete graph, of a star, or of any network whose lines all touch a degree-one node has \(U=0\), so \(K_n\) scores \(n-1\) at every node and a star scores its degree at every node.

The importance of a line is conserved when it is split. The two shares \((k_i-1)/(k_i+k_j-2)\) and \((k_j-1)/(k_i+k_j-2)\) sum to one, so \(\sum_i (L_{v_i}-k_i)=\sum_{e}I_e\): the network's total excess over degree is exactly the total importance of its lines. That identity is asserted over the package's whole verification collection.

An isolated \(K_2\) is the one undefined split, and it is resolved rather than refused. The denominator \(k_i+k_j-2\) vanishes only when \(k_i=k_j=1\), since both endpoints of a line have degree at least one – that is a two-node component – and there \(p=0\) and \(U=(1-0-1)(1-0-1)=0\), so the importance being divided is exactly zero while the split of it is \(0/0\). Because \(W\) is a share of \(I\), and the two shares sum to one wherever they are defined, every admissible split of an exactly zero importance gives an exactly zero contribution: the answer does not depend on resolving the indeterminacy. cograph therefore writes the share as zero, taking the test before the division so that no \(0/0\) is ever evaluated, and both nodes of a \(K_2\) score \(1\). The source says nothing about this case; the choice is cograph's, and it follows the precedent of centrality_lhc, whose \(0/0\) on a triangle-free graph is likewise written as zero because the denominator vanishes exactly where every numerator does. It deliberately does not follow centrality_iec, which returns NA on reducible input: there the closed form returns a finite number in place of an infinite one, so a value would be wrong, where here every candidate value is the same value.

Direction and weights are dropped, because the authors exclude them. Page 210 opens the derivation with "we assume that a network \(G=(V,E)\) is an undirected and unweighted network", and every quantity in the three equations is a count: a degree, a triangle census, a difference of integers. A directed, weighted or multigraph input is therefore projected onto its simple undirected skeleton – arcs symmetrized, weights and parallel edges collapsed to a single line, loops dropped – rather than refused, which is the convention every other undirected-domain measure in centrality already follows, and the projection is silent rather than warned for the same reason. There is no in/out/all reading to choose between, so the measure sits in the no-mode family and cutoff and invert_weights are ignored as well. The source states no normalization, so normalized = TRUE max-scales the finished vector as elsewhere in centrality.

Isolates, singletons and disconnected input need no special rule. An isolate has degree zero and an empty sum, so it scores zero; the single node of a one-node graph and every node of an edgeless graph score zero for the same reason, and an empty graph returns no scores. Because nothing in equations (1)-(3) reaches past a node's second neighbors, the raw scores are component-local: attaching a disjoint component leaves every existing score unchanged.

The source prints three numerical fixtures and all three are reproduced. Fig. 1 on page 210 prints \(I_{e_{45}}=9\) at \(p=0\) and \(8/3\) at \(p=1\); Fig. 2 on page 211 prints \(L_{v_2}=26/9\) and \(L_{v_5}=52/15\) on a 27-node tree; and Table 3 on page 217 prints a DIL value for every one of the 21 nodes of the ARPA network, whose topology is Fig. 6 on the same page. All 21 printed values are reproduced, and the edge list read off the figure is corroborated independently by the paper's own degree column. See the batch 50 published audit in the package's verification directory.

References

Liu, J., Xiong, Q., Shi, W., Shi, X. and Wang, K. (2016). Evaluating the importance of nodes in complex networks. Physica A: Statistical Mechanics and its Applications, 452, 209-219. Equation (1) and the definitions of \(U\), \(p\) and \(\lambda\) on page 210, equations (2) and (3) on page 211, the complexity claim in Table 4 on page 218, and the ARPA fixture in Table 3 and Fig. 6 on page 217. doi:10.1016/j.physa.2016.02.049 . The same three equations are reproduced as equations (7)-(9) by Almasi, S. and Hu, T. (2019). Measuring the importance of vertices in the weighted human disease network. PLoS ONE, 14(3), e0205936. doi:10.1371/journal.pone.0205936 .

See also

centrality_lhc and centrality_hcc for other degree-and-triangle hybrids, centrality_bridging for another measure that scores a node by the lines it carries, and list_centralities for the catalogue.

Examples

# Every line of a complete graph is shortcut by n - 2 triangles, so U is
# zero throughout and the score is the degree.
centrality_dil(igraph::make_full_graph(5))
#> 1 2 3 4 5 
#> 4 4 4 4 4 

# A triangle-free k-regular graph scores k + k(k-1)^2/2 at every node:
# 3 for a ring and 9 for the Petersen graph.
centrality_dil(igraph::make_ring(6))
#> 1 2 3 4 5 6 
#> 3 3 3 3 3 3 

# The path 1-2-3-4-5 scores 1, 2.5, 3, 2.5, 1: a line to a leaf carries
# no importance, and the two interior lines carry one each, split evenly.
centrality_dil(igraph::make_graph(c(1, 2, 2, 3, 3, 4, 4, 5),
                                  directed = FALSE))
#>   1   2   3   4   5 
#> 1.0 2.5 3.0 2.5 1.0 

# A triangle on two degree-three nodes is the case that needs
# lambda = p/2 + 1: I = 1 / 1.5 = 2/3, split evenly, so the two hubs
# score 3 + 1/3. Reading lambda as 2p + 1 would give 3 + 1/6.
centrality_dil(igraph::make_graph(c(1, 2, 1, 3, 2, 3, 1, 4, 2, 5),
                                  directed = FALSE))
#>        1        2        3        4        5 
#> 3.333333 3.333333 2.000000 1.000000 1.000000