【发布时间】:2019-11-04 12:51:43
【问题描述】:
有一个描述性示例的假设场景:我有一个由 10 个部分(顶点)组合在一起的模型。根据连接表的定义,每个部分都可以连接到其他部分(边)。
igraph 中有一个shortest.paths 函数。然而,这里的目的是找到一种方法来计算邻接矩阵中的最长路径。导致路径使用尽可能多的部分,理想情况下是全部,因此最终模型的任何部分都不会单独存在。 MWE如下:
library(igraph)
connections <- read.table(text="A B
1 2
1 7
1 9
1 10
2 7
2 9
2 10
3 1
3 7
3 9
3 10
4 1
4 6
4 7
7 5
7 9
7 10
8 9
8 10
9 10", header=TRUE)
adj <- get.adjacency(graph.edgelist(as.matrix(connections), directed=FALSE))
g1 <- graph_from_adjacency_matrix(adj, weighted=TRUE, mode="undirected")
plot(g1)
编辑: 结果应该是这样的:例如,如果模型的第一部分是 8,它可以与 9 或 10 组合。假设选择了 10,下一部分可以是 1、2、7 或 9。如果选择 9 作为接下来的后续可能是 1、2、3、7 或 8。如果选择了 8,则模型将完成,因为第 10 部分已经在使用中。那么问题将是如何找到一种方法/路径来组合尽可能多的部分,理想情况下是所有部分。后者只能从 6 或 5 开始。
【问题讨论】:
-
这个问题在很多方面都不清楚。由不同顶点组成的路径?它必须是某些顶点的最短路径吗?
-
对不起,含糊不清,这不是我的家乡。希望我的编辑有助于澄清。
标签: r igraph adjacency-matrix