You can start by converting a problem with vertices and disjoint paths into a problem with border-disjoint paths. See this answer to another question for more details.
Now you can solve the minimum cost problem on this graph to find any number of disjoint paths that have the minimum amount of path length. Do this, assign the throughput for each edge to 1, then search for the minimum cost stream between s and t with the stream equal to the required number of paths.
To find the maximum number of paths, apply the minimum flow rate procedure at each stage of the binary search, starting with a certain initial number of paths, which can be determined by one of the following procedures:
- If you expect the maximum number of paths to be large, solve the "Maximum Flow Problem" for this graph.
- If you expect the maximum number of paths to be small, use a one-way binary search (also with a minimum flow procedure at each step).
source share