Blocking flows were introduced by Dinic (Soviet Math Doklady 11: 1277–1280, 1970) to speed up the computation of maximum network flows. They have been used in algorithms for problems such as maximum cardinality matching of bipartite graphs Hopcroft and Karp (SIAM J Comput 2(4), 225–231, 1973) and general graphs Micali and Vazirani (in: Proceedings of the 21st Annual Symposium on Foundations of Computer Science, 17–27, 1980), maximum weight matching of general graphs Gabow and Tarjan (J ACM 38(4), 815–853, 1991), and many others. The blocking algorithm of Gabow and Tarjan (1991) for matching is based on depth-first search. We extend the depth-first search approach to find f-factors of general multigraphs. Here f is an arbitrary integral-valued function on vertices, an f-matching is a subgraph where every vertex x has degree $$\le f(x)$$ , an f-factor has equality in every degree bound. A set of blocking trails for an f-matching M is a maximal collection $$\mathcal{A}$$ of edge-disjoint augmenting trails such that $$M\bigoplus _{A\in {\mathcal{A}}} A $$ is a valid f-matching. Blocking trails are needed in efficient algorithms for maximum cardinality f-matching Huang and Pettie (Algorithmica 84(7): 1952–1992, 2022), maximum weight f-factors/matchings by scaling Duan et al. (In: Proceedings of the 47th International Colloquium on Automata, Languages, and Programming (ICALP 2020), Vol. 168 of LIPIcs, 41:1-41:17, 2020; Gabow (A weight-scaling algorithm for f-factors of multigraphs. arXiv:2010.01102 , 2020), and approximate maximum weight f-factors and f-edge covers Huang and Pettie (2022). Since these algorithms find many sets of blocking trails, the time to find blocking trails is a dominant factor in the running time. Our blocking trail algorithm runs in linear time O(m). In independent work and using a different approach, Huang and Pettie (2022) present a blocking trails algorithm using time $$O(m\alpha (m,n))$$ . As examples of the time bounds for the above applications, an approximate maximum weight f-factor is found in time $$O(m\,\alpha (m,n))$$ using Huang and Pettie (2022), and our algorithm eliminates the factor $$\alpha (m,n)$$ . Similarly a maximum weight f-factor is found in time $$O(\sqrt{\Phi \log \Phi }\, m\,\alpha (m,n)\, \log (\Phi W))\,$$ using Huang and Pettie (2022) , ( $$\Phi =\sum _{v\in V} f(v)$$ , W the maximum edge weight) and our algorithm eliminates the $$\alpha (m,n)$$ factor, making the time within a factor $$\sqrt{\log {\Phi }}$$ of the bound for bipartite multigraphs. The technical difficulty for this work stems from the fact that a fixed vertex can occur many times in a given search. This does not occur in ordinary matching or in algorithms for maximum cardinality or maximum weight f-matching. These multiple occurrences can create a new variant of blossom, the “skew blossom”. Also they can make blossoms become “incomplete”, i.e., partially processed yet still relevant in future searches.
Read full abstract