Mathematics for Computer Science
e9ck2Ar
e9ck2Ar
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
“mcs” — 2017/3/3 — 11:21 — page 457 — #465<br />
12.5. Bipartite Graphs & Matchings 457<br />
neighbors of some set S of vertices is the image of S under the edge-relation, that<br />
is,<br />
N.S/ WWD f r j hs—ri 2 E.G/ <strong>for</strong> some s 2 S g:<br />
S is called a bottleneck if<br />
jSj > j N.S/j:<br />
Theorem 12.5.4 (Hall’s Theorem). Let G be a bipartite graph. There is a matching<br />
in G that covers L.G/ iff no subset of L.G/ is a bottleneck.<br />
An Easy Matching Condition<br />
The bipartite matching condition requires that every subset of men has a certain<br />
property. In general, verifying that every subset has some property, even if it’s easy<br />
to check any particular subset <strong>for</strong> the property, quickly becomes overwhelming<br />
because the number of subsets of even relatively small sets is enormous—over a<br />
billion subsets <strong>for</strong> a set of size 30. However, there is a simple property of vertex<br />
degrees in a bipartite graph that guarantees the existence of a matching. Call a<br />
bipartite graph degree-constrained if vertex degrees on the left are at least as large<br />
as those on the right. More precisely,<br />
Definition 12.5.5. A bipartite graph G is degree-constrained when deg.l/ deg.r/<br />
<strong>for</strong> every l 2 L.G/ and r 2 R.G/.<br />
For example, the graph in Figure 12.9 is degree-constrained since every node on<br />
the left is adjacent to at least two nodes on the right while every node on the right<br />
is adjacent to at most two nodes on the left.<br />
Theorem 12.5.6. If G is a degree-constrained bipartite graph, then there is a<br />
matching that covers L.G/.<br />
Proof. We will show that G satisfies Hall’s condition, namely, if S is an arbitrary<br />
subset of L.G/, then<br />
j N.S/j jSj: (12.2)<br />
Since G is degree-constrained, there is a d > 0 such that deg.l/ d deg.r/<br />
<strong>for</strong> every l 2 L and r 2 R. Since every edge with an endpoint in S has its other<br />
endpoint in N.S/ by definition, and every node in N.S/ is incident to at most d<br />
edges, we know that<br />
dj N.S/j #edges with an endpoint in S:<br />
Also, since every node in S is the endpoint of at least d edges,<br />
#edges incident to a vertex in S djSj: