Теорема Холла — различия между версиями
Maksnov (обсуждение | вклад) |
м (rollbackEdits.php mass rollback) |
||
(не показано 7 промежуточных версий 5 участников) | |||
Строка 2: | Строка 2: | ||
==Определения== | ==Определения== | ||
− | Пусть <tex>G(V,E)</tex> {{---}} двудольный граф. <tex>L</tex> {{---}} множество вершин | + | Пусть <tex>G(V,E)</tex> {{---}} [[Основные_определения_теории_графов#Двудольный_граф |двудольный граф]].<ref name="Generalizing"/> <tex>L</tex> {{---}} множество вершин левой доли. <tex>R</tex> {{---}} множество вершин правой доли. |
{{Определение | {{Определение | ||
|id=def1. | |id=def1. | ||
Строка 11: | Строка 11: | ||
|id=def2. | |id=def2. | ||
|nеat=1 | |nеat=1 | ||
− | |definition=Пусть <tex>X \subset V </tex>. '''Множeство соседей''' <tex>X</tex> ''(англ. neighborhood)'' определим формулой: <tex>N(X)= \{ y \in V | + | |definition=Пусть <tex>X \subset V </tex>. '''Множeство соседей''' <tex>X</tex> ''(англ. neighborhood)'' определим формулой: <tex>N(X)= \{ y \in V \mid (x,y) \in E , x \in X\}</tex> |
}} | }} | ||
Строка 17: | Строка 17: | ||
{{Теорема | {{Теорема | ||
|id=th1. | |id=th1. | ||
− | |author=Холл | + | |author=Холл <ref name="Marriage"/> |
|statement=Полное паросочетание существует тогда и только тогда, когда для любого <tex>A \subset L </tex> выполнено <tex>|A| \leqslant |N(A)|</tex>. | |statement=Полное паросочетание существует тогда и только тогда, когда для любого <tex>A \subset L </tex> выполнено <tex>|A| \leqslant |N(A)|</tex>. | ||
|proof= | |proof= | ||
<tex>\Rightarrow</tex> <br> | <tex>\Rightarrow</tex> <br> | ||
− | Очевидно, что если существует полное паросочетание, то для любого <tex>A \subset L </tex> выполнено <tex>|A| \leqslant |N(A)|</tex>. У любого подмножества вершин есть по крайней мере столько же | + | Очевидно, что если существует полное паросочетание, то для любого <tex>A \subset L </tex> выполнено <tex>|A| \leqslant |N(A)|</tex>. У любого подмножества вершин есть по крайней мере столько же ''соседей'' (''соседи по паросочетанию''). |
<tex>\Leftarrow</tex> <br> | <tex>\Leftarrow</tex> <br> | ||
Строка 32: | Строка 32: | ||
<u>'''''Индукционный переход'''''</u> | <u>'''''Индукционный переход'''''</u> | ||
− | Пусть после <tex>k<n</tex> шагов построено паросочетание <tex>P</tex>. Докажем, что в <tex>P</tex> можно добавить вершину <tex>x</tex> из <tex>L</tex>, не насыщенную паросочетанием <tex>P</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>. Тогда в <tex>H</tex> найдется вершина <tex>y</tex> из <tex>R</tex>, не насыщенная паросочетанием <tex>P</tex>, иначе, если рассмотреть вершины <tex>H_L</tex> (вершины из <tex>H</tex> принадлежащие <tex>L</tex>), то для них не будет выполнено условие: <tex>|H_L| | + | Пусть после <tex>k<n</tex> шагов построено паросочетание <tex>P</tex>. Докажем, что в <tex>P</tex> можно добавить вершину <tex>x</tex> из <tex>L</tex>, не насыщенную паросочетанием <tex>P</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>. Тогда в <tex>H</tex> найдется вершина <tex>y</tex> из <tex>R</tex>, не насыщенная паросочетанием <tex>P</tex>, иначе, если рассмотреть вершины <tex>H_L</tex> (вершины из <tex>H</tex> принадлежащие <tex>L</tex>), то для них не будет выполнено условие: <tex>|H_L| \leqslant |N(H_L)|</tex>. Тогда существует путь из <tex>x</tex> в <tex>y</tex>, который будет удлиняющим для паросочетания <tex>P</tex> (т.к из <tex>R</tex> в <tex>L</tex> мы проходили по ребрам паросочетания <tex>P</tex>). Увеличив паросочетание <tex>P</tex> вдоль этого пути, получаем искомое паросочетание. Следовательно предположение индукции верно. |
}} | }} | ||
Строка 48: | Строка 48: | ||
# В <tex>H_R</tex> входят только насыщенные вершины. | # В <tex>H_R</tex> входят только насыщенные вершины. | ||
# <tex>N(H_L) = H_R</tex> | # <tex>N(H_L) = H_R</tex> | ||
− | # В <tex>H_L</tex> по крайней мере <tex>H_R+1</tex> вершин ( | + | # В <tex>H_L</tex> по крайней мере <tex>H_R+1</tex> вершин (''соседи'' по паросочетанию для каждой вершины из <tex>H_R</tex> и ещё одна вершина, которую пытаемся добавить). |
Цепь <tex>{4, 7, 3, 8}</tex> является удлиняющей для текущего паросочетания. | Цепь <tex>{4, 7, 3, 8}</tex> является удлиняющей для текущего паросочетания. | ||
− | Увеличив текущее парасочетание вдоль этой цепи, мы насытим вершину с номером 4. | + | Увеличив текущее парасочетание вдоль этой цепи, мы насытим вершину с номером <tex>4</tex>. |
+ | |||
+ | ==См. также== | ||
+ | * [[Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях]] | ||
+ | * [[Связь максимального паросочетания и минимального вершинного покрытия в двудольных графах]] | ||
+ | * [[Связь вершинного покрытия и независимого множества]] | ||
==Примечания== | ==Примечания== | ||
− | + | <references> | |
− | + | <ref name="Generalizing">Также теорема обобщается на граф, имеющий произвольное множество долей.</ref> | |
− | Также теорема обобщается на граф, имеющий произвольное множество долей. | + | <ref name="Marriage">Иногда теорему называют теоремой о свадьбах.</ref> |
+ | </references> | ||
==Источники информации== | ==Источники информации== |
Текущая версия на 19:17, 4 сентября 2022
Содержание
Определения
Пусть двудольный граф.[1] — множество вершин левой доли. — множество вершин правой доли.
—Определение: |
Полным (совершенным) паросочетанием (англ. perfect matching) называется паросочетание, в которое входят все вершины. |
Определение: |
Пусть | . Множeство соседей (англ. neighborhood) определим формулой:
Теорема
Теорема (Холл [2]): |
Полное паросочетание существует тогда и только тогда, когда для любого выполнено . |
Доказательство: |
База индукции Вершина из соединена хотя бы с одной вершиной из . Следовательно база верна.Индукционный переход Пусть после шагов построено паросочетание . Докажем, что в можно добавить вершину из , не насыщенную паросочетанием . Рассмотрим множество вершин — все вершины, достижимые из , если можно ходить из в только по ребрам из , а из в по любым ребрам из . Тогда в найдется вершина из , не насыщенная паросочетанием , иначе, если рассмотреть вершины (вершины из принадлежащие ), то для них не будет выполнено условие: . Тогда существует путь из в , который будет удлиняющим для паросочетания (т.к из в мы проходили по ребрам паросочетания ). Увеличив паросочетание вдоль этого пути, получаем искомое паросочетание. Следовательно предположение индукции верно. |
Пояснения к доказательству
Пусть было построено паросочетание размером
(синие ребра).Добавляем вершину с номером
.Во множество
вошли вершины с номерами , , , , , .Ненасыщенная вершина из правой доли всегда найдется (в примере вершина с номером
), т.к иначе получаем противоречие:- В входят только насыщенные вершины.
- В по крайней мере вершин (соседи по паросочетанию для каждой вершины из и ещё одна вершина, которую пытаемся добавить).
Цепь
является удлиняющей для текущего паросочетания.Увеличив текущее парасочетание вдоль этой цепи, мы насытим вершину с номером
.См. также
- Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях
- Связь максимального паросочетания и минимального вершинного покрытия в двудольных графах
- Связь вершинного покрытия и независимого множества