Определения
Пусть [math]G(V,E)[/math] - двудольный граф. [math]L[/math] - множество вершин первой доли. [math]R[/math] - множество вершин правой доли.
Определение: |
Полным(совершенным) паросочетанием называется паросочетание в которое входят все вершины. |
Определение: |
Пусть [math]X \subset V [/math]. Множeство соседей [math]X[/math] определим формулой: [math]N(X)= \{ y \in V: (x,y) \in E \}[/math] |
Теорема
Теорема (Холл): |
Полное паросочетание существует тогда и только тогда, когда для любого [math]A \subset L [/math] выполнено [math]|A| \leq |N(A)|[/math]. |
Доказательство: |
[math]\triangleright[/math] |
- Очевидно, что если существует полное паросочетание, то для любого [math]A \subset L [/math] выполнено [math]|A| \leq |N(A)|[/math]. У любого подмножества вершин есть по крайней мере столько же "соседей"("соседи по парасочетанию").
Пусть граф [math]G'[/math] изначально имеет левую долю [math]L'[/math], которая содержит одну любую вершину из L, и правую [math]R' = R[/math]
- В обратную сторону докажем по индукции(будем добавлять вершину [math]x[/math] из [math]L[/math] в [math]L'[/math] и доказывать что в L' есть паросочетание, насыщающее все вершины из L'). Таким образом, в конце получим что [math]G'[/math] совпадает с [math]G[/math]. Из этого будет следовать существование в [math]G[/math] полного паросочетания.
- База: Одна вершина соединена хотя бы с одной вершиной из R. Следовательно база верна.
- Переход: Пусть после [math]k[/math] добавлений в [math]G'[/math] можно построить паросочетание [math]P[/math], насыщающее все вершины из [math]L'[/math]. Докажем что после добавления вершины [math]x[/math] в [math]G'[/math] будет существовать паросочетание насыщающее все вершины L'.Рассмотрим [math]G' + x [/math]. Рассмотрим все вершины достижимые из [math]x[/math], если можно ходить из [math]R'[/math] в [math]L'[/math] только по ребрам [math]P[/math], а из [math]L'[/math] в [math]R'[/math] по любым ребрам из G'. Для этого множества должно выполнятся условие
|
[math]\triangleleft[/math] |
Ссылки
Смотри также