跳到内容

这些函数计算网络的全局或平均局部效率,或者网络中每个顶点的局部效率。 请参阅下面的定义。

用法

global_efficiency(graph, weights = NULL, directed = TRUE)

local_efficiency(
  graph,
  vids = V(graph),
  weights = NULL,
  directed = TRUE,
  mode = c("all", "out", "in", "total")
)

average_local_efficiency(
  graph,
  weights = NULL,
  directed = TRUE,
  mode = c("all", "out", "in", "total")
)

参数

graph

要分析的图。

weights

边的权重。 所有边的权重必须为非负数;此外,没有边的权重可以为 NaN。 如果它为 NULL(默认值)并且图具有 weight 边属性,则会自动使用它。

directed

逻辑标量,是否考虑有向路径。 对于无向图,忽略此参数。

vids

将对其进行计算的顶点的顶点 ID。 仅适用于局部效率计算。

mode

指定如何在有向图中定义顶点的局部邻域。“out”仅考虑出邻居,“in”仅考虑入邻居,“all”同时考虑两者。

对于 global_efficiency(),将图的全局效率作为单个数字。 对于 average_local_efficiency(),将图的平均局部效率作为单个数字。 对于 local_efficiency(),将每个顶点的局部效率作为向量。

全局效率

网络的全局效率定义为所有顶点对之间反向距离的平均值。

更准确地说

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

其中 \(n\) 是顶点的数量。

彼此无法到达的顶点对之间的反向距离被认为是零。 对于少于 2 个顶点的图,返回 NaN。

局部效率

网络围绕顶点的局部效率定义如下:我们移除该顶点,并计算其邻居通过网络其余部分的距离(最短路径长度)。 移除的顶点周围的局部效率是这些距离的倒数的平均值。

彼此无法到达的两个顶点之间的反向距离被认为是零。 按照惯例,顶点周围的局部效率,如果其邻居少于两个,则被认为是零。

平均局部效率

网络的平均局部效率只是所有顶点的局部效率的算术平均值;请参阅上面局部效率的定义。

参考文献

V. Latora 和 M. Marchiori:小世界网络的有效行为,物理。 Rev. Lett. 87, 198701 (2001)。

I. Vragović、E. Louis 和 A. Díaz-Guilera,规则和复杂网络中信息传输的效率,物理。 Rev. E 71, 1 (2005)。

示例


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