0% found this document useful (0 votes)
83 views5 pages

Lec 2

The document summarizes Edmonds' algorithm for finding a maximum matching in a graph. It begins with definitions of matchings, alternating paths, and augmenting paths. It then introduces the concept of flowers and blossoms to help find augmenting paths. The algorithm shrinks blossoms, finds a maximum matching in the reduced graph, and then "unshrinks" the blossom to obtain a larger matching in the original graph. The algorithm runs in O(n^3) time, with faster alternatives available.

Uploaded by

Krutarth Patel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
83 views5 pages

Lec 2

The document summarizes Edmonds' algorithm for finding a maximum matching in a graph. It begins with definitions of matchings, alternating paths, and augmenting paths. It then introduces the concept of flowers and blossoms to help find augmenting paths. The algorithm shrinks blossoms, finds a maximum matching in the reduced graph, and then "unshrinks" the blossom to obtain a larger matching in the original graph. The algorithm runs in O(n^3) time, with faster alternatives available.

Uploaded by

Krutarth Patel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

18.

438 Advanced Combinatorial Optimization

September 15, 2009

Lecture 2
Lecturer: Michel X. Goemans

Scribes: Robert Kleinberg (2004), Alex Levin (2009)

In this lecture, we will present Edmondss algorithm for computing a maximum matching in a
(not necessarily bipartite) graph G. We will later use the analysis of the algorithm to derive the
Edmonds-Gallai Decomposition Theorem stated in the last lecture.

Recapitulation

Recall the following essential definitions and facts from the last lecture. A matching in an undirected
graph G is a set of edges, no two of which share a common endpoint. Given a graph G and a matching
M , a vertex is matched if it is the endpoint of an edge in M , unmatched otherwise; we will often
designate the set of unmatched vertices by X. Given a graph G with matching M , an M-alternating
path is a path whose edges are alternately in M and not in M . (Here we use path to mean a
simple path, i.e. one with no repeated vertices. Well refer to a non-simple path as a walk.) If
both endpoints of an M -alternating path belong to the set X of unmatched vertices, it is called an
M -augmenting path. Recall the following theorem from last time.
Theorem 1 A matching M is of maximum size if and only if G contains no M -augmenting path.

Figure 1: An M -augmenting path

Flowers, Stems, and Blossoms

The following construction is useful for finding M -augmenting paths. Given a graph G = (V, E)
= (V, A) with the same vertex set as G, and with
with matching M ; construct a directed graph G
edge set determined by the rule that (u, w) A if and only if there exists v with (u, v) E \ M
that
and (v, w) M . Observe that every M -augmenting path in G corresponds to a path in G
begins at a vertex in X and ends at a neighbor of X. However, the converse is not true, because
an M -alternating walk may begin at a vertex in X and end at a neighbor of X, without being an
M -augmenting path, if it contains an odd cycle. Figure 2 illustrates an example of such a walk.
This motivates the following definition.
Definition 1 An M -flower is an M -alternating walk v0 , v1 , v2 , . . . , vt (numbered so that we have
(v2k1 , v2k ) M, (v2k , v2k+1 ) 6 M ) satisfying:
1. v0 X.
2. v0 , v1 , v2 , . . . , vt1 are distinct.
3. t is odd.
2-1

Stem

Blossom

Figure 2: An M -flower. Note that the dashed edges represent edges of G.


4. vt = vi , for an even i.
The portion of the flower from v0 to vi is called the stem, while the portion from vi to vt is called
the blossom.
Lemma 2 Let M be a matching in G, and let P = (v0 , v1 , . . . , vt ) be a shortest alternating walk
from X to X. Then either P is an M -augmenting path, or v0 , v1 , . . . , vj is an M -flower for some
j < t.
Proof: If v0 , v1 , . . . , vt are all distinct, P is an M -augmenting path. Otherwise, assume vi =
vj , i < j, and let j be as small as possible, so that v0 , v1 , . . . , vj1 are all distinct. We shall prove
that v0 , v1 , . . . , vj is an M -flower. Properties 1 and 2 of a flower are automatic, by construction. It
cannot be the case that j is even, since then (vj1 , vj ) M , which gives a contradiction in both of
the following cases:
i = 0: (vj1 , vj ) M contradicts v0 X.
0 < i < j 1: (vj1 , vj ) M contradicts the fact that M is a matching, since vi is already
matched to a vertex other than vj1 .
This proves that j is odd. It remains to show that i is even. Assume, by contradiction, that i is
odd. This means that (vi , vi+1 ) and (vj , vj+1 ) are both edges in M. Then vj+1 = vi+1 (since both
are equal to the other endpoint of the unique matching edge containing vj = vi ), and we may delete
the cycle from P to obtain a shorter alternating walk from X to X. (See Figure 3.)


v0

v1

v2

v6

v5

v3=v7

v4=v8

v9

v10

v11

Figure 3: An alternating walk from X to X which can be shortened.

2-2

Given a flower F = (v0 , v1 , . . . , vt ) with blossom B, observe that for any vertex vj B it is
possible to modify M to a matching M satisfying:
1. Every vertex of F belongs to an edge of M except vj .
2. M agrees with M outside of F , i.e. M M F .
3. |M | = |M |.
To do so, we take M to consist of all the edges of the stem which do not belong to M , together
with a matching in the blossom which covers every vertex except vj , as well as all the edges in M
outside of F .
Whenever a graph G with matching M contains a blossom B, we may simplify the graph by
shrinking B, a process which we now define.
Definition 2 (Shrinking a blossom) Given a graph G = (V, E) with a matching M and a blossom B, the shrunk graph G/B with matching M/B is defined as follows:
V (G/B) = (V \ B) {b}
E(G/B) = E \ E[B]
M/B = M \ E[B]
where E[B] denotes the set of edges within B, and b is a new vertex disjoint from V .
Observe that M/B is a matching in G, because the definition of a blossom precludes the possibility
that M contains more than one edge with one but not both endpoints in B. Observe also that G/B
may contain parallel edges between vertices, if G contains a vertex which is joined to B by more
than one edge.
The relation between matchings in G and matchings in G/B is summarized by the following
theorem.
Theorem 3 Let M be a matching of G, and let B be an M -blossom. Then, M is a maximum-size
matching if and only if M/B is a maximum-size matching in G/B.
Proof: (=) Suppose N is a matching in G/B larger than M/B. Pulling N back to a set of edges
in G, it is incident to at most one vertex of B. Expand this to a matching N + in G by adjoining
1
+
2 (|B| 1) edges within B to match every other vertex in B. Then we have |N | |N | = (|B| 1)/2,
while at the same time |M | |M/B| = (|B| 1)/2 (the latter follows because B is an M -blossom,
so there are (|B| 1)/2 edges of M in B; then M/B contains all the corresponding edges in M
except those (|B| 1)/2). We conclude that |N + | exceeds |M | by the same amount that |N | exceeds
|M/B|.
(=) If M is not of maximum size, then change it to another matching M , of equal cardinality,
in which B is an entire flower. (If S is the stem of the flower whose blossom is B, then we may take
M = M S.) Note that M /B is of the same cardinality as M/B, and b is an unmatched vertex of
M /B. Since M is not a maximum-size matching in G, there exists an M -augmenting path P . At
least one of the endpoints of P is not in B. So number the vertices of P u0 , u1 , . . . , ut with u0 6 B,
and let ui be the first node on P which is in B. (If there is no such node, then ui = ut .) This
sub-path u0 , u1 , . . . , ui is an (M /B)-augmenting path in G/B.

Note that if M is a matching in G that is not of maximum size, and B is blossom with respect
to M, then M/B is not a maximum-size matching in G/B. If we find a maximum-size matching
N in G/B, then the proof gives us a way to unshrink the blossom B in order to turn N into a
matching N + of G of size larger than that of M. However, it is important to note that N + will not,
in general, be a maximum-size matching of G, as the example in Figure 4 shows.
2-3

(a) The graph G with the matching (b) The shrunk graph G/B with
M shown in bold
the matching M/B (the empty
matching)

(c) The shrunk graph G/B with a (d) The graph G with the matchmaximum-size matching N
ing N + obtained from N by the
unshrinking process. Note that it
is not a maximum-size matching

Figure 4: A maximum matching in the graph G/B does not necessarily pull back to a maximum
matching in G.

A polynomial-time maximum matching algorithm

The algorithm for computing a maximum matching is specified in Figure 5.


The correctness of the algorithm is established by Lemma 2 and Theorem 3. The running time
in linear time, and can find P in linear time
may be analyzed as follows. We can compute X and G
(by breadth-first search). Shrinking a blossom also takes linear time. We can only perform O(n)
such shrinkings before terminating or increasing |M |. The number of times we increase |M | is O(n).
Therefore the algorithms running time is O(mn2 ). With a little more work, this can be improved
to O(n3 ).
(See Schrijvers book.) The fastest known algorithm, due to Micali and Vazirani, runs in
time O( n m).

2-4

M :=
X := {unmatched vertices} /* Initially all of V. */

Form the directed graph G.


contains a directed path P from X to N (X)
while G
Find such a path P of minimum length.
P := the alternating path in G corresponding to P
if P is an M -augmenting path,
modify M by augmenting along P .

Update X and construct G.


else
P contains a blossom B.
Recursively find a maximum-size matching M in G/B.
if |M | = |M/B| /* M is already a max matching. */
return M
/* Done! */
else
/* M can be enlarged */
Unshrink M as in the proof of Theorem 3,
to obtain a matching in G of size > |M |.
/* It is not necessarily maximal */

Update M and X and construct the graph G.


end
Figure 5: Algorithm for computing a maximum matching

2-5

You might also like