06.03.2017 Views

Mathematics for Computer Science

e9ck2Ar

e9ck2Ar

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

“mcs” — 2017/3/3 — 11:21 — page 456 — #464<br />

456<br />

Chapter 12<br />

Simple Graphs<br />

Inductive Step: Suppose that jM j D m C 1 2. To find a matching <strong>for</strong> M , there<br />

are two cases.<br />

Case 1: Every nonempty subset of at most m men likes a strictly larger set of<br />

women. In this case, we have some latitude: we pair an arbitrary man with<br />

a woman he likes and send them both away. This leaves m men and one<br />

fewer women, and the matching condition will still hold. So the induction<br />

hypothesis P.m/ implies we can match the remaining m men.<br />

Case 2: Some nonempty subset X of at most m men likes an equal-size set Y of<br />

women. The matching condition must hold within X, so the strong induction<br />

hypothesis implies we can match the men in X with the women in Y . This<br />

leaves the problem of matching the set M X of men to the set W Y of<br />

women.<br />

But the problem of matching M X against W Y also satisfies the Matching<br />

condition, because any subset of men in M X who liked fewer women<br />

in W Y would imply there was a set of men who liked fewer women in the<br />

whole set W . Namely, if a subset M 0 M X liked only a strictly smaller<br />

subset of women W 0 W Y , then the set M 0 [ X of men would like only<br />

women in the strictly smaller set W 0 [ Y . So again the strong induction hypothesis<br />

implies we can match the men in M X with the women in W Y ,<br />

which completes a matching <strong>for</strong> M .<br />

So in both cases, there is a matching <strong>for</strong> the men, which completes the proof of<br />

the Inductive step. The theorem follows by induction.<br />

<br />

The proof of Theorem 12.5.2 gives an algorithm <strong>for</strong> finding a matching in a bipartite<br />

graph, albeit not a very efficient one. However, efficient algorithms <strong>for</strong> finding<br />

a matching in a bipartite graph do exist. Thus, if a problem can be reduced to<br />

finding a matching, instances of the problem can be solved in a reasonably efficient<br />

way.<br />

A Formal Statement<br />

Let’s restate Theorem 12.5.2 in abstract terms so that you’ll not always be condemned<br />

to saying, “Now this group of men likes at least as many women. . . ”<br />

Definition 12.5.3. A matching in a graph G is a set M of edges of G such that no<br />

vertex is an endpoint of more than one edge in M . A matching is said to cover a<br />

set S of vertices iff each vertex in S is an endpoint of an edge of the matching. A<br />

matching is said to be perfect if it covers V .G/. In any graph G the set N.S/ of

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!