number_of_walks#

number_of_walks(G, walk_length)[source]#

返回图中每对节点之间的步行连接数

步行 是一系列节点,其中序列中每对相邻节点在图中也是相邻的。步行可以重复同一条边并朝相反方向行走,就像人们可以在一组路径上行走一样,但站立不动不算作步行的一部分。

此函数仅计算具有 walk_length 条边的步行。请注意,步行序列中的节点数比 walk_length 多一个。在较大的图和较大的步行长度下,步行的数量可能会迅速增长。

Parameters:
GNetworkX 图
walk_lengthint

表示步行长度的非负整数。

Returns:
dict

一个字典的字典,其中外部键是源节点,内部键是目标节点,内部值是连接这些节点的长度为 walk_length 的步行数。

Raises:
ValueError

如果 walk_length 为负

Examples

>>> G = nx.Graph([(0, 1), (1, 2)])
>>> walks = nx.number_of_walks(G, 2)
>>> walks
{0: {0: 1, 1: 0, 2: 1}, 1: {0: 0, 1: 2, 2: 0}, 2: {0: 1, 1: 0, 2: 1}}
>>> total_walks = sum(sum(tgts.values()) for _, tgts in walks.items())

您还可以使用返回的字典从特定源节点获取步行数。例如,从节点 0 开始的 1 长度步行数可以如下找到:

>>> walks = nx.number_of_walks(G, 1)
>>> walks[0]
{0: 0, 1: 1, 2: 0}
>>> sum(walks[0].values())  # 从 0 开始的 1 长度步行数
1

同样,也可以指定目标节点:

>>> walks[0][1]
1