fbpx
Wikipedia

Maximum flow problem

In optimization theory, maximum flow problems involve finding a feasible flow through a flow network that obtains the maximum possible flow rate.

Flow network for the problem: Each human (ri) is willing to adopt a cat (wi1) and/or a dog (wi2). However each pet (pi) has a preference for only a subset of the humans. Find any matching of pets to humans such that the maximum number of pets are adopted by one of its preferred humans.

The maximum flow problem can be seen as a special case of more complex network flow problems, such as the circulation problem. The maximum value of an s-t flow (i.e., flow from source s to sink t) is equal to the minimum capacity of an s-t cut (i.e., cut severing s from t) in the network, as stated in the max-flow min-cut theorem.

History edit

The maximum flow problem was first formulated in 1954 by T. E. Harris and F. S. Ross as a simplified model of Soviet railway traffic flow.[1][2][3]

In 1955, Lester R. Ford, Jr. and Delbert R. Fulkerson created the first known algorithm, the Ford–Fulkerson algorithm.[4][5] In their 1955 paper,[4] Ford and Fulkerson wrote that the problem of Harris and Ross is formulated as follows (see[1] p. 5):

Consider a rail network connecting two cities by way of a number of intermediate cities, where each link of the network has a number assigned to it representing its capacity. Assuming a steady state condition, find a maximal flow from one given city to the other.

In their book Flows in Network,[5] in 1962, Ford and Fulkerson wrote:

It was posed to the authors in the spring of 1955 by T. E. Harris, who, in conjunction with General F. S. Ross (Ret.), had formulated a simplified model of railway traffic flow, and pinpointed this particular problem as the central one suggested by the model [11].

where [11] refers to the 1955 secret report Fundamentals of a Method for Evaluating Rail net Capacities by Harris and Ross[3] (see[1] p. 5).

Over the years, various improved solutions to the maximum flow problem were discovered, notably the shortest augmenting path algorithm of Edmonds and Karp and independently Dinitz; the blocking flow algorithm of Dinitz; the push-relabel algorithm of Goldberg and Tarjan; and the binary blocking flow algorithm of Goldberg and Rao. The algorithms of Sherman[6] and Kelner, Lee, Orecchia and Sidford,[7][8] respectively, find an approximately optimal maximum flow but only work in undirected graphs.

In 2013 James B. Orlin published a paper describing an   algorithm.[9]

In 2022 Li Chen, Rasmus Kyng, Yang P. Liu, Richard Peng, Maximilian Probst Gutenberg, and Sushant Sachdeva published an almost-linear time algorithm running in   for the minimum-cost flow problem of which for the maximum flow problem is a particular case.[10][11] For the single-source shortest path (SSSP) problem with negative weights another particular case of minimum-cost flow problem an algorithm in almost-linear time has also been reported.[12][13] Both algorithms were deemed best papers at the 2022 Symposium on Foundations of Computer Science.[14][15]

Definition edit

 
A flow network, with source s and sink t. The numbers next to the edges are the capacities.

First we establish some notation:

  • Let   be a network with   being the source and the sink of   respectively.
  • If   is a function on the edges of   then its value on   is denoted by   or  

Definition. The capacity of an edge is the maximum amount of flow that can pass through an edge. Formally it is a map  

Definition. A flow is a map   that satisfies the following:

  • Capacity constraint. The flow of an edge cannot exceed its capacity, in other words:   for all  
  • Conservation of flows. The sum of the flows entering a node must equal the sum of the flows exiting that node, except for the source and the sink. Or:
 

Remark. Flows are skew symmetric:   for all  

Definition. The value of flow is the amount of flow passing from the source to the sink. Formally for a flow   it is given by:

 

Definition. The maximum flow problem is to route as much flow as possible from the source to the sink, in other words find the flow   with maximum value.

Note that several maximum flows may exist, and if arbitrary real (or even arbitrary rational) values of flow are permitted (instead of just integers), there is either exactly one maximum flow, or infinitely many, since there are infinitely many linear combinations of the base maximum flows. In other words, if we send   units of flow on edge   in one maximum flow, and   units of flow on   in another maximum flow, then for each   we can send   units on   and route the flow on remaining edges accordingly, to obtain another maximum flow. If flow values can be any real or rational numbers, then there are infinitely many such   values for each pair  .

Algorithms edit

The following table lists algorithms for solving the maximum flow problem. Here,   and   denote the number of vertices and edges of the network. The value   refers to the largest edge capacity after rescaling all capacities to integer values (if the network contains irrational capacities,   may be infinite).

Method Year Complexity Description
Linear programming Constraints given by the definition of a legal flow. See the linear program here.
Ford–Fulkerson algorithm 1955   As long as there is an open path through the residual graph, send the minimum of the residual capacities on that path.
Edmonds–Karp algorithm 1970   A specialization of Ford–Fulkerson, finding augmenting paths with breadth-first search.
Dinic's algorithm 1970   In each phase the algorithms builds a layered graph with breadth-first search on the residual graph. The maximum flow in a layered graph can be calculated in   time, and the maximum number of phases is  . In networks with unit capacities, Dinic's algorithm terminates in   time.
MKM (Malhotra, Kumar, Maheshwari) algorithm[16] 1978   A modification of Dinic's algorithm with a different approach to constructing blocking flows. Refer to the original paper.
Dinic's algorithm with dynamic trees 1983   The dynamic trees data structure speeds up the maximum flow computation in the layered graph to  .
General push–relabel algorithm[17] 1986   The push relabel algorithm maintains a preflow, i.e. a flow function with the possibility of excess in the vertices. The algorithm runs while there is a vertex with positive excess, i.e. an active vertex in the graph. The push operation increases the flow on a residual edge, and a height function on the vertices controls through which residual edges can flow be pushed. The height function is changed by the relabel operation. The proper definitions of these operations guarantee that the resulting flow function is a maximum flow.
Push–relabel algorithm with FIFO vertex selection rule[17] 1988   Push-relabel algorithm variant which always selects the most recently active vertex, and performs push operations while the excess is positive and there are admissible residual edges from this vertex.
Push–relabel algorithm with maximum distance vertex selection rule[18] 1988   Push-relabel algorithm variant which always selects the most distant vertex from   or   (i.e. the highest label vertex) but otherwise proceeds as the FIFO algorithm.
Push-relabel algorithm with dynamic trees[17] 1988   The algorithm builds limited size trees on the residual graph regarding to the height function. These trees provide multilevel push operations, i.e. pushing along an entire saturating path instead of a single edge.
KRT (King, Rao, Tarjan)'s algorithm[19] 1994  
Binary blocking flow algorithm[20] 1998  
James B Orlin's + KRT (King, Rao, Tarjan)'s algorithm[9] 2013   Orlin's algorithm solves max-flow in   time for   while KRT solves it in   for  .
Kathuria-Liu-Sidford algorithm[21] 2020   Interior point methods and edge boosting using  -norm flows. Builds on earlier algorithm of Madry, which achieved runtime  .[22]
BLNPSSSW / BLLSSSW algorithm[23]

[24]

2020   Interior point methods and dynamic maintenance of electric flows with expander decompositions.
Gao-Liu-Peng algorithm[25] 2021   Gao, Liu, and Peng's algorithm revolves around dynamically maintaining the augmenting electrical flows at the core of the interior point method based algorithm from [Mądry JACM ‘16]. This entails designing data structures that, in limited settings, return edges with large electric energy in a graph undergoing resistance updates.
Chen, Kyng, Liu, Peng, Gutenberg and Sachdeva's algorithm[10] 2022   Chen, Kyng, Liu, Peng, Gutenberg and Sachdeva's algorithm solves maximum flow and minimum-cost flow in almost linear time by building the flow through a sequence of   approximate undirected minimum-ratio cycles, each of which is computed and processed in amortized   time using a dynamic data structure.

For additional algorithms, see Goldberg & Tarjan (1988).

Integral flow theorem edit

The integral flow theorem states that

If each edge in a flow network has integral capacity, then there exists an integral maximal flow.

The claim is not only that the value of the flow is an integer, which follows directly from the max-flow min-cut theorem, but that the flow on every edge is integral. This is crucial for many combinatorial applications (see below), where the flow across an edge may encode whether the item corresponding to that edge is to be included in the set sought or not.

Application edit

Multi-source multi-sink maximum flow problem edit

 
Fig. 4.1.1. Transformation of a multi-source multi-sink maximum flow problem into a single-source single-sink maximum flow problem

Given a network   with a set of sources   and a set of sinks   instead of only one source and one sink, we are to find the maximum flow across  . We can transform the multi-source multi-sink problem into a maximum flow problem by adding a consolidated source connecting to each vertex in   and a consolidated sink connected by each vertex in   (also known as supersource and supersink) with infinite capacity on each edge (See Fig. 4.1.1.).

Maximum cardinality bipartite matching edit

 
Fig. 4.3.1. Transformation of a maximum bipartite matching problem into a maximum flow problem

Given a bipartite graph  , we are to find a maximum cardinality matching in  , that is a matching that contains the largest possible number of edges. This problem can be transformed into a maximum flow problem by constructing a network  , where

  1.   contains the edges in   directed from   to  .
  2.   for each   and   for each  .
  3.   for each   (See Fig. 4.3.1).

Then the value of the maximum flow in   is equal to the size of the maximum matching in  , and a maximum cardinality matching can be found by taking those edges that have flow   in an integral max-flow.

Minimum path cover in directed acyclic graph edit

Given a directed acyclic graph  , we are to find the minimum number of vertex-disjoint paths to cover each vertex in  . We can construct a bipartite graph   from  , where

  1.  
  2.  
  3.  .

Then it can be shown that   has a matching   of size   if and only if   has a vertex-disjoint path cover   containing   edges and   paths, where   is the number of vertices in  . Therefore, the problem can be solved by finding the maximum cardinality matching in   instead.

Assume we have found a matching   of  , and constructed the cover   from it. Intuitively, if two vertices   are matched in  , then the edge   is contained in  . Clearly the number of edges in   is  . To see that   is vertex-disjoint, consider the following:

  1. Each vertex   in   can either be non-matched in  , in which case there are no edges leaving   in  ; or it can be matched, in which case there is exactly one edge leaving   in  . In either case, no more than one edge leaves any vertex   in  .
  2. Similarly for each vertex   in   – if it is matched, there is a single incoming edge into   in  ; otherwise   has no incoming edges in  .

Thus no vertex has two incoming or two outgoing edges in  , which means all paths in   are vertex-disjoint.

To show that the cover   has size  , we start with an empty cover and build it incrementally. To add a vertex   to the cover, we can either add it to an existing path, or create a new path of length zero starting at that vertex. The former case is applicable whenever either   and some path in the cover starts at  , or   and some path ends at  . The latter case is always applicable. In the former case, the total number of edges in the cover is increased by 1 and the number of paths stays the same; in the latter case the number of paths is increased and the number of edges stays the same. It is now clear that after covering all   vertices, the sum of the number of paths and edges in the cover is  . Therefore, if the number of edges in the cover is  , the number of paths is  .

Maximum flow with vertex capacities edit

 
Fig. 4.4.1. Transformation of a maximum flow problem with vertex capacities constraint into the original maximum flow problem by node splitting

Let   be a network. Suppose there is capacity at each node in addition to edge capacity, that is, a mapping   such that the flow   has to satisfy not only the capacity constraint and the conservation of flows, but also the vertex capacity constraint

 

In other words, the amount of flow passing through a vertex cannot exceed its capacity. To find the maximum flow across  , we can transform the problem into the maximum flow problem in the original sense by expanding  . First, each   is replaced by   and  , where   is connected by edges going into   and   is connected to edges coming out from  , then assign capacity   to the edge connecting   and   (see Fig. 4.4.1). In this expanded network, the vertex capacity constraint is removed and therefore the problem can be treated as the original maximum flow problem.

Maximum number of paths from s to t edit

Given a directed graph   and two vertices   and  , we are to find the maximum number of paths from   to  . This problem has several variants:

1. The paths must be edge-disjoint. This problem can be transformed to a maximum flow problem by constructing a network   from  , with   and   being the source and the sink of   respectively, and assigning each edge a capacity of  . In this network, the maximum flow is   iff there are   edge-disjoint paths.

2. The paths must be independent, i.e., vertex-disjoint (except for   and  ). We can construct a network   from   with vertex capacities, where the capacities of all vertices and all edges are  . Then the value of the maximum flow is equal to the maximum number of independent paths from   to  .

3. In addition to the paths being edge-disjoint and/or vertex disjoint, the paths also have a length constraint: we count only paths whose length is exactly  , or at most  . Most variants of this problem are NP-complete, except for small values of  .[26]

Closure problem edit

A closure of a directed graph is a set of vertices C, such that no edges leave C. The closure problem is the task of finding the maximum-weight or minimum-weight closure in a vertex-weighted directed graph. It may be solved in polynomial time using a reduction to the maximum flow problem.

Real world applications edit

Baseball elimination edit

 
Construction of network flow for baseball elimination problem

In the baseball elimination problem there are n teams competing in a league. At a specific stage of the league season, wi is the number of wins and ri is the number of games left to play for team i and rij is the number of games left against team j. A team is eliminated if it has no chance to finish the season in the first place. The task of the baseball elimination problem is to determine which teams are eliminated at each point during the season. Schwartz[27] proposed a method which reduces this problem to maximum network flow. In this method a network is created to determine whether team k is eliminated.

Let G = (V, E) be a network with s,tV being the source and the sink respectively. One adds a game nodeij – which represents the number of plays between these two teams. We also add a team node for each team and connect each game node {i, j} with i < j to V, and connects each of them from s by an edge with capacity rij – which represents the number of plays between these two teams. We also add a team node for each team and connect each game node {i, j} with two team nodes i and j to ensure one of them wins. One does not need to restrict the flow value on these edges. Finally, edges are made from team node i to the sink node t and the capacity of wk + rkwi is set to prevent team i from winning more than wk + rk. Let S be the set of all teams participating in the league and let

 .

In this method it is claimed team k is not eliminated if and only if a flow value of size r(S − {k}) exists in network G. In the mentioned article it is proved that this flow value is the maximum flow value from s to t.

Airline scheduling edit

In the airline industry a major problem is the scheduling of the flight crews. The airline scheduling problem can be considered as an application of extended maximum network flow. The input of this problem is a set of flights F which contains the information about where and when each flight departs and arrives. In one version of airline scheduling the goal is to produce a feasible schedule with at most k crews.

To solve this problem one uses a variation of the circulation problem called bounded circulation which is the generalization of network flow problems, with the added constraint of a lower bound on edge flows.

Let G = (V, E) be a network with s,tV as the source and the sink nodes. For the source and destination of every flight i, one adds two nodes to V, node si as the source and node di as the destination node of flight i. One also adds the following edges to E:

  1. An edge with capacity [0, 1] between s and each si.
  2. An edge with capacity [0, 1] between each di and t.
  3. An edge with capacity [1, 1] between each pair of si and di.
  4. An edge with capacity [0, 1] between each di and sj, if source sj is reachable with a reasonable amount of time and cost from the destination of flight i.
  5. An edge with capacity [0, ] between s and t.

In the mentioned method, it is claimed and proved that finding a flow value of k in G between s and t is equal to finding a feasible schedule for flight set F with at most k crews.[28]

Another version of airline scheduling is finding the minimum needed crews to perform all the flights. To find an answer to this problem, a bipartite graph G' = (AB, E) is created where each flight has a copy in set A and set B. If the same plane can perform flight j after flight i, iA is connected to jB. A matching in G' induces a schedule for F and obviously maximum bipartite matching in this graph produces an airline schedule with minimum number of crews.[28] As it is mentioned in the Application part of this article, the maximum cardinality bipartite matching is an application of maximum flow problem.

Circulation–demand problem edit

There are some factories that produce goods and some villages where the goods have to be delivered. They are connected by a networks of roads with each road having a capacity c for maximum goods that can flow through it. The problem is to find if there is a circulation that satisfies the demand. This problem can be transformed into a maximum-flow problem.

  1. Add a source node s and add edges from it to every factory node fi with capacity pi where pi is the production rate of factory fi.
  2. Add a sink node t and add edges from all villages vi to t with capacity di where di is the demand rate of village vi.

Let G = (V, E) be this new network. There exists a circulation that satisfies the demand if and only if :

Maximum flow value(G)  .

If there exists a circulation, looking at the max-flow solution would give the answer as to how much goods have to be sent on a particular road for satisfying the demands.

The problem can be extended by adding a lower bound on the flow on some edges.[29]

Image segmentation edit

 
Source image of size 8x8.
 
Network built from the bitmap. The source is on the left, the sink on the right. The darker an edge is, the bigger is its capacity. ai is high when the pixel is green, bi when the pixel is not green. The penalty pij are all equal.[30]

In their book, Kleinberg and Tardos present an algorithm for segmenting an image.[31] They present an algorithm to find the background and the foreground in an image. More precisely, the algorithm takes a bitmap as an input modelled as follows: ai ≥ 0 is the likelihood that pixel i belongs to the foreground, bi ≥ 0 in the likelihood that pixel i belongs to the background, and pij is the penalty if two adjacent pixels i and j are placed one in the foreground and the other in the background. The goal is to find a partition (A, B) of the set of pixels that maximize the following quantity

 ,

Indeed, for pixels in A (considered as the foreground), we gain ai; for all pixels in B (considered as the background), we gain bi. On the border, between two adjacent pixels i and j, we loose pij. It is equivalent to minimize the quantity

 

because

 
 
Minimum cut displayed on the network (triangles VS circles).

We now construct the network whose nodes are the pixel, plus a source and a sink, see Figure on the right. We connect the source to pixel i by an edge of weight ai. We connect the pixel i to the sink by an edge of weight bi. We connect pixel i to pixel j with weight pij. Now, it remains to compute a minimum cut in that network (or equivalently a maximum flow). The last figure shows a minimum cut.

Extensions edit

1. In the minimum-cost flow problem, each edge (u,v) also has a cost-coefficient auv in addition to its capacity. If the flow through the edge is fuv, then the total cost is auvfuv. It is required to find a flow of a given size d, with the smallest cost. In most variants, the cost-coefficients may be either positive or negative. There are various polynomial-time algorithms for this problem.

2. The maximum-flow problem can be augmented by disjunctive constraints: a negative disjunctive constraint says that a certain pair of edges cannot simultaneously have a nonzero flow; a positive disjunctive constraints says that, in a certain pair of edges, at least one must have a nonzero flow. With negative constraints, the problem becomes strongly NP-hard even for simple networks. With positive constraints, the problem is polynomial if fractional flows are allowed, but may be strongly NP-hard when the flows must be integral.[32]

References edit

  1. ^ a b c Schrijver, A. (2002). "On the history of the transportation and maximum flow problems". Mathematical Programming. 91 (3): 437–445. CiteSeerX 10.1.1.23.5134. doi:10.1007/s101070100259. S2CID 10210675.
  2. ^ Gass, Saul I.; Assad, Arjang A. (2005). "Mathematical, algorithmic and professional developments of operations research from 1951 to 1956". An Annotated Timeline of Operations Research. International Series in Operations Research & Management Science. Vol. 75. pp. 79–110. doi:10.1007/0-387-25837-X_5. ISBN 978-1-4020-8116-3.
  3. ^ a b Harris, T. E.; Ross, F. S. (1955). (PDF). Research Memorandum. Archived from the original (PDF) on 8 January 2014.
  4. ^ a b Ford, L. R.; Fulkerson, D. R. (1956). "Maximal flow through a network". Canadian Journal of Mathematics. 8: 399–404. doi:10.4153/CJM-1956-045-5.
  5. ^ a b Ford, L.R., Jr.; Fulkerson, D.R., Flows in Networks, Princeton University Press (1962).
  6. ^ Sherman, Jonah (2013). "Nearly Maximum Flows in Nearly Linear Time". Proceedings of the 54th Annual IEEE Symposium on Foundations of Computer Science. pp. 263–269. arXiv:1304.2077. doi:10.1109/FOCS.2013.36. ISBN 978-0-7695-5135-7. S2CID 14681906.
  7. ^ Kelner, J. A.; Lee, Y. T.; Orecchia, L.; Sidford, A. (2014). (PDF). Proceedings of the Twenty-Fifth Annual ACM-SIAM Symposium on Discrete Algorithms. p. 217. arXiv:1304.2338. doi:10.1137/1.9781611973402.16. ISBN 978-1-61197-338-9. S2CID 10733914. Archived from the original (PDF) on 3 March 2016.
  8. ^ Knight, Helen (7 January 2014). "New algorithm can dramatically streamline solutions to the 'max flow' problem". MIT News. Retrieved 8 January 2014.
  9. ^ a b Orlin, James B. (2013). "Max flows in O(nm) time, or better". Proceedings of the forty-fifth annual ACM symposium on Theory of Computing. pp. 765–774. CiteSeerX 10.1.1.259.5759. doi:10.1145/2488608.2488705. ISBN 9781450320290. S2CID 207205207.
  10. ^ a b Chen, L.; Kyng, R.; Liu, Y.P.; Gutenberg, M.P.; Sachdeva, S. (2022). "Maximum Flow and Minimum-Cost Flow in Almost-Linear Time". arXiv:2203.00671 [cs.DS].
  11. ^ Klarreich, Erica (8 June 2022). "Researchers Achieve 'Absurdly Fast' Algorithm for Network Flow". Quanta Magazine. Retrieved 8 June 2022.
  12. ^ Bernstein, Aaron; Nanongkai, Danupon; Wulff-Nilsen, Christian (30 October 2022). "Negative-Weight Single-Source Shortest Paths in Near-linear Time". arXiv:2203.03456 [cs.DS].
  13. ^ Brubaker, Ben (18 January 2023). "Finally, a Fast Algorithm for Shortest Paths on Negative Graphs". Quanta Magazine. Retrieved 25 January 2023.
  14. ^ "FOCS 2022". focs2022.eecs.berkeley.edu. Retrieved 25 January 2023.
  15. ^ Santosh, Nagarakatte. "FOCS 2022 Best Paper Award for Prof. Aaron Bernstein's Paper". www.cs.rutgers.edu. Retrieved 25 January 2023.
  16. ^ Malhotra, V.M.; Kumar, M. Pramodh; Maheshwari, S.N. (1978). "An   algorithm for finding maximum flows in networks" (PDF). Information Processing Letters. 7 (6): 277–278. doi:10.1016/0020-0190(78)90016-9.
  17. ^ a b c Goldberg, A. V.; Tarjan, R. E. (1988). "A new approach to the maximum-flow problem". Journal of the ACM. 35 (4): 921. doi:10.1145/48014.61051. S2CID 52152408.
  18. ^ Cheriyan, J.; Maheshwari, S. N. (1988). "Analysis of preflow push algorithms for maximum network flow". Foundations of Software Technology and Theoretical Computer Science. Lecture Notes in Computer Science. Vol. 338. pp. 30–48. doi:10.1007/3-540-50517-2_69. ISBN 978-3-540-50517-4. ISSN 0302-9743.
  19. ^ King, V.; Rao, S.; Tarjan, R. (1994). "A Faster Deterministic Maximum Flow Algorithm". Journal of Algorithms. 17 (3): 447–474. doi:10.1006/jagm.1994.1044. S2CID 15493.
  20. ^ Goldberg, A. V.; Rao, S. (1998). "Beyond the flow decomposition barrier". Journal of the ACM. 45 (5): 783. doi:10.1145/290179.290181. S2CID 96030.
  21. ^ Kathuria, T.; Liu, Y.P.; Sidford, A. (16–19 November 2020). Unit Capacity Maxflow in Almost   Time. Durham, NC, USA: IEEE. pp. 119–130.
  22. ^ Madry, Aleksander (9–11 October 2016). Computing Maximum Flow with Augmenting Electrical Flows. New Brunswick, New Jersey: IEEE. pp. 593–602.
  23. ^ Brand, J. vd; Lee, Y.T.; Nanongkai, D.; Peng, R.; Saranurak, T.; Sidford, A.; Song, Z.; Wang, D. (16–19 November 2020). Bipartite Matching in Nearly-linear Time on Moderately Dense Graphs. Durham, NC, USA: IEEE. pp. 919–930.
  24. ^ Brand, J. vd; Lee, Y.T.; Liu, Y.P.; Saranurak, T.; Sidford, A; Song, Z.; Wang, D. (2021). "Minimum Cost Flows, MDPs, and ℓ1-Regression in Nearly Linear Time for Dense Instances". arXiv:2101.05719 [cs.DS].
  25. ^ Gao, Y.; Liu, Y.P.; Peng, R. (2021). "Fully Dynamic Electrical Flows: Sparse Maxflow Faster Than Goldberg-Rao". arXiv:2101.07233 [cs.DS].
  26. ^ Itai, A.; Perl, Y.; Shiloach, Y. (1982). "The complexity of finding maximum disjoint paths with length constraints". Networks. 12 (3): 277–286. doi:10.1002/net.3230120306. ISSN 1097-0037.
  27. ^ Schwartz, B. L. (1966). "Possible Winners in Partially Completed Tournaments". SIAM Review. 8 (3): 302–308. Bibcode:1966SIAMR...8..302S. doi:10.1137/1008062. JSTOR 2028206.
  28. ^ a b Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein (2001). "26. Maximum Flow". Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill. pp. 643–668. ISBN 978-0-262-03293-3.{{cite book}}: CS1 maint: multiple names: authors list (link)
  29. ^ Carl Kingsford. "Max-flow extensions: circulations with demands" (PDF).
  30. ^ . GitLab. Archived from the original on 22 December 2019. Retrieved 22 December 2019.
  31. ^ "Algorithm Design". pearson.com. Retrieved 21 December 2019.
  32. ^ Schauer, Joachim; Pferschy, Ulrich (1 July 2013). "The maximum flow problem with disjunctive constraints". Journal of Combinatorial Optimization. 26 (1): 109–119. CiteSeerX 10.1.1.414.4496. doi:10.1007/s10878-011-9438-7. ISSN 1382-6905. S2CID 6598669.

Further reading edit

  • Joseph Cheriyan and Kurt Mehlhorn (1999). "An analysis of the highest-level selection rule in the preflow-push max-flow algorithm". Information Processing Letters. 69 (5): 239–242. CiteSeerX 10.1.1.42.8563. doi:10.1016/S0020-0190(99)00019-8.
  • Daniel D. Sleator and Robert E. Tarjan (1983). "A data structure for dynamic trees" (PDF). Journal of Computer and System Sciences. 26 (3): 362–391. doi:10.1016/0022-0000(83)90006-5. ISSN 0022-0000.
  • Eugene Lawler (2001). "4. Network Flows". Combinatorial Optimization: Networks and Matroids. Dover. pp. 109–177. ISBN 978-0-486-41453-9.

maximum, flow, problem, optimization, theory, maximum, flow, problems, involve, finding, feasible, flow, through, flow, network, that, obtains, maximum, possible, flow, rate, flow, network, problem, each, human, willing, adopt, however, each, preference, only,. In optimization theory maximum flow problems involve finding a feasible flow through a flow network that obtains the maximum possible flow rate Flow network for the problem Each human ri is willing to adopt a cat wi1 and or a dog wi2 However each pet pi has a preference for only a subset of the humans Find any matching of pets to humans such that the maximum number of pets are adopted by one of its preferred humans The maximum flow problem can be seen as a special case of more complex network flow problems such as the circulation problem The maximum value of an s t flow i e flow from source s to sink t is equal to the minimum capacity of an s t cut i e cut severing s from t in the network as stated in the max flow min cut theorem Contents 1 History 2 Definition 3 Algorithms 4 Integral flow theorem 5 Application 5 1 Multi source multi sink maximum flow problem 5 2 Maximum cardinality bipartite matching 5 3 Minimum path cover in directed acyclic graph 5 4 Maximum flow with vertex capacities 5 5 Maximum number of paths from s to t 5 6 Closure problem 6 Real world applications 6 1 Baseball elimination 6 2 Airline scheduling 6 3 Circulation demand problem 6 4 Image segmentation 7 Extensions 8 References 9 Further readingHistory editThe maximum flow problem was first formulated in 1954 by T E Harris and F S Ross as a simplified model of Soviet railway traffic flow 1 2 3 In 1955 Lester R Ford Jr and Delbert R Fulkerson created the first known algorithm the Ford Fulkerson algorithm 4 5 In their 1955 paper 4 Ford and Fulkerson wrote that the problem of Harris and Ross is formulated as follows see 1 p 5 Consider a rail network connecting two cities by way of a number of intermediate cities where each link of the network has a number assigned to it representing its capacity Assuming a steady state condition find a maximal flow from one given city to the other In their book Flows in Network 5 in 1962 Ford and Fulkerson wrote It was posed to the authors in the spring of 1955 by T E Harris who in conjunction with General F S Ross Ret had formulated a simplified model of railway traffic flow and pinpointed this particular problem as the central one suggested by the model 11 where 11 refers to the 1955 secret report Fundamentals of a Method for Evaluating Rail net Capacities by Harris and Ross 3 see 1 p 5 Over the years various improved solutions to the maximum flow problem were discovered notably the shortest augmenting path algorithm of Edmonds and Karp and independently Dinitz the blocking flow algorithm of Dinitz the push relabel algorithm of Goldberg and Tarjan and the binary blocking flow algorithm of Goldberg and Rao The algorithms of Sherman 6 and Kelner Lee Orecchia and Sidford 7 8 respectively find an approximately optimal maximum flow but only work in undirected graphs In 2013 James B Orlin published a paper describing an O V E displaystyle O V E nbsp algorithm 9 In 2022 Li Chen Rasmus Kyng Yang P Liu Richard Peng Maximilian Probst Gutenberg and Sushant Sachdeva published an almost linear time algorithm running in O E 1 o 1 displaystyle O E 1 o 1 nbsp for the minimum cost flow problem of which for the maximum flow problem is a particular case 10 11 For the single source shortest path SSSP problem with negative weights another particular case of minimum cost flow problem an algorithm in almost linear time has also been reported 12 13 Both algorithms were deemed best papers at the 2022 Symposium on Foundations of Computer Science 14 15 Definition edit nbsp A flow network with source s and sink t The numbers next to the edges are the capacities First we establish some notation Let N V E displaystyle N V E nbsp be a network with s t V displaystyle s t in V nbsp being the source and the sink of N displaystyle N nbsp respectively If g displaystyle g nbsp is a function on the edges of N displaystyle N nbsp then its value on u v E displaystyle u v in E nbsp is denoted by g u v displaystyle g uv nbsp or g u v displaystyle g u v nbsp Definition The capacity of an edge is the maximum amount of flow that can pass through an edge Formally it is a map c E R displaystyle c E to mathbb R nbsp Definition A flow is a map f E R displaystyle f E to mathbb R nbsp that satisfies the following Capacity constraint The flow of an edge cannot exceed its capacity in other words f u v c u v displaystyle f uv leq c uv nbsp for all u v E displaystyle u v in E nbsp Conservation of flows The sum of the flows entering a node must equal the sum of the flows exiting that node except for the source and the sink Or v V s t u u v E f u v u v u E f v u displaystyle forall v in V setminus s t quad sum u u v in E f uv sum u v u in E f vu nbsp dd Remark Flows are skew symmetric f u v f v u displaystyle f uv f vu nbsp for all u v E displaystyle u v in E nbsp Definition The value of flow is the amount of flow passing from the source to the sink Formally for a flow f E R displaystyle f E to mathbb R nbsp it is given by f v s v E f s v u u t E f u t displaystyle f sum v s v in E f sv sum u u t in E f ut nbsp Definition The maximum flow problem is to route as much flow as possible from the source to the sink in other words find the flow f max displaystyle f textrm max nbsp with maximum value Note that several maximum flows may exist and if arbitrary real or even arbitrary rational values of flow are permitted instead of just integers there is either exactly one maximum flow or infinitely many since there are infinitely many linear combinations of the base maximum flows In other words if we send x displaystyle x nbsp units of flow on edge u displaystyle u nbsp in one maximum flow and y gt x displaystyle y gt x nbsp units of flow on u displaystyle u nbsp in another maximum flow then for each D 0 y x displaystyle Delta in 0 y x nbsp we can send x D displaystyle x Delta nbsp units on u displaystyle u nbsp and route the flow on remaining edges accordingly to obtain another maximum flow If flow values can be any real or rational numbers then there are infinitely many such D displaystyle Delta nbsp values for each pair x y displaystyle x y nbsp Algorithms editThe following table lists algorithms for solving the maximum flow problem Here V displaystyle V nbsp and E displaystyle E nbsp denote the number of vertices and edges of the network The value U displaystyle U nbsp refers to the largest edge capacity after rescaling all capacities to integer values if the network contains irrational capacities U displaystyle U nbsp may be infinite Method Year Complexity DescriptionLinear programming Constraints given by the definition of a legal flow See the linear program here Ford Fulkerson algorithm 1955 O E U displaystyle O EU nbsp As long as there is an open path through the residual graph send the minimum of the residual capacities on that path Edmonds Karp algorithm 1970 O V E 2 displaystyle O VE 2 nbsp A specialization of Ford Fulkerson finding augmenting paths with breadth first search Dinic s algorithm 1970 O V 2 E displaystyle O V 2 E nbsp In each phase the algorithms builds a layered graph with breadth first search on the residual graph The maximum flow in a layered graph can be calculated in O V E displaystyle O VE nbsp time and the maximum number of phases is V 1 displaystyle V 1 nbsp In networks with unit capacities Dinic s algorithm terminates in O min V 2 3 E 1 2 E displaystyle O min V 2 3 E 1 2 E nbsp time MKM Malhotra Kumar Maheshwari algorithm 16 1978 O V 3 displaystyle O V 3 nbsp A modification of Dinic s algorithm with a different approach to constructing blocking flows Refer to the original paper Dinic s algorithm with dynamic trees 1983 O V E log V displaystyle O VE log V nbsp The dynamic trees data structure speeds up the maximum flow computation in the layered graph to O V E log V displaystyle O VE log V nbsp General push relabel algorithm 17 1986 O V 2 E displaystyle O V 2 E nbsp The push relabel algorithm maintains a preflow i e a flow function with the possibility of excess in the vertices The algorithm runs while there is a vertex with positive excess i e an active vertex in the graph The push operation increases the flow on a residual edge and a height function on the vertices controls through which residual edges can flow be pushed The height function is changed by the relabel operation The proper definitions of these operations guarantee that the resulting flow function is a maximum flow Push relabel algorithm with FIFO vertex selection rule 17 1988 O V 3 displaystyle O V 3 nbsp Push relabel algorithm variant which always selects the most recently active vertex and performs push operations while the excess is positive and there are admissible residual edges from this vertex Push relabel algorithm with maximum distance vertex selection rule 18 1988 O V 2 E displaystyle O V 2 sqrt E nbsp Push relabel algorithm variant which always selects the most distant vertex from s displaystyle s nbsp or t displaystyle t nbsp i e the highest label vertex but otherwise proceeds as the FIFO algorithm Push relabel algorithm with dynamic trees 17 1988 O V E log V 2 E displaystyle O left VE log frac V 2 E right nbsp The algorithm builds limited size trees on the residual graph regarding to the height function These trees provide multilevel push operations i e pushing along an entire saturating path instead of a single edge KRT King Rao Tarjan s algorithm 19 1994 O V E log E V log V V displaystyle O left VE log frac E V log V V right nbsp Binary blocking flow algorithm 20 1998 O E min V 2 3 E 1 2 log V 2 E log U displaystyle O left E cdot min V 2 3 E 1 2 cdot log frac V 2 E cdot log U right nbsp James B Orlin s KRT King Rao Tarjan s algorithm 9 2013 O V E displaystyle O VE nbsp Orlin s algorithm solves max flow in O V E displaystyle O VE nbsp time for E O V 16 15 ϵ displaystyle E leq O V frac 16 15 epsilon nbsp while KRT solves it in O V E displaystyle O VE nbsp for E gt V 1 ϵ displaystyle E gt V 1 epsilon nbsp Kathuria Liu Sidford algorithm 21 2020 E 4 3 o 1 U 1 3 displaystyle E 4 3 o 1 U 1 3 nbsp Interior point methods and edge boosting using ℓ p displaystyle ell p nbsp norm flows Builds on earlier algorithm of Madry which achieved runtime O E 10 7 U 1 7 displaystyle tilde O E 10 7 U 1 7 nbsp 22 BLNPSSSW BLLSSSW algorithm 23 24 2020 O E V 3 2 log U displaystyle tilde O E V 3 2 log U nbsp Interior point methods and dynamic maintenance of electric flows with expander decompositions Gao Liu Peng algorithm 25 2021 O E 3 2 1 328 log U displaystyle tilde O E frac 3 2 frac 1 328 log U nbsp Gao Liu and Peng s algorithm revolves around dynamically maintaining the augmenting electrical flows at the core of the interior point method based algorithm from Madry JACM 16 This entails designing data structures that in limited settings return edges with large electric energy in a graph undergoing resistance updates Chen Kyng Liu Peng Gutenberg and Sachdeva s algorithm 10 2022 O E 1 o 1 log U displaystyle O E 1 o 1 log U nbsp Chen Kyng Liu Peng Gutenberg and Sachdeva s algorithm solves maximum flow and minimum cost flow in almost linear time by building the flow through a sequence of E 1 o 1 displaystyle E 1 o 1 nbsp approximate undirected minimum ratio cycles each of which is computed and processed in amortized E o 1 displaystyle E o 1 nbsp time using a dynamic data structure For additional algorithms see Goldberg amp Tarjan 1988 Integral flow theorem editThe integral flow theorem states that If each edge in a flow network has integral capacity then there exists an integral maximal flow The claim is not only that the value of the flow is an integer which follows directly from the max flow min cut theorem but that the flow on every edge is integral This is crucial for many combinatorial applications see below where the flow across an edge may encode whether the item corresponding to that edge is to be included in the set sought or not Application editMulti source multi sink maximum flow problem edit nbsp Fig 4 1 1 Transformation of a multi source multi sink maximum flow problem into a single source single sink maximum flow problemGiven a network N V E displaystyle N V E nbsp with a set of sources S s 1 s n displaystyle S s 1 ldots s n nbsp and a set of sinks T t 1 t m displaystyle T t 1 ldots t m nbsp instead of only one source and one sink we are to find the maximum flow across N displaystyle N nbsp We can transform the multi source multi sink problem into a maximum flow problem by adding a consolidated source connecting to each vertex in S displaystyle S nbsp and a consolidated sinkconnected by each vertex in T displaystyle T nbsp also known as supersource and supersink with infinite capacity on each edge See Fig 4 1 1 Maximum cardinality bipartite matching edit nbsp Fig 4 3 1 Transformation of a maximum bipartite matching problem into a maximum flow problemGiven a bipartite graph G X Y E displaystyle G X cup Y E nbsp we are to find a maximum cardinality matching in G displaystyle G nbsp that is a matching that contains the largest possible number of edges This problem can be transformed into a maximum flow problem by constructing a network N X Y s t E displaystyle N X cup Y cup s t E nbsp where E displaystyle E nbsp contains the edges in G displaystyle G nbsp directed from X displaystyle X nbsp to Y displaystyle Y nbsp s x E displaystyle s x in E nbsp for each x X displaystyle x in X nbsp and y t E displaystyle y t in E nbsp for each y Y displaystyle y in Y nbsp c e 1 displaystyle c e 1 nbsp for each e E displaystyle e in E nbsp See Fig 4 3 1 Then the value of the maximum flow in N displaystyle N nbsp is equal to the size of the maximum matching in G displaystyle G nbsp and a maximum cardinality matching can be found by taking those edges that have flow 1 displaystyle 1 nbsp in an integral max flow Minimum path cover in directed acyclic graph edit Given a directed acyclic graph G V E displaystyle G V E nbsp we are to find the minimum number of vertex disjoint paths to cover each vertex in V displaystyle V nbsp We can construct a bipartite graph G V out V in E displaystyle G V textrm out cup V textrm in E nbsp from G displaystyle G nbsp where V out v out v V v has outgoing edge s displaystyle V textrm out v textrm out mid v in V land v text has outgoing edge s nbsp V in v in v V v has incoming edge s displaystyle V textrm in v textrm in mid v in V land v text has incoming edge s nbsp E u out v in V o u t V i n u v E displaystyle E u textrm out v textrm in in V out times V in mid u v in E nbsp Then it can be shown that G displaystyle G nbsp has a matching M displaystyle M nbsp of size m displaystyle m nbsp if and only if G displaystyle G nbsp has a vertex disjoint path cover C displaystyle C nbsp containing m displaystyle m nbsp edges and n m displaystyle n m nbsp paths where n displaystyle n nbsp is the number of vertices in G displaystyle G nbsp Therefore the problem can be solved by finding the maximum cardinality matching in G displaystyle G nbsp instead Assume we have found a matching M displaystyle M nbsp of G displaystyle G nbsp and constructed the cover C displaystyle C nbsp from it Intuitively if two vertices u o u t v i n displaystyle u mathrm out v mathrm in nbsp are matched in M displaystyle M nbsp then the edge u v displaystyle u v nbsp is contained in C displaystyle C nbsp Clearly the number of edges in C displaystyle C nbsp is m displaystyle m nbsp To see that C displaystyle C nbsp is vertex disjoint consider the following Each vertex v out displaystyle v textrm out nbsp in G displaystyle G nbsp can either be non matched in M displaystyle M nbsp in which case there are no edges leaving v displaystyle v nbsp in C displaystyle C nbsp or it can be matched in which case there is exactly one edge leaving v displaystyle v nbsp in C displaystyle C nbsp In either case no more than one edge leaves any vertex v displaystyle v nbsp in C displaystyle C nbsp Similarly for each vertex v in displaystyle v textrm in nbsp in G displaystyle G nbsp if it is matched there is a single incoming edge into v displaystyle v nbsp in C displaystyle C nbsp otherwise v displaystyle v nbsp has no incoming edges in C displaystyle C nbsp Thus no vertex has two incoming or two outgoing edges in C displaystyle C nbsp which means all paths in C displaystyle C nbsp are vertex disjoint To show that the cover C displaystyle C nbsp has size n m displaystyle n m nbsp we start with an empty cover and build it incrementally To add a vertex u displaystyle u nbsp to the cover we can either add it to an existing path or create a new path of length zero starting at that vertex The former case is applicable whenever either u v E displaystyle u v in E nbsp and some path in the cover starts at v displaystyle v nbsp or v u E displaystyle v u in E nbsp and some path ends at v displaystyle v nbsp The latter case is always applicable In the former case the total number of edges in the cover is increased by 1 and the number of paths stays the same in the latter case the number of paths is increased and the number of edges stays the same It is now clear that after covering all n displaystyle n nbsp vertices the sum of the number of paths and edges in the cover is n displaystyle n nbsp Therefore if the number of edges in the cover is m displaystyle m nbsp the number of paths is n m displaystyle n m nbsp Maximum flow with vertex capacities edit nbsp Fig 4 4 1 Transformation of a maximum flow problem with vertex capacities constraint into the original maximum flow problem by node splittingLet N V E displaystyle N V E nbsp be a network Suppose there is capacity at each node in addition to edge capacity that is a mapping c V R displaystyle c V to mathbb R nbsp such that the flow f displaystyle f nbsp has to satisfy not only the capacity constraint and the conservation of flows but also the vertex capacity constraint i V f i v c v v V s t displaystyle sum i in V f iv leq c v qquad forall v in V backslash s t nbsp In other words the amount of flow passing through a vertex cannot exceed its capacity To find the maximum flow across N displaystyle N nbsp we can transform the problem into the maximum flow problem in the original sense by expanding N displaystyle N nbsp First each v V displaystyle v in V nbsp is replaced by v in displaystyle v text in nbsp and v out displaystyle v text out nbsp where v in displaystyle v text in nbsp is connected by edges going into v displaystyle v nbsp and v out displaystyle v text out nbsp is connected to edges coming out from v displaystyle v nbsp then assign capacity c v displaystyle c v nbsp to the edge connecting v in displaystyle v text in nbsp and v out displaystyle v text out nbsp see Fig 4 4 1 In this expanded network the vertex capacity constraint is removed and therefore the problem can be treated as the original maximum flow problem Maximum number of paths from s to t edit Given a directed graph G V E displaystyle G V E nbsp and two vertices s displaystyle s nbsp and t displaystyle t nbsp we are to find the maximum number of paths from s displaystyle s nbsp to t displaystyle t nbsp This problem has several variants 1 The paths must be edge disjoint This problem can be transformed to a maximum flow problem by constructing a network N V E displaystyle N V E nbsp from G displaystyle G nbsp with s displaystyle s nbsp and t displaystyle t nbsp being the source and the sink of N displaystyle N nbsp respectively and assigning each edge a capacity of 1 displaystyle 1 nbsp In this network the maximum flow is k displaystyle k nbsp iff there are k displaystyle k nbsp edge disjoint paths 2 The paths must be independent i e vertex disjoint except for s displaystyle s nbsp and t displaystyle t nbsp We can construct a network N V E displaystyle N V E nbsp from G displaystyle G nbsp with vertex capacities where the capacities of all vertices and all edges are 1 displaystyle 1 nbsp Then the value of the maximum flow is equal to the maximum number of independent paths from s displaystyle s nbsp to t displaystyle t nbsp 3 In addition to the paths being edge disjoint and or vertex disjoint the paths also have a length constraint we count only paths whose length is exactly k displaystyle k nbsp or at most k displaystyle k nbsp Most variants of this problem are NP complete except for small values of k displaystyle k nbsp 26 Closure problem edit Main article Closure problem A closure of a directed graph is a set of vertices C such that no edges leave C The closure problem is the task of finding the maximum weight or minimum weight closure in a vertex weighted directed graph It may be solved in polynomial time using a reduction to the maximum flow problem Real world applications editBaseball elimination edit nbsp Construction of network flow for baseball elimination problemIn the baseball elimination problem there are n teams competing in a league At a specific stage of the league season wi is the number of wins and ri is the number of games left to play for team i and rij is the number of games left against team j A team is eliminated if it has no chance to finish the season in the first place The task of the baseball elimination problem is to determine which teams are eliminated at each point during the season Schwartz 27 proposed a method which reduces this problem to maximum network flow In this method a network is created to determine whether team k is eliminated Let G V E be a network with s t V being the source and the sink respectively One adds a game nodeij which represents the number of plays between these two teams We also add a team node for each team and connect each game node i j with i lt j to V and connects each of them from s by an edge with capacity rij which represents the number of plays between these two teams We also add a team node for each team and connect each game node i j with two team nodes i and j to ensure one of them wins One does not need to restrict the flow value on these edges Finally edges are made from team node i to the sink node t and the capacity of wk rk wi is set to prevent team i from winning more than wk rk Let S be the set of all teams participating in the league and let r S k i j S k i lt j r i j displaystyle r S k sum i j in S k atop i lt j r ij nbsp In this method it is claimed team k is not eliminated if and only if a flow value of size r S k exists in network G In the mentioned article it is proved that this flow value is the maximum flow value from s to t Airline scheduling edit In the airline industry a major problem is the scheduling of the flight crews The airline scheduling problem can be considered as an application of extended maximum network flow The input of this problem is a set of flights F which contains the information about where and when each flight departs and arrives In one version of airline scheduling the goal is to produce a feasible schedule with at most k crews To solve this problem one uses a variation of the circulation problem called bounded circulation which is the generalization of network flow problems with the added constraint of a lower bound on edge flows Let G V E be a network with s t V as the source and the sink nodes For the source and destination of every flight i one adds two nodes to V node si as the source and node di as the destination node of flight i One also adds the following edges to E An edge with capacity 0 1 between s and each si An edge with capacity 0 1 between each di and t An edge with capacity 1 1 between each pair of si and di An edge with capacity 0 1 between each di and sj if source sj is reachable with a reasonable amount of time and cost from the destination of flight i An edge with capacity 0 between s and t In the mentioned method it is claimed and proved that finding a flow value of k in G between s and t is equal to finding a feasible schedule for flight set F with at most k crews 28 Another version of airline scheduling is finding the minimum needed crews to perform all the flights To find an answer to this problem a bipartite graph G A B E is created where each flight has a copy in set A and set B If the same plane can perform flight j after flight i i A is connected to j B A matching in G induces a schedule for F and obviously maximum bipartite matching in this graph produces an airline schedule with minimum number of crews 28 As it is mentioned in the Application part of this article the maximum cardinality bipartite matching is an application of maximum flow problem Circulation demand problem edit There are some factories that produce goods and some villages where the goods have to be delivered They are connected by a networks of roads with each road having a capacity c for maximum goods that can flow through it The problem is to find if there is a circulation that satisfies the demand This problem can be transformed into a maximum flow problem Add a source node s and add edges from it to every factory node fi with capacity pi where pi is the production rate of factory fi Add a sink node t and add edges from all villages vi to t with capacity di where di is the demand rate of village vi Let G V E be this new network There exists a circulation that satisfies the demand if and only if Maximum flow value G i v d i displaystyle sum i in v d i nbsp If there exists a circulation looking at the max flow solution would give the answer as to how much goods have to be sent on a particular road for satisfying the demands The problem can be extended by adding a lower bound on the flow on some edges 29 Image segmentation edit nbsp Source image of size 8x8 nbsp Network built from the bitmap The source is on the left the sink on the right The darker an edge is the bigger is its capacity ai is high when the pixel is green bi when the pixel is not green The penalty pij are all equal 30 In their book Kleinberg and Tardos present an algorithm for segmenting an image 31 They present an algorithm to find the background and the foreground in an image More precisely the algorithm takes a bitmap as an input modelled as follows ai 0 is the likelihood that pixel i belongs to the foreground bi 0 in the likelihood that pixel i belongs to the background and pij is the penalty if two adjacent pixels i and j are placed one in the foreground and the other in the background The goal is to find a partition A B of the set of pixels that maximize the following quantity q A B i A a i i B b i i j adjacent A i j 1 p i j displaystyle q A B sum i in A a i sum i in B b i sum begin matrix i j text adjacent A cap i j 1 end matrix p ij nbsp Indeed for pixels in A considered as the foreground we gain ai for all pixels in B considered as the background we gain bi On the border between two adjacent pixels i and j we loose pij It is equivalent to minimize the quantity q A B i A b i i B a i i j adjacent A i j 1 p i j displaystyle q A B sum i in A b i sum i in B a i sum begin matrix i j text adjacent A cap i j 1 end matrix p ij nbsp because q A B i A B a i i A B b i q A B displaystyle q A B sum i in A cup B a i sum i in A cup B b i q A B nbsp nbsp Minimum cut displayed on the network triangles VS circles We now construct the network whose nodes are the pixel plus a source and a sink see Figure on the right We connect the source to pixel i by an edge of weight ai We connect the pixel i to the sink by an edge of weight bi We connect pixel i to pixel j with weight pij Now it remains to compute a minimum cut in that network or equivalently a maximum flow The last figure shows a minimum cut Extensions edit1 In the minimum cost flow problem each edge u v also has a cost coefficient auv in addition to its capacity If the flow through the edge is fuv then the total cost is auvfuv It is required to find a flow of a given size d with the smallest cost In most variants the cost coefficients may be either positive or negative There are various polynomial time algorithms for this problem 2 The maximum flow problem can be augmented by disjunctive constraints a negative disjunctive constraint says that a certain pair of edges cannot simultaneously have a nonzero flow a positive disjunctive constraints says that in a certain pair of edges at least one must have a nonzero flow With negative constraints the problem becomes strongly NP hard even for simple networks With positive constraints the problem is polynomial if fractional flows are allowed but may be strongly NP hard when the flows must be integral 32 References edit a b c Schrijver A 2002 On the history of the transportation and maximum flow problems Mathematical Programming 91 3 437 445 CiteSeerX 10 1 1 23 5134 doi 10 1007 s101070100259 S2CID 10210675 Gass Saul I Assad Arjang A 2005 Mathematical algorithmic and professional developments of operations research from 1951 to 1956 An Annotated Timeline of Operations Research International Series in Operations Research amp Management Science Vol 75 pp 79 110 doi 10 1007 0 387 25837 X 5 ISBN 978 1 4020 8116 3 a b Harris T E Ross F S 1955 Fundamentals of a Method for Evaluating Rail Net Capacities PDF Research Memorandum Archived from the original PDF on 8 January 2014 a b Ford L R Fulkerson D R 1956 Maximal flow through a network Canadian Journal of Mathematics 8 399 404 doi 10 4153 CJM 1956 045 5 a b Ford L R Jr Fulkerson D R Flows in Networks Princeton University Press 1962 Sherman Jonah 2013 Nearly Maximum Flows in Nearly Linear Time Proceedings of the 54th Annual IEEE Symposium on Foundations of Computer Science pp 263 269 arXiv 1304 2077 doi 10 1109 FOCS 2013 36 ISBN 978 0 7695 5135 7 S2CID 14681906 Kelner J A Lee Y T Orecchia L Sidford A 2014 An Almost Linear Time Algorithm for Approximate Max Flow in Undirected Graphs and its Multicommodity Generalizations PDF Proceedings of the Twenty Fifth Annual ACM SIAM Symposium on Discrete Algorithms p 217 arXiv 1304 2338 doi 10 1137 1 9781611973402 16 ISBN 978 1 61197 338 9 S2CID 10733914 Archived from the original PDF on 3 March 2016 Knight Helen 7 January 2014 New algorithm can dramatically streamline solutions to the max flow problem MIT News Retrieved 8 January 2014 a b Orlin James B 2013 Max flows in O nm time or better Proceedings of the forty fifth annual ACM symposium on Theory of Computing pp 765 774 CiteSeerX 10 1 1 259 5759 doi 10 1145 2488608 2488705 ISBN 9781450320290 S2CID 207205207 a b Chen L Kyng R Liu Y P Gutenberg M P Sachdeva S 2022 Maximum Flow and Minimum Cost Flow in Almost Linear Time arXiv 2203 00671 cs DS Klarreich Erica 8 June 2022 Researchers Achieve Absurdly Fast Algorithm for Network Flow Quanta Magazine Retrieved 8 June 2022 Bernstein Aaron Nanongkai Danupon Wulff Nilsen Christian 30 October 2022 Negative Weight Single Source Shortest Paths in Near linear Time arXiv 2203 03456 cs DS Brubaker Ben 18 January 2023 Finally a Fast Algorithm for Shortest Paths on Negative Graphs Quanta Magazine Retrieved 25 January 2023 FOCS 2022 focs2022 eecs berkeley edu Retrieved 25 January 2023 Santosh Nagarakatte FOCS 2022 Best Paper Award for Prof Aaron Bernstein s Paper www cs rutgers edu Retrieved 25 January 2023 Malhotra V M Kumar M Pramodh Maheshwari S N 1978 An O V 3 displaystyle O V 3 nbsp algorithm for finding maximum flows in networks PDF Information Processing Letters 7 6 277 278 doi 10 1016 0020 0190 78 90016 9 a b c Goldberg A V Tarjan R E 1988 A new approach to the maximum flow problem Journal of the ACM 35 4 921 doi 10 1145 48014 61051 S2CID 52152408 Cheriyan J Maheshwari S N 1988 Analysis of preflow push algorithms for maximum network flow Foundations of Software Technology and Theoretical Computer Science Lecture Notes in Computer Science Vol 338 pp 30 48 doi 10 1007 3 540 50517 2 69 ISBN 978 3 540 50517 4 ISSN 0302 9743 King V Rao S Tarjan R 1994 A Faster Deterministic Maximum Flow Algorithm Journal of Algorithms 17 3 447 474 doi 10 1006 jagm 1994 1044 S2CID 15493 Goldberg A V Rao S 1998 Beyond the flow decomposition barrier Journal of the ACM 45 5 783 doi 10 1145 290179 290181 S2CID 96030 Kathuria T Liu Y P Sidford A 16 19 November 2020 Unit Capacity Maxflow in Almost O m 4 3 displaystyle O m 4 3 nbsp Time Durham NC USA IEEE pp 119 130 Madry Aleksander 9 11 October 2016 Computing Maximum Flow with Augmenting Electrical Flows New Brunswick New Jersey IEEE pp 593 602 Brand J vd Lee Y T Nanongkai D Peng R Saranurak T Sidford A Song Z Wang D 16 19 November 2020 Bipartite Matching in Nearly linear Time on Moderately Dense Graphs Durham NC USA IEEE pp 919 930 Brand J vd Lee Y T Liu Y P Saranurak T Sidford A Song Z Wang D 2021 Minimum Cost Flows MDPs and ℓ1 Regression in Nearly Linear Time for Dense Instances arXiv 2101 05719 cs DS Gao Y Liu Y P Peng R 2021 Fully Dynamic Electrical Flows Sparse Maxflow Faster Than Goldberg Rao arXiv 2101 07233 cs DS Itai A Perl Y Shiloach Y 1982 The complexity of finding maximum disjoint paths with length constraints Networks 12 3 277 286 doi 10 1002 net 3230120306 ISSN 1097 0037 Schwartz B L 1966 Possible Winners in Partially Completed Tournaments SIAM Review 8 3 302 308 Bibcode 1966SIAMR 8 302S doi 10 1137 1008062 JSTOR 2028206 a b Thomas H Cormen Charles E Leiserson Ronald L Rivest and Clifford Stein 2001 26 Maximum Flow Introduction to Algorithms Second Edition MIT Press and McGraw Hill pp 643 668 ISBN 978 0 262 03293 3 a href Template Cite book html title Template Cite book cite book a CS1 maint multiple names authors list link Carl Kingsford Max flow extensions circulations with demands PDF Project imagesegmentationwithmaxflow that contains the source code to produce these illustrations GitLab Archived from the original on 22 December 2019 Retrieved 22 December 2019 Algorithm Design pearson com Retrieved 21 December 2019 Schauer Joachim Pferschy Ulrich 1 July 2013 The maximum flow problem with disjunctive constraints Journal of Combinatorial Optimization 26 1 109 119 CiteSeerX 10 1 1 414 4496 doi 10 1007 s10878 011 9438 7 ISSN 1382 6905 S2CID 6598669 Further reading editJoseph Cheriyan and Kurt Mehlhorn 1999 An analysis of the highest level selection rule in the preflow push max flow algorithm Information Processing Letters 69 5 239 242 CiteSeerX 10 1 1 42 8563 doi 10 1016 S0020 0190 99 00019 8 Daniel D Sleator and Robert E Tarjan 1983 A data structure for dynamic trees PDF Journal of Computer and System Sciences 26 3 362 391 doi 10 1016 0022 0000 83 90006 5 ISSN 0022 0000 Eugene Lawler 2001 4 Network Flows Combinatorial Optimization Networks and Matroids Dover pp 109 177 ISBN 978 0 486 41453 9 Retrieved from https en wikipedia org w index php title Maximum flow problem amp oldid 1188043509, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.