当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX all_simple_edge_paths用法及代码示例


本文简要介绍 networkx.algorithms.simple_paths.all_simple_edge_paths 的用法。

用法:

all_simple_edge_paths(G, source, target, cutoff=None)

为 G 中从源到目标的所有简单路径生成边列表。

简单路径是没有重复节点的路径。

参数

GNetworkX 图
source节点

路径的起始节点

target节点

结束路径的单个节点或节点的可迭代

cutoff整数,可选

停止搜索的深度。仅返回长度 <= 截止的路径。

返回

path_generator:生成器

生成简单路径列表的生成器。如果在给定的截止范围内源和目标之间没有路径,则生成器不会产生输出。对于多重图,边列表具有 (u,v,k) 形式的元素。其中k对应边键。

注意

该算法使用修改后的深度优先搜索来生成路径 [1]。在 时间内可以找到一条路径,但图中简单路径的数量可能非常大,例如 的完整图中的

参考

1

R. Sedgewick, “Algorithms in C, Part 5: Graph Algorithms”, Addison Wesley Professional, 3rd ed., 2001.

例子

打印 Graph 的简单路径边:

>>> g = nx.Graph([(1, 2), (2, 4), (1, 3), (3, 4)])
>>> for path in sorted(nx.all_simple_edge_paths(g, 1, 4)):
...     print(path)
[(1, 2), (2, 4)]
[(1, 3), (3, 4)]

打印 MultiGraph 的简单路径边。返回的边带有它们的关联键:

>>> mg = nx.MultiGraph()
>>> mg.add_edge(1, 2, key="k0")
'k0'
>>> mg.add_edge(1, 2, key="k1")
'k1'
>>> mg.add_edge(2, 3, key="k0")
'k0'
>>> for path in sorted(nx.all_simple_edge_paths(mg, 1, 3)):
...     print(path)
[(1, 2, 'k0'), (2, 3, 'k0')]
[(1, 2, 'k1'), (2, 3, 'k0')]

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.algorithms.simple_paths.all_simple_edge_paths。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。