Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях — различия между версиями
Строка 2: | Строка 2: | ||
{{Определение | {{Определение | ||
− | |definition= '''Паросочетание''' <tex>M</tex> в двудольном графе | + | |definition= '''Паросочетание''' <tex>M</tex> в двудольном графе — произвольное множество ребер двудольного графа, такое что никакие два ребра не имеют общей вершины.}} |
{{Определение | {{Определение | ||
− | |definition= Вершины двудольного графа, инцидентные ребрам паросочетания <tex>M</tex>, называются '''покрытыми''', а неинцидентные | + | |definition= Вершины двудольного графа, инцидентные ребрам паросочетания <tex>M</tex>, называются '''покрытыми''', а неинцидентные — '''свободными'''.}} |
{{Определение | {{Определение | ||
− | |definition= '''Чередующаяся цепь''' | + | |definition= '''Чередующаяся цепь''' — путь в двудольном графе, для любых двух соседних ребер которого выполняется, что одно из них принадлежит паросочетанию <tex>M</tex>, а другое нет.}} |
{{Определение | {{Определение | ||
− | |definition= '''Дополняющая цепь''' | + | |definition= '''Дополняющая цепь''' — чередующаяся цепь, у которой оба конца свободны.}} |
== Теорема о максимальном паросочетании и дополняющих цепях == | == Теорема о максимальном паросочетании и дополняющих цепях == | ||
Строка 24: | Строка 24: | ||
В доказательстве используются несколько новых понятий: | В доказательстве используются несколько новых понятий: | ||
{{Определение | {{Определение | ||
− | |definition= '''Увеличивающая цепь''' | + | |definition= '''Увеличивающая цепь''' — чередующаяся цепь, у которой оба конца свободны.}} |
{{Определение | {{Определение | ||
− | |definition= '''Уменьшающая цепь''' | + | |definition= '''Уменьшающая цепь''' — чередующаяся цепь, у которой оба конца покрыты.}} |
{{Определение | {{Определение | ||
− | |definition= '''Сбалансированная цепь''' | + | |definition= '''Сбалансированная цепь''' — чередующаяся цепь, у которой один конец свободен, а другой покрыт}} |
Рассмотрим паросочетание <tex>M</tex> в графе <tex>G</tex> и предположим, что <tex>M</tex> - не наибольшее. Докажем, что тогда имеется увеличивающая цепь относительно <tex>M</tex>. Пусть <tex>M'</tex> - другое паросочетание и <tex>|M'|>|M|</tex>. Рассмотрим подграф <tex>H</tex> графа <tex>G</tex>, образованный теми ребрами, которые входят в одно и только в одно из паросочетаний <tex>M</tex>, <tex>M'</tex>. Иначе говоря, множеством ребер графа <tex>H</tex> является симметрическая разность <tex>M\oplus M'</tex>. В графе <tex>H</tex> каждая вершина инцидентна не более чем двум ребрам (одному из <tex>M</tex> и одному из <tex>M'</tex> ), т.е. имеет степень не более двух. В таком графе каждая компонента связности - путь или цикл. В каждом из этих путей и циклов чередуются ребра из <tex>M</tex> и <tex>M'</tex>. Так как <tex>|M'|>|M|</tex>, имеется компонента, в которой ребер из <tex>M'</tex> содержится больше, чем ребер из <tex>M</tex>. Это может быть только путь, у которого оба концевых ребра принадлежат <tex>M'</tex>. Заметим, что относительно <tex>M</tex> этот путь является увеличивающей (дополняющей) цепью. | Рассмотрим паросочетание <tex>M</tex> в графе <tex>G</tex> и предположим, что <tex>M</tex> - не наибольшее. Докажем, что тогда имеется увеличивающая цепь относительно <tex>M</tex>. Пусть <tex>M'</tex> - другое паросочетание и <tex>|M'|>|M|</tex>. Рассмотрим подграф <tex>H</tex> графа <tex>G</tex>, образованный теми ребрами, которые входят в одно и только в одно из паросочетаний <tex>M</tex>, <tex>M'</tex>. Иначе говоря, множеством ребер графа <tex>H</tex> является симметрическая разность <tex>M\oplus M'</tex>. В графе <tex>H</tex> каждая вершина инцидентна не более чем двум ребрам (одному из <tex>M</tex> и одному из <tex>M'</tex> ), т.е. имеет степень не более двух. В таком графе каждая компонента связности - путь или цикл. В каждом из этих путей и циклов чередуются ребра из <tex>M</tex> и <tex>M'</tex>. Так как <tex>|M'|>|M|</tex>, имеется компонента, в которой ребер из <tex>M'</tex> содержится больше, чем ребер из <tex>M</tex>. Это может быть только путь, у которого оба концевых ребра принадлежат <tex>M'</tex>. Заметим, что относительно <tex>M</tex> этот путь является увеличивающей (дополняющей) цепью. | ||
Строка 34: | Строка 34: | ||
==Литература== | ==Литература== | ||
− | * Асанов М. О., Баранский В. А., Расин В. В. | + | * Асанов М. О., Баранский В. А., Расин В. В. — Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2''' |
[[Категория: Алгоритмы и структуры данных]] | [[Категория: Алгоритмы и структуры данных]] | ||
[[Категория: Задача о паросочетании]] | [[Категория: Задача о паросочетании]] |
Версия 06:06, 30 декабря 2011
Паросочетание в двудольном графе
Определение: |
Паросочетание | в двудольном графе — произвольное множество ребер двудольного графа, такое что никакие два ребра не имеют общей вершины.
Определение: |
Вершины двудольного графа, инцидентные ребрам паросочетания | , называются покрытыми, а неинцидентные — свободными.
Определение: |
Чередующаяся цепь — путь в двудольном графе, для любых двух соседних ребер которого выполняется, что одно из них принадлежит паросочетанию | , а другое нет.
Определение: |
Дополняющая цепь — чередующаяся цепь, у которой оба конца свободны. |
Теорема о максимальном паросочетании и дополняющих цепях
Теорема: | ||||||
Паросочетание в двудольном графе является максимальным тогда и только тогда, когда в нет дополняющей цепи. | ||||||
Доказательство: | ||||||
Пусть в двудольном графе с максимальным паросочетанием существует дополняющая цепь. Тогда пройдя по ней и заменив вдоль нее все ребра, входящие в паросочетание, на невходящие и наоборот, мы получим большее паросочетание. То есть не являлось максимальным. Противоречие.
В доказательстве используются несколько новых понятий:
| ||||||
Литература
- Асанов М. О., Баранский В. А., Расин В. В. — Дискретная математика: Графы, матроиды, алгоритмы. ISBN 978-5-8114-1068-2