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.graph_all_pairs_dijkstra_path_lengths#

graph_all_pairs_dijkstra_path_lengths(graph, edge_cost_fn, /)#

For each node in the graph, calculates the lengths of the shortest paths to all others in a PyGraph object

This function will generate the shortest path from a source node using Dijkstra’s algorithm.

Parameters:
  • graph – The input PyGraph to use

  • 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 path lengths. The keys are source node indices and the values are dicts of the target node and the length of the shortest path to that node. For example:

{
    0: {1: 2.0, 2: 2.0},
    1: {2: 1.0},
    2: {0: 1.0},
}

Return type:

AllPairsPathLengthMapping

Raises:

ValueError – when an edge weight with NaN or negative value is provided.