Incremental Minimum Flow Algorithms
Abstract
:1. Introduction
- determining a feasible flow, if there is one;
- from a given feasible flow, finding a minimum flow.
- using minimax algorithms which consists of finding a maximum flow from the sink node to the source node in the residual network [10].
2. Determining a Minimum Flow in a Network with an Underestimated Lower Bound
- f(x, y) ≥ l’(x, y). In this case fis, obviously, also a minimum flow in the network G’;
- f(x, y) < l’(x, y). In this case, b denotes the difference l’(x, y) − f(x, y) and we set f(x, y) = l’(x, y), creating in this way a deficit equal to -b in node x and an excess equal to b in node y. Hence, now f is a pseudoflow. Firstly, the algorithm will try to decrease the flow along directed paths from node x to node t and along directed paths from node s to node y in the residual network, decreasing in this way the absolute value of the deficit of node x, the excess of node t, the absolute value of the deficit of node s and the excess of node y by the same amount. If both nodes x and y become inactive, then the pseudoflow becomes a flow, which, moreover, is a minimum flow, whose value is by b units smaller than the value of the flow f; otherwise the algorithm will try to decrease the flow along directed paths from node x to node y in the residual network, decreasing the absolute value of the deficit of node x and the excess of node y by the same amount. If both of them become 0, then the pseudoflow becomes a flow, which is a minimum flow, whose value is by b units smaller than the value of the initial flow f. If the deficit of node x still remains nonzero, its absolute value can be further reduced by decreasing theflow along directed paths from x to s (if there are any), which also increases the absolute value of the deficit of node s. It is possible that the deficit of node x remains strictly negative after all these decreases. This occurs when the network G’ contains no feasible flow. If the deficit of node x becomes 0, then, to suppress the remaining excess of node y, the algorithm will decrease the flow along directed paths from t to y (if there are any), which also increases the excess of node t. Again, after all these flow decreases, the node y could still be active. This happens when the network G’ contains no feasible flow. Consequently, if there is a feasible flow in the modified network, G’, then the value of the minimum flow in G’ might be smaller than, larger than or the same as the value of the minimum flow in G.
- Underestimated Lower Bound Algorithm;
- Begin
- let f be a minimum flow in the network G;
- determine the network G’;
- if f(x, y) < l’(x, y) then
- begin
- f(x, y) = l’(x, y);
- determine the residual network G’(f);
- while e(x) < 0 and there is a directed path from x to t in G’(f) and e(y) > 0 and there is a directed path from s to y in G’(f) do begin
- determine a directed path D from x to t in G’(f);
- r(D) = min{r(i, j) | (i, j) ∈D};
- determine a directed path D’ from s to y in G’(f);
- r(D’) = min{r(i, j) | (i, j) ∈D’};
- u = min{-e(x), r(D), e(y), r(D’)};
- pull u units of flow from x to t along the path D;
- pull u units of flow from s to y along the path D’;
- end;
- while e(x) < 0 and e(y) > 0 and there is a directed path from x to y in G’(f) do begin
- determine a directed path D from x to y in G’(f);
- r(D) = min{r(i, j) | (i, j) ∈D};
- pull min{−e(x), e(y), r(D)} units of flow from x to y along the path D;
- end;
- while e(x) < 0 and there is a directed path from x to s in G’(f) do begin
- determine a directed path D from x to s in G’(f);
- r(D) = min{r(i, j) | (i, j) ∈D};
- pull min{−e(x), r(D)} units of flow from x to s along the path D;
- end;
- if e(x) < 0 then write “There is no feasible flow in G’.”
- else begin
- while e(y) >0 and there is a directed path from t to y in G’(f) do begin
- determine a directed path D from t to y in G’(f);
- r(D) = min{r(i, j) | (i, j) ∈D};
- pull min{e(y), r(D)} units of flow from t to y along the path D;
- end;
- if e(y) > 0 then write “There is no feasible flow in G’.”
- end;
- end;
- else write “The minimum flow f in G is also a minimum flow in G’.”
- end.
3. Determining a Minimum Flow in a Network with an Overestimated Lower Bound
- f (x, y)> l(x, y). In this case fis also a minimum flow in the network G’;
- f (x, y) = l(x, y). In this case, there are two sub-cases:
- ○
- The residual network G(f) contains the arc (x, y).Then, reducing the lower bound of the arc (x, y) does not create a new arc in the residual network G’(f), nor a new decreasing path. Consequently, in this sub-case, f is also a minimum flow in the network G’;
- ○
- The residual network G(f) does not contain the arc (x, y). This implies that by reducing its lower bound by a, the residual network G’(f) will contain an additional arc (x, y), whose residual capacity is equal to a. In this case, the residual network G’(f) is obtained from G(f) by simply adding the arc (x, y), whose residual capacity is equal to a. The addition of the arc (x, y) to the residual network means that it is possible, but not mandatory, that the residual network G’(f) contains decreasing paths along which flow can be pulled. If there are such paths, they will all contain the arc (x, y). If we apply the generic decreasing path algorithm (see [11]) in G’(f), it will perform at most a flow decrease. Since the time complexity of a flow decrease is O(m), it follows that a minimum flow in G’ can be obtained in O(am) time starting with a minimum flow in G. Obviously, in this case, the minimum flow value in G’ might be smaller than the minimum flow value in G.
4. Determining a Minimum Flow in a Network with an Underestimated Arc Capacity
- f(x, y) < c(x, y). In this case f is also a minimum flow in the network G’;
- f(x, y) = c(x, y). Increasing the capacity of the arc (x, y) will imply increasing the residual capacity of the arc (y, x). Here, there are two sub-cases:
- ○
- The residual network G(f) contains the arc (y, x), which means that increasing the capacity of the arc (x, y) does not create a new arc in the residual network G’(f), nor a new decreasing path. Consequently, in this sub-case, f is also a minimum flow in the network G’;
- ○
- The residual network G(f) does not contain the arc (y, x). This implies that by increasing the capacity of the arc (x, y) by a units, the residual network G’(f) will contain an additional arc, (y, x), whose residual capacity is equal to a. Thus, in this case, the residual network G’(f) is obtained from G(f) by simply adding the arc(y, x), whose residual capacity is equal to a. The addition of the arc (y, x) to the residual network means that it is possible, yet not mandatory, that the residual network G’(f) contains decreasing paths along which flow can be pulled. If there are such paths, they will all contain the arc (y, x). If we apply the generic decreasing path algorithm (see [11]) in G’(f), it will perform at most a flow decrement. Since the time complexity of a flow decrement is O(m), it implies that a minimum flow in G’ can be obtained in O(am) time starting with a minimum flow in G. Obviously, in this case, the minimum flow value in the modified network G’ might be smaller than the minimum flow value in G.
5. Determining a Minimum Flow in a Network with an Overestimated Capacity
- f(x, y) ≤ c’(x, y). In this case fis also a minimum flow in the network G’;
- f(x, y) > c’(x, y). In this case, b denotes the difference f(x, y) − c’(x, y) and we set f(x, y) = c’(x, y), creating in this way an excess equal to b in the node x and a deficit in node y equal to -b. Hence, now f is a pseudoflow. Firstly, the algorithm will try to decrease the flow along directed paths from node s to node x and along directed paths from node y to node t in the residual network, decreasing in this way the absolute value of the deficit of node s, the excess of node x, the absolute value of the deficit of node y and the excess of node t by the same amount. If both nodes x and y become inactive, then the pseudoflow becomes a flow, which, moreover, is a minimum flow, whose value is by b units smaller than the value of the flow f; otherwise the algorithm will try to decrease the flow along directed paths from node y to node x in the residual network, decreasing the excess of node x and the absolute value of the deficit of node y by the same amount. If both of them become 0, then the pseudoflow becomes a flow, which is a minimum flow, whose value is by b units smaller than the value of the initial flow f. If the excess of node x still remains strictly positive, it can be further reduced by decreasing theflow along directed paths from t to x (if there are any), which increases the excess of node t. It is possible that the excess of node x remains strictly positive after all these decreases. This occurs when in the network G’ there is no feasible flow. If the excess of node x became 0, then, to suppress the remaining deficit of node y, the algorithm will decrease the flow along directed paths from y to s (if there any), which increases the absolute value of the deficit of node s. Again, after all these flow decreases, the node y could still be active. This happens when the network G’ contains no feasible flow. Consequently, if there is a feasible flow in the modified network, G’, then the value of the minimum flow in G’ might be smaller than, larger than or the same as the value of the minimum flow in G.
- Overestimated Capacity Algorithm;
- Begin
- let f be a minimum flow in the network G;
- determine the network G’;
- if f(x, y) > c’(x, y) then
- begin
- f(x, y) = c’(x, y);
- determine the residual network G’(f);
- while e(x) > 0 and there is a directed path from s to x in G’(f) and e(y) <0 and there is a directed path from y to t in G’(f) do begin
- determine a directed path D from s to x in G’(f);
- r(D) = min{r(i, j) | (i, j) ∈D};
- determine a directed path D’ from y to t in G’(f);
- r(D’) = min{r(i, j) | (i, j) ∈D’};
- u = min{e(x), r(D), −e(y), r(D’)};
- pull u units of flow from s to x along the path D;
- pull u units of flow from y to t along the path D’;
- end;
- while e(x) > 0 and e(y) < 0 and there is a directed path from y to x in G’(f) do begin
- determine a directed path D from y to x in G’(f);
- r(D) = min{r(i, j) | (i, j) ∈D};
- pull min{e(x), -e(y), r(D)} units of flow from y to x along the path D;
- end;
- while e(x) > 0 and there is a directed path from t to x in G’(f) do begin
- determine a directed path D from t to x in G’(f);
- r(D) = min{r(i, j) | (i, j) ∈D};
- pull min{e(x), r(D)} units of flow from t to x along the path D;
- end;
- if e(x) > 0 then write “There is no feasible flow in G’.”
- else begin
- while e(y) < 0 and there is a directed path from y to s in G’(f) do begin
- determine a directed path D from y to s in G’(f);
- r(D) = min{r(i, j) | (i, j) ∈D};
- pull min{−e(y), r(D)} units of flow from y to s along the path D;
- end;
- if e(y) < 0 then write “There is no feasible flow in G’.”
- end;
- end;
- else write “The minimum flow f in G is also a minimum flow in G’.”
- end.
6. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
References
- Ahuja, R.; Magnanti, T.; Orlin, J. Network Flows. Theory, Algorithms and Applications; Prentice Hall, Inc.: Englewood Cliffs, NJ, USA, 1993. [Google Scholar]
- Bang-Jensen, J.; Gutin, G. Digraphs: Theory, Algorithms and Applications; Springer: London, UK, 2001. [Google Scholar]
- Fujishige, S. A maximum flow algorithm using MA ordering. Oper. Res. Lett. 2003, 31, 176–178. [Google Scholar] [CrossRef]
- Fujishige, S.; Isotani, S. New maximum flow algorithms by MA orderings and scaling. J. Oper. Res. Soc. Jpn. 2003, 46, 243–250. [Google Scholar]
- Goldberg, V.; Tarjan, R.E. A new Approach to the Maximum Flow Problem. J. ACM 1988, 35, 921–940. [Google Scholar] [CrossRef]
- Kumar, S.; Gupta, P. An incremental algorithm for the maximum flow problem. J. Math. Model. Algorithms 2003, 2, 1–16. [Google Scholar] [CrossRef]
- Adlakha, V.G. An Alternate Linear Algorithm for the Minimum Flow Problem. J. Oper. Res. Soc. 1999, 50, 177–182. [Google Scholar] [CrossRef]
- Ciupală, L. A deficit scaling algorithm for the minimum flow problem. Sadhana 2006, 31, 1169–1174. [Google Scholar] [CrossRef] [Green Version]
- Ciupală, L.; Ciurea, E. An algorithm for the minimum flow problem. In Proceedings of the Sixth International Conference of Economic Informatics, Bucharest, Romania, 8–11 May 2003; pp. 167–170. [Google Scholar]
- Ciupală, L.; Ciurea, E. An approach of the minimum flow problem. In Proceedings of the Fifth International Symposium of Economic Informatics, Bucharest, Romania, 10–13 May 2001; pp. 786–790. [Google Scholar]
- Ciurea, E.; Ciupală, L. Sequential and parallel algorithms for minimum flows. J. Appl. Math. Comput. 2004, 15, 53–78. [Google Scholar] [CrossRef]
- Ciurea, E.; Ciupală, L. Algorithms for minimum flows. Comput. Sci. J. Mold. 2001, 9, 275–290. [Google Scholar]
- Ciurea, E.; Georgescu, O.; Schiopu, C. Minimum flows in directed s-t planar networks with arcs and nodes capacities. In Proceedings of the 5th International Conference on Control, Decision and Information Technologies, Thessaloniki, Greece, 10–13 April 2018; pp. 110–115. [Google Scholar]
- Georgescu, O.; Ciurea, E. An algorithm for minimum flows. WSEAS Trans. Comput. 2008, 7, 2042–2051. [Google Scholar]
- Fathabadi, H.S.; Khodayifar, S.; Raayatpanah, M.A. Minimum flow problem on network flows with time-varying bounds. Appl. Math. Model. 2012, 36, 4414–4421. [Google Scholar] [CrossRef]
- Ciupală, L. Incremental algorithms for optimal flows in networks. Int. J. Comput. 2012, 6, 1–8. [Google Scholar]
- Çalışkan, C. New Algorithms for the Minimum Flow Problem. In Proceedings of the 47th Annual Conference of the Southwestern Decision Sciences Institute 2016, Oklahoma City, OK, USA, 9–12 March 2016; pp. 671–679. [Google Scholar]
- Ciupală, L. About flow problems in networks with node capacities. WSEAS Trans. Comput. 2009, 8, 1266–1275. [Google Scholar]
- Khodayifar, S.; Raayatpanah, M.A.; Pardalos, P.M. A polynomial time algorithm for the minimum flow problem in time-varying networks. Ann. Oper. Res. 2019, 272, 29–39. [Google Scholar] [CrossRef]
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2021 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Ciupala, L.; Deaconu, A. Incremental Minimum Flow Algorithms. Mathematics 2021, 9, 1025. https://doi.org/10.3390/math9091025
Ciupala L, Deaconu A. Incremental Minimum Flow Algorithms. Mathematics. 2021; 9(9):1025. https://doi.org/10.3390/math9091025
Chicago/Turabian StyleCiupala, Laura, and Adrian Deaconu. 2021. "Incremental Minimum Flow Algorithms" Mathematics 9, no. 9: 1025. https://doi.org/10.3390/math9091025
APA StyleCiupala, L., & Deaconu, A. (2021). Incremental Minimum Flow Algorithms. Mathematics, 9(9), 1025. https://doi.org/10.3390/math9091025