These functions calculate the global or average local efficiency of a network, or the local efficiency of every vertex in the network. See below for definitions.

## Arguments

- graph
The graph to analyze.

- weights
The edge weights. All edge weights must be non-negative; additionally, no edge weight may be NaN. If it is

`NULL`

(the default) and the graph has a`weight`

edge attribute, then it is used automatically.- directed
Logical scalar, whether to consider directed paths. Ignored for undirected graphs.

- vids
The vertex ids of the vertices for which the calculation will be done. Applies to the local efficiency calculation only.

- mode
Specifies how to define the local neighborhood of a vertex in directed graphs. “out” considers out-neighbors only, “in” considers in-neighbors only, “all” considers both.

## Value

For `global_efficiency()`

, the global efficiency of the graph as a
single number. For `average_local_efficiency()`

, the average local
efficiency of the graph as a single number. For `local_efficiency()`

, the
local efficiency of each vertex in a vector.

## Global efficiency

The global efficiency of a network is defined as the average of inverse distances between all pairs of vertices.

More precisely:

$$E_g = \frac{1}{n (n-1)} \sum_{i \ne j} \frac{1}{d_{ij}}$$

where \(n\) is the number of vertices.

The inverse distance between pairs that are not reachable from each other is considered to be zero. For graphs with fewer than 2 vertices, NaN is returned.

## Local efficiency

The local efficiency of a network around a vertex is defined as follows: We remove the vertex and compute the distances (shortest path lengths) between its neighbours through the rest of the network. The local efficiency around the removed vertex is the average of the inverse of these distances.

The inverse distance between two vertices which are not reachable from each other is considered to be zero. The local efficiency around a vertex with fewer than two neighbours is taken to be zero by convention.

## Average local efficiency

The average local efficiency of a network is simply the arithmetic mean of the local efficiencies of all the vertices; see the definition for local efficiency above.

## References

V. Latora and M. Marchiori: Efficient Behavior of Small-World Networks, Phys. Rev. Lett. 87, 198701 (2001).

I. Vragović, E. Louis, and A. Díaz-Guilera, Efficiency of informational transfer in regular and complex networks, Phys. Rev. E 71, 1 (2005).

## Related documentation in the C library

`igraph_global_efficiency()`

, `igraph_local_efficiency()`

, `igraph_average_local_efficiency()`

.

## Examples

```
g <- make_graph("zachary")
global_efficiency(g)
#> [1] 0.4920083
average_local_efficiency(g)
#> [1] 0.752932
```