all_pairs_shortest_path#
- all_pairs_shortest_path(G, cutoff=None)[source]#
Compute shortest paths between all nodes.
- Parameters:
- GNetworkX graph
- cutoffinteger, optional
Depth at which to stop the search. Only paths containing at most
cutoff + 1nodes are returned.
- Returns:
- pathsiterator
Dictionary, keyed by source and target, of shortest paths.
See also
floyd_warshallall_pairs_all_shortest_paths
Notes
There may be multiple shortest paths with the same length between two nodes. For each pair, this function returns only one of those paths.
Examples
>>> G = nx.path_graph(5) >>> path = dict(nx.all_pairs_shortest_path(G)) >>> print(path[0]) {0: [0], 1: [0, 1], 2: [0, 1, 2], 3: [0, 1, 2, 3], 4: [0, 1, 2, 3, 4]}
Only include paths with length less than or equal to the
cutoffkeyword argument:>>> path = dict(nx.all_pairs_shortest_path(G, cutoff=2)) >>> print(path[0]) {0: [0], 1: [0, 1], 2: [0, 1, 2]} ----
Additional backends implement this function
cugraph : GPU-accelerated backend.
- parallelA networkx backend that uses joblib to run graph algorithms in parallel. Find the nx-parallel’s configuration guide here
The parallel implementation first divides the nodes into chunks and then creates a generator to lazily compute shortest paths for each
node_chunk, and then employs joblib’sParallelfunction to execute these computations in parallel acrossn_jobsnumber of 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 theG.nodesinton_jobsnumber of chunks.
[Source]