¿Cómo obtengo los vértices en la ruta más corta usando igraph?

Estoy usando igraph para generar una matriz de distancias de camino más cortas entre pares de vértices, pero no puedo averiguar cómo devolver los vértices. Hasta ahora tengo:

 path_length_matrix = ig_graph.shortest_paths_dijkstra(None,None,"distance", "ALL") 

Estoy buscando una función que devuelva una matriz de caminos como la matriz de distancias, pero no puedo ver nada en la documentación de igraph que muestra cómo obtener los caminos.

Related of "¿Cómo obtengo los vértices en la ruta más corta usando igraph?"

La función que necesitas es get_shortest_paths , creo. Consulte http://packages.python.org/python-igraph/igraph.GraphBase-class.html#get_shortest_paths

Debe llamarlo individualmente para cada vértice de origen, y le dará solo una ruta más corta (arbitraria) para cada par de nodos. Si necesita todas las rutas más cortas, consulte get_all_shortest_paths : http://packages.python.org/python-igraph/igraph.GraphBase-class.html#get_all_shortest_paths

hago esto

 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", "Clair", "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'])) 

Espero que esto ayude

Esta es la forma de encontrar la ruta más corta para el gráfico dirigido ponderado (DAG). Así que esto es lo que he descubierto:

  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)