2024-05-23 15:02:15 发布
网友
我正在使用igraph来生成一个顶点对之间最短路径距离的矩阵,但是我不知道如何返回顶点。到目前为止我有:
igraph
path_length_matrix = ig_graph.shortest_paths_dijkstra(None,None,"distance", "ALL")
我正在寻找一个函数,它返回一个路径矩阵,就像距离矩阵,但是我在igraph documentation中看不到任何显示如何获得路径的东西。
你需要的功能是get_shortest_paths我相信。见http://packages.python.org/python-igraph/igraph.GraphBase-class.html#get_shortest_paths
get_shortest_paths
您需要为每个源顶点单独调用它,它将为每对节点只提供一条(任意)最短路径。如果需要所有最短路径,请参见get_all_shortest_paths:http://packages.python.org/python-igraph/igraph.GraphBase-class.html#get_all_shortest_paths
get_all_shortest_paths
我这样做
from igraph import * g = Graph([(0,1), (0,2), (2,3), (3,4), (4,2), (2,5), (5,0), (6,3), (5,6)]) g.vs["name"] = ["Alice", "Bob", "Claire", "Dennis", "Esther", "Frank", "George"] #You could create Vertexes like g.add_vertex(name="Bill") path=g.get_shortest_paths("Alice",to="Frank",mode=OUT,output='vpath') for n in path[0]: print("{}".format(g.vs[n]['name']))
希望这有帮助
这是求加权有向图(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)
你需要的功能是
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我这样做
希望这有帮助
这是求加权有向图(DAG)最短路径的方法。 所以我发现:
相关问题 更多 >
编程相关推荐