我正在使用igraph
生成顶点对之间最短路径距离的矩阵,但我无法弄清楚如何返回顶点。到目前为止,我有:
path_length_matrix = ig_graph.shortest_paths_dijkstra(None,None,"distance", "ALL")
我正在寻找一个返回路径矩阵的函数,比如距离矩阵,但我在igraph documentation中看不到任何显示如何获取路径的内容。
答案 0 :(得分:15)
我相信你需要的功能是get_shortest_paths
。见http://packages.python.org/python-igraph/igraph.GraphBase-class.html#get_shortest_paths
您需要为每个源顶点单独调用它,并且它将为每对节点仅提供单个(任意)最短路径。如果您需要所有最短路径,请参阅get_all_shortest_paths
:http://packages.python.org/python-igraph/igraph.GraphBase-class.html#get_all_shortest_paths
答案 1 :(得分:3)
我这样做
Call Method a
希望这有帮助
答案 2 :(得分:1)
这是找到加权有向图(DAG)的最短路径的方法。 所以这就是我想出的:
import igraph
from igraph import *
g = Graph(directed=True)
g.add_vertices(3)
g.vs["name"]=["GO:1234567","GO:6789056","GO:5674321"]
g.es["weight"]=1
g['GO:1234567','GO:6789056']=1
g['GO:6789056','GO:5674321']=5
weight=g.es["weight"]
print weight
print g.degree(mode="in")
print g.shortest_paths_dijkstra(source="GO:1234567", target="GO:5674321",
weights=weight, mode=OUT)