Теорема о свадьбах - Алгоритмика
Теорема о свадьбах

Теорема о свадьбах

Лемма Холла, также известная как теорема о свадьбах — очень удобный критерий в задачах, где нужно проверить, что паросочетание существует, но при этом не требуется строить его явно.

Лемма Холла. Полное паросочетание существует тогда и только тогда, когда любая группа вершин левой доли соединена с не меньшим количеством вершин правой доли.

Доказательство. В одну сторону понятно — если совершенное паросочетание есть, то для любого подмножества вершин левой доли можно взять вершины правой, соединенные с ним паросочетанием.

В другую сложнее — нужно воспользоваться индукцией. Будем доказывать, что если паросочетание не полное, то можно в таком графе найти увеличивающую цепь, и с её помощью увеличить паросочетание на единицу.

База индукции: одна вершина из LL, которая по условию соединена с хотя бы одной вершиной из RR.

Индукционный переход: пусть после k<nk < n шагов построено паросочетание MM. Докажем, что в MM можно добавить вершину vv из LL, не насыщенную паросочетанием.

Рассмотрим множество вершин HH — все вершины, достижимые из xx, если можно ходить из правой доли в левую только по рёбрам паросочетания, а из левой в правую — по любым (мы такой граф по сути строим, когда ищем увеличивающую цепь в алгоритме Куна)

Тогда в HH найдется вершина yy из RR, не насыщенная паросочетанием. Иначе, если такой вершины нет, то получается, что если рассмотреть вершины HLH_L (вершины левой доли, насыщенные паросочетанием), то для них не будет выполнено условие, что HLN(HL)|H_L| \leq |N(H_L)| (здесь N(X)N(X) — множество вершин, соединенным паросочетанием с XX).

Тогда должен существовать путь из xx в yy, и он будет увеличивающим для паросочетания MM, потому что из RR в LL мы всегда шли только по ребрам паросочетания. Проведя чередование вдоль этого пути, получим большее паросочетание, следовательно предположение индукции верно.