2013-01-17 19 views
5

私はigraphを使用して頂点ペア間の最短経路距離の行列を生成していますが、頂点を戻す方法を理解することはできません。これまでのところ私が持っている:私は距離の行列のようなパスの行列を返しますが、私はパスを取得する方法を示しigraph documentationには何も見ることができない機能のためにigraphを使用して最短経路上の頂点を取得するにはどうすればよいですか?

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

探しています。

答えて

13

必要な機能は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

+0

助けください、でこのクラスを使用しないように警告があるが代わりに 'igraph.Graph'を使います。私はこの機能が 'igraph.Graph'にまだ追加されていないと思います。 –

+4

'igraph.Graph'は' igraph.GraphBase'からメソッドを継承しませんか?私は自分自身を確信していない、ただ尋ねる.... –

+2

それはそうです。そこには少しの脳の凍結があります。ありがとう。 –

2

を、私はこの

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'])) 

ホープ、これはそれが助けるべきであるように見える

関連する問題