76
правок
Изменения
Нет описания правки
{{Утверждение
|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>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