Skip to contents

Computes PageRank probabilities on the graph whose vertices represent input edges, then aggregates them at the original endpoints. On directed inputs, edge e can lead to f when the target of e is the source of f. On undirected inputs, distinct edge states are adjacent when they share an endpoint, following Kosa et al.'s clarification. This uses one state per undirected edge. A pair sharing both endpoints is adjacent once.

Usage

centrality_linerank(
  x,
  damping = 0.85,
  linerank_aggregation = "probability",
  ...
)

Arguments

x

Network input accepted by centrality.

damping

Edge-walk continuation probability in [0,1), default 0.85.

linerank_aggregation

Either probability (default) or weight.

...

Additional arguments to centrality.

Value

Named numeric vector in input node order.

Details

Line-graph transition weights are products of original edge weights. Row normalization cancels the starting edge weight, so products need not be formed. Uniform teleportation uses probability 1-damping; a dangling edge state also redistributes uniformly. The latter is an explicit cograph PageRank convention because the source does not pin dangling behavior. Damping accepts [0,1), default 0.85; zero is a limit extension.

Default linerank_aggregation = "probability" sums stationary edge probabilities, following the definition's prose and the later study. Raw scores then sum to two on a graph with edges. "weight" additionally multiplies each probability by its original edge weight, matching the weighted incidence aggregation in Kang et al.'s Algorithm 2. These conventions differ for weighted inputs and are not interchangeable. The original pseudocode also has inconsistent row/column normalization; this implementation follows its random-walk definition, corroborated by the later paper, rather than claiming literal pseudocode equivalence.

Retains direction, loops and remaining parallel edges as distinct states. A directed loop can transition to itself. Undirected line graphs exclude self transitions. Both aggregation choices count endpoint incidences, so an original loop contributes twice at its node. These loop conventions are explicit extensions. Generic loops and simplify apply first. Finite nonnegative weights are supported; zero-weight edges are absent. weighted = FALSE uses unit edge weights. Generic mode, shortest-path inversion and cutoff do not affect the result. Isolates score zero, edgeless inputs return zeros, and empty inputs return no scores.

The native dense line-graph solve costs O(m cubed) time and O(m squared) memory for m retained edges; this is not the authors' distributed large-graph implementation. The measure must be requested explicitly. Unresolvable transition ranges, unstable systems and overflowing raw weighted aggregation raise errors. Maximum normalization supports raw weight overflow by scaling weights first; tiny ratios can underflow.

References

Kang, U., Papadimitriou, S., Sun, J., & Tong, H. (2011). Centralities in Large Networks: Algorithms and Observations. SDM, 119-130. Definitions 2-4, Algorithm 2. doi:10.1137/1.9781611972818.11 . Kosa, B., Balassi, M., Englert, P., & Kiss, A. (2015). Betweenness versus Linerank. Computer Science and Information Systems, 12(1), 33-48, section 4. doi:10.2298/CSIS141101092K .

Examples

centrality_linerank(igraph::make_ring(4))
#>   1   2   3   4 
#> 0.5 0.5 0.5 0.5