is_simple_path#
- is_simple_path(G, nodes)[source]#
当且仅当
nodes
在G
中形成一条简单路径时返回 True。图中的 简单路径 是一个非空节点序列,其中每个节点在序列中最多出现一次,并且序列中每对相邻节点在图中也是相邻的。
- Parameters:
- G图
一个 NetworkX 图。
- nodes列表
图
G
中的一个或多个节点的列表。
- Returns:
- bool
给定的节点列表是否表示
G
中的一条简单路径。
Notes
一个空的节点列表不是路径,但一个节点的列表是路径。以下是解释原因。
此函数操作于 节点路径。也可以考虑 边路径。节点路径和边路径之间存在一一对应关系。
路径的长度 是路径中的边数,因此长度为 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]
Examples
>>> G = nx.cycle_graph(4) >>> nx.is_simple_path(G, [2, 3, 0]) True >>> nx.is_simple_path(G, [0, 2]) False
Additional backends implement this function
graphblas : OpenMP-enabled sparse linear algebra backend.