Теорема Холла — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Теорема)
(Теорема)
Строка 24: Строка 24:
 
*В обратную сторону докажем по индукции(будем добавлять какую-нибудь вершину <tex>x</tex> из <tex>L</tex> в <tex>L'</tex> и доказывать что в <tex>L'</tex> есть паросочетание, насыщающее все вершины из L'). Таким образом, в конце получим что <tex>G'</tex> совпадает с <tex>G</tex>. Из этого будет следовать существование в <tex>G</tex> полного паросочетания.
 
*В обратную сторону докажем по индукции(будем добавлять какую-нибудь вершину <tex>x</tex> из <tex>L</tex> в <tex>L'</tex> и доказывать что в <tex>L'</tex> есть паросочетание, насыщающее все вершины из L'). Таким образом, в конце получим что <tex>G'</tex> совпадает с <tex>G</tex>. Из этого будет следовать существование в <tex>G</tex> полного паросочетания.
 
#База: Одна вершина соединена хотя бы с одной вершиной из <tex>R</tex>. Следовательно база верна.
 
#База: Одна вершина соединена хотя бы с одной вершиной из <tex>R</tex>. Следовательно база верна.
#Переход: Пусть после <tex>k</tex> добавлений в <tex>G'</tex> можно построить паросочетание <tex>P</tex>, насыщающее все вершины из <tex>L'</tex>. Докажем что после добавления вершины <tex>x</tex> в <tex>G'</tex> будет существовать паросочетание насыщающее все вершины <tex>L'</tex>.Рассмотрим <tex>G' + x </tex>. Рассмотрим множество вершин <tex>H</tex> - все вершины достижимые из <tex>x</tex>, если можно ходить  из <tex>R'</tex> в <tex>L'</tex> только по ребрам из <tex>P</tex>, а из <tex>L'</tex> в <tex>R'</tex> по любым ребрам из <tex>G' + x</tex>. Тогда в H найдется вершина y из R', не принадлежащая P, иначе, если рассмотреть вершины H из левой доли, то для них не будет выполнен <tex>|Hl| > |N(HL)|</tex>.
+
#Переход: Пусть после <tex>k</tex> добавлений в <tex>G'</tex> можно построить паросочетание <tex>P</tex>, насыщающее все вершины из <tex>L'</tex>. Докажем что после добавления вершины <tex>x</tex> в <tex>G'</tex> будет существовать паросочетание насыщающее все вершины <tex>L'</tex>.Добавим в<tex>x</tex> в <tex>G'</tex>. Рассмотрим множество вершин <tex>H</tex> - все вершины достижимые из <tex>x</tex>, если можно ходить  из <tex>R'</tex> в <tex>L'</tex> только по ребрам из <tex>P</tex>, а из <tex>L'</tex> в <tex>R'</tex> по любым ребрам из <tex>G'</tex>. Тогда в H найдется вершина y из R', не принадлежащая P, иначе, если рассмотреть вершины H из левой доли, то для них не будет выполнен <tex>|Hl| > |N(HL)|</tex>.
 
Тогда путь из x в y будет удлиняющим для паросочетания P. Увеличив паросочетание P вдоль этого пути получаем паросочетание, насыщающее все вершины L' + x.  
 
Тогда путь из x в y будет удлиняющим для паросочетания P. Увеличив паросочетание P вдоль этого пути получаем паросочетание, насыщающее все вершины L' + x.  
 
}}
 
}}

Версия 23:31, 22 декабря 2012

Определения

Пусть [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], которая содержит одну любую вершину из [math]L[/math], и правую [math]R' = R[/math].

  • В обратную сторону докажем по индукции(будем добавлять какую-нибудь вершину [math]x[/math] из [math]L[/math] в [math]L'[/math] и доказывать что в [math]L'[/math] есть паросочетание, насыщающее все вершины из L'). Таким образом, в конце получим что [math]G'[/math] совпадает с [math]G[/math]. Из этого будет следовать существование в [math]G[/math] полного паросочетания.
  1. База: Одна вершина соединена хотя бы с одной вершиной из [math]R[/math]. Следовательно база верна.
  2. Переход: Пусть после [math]k[/math] добавлений в [math]G'[/math] можно построить паросочетание [math]P[/math], насыщающее все вершины из [math]L'[/math]. Докажем что после добавления вершины [math]x[/math] в [math]G'[/math] будет существовать паросочетание насыщающее все вершины [math]L'[/math].Добавим в[math]x[/math] в [math]G'[/math]. Рассмотрим множество вершин [math]H[/math] - все вершины достижимые из [math]x[/math], если можно ходить из [math]R'[/math] в [math]L'[/math] только по ребрам из [math]P[/math], а из [math]L'[/math] в [math]R'[/math] по любым ребрам из [math]G'[/math]. Тогда в H найдется вершина y из R', не принадлежащая P, иначе, если рассмотреть вершины H из левой доли, то для них не будет выполнен [math]|Hl| \gt |N(HL)|[/math].
Тогда путь из x в y будет удлиняющим для паросочетания P. Увеличив паросочетание P вдоль этого пути получаем паросочетание, насыщающее все вершины L' + x.
[math]\triangleleft[/math]

Ссылки

Смотри также