rustworkx.dag_longest_path_length#

dag_longest_path_length(graph, /, weight_fn=None)#

Find the length of the longest path in a DAG

Parameters:
  • graph (PyDiGraph) – The graph to find the longest path on. The input object must be a DAG without a cycle.

  • weight_fn – A python callable that if set will be passed the 3 positional arguments, the source node, the target node, and the edge weight for each edge as the function traverses the graph. It is expected to return an unsigned integer weight for that edge. For example, dag_longest_path(graph, lambda: _, __, weight: weight) could be use to just use an integer edge weight. It’s also worth noting that this function traverses in topological order and only checks incoming edges to each node.

Returns:

The longest path length on the DAG

Return type:

int

Raises:
  • Exception – If an unexpected error occurs or a path can’t be found

  • DAGHasCycle – If the input PyDiGraph has a cycle