Python 中是否有 igraph 函数用于返回 shortest_path 结果的索引
Is there an igraph function in Python for returning the indexes of shortest_path results
我有一个无向图,我知道它具有针对特定点集(例如 105 和 149)的有效最短路径。
我不确定如何解释结果以获取 shortest_paths 函数遍历的节点的索引。
如果从 105 开始的路径经过:117、123、29、35、56、78 并在 149 终止。如何检索索引数组 [117、123、29、35、56、78 ]?
我的代码是这样的:
path = G.shortest_paths(source=[G.vs[105]], target=[G.vs[149]], mode='all')
我的 path
对象 returns 一个类似 [[6]]
的数组。
看起来 igraph.shortest_paths
不是为这种用途设计的。尝试
igraph.get_all_shortest_paths
改为:
import igraph as ig
g = ig.Graph(n=5, edges=[(0,1), (1,4), (2,3), (2,4), (2,5) , (3,5), (4,6), (6, 0)], directed=False)
path = g.get_all_shortest_paths(0, to=2)
>>> path
[[0, 1, 4, 2], [0, 6, 4, 2]]
>>> [p[1:-1] for p in path]
[[1, 4], [6, 4]]
我有一个无向图,我知道它具有针对特定点集(例如 105 和 149)的有效最短路径。
我不确定如何解释结果以获取 shortest_paths 函数遍历的节点的索引。
如果从 105 开始的路径经过:117、123、29、35、56、78 并在 149 终止。如何检索索引数组 [117、123、29、35、56、78 ]?
我的代码是这样的:
path = G.shortest_paths(source=[G.vs[105]], target=[G.vs[149]], mode='all')
我的 path
对象 returns 一个类似 [[6]]
的数组。
看起来 igraph.shortest_paths
不是为这种用途设计的。尝试
igraph.get_all_shortest_paths
改为:
import igraph as ig
g = ig.Graph(n=5, edges=[(0,1), (1,4), (2,3), (2,4), (2,5) , (3,5), (4,6), (6, 0)], directed=False)
path = g.get_all_shortest_paths(0, to=2)
>>> path
[[0, 1, 4, 2], [0, 6, 4, 2]]
>>> [p[1:-1] for p in path]
[[1, 4], [6, 4]]