8

Given a undirected graph G=(V,E), each edge is associated with a non-negative value.

How to find the maximum number of vertex-disjoint paths from s to t on the graph G, with a constraint that the sum of paths length is not greater than a predefined value T.

wzb5210
  • 735
  • 2
  • 9
  • 16
  • 3
    Just out of curiosity, what's the context of this problem? – tskuzzy Jul 11 '12 at 23:10
  • what's your real meaning of *maximum number of vertex-disjoint paths*? Is it the path with the greatest length, or with the most node, or the total number of different paths? – Timothy Jul 12 '12 at 05:44
  • @Skyler, I think he mean maximum number of vertex-independent paths. – Ido.Co 5 mins ago – Ido.Co Jul 12 '12 at 10:23

2 Answers2

5

You can start with transforming a vertex-disjoint paths problem to edge-disjoint paths problem. See this answer to other question for details.

Now you can solve Minimum-cost flow problem on this graph to find any number of disjoint paths having minimal sum of path lengths. Do do this, assign flow capacity for each edge equal to 1, then search for a minimum-cost flow between s and t with flow equal to the needed number of paths.

To find the maximum number of paths, apply minimum-cost flow procedure on each step of binary search, starting from some initial number of paths, which may be determined by one of the following procedures:

  1. If you expect the maximum number of paths to be large, solve Maximum flow problem for this graph.
  2. If you expect the maximum number of paths to be small, use one-sided binary search (also with minimum-cost flow procedure on each step).
Community
  • 1
  • 1
Evgeny Kluev
  • 24,287
  • 7
  • 55
  • 98
2

Since you are only interested in the number of vertex-disjoint paths you can use Menger's theorem (for proof look here) that states as follows:

Let G be a finite undirected graph and x and y two nonadjacent vertices. Then the theorem states that the size of the minimum vertex cut for x and y (the minimum number of vertices whose removal disconnects x and y) is equal to the maximum number of pairwise vertex-independent paths from x to y.

But this doesn't satisfy the constraint that the sum of paths length is not greater than a predefined value T.

For that you'll have to use a version of of Menger's theorem for paths of bounded length that is presented here: http://www.math.elte.hu/~lovasz/scans/mengerian.pdf

Ido.Co
  • 5,317
  • 6
  • 39
  • 64