sklearn.utils.graph.single_source_shortest_path_length#

sklearn.utils.graph.single_source_shortest_path_length(graph, source, *, cutoff=None)[source]#

Return the length of the shortest path from source to all reachable nodes.

Parameters:
graph{array-like, sparse matrix} of shape (n_nodes, n_nodes)

Adjacency matrix of the graph. Sparse matrix of format LIL is preferred.

sourceint

Start node for path.

cutoffint, default=None

Depth to stop the search - only paths of length <= cutoff are returned.

Returns:
pathsdict

Reachable end nodes mapped to length of path from source, i.e. {end: path_length}.

Examples

>>> from sklearn.utils.graph import single_source_shortest_path_length
>>> import numpy as np
>>> graph = np.array([[ 0, 1, 0, 0],
...                   [ 1, 0, 1, 0],
...                   [ 0, 1, 0, 0],
...                   [ 0, 0, 0, 0]])
>>> single_source_shortest_path_length(graph, 0)
{0: 0, 1: 1, 2: 2}
>>> graph = np.ones((6, 6))
>>> sorted(single_source_shortest_path_length(graph, 2).items())
[(0, 1), (1, 1), (2, 0), (3, 1), (4, 1), (5, 1)]