如何解决R igraph:仅计算所有顶点对的子集的最短路径
我有一个非常大的 igraph 对象,因此计算最短路径需要很长时间。
我只对一组非常小的顶点对之间的最短路径的长度感兴趣。
假设(无向)图由 10,000 个顶点组成,有 500,000 条边,10,000 * 10,000 / 2
对顶点有最短路径,但我只需要 10,000 对顶点之间的路径。
是否有可能不仅定义顶点,而且定义顶点对(意思是:要计算的路径的起点和终点)?
解决方法
由于您有偶数个顶点要配对,您可以将所有顶点分成两组,即偶数或奇数,如下所示
v_even <- subset(V(g),!V(g) %% 2)
v_odd <- subset(V(g),!!V(g) %% 2)
然后使用 shortest_paht
运行 mapply
以生成最短路径
> mapply(function(x,y) shortest_paths(g,x,y)$vpath,v_even,v_odd)
[[1]]
+ 3/10 vertices,from 7125d30:
[1] 2 6 1
[[2]]
+ 2/10 vertices,from 7125d30:
[1] 4 3
[[3]]
+ 2/10 vertices,from 7125d30:
[1] 6 5
[[4]]
+ 5/10 vertices,from 7125d30:
[1] 8 5 6 2 7
[[5]]
+ 3/10 vertice
数据
set.seed(1)
g <- sample_gnm(10,15)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。