我可以使用python-igraph创建一个非常简单的图...
import igraph
g=igraph.Graph.TupleList([("a", "b", 3.0), ("c", "d", 4.0), ("a", "c", 5.0)], weights=True)
print( igraph.summary(g, full=True) )
看起来像这样:
IGRAPH UNW- 4 3 --
+ attr: name (v), weight (e)
+ edges (vertex names):
edge weight
[0] a--b 3
[1] c--d 4
[2] a--c 5
找到最短的路径很简单!
source = g.vs[0] // vertex "a"
target = g.vs[len(g.vs)-1] // vertex "d"
g.shortest_paths(source=source, target=target, weights='weight')
打印结果:
[[9.0]]
我很高兴最短路径的边权重为9.0。但是,我想获得构成图的最短路径的实际顶点和边。获得一个看起来像这样的对象会很好:
shortestPath = [("a", "c", 5.0), ("c", "d", 4.0)]
python-igraph可以提供给我吗?我没有运气搜索文档......