Note

This is the documentation for the current state of the development branch of rustworkx. The documentation or APIs here can change prior to being released.

rustworkx.all_pairs_dijkstra_shortest_paths#

all_pairs_dijkstra_shortest_paths(graph, edge_cost_fn)[source]#

For each node in the graph, finds the shortest paths to all others.

This function will generate the shortest path from all nodes in the graph using Dijkstra’s algorithm. This function is multithreaded and will run launch a thread pool with threads equal to the number of CPUs by default. You can tune the number of threads with the RAYON_NUM_THREADS environment variable. For example, setting RAYON_NUM_THREADS=4 would limit the thread pool to 4 threads.

Parameters:
  • graph – The input graph to use. Can either be a PyGraph or PyDiGraph

  • edge_cost_fn – A callable object that acts as a weight function for an edge. It will accept a single positional argument, the edge’s weight object and will return a float which will be used to represent the weight/cost of the edge

Returns:

A read-only dictionary of paths. The keys are source node indices and the values are a dict of target node indices and a list of node indices making the path. For example:

{
    0: {1: [0, 1],  2: [0, 1, 2]},
    1: {2: [1, 2]},
    2: {0: [2, 0]},
}

Return type:

AllPairsPathMapping