如何使用r-igraph包获取图的最长流矩阵?

头牟

假设我使用igraph包创建了一个随机图:

n=6  # number of vertices 
F <- erdos.renyi.game(n, p.or.m=0.7, directed=FALSE)
m=ecount(F)
min = 1    # 1 km
max = 50   # 50 km 
F <- set.edge.attribute(F, name="distance", value=runif(m , min , max))
plot(F, layout=layout.fruchterman.reingold)
distances(F)
distances(F, weights = E(F)$distance)
distances(F, v = 1, to = 6, weights = E(F)$distance)
get.all.shortest.paths(F, 1, to = V(F)) 

我们知道distances(F, weights = E(F)$distance)给出与图内最短路径相关的流立方矩阵。

我想要与以下行相同的内容:

distances(F, weights = E(F)$distance) # matrix of shortests paths flows between any two vertices
distances(F, v = 1, to = 6, weights = E(F)$distance)
get.all.shortest.paths(F, 1, to = V(F)) # gives the shortests paths between 1 and other vertices

这次我需要最长的路径以及矩阵中关联的流。我不知道“ igraph”是否可行。

谢谢你的帮助 !

瑞·巴拉达斯(Rui Barradas)

如果首先计算最大距离,然后从最大距离中减去该距离作为权重,则该算法将计算最长路径。

以下两种方法是等效的。

library(igraph)

max_dist <- max(E(G)$distance)
all_shortest_paths(G, from = 1, to = V(G), weights = max_dist - E(G)$distance)
get.all.shortest.paths(G, 1, to = V(G), weights = max_dist - E(G)$distance)

笔记:

  1. 我将图形对象的名称更改为G,因为F它也是的符号FALSE
  2. 这次使用RNG设置来重新创建图形,以使结果可再现。

图形创建代码。

set.seed(1234)

n <- 6  # number of vertices 
G <- erdos.renyi.game(n, p.or.m = 0.7, directed = FALSE)
m <- ecount(G)
min <- 1    # 1 km
max <- 50   # 50 km 
G <- set.edge.attribute(G, name = "distance", value = runif(m , min , max))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 igraph 在 R 中创建循环图或邻接矩阵?

来自分类Dev

(R Igraph) 使用从属关系从邻接矩阵创建子图

来自分类Dev

如何在R(igraph包)中显示图的加权边的总和?

来自分类Dev

如何使用cleveref软件包获取乳胶图

来自分类Dev

反转igraph(R包)中的有向图(转置图)中的边

来自分类Dev

如何使用iGraph和RStudio在R中使用“ get.adjacency()”保存邻接矩阵?

来自分类Dev

在R中使用igraph的图相交

来自分类Dev

在R中使用igraph创建子图

来自分类Dev

在R中使用igraph的图相交

来自分类Dev

如何通过在igraph中指定节点坐标来从邻接矩阵创建图?

来自分类Dev

如何在R中使用igraph根据其长度选择图的某些路径

来自分类Dev

R igraph软件包中树形图条目的顺序不正确

来自分类Dev

R:如何多次使用lag comand与矩阵?

来自分类Dev

R如何使用循环函数创建矩阵

来自分类Dev

如何获取JanusGraph Gremlin返回的子图的邻接矩阵?

来自分类Dev

如何使用R绘制维恩图

来自分类Dev

如何使用R绘制维恩图

来自分类Dev

如何使用放大的文本保存R图

来自分类Dev

如何在R中使用此图?

来自分类Dev

R 如何使用 lapply 保存 xts 图

来自分类Dev

R'fdrtool'包:如何使用t统计

来自分类Dev

R'fdrtool'包:如何使用t统计

来自分类Dev

如何使用 R 上传/下载 Googledrive 包?

来自分类Dev

如何从R中的igraph对象获取树?

来自分类Dev

从平方矩阵使用R创建热图

来自分类Dev

从平方矩阵使用R创建热图

来自分类Dev

在R中使用igraph获取连接的组件

来自分类Dev

在 R 中使用 iGraph 获取路径的权重

来自分类Dev

R:保存多个igraph图