Изменения

Перейти к: навигация, поиск
Нет описания правки
{{Утверждение
|statement=Пусть двудольный граф <tex>G</tex> содержит единственное полное паросочетание <tex>M</tex>. Тогда можо упорядочить вершины левой <tex>(a_i \in A)</tex> и правой <tex>(b_i \in B)</tex> долей таким образом, что <tex>\forall j > i : (a_i b_j) \notin G</tex>. При этом рёбра паросочетания будут иметь вид <tex>(y_i z_i)</tex>.
 
|proof=Индукция по <tex>|A|</tex>.<br/>
При <tex>|A|=1</tex> утверждение очевидно. <br/>
Пусть <tex>|A|=n>1</tex>. Будем строить [[Теорема о максимальном паросочетании и дополняющих цепях#Паросочетание в двудольном графе|чередующуюся цепь]], добавляя по очереди ребро, входящее в <tex>M</tex>, и ребро, не входящее в <tex>M</tex>. Заметим, что в процессе добавления рёбер невозможно попадение в уже посещённую вершину — в противном случае мы получим цикл чётной длины, что противоречит единственности паросочетания. Если последнее добавленное ребро не принадлежит <tex>M</tex>, то присоединим к цепи ребро из <tex>M</tex>, инцидентное последней вершине. Значит, построение цепи прервется только при добавлении ребра из <tex>M</tex> при достижении вершины [[Основные определения теории графов#Степень вершины|степени]] 1. <br/>
Пусть последнее ребро в цепи — <tex>(ab)</tex>, где <tex>a \in A, b \in B</tex>, тогда положим <tex>a_n=a, b_n=b</tex>. Т. к. <tex>\deg b_n=\deg b = 1</tex>, то <tex>(a_i b_n) \notin G</tex> при <tex>i<n</tex>, т. е. для <tex>j = n</tex> утверждение верно. Удалим из <tex>G</tex> вершины <tex>a_n</tex> и <tex>b_n</tex>. По предположению индукции для полученного графа утверждение также верно.
}}
 
 
{{Лемма
|about=
|proof=
[[Файл:Graph replacement.png|thumb|left|160px|]]
Заметим, что т. к. в графе <tex>G_M(A)</tex> нет другого паросочетания, то в нем нет циклов четной длины, значит, граф является ациклическим. Упорядочим вершины левой <tex>(y_i \in A \setminus B)</tex> и правой <tex>(z_j \in B \setminus A)</tex> долей таким образом, что <tex>\forall j < > i : (y_i z_j) \notin G_M(A)</tex>. Заметим также, что при При таком упорядочивании ребра паросочетания имеют вид <tex>(y_i z_i)</tex>. Действительно, ребро в первую вершину правой доли может идти только из первой вершины левой доли. Аналогично во вторую вершину правой доли ведет ребро из второй вершины левой доли и, возможно, ребро из первой вершины, которое уже не может быть использовано в паросочетании и т. д.
Требуется доказать, что <tex>B</tex> независимо. Предположим обратное. Пусть <tex>B \notin I</tex>, тогда существует [[Теорема о циклах|цикл]] <tex>C \subset B</tex>.<br/> Выберем минимальное <tex>i</tex> такое, что <tex>C \subset (A \cap B) \cup \{z_1..z_i\}in C</tex>. Т. к. <tex>\forall j < > i : (y_i z_j) \notin G_M(A)</tex>, то <tex>A \setminus y_i \cup z_j \notin I</tex>, следовательно, <tex>C \setminus z_i \subset \langle A \setminus y_i \rangle </tex>. По [[Оператор замыкания для матроидов#theorem|свойствам замыкания 1 и 3]] получаем:<br/>
<tex>C \setminus z_i \subset \langle A \setminus y_i \rangle \Rightarrow \langle C \setminus z_i \rangle \subset \langle \langle A \setminus y_i \rangle \rangle \Rightarrow \langle C \setminus z_i \rangle \subset \langle A \setminus y_i \rangle</tex> <br/>
Т. к. <tex>z_i \in \langle C \setminus z_i \rangle \subset \langle A \setminus y_i \rangle</tex>, то <tex>A \setminus y_i \cup z_i \notin I</tex>, т. е. в <tex>G_M(A)</tex> не существует ребра <tex>(y_i z_i)</tex>. Но тогда, как было отмечено ранее, не существует полного паросочетания. Получили противоречие.
}}
 
== Источник ==
''Chandra Chekuri'' — [http://www.cs.illinois.edu/class/sp10/cs598csc/Lectures/Lecture16.pdf '''Combinatorial Optimization'''], с. 6
76
правок

Навигация