# A Weight-scaling Algorithm for f-factors of Multigraphs

We discuss combinatorial algorithms for finding a maximum weight f-factor on an arbitrary multigraph, for given integral weights of magnitude at most W. For simple bipartite graphs the best-known time bound is O(n^2/3 m log nW) (<cit.>; n and m are respectively the number of vertices and edges). A recent algorithm of Duan and He et al. <cit.> for f-factors of simple graphs comes within logarithmic factors of this bound, O (n^2/3 m log W). The best-known bound for bipartite multigraphs is O(√(Φ) m logΦ W) (Φ≤ m is the size of the f-factor, Φ=∑_v∈ Vf(v)/2). This bound is more general than the restriction to simple graphs, and is even superior on "small" simple graphs, i.e., Φ=o(n^4/3). We present an algorithm that comes within a √(logΦ) factor of this bound, i.e., O(√(ΦlogΦ) m logΦ W). The algorithm is a direct generalization of the algorithm of Gabow and Tarjan <cit.> for the special case of ordinary matching (f≡ 1). We present our algorithm first for ordinary matching, as the analysis is a simplified version of <cit.>. Furthermore the algorithm and analysis both get incorporated without modification into the multigraph algorithm. To extend these ideas to f-factors, the first step is "expanding" edges (i.e., replacing an edge by a length 3 alternating path). <cit.> uses a one-time expansion of the entire graph. Our algorithm keeps the graph small by only expanding selected edges, and "compressing" them back to their original source when no longer needed. Several other ideas are needed, including a relaxation of the notion of "blossom" to e-blossom ("expanded blossom").

READ FULL TEXT