Изменения

Перейти к: навигация, поиск
Нет описания правки
{{Определение
|id = odd|definition =<tex>o\mathrm{odd}(\mathbb{G})</tex> {{---}} число нечетных компонент связности в графе <tex>\mathbb{G}</tex>, где '''нечетная компонента''' (англ. ''odd component'') {{---}} это [[Отношение связности, компоненты связности#def2|компонента связности]], содержащая нечетное число вершин.
}}
{{Определение
|id = Tutt_set|definition ='''Множество Татта''' графа <tex>\mathbb{G}</tex> {{---}} множество <tex>S \subset \mathbb{V_{G}}</tex>, для которого выполнено условие: <tex>o\mathrm{odd}(\mathbb{G} \setminus S) > \left\vert S \right\vert</tex>
}}
==Критерий Татта==
Пусть <tex>\mathbb{G'}</tex> {{---}} граф, полученный из <tex>{G}=\mathbblangle {V},{GE}\rangle</tex> добавлением ребер, при этом в <tex>\mathbb{G'}</tex> нет [[Теорема Холла#def1|полного паросочетания]], но оно появляется при добавлении любого нового ребра.
Пусть Так как новых вершин не добавлялось, то <tex> U {G'}= \langle { v \in V: deg_},{GE'} (v) = n - 1 \}rangle </tex>.
Пусть <tex> U = \{ v \in {V}: \deg_{G'} (v) = n - 1 \}</tex>.  Очевидно, что <tex>\left\vert U \right\vert \ne n</tex>, потому что <tex>{G'}</tex> {{---}} не полный граф.
{{Лемма
|statement= <tex>{G' } \setminus U</tex> {{---}} объединение несвязных полных графов.|proof=Пусть это не так, тогда существуют вершины <tex>x,y,z \in \mathbb{V_\mathbb{G'}V} \setminus U</tex>, такие что <tex>xy, yz \in \mathbb{E_\mathbb{GE'}}</tex>, но <tex>xz \notin \mathbb{E_\mathbb{GE'}}</tex>. Так как <tex>y \notin U</tex>, то <tex>\exists t \notin U: yt \notin \mathbb{E_\mathbb{GE'}}</tex>.
В По построению <tex>{G'}</tex> в графе <tex>\mathbb{G'}+xz</tex> существует полное паросочетание <tex>M_1</tex>, так как граф <tex>\mathbb{G'}</tex> максимальный по построению. Аналогично, в графе <tex>\mathbb{G'}+yt</tex> существует полное паросочетание <tex>M_2</tex>. Так как в <tex>\mathbb{G'}</tex> нет полного паросочетания, то <tex>xz \in M_1</tex> и <tex>yt \in M_2</tex>.
Возможны два случая:
# Вершины <tex>x,z</tex> и <tex>y,t</tex> лежат в разных полных подграфах графа <tex>{G'} \setminus U</tex>, обозначим их <tex>H_1</tex> и <tex>H_2</tex>, соответственно.
#: Покроем вершины подграфа <tex>H_1</tex> паросочетанием <tex>M_2</tex>, при этом заметим, что ребро <tex>xz</tex> не входит в это паросочетание. Аналогично покроем паросочетанием <tex>M_1</tex> вершины подрафа <tex>H_2</tex> и ребро <tex>yt</tex> не войдет в это паросочетание. Если остались непокрытые вершины, то покроем их ребрами из любого паросочетания <tex>M_1</tex> или <tex>M_2</tex>. Таким образом, мы получим полное паросочетание в графе <tex>{G'}</tex>, что противоречит его построению.
#: [[Файл:Граф_для_теоремы_Татта.png|right|200px|thumb|К доказательству 2-ого пункта леммы.]]
# Вершины <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><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>x,z</tex> и <tex>y,t</tex> лежат в разных полных подграфах графа <tex>\mathbb{G'} \setminus U</tex>, обозначим их <tex>H_1</tex> и <tex>H_2</tex>, соответственно. [[Файл:Граф_для_теоремы_Татта.png|right|200px|thumb|К доказательству 2-ого пункта леммы.]]Покроем вершины подграфа <tex>H_1</tex> паросочетанием <tex>M_2</tex>, при этом заметим, что ребро <tex>xz</tex> не входит в это паросочетание. Аналогично покроем паросочетанием <tex>M_1</tex> вершины подрафа <tex>H_2</tex> и ребро <tex>yt</tex> не войдет в это паросочетание. Если остались непокрытые вершины, то покроем их ребрами из любого паросочетания <tex>M_1</tex> или <tex>M_2</tex>. Таким образом, мы получим полное паросочетание в графе <tex>\mathbb{G'}</tex>, что противоречит его построению.  * Вершины <tex>x,y,z</tex> и <tex>t</tex> лежат в одном подграфе графа <tex>\mathbb{G'} \setminus U</tex>. Построим граф <tex>H</tex>, такой что <tex>\mathbb{V_\mathbb{H}}=\mathbb{V_\mathbb{G'}}=\mathbb{V_\mathbb{G}}</tex> и <tex>\mathbb{E_\mathbb{H}}=M_1 \oplus M_2</tex>. Получим, что вершины <tex>x,y,z</tex> и <tex>t</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>\mathbb{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>\mathbb{G'}</tex>, противоречие.  В каждом из возможных случаев получили противоречие, значит, наше начальное предположение тоже неверно и <tex>{G' } \setminus U</tex> {{---}} объединение несвязных полных графов, лемма доказана.
}}
{{Теорема
|statement=В графе <tex>\mathbb{G}</tex> существует полное паросочетание <tex>\Leftrightarrow</tex> <br><tex>\forall S \subset \mathbb{V_\mathbb{G}V}</tex> выполнено условие: <tex>o\mathrm{odd}(\mathbb{G} \setminus S) \leqslant \left\vert S \right\vert</tex> (то есть в графе <tex>{G}</tex> нет ни одного множества Татта)
|proof =
<tex>\Rightarrow</tex> <br>Рассмотрим <tex>M</tex> {{---}} полное паросочетание в графе <tex>\mathbb{G}</tex> и множество вершин <tex>S \subset \mathbb{V_\mathbb{G}V}</tex>.
Одна из вершин каждой нечетной компоненты связности графа <tex> \mathbb{G} \setminus S</tex> соединена ребром паросочетания <tex>M</tex> с какой-то вершиной из <tex>S</tex>. Иначе мы не сможем покрыть паросочетанием все вершины этой компоненты связности и получим противоречие с тем, что полное паросочетание существует по условию теоремы. Таким образом, получаем, что <tex>o\mathrm{odd}(\mathbb{G} \setminus S) \leqslant \left\vert S \right\vert</tex>.
<tex>\Leftarrow</tex> <br>Пусть для графа <tex>\mathbb{G}</tex> выполнено, что <tex>o\mathrm{odd}(\mathbb{G} \setminus S) \leqslant \left\vert S \right\vert</tex>, но полного паросочетания в этом графе не существует.
Рассмотрим граф <tex>\mathbb{G'}</tex> и множество вершин <tex>U</tex> (из леммы). Так как число нечетных компонент не увеличивается при добавлении новых ребер, то <tex>\forall S \subset \mathbb{V_\mathbb{G}V}</tex> выполнено <tex>o\mathrm{odd}(\mathbb{G'} \setminus S) \leqslant o\mathrm{odd}(\mathbb{G} \setminus S) \leqslant \left\vert S \right\vert</tex>. По лемме, доказанной выше: <tex>\mathbb{G'} \setminus U</tex> {{---}} объединение несвязных полных графов.
Очевидно, что в каждой четной компоненте связности графа <tex>\mathbb{G'} \setminus U</tex> мы можем построить полное паросочетание. В каждой нечетной компоненте этого графа построим паросочетание, которое покрывает все вершины кроме одной, оставшуюся непокрытой вершину, соединим с какой-то вершиной множества <tex>U</tex>. При этом мы будем использовать различные вершины из <tex>U</tex>, это возможно, так как <tex>o\mathrm{odd}({G' } \setminus U) \leqslant \left\vert U \right\vert</tex>. Если все вершины множества <tex>U</tex> оказались покрытыми, то мы получили полное паросочетание в графе <tex>\mathbb{G'}</tex>. Противоречие, так как по построению в <tex>\mathbb{G'}</tex> нет полного паросочетания.
Значит, в <tex>U</tex> осталось какое-то количество непокрытых вершин, при этом их четное число, потому что число вершин в <tex>\mathbb{G'}</tex> четно, так как <tex>o\mathrm{odd}(\mathbb{G'} \setminus \varnothing) \leqslant \left\vert \varnothing \right\vert = 0</tex> и уже покрыто паросочетанием четное число вершин. Так как в множество <tex>U</tex> входят вершины, которые в <tex>\mathbb{G'}</tex> смежны со всеми остальными, то мы сможем разбить оставшиеся вершины на пары и покрыть их паросочетанием.
Таким образом, получили в <tex>\mathbb{G'}</tex> полное паросочетание, что противоречит тому, как мы задали этот граф изначально.  Значит, начальное предположение не верно, и в <tex>\mathbb{G}</tex> существует полное паросочетание.
}}
==ЛитератураСм. также==* [[Матрица Татта и связь с размером максимального паросочетания в двудольном графе]]* [[Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях]]* [[Декомпозиция Эдмондса-Галлаи]] ==Примечания==<references/> == Источники информации ==
*[http://logic.pdmi.ras.ru/~dvk/211/graphs_dk.pdf Д.В Карпов. Теория графов] (2 глава, стр. 29)
* [http://en.wikipedia.org/wiki/Tutte_theorem Wikipedia — Tutte theorem]
[[Категория:Алгоритмы и структуры данных]]
[[Категория:Задача о паросочетании]]
Анонимный участник

Навигация