Декомпозиция Эдмондса-Галлаи — различия между версиями
(→Структурная теорема Эдмондса-Галлаи) |
Slavian (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | + | В этом направлении много усилий приложили Вильям Томас '''Татт''' (''William Thomas Tutte''), Клауд '''Берж'''(''Claude Brege''), Джек '''Эдмондс'''(''Jack Edmonds'') и Тибор '''Галлаи'''(''Tibor Gallai''). | |
{{Определение | {{Определение | ||
Строка 18: | Строка 18: | ||
|statement= | |statement= | ||
Для любого графа G выполняется:<br> | Для любого графа G выполняется:<br> | ||
− | <tex>\mathrm{def}(G) = \ | + | <tex>\mathrm{def}(G) = \max\limits_{S \subset V(G)} \{\mathrm{odd}(G - S) - |S|\}.</tex> |
}} | }} | ||
Строка 26: | Строка 26: | ||
|statement= | |statement= | ||
Дан граф <tex>G</tex>, размер максимального паросочетания в нем равен:<br> | Дан граф <tex>G</tex>, размер максимального паросочетания в нем равен:<br> | ||
− | <tex>\mathrm{ \alpha} (G) = \ | + | <tex>\mathrm{ \alpha} (G) = \min\limits_{U \in V} \{1/2(|V|-|U|-\mathrm{odd}(G-U)\} </tex> |
}} | }} | ||
Строка 76: | Строка 76: | ||
|proof= | |proof= | ||
Достаточно доказать, что <tex>D(G - a) = D(G)</tex>. <br> | Достаточно доказать, что <tex>D(G - a) = D(G)</tex>. <br> | ||
− | + | # покажем, что <tex>D(G - a) \supset D(G)</tex> : <br> | |
Пусть <tex>u \in D(G)</tex>. Тогда существует [[Теорема о максимальном паросочетании и дополняющих цепях|максимальное паросочетание]] <tex>M_u</tex> графа <tex>G</tex>, не покрывающее <tex>u</tex>. Поскольку любое максимальное паросочетание графа <tex>G</tex> покрывает a, то <tex> \alpha (G - a) = \alpha (G) - 1 </tex> и более того, если, для некоторой вершины <tex>x \in D(G)</tex>, <tex>ax \in M_u</tex>, то <tex>M_u \setminus {ax} </tex> - максимальное паросочетание графа <tex> G - a </tex>, не покрывающее <tex> u </tex>. Таким образом, <tex>D(G - a) \supset D(G) </tex>. <br> | Пусть <tex>u \in D(G)</tex>. Тогда существует [[Теорема о максимальном паросочетании и дополняющих цепях|максимальное паросочетание]] <tex>M_u</tex> графа <tex>G</tex>, не покрывающее <tex>u</tex>. Поскольку любое максимальное паросочетание графа <tex>G</tex> покрывает a, то <tex> \alpha (G - a) = \alpha (G) - 1 </tex> и более того, если, для некоторой вершины <tex>x \in D(G)</tex>, <tex>ax \in M_u</tex>, то <tex>M_u \setminus {ax} </tex> - максимальное паросочетание графа <tex> G - a </tex>, не покрывающее <tex> u </tex>. Таким образом, <tex>D(G - a) \supset D(G) </tex>. <br> | ||
− | + | #покажем, что <tex> D(G - a) \subset D(G)</tex>: <br> | |
Предположим, что существует максимальное паросочетание <tex>M'</tex> графа <tex> G - a</tex>, не покрывающее вершину <tex>v</tex> <tex>not \in D(G)</tex>. Пусть <tex> w \in D(G) </tex> - смежная с <tex> a \in A(G)</tex> вершина, а <tex> M_w </tex>- максимальное паросочетание графа <tex> G </tex>, не покрывающее <tex> w </tex>. Так как <tex>v</tex> <tex>not \in D(G) </tex>, максимальное паросочетание <tex> M_w </tex> покрывает вершину <tex>v</tex>. Рассмотрим граф <tex> H = G(M_w \bigcup M') </tex> - очевидно, он является объединением нескольких путей и чётных циклов. Пусть <tex> U </tex> - компонента связности графа <tex> H </tex>, содержащая <tex>v</tex>. Так как <tex> deg_H(v) = 1 </tex>(степень вершины), то <tex> P = H(U) </tex> - путь с началом в вершине <tex>v</tex>. В пути <tex>P</tex> чередуются рёбра из <tex> M_w и M' </tex>, причём начинается путь ребром из <tex>M_w </tex>. Так как <tex> deg_H(a) = 1 </tex>, то вершина a либо не принадлежит пути <tex>P</tex>, либо является её концом (в этом случае последнее ребро пути принадлежит паросочетанию <tex> M_w</tex>). Рассмотрим несколько случаев: <br> | Предположим, что существует максимальное паросочетание <tex>M'</tex> графа <tex> G - a</tex>, не покрывающее вершину <tex>v</tex> <tex>not \in D(G)</tex>. Пусть <tex> w \in D(G) </tex> - смежная с <tex> a \in A(G)</tex> вершина, а <tex> M_w </tex>- максимальное паросочетание графа <tex> G </tex>, не покрывающее <tex> w </tex>. Так как <tex>v</tex> <tex>not \in D(G) </tex>, максимальное паросочетание <tex> M_w </tex> покрывает вершину <tex>v</tex>. Рассмотрим граф <tex> H = G(M_w \bigcup M') </tex> - очевидно, он является объединением нескольких путей и чётных циклов. Пусть <tex> U </tex> - компонента связности графа <tex> H </tex>, содержащая <tex>v</tex>. Так как <tex> deg_H(v) = 1 </tex>(степень вершины), то <tex> P = H(U) </tex> - путь с началом в вершине <tex>v</tex>. В пути <tex>P</tex> чередуются рёбра из <tex> M_w и M' </tex>, причём начинается путь ребром из <tex>M_w </tex>. Так как <tex> deg_H(a) = 1 </tex>, то вершина a либо не принадлежит пути <tex>P</tex>, либо является её концом (в этом случае последнее ребро пути принадлежит паросочетанию <tex> M_w</tex>). Рассмотрим несколько случаев: <br> | ||
Строка 114: | Строка 114: | ||
|proof= | |proof= | ||
[[Файл: Edmonds-Gallai_2.png|300px|thumb|right|Пример]] | [[Файл: Edmonds-Gallai_2.png|300px|thumb|right|Пример]] | ||
− | + | # Последовательно удаляя вершины множества<tex> A = A(G)</tex>, по лемме о стабильности мы получим: | |
− | * <tex>D(G - A) = D(G),</tex> | + | #:* <tex>D(G - A) = D(G),</tex> |
− | * <tex>A(G - A) = \O, </tex> | + | #:* <tex>A(G - A) = \O, </tex> |
− | * <tex>C(G - A) = C(G),</tex> | + | #:* <tex>C(G - A) = C(G),</tex> |
− | * <tex>\alpha (G - A) = \alpha (G) - |A|.</tex> | + | #:* <tex>\alpha (G - A) = \alpha (G) - |A|.</tex> |
− | + | #: | |
− | Это означает, что не существует рёбер, соединяющих вершины из <tex>C(G - A)</tex> и <tex>D(G - A)</tex>. Каждое максимальное паросочетание <tex>M'</tex> графа <tex>G - A</tex> покрывает все вершины множества <tex>C(G)</tex>, поэтому <tex>M'</tex> содержит | + | #:Это означает, что не существует рёбер, соединяющих вершины из <tex>C(G - A)</tex> и <tex>D(G - A)</tex>. Каждое максимальное паросочетание <tex>M'</tex> графа <tex>G - A</tex> покрывает все вершины множества <tex>C(G)</tex>, поэтому <tex>M'</tex> содержит совершенное паросочетание графа <tex>C</tex>. Тем самым, мы доказали пункт 1). |
− | совершенное паросочетание графа <tex>C</tex>. Тем самым, мы доказали пункт 1). | + | #: |
− | + | # Из формулы <tex> \alpha(G - A) = \alpha (G) - |A|</tex> следует, что <tex>U_1,{...},U_n</tex>- компоненты связности графа <tex>G - A</tex>. Для любой вершины <tex>u \in U_i</tex> существует максимальное паросочетание <tex>M_u</tex> графа <tex>G - A</tex>, не содержащее <tex>u</tex>. Так как <tex>U_i</tex> - компонента связности графа <tex>G - A</tex>, паросочетание <tex>M_u</tex> содержит максимальное паросочетание графа <tex>D_i</tex> (разумеется, не покрывающее вершину <tex>u</tex>). Следовательно, <tex> \alpha (D_i) = \alpha (D_i - u) </tex> и по теореме Галлаи(выше) мы получаем, что граф <tex>D_i</tex> - фактор-критический. | |
− | + | #: | |
− | + | # Пусть <tex>M</tex> - максимальное паросочетание графа <tex>G</tex>, а <tex>M'</tex> получено из <tex>M</tex> удалением всех рёбер, инцидентных вершинам множества <tex>A</tex>. Тогда <tex>|M'| \ge |M| - |A|</tex> и по формуле <tex> \alpha (G - A) = \alpha (G) - |A|</tex> понятно, что <tex>M'</tex> - максимальное паросочетание графа <tex>G - A</tex>. Более того, из <tex> \alpha (G - A) = \alpha (G) - |A|</tex> следует <tex>|M'| = |M| - |A|</tex>, а значит, все вершины множества <tex>A</tex> покрыты в <tex>M</tex> различными рёбрами. Так как <tex>M'</tex> - максимальное паросочетание графа <tex>G - A</tex>, то по пунктам 1) и 2) очевидно, что <tex>M'</tex> содержит совершенное паросочетание графа <tex>C</tex> и почти совершенные паросочетания фактор-критических графов <tex>D_1,{...},D_n</tex>. Значит, рёбра паросочетания <tex>M</tex> соединяют вершины <tex>A</tex> с непокрытыми <tex>M'</tex> вершинами различных компонент связности из <tex>U_1,{...},U_n</tex>. | |
− | + | # Из пункта 3) сразу же следуют оба равенства пункта 4). | |
− | |||
Версия 23:19, 28 декабря 2013
В этом направлении много усилий приложили Вильям Томас Татт (William Thomas Tutte), Клауд Берж(Claude Brege), Джек Эдмондс(Jack Edmonds) и Тибор Галлаи(Tibor Gallai).
Определение: |
компонент связности нечетного размера в . | - количество
Определение: |
Дефицитом графа G мы будем называть величину:
|
Теорема (Бержа): |
Для любого графа G выполняется: |
Теорема (Татта-Бержа): |
Дан граф , размер максимального паросочетания в нем равен: |
Определение: |
Множество | , для которого , называется барьером.
Определение: |
Пусть | . Множeство соседей (англ. neighbors) определим формулой:
Структурная теорема Эдмондса-Галлаи
Определение: |
Необходимые определения:
|
Определение: |
Граф совершенное паросочетание. | называется фактор-критическим (англ. factor-critical graph), если для любой вершины в графе существует
Теорема (Галлаи): |
- связен и для любой вершины выполняется равенство . |
Лемма (Галлаи, о стабильности (англ. stability lemma)): |
Пусть Тогда:
|
Доказательство: |
Достаточно доказать, что
Пусть максимальное паросочетание графа , не покрывающее . Поскольку любое максимальное паросочетание графа покрывает a, то и более того, если, для некоторой вершины , , то - максимальное паросочетание графа , не покрывающее . Таким образом, .
Предположим, что существует максимальное паросочетание a. Путь b. Путь c. Путь кончается ребром из (см. рисунок) Рассмотрим паросочетание . Тогда , причём . Противоречие с максимальностью паросочетания .
|
Теорема (Галлаи, Эдмондс): |
Пусть G - граф, - компоненты связности графа , . тогда:
|
Доказательство: |
|
Утверждение (следствие из теоремы): |
- барьер графа |