首页 > 解决方案 > 在图中寻找最短路径的“无法到达某些顶点”问题

问题描述

我正在寻找 2 个不同图表中的最短路径。我使用igraph库和shortest.paths函数在 R 中完成了它,然后我设法在 SQL Server 中运行相同的 R 代码。

使用下图,它可以正常工作并返回从 A 到 E 的最短路径:

在此处输入图像描述

但是对于下图,虽然使用相同的代码,但从 A 到 G 会失败:

在此处输入图像描述

在这种情况下,我没有收到任何错误,只是一条警告消息:

“在.Call(“R_igraph_get_shortest_paths”,图,as.igraph.vs(图,:在structural_properties.c:4517:无法到达一些顶点”

这两个图都在 R 中正确解决了寻找最短路径,但第二个在 SQL Server 中效果不佳,我不明白为什么。

在这里,我添加了加权图:

好的 坏的

这是我使用的代码。我使用v = v[-1]and~v = head(v,-1)因为我已经知道第一个和最后一个节点并且只想知道中间节点。

library(igraph); row.names(inp) = names(inp); m = as.matrix(inp); trasp = t(m); gr = graph.adjacency(trasp, mode = "directed", weighted = T); s = shortest_paths(gr, from = "A", to = "G"); v = as.vector(s$vpath[[1]]); v = v[-1]; v = head(v,-1); seq = names(inp)[v]; out = data.frame(seq)

谢谢你的帮助!

缺口

标签: rsql-servergraphshortest-pathvertices

解决方案


推荐阅读