all_pairs_shortest_path_length#

all_pairs_shortest_path_length(G, cutoff=None)[source]#

Computes the shortest path lengths between all nodes in G.

Parameters:
GNetworkX graph
cutoffinteger, optional

Depth at which to stop the search. Only paths of length at most cutoff are returned.

Returns:
lengthsiterator

(source, dictionary) iterator with dictionary keyed by target and shortest path length as the key value.

Notes

The iterator returned only has reachable node pairs.

Examples

>>> G = nx.path_graph(5)
>>> length = dict(nx.all_pairs_shortest_path_length(G))
>>> for node in [0, 1, 2, 3, 4]:
...     print(f"1 - {node}: {length[1][node]}")
1 - 0: 1
1 - 1: 0
1 - 2: 1
1 - 3: 2
1 - 4: 3
>>> length[3][2]
1
>>> length[2][2]
0

Additional backends implement this function

cugraph : GPU-accelerated backend.

graphblasOpenMP-enabled sparse linear algebra backend.
Additional parameters:
chunksizeint or str, optional

Split the computation into chunks; may specify size as string or number of rows. Default “10 MiB”

parallelParallel backend for NetworkX algorithms

The parallel implementation first divides the nodes into chunks and then creates a generator to lazily compute shortest paths lengths for each node in node_chunk, and then employs joblib’s Parallel function to execute these computations in parallel across all available CPU cores.

Additional parameters:
get_chunksstr, function (default = “chunks”)

A function that takes in an iterable of all the nodes as input and returns an iterable node_chunks. The default chunking is done by slicing the G.nodes into n chunks, where n is the number of CPU cores.

[Source]