An O(v|v| c |E|) algoithm for finding maximum matching in general graphs

  • Authors:
  • Silvio Micali;Vijay V. Vazirani

  • Affiliations:
  • -;-

  • Venue:
  • SFCS '80 Proceedings of the 21st Annual Symposium on Foundations of Computer Science
  • Year:
  • 1980

Quantified Score

Hi-index 0.01

Visualization

Abstract

In this paper we present an 0(√|V|ċ|E|) algorithm for finding a maximum matching in general graphs. This algorithm works in 'phases'. In each phase a maximal set of disjoint minimum length augmenting paths is found, and the existing matching is increased along these paths. Our contribution consists in devising a special way of handling blossoms, which enables an O(|E|) implementation of a phase. In each phase, the algorithm grows Breadth First Search trees at all unmatched vertices. When it detects the presence of a blossom, it does not 'shrink' the blossom immediately. Instead, it delays the shrinking in such a way that the first augmenting path found is of minimum length. Furthermore, it achieves the effect of shrinking a blossom by a special labeling procedure which enables it to find an augmenting path through a blossom quickly.