使用igraph可从图中的每个节点到达的最大节点数

时间:2019-09-16 15:42:01

标签: r igraph

我想使用R中的igraph查找图中每个节点可以达到的最大节点数。

例如,我有以下图形:

IGRAPH fb9255f DN-- 4 3- + attr:名称(v / c),X(e / l) + fb9255f(顶点名称)的边: 1 1-> 2 2-> 3 2-> 4

Resulting graph

例如,对于节点1,我想获取所有可能的列表 可以从中到达节点(不仅使用一跳)。

在这种情况下,对于节点1,它将为:[2,3,4]

我已经阅读了igraph文档,但是看不到任何可以提供帮助的功能。

任何帮助将不胜感激。 谢谢

卡洛斯

1 个答案:

答案 0 :(得分:1)

您可以使用subcomponent函数进行计算。

由于您未提供任何数据,因此将举一个任意示例进行说明。

## Example graph
library(igraph)
set.seed(123)
g = erdos.renyi.game(15, 0.15, directed = TRUE)
plot(g)

A directed graph

subcomponent为您提供了所有可到达的节点。在这里,我假设您正在使用有向图,并且通过沿着有向边前进就可以实现可达。您可以通过将mode的参数更改为subcomponent来更改此设置。

sort(subcomponent(g, 2, mode="out"))
+ 7/15 vertices:
[1]  2  5 10 12 13 14 15

如果只希望可以达到的节点数,则取长度

length(subcomponent(g, 2, mode="out"))
[1] 7