摘要

This article shows the weighted matching problem on general graphs can be solved in time O(n(m + n log n)) for n and m the number of vertices and edges, respectively. This was previously known only for bipartite graphs. The crux is a data structure for blossom creation. It uses a dynamic nearest-common-ancestor algorithm to simplify blossom steps, so they involve only back edges rather than arbitrary nontree edges.
The rest of the article presents direct extensions of Edmonds' blossom algorithm to weighted b-matching and f-factors. Again, the time bound is the one previously known for bipartite graphs: for b-matching the time is O(min{b(V), n log n} (m + n log n)) and for f-factors the time is O(min{f (V) , m log n}(m + n log n)), where b(V) and f (V) both denote the sum of all degree constraints. Several immediate applications of the f-factor algorithm are given: The generalized shortest path structure of Reference [19], i.e., the analog of the shortest-paths tree for conservative undirected graphs, is shown to be a version of the blossom structure for f-factors. This structure is found in time O(vertical bar N vertical bar(m + n log n)) for N, the set of negative edges (0 < vertical bar N vertical bar < n). A shortest T-join is found in time O(n(m + n log n)) or O(vertical bar T vertical bar(m + n log n)) when all costs are nonnegative. These bounds are all slight improvements of previously known ones, and are simply achieved by proper initialization of the f-factor algorithm.

  • 出版日期2018-7