Алгоритм вырезания соцветий — различия между версиями
Kot (обсуждение | вклад) (→Теорема Эдмондса) |
Kot (обсуждение | вклад) (→Теорема Эдмондса) |
||
Строка 30: | Строка 30: | ||
Рассмотрим отдельно случай, когда <tex>P</tex> начинается со сжатого соцветия <tex>B'</tex>, т.е. имеет вид <tex>(B', c, ...)</tex>. Тогда в соцветии <tex>B</tex> найдётся соответствующая вершина <tex>v</tex>, которая связана ребром с <tex>c</tex>. Заметим, что из базы соцветия всегда найдётся чередующийся путь чётной длины до вершины <tex>v</tex>. Учитывая всё вышесказанное, получаем, что путь <tex>P_1(b,...v,...c,..)</tex> является увеличивающим путём в графе <tex>G</tex>. | Рассмотрим отдельно случай, когда <tex>P</tex> начинается со сжатого соцветия <tex>B'</tex>, т.е. имеет вид <tex>(B', c, ...)</tex>. Тогда в соцветии <tex>B</tex> найдётся соответствующая вершина <tex>v</tex>, которая связана ребром с <tex>c</tex>. Заметим, что из базы соцветия всегда найдётся чередующийся путь чётной длины до вершины <tex>v</tex>. Учитывая всё вышесказанное, получаем, что путь <tex>P_1(b,...v,...c,..)</tex> является увеличивающим путём в графе <tex>G</tex>. | ||
}} | }} | ||
+ | |||
+ | Пусть теперь путь <tex>P</tex> проходит через псевдо-вершину <tex>B'</tex>, но не начинается и не заканчивается в ней. Тогда в <tex>P</tex> есть два ребра, проходящих через <tex>B'</tex>, пусть это <tex>(a,B')</tex> и <tex>(B',c)</tex>. Одно из них обязательно должно принадлежать паросочетанию, однако, так как база цветка не насыщена, а все остальные вершины цикла цветка насыщены рёбрами цикла, то мы приходим к противоречию. Таким образом, этот случай просто невозможен. Теорема доказана. | ||
==Алгоритм== | ==Алгоритм== | ||
Пусть дан произвольный граф <tex>G(V, E)</tex> и требуется найти максимальное паросочетание в нём. <br> | Пусть дан произвольный граф <tex>G(V, E)</tex> и требуется найти максимальное паросочетание в нём. <br> | ||
Для построения алгоритма по [[Теорема о максимальном паросочетании и дополняющих цепях|теореме Бержа]] нужно уметь находить дополняющую цепь. | Для построения алгоритма по [[Теорема о максимальном паросочетании и дополняющих цепях|теореме Бержа]] нужно уметь находить дополняющую цепь. |
Версия 09:08, 25 декабря 2010
Паросочетание в недвудольном графе
Определение: |
Соцветие | графа - цикл, состоящий из ребер, из которых только входят в соцветие .
Определение: |
Cжатие соцветия - граф | , полученный из сжатием соцветия в одну псевдо-вершину.
Определение: |
База соцветия - вершина соцветия, в которую входит ребро не из данного соцветия. |
Теорема Эдмондса
Теорема: |
Пусть в графе существует соцветие .Тогда в существует удлиняющий путь тогда и только тогда, когда существует удлиняющий путь в |
Доказательство: |
Пусть граф
Пусть путь
Пусть путь |
Пусть теперь путь
проходит через псевдо-вершину , но не начинается и не заканчивается в ней. Тогда в есть два ребра, проходящих через , пусть это и . Одно из них обязательно должно принадлежать паросочетанию, однако, так как база цветка не насыщена, а все остальные вершины цикла цветка насыщены рёбрами цикла, то мы приходим к противоречию. Таким образом, этот случай просто невозможен. Теорема доказана.Алгоритм
Пусть дан произвольный граф
Для построения алгоритма по теореме Бержа нужно уметь находить дополняющую цепь.