Алгоритм вырезания соцветий — различия между версиями
Kot (обсуждение | вклад) |
Kot (обсуждение | вклад) (→Алгоритм нахождения паросочетания в недвудольном графе) |
||
| Строка 33: | Строка 33: | ||
}} | }} | ||
| − | ==Алгоритм | + | ==Алгоритм вырезания соцветий== |
Пусть дан произвольный граф <tex>G(V, E)</tex> и требуется найти максимальное паросочетание в нём. <br> | Пусть дан произвольный граф <tex>G(V, E)</tex> и требуется найти максимальное паросочетание в нём. <br> | ||
| − | + | Алгоритм строит лес, содержащий деревья дополняющих путей в | |
| − | + | Разобьем каждое неориентированное ребро <tex>(w, v)</tex> на два ориентированных ребра <tex>(w, v)</tex> и <tex>(v, w)</tex>. | |
| − | |||
| − | |||
| − | |||
Версия 20:59, 15 января 2011
Паросочетание в недвудольном графе
| Определение: |
| Соцветие графа - цикл, состоящий из ребер, из которых только входят в соцветие . |
| Определение: |
| Cжатие соцветия - граф , полученный из сжатием соцветия в одну псевдо-вершину. |
| Определение: |
| База соцветия - вершина соцветия, в которую входит ребро не из данного соцветия. |
Теорема Эдмондса
| Теорема: |
Пусть в графе существует соцветие . Тогда в существует удлиняющий путь тогда и только тогда, когда существует удлиняющий путь в |
| Доказательство: |
|
Пусть граф - граф, полученный сжатием соцветия в псевдо-вершину .
Пусть путь является удлиняющим в графе . Если не проходит через , то тогда он будет удлиняющим и в графе .
Пусть путь является удлиняющим путём в графе . Если не проходит через , то тогда он будет удлиняющим и в графе . Рассмотрим отдельно случай, когда начинается со сжатого соцветия , т.е. имеет вид . Тогда в соцветии найдётся соответствующая вершина , которая связана ребром с . Заметим, что из базы соцветия всегда найдётся чередующийся путь чётной длины до вершины . Учитывая всё вышесказанное, получаем, что путь является увеличивающим путём в графе . Пусть теперь путь проходит через псевдо-вершину , но не начинается и не заканчивается в ней. Тогда в есть два ребра, проходящих через , пусть это и . Одно из них обязательно должно принадлежать паросочетанию, однако, так как база цветка не насыщена, а все остальные вершины цикла цветка насыщены рёбрами цикла, то мы приходим к противоречию (это эквивалентно случаю отсутствия ребра из в ). Таким образом, этот случай просто невозможен. Теорема доказана. |
Алгоритм вырезания соцветий
Пусть дан произвольный граф и требуется найти максимальное паросочетание в нём.
Алгоритм строит лес, содержащий деревья дополняющих путей в Разобьем каждое неориентированное ребро на два ориентированных ребра и .