當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。