Алгоритм вырезания соцветий — различия между версиями
Kot (обсуждение | вклад) |
Kot (обсуждение | вклад) м |
||
| Строка 3: | Строка 3: | ||
{{Определение | {{Определение | ||
| − | |definition= | + | |definition= Соцветие <tex>B</tex> графа <tex>G=(V,E)</tex> - цикл, состоящий из <tex>2k + 1</tex> ребер, из которых только <tex>k</tex> входят в соцветие <tex>B</tex>.}} |
{{Определение | {{Определение | ||
| − | + | |definition= Cжатие соцветия - граф <tex>G'</tex>, полученный из <tex>G</tex> сжатием соцветия в одну псевдо-вершину.}} | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |definition= Cжатие соцветия - граф <tex>G'</tex>, полученный из <tex>G</tex> сжатием соцветия в одну псевдо-вершину}} | ||
== Теорема Эдмондса == | == Теорема Эдмондса == | ||
| Строка 19: | Строка 11: | ||
{{Теорема | {{Теорема | ||
|statement= | |statement= | ||
| − | + | Пусть в графе <tex>G</tex> существует соцветие <tex>B</tex>.<br /> | |
| + | Тогда в <tex>G</tex> существует удлиняющий путь тогда и только тогда, когда существует удлиняющий путь в <tex>G\setminus B</tex> | ||
|proof= | |proof= | ||
| + | Пусть граф <tex>G'</tex> - граф, полученный <tex>G</tex> сжатием цветка <tex>B</tex> в псевдо-вершину <tex>B'</tex>.<br /> | ||
| + | |||
<tex>\Rightarrow</tex> | <tex>\Rightarrow</tex> | ||
| + | Пусть путь <tex>P</tex> является удлиняющим в графе <tex>G</tex>. Если <tex>P</tex> не проходит через <tex>B</tex>, то тогда он будет удлиняющим и в графе <tex>G'</tex>. <br /> | ||
| + | Пусть проходит через <tex>B</tex>. Тогда что путь P представляет собой некоторый путь <tex>P_1</tex>, не проходящий по вершинам <tex>B</tex>, плюс некоторый путь <tex>P_2</tex>, проходящий по вершинам <tex>B</tex> и, возможно, другим вершинам. Но тогда путь <tex>P_1 + B'</tex> будет являться удлиняющим путём в графе <tex>G'</tex>, что и требовалось доказать. | ||
<tex>\Leftarrow</tex> | <tex>\Leftarrow</tex> | ||
| + | Пусть путь <tex>P</tex> является увеличивающим путём в графе <tex>G'</tex>. Если <tex>P</tex> не проходит через <tex>B'</tex>, то тогда он будет удлиняющим и в графе <tex>G</tex>. <br /> | ||
| + | |||
| + | Рассмотрим отдельно случай, когда <tex>P</tex> начинается со сжатого соцветия <tex>B'</tex>, т.е. имеет вид <tex>(B', c, ...)</tex>. Тогда в соцветии <tex>B</tex> найдётся соответствующая вершина <tex>v</tex>, которая связана ребром с <tex>c</tex>. | ||
}} | }} | ||
Версия 13:55, 24 декабря 2010
Эта статья находится в разработке!
Паросочетание в недвудольном графе
| Определение: |
| Соцветие графа - цикл, состоящий из ребер, из которых только входят в соцветие . |
| Определение: |
| Cжатие соцветия - граф , полученный из сжатием соцветия в одну псевдо-вершину. |
Теорема Эдмондса
| Теорема: |
Пусть в графе существует соцветие . Тогда в существует удлиняющий путь тогда и только тогда, когда существует удлиняющий путь в |
| Доказательство: |
|
Пусть граф - граф, полученный сжатием цветка в псевдо-вершину .
Пусть путь является удлиняющим в графе . Если не проходит через , то тогда он будет удлиняющим и в графе .
Пусть путь является увеличивающим путём в графе . Если не проходит через , то тогда он будет удлиняющим и в графе . |
Алгоритм
Пусть дан произвольный граф и требуется найти максимальное паросочетание в нём.
Для построения алгоритма по теореме Бержа нужно уметь находить дополняющую цепь.