In a small village, 11 inhabitants are
members in clubs, and there are 9 such clubs.
A, C, I and J are members of the pigeon breeders association.
B, D, I and K form the train lovers club.
C, E and F are the stamps collector club.
A, E, H and their cars form the old car lovers club.
B, H and J form the local bingo association.
E, F and G are the soccer socks,
and E, F, G, H are the football foxes.
F, G und H form the local choir, presently only a trio,
and finally E, F, G and H are the computer club.
(a) There is a meeting scheduled to discuss the possibility of building a common club house. Each club has to send one representative, but certainly nobody should speak for two or more clubs at that meeting. Is that possible at all? (b) One day before the meeting, G is going on a business trip to Europe. Is the meeting still possible, maybe with different representatives? |
Try it! By clicking on the circles you select or deselect a representative. |
A bigraph models situations, where we have an arbitrary relation R Í A × B between disjoint sets A and B. By defining V := A È B and Adj = {(a,b), (b,a) / a Î A, b Î B, (a,b) Î R} , we get the already mentioned concept of bipartite graphs. These special graphs are the bigraphs. Instead of R, we will work in the following either with the ireflexive symmetric relation Adj on V = A È B, or with the edge set E. So let G = (V,E) a bipartite graph with bipartition V = A È B. We define:
It's easy to find small matchings or independent sets, and large E-V- or V-E-coverings, but in contrast to this, we are interested in maximum matchings or independent vertex sets, and in minimum E-V- or V-E-coverings. These structures are called optimal. The sizes of the corresponding optimal sets are denoted by m, cEV, æ, cVE.
We need a lemma on the structure of minimum E-V-coverings (1), and several constructions (2.-6.), transforming optimal sets into optimal sets:
(2.) implies the equality æ = |V| - cVE.
(3.) and (4.) together imply
![]() |
This equality also follows by
Dilworth's Theorem
(
We define a order relation on V by
a £ b if [a=b or
(a Î A, b Î B,
and {a,b} Î E(G))].
The independent sets in G are exactly the
antichains in (V,£),
whereas each edge-vertex coverings of G corresponds
a partition of V by
(V,£)-chains.
).
(1.), (5.) and (6.) imply m = |V| - cEV in bipartite graphs.
Overall we get:
![]() |
![]()
|
Proof:
One direction is easy: If there is such a (bad) subset A' of A
obeying |NG(A')| < |A'|, no matching can contain all vertices of A'
whence there is no matching of cardinality |A|.
If conversely there is no matching of cardinality |A|, then König's Theorem above implies cVE < |A|. Let V' be a minimum vertex-edge covering, |V'| = cVE Dann liegt jeder Nachbar jeder Ecke von A \ V' in B Ç V', also NG(A \ V') Í B Ç V', also |NG(A \ V')| £ |B Ç V'| = |V'| - |A Ç V'| = |A \ V'|. |
Exercise: For integers n and k, k £ n/2, let A denote the set of all (k-1)-element subsets of {1,2,...,n}, whereas B denotes the set of all k-element subsets of {1,2,...,n}. By calling X Î A and Y Î B adjacent if X Í Y, we get a bipartite graph with sets A and B. Use Hall's Theorem to show that this graph has a (perfect) matching of size |A|.
Exercise:
Prove
Sperner's Theorem, using Hall's Theorem.
How to find maximum matchings --- augmenting paths
The simplest idea is to start with any matching and to successively add
edges as long as possible. Unfortunately we may get in a dead end in this way. In
the example to the left, it is impossible to add any edge without violating the
matching property, but nevertheless the matching is still not maximum, as we
will see.
The outlet for this dead end is the idea of augmenting paths.
A path x0, y0, x1, y1, ... ,
xk, yk is augmenting with respect to a given
matching M, if neither x0 nor y0
are covered by an edge of M, and the edges of the path alternatingly
lie in M, i.e. y0x1, y1x2, ...
yk-1xk are in M.
If we have found such an augmentig path, we replace the (k) M-edges on it
by the (k+1) non-M-edges to get another matching containing exactly one edge more.
What if we don't find such an augmenting path. If there is none left,
do we need another tool, to increase the matching? Surprisingly not!
Every matching where there is no
augmenting path (with respect to that matching) is maximum.
In the applet to the left you may try to find augmenting paths (blue) and successively increase the size of the matching.
How to find maximum matchings --- augmenting trees
How do we find augmenting paths in a systematical way?
Assume we have a matching M and a vertex x not covered by M.
Note that all augmenting paths start and end
at such not-yet covered vertices.
Let's try to find all augmenting paths starting at x,
so x is our first vertex x0.
All neighbors of x could be y0--- we call these vertices
the children of x.
Such a child y0 is either not covered by M (then we
have already found our alternating path) or it is covered.
In the second case,
the unique M-neighbor of it must be our x1,
and is called the child of y0.
All further neighbors of x1 are candidates for y1,
but again, every such y1 is either not covered by M
(then we may stop again) or has a unique child x2.
Since at each point we only have to check vertices not yet on
our tree, we obtain a tree structure by proceeding.
Although it may or may not contain an augmenting path,
we call it the augmnenting tree starting at x
(wishful thinking).
All we have to do is to generate and check all augmenting trees
for all our not-yet covered vertices x.
In the applet to the right you may do exactly this by clicking on not-yet covered vertices. The resulting augmenting tree is shown in red, and if it contains an augmenting path, one of them is colored blue.
You may experiment with more augmenting trees and paths in a larger Applet. You may also get the answer to our initial example (with G in Europe) there; the situation is modelled by Graph D there.