rustworkx.digraph_distance_matrix#

digraph_distance_matrix(graph, /, parallel_threshold=300, as_undirected=False, null_value=0.0)#

Get the distance matrix for a directed graph

This differs from functions like digraph_floyd_warshall_numpy in that the edge weight/data payload is not used and each edge is treated as a distance of 1.

This function is also multithreaded and will run in parallel if the number of nodes in the graph is above the value of parallel_threshold (it defaults to 300). If the function will be running in parallel the env var RAYON_NUM_THREADS can be used to adjust how many threads will be used.

Parameters:
  • graph (PyDiGraph) – The graph to get the distance matrix for

  • parallel_threshold (int) – The number of nodes to calculate the the distance matrix in parallel at. It defaults to 300, but this can be tuned

  • as_undirected (bool) – If set to True the input directed graph will be treat as if each edge was bidirectional/undirected in the output distance matrix.

  • null_value (float) – An optional float that will treated as a null value. This element will be the default in the matrix and represents the absense of a path in the graph. By default this is 0.0.

Returns:

The distance matrix

Return type:

numpy.ndarray