对于这个图表:
import igraph
G = ig.Graph()
#ring
G.add_vertices(4)
G.add_edges([(0,1), (1,2),(2,3),(3,0)])
G = G.as_directed()
print G.is_directed()
print G
如果我应用上面的函数https://stackoverflow.com/a/29324009/2772305
喜欢
for p in find_all_paths(G,0,0):
print p
我只得到
结果是[0],而应该有第二条路径[0,1,2,3,0]imho
如果图中有这样的环,我如何找到所有路径?
在networkx中,可以通过all_simple_paths得到想要的结果:
import networkx as nx
G = nx.MultiDiGraph()
G.add_path(['a','b','c','d','a'])
G.add_path(['a','e','f','g'])
G.add_path(['a','a'])
for p in nx.all_simple_paths(G,'a','a'):
print p
结果:
['a', 'a']
['a', 'b', 'c', 'd', 'a']
如上面comments 所说,all_simple_paths 函数只存在于networkx 中,由于性能问题,不适合处理大图。有没有办法将 all_simple_paths 从 networkx 带到 igraph ?