Теорема Татта о существовании полного паросочетания — различия между версиями
Lytr777 (обсуждение | вклад) м (правки) |
м (rollbackEdits.php mass rollback) |
||
(не показано 7 промежуточных версий 5 участников) | |||
Строка 1: | Строка 1: | ||
{{Определение | {{Определение | ||
− | |definition =<tex>odd({G})</tex> {{---}} число нечетных компонент связности в графе <tex>{G}</tex>, где '''нечетная компонента''' (англ. ''odd component'') {{---}} это [[Отношение связности, компоненты связности#def2|компонента связности]], содержащая нечетное число вершин. | + | |id = odd |
+ | |definition =<tex>\mathrm{odd}({G})</tex> {{---}} число нечетных компонент связности в графе <tex>{G}</tex>, где '''нечетная компонента''' (англ. ''odd component'') {{---}} это [[Отношение связности, компоненты связности#def2|компонента связности]], содержащая нечетное число вершин. | ||
}} | }} | ||
{{Определение | {{Определение | ||
− | |definition ='''Множество Татта''' графа <tex>{G}</tex> {{---}} множество <tex>S \subset {V_{G}}</tex>, для которого выполнено условие: <tex>odd({G} \setminus S) > \left\vert S \right\vert</tex> | + | |id = Tutt_set |
+ | |definition ='''Множество Татта''' графа <tex>{G}</tex> {{---}} множество <tex>S \subset {V_{G}}</tex>, для которого выполнено условие: <tex>\mathrm{odd}({G} \setminus S) > \left\vert S \right\vert</tex> | ||
}} | }} | ||
Строка 12: | Строка 14: | ||
Так как новых вершин не добавлялось, то <tex>{G'}=\langle {V},{E'}\rangle </tex> | Так как новых вершин не добавлялось, то <tex>{G'}=\langle {V},{E'}\rangle </tex> | ||
− | Пусть <tex> U = \{ v \in {V}: deg_{G'} (v) = n - 1 \}</tex>. | + | Пусть <tex> U = \{ v \in {V}: \deg_{G'} (v) = n - 1 \}</tex>. |
Очевидно, что <tex>\left\vert U \right\vert \ne n</tex>, потому что <tex>{G'}</tex> {{---}} не полный граф. | Очевидно, что <tex>\left\vert U \right\vert \ne n</tex>, потому что <tex>{G'}</tex> {{---}} не полный граф. | ||
Строка 26: | Строка 28: | ||
#: [[Файл:Граф_для_теоремы_Татта.png|right|200px|thumb|К доказательству 2-ого пункта леммы.]] | #: [[Файл:Граф_для_теоремы_Татта.png|right|200px|thumb|К доказательству 2-ого пункта леммы.]] | ||
# Вершины <tex>x,y,z</tex> и <tex>t</tex> лежат в одном подграфе графа <tex>{G'} \setminus U</tex>. | # Вершины <tex>x,y,z</tex> и <tex>t</tex> лежат в одном подграфе графа <tex>{G'} \setminus U</tex>. | ||
− | #: Построим граф <tex>H</tex>, такой что <tex>{V_{H}}={V}</tex> и <tex>{E_{H}}=M_1 \oplus M_2</tex>. Получим, что вершины <tex>x,y,z</tex> и <tex>t</tex> лежат на каком-то чередующемся цикле из ребер <tex>M_1</tex> и <tex>M_2</tex>. Рассмотрим подробнее, почему это будет именно так. Ребро <tex>xz</tex> принадлежит паросочетанию <tex>M_1</tex>, значит вершина <tex>y</tex> и какая-то произвольная вершина <tex>v</tex> будут покрыты ребром паросочетания <tex>M_1</tex>, при этом эти ребра не принадлежат паросочетанию <tex>M_2</tex>, но ребра <tex>yt</tex> и <tex>vu</tex>, где <tex>u</tex> {{---}} произвольная вершина, принадлежат <tex>M_2</tex> и не принадлежат <tex>M_1</tex> и так далее. Таким образом и получается чередующийся цикл в графе <tex>H</tex>. В силу симметричности <tex>x</tex> и <tex>z</tex> можно считать, что вершины расположены в порядке <tex>tzxy</tex>. Тогда существует путь <tex>P_1=t..zx..y</tex> и полное паросочетание в нем, следовательно существует и путь <tex>P_2=t..zy..x</tex>, содержащий только ребра графа <tex>{G'}</tex>. Тогда на пути <tex>x..y</tex> возьмем ребра из паросочетания <tex>M_2</tex>, а на пути <tex>t..z</tex> - ребра из паросочетания <tex>M_1</tex>. Непокрытыми остались вершины <tex>z</tex> и <tex>y</tex>, которые мы покроем ребром <tex>yz</tex>. Вершины, не принадлежащие рассматриваемому циклу, покроем ребрами любого из паросочетаний <tex>M_1, M_2</tex> (выберем ребра одного из них). Таким образом, получили полное паросочетание в графе <tex>{G'}</tex>, противоречие. | + | #: Построим граф <tex>H</tex>, такой что <tex>{V_{H}}={V}</tex> и <tex>{E_{H}}=M_1 \oplus M_2</tex><ref>[http://ru.wikipedia.org/wiki/%D1%E8%EC%EC%E5%F2%F0%E8%F7%E5%F1%EA%E0%FF_%F0%E0%E7%ED%EE%F1%F2%FC Симметрическая разность] </ref>. Получим, что вершины <tex>x,y,z</tex> и <tex>t</tex> лежат на каком-то чередующемся цикле из ребер <tex>M_1</tex> и <tex>M_2</tex>. Рассмотрим подробнее, почему это будет именно так. Ребро <tex>xz</tex> принадлежит паросочетанию <tex>M_1</tex>, значит вершина <tex>y</tex> и какая-то произвольная вершина <tex>v</tex> будут покрыты ребром паросочетания <tex>M_1</tex>, при этом эти ребра не принадлежат паросочетанию <tex>M_2</tex>, но ребра <tex>yt</tex> и <tex>vu</tex>, где <tex>u</tex> {{---}} произвольная вершина, принадлежат <tex>M_2</tex> и не принадлежат <tex>M_1</tex> и так далее. Таким образом и получается чередующийся цикл в графе <tex>H</tex>. В силу симметричности <tex>x</tex> и <tex>z</tex> можно считать, что вершины расположены в порядке <tex>tzxy</tex>. Тогда существует путь <tex>P_1=t..zx..y</tex> и полное паросочетание в нем, следовательно существует и путь <tex>P_2=t..zy..x</tex>, содержащий только ребра графа <tex>{G'}</tex>. Тогда на пути <tex>x..y</tex> возьмем ребра из паросочетания <tex>M_2</tex>, а на пути <tex>t..z</tex> - ребра из паросочетания <tex>M_1</tex>. Непокрытыми остались вершины <tex>z</tex> и <tex>y</tex>, которые мы покроем ребром <tex>yz</tex>. Вершины, не принадлежащие рассматриваемому циклу, покроем ребрами любого из паросочетаний <tex>M_1, M_2</tex> (выберем ребра одного из них). Таким образом, получили полное паросочетание в графе <tex>{G'}</tex>, противоречие. |
В каждом из возможных случаев получили противоречие, значит, наше начальное предположение тоже неверно и <tex>{G'} \setminus U</tex> {{---}} объединение несвязных полных графов, лемма доказана. | В каждом из возможных случаев получили противоречие, значит, наше начальное предположение тоже неверно и <tex>{G'} \setminus U</tex> {{---}} объединение несвязных полных графов, лемма доказана. | ||
Строка 35: | Строка 37: | ||
{{Теорема | {{Теорема | ||
|statement=В графе <tex>{G}</tex> существует полное паросочетание <tex>\Leftrightarrow</tex> <br> | |statement=В графе <tex>{G}</tex> существует полное паросочетание <tex>\Leftrightarrow</tex> <br> | ||
− | <tex>\forall S \subset {V}</tex> выполнено условие: <tex>odd({G} \setminus S) \leqslant \left\vert S \right\vert</tex> (то есть в графе <tex>{G}</tex> нет ни одного множества Татта) | + | <tex>\forall S \subset {V}</tex> выполнено условие: <tex>\mathrm{odd}({G} \setminus S) \leqslant \left\vert S \right\vert</tex> (то есть в графе <tex>{G}</tex> нет ни одного множества Татта) |
|proof = | |proof = | ||
<tex>\Rightarrow</tex> <br> | <tex>\Rightarrow</tex> <br> | ||
Рассмотрим <tex>M</tex> {{---}} полное паросочетание в графе <tex>{G}</tex> и множество вершин <tex>S \subset {V}</tex>. | Рассмотрим <tex>M</tex> {{---}} полное паросочетание в графе <tex>{G}</tex> и множество вершин <tex>S \subset {V}</tex>. | ||
− | Одна из вершин каждой нечетной компоненты связности графа <tex> {G} \setminus S</tex> соединена ребром паросочетания <tex>M</tex> с какой-то вершиной из <tex>S</tex>. Иначе мы не сможем покрыть паросочетанием все вершины этой компоненты связности и получим противоречие с тем, что полное паросочетание существует по условию теоремы. Таким образом, получаем, что <tex>odd({G} \setminus S) \leqslant \left\vert S \right\vert</tex>. | + | Одна из вершин каждой нечетной компоненты связности графа <tex> {G} \setminus S</tex> соединена ребром паросочетания <tex>M</tex> с какой-то вершиной из <tex>S</tex>. Иначе мы не сможем покрыть паросочетанием все вершины этой компоненты связности и получим противоречие с тем, что полное паросочетание существует по условию теоремы. Таким образом, получаем, что <tex>\mathrm{odd}({G} \setminus S) \leqslant \left\vert S \right\vert</tex>. |
<tex>\Leftarrow</tex> <br> | <tex>\Leftarrow</tex> <br> | ||
− | Пусть для графа <tex>{G}</tex> выполнено, что <tex>odd({G} \setminus S) \leqslant \left\vert S \right\vert</tex>, но полного паросочетания в этом графе не существует. | + | Пусть для графа <tex>{G}</tex> выполнено, что <tex>\mathrm{odd}({G} \setminus S) \leqslant \left\vert S \right\vert</tex>, но полного паросочетания в этом графе не существует. |
− | Рассмотрим граф <tex>{G'}</tex> и множество вершин <tex>U</tex> (из леммы). Так как число нечетных компонент не увеличивается при добавлении новых ребер, то <tex>\forall S \subset {V}</tex> выполнено <tex>odd({G'} \setminus S) \leqslant odd({G} \setminus S) \leqslant \left\vert S \right\vert</tex>. По лемме, доказанной выше: <tex>{G'} \setminus U</tex> {{---}} объединение несвязных полных графов. | + | Рассмотрим граф <tex>{G'}</tex> и множество вершин <tex>U</tex> (из леммы). Так как число нечетных компонент не увеличивается при добавлении новых ребер, то <tex>\forall S \subset {V}</tex> выполнено <tex>\mathrm{odd}({G'} \setminus S) \leqslant \mathrm{odd}({G} \setminus S) \leqslant \left\vert S \right\vert</tex>. По лемме, доказанной выше: <tex>{G'} \setminus U</tex> {{---}} объединение несвязных полных графов. |
− | Очевидно, что в каждой четной компоненте связности графа <tex>{G'} \setminus U</tex> мы можем построить полное паросочетание. В каждой нечетной компоненте этого графа построим паросочетание, которое покрывает все вершины кроме одной, оставшуюся непокрытой вершину, соединим с какой-то вершиной множества <tex>U</tex>. При этом мы будем использовать различные вершины из <tex>U</tex>, это возможно, так как <tex>odd({G'} \setminus U) \leqslant \left\vert U \right\vert</tex>. Если все вершины множества <tex>U</tex> оказались покрытыми, то мы получили полное паросочетание в графе <tex>{G'}</tex>. Противоречие, так как по построению в <tex>{G'}</tex> нет полного паросочетания. | + | Очевидно, что в каждой четной компоненте связности графа <tex>{G'} \setminus U</tex> мы можем построить полное паросочетание. В каждой нечетной компоненте этого графа построим паросочетание, которое покрывает все вершины кроме одной, оставшуюся непокрытой вершину, соединим с какой-то вершиной множества <tex>U</tex>. При этом мы будем использовать различные вершины из <tex>U</tex>, это возможно, так как <tex>\mathrm{odd}({G'} \setminus U) \leqslant \left\vert U \right\vert</tex>. Если все вершины множества <tex>U</tex> оказались покрытыми, то мы получили полное паросочетание в графе <tex>{G'}</tex>. Противоречие, так как по построению в <tex>{G'}</tex> нет полного паросочетания. |
− | Значит, в <tex>U</tex> осталось какое-то количество непокрытых вершин, при этом их четное число, потому что число вершин в <tex>{G'}</tex> четно, так как <tex>odd({G'} \setminus \varnothing) \leqslant \left\vert \varnothing \right\vert = 0</tex> и уже покрыто паросочетанием четное число вершин. Так как в множество <tex>U</tex> входят вершины, которые в <tex>{G'}</tex> смежны со всеми остальными, то мы сможем разбить оставшиеся вершины на пары и покрыть их паросочетанием. | + | Значит, в <tex>U</tex> осталось какое-то количество непокрытых вершин, при этом их четное число, потому что число вершин в <tex>{G'}</tex> четно, так как <tex>\mathrm{odd}({G'} \setminus \varnothing) \leqslant \left\vert \varnothing \right\vert = 0</tex> и уже покрыто паросочетанием четное число вершин. Так как в множество <tex>U</tex> входят вершины, которые в <tex>{G'}</tex> смежны со всеми остальными, то мы сможем разбить оставшиеся вершины на пары и покрыть их паросочетанием. |
Таким образом, получили в <tex>{G'}</tex> полное паросочетание, что противоречит тому, как мы задали этот граф изначально. Значит, начальное предположение не верно, и в <tex>{G}</tex> существует полное паросочетание. | Таким образом, получили в <tex>{G'}</tex> полное паросочетание, что противоречит тому, как мы задали этот граф изначально. Значит, начальное предположение не верно, и в <tex>{G}</tex> существует полное паросочетание. | ||
Строка 55: | Строка 57: | ||
}} | }} | ||
− | == | + | ==См. также== |
− | *[ | + | * [[Матрица Татта и связь с размером максимального паросочетания в двудольном графе]] |
+ | * [[Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях]] | ||
+ | * [[Декомпозиция Эдмондса-Галлаи]] | ||
+ | |||
+ | ==Примечания== | ||
+ | <references/> | ||
== Источники информации == | == Источники информации == |
Текущая версия на 19:19, 4 сентября 2022
Определение: |
компонента связности, содержащая нечетное число вершин. | — число нечетных компонент связности в графе , где нечетная компонента (англ. odd component) — это
Определение: |
Множество Татта графа | — множество , для которого выполнено условие:
Критерий Татта
Пусть полного паросочетания, но оно появляется при добавлении любого нового ребра.
— граф, полученный из добавлением ребер, при этом в нетТак как новых вершин не добавлялось, то
Пусть
.Очевидно, что
, потому что — не полный граф.Лемма: |
— объединение несвязных полных графов. |
Доказательство: |
Пусть это не так, тогда существуют вершины , такие что , но . Так как , то .По построению в графе существует полное паросочетание . Аналогично, в графе существует полное паросочетание . Так как в нет полного паросочетания, то и .Возможны два случая:
|
Теорема Татта
Теорема: |
В графе существует полное паросочетание выполнено условие: (то есть в графе нет ни одного множества Татта) |
Доказательство: |
Одна из вершин каждой нечетной компоненты связности графа соединена ребром паросочетания с какой-то вершиной из . Иначе мы не сможем покрыть паросочетанием все вершины этой компоненты связности и получим противоречие с тем, что полное паросочетание существует по условию теоремы. Таким образом, получаем, что .
Рассмотрим граф и множество вершин (из леммы). Так как число нечетных компонент не увеличивается при добавлении новых ребер, то выполнено . По лемме, доказанной выше: — объединение несвязных полных графов.Очевидно, что в каждой четной компоненте связности графа мы можем построить полное паросочетание. В каждой нечетной компоненте этого графа построим паросочетание, которое покрывает все вершины кроме одной, оставшуюся непокрытой вершину, соединим с какой-то вершиной множества . При этом мы будем использовать различные вершины из , это возможно, так как . Если все вершины множества оказались покрытыми, то мы получили полное паросочетание в графе . Противоречие, так как по построению в нет полного паросочетания.Значит, в Таким образом, получили в осталось какое-то количество непокрытых вершин, при этом их четное число, потому что число вершин в четно, так как и уже покрыто паросочетанием четное число вершин. Так как в множество входят вершины, которые в смежны со всеми остальными, то мы сможем разбить оставшиеся вершины на пары и покрыть их паросочетанием. полное паросочетание, что противоречит тому, как мы задали этот граф изначально. Значит, начальное предположение не верно, и в существует полное паросочетание. |
См. также
- Матрица Татта и связь с размером максимального паросочетания в двудольном графе
- Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях
- Декомпозиция Эдмондса-Галлаи
Примечания
Источники информации
- Д.В Карпов. Теория графов (2 глава, стр. 29)
- Wikipedia — Tutte theorem