Calculate graph global, local, or nodal efficiency

Share:

Description

This function calculates the global efficiency of a graph or the local or nodal efficiency of each vertex of a graph. The global efficiency is equal to the mean of all nodal efficiencies.

Usage

1
2
graph.efficiency(g, type = c("local", "nodal", "global"), weights = NULL,
  use.parallel = TRUE)

Arguments

g

The graph on which to calculate efficiency

type

A character string; either 'local', 'nodal', or 'global'

weights

A numeric vector of edge weights; if 'NULL', and if the graph has edge attribute 'weight', then that will be used. To avoid using weights, this should be 'NA'

use.parallel

Logical indicating whether or not to use foreach (default: TRUE)

Details

Global efficiency for graph G with N vertices is:

E_{global}(G) = \frac{1}{N(N-1)} ∑_{i \ne j \in G} \frac{1}{d_{ij}}

where d_{ij} is the shortest path length between vertices i and j.

Local efficiency for vertex i is:

E_{local}(i) = \frac{1}{N} ∑_{i \in G} E_{global}(G_i)

where G_i is the subgraph of neighbors of i, and N is the number of vertices in that subgraph.

Nodal efficiency for vertex i is:

E_{nodal}(i) = \frac{1}{N-1} ∑_{j \in G} \frac{1}{d_{ij}}

Value

A vector of the local efficiencies for each vertex of the graph (if type is 'local|nodal') or a number (if type is 'global').

Author(s)

Christopher G. Watson, cgwatson@bu.edu

References

Latora V., Marchiori M. (2001) Efficient behavior of small-world networks. Phys Rev Lett, 87.19:198701.

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.