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


Python NetworkX is_simple_path用法及代码示例


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

用法:

is_simple_path(G, nodes)

当且仅当 nodesG 中形成简单路径时返回 True。

图中的simple path 是节点的非空序列,其中没有节点在序列中出现多次,并且序列中的每一对相邻节点在图中都是相邻的。

参数

G图形

NetworkX 图表。

nodes列表

G 中一个或多个节点的列表。

返回

bool

给定的节点列表是否表示 G 中的简单路径。

注意

一个空的节点列表不是路径,但一个节点的列表是路径。这是一个解释为什么。

此函数在 node paths 上运行。也可以考虑 edge paths 。节点路径和边路径之间存在双射。

length of a path 是路径中的边数,因此长度为 n 的节点列表对应于长度为 n - 1 的路径。因此,最小的边路径将是零边的列表,即空小路。这对应于一个节点的列表。

要在节点路径和边路径之间进行转换,可以使用如下代码:

>>> from networkx.utils import pairwise
>>> nodes = [0, 1, 2, 3]
>>> edges = list(pairwise(nodes))
>>> edges
[(0, 1), (1, 2), (2, 3)]
>>> nodes = [edges[0][0]] + [v for u, v in edges]
>>> nodes
[0, 1, 2, 3]

例子

>>> G = nx.cycle_graph(4)
>>> nx.is_simple_path(G, [2, 3, 0])
True
>>> nx.is_simple_path(G, [0, 2])
False

相关用法


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