3

I'm trying to find an efficient, publically available algorithm, preferably with implementation, for solving maximum flow in a generalized (non-pure) network with gains. All multipliers, capacities and flow values are non-zero integers.

Does such an algorithm exist, or is this problem not solvable in polynomial time?

Wander Nauta
  • 18,832
  • 1
  • 45
  • 62
  • What do you mean by "non-pure"? What is the lack of normal algorithms? – Saeed Amiri May 15 '12 at 13:28
  • Arcs can have gains, i.e. the amount of flow going into an arc can be smaller than the amount of flow coming out of it. A pure network would only have arcs with a multiplier of 1. – Wander Nauta May 15 '12 at 13:29
  • So each arc can have a different multiplier? or all of them will have a same multiplier? – Saeed Amiri May 15 '12 at 13:31
  • Each arc can have a different multiplier. – Wander Nauta May 15 '12 at 13:33
  • I think there is no problem to using normal flow algorithms, just when you want calculate augmenting path, select a path such that minimum multiplier along the path is maximized over all possible paths and add the flow as c*m (not just c), I think proof of correctness of this is not hard, I'll think about it later. – Saeed Amiri May 15 '12 at 13:47
  • Hi @WanderNauta, did you ever find an algorithm or implementation for this? – Cole Gleason Aug 16 '17 at 23:03

2 Answers2

1

Here are some links to some algorithms and some explication:

  1. http://en.wikipedia.org/wiki/Edmonds-Karp_algorithm
  2. http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=maxFlow
  3. http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=maxFlow2

This is my solution for a maximum flow : sorry for the variables name i was young then :) http://infoarena.ro/job_detail/431616?action=view-source
Hope it helped

Mark
  • 1,100
  • 9
  • 17
0

The first (strongly) polynomial-time algorithm was published by Végh in 2013, and has since been improved by Olver and Végh to a worst-case runtime in O((m + n log n) m n log(n^2 / m)). But I don't know of any public implementation for this algorithm.

The linked papers also contain references to earlier (weakly) polynomial-time algorithms as well as approximate algorithms, some of which may have public implementations. (This older paper by Tardos and Wayne mentions a C++ implementation.)

user4235730
  • 2,559
  • 1
  • 23
  • 36