<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Shiplayer</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Shiplayer"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Shiplayer"/>
		<updated>2026-05-19T18:00:48Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48570</id>
		<title>Покрытия, закрытые множества</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48570"/>
				<updated>2015-06-16T08:53:36Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Закрытые множества */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Покрытие ==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Пусть &amp;lt;tex&amp;gt;M =\; \langle X,I \rangle&amp;lt;/tex&amp;gt; {{---}} матроид. Тогда '''покрытие''' (англ. ''span'') множества &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; {{---}} это множество &amp;lt;tex&amp;gt; span_M(A) = \mathcal {f} x \in X \; |\; r(A) = r(A \cup x) \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Далее &amp;lt;tex&amp;gt;span_M &amp;lt;/tex&amp;gt; будет указываться, как &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &amp;lt;tex&amp;gt; span(A) = A \cup \mathcal {f} x \in X \setminus A \; |\; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \mathcal {g} &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Эти определения эквивалентны.&lt;br /&gt;
|proof=Понятно, что элементы из &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; подходят под оба определения. Для остальных же &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt; равенство &amp;lt;tex&amp;gt; \ r(A) = r(A \cup x) &amp;lt;/tex&amp;gt; означает, что не найдётся множеств &amp;lt;tex&amp;gt; S' \subseteq A \cup x :\ S' \in I,\ |S'| &amp;gt; r(A). &amp;lt;/tex&amp;gt; Для такого &amp;lt;tex&amp;gt; S' &amp;lt;/tex&amp;gt; обязательно будет выполнено &amp;lt;tex&amp;gt; x \in S', &amp;lt;/tex&amp;gt; в противном случае &amp;lt;tex&amp;gt; S' \subseteq A, &amp;lt;/tex&amp;gt; что приведёт к &amp;lt;tex&amp;gt; r(A) \geqslant |S'|. &amp;lt;/tex&amp;gt; Тогда для &amp;lt;tex&amp;gt; S = S' \setminus x &amp;lt;/tex&amp;gt; верно &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I. &amp;lt;/tex&amp;gt; Из последнего получается, что &amp;lt;tex&amp;gt; r(A) \geqslant |S|, &amp;lt;/tex&amp;gt; и учитывая &amp;lt;tex&amp;gt; r(A) &amp;lt; |S'|,\ |S| + 1 = |S'| &amp;lt;/tex&amp;gt; имеем &amp;lt;tex&amp;gt; r(A) = |S|. &amp;lt;/tex&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Иначе говоря, не должно существовать множеств &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A):\ S' = S \cup x \in I. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Для множества &amp;lt;tex&amp;gt; A \subseteq X &amp;lt;/tex&amp;gt; выполнено &amp;lt;tex&amp;gt; span(A) \subseteq \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof=Покажем, что следующее определение замыкания равносильно тому, которое [[Оператор замыкания для матроидов | было дано]] ранее:&lt;br /&gt;
: &amp;lt;tex&amp;gt;\langle A \rangle = A \cup \mathcal {f} x \in X \setminus A \; |\; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
По сравнению со старым определением появилось два ограничения, нужно убедится в том, что они не существены. Сначала рассмотрим &amp;lt;tex&amp;gt; |H| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: Пусть &amp;lt;tex&amp;gt; \exists H \subseteq A :\ H \in I ,\; H \cup x \notin I, &amp;lt;/tex&amp;gt; но &amp;lt;tex&amp;gt; |H| &amp;lt; r(A). &amp;lt;/tex&amp;gt;  По [[Ранговая функция, полумодулярность | определению ранга]] &amp;lt;tex&amp;gt; \exists D \subseteq A ,\; D \in I :\ |D| = r(A). &amp;lt;/tex&amp;gt; Поскольку &amp;lt;tex&amp;gt; |H| &amp;lt; |D| &amp;lt;/tex&amp;gt;, можно применить [[Определение матроида | 3-ю аксиому матроидов]] несколько раз и получить &amp;lt;tex&amp;gt; H' \subseteq A :\ H \subseteq H' ,\; H' \in I ,\; |H'| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; H' \cup x \notin I &amp;lt;/tex&amp;gt; также будет выполнено, поскольку в противном случае &amp;lt;tex&amp;gt; H \cup x \notin I &amp;lt;/tex&amp;gt; будет неверно (в силу [[Определение матроида | 2-ой аксиомы матроидов]]).&lt;br /&gt;
Второе ограничение {{---}} &amp;lt;tex&amp;gt; x \in X \setminus A &amp;lt;/tex&amp;gt; можно наложить по той причине, что элементы &amp;lt;tex&amp;gt; x \in A &amp;lt;/tex&amp;gt; и так входят в замыкание благодаря левой части объединения.&lt;br /&gt;
&lt;br /&gt;
В соответствии с этим определением, замыкание множества &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; {{---}} это, кроме всех элементов &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt;, все такие &amp;lt;tex&amp;gt; x, &amp;lt;/tex&amp;gt; что какое-то из максимальных по мощности независимых подмножеств &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; нельзя дополнить &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;-ом, оставив это множество независимым. Определение покрытия отличается только квантором {{---}} вместо &amp;quot;какое-то&amp;quot; нужно поставить &amp;quot;любое&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Учитывая, что &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A) &amp;lt;/tex&amp;gt; описывает непустое множество таких &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; (по определению ранга), будет верным следствие:&lt;br /&gt;
: &amp;lt;tex&amp;gt; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \ \Rightarrow &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I &amp;lt;/tex&amp;gt; &lt;br /&gt;
Поэтому &amp;lt;tex&amp;gt; x \in span(A) \Rightarrow x \in \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Пусть S {{---}} конечное множество. Функция &amp;lt;tex&amp;gt; span : \mathcal P (S) \rightarrow \mathcal P (S) &amp;lt;/tex&amp;gt; является покрытием матроида тогда и только тогда, когда удовлетворяет следующим свойствам:&lt;br /&gt;
# &amp;lt;tex&amp;gt; T, U \subseteq S;\ U \subseteq span(T) \ \Rightarrow \ span(U) \subseteq span(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
# &amp;lt;tex&amp;gt; T \subseteq S,\ t \in S \setminus T,\ s \in span(T \cup t) \setminus span(T) \ \Rightarrow \ t \in span(T \cup s) &amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof ='''Необходимое условие'''. Пусть &amp;lt;tex&amp;gt; span &amp;lt;/tex&amp;gt; будет функцией покрытия матроида &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; с ранговой функцией &amp;lt;tex&amp;gt; r &amp;lt;/tex&amp;gt;. Покажем, что &amp;lt;tex&amp;gt; s \in span(T)&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;U \subseteq span(T)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;s \in span(U)&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt; не принадлежит &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Тогда по [[ Ранговая_функция, полумодулярность | полумодулярность ранговой функции]] мы имеем:&lt;br /&gt;
: &amp;lt;tex&amp;gt; r(T \cup {s}) \leqslant r(T \cup U \cup {s}) \leqslant r(T \cup U) + r(U \cup {s}) - r(U) = r(T \cup U) = r(T)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Это показывает, что &amp;lt;tex&amp;gt; s \in span(T) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Заметим, что &amp;lt;tex&amp;gt; s \in span(T \cup {t}) \Rightarrow span(T) &amp;lt;/tex&amp;gt; эквивалентно таким выражениям: &amp;lt;tex&amp;gt; r(T \cup {t} \cup {s}) = r(T \cup {t}) &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; r(T \cup {s}) &amp;gt; r(T)&amp;lt;/tex&amp;gt;. Следовательно&lt;br /&gt;
: &amp;lt;tex&amp;gt;r(T \cup t \cup {s}) = r(T \cup {t}) &amp;lt;= r(T) + 1 &amp;lt;= r(T \cup {s}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
то есть, &amp;lt;tex&amp;gt; t \in span(T \cup {s}) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Достаточное условие'''. Пусть функция &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt; удовлетворяет свойствам и определена, как:&lt;br /&gt;
:&amp;lt;tex&amp;gt; L = \mathcal {f} I \subseteq S \; |\; \forall s \in I :  s \notin span(I \setminus {s}) \mathcal {g} &amp;lt;/tex&amp;gt;&lt;br /&gt;
Сперва посмотрим на следующее: &lt;br /&gt;
:если &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt;span(I) = I \cup \mathcal {f} t \; | \; I \cup {t} \in L \mathcal {g} &amp;lt;/tex&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Действительно, если &amp;lt;tex&amp;gt; t \in span(I) \setminus I &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, по определению независимого множества. С другой стороны, &amp;lt;tex&amp;gt; I \subseteq span(I)&amp;lt;/tex&amp;gt;. Кроме того, если &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, тогда по определению независимого множества получаем, что &amp;lt;tex&amp;gt; \exists s \in I \cup t : s \in span(I \cup {t} \setminus {s}) &amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt; s = t &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s \neq t &amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; s \in I &amp;lt;/tex&amp;gt;. Мы знаем, что &amp;lt;tex&amp;gt; s \notin span(I \setminus {s}) &amp;lt;/tex&amp;gt;, так как &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. Таким образом по 3 свойству доказывается (для &amp;lt;tex&amp;gt; T \in I \setminus {s} &amp;lt;/tex&amp;gt;), &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Теперь покажем, что &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; {{---}} матроид. Очевидно, &amp;lt;tex&amp;gt; \emptyset \in L &amp;lt;/tex&amp;gt;. Для начала покажем, что  &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; закрытое множество под полученным подмножеством, Пусть &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; J \subseteq I &amp;lt;/tex&amp;gt;. Мы видим, что &amp;lt;tex&amp;gt; J \in I &amp;lt;/tex&amp;gt;. Предположим наоборот, что &amp;lt;tex&amp;gt;\exists s \in J : s \in span(J \setminus {s}) &amp;lt;/tex&amp;gt;. Тогда по второму свойству &amp;lt;tex&amp;gt; span(J \setminus {s}) \subseteq span(I \setminus {s})&amp;lt;/tex&amp;gt;. Следовательно, &amp;lt;tex&amp;gt; s \in span( I \setminus {s})&amp;lt;/tex&amp;gt;, что противоречит условию, что &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Для того чтобы проверить [[Определение матроида | 3-ю аксиому матроидов]], допустим, что &amp;lt;tex&amp;gt; I, J \in L &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; |I \setminus J| = 1 &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; |J \setminus I| = 2&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;I \setminus J = \mathcal {f} i \mathcal {g}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;J \setminus I = \mathcal {f} {j_1, j_2} \mathcal {g}&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; I \cup {j_1} \notin L&amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; J \cup {i} \setminus {j_2} \notin L&amp;lt;/tex&amp;gt;, и так по (1) применяется к &amp;lt;tex&amp;gt;J \setminus {j_2} &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; i \in span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Поэтому, &amp;lt;tex&amp;gt; I \subseteq span(J \setminus {j_2})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; span(I) \subseteq span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Таким образом &amp;lt;tex&amp;gt; j_2 \notin span(i) &amp;lt;/tex&amp;gt;(как и &amp;lt;tex&amp;gt; J \in L&amp;lt;/tex&amp;gt;) и поэтому, (1) применяется к &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; и к &amp;lt;tex&amp;gt; I \cup {j_2} \in L &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt; является матроидом. Теперь покажем, что &amp;lt;tex&amp;gt;span = span_M&amp;lt;/tex&amp;gt;. Выберем такое множество &amp;lt;tex&amp;gt; T \subseteq S &amp;lt;/tex&amp;gt;, чтобы увидеть, что &amp;lt;tex&amp;gt; span(T) = span_M(T) &amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; будет базой &amp;lt;tex&amp;gt; T &amp;lt;/tex&amp;gt; (в &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt;). Тогда используя (1), мы получаем:&lt;br /&gt;
:&amp;lt;tex&amp;gt;span_M(T) = T \cup \mathcal {f} x \; | \; I \cup {x} \notin L \mathcal {g} = span(I) \subseteq(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
Таким образом, мы показали, что &amp;lt;tex&amp;gt; span(T) \subseteq span(I)&amp;lt;/tex&amp;gt; т.е. по 1 свойству &amp;lt;tex&amp;gt; T \subseteq span(I)&amp;lt;/tex&amp;gt;. Теперь выберем &amp;lt;tex&amp;gt; t \in T \setminus I&amp;lt;/tex&amp;gt;. В силу максимальности &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt;, мы знаем, что &amp;lt;tex&amp;gt;I \cup t \notin L&amp;lt;/tex&amp;gt;, и, следовательно, по (1) получаем, что &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Закрытые множества ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Множество &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; называется '''закрытым''' (англ. ''closed set'', ''flat''), если &amp;lt;tex&amp;gt; span(A) = A. &amp;lt;/tex&amp;gt; Класс закрытых множеств обозначается &amp;lt;tex&amp;gt; \mathcal L. &amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Пусть &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; {{---}} какое-то множество и &amp;lt;tex&amp;gt; \mathcal L \subseteq S &amp;lt;/tex&amp;gt;. Закрытые множества обладают следующими свойствами:&lt;br /&gt;
# &amp;lt;tex&amp;gt; A, B \in \mathcal L \ \; \Rightarrow \ A \cap B \in \mathcal L &amp;lt;/tex&amp;gt;&lt;br /&gt;
# Если &amp;lt;tex&amp;gt; F \in \mathcal L,\ p \in X \setminus F &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; F' &amp;lt;/tex&amp;gt; {{---}} наименьшее закрытое множество, содержащее &amp;lt;tex&amp;gt; F \cup p, &amp;lt;/tex&amp;gt; тогда не существует &amp;lt;tex&amp;gt; F'' \in \mathcal L :\ F \subseteq F'' \subseteq F'. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof ='''Необходимость'''. Пусть &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; семейство закрытых множеств матроида &amp;lt;tex&amp;gt; M = (S, \mathcal I) &amp;lt;/tex&amp;gt;. 1 свойство следует из &amp;lt;tex&amp;gt; span(A \cap B) \subseteq span(A) \cap span(B) = A \cap B &amp;lt;/tex&amp;gt;, по определению закрытого множества мы получаем, что пересечение закрытых множеств закрыто. Посмотрим на 2 свойства, допустим, что такой &amp;lt;tex&amp;gt; F'' &amp;lt;/tex&amp;gt; существует, и выберем &amp;lt;tex&amp;gt; s \in F'' \setminus F &amp;lt;/tex&amp;gt;. Таким образом &amp;lt;tex&amp;gt; s \notin span(F)&amp;lt;/tex&amp;gt;. Согласно тому, что &amp;lt;tex&amp;gt; F' \not\subseteq F'' &amp;lt;/tex&amp;gt;, мы получаем, что &amp;lt;tex&amp;gt; t \notin span(F \cup s)&amp;lt;/tex&amp;gt;. Поэтому, по 2 свойству покрывающего множества для &amp;lt;tex&amp;gt; T := F &amp;lt;/tex&amp;gt; получаем противоречие, т.к. &amp;lt;tex&amp;gt; s \notin span(F) = F'&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Достаточность'''. Пусть &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; удовлетворяет свойствам закрытого множества и &amp;lt;tex&amp;gt; span(Y) &amp;lt;/tex&amp;gt; будет наименьшем множеством в &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; содержащий &amp;lt;tex&amp;gt; Y &amp;lt;/tex&amp;gt;, для &amp;lt;tex&amp;gt; F \subseteq S &amp;lt;/tex&amp;gt;. Поскольку &amp;lt;tex&amp;gt; F \in \mathcal L \Longleftrightarrow span(F) = F &amp;lt;/tex&amp;gt;, этого достаточно, чтобы увидеть, что &amp;lt;tex&amp;gt; span &amp;lt;/tex&amp;gt; удовлетворяет свойствам покрытого множества. 1 свойство тривиально. Рассмотрим 2 свойство, пусть &amp;lt;tex&amp;gt;T \subseteq S, t \in S \setminus T, &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; s \in span(T \cup t) \setminus span(T) &amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt; span(T ) \subset span(T \cup s) \subseteq span(T \cup t) &amp;lt;/tex&amp;gt;. Следовательно, по 2 свойству, &amp;lt;tex&amp;gt;span(T \cup s) = span(T \cup t) &amp;lt;/tex&amp;gt;, и следовательно, &amp;lt;tex&amp;gt; t \in span(T \cup s)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Оператор замыкания для матроидов]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
*''Асанов М. О., Баранский В. А., Расин В. В.'' {{---}} Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
* [http://courses.engr.illinois.edu/cs598csc/sp2010/Lectures/Lecture14.pdf courses.engr.illinois.edu {{---}} Lecture 14, course ''CS 598CSC: Combinatorial optimization'']&lt;br /&gt;
*''Alexander Schrijver'' {{---}} Combinatorial Optimization. Polyhedra and Efficiency&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория:Матроиды]]&lt;br /&gt;
[[Категория:Основные факты теории матроидов]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48559</id>
		<title>Покрытия, закрытые множества</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48559"/>
				<updated>2015-06-15T21:14:00Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Источники информации */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Покрытие ==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Пусть &amp;lt;tex&amp;gt;M =\; \langle X,I \rangle&amp;lt;/tex&amp;gt; {{---}} матроид. Тогда '''покрытие''' (англ. ''span'') множества &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; {{---}} это множество &amp;lt;tex&amp;gt; span_M(A) = \mathcal {f} x \in X \; |\; r(A) = r(A \cup x) \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Далее &amp;lt;tex&amp;gt;span_M &amp;lt;/tex&amp;gt; будет указываться, как &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &amp;lt;tex&amp;gt; span(A) = A \cup \mathcal {f} x \in X \setminus A \; |\; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \mathcal {g} &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Эти определения эквивалентны.&lt;br /&gt;
|proof=Понятно, что элементы из &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; подходят под оба определения. Для остальных же &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt; равенство &amp;lt;tex&amp;gt; \ r(A) = r(A \cup x) &amp;lt;/tex&amp;gt; означает, что не найдётся множеств &amp;lt;tex&amp;gt; S' \subseteq A \cup x :\ S' \in I,\ |S'| &amp;gt; r(A). &amp;lt;/tex&amp;gt; Для такого &amp;lt;tex&amp;gt; S' &amp;lt;/tex&amp;gt; обязательно будет выполнено &amp;lt;tex&amp;gt; x \in S', &amp;lt;/tex&amp;gt; в противном случае &amp;lt;tex&amp;gt; S' \subseteq A, &amp;lt;/tex&amp;gt; что приведёт к &amp;lt;tex&amp;gt; r(A) \geqslant |S'|. &amp;lt;/tex&amp;gt; Тогда для &amp;lt;tex&amp;gt; S = S' \setminus x &amp;lt;/tex&amp;gt; верно &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I. &amp;lt;/tex&amp;gt; Из последнего получается, что &amp;lt;tex&amp;gt; r(A) \geqslant |S|, &amp;lt;/tex&amp;gt; и учитывая &amp;lt;tex&amp;gt; r(A) &amp;lt; |S'|,\ |S| + 1 = |S'| &amp;lt;/tex&amp;gt; имеем &amp;lt;tex&amp;gt; r(A) = |S|. &amp;lt;/tex&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Иначе говоря, не должно существовать множеств &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A):\ S' = S \cup x \in I. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Для множества &amp;lt;tex&amp;gt; A \subseteq X &amp;lt;/tex&amp;gt; выполнено &amp;lt;tex&amp;gt; span(A) \subseteq \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof=Покажем, что следующее определение замыкания равносильно тому, которое [[Оператор замыкания для матроидов | было дано]] ранее:&lt;br /&gt;
: &amp;lt;tex&amp;gt;\langle A \rangle = A \cup \mathcal {f} x \in X \setminus A \; |\; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
По сравнению со старым определением появилось два ограничения, нужно убедится в том, что они не существены. Сначала рассмотрим &amp;lt;tex&amp;gt; |H| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: Пусть &amp;lt;tex&amp;gt; \exists H \subseteq A :\ H \in I ,\; H \cup x \notin I, &amp;lt;/tex&amp;gt; но &amp;lt;tex&amp;gt; |H| &amp;lt; r(A). &amp;lt;/tex&amp;gt;  По [[Ранговая функция, полумодулярность | определению ранга]] &amp;lt;tex&amp;gt; \exists D \subseteq A ,\; D \in I :\ |D| = r(A). &amp;lt;/tex&amp;gt; Поскольку &amp;lt;tex&amp;gt; |H| &amp;lt; |D| &amp;lt;/tex&amp;gt;, можно применить [[Определение матроида | 3-ю аксиому матроидов]] несколько раз и получить &amp;lt;tex&amp;gt; H' \subseteq A :\ H \subseteq H' ,\; H' \in I ,\; |H'| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; H' \cup x \notin I &amp;lt;/tex&amp;gt; также будет выполнено, поскольку в противном случае &amp;lt;tex&amp;gt; H \cup x \notin I &amp;lt;/tex&amp;gt; будет неверно (в силу [[Определение матроида | 2-ой аксиомы матроидов]]).&lt;br /&gt;
Второе ограничение {{---}} &amp;lt;tex&amp;gt; x \in X \setminus A &amp;lt;/tex&amp;gt; можно наложить по той причине, что элементы &amp;lt;tex&amp;gt; x \in A &amp;lt;/tex&amp;gt; и так входят в замыкание благодаря левой части объединения.&lt;br /&gt;
&lt;br /&gt;
В соответствии с этим определением, замыкание множества &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; {{---}} это, кроме всех элементов &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt;, все такие &amp;lt;tex&amp;gt; x, &amp;lt;/tex&amp;gt; что какое-то из максимальных по мощности независимых подмножеств &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; нельзя дополнить &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;-ом, оставив это множество независимым. Определение покрытия отличается только квантором {{---}} вместо &amp;quot;какое-то&amp;quot; нужно поставить &amp;quot;любое&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Учитывая, что &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A) &amp;lt;/tex&amp;gt; описывает непустое множество таких &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; (по определению ранга), будет верным следствие:&lt;br /&gt;
: &amp;lt;tex&amp;gt; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \ \Rightarrow &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I &amp;lt;/tex&amp;gt; &lt;br /&gt;
Поэтому &amp;lt;tex&amp;gt; x \in span(A) \Rightarrow x \in \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Пусть S {{---}} конечное множество. Функция &amp;lt;tex&amp;gt; span : \mathcal P (S) \rightarrow \mathcal P (S) &amp;lt;/tex&amp;gt; является покрытием матроида тогда и только тогда, когда удовлетворяет следующим свойствам:&lt;br /&gt;
# &amp;lt;tex&amp;gt; T, U \subseteq S;\ U \subseteq span(T) \ \Rightarrow \ span(U) \subseteq span(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
# &amp;lt;tex&amp;gt; T \subseteq S,\ t \in S \setminus T,\ s \in span(T \cup t) \setminus span(T) \ \Rightarrow \ t \in span(T \cup s) &amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof ='''Необходимое условие'''. Пусть &amp;lt;tex&amp;gt; span &amp;lt;/tex&amp;gt; будет функцией покрытия матроида &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; с ранговой функцией &amp;lt;tex&amp;gt; r &amp;lt;/tex&amp;gt;. Покажем, что &amp;lt;tex&amp;gt; s \in span(T)&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;U \subseteq span(T)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;s \in span(U)&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt; не принадлежит &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Тогда по [[ Ранговая_функция, полумодулярность | полумодулярность ранговой функции]] мы имеем:&lt;br /&gt;
: &amp;lt;tex&amp;gt; r(T \cup {s}) \leqslant r(T \cup U \cup {s}) \leqslant r(T \cup U) + r(U \cup {s}) - r(U) = r(T \cup U) = r(T)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Это показывает, что &amp;lt;tex&amp;gt; s \in span(T) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Заметим, что &amp;lt;tex&amp;gt; s \in span(T \cup {t}) \Rightarrow span(T) &amp;lt;/tex&amp;gt; эквивалентно таким выражениям: &amp;lt;tex&amp;gt; r(T \cup {t} \cup {s}) = r(T \cup {t}) &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; r(T \cup {s}) &amp;gt; r(T)&amp;lt;/tex&amp;gt;. Следовательно&lt;br /&gt;
: &amp;lt;tex&amp;gt;r(T \cup t \cup {s}) = r(T \cup {t}) &amp;lt;= r(T) + 1 &amp;lt;= r(T \cup {s}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
то есть, &amp;lt;tex&amp;gt; t \in span(T \cup {s}) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Достаточное условие'''. Пусть функция &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt; удовлетворяет свойствам и определена, как:&lt;br /&gt;
:&amp;lt;tex&amp;gt; L = \mathcal {f} I \subseteq S \; |\; \forall s \in I :  s \notin span(I \setminus {s}) \mathcal {g} &amp;lt;/tex&amp;gt;&lt;br /&gt;
Сперва посмотрим на следующее: &lt;br /&gt;
:если &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt;span(I) = I \cup \mathcal {f} t \; | \; I \cup {t} \in L \mathcal {g} &amp;lt;/tex&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Действительно, если &amp;lt;tex&amp;gt; t \in span(I) \setminus I &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, по определению независимого множества. С другой стороны, &amp;lt;tex&amp;gt; I \subseteq span(I)&amp;lt;/tex&amp;gt;. Кроме того, если &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, тогда по определению независимого множества получаем, что &amp;lt;tex&amp;gt; \exists s \in I \cup t : s \in span(I \cup {t} \setminus {s}) &amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt; s = t &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s \neq t &amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; s \in I &amp;lt;/tex&amp;gt;. Мы знаем, что &amp;lt;tex&amp;gt; s \notin span(I \setminus {s}) &amp;lt;/tex&amp;gt;, так как &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. Таким образом по 3 свойству доказывается (для &amp;lt;tex&amp;gt; T \in I \setminus {s} &amp;lt;/tex&amp;gt;), &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Теперь покажем, что &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; {{---}} матроид. Очевидно, &amp;lt;tex&amp;gt; \emptyset \in L &amp;lt;/tex&amp;gt;. Для начала покажем, что  &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; закрытое множество под полученным подмножеством, Пусть &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; J \subseteq I &amp;lt;/tex&amp;gt;. Мы видим, что &amp;lt;tex&amp;gt; J \in I &amp;lt;/tex&amp;gt;. Предположим наоборот, что &amp;lt;tex&amp;gt;\exists s \in J : s \in span(J \setminus {s}) &amp;lt;/tex&amp;gt;. Тогда по второму свойству &amp;lt;tex&amp;gt; span(J \setminus {s}) \subseteq span(I \setminus {s})&amp;lt;/tex&amp;gt;. Следовательно, &amp;lt;tex&amp;gt; s \in span( I \setminus {s})&amp;lt;/tex&amp;gt;, что противоречит условию, что &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Для того чтобы проверить [[Определение матроида | 3-ю аксиому матроидов]], допустим, что &amp;lt;tex&amp;gt; I, J \in L &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; |I \setminus J| = 1 &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; |J \setminus I| = 2&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;I \setminus J = \mathcal {f} i \mathcal {g}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;J \setminus I = \mathcal {f} {j_1, j_2} \mathcal {g}&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; I \cup {j_1} \notin L&amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; J \cup {i} \setminus {j_2} \notin L&amp;lt;/tex&amp;gt;, и так по (1) применяется к &amp;lt;tex&amp;gt;J \setminus {j_2} &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; i \in span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Поэтому, &amp;lt;tex&amp;gt; I \subseteq span(J \setminus {j_2})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; span(I) \subseteq span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Таким образом &amp;lt;tex&amp;gt; j_2 \notin span(i) &amp;lt;/tex&amp;gt;(как и &amp;lt;tex&amp;gt; J \in L&amp;lt;/tex&amp;gt;) и поэтому, (1) применяется к &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; и к &amp;lt;tex&amp;gt; I \cup {j_2} \in L &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt; является матроидом. Теперь покажем, что &amp;lt;tex&amp;gt;span = span_M&amp;lt;/tex&amp;gt;. Выберем такое множество &amp;lt;tex&amp;gt; T \subseteq S &amp;lt;/tex&amp;gt;, чтобы увидеть, что &amp;lt;tex&amp;gt; span(T) = span_M(T) &amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; будет базой &amp;lt;tex&amp;gt; T &amp;lt;/tex&amp;gt; (в &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt;). Тогда используя (1), мы получаем:&lt;br /&gt;
:&amp;lt;tex&amp;gt;span_M(T) = T \cup \mathcal {f} x \; | \; I \cup {x} \notin L \mathcal {g} = span(I) \subseteq(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
Таким образом, мы показали, что &amp;lt;tex&amp;gt; span(T) \subseteq span(I)&amp;lt;/tex&amp;gt; т.е. по 1 свойству &amp;lt;tex&amp;gt; T \subseteq span(I)&amp;lt;/tex&amp;gt;. Теперь выберем &amp;lt;tex&amp;gt; t \in T \setminus I&amp;lt;/tex&amp;gt;. В силу максимальности &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt;, мы знаем, что &amp;lt;tex&amp;gt;I \cup t \notin L&amp;lt;/tex&amp;gt;, и, следовательно, по (1) получаем, что &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Закрытые множества ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Множество &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; называется '''закрытым''' (англ. ''closed set'', ''flat''), если &amp;lt;tex&amp;gt; span(A) = A. &amp;lt;/tex&amp;gt; Класс закрытых множеств обозначается &amp;lt;tex&amp;gt; \mathcal L. &amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Пусть &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; {{---}} какое-то множество и &amp;lt;tex&amp;gt; \mathcal L \subseteq S &amp;lt;/tex&amp;gt;. Закрытые множества обладают следующими свойствами:&lt;br /&gt;
# &amp;lt;tex&amp;gt; A, B \in \mathcal L \ \; \Rightarrow \ A \cap B \in \mathcal L &amp;lt;/tex&amp;gt;&lt;br /&gt;
# Если &amp;lt;tex&amp;gt; F \in \mathcal L,\ p \in X \setminus F &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; F' &amp;lt;/tex&amp;gt; {{---}} наименьшее закрытое множество, содержащее &amp;lt;tex&amp;gt; F \cup p, &amp;lt;/tex&amp;gt; тогда не существует &amp;lt;tex&amp;gt; F'' \in \mathcal L :\ F \subseteq F'' \subseteq F'. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof ='''Необходимость'''. Пусть &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; семейство закрытых множеств матроида &amp;lt;tex&amp;gt; M = (S, \mathcal I) &amp;lt;/tex&amp;gt;. 1 свойство следует из &amp;lt;tex&amp;gt; span(A \cap B) \subseteq span(A) \cap span(B) = A \cap B &amp;lt;/tex&amp;gt;, по определению закрытого множества мы получаем, что пересечение закрытого множества закрыто. Посмотрим на 2 свойства, допустим, что такой &amp;lt;tex&amp;gt; F'' &amp;lt;/tex&amp;gt; существует, и выберем &amp;lt;tex&amp;gt; s \in F'' \setminus F &amp;lt;/tex&amp;gt;. Таким образом &amp;lt;tex&amp;gt; s \notin span(F)&amp;lt;/tex&amp;gt;. Согласно тому, что &amp;lt;tex&amp;gt; F' \not\subseteq F'' &amp;lt;/tex&amp;gt;, мы получаем, что &amp;lt;tex&amp;gt; t \notin span(F \cup s)&amp;lt;/tex&amp;gt;. Поэтому, по 2 свойству покрывающего множества для &amp;lt;tex&amp;gt; T := F &amp;lt;/tex&amp;gt; получаем противоречие, т.к. &amp;lt;tex&amp;gt; s \notin span(F) = F'&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Достаточность'''. Пусть &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; удовлетворяет свойствам закрытого множества и &amp;lt;tex&amp;gt; span(Y) &amp;lt;/tex&amp;gt; будет наименьшем множеством в &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; содержащий &amp;lt;tex&amp;gt; Y &amp;lt;/tex&amp;gt;, для &amp;lt;tex&amp;gt; F \subseteq S &amp;lt;/tex&amp;gt;. Поскольку &amp;lt;tex&amp;gt; F \in \mathcal L \Longleftrightarrow span(F) = F &amp;lt;/tex&amp;gt;, этого достаточно, чтобы увидеть, что &amp;lt;tex&amp;gt; span &amp;lt;/tex&amp;gt; удовлетворяет свойствам покрытого множества. 1 свойство тривиально. Рассмотрим 2 свойство, пусть &amp;lt;tex&amp;gt;T \subseteq S, t \in S \setminus T, &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; s \in span(T \cup t) \setminus span(T) &amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt; span(T ) \subset span(T \cup s) \subseteq span(T \cup t) &amp;lt;/tex&amp;gt;. Следовательно, по 2 свойству, &amp;lt;tex&amp;gt;span(T \cup s) = span(T \cup t) &amp;lt;/tex&amp;gt;, и следовательно, &amp;lt;tex&amp;gt; t \in span(T \cup s)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Оператор замыкания для матроидов]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
*''Асанов М. О., Баранский В. А., Расин В. В.'' {{---}} Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
* [http://courses.engr.illinois.edu/cs598csc/sp2010/Lectures/Lecture14.pdf courses.engr.illinois.edu {{---}} Lecture 14, course ''CS 598CSC: Combinatorial optimization'']&lt;br /&gt;
*''Alexander Schrijver'' {{---}} Combinatorial Optimization. Polyhedra and Efficiency&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория:Матроиды]]&lt;br /&gt;
[[Категория:Основные факты теории матроидов]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48556</id>
		<title>Покрытия, закрытые множества</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48556"/>
				<updated>2015-06-15T21:09:47Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Покрытие */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Покрытие ==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Пусть &amp;lt;tex&amp;gt;M =\; \langle X,I \rangle&amp;lt;/tex&amp;gt; {{---}} матроид. Тогда '''покрытие''' (англ. ''span'') множества &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; {{---}} это множество &amp;lt;tex&amp;gt; span_M(A) = \mathcal {f} x \in X \; |\; r(A) = r(A \cup x) \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Далее &amp;lt;tex&amp;gt;span_M &amp;lt;/tex&amp;gt; будет указываться, как &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &amp;lt;tex&amp;gt; span(A) = A \cup \mathcal {f} x \in X \setminus A \; |\; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \mathcal {g} &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Эти определения эквивалентны.&lt;br /&gt;
|proof=Понятно, что элементы из &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; подходят под оба определения. Для остальных же &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt; равенство &amp;lt;tex&amp;gt; \ r(A) = r(A \cup x) &amp;lt;/tex&amp;gt; означает, что не найдётся множеств &amp;lt;tex&amp;gt; S' \subseteq A \cup x :\ S' \in I,\ |S'| &amp;gt; r(A). &amp;lt;/tex&amp;gt; Для такого &amp;lt;tex&amp;gt; S' &amp;lt;/tex&amp;gt; обязательно будет выполнено &amp;lt;tex&amp;gt; x \in S', &amp;lt;/tex&amp;gt; в противном случае &amp;lt;tex&amp;gt; S' \subseteq A, &amp;lt;/tex&amp;gt; что приведёт к &amp;lt;tex&amp;gt; r(A) \geqslant |S'|. &amp;lt;/tex&amp;gt; Тогда для &amp;lt;tex&amp;gt; S = S' \setminus x &amp;lt;/tex&amp;gt; верно &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I. &amp;lt;/tex&amp;gt; Из последнего получается, что &amp;lt;tex&amp;gt; r(A) \geqslant |S|, &amp;lt;/tex&amp;gt; и учитывая &amp;lt;tex&amp;gt; r(A) &amp;lt; |S'|,\ |S| + 1 = |S'| &amp;lt;/tex&amp;gt; имеем &amp;lt;tex&amp;gt; r(A) = |S|. &amp;lt;/tex&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Иначе говоря, не должно существовать множеств &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A):\ S' = S \cup x \in I. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Для множества &amp;lt;tex&amp;gt; A \subseteq X &amp;lt;/tex&amp;gt; выполнено &amp;lt;tex&amp;gt; span(A) \subseteq \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof=Покажем, что следующее определение замыкания равносильно тому, которое [[Оператор замыкания для матроидов | было дано]] ранее:&lt;br /&gt;
: &amp;lt;tex&amp;gt;\langle A \rangle = A \cup \mathcal {f} x \in X \setminus A \; |\; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
По сравнению со старым определением появилось два ограничения, нужно убедится в том, что они не существены. Сначала рассмотрим &amp;lt;tex&amp;gt; |H| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: Пусть &amp;lt;tex&amp;gt; \exists H \subseteq A :\ H \in I ,\; H \cup x \notin I, &amp;lt;/tex&amp;gt; но &amp;lt;tex&amp;gt; |H| &amp;lt; r(A). &amp;lt;/tex&amp;gt;  По [[Ранговая функция, полумодулярность | определению ранга]] &amp;lt;tex&amp;gt; \exists D \subseteq A ,\; D \in I :\ |D| = r(A). &amp;lt;/tex&amp;gt; Поскольку &amp;lt;tex&amp;gt; |H| &amp;lt; |D| &amp;lt;/tex&amp;gt;, можно применить [[Определение матроида | 3-ю аксиому матроидов]] несколько раз и получить &amp;lt;tex&amp;gt; H' \subseteq A :\ H \subseteq H' ,\; H' \in I ,\; |H'| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; H' \cup x \notin I &amp;lt;/tex&amp;gt; также будет выполнено, поскольку в противном случае &amp;lt;tex&amp;gt; H \cup x \notin I &amp;lt;/tex&amp;gt; будет неверно (в силу [[Определение матроида | 2-ой аксиомы матроидов]]).&lt;br /&gt;
Второе ограничение {{---}} &amp;lt;tex&amp;gt; x \in X \setminus A &amp;lt;/tex&amp;gt; можно наложить по той причине, что элементы &amp;lt;tex&amp;gt; x \in A &amp;lt;/tex&amp;gt; и так входят в замыкание благодаря левой части объединения.&lt;br /&gt;
&lt;br /&gt;
В соответствии с этим определением, замыкание множества &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; {{---}} это, кроме всех элементов &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt;, все такие &amp;lt;tex&amp;gt; x, &amp;lt;/tex&amp;gt; что какое-то из максимальных по мощности независимых подмножеств &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; нельзя дополнить &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;-ом, оставив это множество независимым. Определение покрытия отличается только квантором {{---}} вместо &amp;quot;какое-то&amp;quot; нужно поставить &amp;quot;любое&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Учитывая, что &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A) &amp;lt;/tex&amp;gt; описывает непустое множество таких &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; (по определению ранга), будет верным следствие:&lt;br /&gt;
: &amp;lt;tex&amp;gt; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \ \Rightarrow &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I &amp;lt;/tex&amp;gt; &lt;br /&gt;
Поэтому &amp;lt;tex&amp;gt; x \in span(A) \Rightarrow x \in \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Пусть S {{---}} конечное множество. Функция &amp;lt;tex&amp;gt; span : \mathcal P (S) \rightarrow \mathcal P (S) &amp;lt;/tex&amp;gt; является покрытием матроида тогда и только тогда, когда удовлетворяет следующим свойствам:&lt;br /&gt;
# &amp;lt;tex&amp;gt; T, U \subseteq S;\ U \subseteq span(T) \ \Rightarrow \ span(U) \subseteq span(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
# &amp;lt;tex&amp;gt; T \subseteq S,\ t \in S \setminus T,\ s \in span(T \cup t) \setminus span(T) \ \Rightarrow \ t \in span(T \cup s) &amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof ='''Необходимое условие'''. Пусть &amp;lt;tex&amp;gt; span &amp;lt;/tex&amp;gt; будет функцией покрытия матроида &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; с ранговой функцией &amp;lt;tex&amp;gt; r &amp;lt;/tex&amp;gt;. Покажем, что &amp;lt;tex&amp;gt; s \in span(T)&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;U \subseteq span(T)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;s \in span(U)&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt; не принадлежит &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Тогда по [[ Ранговая_функция, полумодулярность | полумодулярность ранговой функции]] мы имеем:&lt;br /&gt;
: &amp;lt;tex&amp;gt; r(T \cup {s}) \leqslant r(T \cup U \cup {s}) \leqslant r(T \cup U) + r(U \cup {s}) - r(U) = r(T \cup U) = r(T)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Это показывает, что &amp;lt;tex&amp;gt; s \in span(T) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Заметим, что &amp;lt;tex&amp;gt; s \in span(T \cup {t}) \Rightarrow span(T) &amp;lt;/tex&amp;gt; эквивалентно таким выражениям: &amp;lt;tex&amp;gt; r(T \cup {t} \cup {s}) = r(T \cup {t}) &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; r(T \cup {s}) &amp;gt; r(T)&amp;lt;/tex&amp;gt;. Следовательно&lt;br /&gt;
: &amp;lt;tex&amp;gt;r(T \cup t \cup {s}) = r(T \cup {t}) &amp;lt;= r(T) + 1 &amp;lt;= r(T \cup {s}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
то есть, &amp;lt;tex&amp;gt; t \in span(T \cup {s}) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Достаточное условие'''. Пусть функция &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt; удовлетворяет свойствам и определена, как:&lt;br /&gt;
:&amp;lt;tex&amp;gt; L = \mathcal {f} I \subseteq S \; |\; \forall s \in I :  s \notin span(I \setminus {s}) \mathcal {g} &amp;lt;/tex&amp;gt;&lt;br /&gt;
Сперва посмотрим на следующее: &lt;br /&gt;
:если &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt;span(I) = I \cup \mathcal {f} t \; | \; I \cup {t} \in L \mathcal {g} &amp;lt;/tex&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Действительно, если &amp;lt;tex&amp;gt; t \in span(I) \setminus I &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, по определению независимого множества. С другой стороны, &amp;lt;tex&amp;gt; I \subseteq span(I)&amp;lt;/tex&amp;gt;. Кроме того, если &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, тогда по определению независимого множества получаем, что &amp;lt;tex&amp;gt; \exists s \in I \cup t : s \in span(I \cup {t} \setminus {s}) &amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt; s = t &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s \neq t &amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; s \in I &amp;lt;/tex&amp;gt;. Мы знаем, что &amp;lt;tex&amp;gt; s \notin span(I \setminus {s}) &amp;lt;/tex&amp;gt;, так как &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. Таким образом по 3 свойству доказывается (для &amp;lt;tex&amp;gt; T \in I \setminus {s} &amp;lt;/tex&amp;gt;), &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Теперь покажем, что &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; {{---}} матроид. Очевидно, &amp;lt;tex&amp;gt; \emptyset \in L &amp;lt;/tex&amp;gt;. Для начала покажем, что  &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; закрытое множество под полученным подмножеством, Пусть &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; J \subseteq I &amp;lt;/tex&amp;gt;. Мы видим, что &amp;lt;tex&amp;gt; J \in I &amp;lt;/tex&amp;gt;. Предположим наоборот, что &amp;lt;tex&amp;gt;\exists s \in J : s \in span(J \setminus {s}) &amp;lt;/tex&amp;gt;. Тогда по второму свойству &amp;lt;tex&amp;gt; span(J \setminus {s}) \subseteq span(I \setminus {s})&amp;lt;/tex&amp;gt;. Следовательно, &amp;lt;tex&amp;gt; s \in span( I \setminus {s})&amp;lt;/tex&amp;gt;, что противоречит условию, что &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Для того чтобы проверить [[Определение матроида | 3-ю аксиому матроидов]], допустим, что &amp;lt;tex&amp;gt; I, J \in L &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; |I \setminus J| = 1 &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; |J \setminus I| = 2&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;I \setminus J = \mathcal {f} i \mathcal {g}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;J \setminus I = \mathcal {f} {j_1, j_2} \mathcal {g}&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; I \cup {j_1} \notin L&amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; J \cup {i} \setminus {j_2} \notin L&amp;lt;/tex&amp;gt;, и так по (1) применяется к &amp;lt;tex&amp;gt;J \setminus {j_2} &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; i \in span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Поэтому, &amp;lt;tex&amp;gt; I \subseteq span(J \setminus {j_2})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; span(I) \subseteq span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Таким образом &amp;lt;tex&amp;gt; j_2 \notin span(i) &amp;lt;/tex&amp;gt;(как и &amp;lt;tex&amp;gt; J \in L&amp;lt;/tex&amp;gt;) и поэтому, (1) применяется к &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; и к &amp;lt;tex&amp;gt; I \cup {j_2} \in L &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt; является матроидом. Теперь покажем, что &amp;lt;tex&amp;gt;span = span_M&amp;lt;/tex&amp;gt;. Выберем такое множество &amp;lt;tex&amp;gt; T \subseteq S &amp;lt;/tex&amp;gt;, чтобы увидеть, что &amp;lt;tex&amp;gt; span(T) = span_M(T) &amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; будет базой &amp;lt;tex&amp;gt; T &amp;lt;/tex&amp;gt; (в &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt;). Тогда используя (1), мы получаем:&lt;br /&gt;
:&amp;lt;tex&amp;gt;span_M(T) = T \cup \mathcal {f} x \; | \; I \cup {x} \notin L \mathcal {g} = span(I) \subseteq(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
Таким образом, мы показали, что &amp;lt;tex&amp;gt; span(T) \subseteq span(I)&amp;lt;/tex&amp;gt; т.е. по 1 свойству &amp;lt;tex&amp;gt; T \subseteq span(I)&amp;lt;/tex&amp;gt;. Теперь выберем &amp;lt;tex&amp;gt; t \in T \setminus I&amp;lt;/tex&amp;gt;. В силу максимальности &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt;, мы знаем, что &amp;lt;tex&amp;gt;I \cup t \notin L&amp;lt;/tex&amp;gt;, и, следовательно, по (1) получаем, что &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Закрытые множества ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Множество &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; называется '''закрытым''' (англ. ''closed set'', ''flat''), если &amp;lt;tex&amp;gt; span(A) = A. &amp;lt;/tex&amp;gt; Класс закрытых множеств обозначается &amp;lt;tex&amp;gt; \mathcal L. &amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Пусть &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; {{---}} какое-то множество и &amp;lt;tex&amp;gt; \mathcal L \subseteq S &amp;lt;/tex&amp;gt;. Закрытые множества обладают следующими свойствами:&lt;br /&gt;
# &amp;lt;tex&amp;gt; A, B \in \mathcal L \ \; \Rightarrow \ A \cap B \in \mathcal L &amp;lt;/tex&amp;gt;&lt;br /&gt;
# Если &amp;lt;tex&amp;gt; F \in \mathcal L,\ p \in X \setminus F &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; F' &amp;lt;/tex&amp;gt; {{---}} наименьшее закрытое множество, содержащее &amp;lt;tex&amp;gt; F \cup p, &amp;lt;/tex&amp;gt; тогда не существует &amp;lt;tex&amp;gt; F'' \in \mathcal L :\ F \subseteq F'' \subseteq F'. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof ='''Необходимость'''. Пусть &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; семейство закрытых множеств матроида &amp;lt;tex&amp;gt; M = (S, \mathcal I) &amp;lt;/tex&amp;gt;. 1 свойство следует из &amp;lt;tex&amp;gt; span(A \cap B) \subseteq span(A) \cap span(B) = A \cap B &amp;lt;/tex&amp;gt;, по определению закрытого множества мы получаем, что пересечение закрытого множества закрыто. Посмотрим на 2 свойства, допустим, что такой &amp;lt;tex&amp;gt; F'' &amp;lt;/tex&amp;gt; существует, и выберем &amp;lt;tex&amp;gt; s \in F'' \setminus F &amp;lt;/tex&amp;gt;. Таким образом &amp;lt;tex&amp;gt; s \notin span(F)&amp;lt;/tex&amp;gt;. Согласно тому, что &amp;lt;tex&amp;gt; F' \not\subseteq F'' &amp;lt;/tex&amp;gt;, мы получаем, что &amp;lt;tex&amp;gt; t \notin span(F \cup s)&amp;lt;/tex&amp;gt;. Поэтому, по 2 свойству покрывающего множества для &amp;lt;tex&amp;gt; T := F &amp;lt;/tex&amp;gt; получаем противоречие, т.к. &amp;lt;tex&amp;gt; s \notin span(F) = F'&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Достаточность'''. Пусть &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; удовлетворяет свойствам закрытого множества и &amp;lt;tex&amp;gt; span(Y) &amp;lt;/tex&amp;gt; будет наименьшем множеством в &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; содержащий &amp;lt;tex&amp;gt; Y &amp;lt;/tex&amp;gt;, для &amp;lt;tex&amp;gt; F \subseteq S &amp;lt;/tex&amp;gt;. Поскольку &amp;lt;tex&amp;gt; F \in \mathcal L \Longleftrightarrow span(F) = F &amp;lt;/tex&amp;gt;, этого достаточно, чтобы увидеть, что &amp;lt;tex&amp;gt; span &amp;lt;/tex&amp;gt; удовлетворяет свойствам покрытого множества. 1 свойство тривиально. Рассмотрим 2 свойство, пусть &amp;lt;tex&amp;gt;T \subseteq S, t \in S \setminus T, &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; s \in span(T \cup t) \setminus span(T) &amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt; span(T ) \subset span(T \cup s) \subseteq span(T \cup t) &amp;lt;/tex&amp;gt;. Следовательно, по 2 свойству, &amp;lt;tex&amp;gt;span(T \cup s) = span(T \cup t) &amp;lt;/tex&amp;gt;, и следовательно, &amp;lt;tex&amp;gt; t \in span(T \cup s)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Оператор замыкания для матроидов]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
*''Асанов М. О., Баранский В. А., Расин В. В.'' {{---}} Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
* [http://courses.engr.illinois.edu/cs598csc/sp2010/Lectures/Lecture14.pdf courses.engr.illinois.edu {{---}} Lecture 14, course ''CS 598CSC: Combinatorial optimization'']&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория:Матроиды]]&lt;br /&gt;
[[Категория:Основные факты теории матроидов]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48553</id>
		<title>Покрытия, закрытые множества</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48553"/>
				<updated>2015-06-15T21:00:20Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Закрытые множества */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Покрытие ==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Пусть &amp;lt;tex&amp;gt;M =\; \langle X,I \rangle&amp;lt;/tex&amp;gt; {{---}} матроид. Тогда '''покрытие''' (англ. ''span'') множества &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; {{---}} это множество &amp;lt;tex&amp;gt; span_M(A) = \mathcal {f} x \in X \; |\; r(A) = r(A \cup x) \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Далее &amp;lt;tex&amp;gt;span_M &amp;lt;/tex&amp;gt; будет указываться, как &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &amp;lt;tex&amp;gt; span(A) = A \cup \mathcal {f} x \in X \setminus A \; |\; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \mathcal {g} &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Эти определения эквивалентны.&lt;br /&gt;
|proof=Понятно, что элементы из &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; подходят под оба определения. Для остальных же &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt; равенство &amp;lt;tex&amp;gt; \ r(A) = r(A \cup x) &amp;lt;/tex&amp;gt; означает, что не найдётся множеств &amp;lt;tex&amp;gt; S' \subseteq A \cup x :\ S' \in I,\ |S'| &amp;gt; r(A). &amp;lt;/tex&amp;gt; Для такого &amp;lt;tex&amp;gt; S' &amp;lt;/tex&amp;gt; обязательно будет выполнено &amp;lt;tex&amp;gt; x \in S', &amp;lt;/tex&amp;gt; в противном случае &amp;lt;tex&amp;gt; S' \subseteq A, &amp;lt;/tex&amp;gt; что приведёт к &amp;lt;tex&amp;gt; r(A) \geqslant |S'|. &amp;lt;/tex&amp;gt; Тогда для &amp;lt;tex&amp;gt; S = S' \setminus x &amp;lt;/tex&amp;gt; верно &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I. &amp;lt;/tex&amp;gt; Из последнего получается, что &amp;lt;tex&amp;gt; r(A) \geqslant |S|, &amp;lt;/tex&amp;gt; и учитывая &amp;lt;tex&amp;gt; r(A) &amp;lt; |S'|,\ |S| + 1 = |S'| &amp;lt;/tex&amp;gt; имеем &amp;lt;tex&amp;gt; r(A) = |S|. &amp;lt;/tex&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Иначе говоря, не должно существовать множеств &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A):\ S' = S \cup x \in I. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Для множества &amp;lt;tex&amp;gt; A \subseteq X &amp;lt;/tex&amp;gt; выполнено &amp;lt;tex&amp;gt; span(A) \subseteq \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof=Покажем, что следующее определение замыкания равносильно тому, которое [[Оператор замыкания для матроидов | было дано]] ранее:&lt;br /&gt;
: &amp;lt;tex&amp;gt;\langle A \rangle = A \cup \mathcal {f} x \in X \setminus A \; |\; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
По сравнению со старым определением появилось два ограничения, нужно убедится в том, что они не существены. Сначала рассмотрим &amp;lt;tex&amp;gt; |H| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: Пусть &amp;lt;tex&amp;gt; \exists H \subseteq A :\ H \in I ,\; H \cup x \notin I, &amp;lt;/tex&amp;gt; но &amp;lt;tex&amp;gt; |H| &amp;lt; r(A). &amp;lt;/tex&amp;gt;  По [[Ранговая функция, полумодулярность | определению ранга]] &amp;lt;tex&amp;gt; \exists D \subseteq A ,\; D \in I :\ |D| = r(A). &amp;lt;/tex&amp;gt; Поскольку &amp;lt;tex&amp;gt; |H| &amp;lt; |D| &amp;lt;/tex&amp;gt;, можно применить [[Определение матроида | 3-ю аксиому матроидов]] несколько раз и получить &amp;lt;tex&amp;gt; H' \subseteq A :\ H \subseteq H' ,\; H' \in I ,\; |H'| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; H' \cup x \notin I &amp;lt;/tex&amp;gt; также будет выполнено, поскольку в противном случае &amp;lt;tex&amp;gt; H \cup x \notin I &amp;lt;/tex&amp;gt; будет неверно (в силу [[Определение матроида | 2-ой аксиомы матроидов]]).&lt;br /&gt;
Второе ограничение {{---}} &amp;lt;tex&amp;gt; x \in X \setminus A &amp;lt;/tex&amp;gt; можно наложить по той причине, что элементы &amp;lt;tex&amp;gt; x \in A &amp;lt;/tex&amp;gt; и так входят в замыкание благодаря левой части объединения.&lt;br /&gt;
&lt;br /&gt;
В соответствии с этим определением, замыкание множества &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; {{---}} это, кроме всех элементов &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt;, все такие &amp;lt;tex&amp;gt; x, &amp;lt;/tex&amp;gt; что какое-то из максимальных по мощности независимых подмножеств &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; нельзя дополнить &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;-ом, оставив это множество независимым. Определение покрытия отличается только квантором {{---}} вместо &amp;quot;какое-то&amp;quot; нужно поставить &amp;quot;любое&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Учитывая, что &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A) &amp;lt;/tex&amp;gt; описывает непустое множество таких &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; (по определению ранга), будет верным следствие:&lt;br /&gt;
: &amp;lt;tex&amp;gt; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \ \Rightarrow &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I &amp;lt;/tex&amp;gt; &lt;br /&gt;
Поэтому &amp;lt;tex&amp;gt; x \in span(A) \Rightarrow x \in \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Покрытие обладает следующими свойствами:&lt;br /&gt;
# &amp;lt;tex&amp;gt; T, U \subseteq S;\ U \subseteq span(T) \ \Rightarrow \ span(U) \subseteq span(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
# &amp;lt;tex&amp;gt; T \subseteq S,\ t \in S \setminus T,\ s \in span(T \cup t) \setminus span(T) \ \Rightarrow \ t \in span(T \cup s) &amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof ='''Необходимое условие'''. Пусть &amp;lt;tex&amp;gt; span &amp;lt;/tex&amp;gt; будет функцией покрытия матроида &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; с ранговой функцией &amp;lt;tex&amp;gt; r &amp;lt;/tex&amp;gt;. Покажем, что &amp;lt;tex&amp;gt; s \in span(T)&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;U \subseteq span(T)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;s \in span(U)&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt; не принадлежит &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Тогда по [[ Ранговая_функция, полумодулярность | полумодулярность ранговой функции]] мы имеем:&lt;br /&gt;
: &amp;lt;tex&amp;gt; r(T \cup {s}) \leqslant r(T \cup U \cup {s}) \leqslant r(T \cup U) + r(U \cup {s}) - r(U) = r(T \cup U) = r(T)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Это показывает, что &amp;lt;tex&amp;gt; s \in span(T) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Заметим, что &amp;lt;tex&amp;gt; s \in span(T \cup {t}) \Rightarrow span(T) &amp;lt;/tex&amp;gt; эквивалентно таким выражениям: &amp;lt;tex&amp;gt; r(T \cup {t} \cup {s}) = r(T \cup {t}) &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; r(T \cup {s}) &amp;gt; r(T)&amp;lt;/tex&amp;gt;. Следовательно&lt;br /&gt;
: &amp;lt;tex&amp;gt;r(T \cup t \cup {s}) = r(T \cup {t}) &amp;lt;= r(T) + 1 &amp;lt;= r(T \cup {s}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
то есть, &amp;lt;tex&amp;gt; t \in span(T \cup {s}) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Достаточное условие'''. Пусть функция &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt; удовлетворяет свойствам и определена, как:&lt;br /&gt;
:&amp;lt;tex&amp;gt; L = \mathcal {f} I \subseteq S \; |\; \forall s \in I :  s \notin span(I \setminus {s}) \mathcal {g} &amp;lt;/tex&amp;gt;&lt;br /&gt;
Сперва посмотрим на следующее: &lt;br /&gt;
:если &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt;span(I) = I \cup \mathcal {f} t \; | \; I \cup {t} \in L \mathcal {g} &amp;lt;/tex&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Действительно, если &amp;lt;tex&amp;gt; t \in span(I) \setminus I &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, по определению независимого множества. С другой стороны, &amp;lt;tex&amp;gt; I \subseteq span(I)&amp;lt;/tex&amp;gt;. Кроме того, если &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, тогда по определению независимого множества получаем, что &amp;lt;tex&amp;gt; \exists s \in I \cup t : s \in span(I \cup {t} \setminus {s}) &amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt; s = t &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s \neq t &amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; s \in I &amp;lt;/tex&amp;gt;. Мы знаем, что &amp;lt;tex&amp;gt; s \notin span(I \setminus {s}) &amp;lt;/tex&amp;gt;, так как &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. Таким образом по 3 свойству доказывается (для &amp;lt;tex&amp;gt; T \in I \setminus {s} &amp;lt;/tex&amp;gt;), &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Теперь покажем, что &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; {{---}} матроид. Очевидно, &amp;lt;tex&amp;gt; \emptyset \in L &amp;lt;/tex&amp;gt;. Для начала покажем, что  &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; закрытое множество под полученным подмножеством, Пусть &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; J \subseteq I &amp;lt;/tex&amp;gt;. Мы видим, что &amp;lt;tex&amp;gt; J \in I &amp;lt;/tex&amp;gt;. Предположим наоборот, что &amp;lt;tex&amp;gt;\exists s \in J : s \in span(J \setminus {s}) &amp;lt;/tex&amp;gt;. Тогда по второму свойству &amp;lt;tex&amp;gt; span(J \setminus {s}) \subseteq span(I \setminus {s})&amp;lt;/tex&amp;gt;. Следовательно, &amp;lt;tex&amp;gt; s \in span( I \setminus {s})&amp;lt;/tex&amp;gt;, что противоречит условию, что &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Для того чтобы проверить [[Определение матроида | 3-ю аксиому матроидов]], допустим, что &amp;lt;tex&amp;gt; I, J \in L &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; |I \setminus J| = 1 &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; |J \setminus I| = 2&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;I \setminus J = \mathcal {f} i \mathcal {g}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;J \setminus I = \mathcal {f} {j_1, j_2} \mathcal {g}&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; I \cup {j_1} \notin L&amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; J \cup {i} \setminus {j_2} \notin L&amp;lt;/tex&amp;gt;, и так по (1) применяется к &amp;lt;tex&amp;gt;J \setminus {j_2} &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; i \in span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Поэтому, &amp;lt;tex&amp;gt; I \subseteq span(J \setminus {j_2})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; span(I) \subseteq span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Таким образом &amp;lt;tex&amp;gt; j_2 \notin span(i) &amp;lt;/tex&amp;gt;(как и &amp;lt;tex&amp;gt; J \in L&amp;lt;/tex&amp;gt;) и поэтому, (1) применяется к &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; и к &amp;lt;tex&amp;gt; I \cup {j_2} \in L &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt; является матроидом. Теперь покажем, что &amp;lt;tex&amp;gt;span = span_M&amp;lt;/tex&amp;gt;. Выберем такое множество &amp;lt;tex&amp;gt; T \subseteq S &amp;lt;/tex&amp;gt;, чтобы увидеть, что &amp;lt;tex&amp;gt; span(T) = span_M(T) &amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; будет базой &amp;lt;tex&amp;gt; T &amp;lt;/tex&amp;gt; (в &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt;). Тогда используя (1), мы получаем:&lt;br /&gt;
:&amp;lt;tex&amp;gt;span_M(T) = T \cup \mathcal {f} x \; | \; I \cup {x} \notin L \mathcal {g} = span(I) \subseteq(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
Таким образом, мы показали, что &amp;lt;tex&amp;gt; span(T) \subseteq span(I)&amp;lt;/tex&amp;gt; т.е. по 1 свойству &amp;lt;tex&amp;gt; T \subseteq span(I)&amp;lt;/tex&amp;gt;. Теперь выберем &amp;lt;tex&amp;gt; t \in T \setminus I&amp;lt;/tex&amp;gt;. В силу максимальности &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt;, мы знаем, что &amp;lt;tex&amp;gt;I \cup t \notin L&amp;lt;/tex&amp;gt;, и, следовательно, по (1) получаем, что &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Закрытые множества ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Множество &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; называется '''закрытым''' (англ. ''closed set'', ''flat''), если &amp;lt;tex&amp;gt; span(A) = A. &amp;lt;/tex&amp;gt; Класс закрытых множеств обозначается &amp;lt;tex&amp;gt; \mathcal L. &amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Пусть &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; {{---}} какое-то множество и &amp;lt;tex&amp;gt; \mathcal L \subseteq S &amp;lt;/tex&amp;gt;. Закрытые множества обладают следующими свойствами:&lt;br /&gt;
# &amp;lt;tex&amp;gt; A, B \in \mathcal L \ \; \Rightarrow \ A \cap B \in \mathcal L &amp;lt;/tex&amp;gt;&lt;br /&gt;
# Если &amp;lt;tex&amp;gt; F \in \mathcal L,\ p \in X \setminus F &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; F' &amp;lt;/tex&amp;gt; {{---}} наименьшее закрытое множество, содержащее &amp;lt;tex&amp;gt; F \cup p, &amp;lt;/tex&amp;gt; тогда не существует &amp;lt;tex&amp;gt; F'' \in \mathcal L :\ F \subseteq F'' \subseteq F'. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof ='''Необходимость'''. Пусть &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; семейство закрытых множеств матроида &amp;lt;tex&amp;gt; M = (S, \mathcal I) &amp;lt;/tex&amp;gt;. 1 свойство следует из &amp;lt;tex&amp;gt; span(A \cap B) \subseteq span(A) \cap span(B) = A \cap B &amp;lt;/tex&amp;gt;, по определению закрытого множества мы получаем, что пересечение закрытого множества закрыто. Посмотрим на 2 свойства, допустим, что такой &amp;lt;tex&amp;gt; F'' &amp;lt;/tex&amp;gt; существует, и выберем &amp;lt;tex&amp;gt; s \in F'' \setminus F &amp;lt;/tex&amp;gt;. Таким образом &amp;lt;tex&amp;gt; s \notin span(F)&amp;lt;/tex&amp;gt;. Согласно тому, что &amp;lt;tex&amp;gt; F' \not\subseteq F'' &amp;lt;/tex&amp;gt;, мы получаем, что &amp;lt;tex&amp;gt; t \notin span(F \cup s)&amp;lt;/tex&amp;gt;. Поэтому, по 2 свойству покрывающего множества для &amp;lt;tex&amp;gt; T := F &amp;lt;/tex&amp;gt; получаем противоречие, т.к. &amp;lt;tex&amp;gt; s \notin span(F) = F'&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Достаточность'''. Пусть &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; удовлетворяет свойствам закрытого множества и &amp;lt;tex&amp;gt; span(Y) &amp;lt;/tex&amp;gt; будет наименьшем множеством в &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; содержащий &amp;lt;tex&amp;gt; Y &amp;lt;/tex&amp;gt;, для &amp;lt;tex&amp;gt; F \subseteq S &amp;lt;/tex&amp;gt;. Поскольку &amp;lt;tex&amp;gt; F \in \mathcal L \Longleftrightarrow span(F) = F &amp;lt;/tex&amp;gt;, этого достаточно, чтобы увидеть, что &amp;lt;tex&amp;gt; span &amp;lt;/tex&amp;gt; удовлетворяет свойствам покрытого множества. 1 свойство тривиально. Рассмотрим 2 свойство, пусть &amp;lt;tex&amp;gt;T \subseteq S, t \in S \setminus T, &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; s \in span(T \cup t) \setminus span(T) &amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt; span(T ) \subset span(T \cup s) \subseteq span(T \cup t) &amp;lt;/tex&amp;gt;. Следовательно, по 2 свойству, &amp;lt;tex&amp;gt;span(T \cup s) = span(T \cup t) &amp;lt;/tex&amp;gt;, и следовательно, &amp;lt;tex&amp;gt; t \in span(T \cup s)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Оператор замыкания для матроидов]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
*''Асанов М. О., Баранский В. А., Расин В. В.'' {{---}} Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
* [http://courses.engr.illinois.edu/cs598csc/sp2010/Lectures/Lecture14.pdf courses.engr.illinois.edu {{---}} Lecture 14, course ''CS 598CSC: Combinatorial optimization'']&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория:Матроиды]]&lt;br /&gt;
[[Категория:Основные факты теории матроидов]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48524</id>
		<title>Покрытия, закрытые множества</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48524"/>
				<updated>2015-06-15T18:20:34Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Покрытие */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Покрытие ==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Пусть &amp;lt;tex&amp;gt;M =\; \langle X,I \rangle&amp;lt;/tex&amp;gt; {{---}} матроид. Тогда '''покрытие''' (англ. ''span'') множества &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; {{---}} это множество &amp;lt;tex&amp;gt; span_M(A) = \mathcal {f} x \in X \; |\; r(A) = r(A \cup x) \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Далее &amp;lt;tex&amp;gt;span_M &amp;lt;/tex&amp;gt; будет указываться, как &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &amp;lt;tex&amp;gt; span(A) = A \cup \mathcal {f} x \in X \setminus A \; |\; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \mathcal {g} &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Эти определения эквивалентны.&lt;br /&gt;
|proof=Понятно, что элементы из &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; подходят под оба определения. Для остальных же &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt; равенство &amp;lt;tex&amp;gt; \ r(A) = r(A \cup x) &amp;lt;/tex&amp;gt; означает, что не найдётся множеств &amp;lt;tex&amp;gt; S' \subseteq A \cup x :\ S' \in I,\ |S'| &amp;gt; r(A). &amp;lt;/tex&amp;gt; Для такого &amp;lt;tex&amp;gt; S' &amp;lt;/tex&amp;gt; обязательно будет выполнено &amp;lt;tex&amp;gt; x \in S', &amp;lt;/tex&amp;gt; в противном случае &amp;lt;tex&amp;gt; S' \subseteq A, &amp;lt;/tex&amp;gt; что приведёт к &amp;lt;tex&amp;gt; r(A) \geqslant |S'|. &amp;lt;/tex&amp;gt; Тогда для &amp;lt;tex&amp;gt; S = S' \setminus x &amp;lt;/tex&amp;gt; верно &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I. &amp;lt;/tex&amp;gt; Из последнего получается, что &amp;lt;tex&amp;gt; r(A) \geqslant |S|, &amp;lt;/tex&amp;gt; и учитывая &amp;lt;tex&amp;gt; r(A) &amp;lt; |S'|,\ |S| + 1 = |S'| &amp;lt;/tex&amp;gt; имеем &amp;lt;tex&amp;gt; r(A) = |S|. &amp;lt;/tex&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Иначе говоря, не должно существовать множеств &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A):\ S' = S \cup x \in I. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Для множества &amp;lt;tex&amp;gt; A \subseteq X &amp;lt;/tex&amp;gt; выполнено &amp;lt;tex&amp;gt; span(A) \subseteq \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof=Покажем, что следующее определение замыкания равносильно тому, которое [[Оператор замыкания для матроидов | было дано]] ранее:&lt;br /&gt;
: &amp;lt;tex&amp;gt;\langle A \rangle = A \cup \mathcal {f} x \in X \setminus A \; |\; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
По сравнению со старым определением появилось два ограничения, нужно убедится в том, что они не существены. Сначала рассмотрим &amp;lt;tex&amp;gt; |H| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: Пусть &amp;lt;tex&amp;gt; \exists H \subseteq A :\ H \in I ,\; H \cup x \notin I, &amp;lt;/tex&amp;gt; но &amp;lt;tex&amp;gt; |H| &amp;lt; r(A). &amp;lt;/tex&amp;gt;  По [[Ранговая функция, полумодулярность | определению ранга]] &amp;lt;tex&amp;gt; \exists D \subseteq A ,\; D \in I :\ |D| = r(A). &amp;lt;/tex&amp;gt; Поскольку &amp;lt;tex&amp;gt; |H| &amp;lt; |D| &amp;lt;/tex&amp;gt;, можно применить [[Определение матроида | 3-ю аксиому матроидов]] несколько раз и получить &amp;lt;tex&amp;gt; H' \subseteq A :\ H \subseteq H' ,\; H' \in I ,\; |H'| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; H' \cup x \notin I &amp;lt;/tex&amp;gt; также будет выполнено, поскольку в противном случае &amp;lt;tex&amp;gt; H \cup x \notin I &amp;lt;/tex&amp;gt; будет неверно (в силу [[Определение матроида | 2-ой аксиомы матроидов]]).&lt;br /&gt;
Второе ограничение {{---}} &amp;lt;tex&amp;gt; x \in X \setminus A &amp;lt;/tex&amp;gt; можно наложить по той причине, что элементы &amp;lt;tex&amp;gt; x \in A &amp;lt;/tex&amp;gt; и так входят в замыкание благодаря левой части объединения.&lt;br /&gt;
&lt;br /&gt;
В соответствии с этим определением, замыкание множества &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; {{---}} это, кроме всех элементов &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt;, все такие &amp;lt;tex&amp;gt; x, &amp;lt;/tex&amp;gt; что какое-то из максимальных по мощности независимых подмножеств &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; нельзя дополнить &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;-ом, оставив это множество независимым. Определение покрытия отличается только квантором {{---}} вместо &amp;quot;какое-то&amp;quot; нужно поставить &amp;quot;любое&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Учитывая, что &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A) &amp;lt;/tex&amp;gt; описывает непустое множество таких &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; (по определению ранга), будет верным следствие:&lt;br /&gt;
: &amp;lt;tex&amp;gt; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \ \Rightarrow &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I &amp;lt;/tex&amp;gt; &lt;br /&gt;
Поэтому &amp;lt;tex&amp;gt; x \in span(A) \Rightarrow x \in \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Покрытие обладает следующими свойствами:&lt;br /&gt;
# &amp;lt;tex&amp;gt; T, U \subseteq S;\ U \subseteq span(T) \ \Rightarrow \ span(U) \subseteq span(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
# &amp;lt;tex&amp;gt; T \subseteq S,\ t \in S \setminus T,\ s \in span(T \cup t) \setminus span(T) \ \Rightarrow \ t \in span(T \cup s) &amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof ='''Необходимое условие'''. Пусть &amp;lt;tex&amp;gt; span &amp;lt;/tex&amp;gt; будет функцией покрытия матроида &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; с ранговой функцией &amp;lt;tex&amp;gt; r &amp;lt;/tex&amp;gt;. Покажем, что &amp;lt;tex&amp;gt; s \in span(T)&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;U \subseteq span(T)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;s \in span(U)&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt; не принадлежит &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Тогда по [[ Ранговая_функция, полумодулярность | полумодулярность ранговой функции]] мы имеем:&lt;br /&gt;
: &amp;lt;tex&amp;gt; r(T \cup {s}) \leqslant r(T \cup U \cup {s}) \leqslant r(T \cup U) + r(U \cup {s}) - r(U) = r(T \cup U) = r(T)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Это показывает, что &amp;lt;tex&amp;gt; s \in span(T) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Заметим, что &amp;lt;tex&amp;gt; s \in span(T \cup {t}) \Rightarrow span(T) &amp;lt;/tex&amp;gt; эквивалентно таким выражениям: &amp;lt;tex&amp;gt; r(T \cup {t} \cup {s}) = r(T \cup {t}) &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; r(T \cup {s}) &amp;gt; r(T)&amp;lt;/tex&amp;gt;. Следовательно&lt;br /&gt;
: &amp;lt;tex&amp;gt;r(T \cup t \cup {s}) = r(T \cup {t}) &amp;lt;= r(T) + 1 &amp;lt;= r(T \cup {s}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
то есть, &amp;lt;tex&amp;gt; t \in span(T \cup {s}) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Достаточное условие'''. Пусть функция &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt; удовлетворяет свойствам и определена, как:&lt;br /&gt;
:&amp;lt;tex&amp;gt; L = \mathcal {f} I \subseteq S \; |\; \forall s \in I :  s \notin span(I \setminus {s}) \mathcal {g} &amp;lt;/tex&amp;gt;&lt;br /&gt;
Сперва посмотрим на следующее: &lt;br /&gt;
:если &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt;span(I) = I \cup \mathcal {f} t \; | \; I \cup {t} \in L \mathcal {g} &amp;lt;/tex&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Действительно, если &amp;lt;tex&amp;gt; t \in span(I) \setminus I &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, по определению независимого множества. С другой стороны, &amp;lt;tex&amp;gt; I \subseteq span(I)&amp;lt;/tex&amp;gt;. Кроме того, если &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, тогда по определению независимого множества получаем, что &amp;lt;tex&amp;gt; \exists s \in I \cup t : s \in span(I \cup {t} \setminus {s}) &amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt; s = t &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s \neq t &amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; s \in I &amp;lt;/tex&amp;gt;. Мы знаем, что &amp;lt;tex&amp;gt; s \notin span(I \setminus {s}) &amp;lt;/tex&amp;gt;, так как &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. Таким образом по 3 свойству доказывается (для &amp;lt;tex&amp;gt; T \in I \setminus {s} &amp;lt;/tex&amp;gt;), &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Теперь покажем, что &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; {{---}} матроид. Очевидно, &amp;lt;tex&amp;gt; \emptyset \in L &amp;lt;/tex&amp;gt;. Для начала покажем, что  &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; закрытое множество под полученным подмножеством, Пусть &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; J \subseteq I &amp;lt;/tex&amp;gt;. Мы видим, что &amp;lt;tex&amp;gt; J \in I &amp;lt;/tex&amp;gt;. Предположим наоборот, что &amp;lt;tex&amp;gt;\exists s \in J : s \in span(J \setminus {s}) &amp;lt;/tex&amp;gt;. Тогда по второму свойству &amp;lt;tex&amp;gt; span(J \setminus {s}) \subseteq span(I \setminus {s})&amp;lt;/tex&amp;gt;. Следовательно, &amp;lt;tex&amp;gt; s \in span( I \setminus {s})&amp;lt;/tex&amp;gt;, что противоречит условию, что &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Для того чтобы проверить [[Определение матроида | 3-ю аксиому матроидов]], допустим, что &amp;lt;tex&amp;gt; I, J \in L &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; |I \setminus J| = 1 &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; |J \setminus I| = 2&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;I \setminus J = \mathcal {f} i \mathcal {g}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;J \setminus I = \mathcal {f} {j_1, j_2} \mathcal {g}&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; I \cup {j_1} \notin L&amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; J \cup {i} \setminus {j_2} \notin L&amp;lt;/tex&amp;gt;, и так по (1) применяется к &amp;lt;tex&amp;gt;J \setminus {j_2} &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; i \in span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Поэтому, &amp;lt;tex&amp;gt; I \subseteq span(J \setminus {j_2})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; span(I) \subseteq span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Таким образом &amp;lt;tex&amp;gt; j_2 \notin span(i) &amp;lt;/tex&amp;gt;(как и &amp;lt;tex&amp;gt; J \in L&amp;lt;/tex&amp;gt;) и поэтому, (1) применяется к &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; и к &amp;lt;tex&amp;gt; I \cup {j_2} \in L &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt; является матроидом. Теперь покажем, что &amp;lt;tex&amp;gt;span = span_M&amp;lt;/tex&amp;gt;. Выберем такое множество &amp;lt;tex&amp;gt; T \subseteq S &amp;lt;/tex&amp;gt;, чтобы увидеть, что &amp;lt;tex&amp;gt; span(T) = span_M(T) &amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; будет базой &amp;lt;tex&amp;gt; T &amp;lt;/tex&amp;gt; (в &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt;). Тогда используя (1), мы получаем:&lt;br /&gt;
:&amp;lt;tex&amp;gt;span_M(T) = T \cup \mathcal {f} x \; | \; I \cup {x} \notin L \mathcal {g} = span(I) \subseteq(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
Таким образом, мы показали, что &amp;lt;tex&amp;gt; span(T) \subseteq span(I)&amp;lt;/tex&amp;gt; т.е. по 1 свойству &amp;lt;tex&amp;gt; T \subseteq span(I)&amp;lt;/tex&amp;gt;. Теперь выберем &amp;lt;tex&amp;gt; t \in T \setminus I&amp;lt;/tex&amp;gt;. В силу максимальности &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt;, мы знаем, что &amp;lt;tex&amp;gt;I \cup t \notin L&amp;lt;/tex&amp;gt;, и, следовательно, по (1) получаем, что &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Закрытые множества ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Множество &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; называется '''закрытым''' (англ. ''closed set'', ''flat''), если &amp;lt;tex&amp;gt; span(A) = A. &amp;lt;/tex&amp;gt; Класс закрытых множеств обозначается &amp;lt;tex&amp;gt; \mathcal L. &amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Пусть &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; {{---}} какое-то множество и &amp;lt;tex&amp;gt; \mathcal L \subseteq S &amp;lt;/tex&amp;gt;. Закрытые множества обладают следующими свойствами:&lt;br /&gt;
# &amp;lt;tex&amp;gt; A, B \in \mathcal L \ \; \Rightarrow \ A \cap B \in \mathcal L &amp;lt;/tex&amp;gt;&lt;br /&gt;
# Если &amp;lt;tex&amp;gt; F \in \mathcal L,\ p \in X \setminus F &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; F' &amp;lt;/tex&amp;gt; {{---}} наименьшее закрытое множество, содержащее &amp;lt;tex&amp;gt; F \cup p, &amp;lt;/tex&amp;gt; тогда не существует &amp;lt;tex&amp;gt; F'' \in \mathcal L :\ F \subseteq F'' \subseteq F'. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof ='''Необходимость'''. Пусть &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; семейство закрытых множеств матроида &amp;lt;tex&amp;gt; M = (S, \mathcal I) &amp;lt;/tex&amp;gt;. 1 свойство следует из &amp;lt;tex&amp;gt; span(A \cap B) \subseteq span(A) \cap span(B) = A \cap B &amp;lt;/tex&amp;gt;. Посмотрим на 2 свойства, допустим, что такой &amp;lt;tex&amp;gt; F'' &amp;lt;/tex&amp;gt; существует, и выберем &amp;lt;tex&amp;gt; s \in F'' \setminus F &amp;lt;/tex&amp;gt;. Таким образом &amp;lt;tex&amp;gt; s \notin span(F)&amp;lt;/tex&amp;gt;. Согласно тому, что &amp;lt;tex&amp;gt; F' \not\subseteq F'' &amp;lt;/tex&amp;gt;, мы получаем, что &amp;lt;tex&amp;gt; t \notin span(F \cup s)&amp;lt;/tex&amp;gt;. Поэтому, по 2 свойству покрывающего множества для &amp;lt;tex&amp;gt; T := F &amp;lt;/tex&amp;gt; получаем противоречие, т.к. &amp;lt;tex&amp;gt; s \notin span(F) = F'&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Достаточность'''. Пусть &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; удовлетворяет свойствам закрытого множества и &amp;lt;tex&amp;gt; span(Y) &amp;lt;/tex&amp;gt; будет наименьшем множеством в &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; содержащий &amp;lt;tex&amp;gt; Y &amp;lt;/tex&amp;gt;, для &amp;lt;tex&amp;gt; F \subseteq S &amp;lt;/tex&amp;gt;. Поскольку &amp;lt;tex&amp;gt; F \in \mathcal L \Longleftrightarrow span(F) = F &amp;lt;/tex&amp;gt;, этого достаточно, чтобы увидеть, что &amp;lt;tex&amp;gt; span &amp;lt;/tex&amp;gt; удовлетворяет свойствам покрытого множества. 1 свойство тривиально. Рассмотрим 2 свойство, пусть &amp;lt;tex&amp;gt;T \subseteq S, t \in S \setminus T, &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; s \in span(T \cup t) \setminus span(T) &amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt; span(T ) \subset span(T \cup s) \subseteq span(T \cup t) &amp;lt;/tex&amp;gt;. Следовательно, по 2 свойству, &amp;lt;tex&amp;gt;span(T \cup s) = span(T \cup t) &amp;lt;/tex&amp;gt;, и следовательно, &amp;lt;tex&amp;gt; t \in span(T \cup s)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Оператор замыкания для матроидов]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
*''Асанов М. О., Баранский В. А., Расин В. В.'' {{---}} Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
* [http://courses.engr.illinois.edu/cs598csc/sp2010/Lectures/Lecture14.pdf courses.engr.illinois.edu {{---}} Lecture 14, course ''CS 598CSC: Combinatorial optimization'']&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория:Матроиды]]&lt;br /&gt;
[[Категория:Основные факты теории матроидов]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48514</id>
		<title>Покрытия, закрытые множества</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48514"/>
				<updated>2015-06-15T17:19:38Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Закрытые множества */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Покрытие ==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Пусть &amp;lt;tex&amp;gt;M =\; \langle X,I \rangle&amp;lt;/tex&amp;gt; {{---}} матроид. Тогда '''покрытие''' (англ. ''span'') множества &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; {{---}} это множество &amp;lt;tex&amp;gt; span_M(A) = \mathcal {f} x \in X \; |\; r(A) = r(A \cup x) \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Далее &amp;lt;tex&amp;gt;span_M &amp;lt;/tex&amp;gt; будет указываться, как &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &amp;lt;tex&amp;gt; span(A) = A \cup \mathcal {f} x \in X \setminus A \; |\; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \mathcal {g} &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Эти определения эквивалентны.&lt;br /&gt;
|proof=Понятно, что элементы из &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; подходят под оба определения. Для остальных же &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt; равенство &amp;lt;tex&amp;gt; \ r(A) = r(A \cup x) &amp;lt;/tex&amp;gt; означает, что не найдётся множеств &amp;lt;tex&amp;gt; S' \subseteq A \cup x :\ S' \in I,\ |S'| &amp;gt; r(A). &amp;lt;/tex&amp;gt; Для такого &amp;lt;tex&amp;gt; S' &amp;lt;/tex&amp;gt; обязательно будет выполнено &amp;lt;tex&amp;gt; x \in S', &amp;lt;/tex&amp;gt; в противном случае &amp;lt;tex&amp;gt; S' \subseteq A, &amp;lt;/tex&amp;gt; что приведёт к &amp;lt;tex&amp;gt; r(A) \geqslant |S'|. &amp;lt;/tex&amp;gt; Тогда для &amp;lt;tex&amp;gt; S = S' \setminus x &amp;lt;/tex&amp;gt; верно &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I. &amp;lt;/tex&amp;gt; Из последнего получается, что &amp;lt;tex&amp;gt; r(A) \geqslant |S|, &amp;lt;/tex&amp;gt; и учитывая &amp;lt;tex&amp;gt; r(A) &amp;lt; |S'|,\ |S| + 1 = |S'| &amp;lt;/tex&amp;gt; имеем &amp;lt;tex&amp;gt; r(A) = |S|. &amp;lt;/tex&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Иначе говоря, не должно существовать множеств &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A):\ S' = S \cup x \in I. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Для множества &amp;lt;tex&amp;gt; A \subseteq X &amp;lt;/tex&amp;gt; выполнено &amp;lt;tex&amp;gt; span(A) \subseteq \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof=Покажем, что следующее определение замыкания равносильно тому, которое [[Оператор замыкания для матроидов | было дано]] ранее:&lt;br /&gt;
: &amp;lt;tex&amp;gt;\langle A \rangle = A \cup \mathcal {f} x \in X \setminus A \; |\; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
По сравнению со старым определением появилось два ограничения, нужно убедится в том, что они не существены. Сначала рассмотрим &amp;lt;tex&amp;gt; |H| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: Пусть &amp;lt;tex&amp;gt; \exists H \subseteq A :\ H \in I ,\; H \cup x \notin I, &amp;lt;/tex&amp;gt; но &amp;lt;tex&amp;gt; |H| &amp;lt; r(A). &amp;lt;/tex&amp;gt;  По [[Ранговая функция, полумодулярность | определению ранга]] &amp;lt;tex&amp;gt; \exists D \subseteq A ,\; D \in I :\ |D| = r(A). &amp;lt;/tex&amp;gt; Поскольку &amp;lt;tex&amp;gt; |H| &amp;lt; |D| &amp;lt;/tex&amp;gt;, можно применить [[Определение матроида | 3-ю аксиому матроидов]] несколько раз и получить &amp;lt;tex&amp;gt; H' \subseteq A :\ H \subseteq H' ,\; H' \in I ,\; |H'| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; H' \cup x \notin I &amp;lt;/tex&amp;gt; также будет выполнено, поскольку в противном случае &amp;lt;tex&amp;gt; H \cup x \notin I &amp;lt;/tex&amp;gt; будет неверно (в силу [[Определение матроида | 2-ой аксиомы матроидов]]).&lt;br /&gt;
Второе ограничение {{---}} &amp;lt;tex&amp;gt; x \in X \setminus A &amp;lt;/tex&amp;gt; можно наложить по той причине, что элементы &amp;lt;tex&amp;gt; x \in A &amp;lt;/tex&amp;gt; и так входят в замыкание благодаря левой части объединения.&lt;br /&gt;
&lt;br /&gt;
В соответствии с этим определением, замыкание множества &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; {{---}} это, кроме всех элементов &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt;, все такие &amp;lt;tex&amp;gt; x, &amp;lt;/tex&amp;gt; что какое-то из максимальных по мощности независимых подмножеств &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; нельзя дополнить &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;-ом, оставив это множество независимым. Определение покрытия отличается только квантором {{---}} вместо &amp;quot;какое-то&amp;quot; нужно поставить &amp;quot;любое&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Учитывая, что &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A) &amp;lt;/tex&amp;gt; описывает непустое множество таких &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; (по определению ранга), будет верным следствие:&lt;br /&gt;
: &amp;lt;tex&amp;gt; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \ \Rightarrow &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I &amp;lt;/tex&amp;gt; &lt;br /&gt;
Поэтому &amp;lt;tex&amp;gt; x \in span(A) \Rightarrow x \in \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Покрытие обладает следующими свойствами:&lt;br /&gt;
# &amp;lt;tex&amp;gt; T, U \subseteq S;\ U \subseteq span(T) \ \Rightarrow \ span(U) \subseteq span(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
# &amp;lt;tex&amp;gt; T \subseteq S,\ t \in S \setminus T,\ s \in span(T \cup t) \setminus span(T) \ \Rightarrow \ t \in span(T \cup s) &amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof ='''Необходимое условие'''. Пусть &amp;lt;tex&amp;gt; span &amp;lt;/tex&amp;gt; будет функцией покрытия матроида &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; с ранговой функцией &amp;lt;tex&amp;gt; r &amp;lt;/tex&amp;gt;. Покажем, что &amp;lt;tex&amp;gt; s \in span(T)&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;U \subseteq span(T)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;s \in span(U)&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt; не принадлежит &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Тогда по [[ Ранговая_функция, полумодулярность | полумодулярность ранговой функции]] мы имеем:&lt;br /&gt;
: &amp;lt;tex&amp;gt; r(T \cup {s}) &amp;lt;= r(T \cup U \cup {s}) &amp;lt;= r(T \cup U) + r(U \cup {s}) - r(U) = r(T \cup U) = r(T)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Это показывает, что &amp;lt;tex&amp;gt; s \in span(T) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Заметим, что &amp;lt;tex&amp;gt; s \in span(T \cup {t}) \Rightarrow span(T) &amp;lt;/tex&amp;gt; эквивалентно таким выражениям: &amp;lt;tex&amp;gt; r(T \cup {t} \cup {s}) = r(T \cup {t}) &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; r(T \cup {s}) &amp;gt; r(T)&amp;lt;/tex&amp;gt;. Следовательно&lt;br /&gt;
: &amp;lt;tex&amp;gt;r(T \cup t \cup {s}) = r(T \cup {t}) &amp;lt;= r(T) + 1 &amp;lt;= r(T \cup {s}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
то есть, &amp;lt;tex&amp;gt; t \in span(T \cup {s}) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Достаточное условие'''. Пусть функция &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt; удовлетворяет свойствам и определена, как:&lt;br /&gt;
:&amp;lt;tex&amp;gt; L = \mathcal {f} I \subseteq S \; |\; \forall s \in I :  s \notin span(I \setminus {s}) \mathcal {g} &amp;lt;/tex&amp;gt;&lt;br /&gt;
Сперва посмотрим на следующее: &lt;br /&gt;
:если &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt;span(I) = I \cup \mathcal {f} t \; | \; I \cup {t} \in L \mathcal {g} &amp;lt;/tex&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Действительно, если &amp;lt;tex&amp;gt; t \in span(I) \setminus I &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, по определению независимого множества. С другой стороны, &amp;lt;tex&amp;gt; I \subseteq span(I)&amp;lt;/tex&amp;gt;. Кроме того, если &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, тогда по определению независимого множества получаем, что &amp;lt;tex&amp;gt; \exists s \in I \cup t : s \in span(I \cup {t} \setminus {s}) &amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt; s = t &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s \neq t &amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; s \in I &amp;lt;/tex&amp;gt;. Мы знаем, что &amp;lt;tex&amp;gt; s \notin span(I \setminus {s}) &amp;lt;/tex&amp;gt;, так как &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. Таким образом по 3 свойству доказывается (для &amp;lt;tex&amp;gt; T \in I \setminus {s} &amp;lt;/tex&amp;gt;), &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Теперь покажем, что &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; {{---}} матроид. Очевидно, &amp;lt;tex&amp;gt; \emptyset \in L &amp;lt;/tex&amp;gt;. Для начала покажем, что  &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; закрытое множество под полученным подмножеством, Пусть &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; J \subseteq I &amp;lt;/tex&amp;gt;. Мы видим, что &amp;lt;tex&amp;gt; J \in I &amp;lt;/tex&amp;gt;. Предположим наоборот, что &amp;lt;tex&amp;gt;\exists s \in J : s \in span(J \setminus {s}) &amp;lt;/tex&amp;gt;. Тогда по второму свойству &amp;lt;tex&amp;gt; span(J \setminus {s}) \subseteq span(I \setminus {s})&amp;lt;/tex&amp;gt;. Следовательно, &amp;lt;tex&amp;gt; s \in span( I \setminus {s})&amp;lt;/tex&amp;gt;, что противоречит условию, что &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Для того чтобы проверить [[Определение матроида | 3-ю аксиому матроидов]], допустим, что &amp;lt;tex&amp;gt; I, J \in L &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; |I \setminus J| = 1 &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; |J \setminus I| = 2&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;I \setminus J = \mathcal {f} i \mathcal {g}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;J \setminus I = \mathcal {f} {j_1, j_2} \mathcal {g}&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; I \cup {j_1} \notin L&amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; J \cup {i} \setminus {j_2} \notin L&amp;lt;/tex&amp;gt;, и так по (1) применяется к &amp;lt;tex&amp;gt;J \setminus {j_2} &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; i \in span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Поэтому, &amp;lt;tex&amp;gt; I \subseteq span(J \setminus {j_2})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; span(I) \subseteq span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Таким образом &amp;lt;tex&amp;gt; j_2 \notin span(i) &amp;lt;/tex&amp;gt;(как и &amp;lt;tex&amp;gt; J \in L&amp;lt;/tex&amp;gt;) и поэтому, (1) применяется к &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; и к &amp;lt;tex&amp;gt; I \cup {j_2} \in L &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt; является матроидом. Теперь покажем, что &amp;lt;tex&amp;gt;span = span_M&amp;lt;/tex&amp;gt;. Выберем такое множество &amp;lt;tex&amp;gt; T \subseteq S &amp;lt;/tex&amp;gt;, чтобы увидеть, что &amp;lt;tex&amp;gt; span(T) = span_M(T) &amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; будет базой &amp;lt;tex&amp;gt; T &amp;lt;/tex&amp;gt; (в &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt;). Тогда используя (1), мы получаем:&lt;br /&gt;
:&amp;lt;tex&amp;gt;span_M(T) = T \cup \mathcal {f} x \; | \; I \cup {x} \notin L \mathcal {g} = span(I) \subseteq(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
Таким образом, мы показали, что &amp;lt;tex&amp;gt; span(T) \subseteq span(I)&amp;lt;/tex&amp;gt; т.е. по 1 свойству &amp;lt;tex&amp;gt; T \subseteq span(I)&amp;lt;/tex&amp;gt;. Теперь выберем &amp;lt;tex&amp;gt; t \in T \setminus I&amp;lt;/tex&amp;gt;. В силу максимальности &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt;, мы знаем, что &amp;lt;tex&amp;gt;I \cup t \notin L&amp;lt;/tex&amp;gt;, и, следовательно, по (1) получаем, что &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Закрытые множества ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Множество &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; называется '''закрытым''' (англ. ''closed set'', ''flat''), если &amp;lt;tex&amp;gt; span(A) = A. &amp;lt;/tex&amp;gt; Класс закрытых множеств обозначается &amp;lt;tex&amp;gt; \mathcal L. &amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Пусть &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; {{---}} какое-то множество и &amp;lt;tex&amp;gt; \mathcal L \subseteq S &amp;lt;/tex&amp;gt;. Закрытые множества обладают следующими свойствами:&lt;br /&gt;
# &amp;lt;tex&amp;gt; A, B \in \mathcal L \ \; \Rightarrow \ A \cap B \in \mathcal L &amp;lt;/tex&amp;gt;&lt;br /&gt;
# Если &amp;lt;tex&amp;gt; F \in \mathcal L,\ p \in X \setminus F &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; F' &amp;lt;/tex&amp;gt; {{---}} наименьшее закрытое множество, содержащее &amp;lt;tex&amp;gt; F \cup p, &amp;lt;/tex&amp;gt; тогда не существует &amp;lt;tex&amp;gt; F'' \in \mathcal L :\ F \subseteq F'' \subseteq F'. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof ='''Необходимость'''. Пусть &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; семейство закрытых множеств матроида &amp;lt;tex&amp;gt; M = (S, \mathcal I) &amp;lt;/tex&amp;gt;. 1 свойство следует из &amp;lt;tex&amp;gt; span(A \cap B) \subseteq span(A) \cap span(B) = A \cap B &amp;lt;/tex&amp;gt;. Посмотрим на 2 свойства, допустим, что такой &amp;lt;tex&amp;gt; F'' &amp;lt;/tex&amp;gt; существует, и выберем &amp;lt;tex&amp;gt; s \in F'' \setminus F &amp;lt;/tex&amp;gt;. Таким образом &amp;lt;tex&amp;gt; s \notin span(F)&amp;lt;/tex&amp;gt;. Согласно тому, что &amp;lt;tex&amp;gt; F' \not\subseteq F'' &amp;lt;/tex&amp;gt;, мы получаем, что &amp;lt;tex&amp;gt; t \notin span(F \cup s)&amp;lt;/tex&amp;gt;. Поэтому, по 2 свойству покрывающего множества для &amp;lt;tex&amp;gt; T := F &amp;lt;/tex&amp;gt; получаем противоречие, т.к. &amp;lt;tex&amp;gt; s \notin span(F) = F'&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Достаточность'''. Пусть &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; удовлетворяет свойствам закрытого множества и &amp;lt;tex&amp;gt; span(Y) &amp;lt;/tex&amp;gt; будет наименьшем множеством в &amp;lt;tex&amp;gt; \mathcal L &amp;lt;/tex&amp;gt; содержащий &amp;lt;tex&amp;gt; Y &amp;lt;/tex&amp;gt;, для &amp;lt;tex&amp;gt; F \subseteq S &amp;lt;/tex&amp;gt;. Поскольку &amp;lt;tex&amp;gt; F \in \mathcal L \Longleftrightarrow span(F) = F &amp;lt;/tex&amp;gt;, этого достаточно, чтобы увидеть, что &amp;lt;tex&amp;gt; span &amp;lt;/tex&amp;gt; удовлетворяет свойствам покрытого множества. 1 свойство тривиально. Рассмотрим 2 свойство, пусть &amp;lt;tex&amp;gt;T \subseteq S, t \in S \setminus T, &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; s \in span(T \cup t) \setminus span(T) &amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt; span(T ) \subset span(T \cup s) \subseteq span(T \cup t) &amp;lt;/tex&amp;gt;. Следовательно, по 2 свойству, &amp;lt;tex&amp;gt;span(T \cup s) = span(T \cup t) &amp;lt;/tex&amp;gt;, и следовательно, &amp;lt;tex&amp;gt; t \in span(T \cup s)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Оператор замыкания для матроидов]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
*''Асанов М. О., Баранский В. А., Расин В. В.'' {{---}} Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
* [http://courses.engr.illinois.edu/cs598csc/sp2010/Lectures/Lecture14.pdf courses.engr.illinois.edu {{---}} Lecture 14, course ''CS 598CSC: Combinatorial optimization'']&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория:Матроиды]]&lt;br /&gt;
[[Категория:Основные факты теории матроидов]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48490</id>
		<title>Покрытия, закрытые множества</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48490"/>
				<updated>2015-06-15T14:45:11Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Покрытие */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Покрытие ==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Пусть &amp;lt;tex&amp;gt;M =\; \langle X,I \rangle&amp;lt;/tex&amp;gt; {{---}} матроид. Тогда '''покрытие''' (англ. ''span'') множества &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; {{---}} это множество &amp;lt;tex&amp;gt; span_M(A) = \mathcal {f} x \in X \; |\; r(A) = r(A \cup x) \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Далее &amp;lt;tex&amp;gt;span_M &amp;lt;/tex&amp;gt; будет указываться, как &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &amp;lt;tex&amp;gt; span(A) = A \cup \mathcal {f} x \in X \setminus A \; |\; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \mathcal {g} &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Эти определения эквивалентны.&lt;br /&gt;
|proof=Понятно, что элементы из &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; подходят под оба определения. Для остальных же &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt; равенство &amp;lt;tex&amp;gt; \ r(A) = r(A \cup x) &amp;lt;/tex&amp;gt; означает, что не найдётся множеств &amp;lt;tex&amp;gt; S' \subseteq A \cup x :\ S' \in I,\ |S'| &amp;gt; r(A). &amp;lt;/tex&amp;gt; Для такого &amp;lt;tex&amp;gt; S' &amp;lt;/tex&amp;gt; обязательно будет выполнено &amp;lt;tex&amp;gt; x \in S', &amp;lt;/tex&amp;gt; в противном случае &amp;lt;tex&amp;gt; S' \subseteq A, &amp;lt;/tex&amp;gt; что приведёт к &amp;lt;tex&amp;gt; r(A) \geqslant |S'|. &amp;lt;/tex&amp;gt; Тогда для &amp;lt;tex&amp;gt; S = S' \setminus x &amp;lt;/tex&amp;gt; верно &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I. &amp;lt;/tex&amp;gt; Из последнего получается, что &amp;lt;tex&amp;gt; r(A) \geqslant |S|, &amp;lt;/tex&amp;gt; и учитывая &amp;lt;tex&amp;gt; r(A) &amp;lt; |S'|,\ |S| + 1 = |S'| &amp;lt;/tex&amp;gt; имеем &amp;lt;tex&amp;gt; r(A) = |S|. &amp;lt;/tex&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Иначе говоря, не должно существовать множеств &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A):\ S' = S \cup x \in I. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Для множества &amp;lt;tex&amp;gt; A \subseteq X &amp;lt;/tex&amp;gt; выполнено &amp;lt;tex&amp;gt; span(A) \subseteq \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof=Покажем, что следующее определение замыкания равносильно тому, которое [[Оператор замыкания для матроидов | было дано]] ранее:&lt;br /&gt;
: &amp;lt;tex&amp;gt;\langle A \rangle = A \cup \mathcal {f} x \in X \setminus A \; |\; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
По сравнению со старым определением появилось два ограничения, нужно убедится в том, что они не существены. Сначала рассмотрим &amp;lt;tex&amp;gt; |H| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: Пусть &amp;lt;tex&amp;gt; \exists H \subseteq A :\ H \in I ,\; H \cup x \notin I, &amp;lt;/tex&amp;gt; но &amp;lt;tex&amp;gt; |H| &amp;lt; r(A). &amp;lt;/tex&amp;gt;  По [[Ранговая функция, полумодулярность | определению ранга]] &amp;lt;tex&amp;gt; \exists D \subseteq A ,\; D \in I :\ |D| = r(A). &amp;lt;/tex&amp;gt; Поскольку &amp;lt;tex&amp;gt; |H| &amp;lt; |D| &amp;lt;/tex&amp;gt;, можно применить [[Определение матроида | 3-ю аксиому матроидов]] несколько раз и получить &amp;lt;tex&amp;gt; H' \subseteq A :\ H \subseteq H' ,\; H' \in I ,\; |H'| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; H' \cup x \notin I &amp;lt;/tex&amp;gt; также будет выполнено, поскольку в противном случае &amp;lt;tex&amp;gt; H \cup x \notin I &amp;lt;/tex&amp;gt; будет неверно (в силу [[Определение матроида | 2-ой аксиомы матроидов]]).&lt;br /&gt;
Второе ограничение {{---}} &amp;lt;tex&amp;gt; x \in X \setminus A &amp;lt;/tex&amp;gt; можно наложить по той причине, что элементы &amp;lt;tex&amp;gt; x \in A &amp;lt;/tex&amp;gt; и так входят в замыкание благодаря левой части объединения.&lt;br /&gt;
&lt;br /&gt;
В соответствии с этим определением, замыкание множества &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; {{---}} это, кроме всех элементов &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt;, все такие &amp;lt;tex&amp;gt; x, &amp;lt;/tex&amp;gt; что какое-то из максимальных по мощности независимых подмножеств &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; нельзя дополнить &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;-ом, оставив это множество независимым. Определение покрытия отличается только квантором {{---}} вместо &amp;quot;какое-то&amp;quot; нужно поставить &amp;quot;любое&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Учитывая, что &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A) &amp;lt;/tex&amp;gt; описывает непустое множество таких &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; (по определению ранга), будет верным следствие:&lt;br /&gt;
: &amp;lt;tex&amp;gt; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \ \Rightarrow &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I &amp;lt;/tex&amp;gt; &lt;br /&gt;
Поэтому &amp;lt;tex&amp;gt; x \in span(A) \Rightarrow x \in \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Покрытие обладает следующими свойствами:&lt;br /&gt;
# &amp;lt;tex&amp;gt; T, U \subseteq S;\ U \subseteq span(T) \ \Rightarrow \ span(U) \subseteq span(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
# &amp;lt;tex&amp;gt; T \subseteq S,\ t \in S \setminus T,\ s \in span(T \cup t) \setminus span(T) \ \Rightarrow \ t \in span(T \cup s) &amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof ='''Необходимое условие'''. Пусть &amp;lt;tex&amp;gt; span &amp;lt;/tex&amp;gt; будет функцией покрытия матроида &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; с ранговой функцией &amp;lt;tex&amp;gt; r &amp;lt;/tex&amp;gt;. Покажем, что &amp;lt;tex&amp;gt; s \in span(T)&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;U \subseteq span(T)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;s \in span(U)&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt; не принадлежит &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Тогда по [[ Ранговая_функция, полумодулярность | полумодулярность ранговой функции]] мы имеем:&lt;br /&gt;
: &amp;lt;tex&amp;gt; r(T \cup {s}) &amp;lt;= r(T \cup U \cup {s}) &amp;lt;= r(T \cup U) + r(U \cup {s}) - r(U) = r(T \cup U) = r(T)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Это показывает, что &amp;lt;tex&amp;gt; s \in span(T) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Заметим, что &amp;lt;tex&amp;gt; s \in span(T \cup {t}) \Rightarrow span(T) &amp;lt;/tex&amp;gt; эквивалентно таким выражениям: &amp;lt;tex&amp;gt; r(T \cup {t} \cup {s}) = r(T \cup {t}) &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; r(T \cup {s}) &amp;gt; r(T)&amp;lt;/tex&amp;gt;. Следовательно&lt;br /&gt;
: &amp;lt;tex&amp;gt;r(T \cup t \cup {s}) = r(T \cup {t}) &amp;lt;= r(T) + 1 &amp;lt;= r(T \cup {s}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
то есть, &amp;lt;tex&amp;gt; t \in span(T \cup {s}) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Достаточное условие'''. Пусть функция &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt; удовлетворяет свойствам и определена, как:&lt;br /&gt;
:&amp;lt;tex&amp;gt; L = \mathcal {f} I \subseteq S \; |\; \forall s \in I :  s \notin span(I \setminus {s}) \mathcal {g} &amp;lt;/tex&amp;gt;&lt;br /&gt;
Сперва посмотрим на следующее: &lt;br /&gt;
:если &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt;span(I) = I \cup \mathcal {f} t \; | \; I \cup {t} \in L \mathcal {g} &amp;lt;/tex&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Действительно, если &amp;lt;tex&amp;gt; t \in span(I) \setminus I &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, по определению независимого множества. С другой стороны, &amp;lt;tex&amp;gt; I \subseteq span(I)&amp;lt;/tex&amp;gt;. Кроме того, если &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, тогда по определению независимого множества получаем, что &amp;lt;tex&amp;gt; \exists s \in I \cup t : s \in span(I \cup {t} \setminus {s}) &amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt; s = t &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s \neq t &amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; s \in I &amp;lt;/tex&amp;gt;. Мы знаем, что &amp;lt;tex&amp;gt; s \notin span(I \setminus {s}) &amp;lt;/tex&amp;gt;, так как &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. Таким образом по 3 свойству доказывается (для &amp;lt;tex&amp;gt; T \in I \setminus {s} &amp;lt;/tex&amp;gt;), &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Теперь покажем, что &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; {{---}} матроид. Очевидно, &amp;lt;tex&amp;gt; \emptyset \in L &amp;lt;/tex&amp;gt;. Для начала покажем, что  &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; закрытое множество под полученным подмножеством, Пусть &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; J \subseteq I &amp;lt;/tex&amp;gt;. Мы видим, что &amp;lt;tex&amp;gt; J \in I &amp;lt;/tex&amp;gt;. Предположим наоборот, что &amp;lt;tex&amp;gt;\exists s \in J : s \in span(J \setminus {s}) &amp;lt;/tex&amp;gt;. Тогда по второму свойству &amp;lt;tex&amp;gt; span(J \setminus {s}) \subseteq span(I \setminus {s})&amp;lt;/tex&amp;gt;. Следовательно, &amp;lt;tex&amp;gt; s \in span( I \setminus {s})&amp;lt;/tex&amp;gt;, что противоречит условию, что &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Для того чтобы проверить [[Определение матроида | 3-ю аксиому матроидов]], допустим, что &amp;lt;tex&amp;gt; I, J \in L &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; |I \setminus J| = 1 &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; |J \setminus I| = 2&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;I \setminus J = \mathcal {f} i \mathcal {g}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;J \setminus I = \mathcal {f} {j_1, j_2} \mathcal {g}&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; I \cup {j_1} \notin L&amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; J \cup {i} \setminus {j_2} \notin L&amp;lt;/tex&amp;gt;, и так по (1) применяется к &amp;lt;tex&amp;gt;J \setminus {j_2} &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; i \in span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Поэтому, &amp;lt;tex&amp;gt; I \subseteq span(J \setminus {j_2})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; span(I) \subseteq span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Таким образом &amp;lt;tex&amp;gt; j_2 \notin span(i) &amp;lt;/tex&amp;gt;(как и &amp;lt;tex&amp;gt; J \in L&amp;lt;/tex&amp;gt;) и поэтому, (1) применяется к &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; и к &amp;lt;tex&amp;gt; I \cup {j_2} \in L &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt; является матроидом. Теперь покажем, что &amp;lt;tex&amp;gt;span = span_M&amp;lt;/tex&amp;gt;. Выберем такое множество &amp;lt;tex&amp;gt; T \subseteq S &amp;lt;/tex&amp;gt;, чтобы увидеть, что &amp;lt;tex&amp;gt; span(T) = span_M(T) &amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; будет базой &amp;lt;tex&amp;gt; T &amp;lt;/tex&amp;gt; (в &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt;). Тогда используя (1), мы получаем:&lt;br /&gt;
:&amp;lt;tex&amp;gt;span_M(T) = T \cup \mathcal {f} x \; | \; I \cup {x} \notin L \mathcal {g} = span(I) \subseteq(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
Таким образом, мы показали, что &amp;lt;tex&amp;gt; span(T) \subseteq span(I)&amp;lt;/tex&amp;gt; т.е. по 1 свойству &amp;lt;tex&amp;gt; T \subseteq span(I)&amp;lt;/tex&amp;gt;. Теперь выберем &amp;lt;tex&amp;gt; t \in T \setminus I&amp;lt;/tex&amp;gt;. В силу максимальности &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt;, мы знаем, что &amp;lt;tex&amp;gt;I \cup t \notin L&amp;lt;/tex&amp;gt;, и, следовательно, по (1) получаем, что &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Закрытые множества ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Множество &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; называется '''закрытым''' (англ. ''closed set'', ''flat''), если &amp;lt;tex&amp;gt; span(A) = A. &amp;lt;/tex&amp;gt; Класс закрытых множеств обозначается &amp;lt;tex&amp;gt; \mathcal L. &amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Закрытые множества обладают следующими свойствами:&lt;br /&gt;
# &amp;lt;tex&amp;gt; A, B \in \mathcal L \ \; \Rightarrow \ A \cap B \in \mathcal L &amp;lt;/tex&amp;gt;&lt;br /&gt;
# Если &amp;lt;tex&amp;gt; F \in \mathcal L,\ p \in X \setminus F &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; F' &amp;lt;/tex&amp;gt; {{---}} наименьшее закрытое множество, содержащее &amp;lt;tex&amp;gt; F \cup p, &amp;lt;/tex&amp;gt; тогда не существует &amp;lt;tex&amp;gt; F'' \in \mathcal L :\ F \subseteq F'' \subseteq F'. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof =&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Оператор замыкания для матроидов]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
*''Асанов М. О., Баранский В. А., Расин В. В.'' {{---}} Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
* [http://courses.engr.illinois.edu/cs598csc/sp2010/Lectures/Lecture14.pdf courses.engr.illinois.edu {{---}} Lecture 14, course ''CS 598CSC: Combinatorial optimization'']&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория:Матроиды]]&lt;br /&gt;
[[Категория:Основные факты теории матроидов]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48480</id>
		<title>Покрытия, закрытые множества</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48480"/>
				<updated>2015-06-15T12:45:16Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Покрытие */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Покрытие ==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Пусть &amp;lt;tex&amp;gt;M =\; \langle X,I \rangle&amp;lt;/tex&amp;gt; {{---}} матроид. Тогда '''покрытие''' (англ. ''span'') множества &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; {{---}} это множество &amp;lt;tex&amp;gt; span_M(A) = \mathcal {f} x \in X \; |\; r(A) = r(A \cup x) \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Далее &amp;lt;tex&amp;gt;span_M &amp;lt;/tex&amp;gt; будет указываться, как &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &amp;lt;tex&amp;gt; span(A) = A \cup \mathcal {f} x \in X \setminus A \; |\; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \mathcal {g} &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Эти определения эквивалентны.&lt;br /&gt;
|proof=Понятно, что элементы из &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; подходят под оба определения. Для остальных же &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt; равенство &amp;lt;tex&amp;gt; \ r(A) = r(A \cup x) &amp;lt;/tex&amp;gt; означает, что не найдётся множеств &amp;lt;tex&amp;gt; S' \subseteq A \cup x :\ S' \in I,\ |S'| &amp;gt; r(A). &amp;lt;/tex&amp;gt; Для такого &amp;lt;tex&amp;gt; S' &amp;lt;/tex&amp;gt; обязательно будет выполнено &amp;lt;tex&amp;gt; x \in S', &amp;lt;/tex&amp;gt; в противном случае &amp;lt;tex&amp;gt; S' \subseteq A, &amp;lt;/tex&amp;gt; что приведёт к &amp;lt;tex&amp;gt; r(A) \geqslant |S'|. &amp;lt;/tex&amp;gt; Тогда для &amp;lt;tex&amp;gt; S = S' \setminus x &amp;lt;/tex&amp;gt; верно &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I. &amp;lt;/tex&amp;gt; Из последнего получается, что &amp;lt;tex&amp;gt; r(A) \geqslant |S|, &amp;lt;/tex&amp;gt; и учитывая &amp;lt;tex&amp;gt; r(A) &amp;lt; |S'|,\ |S| + 1 = |S'| &amp;lt;/tex&amp;gt; имеем &amp;lt;tex&amp;gt; r(A) = |S|. &amp;lt;/tex&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Иначе говоря, не должно существовать множеств &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A):\ S' = S \cup x \in I. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Для множества &amp;lt;tex&amp;gt; A \subseteq X &amp;lt;/tex&amp;gt; выполнено &amp;lt;tex&amp;gt; span(A) \subseteq \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof=Покажем, что следующее определение замыкания равносильно тому, которое [[Оператор замыкания для матроидов | было дано]] ранее:&lt;br /&gt;
: &amp;lt;tex&amp;gt;\langle A \rangle = A \cup \mathcal {f} x \in X \setminus A \; |\; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
По сравнению со старым определением появилось два ограничения, нужно убедится в том, что они не существены. Сначала рассмотрим &amp;lt;tex&amp;gt; |H| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: Пусть &amp;lt;tex&amp;gt; \exists H \subseteq A :\ H \in I ,\; H \cup x \notin I, &amp;lt;/tex&amp;gt; но &amp;lt;tex&amp;gt; |H| &amp;lt; r(A). &amp;lt;/tex&amp;gt;  По [[Ранговая функция, полумодулярность | определению ранга]] &amp;lt;tex&amp;gt; \exists D \subseteq A ,\; D \in I :\ |D| = r(A). &amp;lt;/tex&amp;gt; Поскольку &amp;lt;tex&amp;gt; |H| &amp;lt; |D| &amp;lt;/tex&amp;gt;, можно применить [[Определение матроида | 3-ю аксиому матроидов]] несколько раз и получить &amp;lt;tex&amp;gt; H' \subseteq A :\ H \subseteq H' ,\; H' \in I ,\; |H'| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; H' \cup x \notin I &amp;lt;/tex&amp;gt; также будет выполнено, поскольку в противном случае &amp;lt;tex&amp;gt; H \cup x \notin I &amp;lt;/tex&amp;gt; будет неверно (в силу [[Определение матроида | 2-ой аксиомы матроидов]]).&lt;br /&gt;
Второе ограничение {{---}} &amp;lt;tex&amp;gt; x \in X \setminus A &amp;lt;/tex&amp;gt; можно наложить по той причине, что элементы &amp;lt;tex&amp;gt; x \in A &amp;lt;/tex&amp;gt; и так входят в замыкание благодаря левой части объединения.&lt;br /&gt;
&lt;br /&gt;
В соответствии с этим определением, замыкание множества &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; {{---}} это, кроме всех элементов &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt;, все такие &amp;lt;tex&amp;gt; x, &amp;lt;/tex&amp;gt; что какое-то из максимальных по мощности независимых подмножеств &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; нельзя дополнить &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;-ом, оставив это множество независимым. Определение покрытия отличается только квантором {{---}} вместо &amp;quot;какое-то&amp;quot; нужно поставить &amp;quot;любое&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Учитывая, что &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A) &amp;lt;/tex&amp;gt; описывает непустое множество таких &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; (по определению ранга), будет верным следствие:&lt;br /&gt;
: &amp;lt;tex&amp;gt; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \ \Rightarrow &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I &amp;lt;/tex&amp;gt; &lt;br /&gt;
Поэтому &amp;lt;tex&amp;gt; x \in span(A) \Rightarrow x \in \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Покрытие обладает следующими свойствами:&lt;br /&gt;
# &amp;lt;tex&amp;gt; T, U \subseteq S;\ U \subseteq span(T) \ \Rightarrow \ span(U) \subseteq span(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
# &amp;lt;tex&amp;gt; T \subseteq S,\ t \in S \setminus T,\ s \in span(T \cup t) \setminus span(T) \ \Rightarrow \ t \in span(T \cup s) &amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof ='''Необходимое условие'''. Пусть &amp;lt;tex&amp;gt; span &amp;lt;/tex&amp;gt; будет функцией покрытия матроида &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; с ранговой функцией &amp;lt;tex&amp;gt; r &amp;lt;/tex&amp;gt;. Покажем, что &amp;lt;tex&amp;gt; s \in span(T)&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;U \subseteq span(T)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;s \in span(U)&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt; не принадлежит &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Тогда по [[ Ранговая_функция, полумодулярность | полумодулярность ранговой функции]] мы имеем:&lt;br /&gt;
: &amp;lt;tex&amp;gt; r(T \cup {s}) &amp;lt;= r(T \cup U \cup {s}) &amp;lt;= r(T \cup U) + r(U \cup {s}) - r(U) = r(T \cup U) = r(T)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Это показывает, что &amp;lt;tex&amp;gt; s \in span(T) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Заметим, что &amp;lt;tex&amp;gt; s \in span(T \cup {t}) \Rightarrow span(T) &amp;lt;/tex&amp;gt; эквивалентно таким выражениям: &amp;lt;tex&amp;gt; r(T \cup {t} \cup {s}) = r(T \cup {t}) &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; r(T \cup {s}) &amp;gt; r(T)&amp;lt;/tex&amp;gt;. Следовательно&lt;br /&gt;
: &amp;lt;tex&amp;gt;r(T \cup t \cup {s}) = r(T \cup {t}) &amp;lt;= r(T) + 1 &amp;lt;= r(T \cup {s}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
то есть, &amp;lt;tex&amp;gt; t \in span(T \cup {s}) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Достаточное условие'''. Пусть функция &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt; удовлетворяет свойствам и определена, как:&lt;br /&gt;
:&amp;lt;tex&amp;gt; L = \mathcal {f} I \subseteq S \; |\; \forall s \in I :  s \notin span(I \setminus {s}) \mathcal {g} &amp;lt;/tex&amp;gt;&lt;br /&gt;
Сперва посмотрим на следующее: &lt;br /&gt;
:если &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt;span(I) = I \cup \mathcal {f} t \; | \; I \cup {t} \in L \mathcal {g} &amp;lt;/tex&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Действительно, если &amp;lt;tex&amp;gt; t \in span(I) \setminus I &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, по определению независимого множества. С другой стороны, &amp;lt;tex&amp;gt; I \subseteq span(I)&amp;lt;/tex&amp;gt;. Кроме того, если &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, тогда по определению независимого множества получаем, что &amp;lt;tex&amp;gt; \exists s \in I \cup t : s \in span(I \cup {t} \setminus {s}) &amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt; s = t &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s \neq t &amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; s \in I &amp;lt;/tex&amp;gt;. Мы знаем, что &amp;lt;tex&amp;gt; s \in span(I \setminus {s}) &amp;lt;/tex&amp;gt;, так как &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. Таким образом по 3 свойству доказывается (для &amp;lt;tex&amp;gt; T \in I \setminus {s} &amp;lt;/tex&amp;gt;), &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Теперь покажем, что &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; {---} матроид. Очевидно, &amp;lt;tex&amp;gt; \emptyset \in L &amp;lt;/tex&amp;gt;. Для начала покажем, что  &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; закрытое множество под полученным подмножеством, Пусть &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; J \subseteq I &amp;lt;/tex&amp;gt;. Мы видим, что &amp;lt;tex&amp;gt; J \in I &amp;lt;/tex&amp;gt;. Предположим наоборот, что &amp;lt;tex&amp;gt;\exists s \in J : s \in span(J \setminus {s}) &amp;lt;/tex&amp;gt;. Тогда по второму свойству &amp;lt;tex&amp;gt; span(J \setminus {s}) \subseteq span(I \setminus {s})&amp;lt;/tex&amp;gt;. Следовательно, &amp;lt;tex&amp;gt; s \in span( I \setminus {s})&amp;lt;/tex&amp;gt;, что противоречит условию, что &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. Для того чтобы проверить [[Определение матроида | 3-ю аксиому матроидов]], допустим, что &amp;lt;tex&amp;gt; I, J \in L &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; |I \setminus J| = 1 &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; |J \setminus I| = 2&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;I \setminus J = {i}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;J \setminus I = {j_1, j_2}&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; I \cup {j_1} \in L&amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; J \cup {i} \setminus {j_2} \in L&amp;lt;/tex&amp;gt;, и так по (1) применяется к &amp;lt;tex&amp;gt;J \setminus {j_2} &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; i \in span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Поэтому, &amp;lt;tex&amp;gt; I \subseteq span(J \setminus {j_2})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; span(I) \subseteq span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Таким образом &amp;lt;tex&amp;gt; j_2 \in span(i) &amp;lt;/tex&amp;gt;(как и &amp;lt;tex&amp;gt; J \in L&amp;lt;/tex&amp;gt;) и поэтому, (1) применяется к &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; и к &amp;lt;tex&amp;gt; I \cup {j_2} \in L &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt; является матроидом. Теперь покажем, что &amp;lt;tex&amp;gt;span = span_M&amp;lt;/tex&amp;gt;. Выберем такое множество &amp;lt;tex&amp;gt; T \subseteq S &amp;lt;/tex&amp;gt;, чтобы увидеть, что &amp;lt;tex&amp;gt; span(T) = span_M(T) &amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; будет базой &amp;lt;tex&amp;gt; T &amp;lt;/tex&amp;gt; (в &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt;). Тогда используя (1), мы получаем:&lt;br /&gt;
:&amp;lt;tex&amp;gt;span_M(T) = T \cup \mathcal {f} x \; | \; I \cup {x} \in L \mathcal {g} = span(I) \subseteq(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
Таким образом, мы показали, что &amp;lt;tex&amp;gt; span(T) \subseteq span(I)&amp;lt;/tex&amp;gt; т.е. по 1 свойству &amp;lt;tex&amp;gt; T \subseteq span(I)&amp;lt;/tex&amp;gt;. Теперь выберем &amp;lt;tex&amp;gt; t \in T \setminus I&amp;lt;/tex&amp;gt;. В силу максимальности &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt;, мы знаем, что &amp;lt;tex&amp;gt;I \cup t \notin L&amp;lt;/tex&amp;gt;, и, следовательно, по (1) получаем, что &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Закрытые множества ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Множество &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; называется '''закрытым''' (англ. ''closed set'', ''flat''), если &amp;lt;tex&amp;gt; span(A) = A. &amp;lt;/tex&amp;gt; Класс закрытых множеств обозначается &amp;lt;tex&amp;gt; \mathcal L. &amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Закрытые множества обладают следующими свойствами:&lt;br /&gt;
# &amp;lt;tex&amp;gt; A, B \in \mathcal L \ \; \Rightarrow \ A \cap B \in \mathcal L &amp;lt;/tex&amp;gt;&lt;br /&gt;
# Если &amp;lt;tex&amp;gt; F \in \mathcal L,\ p \in X \setminus F &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; F' &amp;lt;/tex&amp;gt; {{---}} наименьшее закрытое множество, содержащее &amp;lt;tex&amp;gt; F \cup p, &amp;lt;/tex&amp;gt; тогда не существует &amp;lt;tex&amp;gt; F'' \in \mathcal L :\ F \subseteq F'' \subseteq F'. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof =&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Оператор замыкания для матроидов]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
*''Асанов М. О., Баранский В. А., Расин В. В.'' {{---}} Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
* [http://courses.engr.illinois.edu/cs598csc/sp2010/Lectures/Lecture14.pdf courses.engr.illinois.edu {{---}} Lecture 14, course ''CS 598CSC: Combinatorial optimization'']&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория:Матроиды]]&lt;br /&gt;
[[Категория:Основные факты теории матроидов]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48479</id>
		<title>Покрытия, закрытые множества</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48479"/>
				<updated>2015-06-15T12:35:58Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Покрытие */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Покрытие ==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Пусть &amp;lt;tex&amp;gt;M =\; \langle X,I \rangle&amp;lt;/tex&amp;gt; {{---}} матроид. Тогда '''покрытие''' (англ. ''span'') множества &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; {{---}} это множество &amp;lt;tex&amp;gt; span_M(A) = \mathcal {f} x \in X \; |\; r(A) = r(A \cup x) \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Далее &amp;lt;tex&amp;gt;span_M &amp;lt;/tex&amp;gt; будет указываться, как &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &amp;lt;tex&amp;gt; span(A) = A \cup \mathcal {f} x \in X \setminus A \; |\; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \mathcal {g} &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Эти определения эквивалентны.&lt;br /&gt;
|proof=Понятно, что элементы из &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; подходят под оба определения. Для остальных же &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt; равенство &amp;lt;tex&amp;gt; \ r(A) = r(A \cup x) &amp;lt;/tex&amp;gt; означает, что не найдётся множеств &amp;lt;tex&amp;gt; S' \subseteq A \cup x :\ S' \in I,\ |S'| &amp;gt; r(A). &amp;lt;/tex&amp;gt; Для такого &amp;lt;tex&amp;gt; S' &amp;lt;/tex&amp;gt; обязательно будет выполнено &amp;lt;tex&amp;gt; x \in S', &amp;lt;/tex&amp;gt; в противном случае &amp;lt;tex&amp;gt; S' \subseteq A, &amp;lt;/tex&amp;gt; что приведёт к &amp;lt;tex&amp;gt; r(A) \geqslant |S'|. &amp;lt;/tex&amp;gt; Тогда для &amp;lt;tex&amp;gt; S = S' \setminus x &amp;lt;/tex&amp;gt; верно &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I. &amp;lt;/tex&amp;gt; Из последнего получается, что &amp;lt;tex&amp;gt; r(A) \geqslant |S|, &amp;lt;/tex&amp;gt; и учитывая &amp;lt;tex&amp;gt; r(A) &amp;lt; |S'|,\ |S| + 1 = |S'| &amp;lt;/tex&amp;gt; имеем &amp;lt;tex&amp;gt; r(A) = |S|. &amp;lt;/tex&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Иначе говоря, не должно существовать множеств &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A):\ S' = S \cup x \in I. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Для множества &amp;lt;tex&amp;gt; A \subseteq X &amp;lt;/tex&amp;gt; выполнено &amp;lt;tex&amp;gt; span(A) \subseteq \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof=Покажем, что следующее определение замыкания равносильно тому, которое [[Оператор замыкания для матроидов | было дано]] ранее:&lt;br /&gt;
: &amp;lt;tex&amp;gt;\langle A \rangle = A \cup \mathcal {f} x \in X \setminus A \; |\; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
По сравнению со старым определением появилось два ограничения, нужно убедится в том, что они не существены. Сначала рассмотрим &amp;lt;tex&amp;gt; |H| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: Пусть &amp;lt;tex&amp;gt; \exists H \subseteq A :\ H \in I ,\; H \cup x \notin I, &amp;lt;/tex&amp;gt; но &amp;lt;tex&amp;gt; |H| &amp;lt; r(A). &amp;lt;/tex&amp;gt;  По [[Ранговая функция, полумодулярность | определению ранга]] &amp;lt;tex&amp;gt; \exists D \subseteq A ,\; D \in I :\ |D| = r(A). &amp;lt;/tex&amp;gt; Поскольку &amp;lt;tex&amp;gt; |H| &amp;lt; |D| &amp;lt;/tex&amp;gt;, можно применить [[Определение матроида | 3-ю аксиому матроидов]] несколько раз и получить &amp;lt;tex&amp;gt; H' \subseteq A :\ H \subseteq H' ,\; H' \in I ,\; |H'| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; H' \cup x \notin I &amp;lt;/tex&amp;gt; также будет выполнено, поскольку в противном случае &amp;lt;tex&amp;gt; H \cup x \notin I &amp;lt;/tex&amp;gt; будет неверно (в силу [[Определение матроида | 2-ой аксиомы матроидов]]).&lt;br /&gt;
Второе ограничение {{---}} &amp;lt;tex&amp;gt; x \in X \setminus A &amp;lt;/tex&amp;gt; можно наложить по той причине, что элементы &amp;lt;tex&amp;gt; x \in A &amp;lt;/tex&amp;gt; и так входят в замыкание благодаря левой части объединения.&lt;br /&gt;
&lt;br /&gt;
В соответствии с этим определением, замыкание множества &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; {{---}} это, кроме всех элементов &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt;, все такие &amp;lt;tex&amp;gt; x, &amp;lt;/tex&amp;gt; что какое-то из максимальных по мощности независимых подмножеств &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; нельзя дополнить &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;-ом, оставив это множество независимым. Определение покрытия отличается только квантором {{---}} вместо &amp;quot;какое-то&amp;quot; нужно поставить &amp;quot;любое&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Учитывая, что &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A) &amp;lt;/tex&amp;gt; описывает непустое множество таких &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; (по определению ранга), будет верным следствие:&lt;br /&gt;
: &amp;lt;tex&amp;gt; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \ \Rightarrow &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I &amp;lt;/tex&amp;gt; &lt;br /&gt;
Поэтому &amp;lt;tex&amp;gt; x \in span(A) \Rightarrow x \in \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Покрытие обладает следующими свойствами:&lt;br /&gt;
# &amp;lt;tex&amp;gt; T, U \subseteq S;\ U \subseteq span(T) \ \Rightarrow \ span(U) \subseteq span(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
# &amp;lt;tex&amp;gt; T \subseteq S,\ t \in S \setminus T,\ s \in span(T \cup t) \setminus span(T) \ \Rightarrow \ t \in span(T \cup s) &amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof ='''Необходимое условие'''. Пусть &amp;lt;tex&amp;gt; span &amp;lt;/tex&amp;gt; будет функцией покрытия матроида &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; с ранговой функцией &amp;lt;tex&amp;gt; r &amp;lt;/tex&amp;gt;. Покажем, что &amp;lt;tex&amp;gt; s \in span(T)&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;U \subseteq span(T)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;s \in span(U)&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt; не принадлежит &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Тогда по [[ Ранговая_функция, полумодулярность | полумодулярность ранговой функции]] мы имеем:&lt;br /&gt;
: &amp;lt;tex&amp;gt; r(T \cup {s}) &amp;lt;= r(T \cup U \cup {s}) &amp;lt;= r(T \cup U) + r(U \cup {s}) - r(U) = r(T \cup U) = r(T)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Это показывает, что &amp;lt;tex&amp;gt; s \in span(T) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Заметим, что &amp;lt;tex&amp;gt; s \in span(T \cup {t}) \Rightarrow span(T) &amp;lt;/tex&amp;gt; эквивалентно таким выражениям: &amp;lt;tex&amp;gt; r(T \cup {t} \cup {s}) = r(T \cup {t}) &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; r(T \cup {s}) &amp;gt; r(T)&amp;lt;/tex&amp;gt;. Следовательно&lt;br /&gt;
: &amp;lt;tex&amp;gt;r(T \cup t \cup {s}) = r(T \cup {t}) &amp;lt;= r(T) + 1 &amp;lt;= r(T \cup {s}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
то есть, &amp;lt;tex&amp;gt; t \in span(T \cup {s}) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Достаточное условие'''. Пусть функция &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt; удовлетворяет свойствам и определена, как:&lt;br /&gt;
:&amp;lt;tex&amp;gt; L = \mathcal {f} I \subseteq S \; |\; \forall s \in I :  s \notin span(I \setminus {s}) \mathcal {g} &amp;lt;/tex&amp;gt;&lt;br /&gt;
Сперва посмотрим на следующее: &lt;br /&gt;
:если &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt;span(I) = I \cup \mathcal {f} t \; | \; I \cup {t} \in L \mathcal {g} &amp;lt;/tex&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Действительно, если &amp;lt;tex&amp;gt; t \in span(I) \setminus I &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, по определению независимого множества. С другой стороны, &amp;lt;tex&amp;gt; I \subseteq span(I)&amp;lt;/tex&amp;gt;. Кроме того, если &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, тогда по определению независимого множества получаем, что &amp;lt;tex&amp;gt; \exists s \in I \cup t : s \in span(I \cup {t} \setminus {s}) &amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt; s = t &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s \neq t &amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; s \in I &amp;lt;/tex&amp;gt;. Мы знаем, что &amp;lt;tex&amp;gt; s \in span(I \setminus {s}) &amp;lt;/tex&amp;gt;, так как &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. Таким образом по 3 свойству доказывается (для &amp;lt;tex&amp;gt; T \in I \setminus {s} &amp;lt;/tex&amp;gt;), &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Теперь покажем, что &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; {---} матроид. Очевидно, &amp;lt;tex&amp;gt; \emptyset \in L &amp;lt;/tex&amp;gt;. Для начала покажем, что  &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; закрытое множество под полученным подмножеством, Пусть &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; J \subseteq I &amp;lt;/tex&amp;gt;. Мы видим, что &amp;lt;tex&amp;gt; J \in I &amp;lt;/tex&amp;gt;. Предположим наоборот, что &amp;lt;tex&amp;gt;\exists s \in J : s \in span(J \setminus {s}) &amp;lt;/tex&amp;gt;. Тогда по второму свойству &amp;lt;tex&amp;gt; span(J \setminus {s}) \subseteq span(I \setminus {s})&amp;lt;/tex&amp;gt;. Следовательно, &amp;lt;tex&amp;gt; s \in span( I \setminus {s})&amp;lt;/tex&amp;gt;, что противоречит условию, что &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. Для того чтобы проверить [[Определение матроида | 3-ю аксиому матроидов]], допустим, что &amp;lt;tex&amp;gt; I, J \in L &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; |I \setminus J| = 1 &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; |J \setminus I| = 2&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;I \setminus J = {i}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;J \setminus I = {j_1, j_2}&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; I \cup {j_1} \in L&amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; J \cup {i} \setminus {j_2} \in L&amp;lt;/tex&amp;gt;, и так по (1) применяется к &amp;lt;tex&amp;gt;J \setminus {j_2} &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; i \in span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Поэтому, &amp;lt;tex&amp;gt; I \subseteq span(J \setminus {j_2})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; span(I) \subseteq span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Таким образом &amp;lt;tex&amp;gt; j_2 \in span(i) &amp;lt;/tex&amp;gt;(как и &amp;lt;tex&amp;gt; J \in L&amp;lt;/tex&amp;gt;) и поэтому, (1) применяется к &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; и к &amp;lt;tex&amp;gt; I \cup {j_2} \in L &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt; является матроидом. Теперь покажем, что &amp;lt;tex&amp;gt;span = span_M&amp;lt;/tex&amp;gt;. Выберем такое множество &amp;lt;tex&amp;gt; T \subseteq S &amp;lt;/tex&amp;gt;, чтобы увидеть, что &amp;lt;tex&amp;gt; span(T) = span_M(T) &amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; будет базой &amp;lt;tex&amp;gt; T &amp;lt;/tex&amp;gt; (в &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt;). Тогда используя (1), мы получаем:&lt;br /&gt;
:&amp;lt;tex&amp;gt;span_M(T) = T \cup \mathcal {f} x \; | \; I \cup {x} \in L \mathcal {g} = span(I) \subseteq(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
Таким образом, мы показали, что &amp;lt;tex&amp;gt; span(T) \subseteq span(I)&amp;lt;/tex&amp;gt; т.е. по 1 свойству &amp;lt;tex&amp;gt; T \subseteq span(I)&amp;lt;/tex&amp;gt;. Теперь выберем &amp;lt;tex&amp;gt; t \in T \setminus I&amp;lt;/tex&amp;gt;. Мы знаем &amp;lt;tex&amp;gt;I \cup t \notin L&amp;lt;/tex&amp;gt;, т.к. &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; максимально по включению, и, следовательно, по (1) получаем, что &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Закрытые множества ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Множество &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; называется '''закрытым''' (англ. ''closed set'', ''flat''), если &amp;lt;tex&amp;gt; span(A) = A. &amp;lt;/tex&amp;gt; Класс закрытых множеств обозначается &amp;lt;tex&amp;gt; \mathcal L. &amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Закрытые множества обладают следующими свойствами:&lt;br /&gt;
# &amp;lt;tex&amp;gt; A, B \in \mathcal L \ \; \Rightarrow \ A \cap B \in \mathcal L &amp;lt;/tex&amp;gt;&lt;br /&gt;
# Если &amp;lt;tex&amp;gt; F \in \mathcal L,\ p \in X \setminus F &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; F' &amp;lt;/tex&amp;gt; {{---}} наименьшее закрытое множество, содержащее &amp;lt;tex&amp;gt; F \cup p, &amp;lt;/tex&amp;gt; тогда не существует &amp;lt;tex&amp;gt; F'' \in \mathcal L :\ F \subseteq F'' \subseteq F'. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof =&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Оператор замыкания для матроидов]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
*''Асанов М. О., Баранский В. А., Расин В. В.'' {{---}} Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
* [http://courses.engr.illinois.edu/cs598csc/sp2010/Lectures/Lecture14.pdf courses.engr.illinois.edu {{---}} Lecture 14, course ''CS 598CSC: Combinatorial optimization'']&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория:Матроиды]]&lt;br /&gt;
[[Категория:Основные факты теории матроидов]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48478</id>
		<title>Покрытия, закрытые множества</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F,_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0&amp;diff=48478"/>
				<updated>2015-06-15T12:20:49Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Покрытие */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Покрытие ==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Пусть &amp;lt;tex&amp;gt;M =\; \langle X,I \rangle&amp;lt;/tex&amp;gt; {{---}} матроид. Тогда '''покрытие''' (англ. ''span'') множества &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; {{---}} это множество &amp;lt;tex&amp;gt; span_M(A) = \mathcal {f} x \in X \; |\; r(A) = r(A \cup x) \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Далее &amp;lt;tex&amp;gt;span_M &amp;lt;/tex&amp;gt; будет указываться, как &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &amp;lt;tex&amp;gt; span(A) = A \cup \mathcal {f} x \in X \setminus A \; |\; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \mathcal {g} &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Эти определения эквивалентны.&lt;br /&gt;
|proof=Понятно, что элементы из &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; подходят под оба определения. Для остальных же &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt; равенство &amp;lt;tex&amp;gt; \ r(A) = r(A \cup x) &amp;lt;/tex&amp;gt; означает, что не найдётся множеств &amp;lt;tex&amp;gt; S' \subseteq A \cup x :\ S' \in I,\ |S'| &amp;gt; r(A). &amp;lt;/tex&amp;gt; Для такого &amp;lt;tex&amp;gt; S' &amp;lt;/tex&amp;gt; обязательно будет выполнено &amp;lt;tex&amp;gt; x \in S', &amp;lt;/tex&amp;gt; в противном случае &amp;lt;tex&amp;gt; S' \subseteq A, &amp;lt;/tex&amp;gt; что приведёт к &amp;lt;tex&amp;gt; r(A) \geqslant |S'|. &amp;lt;/tex&amp;gt; Тогда для &amp;lt;tex&amp;gt; S = S' \setminus x &amp;lt;/tex&amp;gt; верно &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I. &amp;lt;/tex&amp;gt; Из последнего получается, что &amp;lt;tex&amp;gt; r(A) \geqslant |S|, &amp;lt;/tex&amp;gt; и учитывая &amp;lt;tex&amp;gt; r(A) &amp;lt; |S'|,\ |S| + 1 = |S'| &amp;lt;/tex&amp;gt; имеем &amp;lt;tex&amp;gt; r(A) = |S|. &amp;lt;/tex&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Иначе говоря, не должно существовать множеств &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A):\ S' = S \cup x \in I. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Для множества &amp;lt;tex&amp;gt; A \subseteq X &amp;lt;/tex&amp;gt; выполнено &amp;lt;tex&amp;gt; span(A) \subseteq \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof=Покажем, что следующее определение замыкания равносильно тому, которое [[Оператор замыкания для матроидов | было дано]] ранее:&lt;br /&gt;
: &amp;lt;tex&amp;gt;\langle A \rangle = A \cup \mathcal {f} x \in X \setminus A \; |\; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I \mathcal {g}&amp;lt;/tex&amp;gt;&lt;br /&gt;
По сравнению со старым определением появилось два ограничения, нужно убедится в том, что они не существены. Сначала рассмотрим &amp;lt;tex&amp;gt; |H| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: Пусть &amp;lt;tex&amp;gt; \exists H \subseteq A :\ H \in I ,\; H \cup x \notin I, &amp;lt;/tex&amp;gt; но &amp;lt;tex&amp;gt; |H| &amp;lt; r(A). &amp;lt;/tex&amp;gt;  По [[Ранговая функция, полумодулярность | определению ранга]] &amp;lt;tex&amp;gt; \exists D \subseteq A ,\; D \in I :\ |D| = r(A). &amp;lt;/tex&amp;gt; Поскольку &amp;lt;tex&amp;gt; |H| &amp;lt; |D| &amp;lt;/tex&amp;gt;, можно применить [[Определение матроида | 3-ю аксиому матроидов]] несколько раз и получить &amp;lt;tex&amp;gt; H' \subseteq A :\ H \subseteq H' ,\; H' \in I ,\; |H'| = r(A). &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; H' \cup x \notin I &amp;lt;/tex&amp;gt; также будет выполнено, поскольку в противном случае &amp;lt;tex&amp;gt; H \cup x \notin I &amp;lt;/tex&amp;gt; будет неверно (в силу [[Определение матроида | 2-ой аксиомы матроидов]]).&lt;br /&gt;
Второе ограничение {{---}} &amp;lt;tex&amp;gt; x \in X \setminus A &amp;lt;/tex&amp;gt; можно наложить по той причине, что элементы &amp;lt;tex&amp;gt; x \in A &amp;lt;/tex&amp;gt; и так входят в замыкание благодаря левой части объединения.&lt;br /&gt;
&lt;br /&gt;
В соответствии с этим определением, замыкание множества &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; {{---}} это, кроме всех элементов &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt;, все такие &amp;lt;tex&amp;gt; x, &amp;lt;/tex&amp;gt; что какое-то из максимальных по мощности независимых подмножеств &amp;lt;tex&amp;gt; A &amp;lt;/tex&amp;gt; нельзя дополнить &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;-ом, оставив это множество независимым. Определение покрытия отличается только квантором {{---}} вместо &amp;quot;какое-то&amp;quot; нужно поставить &amp;quot;любое&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Учитывая, что &amp;lt;tex&amp;gt; S \subseteq A,\ S \in I,\ |S| = r(A) &amp;lt;/tex&amp;gt; описывает непустое множество таких &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; (по определению ранга), будет верным следствие:&lt;br /&gt;
: &amp;lt;tex&amp;gt; \forall S \subseteq A,\ S \in I,\ |S| = r(A) :\ S \cup x \notin I \ \Rightarrow &amp;lt;/tex&amp;gt; &lt;br /&gt;
: &amp;lt;tex&amp;gt; \exists H \subseteq A, \; H \in I , \; |H| = r(A) :\ H \cup x \notin I &amp;lt;/tex&amp;gt; &lt;br /&gt;
Поэтому &amp;lt;tex&amp;gt; x \in span(A) \Rightarrow x \in \langle A \rangle. &amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Покрытие обладает следующими свойствами:&lt;br /&gt;
# &amp;lt;tex&amp;gt; A, B \subseteq X;\ A \subseteq span(B) \ \Rightarrow \ span(A) \subseteq span(B) &amp;lt;/tex&amp;gt;&lt;br /&gt;
# &amp;lt;tex&amp;gt; A \subseteq X,\ p \in X \setminus A,\ q \in span(A \cup p) \setminus span(A) \ \Rightarrow \ p \in span(A \cup q) &amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof ='''Необходимое условие'''. Пусть &amp;lt;tex&amp;gt; span &amp;lt;/tex&amp;gt; будет функцией покрытия матроида &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; с ранговой функцией &amp;lt;tex&amp;gt; r &amp;lt;/tex&amp;gt;. Покажем, что &amp;lt;tex&amp;gt; s \in span(T)&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;U \subseteq span(T)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;s \in span(U)&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt; не принадлежит &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Тогда по [[ Ранговая_функция, полумодулярность | полумодулярность ранговой функции]] мы имеем:&lt;br /&gt;
: &amp;lt;tex&amp;gt; r(T \cup {s}) &amp;lt;= r(T \cup U \cup {s}) &amp;lt;= r(T \cup U) + r(U \cup {s}) - r(U) = r(T \cup U) = r(T)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Это показывает, что &amp;lt;tex&amp;gt; s \in span(T) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Заметим, что &amp;lt;tex&amp;gt; s \in span(T \cup {t}) \Rightarrow span(T) &amp;lt;/tex&amp;gt; эквивалентно таким выражениям: &amp;lt;tex&amp;gt; r(T \cup {t} \cup {s}) = r(T \cup {t}) &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; r(T \cup {s}) &amp;gt; r(T)&amp;lt;/tex&amp;gt;. Следовательно&lt;br /&gt;
: &amp;lt;tex&amp;gt;r(T \cup t \cup {s}) = r(T \cup {t}) &amp;lt;= r(T) + 1 &amp;lt;= r(T \cup {s}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
то есть, &amp;lt;tex&amp;gt; t \in span(T \cup {s}) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Достаточное условие'''. Пусть функция &amp;lt;tex&amp;gt;span&amp;lt;/tex&amp;gt; удовлетворяет свойствам и определена, как:&lt;br /&gt;
:&amp;lt;tex&amp;gt; L = \mathcal {f} I \subseteq S \; |\; \forall s \in I :  s \notin span(I \setminus {s}) \mathcal {g} &amp;lt;/tex&amp;gt;&lt;br /&gt;
Сперва посмотрим на следующее: &lt;br /&gt;
:если &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt;span(I) = I \cup \mathcal {f} t \; | \; I \cup {t} \in L \mathcal {g} &amp;lt;/tex&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Действительно, если &amp;lt;tex&amp;gt; t \in span(I) \setminus I &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, по определению независимого множества. С другой стороны, &amp;lt;tex&amp;gt; I \subseteq span(I)&amp;lt;/tex&amp;gt;. Кроме того, если &amp;lt;tex&amp;gt; I \cup {t} \notin L &amp;lt;/tex&amp;gt;, тогда по определению независимого множества получаем, что &amp;lt;tex&amp;gt; \exists s \in I \cup t : s \in span(I \cup {t} \setminus {s}) &amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt; s = t &amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; s \neq t &amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; s \in I &amp;lt;/tex&amp;gt;. Мы знаем, что &amp;lt;tex&amp;gt; s \in span(I \setminus {s}) &amp;lt;/tex&amp;gt;, так как &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. Таким образом по 3 свойству доказывается (для &amp;lt;tex&amp;gt; T \in I \setminus {s} &amp;lt;/tex&amp;gt;), &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Теперь покажем, что &amp;lt;tex&amp;gt; M = (S, L) &amp;lt;/tex&amp;gt; {---} матроид. Очевидно, &amp;lt;tex&amp;gt; \emptyset \in L &amp;lt;/tex&amp;gt;. Для начала покажем, что  &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; закрытое множество под полученным подмножеством, Пусть &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; J \subseteq I &amp;lt;/tex&amp;gt;. Мы видим, что &amp;lt;tex&amp;gt; J \in I &amp;lt;/tex&amp;gt;. Предположим наоборот, что &amp;lt;tex&amp;gt;\exists s \in J : s \in span(J \setminus {s}) &amp;lt;/tex&amp;gt;. Тогда по второму свойству &amp;lt;tex&amp;gt; span(J \setminus {s}) \subseteq span(I \setminus {s})&amp;lt;/tex&amp;gt;. Следовательно, &amp;lt;tex&amp;gt; s \in span( I \setminus {s})&amp;lt;/tex&amp;gt;, что противоречит условию, что &amp;lt;tex&amp;gt; I \in L &amp;lt;/tex&amp;gt;. Для того чтобы проверить [[Определение матроида | 3-ю аксиому матроидов]], допустим, что &amp;lt;tex&amp;gt; I, J \in L &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; |I \setminus J| = 1 &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; |J \setminus I| = 2&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;I \setminus J = {i}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;J \setminus I = {j_1, j_2}&amp;lt;/tex&amp;gt;. Предположим, что &amp;lt;tex&amp;gt; I \cup {j_1} \in L&amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt; J \cup {i} \setminus {j_2} \in L&amp;lt;/tex&amp;gt;, и так по (1) применяется к &amp;lt;tex&amp;gt;J \setminus {j_2} &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; i \in span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Поэтому, &amp;lt;tex&amp;gt; I \subseteq span(J \setminus {j_2})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; span(I) \subseteq span(J \setminus {j_2}) &amp;lt;/tex&amp;gt;. Таким образом &amp;lt;tex&amp;gt; j_2 \in span(i) &amp;lt;/tex&amp;gt;(как и &amp;lt;tex&amp;gt; J \in L&amp;lt;/tex&amp;gt;) и поэтому, (1) применяется к &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; и к &amp;lt;tex&amp;gt; I \cup {j_2} \in L &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt; является матроидом. Теперь покажем, что &amp;lt;tex&amp;gt;span = span_M&amp;lt;/tex&amp;gt;. Выберем такое множество &amp;lt;tex&amp;gt; T \subseteq S &amp;lt;/tex&amp;gt;, чтобы увидеть, что &amp;lt;tex&amp;gt; span(T) = span_M(T) &amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; будет базой &amp;lt;tex&amp;gt; T &amp;lt;/tex&amp;gt; (в &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt;). Тогда используя (1), мы получаем:&lt;br /&gt;
:&amp;lt;tex&amp;gt;span_M(T) = T \cup \mathcal {f} x \; | \; I \cup {x} \in L \mathcal {g} = span(I) \subseteq(T) &amp;lt;/tex&amp;gt;&lt;br /&gt;
Таким образом, мы показали, что &amp;lt;tex&amp;gt; span(T) \subseteq span(I)&amp;lt;/tex&amp;gt; т.е. по 1 свойству &amp;lt;tex&amp;gt; T \subseteq span(I)&amp;lt;/tex&amp;gt;. Теперь выберем &amp;lt;tex&amp;gt; t \in T \setminus I&amp;lt;/tex&amp;gt;. Мы знаем &amp;lt;tex&amp;gt;I \cup t \notin L&amp;lt;/tex&amp;gt;, т.к. &amp;lt;tex&amp;gt; I &amp;lt;/tex&amp;gt; максимально по включению, и, следовательно, по (1) получаем, что &amp;lt;tex&amp;gt; t \in span(I) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Закрытые множества ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = Множество &amp;lt;tex&amp;gt;A \subseteq X&amp;lt;/tex&amp;gt; называется '''закрытым''' (англ. ''closed set'', ''flat''), если &amp;lt;tex&amp;gt; span(A) = A. &amp;lt;/tex&amp;gt; Класс закрытых множеств обозначается &amp;lt;tex&amp;gt; \mathcal L. &amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Закрытые множества обладают следующими свойствами:&lt;br /&gt;
# &amp;lt;tex&amp;gt; A, B \in \mathcal L \ \; \Rightarrow \ A \cap B \in \mathcal L &amp;lt;/tex&amp;gt;&lt;br /&gt;
# Если &amp;lt;tex&amp;gt; F \in \mathcal L,\ p \in X \setminus F &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; F' &amp;lt;/tex&amp;gt; {{---}} наименьшее закрытое множество, содержащее &amp;lt;tex&amp;gt; F \cup p, &amp;lt;/tex&amp;gt; тогда не существует &amp;lt;tex&amp;gt; F'' \in \mathcal L :\ F \subseteq F'' \subseteq F'. &amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof =&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Оператор замыкания для матроидов]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
*''Асанов М. О., Баранский В. А., Расин В. В.'' {{---}} Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
* [http://courses.engr.illinois.edu/cs598csc/sp2010/Lectures/Lecture14.pdf courses.engr.illinois.edu {{---}} Lecture 14, course ''CS 598CSC: Combinatorial optimization'']&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория:Матроиды]]&lt;br /&gt;
[[Категория:Основные факты теории матроидов]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=1precpmtnrifmax&amp;diff=48299</id>
		<title>1precpmtnrifmax</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=1precpmtnrifmax&amp;diff=48299"/>
				<updated>2015-06-10T09:53:04Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Время работы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;tex dpi = &amp;quot;200&amp;quot;&amp;gt; 1 \mid prec,pmtn,r_i \mid f_{max}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Задача&lt;br /&gt;
|definition=Задача &amp;lt;tex&amp;gt; 1 \mid prec, pmtn, r_i \mid f_{max} &amp;lt;/tex&amp;gt; является обобщением [[Правило Лаулера|&amp;lt;tex&amp;gt;1 \mid prec \mid f_{max}&amp;lt;/tex&amp;gt;]], но здесь у работ также есть времена появления, раньше которых их делать запрещено, и их можно прерывать.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Алгоритм ==&lt;br /&gt;
Работу будем обозначать просто ее номером (&amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;), при этом, номера работ могут меняться в зависимости от того, по какому параметру они отсортированы. Время появления работы — &amp;lt;tex&amp;gt; r_i &amp;lt;/tex&amp;gt;, время, требуемое для ее выполнения — &amp;lt;tex&amp;gt; p_i &amp;lt;/tex&amp;gt;. Множество ребер графа обозначается как &amp;lt;tex&amp;gt; E &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Modify ===&lt;br /&gt;
Для начала, модифицируем времена появления работ. Если работа &amp;lt;tex&amp;gt; j &amp;lt;/tex&amp;gt; зависит от &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, то, очевидно, она не может быть начата раньше, чем закончится выполнение &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, поэтому нужно заменить &amp;lt;tex&amp;gt; r_j &amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt; \max(r_j, r_i + p_i) &amp;lt;/tex&amp;gt;. Алгоритм, делающий это, представлен ниже (работы рассматриваются в порядке топологической сортировки):&lt;br /&gt;
&lt;br /&gt;
 Modify()&lt;br /&gt;
     '''for''' i &amp;lt;tex&amp;gt; \in \{ 1 \ldots n \} &amp;lt;/tex&amp;gt;&lt;br /&gt;
       '''for''' j: ij &amp;lt;tex&amp;gt; \in E &amp;lt;/tex&amp;gt;&lt;br /&gt;
         &amp;lt;tex&amp;gt; r_j \leftarrow \max(r_j, r_i + p_i) &amp;lt;/tex&amp;gt; &lt;br /&gt;
&lt;br /&gt;
После выполнения этого алгоритма для любых двух работ &amp;lt;tex&amp;gt; i, j &amp;lt;/tex&amp;gt;, таких, что &amp;lt;tex&amp;gt; j &amp;lt;/tex&amp;gt; зависит от &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, выполняется &amp;lt;tex&amp;gt; r_j &amp;gt; r_i &amp;lt;/tex&amp;gt;, поэтому, при рассмотрении работ в порядке неубывания времен их появления, они также будут топологически отсортированы.&lt;br /&gt;
&lt;br /&gt;
=== Blocks ===&lt;br /&gt;
Здесь и далее считается, что работы отсортированы в порядке неубывания модифицированных &amp;lt;tex&amp;gt; r_i &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Станок, выполняющий работы, выполняет работу в некоторые интервалы времени и простаивает в остальное время. Следующий алгоритм разбивает множество работ на блоки, внутри которых станок работает без простоя.&lt;br /&gt;
&lt;br /&gt;
 Blocks(&amp;lt;tex&amp;gt; \{ 1 \ldots n \} &amp;lt;/tex&amp;gt;)&lt;br /&gt;
     &amp;lt;tex&amp;gt; j \leftarrow 0 &amp;lt;/tex&amp;gt;&lt;br /&gt;
     &amp;lt;tex&amp;gt; t \leftarrow 0 &amp;lt;/tex&amp;gt;&lt;br /&gt;
     '''for''' &amp;lt;tex&amp;gt; i \in \{ 1 \ldots n \} &amp;lt;/tex&amp;gt;&lt;br /&gt;
       '''if''' &amp;lt;tex&amp;gt; t &amp;lt; r_i &amp;lt;/tex&amp;gt;&lt;br /&gt;
         &amp;lt;tex&amp;gt; t \leftarrow r_i &amp;lt;/tex&amp;gt;&lt;br /&gt;
         &amp;lt;tex&amp;gt; j \leftarrow j + 1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
       &amp;lt;tex&amp;gt; B_j \leftarrow B_j \cup i &amp;lt;/tex&amp;gt;&lt;br /&gt;
       &amp;lt;tex&amp;gt; t \leftarrow t + p_i &amp;lt;/tex&amp;gt;&lt;br /&gt;
     '''return''' &amp;lt;tex&amp;gt; {B_1, \ldots, B_j} &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если алгоритм Blocks вызывается от пустого множества, то считаем, что он возвращает также пустое множество.&lt;br /&gt;
&lt;br /&gt;
Определим время начала блока &amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt; как &amp;lt;tex&amp;gt;s_j = \min\limits_{i \in B_j} r_i &amp;lt;/tex&amp;gt;, а время конца — как &amp;lt;tex&amp;gt; e_j = s_j + \sum\limits_{i \in B_j} p_i &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|statement=&lt;br /&gt;
Существует оптимальное расписание, такое, что все во все временные интервалы &amp;lt;tex&amp;gt; [s_j; e_j] &amp;lt;/tex&amp;gt;, соответствующие блокам &amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt;, построенным алгоритмом Blocks, станок работает без простоя.&lt;br /&gt;
|proof=&lt;br /&gt;
Возьмем произвольное оптимальное расписание &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt;, в нем деление на блоки может также быть произвольным. Найдем первый такой временной интервал &amp;lt;tex&amp;gt; [s_j; e_j] &amp;lt;/tex&amp;gt;, что в &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; есть период простоя внутри &amp;lt;tex&amp;gt; [s_j; e_j] &amp;lt;/tex&amp;gt; (если таких периодов несколько, будем рассматривать первый из них). Обозначим его за &amp;lt;tex&amp;gt; [s; e] &amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Возьмем некоторую работу &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, такую, что она начинается позже, чем в момент времени &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt;, не имеет в графе зависимостей предков, завершаемых позже, чем в момент &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; r_i \le s &amp;lt;/tex&amp;gt;. Такая работа обязательно существует, иначе для множества работ, выполняемых позже, чем в момент &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt;, было бы &amp;lt;tex&amp;gt; r = \min\limits_{k \in T} r_k &amp;gt; s &amp;lt;/tex&amp;gt;, и внутри блока &amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt; был бы простой &amp;lt;tex&amp;gt; [s_j; r] &amp;lt;/tex&amp;gt;, что невозможно по построению алгоритма Blocks. Очевидно, мы можем начать выполнять ее в момент времени &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt; и полностью, либо частично заполнить простой &amp;lt;tex&amp;gt; [s; e] &amp;lt;/tex&amp;gt;; так как &amp;lt;tex&amp;gt; f_i &amp;lt;/tex&amp;gt; — неубывающая функция, то ответ останется оптимальным. Повторяя этот процесс, мы за конечное число шагов придем к оптимальному расписанию с требуемым свойством.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Decompose ===&lt;br /&gt;
Допустим, у нас есть блок работ, который можно выполнить без прерываний. Общая идея алгоритма Decompose следующая: найдем работу &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, которую выгоднее всего выполнить последней. Разобъем оставшееся множество работ на блоки, решим задачу для этих блоков рекурсивно и вставим &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt; в промежутки между ними, до них и после них, начиная с &amp;lt;tex&amp;gt; r_i &amp;lt;/tex&amp;gt;. Псевдокод этого алгоритма представлен ниже.&lt;br /&gt;
&lt;br /&gt;
 Decompose(B)&lt;br /&gt;
     найти &amp;lt;tex&amp;gt; l: f_l(e) = \min \{f_j(e) \mid j \in B, \overline\exists\ k: jk \in E \} &amp;lt;/tex&amp;gt;&lt;br /&gt;
     ans &amp;lt;tex&amp;gt; \leftarrow f_l(e) &amp;lt;/tex&amp;gt;&lt;br /&gt;
     G &amp;lt;tex&amp;gt; \leftarrow &amp;lt;/tex&amp;gt; Blocks(&amp;lt;tex&amp;gt; B \setminus l &amp;lt;/tex&amp;gt;)&lt;br /&gt;
     вставить l в промежутки между блоками G, начиная с &amp;lt;tex&amp;gt; r_l &amp;lt;/tex&amp;gt;&lt;br /&gt;
     '''for''' &amp;lt;tex&amp;gt;B_j \in G &amp;lt;/tex&amp;gt;:&lt;br /&gt;
       ans = max(ans, Decompose(&amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt;))&lt;br /&gt;
     '''return''' ans&lt;br /&gt;
 &lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Расписание для блока, построенное алгоритмом Decompose, является корректным и оптимальным.&lt;br /&gt;
|proof=&lt;br /&gt;
Докажем сначала корректность.&lt;br /&gt;
&lt;br /&gt;
Убедимся, что порядок выполнения работ, заданный графом зависимостей, не нарушается. Заметим, что в разбиении &amp;lt;tex&amp;gt; B \setminus l &amp;lt;/tex&amp;gt; на блоки существует не более одного блока &amp;lt;tex&amp;gt; B_0 &amp;lt;/tex&amp;gt;, расположенного до момента времени &amp;lt;tex&amp;gt; r_l &amp;lt;/tex&amp;gt; — иначе после вставки &amp;lt;tex&amp;gt; l &amp;lt;/tex&amp;gt; в промежутки между блоками, &amp;lt;tex&amp;gt; B &amp;lt;/tex&amp;gt; выполнялся бы с прерываниями. Далее, заметим, что все интервалы времени, на которые назначается работа из блока &amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt;, находятся внутри интервала &amp;lt;tex&amp;gt; [s_j; e_j] &amp;lt;/tex&amp;gt;; это относится и к блоку &amp;lt;tex&amp;gt; B_0 &amp;lt;/tex&amp;gt;. Из этих двух наблюдений, а также того, что все работы со временами появления меньше, чем &amp;lt;tex&amp;gt; r_l &amp;lt;/tex&amp;gt;, будут помещены в блок &amp;lt;tex&amp;gt; B_0 &amp;lt;/tex&amp;gt;, следует, что порядок выполнения будет правильным.&lt;br /&gt;
&lt;br /&gt;
Также для корректности требуется, чтобы работы выполнялись не раньше, чем они появляются. Так как время выполнения работы определяется только в строке 4 алгоритма, которая соответствует этому требованию, то условие выполняется.&lt;br /&gt;
&lt;br /&gt;
Найдем теперь нижнюю оценку на &amp;lt;tex&amp;gt; f_{max} &amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt; f_{max}(J) &amp;lt;/tex&amp;gt; — ответ для множества работ &amp;lt;tex&amp;gt; J &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Очевидно, для любой работы &amp;lt;tex&amp;gt; j \in J &amp;lt;/tex&amp;gt; выполняется &amp;lt;tex&amp;gt; f_{max}(J) \ge f_{max}(J \setminus j) &amp;lt;/tex&amp;gt;, значит, &amp;lt;tex&amp;gt; f_{max}(J) \ge \max\limits_{j \in J} f_{max}(J \setminus j) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Также, так как в оптимальном решении какая-то работа без потомков обязательно заканчивается в блоке &amp;lt;tex&amp;gt; B &amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt; f_{max}(J) \ge f_l(e) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Отсюда следует &amp;lt;tex&amp;gt; f_{max}(J) \ge \max(f_l(e), \max\limits_{j \in J} f_{max}(J \setminus j)) &amp;lt;/tex&amp;gt;. По псевдокоду алгоритма видно, что его ответ достигает этой нижней оценки.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Общий алгоритм ===&lt;br /&gt;
&lt;br /&gt;
Выполним Modify, после чего разобъем все множество работ на блоки и для каждого блока запустим Decompose():&lt;br /&gt;
&lt;br /&gt;
 MakeSchedule()&lt;br /&gt;
     Modify()&lt;br /&gt;
     B &amp;lt;tex&amp;gt; \leftarrow &amp;lt;/tex&amp;gt; Blocks(&amp;lt;tex&amp;gt; \{1 \ldots n \} &amp;lt;/tex&amp;gt;)&lt;br /&gt;
     ans &amp;lt;tex&amp;gt; \leftarrow &amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt; -\infty &amp;lt;/tex&amp;gt;&lt;br /&gt;
     '''for''' (&amp;lt;tex&amp;gt; B_j \in B&amp;lt;/tex&amp;gt;):&lt;br /&gt;
       ans = max(ans, Decompose(&amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt;))&lt;br /&gt;
     '''return''' ans&lt;br /&gt;
&lt;br /&gt;
Из доказанной ранее леммы следует, что &amp;lt;tex&amp;gt; f_{max}(\{ 1 \ldots n \}) = \max\limits_{j} f_{max}(B_j) &amp;lt;/tex&amp;gt;, поэтому расписание для всего множества работ, поделенного на блоки, также будет оптимальным и корректным.&lt;br /&gt;
&lt;br /&gt;
== Время работы ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Время работы алгоритма MakeSchedule — &amp;lt;tex&amp;gt; O(n^2) &amp;lt;/tex&amp;gt; операций.&lt;br /&gt;
|proof=&lt;br /&gt;
Обозначим за &amp;lt;tex&amp;gt; P(n) &amp;lt;/tex&amp;gt; время, необходимое для выполнения алгоритма MakeSchedule на n работах. Очевидно, для корректно определенной функции P в силу структуры алгоритма должно выполняться неравенство:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; P(n) \ge сn + \sum\limits_{i = 1}^{k} P(n_i) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;tex&amp;gt; n_i &amp;lt;/tex&amp;gt; - размер блока с номером &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, построенного алгоритмом Blocks(). Заметим, что &amp;lt;tex&amp;gt; \sum\limits_{i = 1}^{k} n_i = n - 1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;tex&amp;gt; P(n) = an^2 &amp;lt;/tex&amp;gt;, то имеем:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; an^2 \ge cn + a \sum\limits_{i = 1}^{k} n_i^2 &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так как &amp;lt;tex&amp;gt; n^2 &amp;gt; (n - 1)^2 = (\sum\limits_{i = 1}^{k} n_i)^2 = \sum\limits_{i = 1}^{k} n_i^2 + 2\sum\limits_{\substack{i, j = 1\\ i \ne j}}^{k} n_i n_j &amp;lt;/tex&amp;gt;, то можно переписать неравенство в следующем виде:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; 2a \sum\limits_{\substack{i, j = 1\\ i \ne j}}^{k} n_i n_j \ge cn &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы получить максимальную нижнюю оценку на &amp;lt;tex&amp;gt; a &amp;lt;/tex&amp;gt;, оценим снизу &amp;lt;tex&amp;gt; \sum\limits_{i, j = 1}^{k} n_i n_j &amp;lt;/tex&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; \sum\limits_{\substack{i, j = 1\\ i \ne j}}^{k} n_i n_j \ge \sum\limits_{\substack{i, j = 1\\ i \ne j}}^{k} 1 \cdot n_j = \sum\limits_{j = 1}^{k} (k - 1) n_j = (k - 1) (n - 1) \ge \dfrac{nk}{4}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значит, при &amp;lt;tex&amp;gt; a \ge \dfrac{c}{2} \dfrac{n}{\dfrac{nk}{4}} = \dfrac{2c}{k} &amp;lt;/tex&amp;gt; требуемое неравенство будет выполняться.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Источники==&lt;br /&gt;
* Peter Brucker. «Scheduling Algorithms» {{---}} «Springer», 2006 г. {{---}} 379 стр. {{---}} ISBN 978-3-540-69515-8&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория: Теория расписаний]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=1precpmtnrifmax&amp;diff=48280</id>
		<title>1precpmtnrifmax</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=1precpmtnrifmax&amp;diff=48280"/>
				<updated>2015-06-10T06:10:47Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;tex dpi = &amp;quot;200&amp;quot;&amp;gt; 1 \mid prec,pmtn,r_i \mid f_{max}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Задача&lt;br /&gt;
|definition=Задача &amp;lt;tex&amp;gt; 1 \mid prec, pmtn, r_i \mid f_{max} &amp;lt;/tex&amp;gt; является обобщением [[Правило Лаулера|&amp;lt;tex&amp;gt;1 \mid prec \mid f_{max}&amp;lt;/tex&amp;gt;]], но здесь у работ также есть времена появления, раньше которых их делать запрещено, и их можно прерывать.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Алгоритм ==&lt;br /&gt;
Работу будем обозначать просто ее номером (&amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;), при этом, номера работ могут меняться в зависимости от того, по какому параметру они отсортированы. Время появления работы — &amp;lt;tex&amp;gt; r_i &amp;lt;/tex&amp;gt;, время, требуемое для ее выполнения — &amp;lt;tex&amp;gt; p_i &amp;lt;/tex&amp;gt;. Множество ребер графа обозначается как &amp;lt;tex&amp;gt; E &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Modify ===&lt;br /&gt;
Для начала, модифицируем времена появления работ. Если работа &amp;lt;tex&amp;gt; j &amp;lt;/tex&amp;gt; зависит от &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, то, очевидно, она не может быть начата раньше, чем закончится выполнение &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, поэтому нужно заменить &amp;lt;tex&amp;gt; r_j &amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt; \max(r_j, r_i + p_i) &amp;lt;/tex&amp;gt;. Алгоритм, делающий это, представлен ниже (работы рассматриваются в порядке топологической сортировки):&lt;br /&gt;
&lt;br /&gt;
 Modify()&lt;br /&gt;
     '''for''' i &amp;lt;tex&amp;gt; \in \{ 1 \ldots n \} &amp;lt;/tex&amp;gt;&lt;br /&gt;
       '''for''' j: ij &amp;lt;tex&amp;gt; \in E &amp;lt;/tex&amp;gt;&lt;br /&gt;
         &amp;lt;tex&amp;gt; r_j \leftarrow \max(r_j, r_i + p_i) &amp;lt;/tex&amp;gt; &lt;br /&gt;
&lt;br /&gt;
После выполнения этого алгоритма для любых двух работ &amp;lt;tex&amp;gt; i, j &amp;lt;/tex&amp;gt;, таких, что &amp;lt;tex&amp;gt; j &amp;lt;/tex&amp;gt; зависит от &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, выполняется &amp;lt;tex&amp;gt; r_j &amp;gt; r_i &amp;lt;/tex&amp;gt;, поэтому, при рассмотрении работ в порядке неубывания времен их появления, они также будут топологически отсортированы.&lt;br /&gt;
&lt;br /&gt;
=== Blocks ===&lt;br /&gt;
Здесь и далее считается, что работы отсортированы в порядке неубывания модифицированных &amp;lt;tex&amp;gt; r_i &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Станок, выполняющий работы, выполняет работу в некоторые интервалы времени и простаивает в остальное время. Следующий алгоритм разбивает множество работ на блоки, внутри которых станок работает без простоя.&lt;br /&gt;
&lt;br /&gt;
 Blocks(&amp;lt;tex&amp;gt; \{ 1 \ldots n \} &amp;lt;/tex&amp;gt;)&lt;br /&gt;
     &amp;lt;tex&amp;gt; j \leftarrow 0 &amp;lt;/tex&amp;gt;&lt;br /&gt;
     &amp;lt;tex&amp;gt; t \leftarrow 0 &amp;lt;/tex&amp;gt;&lt;br /&gt;
     '''for''' &amp;lt;tex&amp;gt; i \in \{ 1 \ldots n \} &amp;lt;/tex&amp;gt;&lt;br /&gt;
       '''if''' &amp;lt;tex&amp;gt; t &amp;lt; r_i &amp;lt;/tex&amp;gt;&lt;br /&gt;
         &amp;lt;tex&amp;gt; t \leftarrow r_i &amp;lt;/tex&amp;gt;&lt;br /&gt;
         &amp;lt;tex&amp;gt; j \leftarrow j + 1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
       &amp;lt;tex&amp;gt; B_j \leftarrow B_j \cup i &amp;lt;/tex&amp;gt;&lt;br /&gt;
       &amp;lt;tex&amp;gt; t \leftarrow t + p_i &amp;lt;/tex&amp;gt;&lt;br /&gt;
     '''return''' &amp;lt;tex&amp;gt; {B_1, \ldots, B_j} &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если алгоритм Blocks вызывается от пустого множества, то считаем, что он возвращает также пустое множество.&lt;br /&gt;
&lt;br /&gt;
Определим время начала блока &amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt; как &amp;lt;tex&amp;gt;s_j = \min\limits_{i \in B_j} r_i &amp;lt;/tex&amp;gt;, а время конца — как &amp;lt;tex&amp;gt; e_j = s_j + \sum\limits_{i \in B_j} p_i &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|statement=&lt;br /&gt;
Существует оптимальное расписание, такое, что все во все временные интервалы &amp;lt;tex&amp;gt; [s_j; e_j] &amp;lt;/tex&amp;gt;, соответствующие блокам &amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt;, построенным алгоритмом Blocks, станок работает без простоя.&lt;br /&gt;
|proof=&lt;br /&gt;
Возьмем произвольное оптимальное расписание &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt;, в нем деление на блоки может также быть произвольным. Найдем первый такой временной интервал &amp;lt;tex&amp;gt; [s_j; e_j] &amp;lt;/tex&amp;gt;, что в &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; есть период простоя внутри &amp;lt;tex&amp;gt; [s_j; e_j] &amp;lt;/tex&amp;gt; (если таких периодов несколько, будем рассматривать первый из них). Обозначим его за &amp;lt;tex&amp;gt; [s; e] &amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Возьмем некоторую работу &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, такую, что она начинается позже, чем в момент времени &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt;, не имеет в графе зависимостей предков, завершаемых позже, чем в момент &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; r_i \le s &amp;lt;/tex&amp;gt;. Такая работа обязательно существует, иначе для множества работ, выполняемых позже, чем в момент &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt;, было бы &amp;lt;tex&amp;gt; r = \min\limits_{k \in T} r_k &amp;gt; s &amp;lt;/tex&amp;gt;, и внутри блока &amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt; был бы простой &amp;lt;tex&amp;gt; [s_j; r] &amp;lt;/tex&amp;gt;, что невозможно по построению алгоритма Blocks. Очевидно, мы можем начать выполнять ее в момент времени &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt; и полностью, либо частично заполнить простой &amp;lt;tex&amp;gt; [s; e] &amp;lt;/tex&amp;gt;; так как &amp;lt;tex&amp;gt; f_i &amp;lt;/tex&amp;gt; — неубывающая функция, то ответ останется оптимальным. Повторяя этот процесс, мы за конечное число шагов придем к оптимальному расписанию с требуемым свойством.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Decompose ===&lt;br /&gt;
Допустим, у нас есть блок работ, который можно выполнить без прерываний. Общая идея алгоритма Decompose следующая: найдем работу &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, которую выгоднее всего выполнить последней. Разобъем оставшееся множество работ на блоки, решим задачу для этих блоков рекурсивно и вставим &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt; в промежутки между ними, до них и после них, начиная с &amp;lt;tex&amp;gt; r_i &amp;lt;/tex&amp;gt;. Псевдокод этого алгоритма представлен ниже.&lt;br /&gt;
&lt;br /&gt;
 Decompose(B)&lt;br /&gt;
     найти &amp;lt;tex&amp;gt; l: f_l(e) = \min \{f_j(e) \mid j \in B, \overline\exists\ k: jk \in E \} &amp;lt;/tex&amp;gt;&lt;br /&gt;
     ans &amp;lt;tex&amp;gt; \leftarrow f_l(e) &amp;lt;/tex&amp;gt;&lt;br /&gt;
     G &amp;lt;tex&amp;gt; \leftarrow &amp;lt;/tex&amp;gt; Blocks(&amp;lt;tex&amp;gt; B \setminus l &amp;lt;/tex&amp;gt;)&lt;br /&gt;
     вставить l в промежутки между блоками G, начиная с &amp;lt;tex&amp;gt; r_l &amp;lt;/tex&amp;gt;&lt;br /&gt;
     '''for''' &amp;lt;tex&amp;gt;B_j \in G &amp;lt;/tex&amp;gt;:&lt;br /&gt;
       ans = max(ans, Decompose(&amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt;))&lt;br /&gt;
     '''return''' ans&lt;br /&gt;
 &lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Расписание для блока, построенное алгоритмом Decompose, является корректным и оптимальным.&lt;br /&gt;
|proof=&lt;br /&gt;
Докажем сначала корректность.&lt;br /&gt;
&lt;br /&gt;
Убедимся, что порядок выполнения работ, заданный графом зависимостей, не нарушается. Заметим, что в разбиении &amp;lt;tex&amp;gt; B \setminus l &amp;lt;/tex&amp;gt; на блоки существует не более одного блока &amp;lt;tex&amp;gt; B_0 &amp;lt;/tex&amp;gt;, расположенного до момента времени &amp;lt;tex&amp;gt; r_l &amp;lt;/tex&amp;gt; — иначе после вставки &amp;lt;tex&amp;gt; l &amp;lt;/tex&amp;gt; в промежутки между блоками, &amp;lt;tex&amp;gt; B &amp;lt;/tex&amp;gt; выполнялся бы с прерываниями. Далее, заметим, что все интервалы времени, на которые назначается работа из блока &amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt;, находятся внутри интервала &amp;lt;tex&amp;gt; [s_j; e_j] &amp;lt;/tex&amp;gt;; это относится и к блоку &amp;lt;tex&amp;gt; B_0 &amp;lt;/tex&amp;gt;. Из этих двух наблюдений, а также того, что все работы со временами появления меньше, чем &amp;lt;tex&amp;gt; r_l &amp;lt;/tex&amp;gt;, будут помещены в блок &amp;lt;tex&amp;gt; B_0 &amp;lt;/tex&amp;gt;, следует, что порядок выполнения будет правильным.&lt;br /&gt;
&lt;br /&gt;
Также для корректности требуется, чтобы работы выполнялись не раньше, чем они появляются. Так как время выполнения работы определяется только в строке 4 алгоритма, которая соответствует этому требованию, то условие выполняется.&lt;br /&gt;
&lt;br /&gt;
Найдем теперь нижнюю оценку на &amp;lt;tex&amp;gt; f_{max} &amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt; f_{max}(J) &amp;lt;/tex&amp;gt; — ответ для множества работ &amp;lt;tex&amp;gt; J &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Очевидно, для любой работы &amp;lt;tex&amp;gt; j \in J &amp;lt;/tex&amp;gt; выполняется &amp;lt;tex&amp;gt; f_{max}(J) \ge f_{max}(J \setminus j) &amp;lt;/tex&amp;gt;, значит, &amp;lt;tex&amp;gt; f_{max}(J) \ge \max\limits_{j \in J} f_{max}(J \setminus j) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Также, так как в оптимальном решении какая-то работа без потомков обязательно заканчивается в блоке &amp;lt;tex&amp;gt; B &amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt; f_{max}(J) \ge f_l(e) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Отсюда следует &amp;lt;tex&amp;gt; f_{max}(J) \ge \max(f_l(e), \max\limits_{j \in J} f_{max}(J \setminus j)) &amp;lt;/tex&amp;gt;. По псевдокоду алгоритма видно, что его ответ достигает этой нижней оценки.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Общий алгоритм ===&lt;br /&gt;
&lt;br /&gt;
Выполним Modify, после чего разобъем все множество работ на блоки и для каждого блока запустим Decompose():&lt;br /&gt;
&lt;br /&gt;
 MakeSchedule()&lt;br /&gt;
     Modify()&lt;br /&gt;
     B &amp;lt;tex&amp;gt; \leftarrow &amp;lt;/tex&amp;gt; Blocks(&amp;lt;tex&amp;gt; \{1 \ldots n \} &amp;lt;/tex&amp;gt;)&lt;br /&gt;
     ans &amp;lt;tex&amp;gt; \leftarrow &amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt; -\infty &amp;lt;/tex&amp;gt;&lt;br /&gt;
     '''for''' (&amp;lt;tex&amp;gt; B_j \in B&amp;lt;/tex&amp;gt;):&lt;br /&gt;
       ans = max(ans, Decompose(&amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt;))&lt;br /&gt;
     '''return''' ans&lt;br /&gt;
&lt;br /&gt;
Из доказанной ранее леммы следует, что &amp;lt;tex&amp;gt; f_{max}(\{ 1 \ldots n \}) = \max\limits_{j} f_{max}(B_j) &amp;lt;/tex&amp;gt;, поэтому расписание для всего множества работ, поделенного на блоки, также будет оптимальным и корректным.&lt;br /&gt;
&lt;br /&gt;
== Время работы ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Время работы алгоритма MakeSchedule — &amp;lt;tex&amp;gt; O(n^2) &amp;lt;/tex&amp;gt; операций.&lt;br /&gt;
|proof=&lt;br /&gt;
Обозначим за &amp;lt;tex&amp;gt; P(n) &amp;lt;/tex&amp;gt; время, необходимое для выполнения алгоритма MakeSchedule на n работах. Очевидно, для корректно определенной функции P в силу структуры алгоритма должно выполняться неравенство:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; P(n) \ge сn + \sum\limits_{i = 1}^{k} P(n_i) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;tex&amp;gt; n_i &amp;lt;/tex&amp;gt; - размер блока с номером &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, построенного алгоритмом Blocks(). Заметим, что &amp;lt;tex&amp;gt; \sum\limits_{i = 1}^{k} n_i = n - 1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;tex&amp;gt; P(n) = an^2 &amp;lt;/tex&amp;gt;, то имеем:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; an^2 \ge cn + a \sum\limits_{i = 1}^{k} n_i^2 &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так как &amp;lt;tex&amp;gt; n^2 &amp;gt; (n - 1)^2 = (\sum\limits_{i = 1}^{k} n_i)^2 = \sum\limits_{i = 1}^{k} n_i^2 + 2\sum\limits_{\substack{i, j = 1\\ i \ne j}}^{k} n_i n_j &amp;lt;/tex&amp;gt;, то можно переписать неравенство в следующем виде:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; 2a \sum\limits_{\substack{i, j = 1\\ i \ne j}}^{k} n_i n_j \ge cn &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы получить максимальную нижнюю оценку на &amp;lt;tex&amp;gt; a &amp;lt;/tex&amp;gt;, оценим снизу &amp;lt;tex&amp;gt; \sum\limits_{i, j = 1}^{k} n_i n_j &amp;lt;/tex&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; \sum\limits_{\substack{i, j = 1\\ i \ne j}}^{k} n_i n_j \ge \sum\limits_{\substack{i, j = 1\\ i \ne j}}^{k} 1 \cdot n_j = \sum\limits_{j = 1}^{k} (k - 1) n_j = (k - 1) (n - 1) \ge \frac{nk}{4}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значит, при &amp;lt;tex&amp;gt; a \ge \frac{c}{2} \frac{n}{\frac{nk}{4}} = \frac{2c}{k} &amp;lt;/tex&amp;gt; требуемое неравенство будет выполняться.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Источники==&lt;br /&gt;
* Peter Brucker. «Scheduling Algorithms» {{---}} «Springer», 2006 г. {{---}} 379 стр. {{---}} ISBN 978-3-540-69515-8&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория: Теория расписаний]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=1precpmtnrifmax&amp;diff=48277</id>
		<title>1precpmtnrifmax</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=1precpmtnrifmax&amp;diff=48277"/>
				<updated>2015-06-09T21:32:46Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Постановка задачи ==&lt;br /&gt;
Задача &amp;lt;tex&amp;gt; 1 \mid prec, pmtn, r_i \mid f_{max} &amp;lt;/tex&amp;gt; является обобщением [[Правило Лаулера|&amp;lt;tex&amp;gt;1 \mid prec \mid f_{max}&amp;lt;/tex&amp;gt;]], но здесь у работ также есть времена появления, раньше которых их делать запрещено, и их можно прерывать.&lt;br /&gt;
&lt;br /&gt;
== Алгоритм ==&lt;br /&gt;
Работу будем обозначать просто ее номером (&amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;), при этом, номера работ могут меняться в зависимости от того, по какому параметру они отсортированы. Время появления работы — &amp;lt;tex&amp;gt; r_i &amp;lt;/tex&amp;gt;, время, требуемое для ее выполнения — &amp;lt;tex&amp;gt; p_i &amp;lt;/tex&amp;gt;. Множество ребер графа обозначается как &amp;lt;tex&amp;gt; E &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Modify ===&lt;br /&gt;
Для начала, модифицируем времена появления работ. Если работа &amp;lt;tex&amp;gt; j &amp;lt;/tex&amp;gt; зависит от &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, то, очевидно, она не может быть начата раньше, чем закончится выполнение &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, поэтому нужно заменить &amp;lt;tex&amp;gt; r_j &amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt; \max(r_j, r_i + p_i) &amp;lt;/tex&amp;gt;. Алгоритм, делающий это, представлен ниже (работы рассматриваются в порядке топологической сортировки):&lt;br /&gt;
&lt;br /&gt;
 Modify()&lt;br /&gt;
     '''for''' i &amp;lt;tex&amp;gt; \in \{ 1 \ldots n \} &amp;lt;/tex&amp;gt;&lt;br /&gt;
       '''for''' j: ij &amp;lt;tex&amp;gt; \in E &amp;lt;/tex&amp;gt;&lt;br /&gt;
         &amp;lt;tex&amp;gt; r_j \leftarrow \max(r_j, r_i + p_i) &amp;lt;/tex&amp;gt; &lt;br /&gt;
&lt;br /&gt;
После выполнения этого алгоритма для любых двух работ &amp;lt;tex&amp;gt; i, j &amp;lt;/tex&amp;gt;, таких, что &amp;lt;tex&amp;gt; j &amp;lt;/tex&amp;gt; зависит от &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, выполняется &amp;lt;tex&amp;gt; r_j &amp;gt; r_i &amp;lt;/tex&amp;gt;, поэтому, при рассмотрении работ в порядке неубывания времен их появления, они также будут топологически отсортированы.&lt;br /&gt;
&lt;br /&gt;
=== Blocks ===&lt;br /&gt;
Здесь и далее считается, что работы отсортированы в порядке неубывания модифицированных &amp;lt;tex&amp;gt; r_i &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Станок, выполняющий работы, выполняет работу в некоторые интервалы времени и простаивает в остальное время. Следующий алгоритм разбивает множество работ на блоки, внутри которых станок работает без простоя.&lt;br /&gt;
&lt;br /&gt;
 Blocks(&amp;lt;tex&amp;gt; \{ 1 \ldots n \} &amp;lt;/tex&amp;gt;)&lt;br /&gt;
     &amp;lt;tex&amp;gt; j \leftarrow 0 &amp;lt;/tex&amp;gt;&lt;br /&gt;
     &amp;lt;tex&amp;gt; t \leftarrow 0 &amp;lt;/tex&amp;gt;&lt;br /&gt;
     '''for''' &amp;lt;tex&amp;gt; i \in \{ 1 \ldots n \} &amp;lt;/tex&amp;gt;&lt;br /&gt;
       '''if''' &amp;lt;tex&amp;gt; t &amp;lt; r_i &amp;lt;/tex&amp;gt;&lt;br /&gt;
         &amp;lt;tex&amp;gt; t \leftarrow r_i &amp;lt;/tex&amp;gt;&lt;br /&gt;
         &amp;lt;tex&amp;gt; j \leftarrow j + 1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
       &amp;lt;tex&amp;gt; B_j \leftarrow B_j \cup i &amp;lt;/tex&amp;gt;&lt;br /&gt;
       &amp;lt;tex&amp;gt; t \leftarrow t + p_i &amp;lt;/tex&amp;gt;&lt;br /&gt;
     '''return''' &amp;lt;tex&amp;gt; {B_1, \ldots, B_j} &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если алгоритм Blocks вызывается от пустого множества, то считаем, что он возвращает также пустое множество.&lt;br /&gt;
&lt;br /&gt;
Определим время начала блока &amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt; как &amp;lt;tex&amp;gt;s_j = \min\limits_{i \in B_j} r_i &amp;lt;/tex&amp;gt;, а время конца — как &amp;lt;tex&amp;gt; e_j = s_j + \sum\limits_{i \in B_j} p_i &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|statement=&lt;br /&gt;
Существует оптимальное расписание, такое, что все во все временные интервалы &amp;lt;tex&amp;gt; [s_j; e_j] &amp;lt;/tex&amp;gt;, соответствующие блокам &amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt;, построенным алгоритмом Blocks, станок работает без простоя.&lt;br /&gt;
|proof=&lt;br /&gt;
Возьмем произвольное оптимальное расписание &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt;, в нем деление на блоки может также быть произвольным. Найдем первый такой временной интервал &amp;lt;tex&amp;gt; [s_j; e_j] &amp;lt;/tex&amp;gt;, что в &amp;lt;tex&amp;gt; S &amp;lt;/tex&amp;gt; есть период простоя внутри &amp;lt;tex&amp;gt; [s_j; e_j] &amp;lt;/tex&amp;gt; (если таких периодов несколько, будем рассматривать первый из них). Обозначим его за &amp;lt;tex&amp;gt; [s; e] &amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Возьмем некоторую работу &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, такую, что она начинается позже, чем в момент времени &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt;, не имеет в графе зависимостей предков, завершаемых позже, чем в момент &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; r_i \le s &amp;lt;/tex&amp;gt;. Такая работа обязательно существует, иначе для множества работ, выполняемых позже, чем в момент &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt;, было бы &amp;lt;tex&amp;gt; r = \min\limits_{k \in T} r_k &amp;gt; s &amp;lt;/tex&amp;gt;, и внутри блока &amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt; был бы простой &amp;lt;tex&amp;gt; [s_j; r] &amp;lt;/tex&amp;gt;, что невозможно по построению алгоритма Blocks. Очевидно, мы можем начать выполнять ее в момент времени &amp;lt;tex&amp;gt; s &amp;lt;/tex&amp;gt; и полностью, либо частично заполнить простой &amp;lt;tex&amp;gt; [s; e] &amp;lt;/tex&amp;gt;; так как &amp;lt;tex&amp;gt; f_i &amp;lt;/tex&amp;gt; — неубывающая функция, то ответ останется оптимальным. Повторяя этот процесс, мы за конечное число шагов придем к оптимальному расписанию с требуемым свойством.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Decompose ===&lt;br /&gt;
Допустим, у нас есть блок работ, который можно выполнить без прерываний. Общая идея алгоритма Decompose следующая: найдем работу &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, которую выгоднее всего выполнить последней. Разобъем оставшееся множество работ на блоки, решим задачу для этих блоков рекурсивно и вставим &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt; в промежутки между ними, до них и после них, начиная с &amp;lt;tex&amp;gt; r_i &amp;lt;/tex&amp;gt;. Псевдокод этого алгоритма представлен ниже.&lt;br /&gt;
&lt;br /&gt;
 Decompose(B)&lt;br /&gt;
     найти &amp;lt;tex&amp;gt; l: f_l(e) = \min \{f_j(e) \mid j \in B, \overline\exists\ k: jk \in E \} &amp;lt;/tex&amp;gt;&lt;br /&gt;
     ans &amp;lt;tex&amp;gt; \leftarrow f_l(e) &amp;lt;/tex&amp;gt;&lt;br /&gt;
     G &amp;lt;tex&amp;gt; \leftarrow &amp;lt;/tex&amp;gt; Blocks(&amp;lt;tex&amp;gt; B \setminus l &amp;lt;/tex&amp;gt;)&lt;br /&gt;
     вставить l в промежутки между блоками G, начиная с &amp;lt;tex&amp;gt; r_l &amp;lt;/tex&amp;gt;&lt;br /&gt;
     '''for''' &amp;lt;tex&amp;gt;B_j \in G &amp;lt;/tex&amp;gt;:&lt;br /&gt;
       ans = max(ans, Decompose(&amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt;))&lt;br /&gt;
     '''return''' ans&lt;br /&gt;
 &lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Расписание для блока, построенное алгоритмом Decompose, является корректным и оптимальным.&lt;br /&gt;
|proof=&lt;br /&gt;
Докажем сначала корректность.&lt;br /&gt;
&lt;br /&gt;
Убедимся, что порядок выполнения работ, заданный графом зависимостей, не нарушается. Заметим, что в разбиении &amp;lt;tex&amp;gt; B \setminus l &amp;lt;/tex&amp;gt; на блоки существует не более одного блока &amp;lt;tex&amp;gt; B_0 &amp;lt;/tex&amp;gt;, расположенного до момента времени &amp;lt;tex&amp;gt; r_l &amp;lt;/tex&amp;gt; — иначе после вставки &amp;lt;tex&amp;gt; l &amp;lt;/tex&amp;gt; в промежутки между блоками, &amp;lt;tex&amp;gt; B &amp;lt;/tex&amp;gt; выполнялся бы с прерываниями. Далее, заметим, что все интервалы времени, на которые назначается работа из блока &amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt;, находятся внутри интервала &amp;lt;tex&amp;gt; [s_j; e_j] &amp;lt;/tex&amp;gt;; это относится и к блоку &amp;lt;tex&amp;gt; B_0 &amp;lt;/tex&amp;gt;. Из этих двух наблюдений, а также того, что все работы со временами появления меньше, чем &amp;lt;tex&amp;gt; r_l &amp;lt;/tex&amp;gt;, будут помещены в блок &amp;lt;tex&amp;gt; B_0 &amp;lt;/tex&amp;gt;, следует, что порядок выполнения будет правильным.&lt;br /&gt;
&lt;br /&gt;
Также для корректности требуется, чтобы работы выполнялись не раньше, чем они появляются. Так как время выполнения работы определяется только в строке 4 алгоритма, которая соответствует этому требованию, то условие выполняется.&lt;br /&gt;
&lt;br /&gt;
Найдем теперь нижнюю оценку на &amp;lt;tex&amp;gt; f_{max} &amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt; f_{max}(J) &amp;lt;/tex&amp;gt; — ответ для множества работ &amp;lt;tex&amp;gt; J &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Очевидно, для любой работы &amp;lt;tex&amp;gt; j \in J &amp;lt;/tex&amp;gt; выполняется &amp;lt;tex&amp;gt; f_{max}(J) \ge f_{max}(J \setminus j) &amp;lt;/tex&amp;gt;, значит, &amp;lt;tex&amp;gt; f_{max}(J) \ge \max\limits_{j \in J} f_{max}(J \setminus j) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Также, так как в оптимальном решении какая-то работа без потомков обязательно заканчивается в блоке &amp;lt;tex&amp;gt; B &amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt; f_{max}(J) \ge f_l(e) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Отсюда следует &amp;lt;tex&amp;gt; f_{max}(J) \ge \max(f_l(e), \max\limits_{j \in J} f_{max}(J \setminus j)) &amp;lt;/tex&amp;gt;. По псевдокоду алгоритма видно, что его ответ достигает этой нижней оценки.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Общий алгоритм ===&lt;br /&gt;
&lt;br /&gt;
Выполним Modify, после чего разобъем все множество работ на блоки и для каждого блока запустим Decompose():&lt;br /&gt;
&lt;br /&gt;
 MakeSchedule()&lt;br /&gt;
     Modify()&lt;br /&gt;
     B &amp;lt;tex&amp;gt; \leftarrow &amp;lt;/tex&amp;gt; Blocks(&amp;lt;tex&amp;gt; \{1 \ldots n \} &amp;lt;/tex&amp;gt;)&lt;br /&gt;
     ans &amp;lt;tex&amp;gt; \leftarrow &amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt; -\infty &amp;lt;/tex&amp;gt;&lt;br /&gt;
     '''for''' (&amp;lt;tex&amp;gt; B_j \in B&amp;lt;/tex&amp;gt;):&lt;br /&gt;
       ans = max(ans, Decompose(&amp;lt;tex&amp;gt; B_j &amp;lt;/tex&amp;gt;))&lt;br /&gt;
     '''return''' ans&lt;br /&gt;
&lt;br /&gt;
Из доказанной ранее леммы следует, что &amp;lt;tex&amp;gt; f_{max}(\{ 1 \ldots n \}) = \max\limits_{j} f_{max}(B_j) &amp;lt;/tex&amp;gt;, поэтому расписание для всего множества работ, поделенного на блоки, также будет оптимальным и корректным.&lt;br /&gt;
&lt;br /&gt;
== Время работы ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Время работы алгоритма MakeSchedule — &amp;lt;tex&amp;gt; O(n^2) &amp;lt;/tex&amp;gt; операций.&lt;br /&gt;
|proof=&lt;br /&gt;
Обозначим за &amp;lt;tex&amp;gt; P(n) &amp;lt;/tex&amp;gt; время, необходимое для выполнения алгоритма MakeSchedule на n работах. Очевидно, для корректно определенной функции P в силу структуры алгоритма должно выполняться неравенство:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; P(n) \ge сn + \sum\limits_{i = 1}^{k} P(n_i) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;tex&amp;gt; n_i &amp;lt;/tex&amp;gt; - размер блока с номером &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt;, построенного алгоритмом Blocks(). Заметим, что &amp;lt;tex&amp;gt; \sum\limits_{i = 1}^{k} n_i = n - 1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;tex&amp;gt; P(n) = an^2 &amp;lt;/tex&amp;gt;, то имеем:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; an^2 \ge cn + a \sum\limits_{i = 1}^{k} n_i^2 &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так как &amp;lt;tex&amp;gt; n^2 &amp;gt; (n - 1)^2 = (\sum\limits_{i = 1}^{k} n_i)^2 = \sum\limits_{i = 1}^{k} n_i^2 + 2\sum\limits_{\substack{i, j = 1\\ i \ne j}}^{k} n_i n_j &amp;lt;/tex&amp;gt;, то можно переписать неравенство в следующем виде:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; 2a \sum\limits_{\substack{i, j = 1\\ i \ne j}}^{k} n_i n_j \ge cn &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы получить максимальную нижнюю оценку на &amp;lt;tex&amp;gt; a &amp;lt;/tex&amp;gt;, оценим снизу &amp;lt;tex&amp;gt; \sum\limits_{i, j = 1}^{k} n_i n_j &amp;lt;/tex&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; \sum\limits_{\substack{i, j = 1\\ i \ne j}}^{k} n_i n_j \ge \sum\limits_{\substack{i, j = 1\\ i \ne j}}^{k} 1 \cdot n_j = \sum\limits_{j = 1}^{k} (k - 1) n_j = (k - 1) (n - 1) \ge \frac{nk}{4}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значит, при &amp;lt;tex&amp;gt; a \ge \frac{c}{2} \frac{n}{\frac{nk}{4}} = \frac{2c}{k} &amp;lt;/tex&amp;gt; требуемое неравенство будет выполняться.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Источники==&lt;br /&gt;
* Peter Brucker. «Scheduling Algorithms» {{---}} «Springer», 2006 г. {{---}} 379 стр. {{---}} ISBN 978-3-540-69515-8&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория: Теория расписаний]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%B8%D1%81%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0,_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=44258</id>
		<title>Дискретная математика, алгоритмы и структуры данных</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%B8%D1%81%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0,_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=44258"/>
				<updated>2015-01-12T10:02:28Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Задача о паросочетании */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
&lt;br /&gt;
Убедительная просьба читать [[Обсуждение:Дискретная_математика_и_алгоритмы | правила оформления вики-конспектов]].&lt;br /&gt;
&lt;br /&gt;
Символом &amp;lt;tex&amp;gt; \star &amp;lt;/tex&amp;gt; помечены дополнительные темы (возможно, сложные), которые не были подробно рассмотрены (или вообще рассмотрены) в рамках курса.&lt;br /&gt;
&lt;br /&gt;
= Первый семестр =&lt;br /&gt;
&lt;br /&gt;
== Отношения ==&lt;br /&gt;
*[[Определение отношения]]&lt;br /&gt;
*[[Композиция отношений|Композиция отношений, степень отношения, обратное отношение]]&lt;br /&gt;
*[[Рефлексивное отношение|Рефлексивное отношение. Антирефлексивное отношение.]]&lt;br /&gt;
*[[Симметричное отношение]]&lt;br /&gt;
*[[Антисимметричное отношение]]&lt;br /&gt;
*[[Транзитивное отношение]]&lt;br /&gt;
*[[Отношение порядка]]&lt;br /&gt;
*[[Отношение эквивалентности]]&lt;br /&gt;
*[[Транзитивное замыкание|Транзитивное замыкание отношения]]&lt;br /&gt;
*[[Алгоритм Флойда — Уоршелла|Алгоритм Флойда-Уоршалла построения транзитивного замыкания отношения]]&lt;br /&gt;
*[[Транзитивный остов]]&lt;br /&gt;
&lt;br /&gt;
== Булевы функции ==&lt;br /&gt;
*[[Определение булевой функции]]&lt;br /&gt;
*[[Суперпозиции]]&lt;br /&gt;
*[[ДНФ]]&lt;br /&gt;
*[[Сокращенная и минимальная ДНФ | Сокращенная и минимальная ДНФ, минимизация ДНФ методами гиперкубов, карт Карно, Квайна]]&lt;br /&gt;
*[[КНФ]]&lt;br /&gt;
*[[Специальные формы КНФ|Специальные формы КНФ: КНФ в форме Хорна и КНФ в форме Крома]]&lt;br /&gt;
*[[Полином Жегалкина | Полином Жегалкина, преобразование Мёбиуса]]&lt;br /&gt;
*[[Полные системы функций. Теорема Поста о полной системе функций]]&lt;br /&gt;
*[[Представление функции класса DM с помощью медианы]]&lt;br /&gt;
*[[Пороговая функция]]&lt;br /&gt;
*[[Троичная логика]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Схемы из функциональных элементов ==&lt;br /&gt;
*[[Реализация булевой функции схемой из функциональных элементов]]&lt;br /&gt;
*[[Простейшие методы синтеза схем из функциональных элементов]]&lt;br /&gt;
*[[Метод Лупанова синтеза схем]]&lt;br /&gt;
*[[Cумматор]]&lt;br /&gt;
*[[Каскадный сумматор]]&lt;br /&gt;
*[[Двоичный каскадный сумматор]]&lt;br /&gt;
*[[Троичный сумматор]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
*[[Реализация вычитания сумматором]]&lt;br /&gt;
*[[Матричный умножитель]]&lt;br /&gt;
*[[Дерево Уоллеса]]&lt;br /&gt;
*[[Контактная схема]]&lt;br /&gt;
*[[Квантовые гейты]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Представление информации ==&lt;br /&gt;
*[[Кодирование информации]]&lt;br /&gt;
*[[Представление целых чисел: прямой код, код со сдвигом, дополнительный код]]&lt;br /&gt;
*[[Представление вещественных чисел]]&lt;br /&gt;
*[[Представление символов, таблицы кодировок]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Алгоритмы сжатия ==&lt;br /&gt;
* [[Алгоритм Хаффмана]]&lt;br /&gt;
* [[Оптимальное хранение словаря в алгоритме Хаффмана]]&lt;br /&gt;
* [[Алгоритм Хаффмана за O(n)]]&lt;br /&gt;
* [[Алгоритм Ху-Таккера]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Неравенство Крафта]]&lt;br /&gt;
* [[Неравенство Макмиллана]]&lt;br /&gt;
* [[Код Шеннона]]&lt;br /&gt;
* [[Оптимальный префиксный код с длиной кодового слова не более L бит]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Алгоритмы LZ77 и LZ78]]&lt;br /&gt;
* [[Алгоритм LZW]]&lt;br /&gt;
* [[Алгоритм LZSS]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Преобразование Барроуза-Уиллера | Преобразование Барроуза-Уиллера и обратное ему]]&lt;br /&gt;
* [[Преобразование MTF]]&lt;br /&gt;
* [[Расстояние Хэмминга]]&lt;br /&gt;
* [[Избыточное кодирование, код Хэмминга]]&lt;br /&gt;
* [[Гамма-, дельта- и омега-код Элиаса]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Комбинаторика ==&lt;br /&gt;
=== Комбинаторные объекты ===&lt;br /&gt;
* [[Комбинаторные объекты]]&lt;br /&gt;
* [[Лексикографический порядок]]&lt;br /&gt;
* [[Коды Грея]]&lt;br /&gt;
* [[Коды Грея для перестановок]]&lt;br /&gt;
* [[Коды антигрея]]&lt;br /&gt;
* [[Цепные коды]]&lt;br /&gt;
* [[Правильные скобочные последовательности]]&lt;br /&gt;
&lt;br /&gt;
=== Генерация комбинаторных объектов ===&lt;br /&gt;
* [[Генерация комбинаторных объектов в лексикографическом порядке]]&lt;br /&gt;
* [[Получение номера по объекту]]&lt;br /&gt;
* [[Получение объекта по номеру]]&lt;br /&gt;
* [[Получение следующего объекта]]&lt;br /&gt;
* [[Получение предыдущего объекта]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;  &lt;br /&gt;
* [[Метод генерации случайной перестановки, алгоритм Фишера-Йетса]]&lt;br /&gt;
* [[Методы генерации случайного сочетания]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Подсчёт числа объектов ===&lt;br /&gt;
* [[Формула включения-исключения | Формула включения-исключения, подсчет числа беспорядков]]&lt;br /&gt;
* [[Нахождение количества разбиений числа на слагаемые | Нахождение количества разбиений числа на слагаемые. Пентагональная теорема Эйлера]]&lt;br /&gt;
* [[Производящая функция]]&lt;br /&gt;
* [[Лемма Бёрнсайда и Теорема Пойа]]&lt;br /&gt;
* [[Задача об ожерельях]]&lt;br /&gt;
* [[Числа Стирлинга первого рода]]&lt;br /&gt;
* [[Числа Стирлинга второго рода]]&lt;br /&gt;
* [[Числа Эйлера I и II рода | Числа Эйлера первого и второго рода. Подъемы в перестановках]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Числа Каталана]]&lt;br /&gt;
&lt;br /&gt;
=== Свойства комбинаторных объектов ===&lt;br /&gt;
* [[Умножение перестановок, обратная перестановка, группа перестановок]]&lt;br /&gt;
* [[Действие перестановки на набор из элементов, представление в виде циклов]]&lt;br /&gt;
* [[Таблица инверсий]]&lt;br /&gt;
* [[Теорема Кэли]]&lt;br /&gt;
* [[Матричное представление перестановок]]&lt;br /&gt;
* [[Задача о минимуме/максимуме скалярного произведения]]&lt;br /&gt;
* [[Задача о монотонных подпоследовательностях, теорема о связи длины НВП и НУП]]&lt;br /&gt;
&lt;br /&gt;
== [[Динамическое программирование]] ==&lt;br /&gt;
=== Классические задачи динамического программирования ===&lt;br /&gt;
*[[Кратчайший путь в ациклическом графе]]&lt;br /&gt;
*[[Задача о числе путей в ациклическом графе]]&lt;br /&gt;
*[[Задача о расстановке знаков в выражении]]&lt;br /&gt;
*[[Задача о порядке перемножения матриц]]&lt;br /&gt;
*[[Задача о наибольшей общей подпоследовательности]]&lt;br /&gt;
*[[Задача о наибольшей возрастающей подпоследовательности]]&lt;br /&gt;
*[[Задача коммивояжера, ДП по подмножествам]]&lt;br /&gt;
*[[Задача о редакционном расстоянии, алгоритм Вагнера-Фишера]]&lt;br /&gt;
*[[Задача о рюкзаке]]&lt;br /&gt;
&lt;br /&gt;
=== Способы оптимизации методов динамического программирования ===&lt;br /&gt;
*[[Метод четырех русских для умножения матриц]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
*[[Применение метода четырех русских в задачах ДП на примере задачи о НОП]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
*[[Задача об оптимальном префиксном коде с сохранением порядка. Монотонность точки разреза]]&lt;br /&gt;
*[[Meet-in-the-middle]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Другие задачи ===&lt;br /&gt;
*[[Задача о расстоянии Дамерау-Левенштейна]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
*[[Задача о выводе в контекстно-свободной грамматике, алгоритм Кока-Янгера-Касами]]&lt;br /&gt;
*[[Задача о наибольшей подпоследовательности-палиндроме]]&lt;br /&gt;
*[[Наибольшая общая возрастающая подпоследовательность]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
*[[Задача о наибольшей общей палиндромной подпоследовательности]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
*[[Динамическое программирование по профилю]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
*[[Динамика по поддеревьям]]&lt;br /&gt;
&lt;br /&gt;
== Теория вероятностей ==&lt;br /&gt;
*[[Вероятностное пространство, элементарный исход, событие]]&lt;br /&gt;
*[[Независимые события]]&lt;br /&gt;
*[[Условная вероятность]]&lt;br /&gt;
*[[Формула полной вероятности]]&lt;br /&gt;
*[[Формула Байеса]]&lt;br /&gt;
*[[Дискретная случайная величина]]&lt;br /&gt;
*[[Независимые случайные величины]]&lt;br /&gt;
*[[Математическое ожидание случайной величины]]&lt;br /&gt;
*[[Дисперсия случайной величины]]&lt;br /&gt;
*[[Ковариация случайных величин]]&lt;br /&gt;
*[[Корреляция случайных величин]]&lt;br /&gt;
*[[Энтропия случайного источника]]&lt;br /&gt;
*[[Симуляция одним распределением другого]]&lt;br /&gt;
*[[Арифметическое кодирование]]&lt;br /&gt;
*[[Парадоксы теории вероятностей]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
*[[Схема Бернулли]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Марковские цепи ==&lt;br /&gt;
&lt;br /&gt;
* [[Марковская цепь]]&lt;br /&gt;
* [[Теорема о поглощении]]&lt;br /&gt;
* [[Фундаментальная матрица]]&lt;br /&gt;
* [[Математическое ожидание времени поглощения]]&lt;br /&gt;
* [[Расчет вероятности поглощения в состоянии]]&lt;br /&gt;
* [[Эргодическая марковская цепь]]&lt;br /&gt;
* [[Регулярная марковская цепь]]&lt;br /&gt;
* [[Примеры использования Марковских цепей]]&lt;br /&gt;
* [[Скрытые Марковские модели]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Алгоритм Витерби]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Алгоритм &amp;quot;Вперед-Назад&amp;quot;]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Алгоритм Баума-Велша]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Второй семестр =&lt;br /&gt;
&lt;br /&gt;
== Амортизационный анализ ==&lt;br /&gt;
* [[Амортизационный анализ]]&lt;br /&gt;
* [[Динамический массив]]&lt;br /&gt;
* [[Hashed Array Tree]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Список]]&lt;br /&gt;
* [[Стек]]&lt;br /&gt;
* [[Очередь]]&lt;br /&gt;
* [[Персистентный стек]]&lt;br /&gt;
* [[Персистентная очередь]]&lt;br /&gt;
* [[Персистентный дек]]&lt;br /&gt;
* [[Мажорирующий элемент]]&lt;br /&gt;
* [[Счетчик Кнута]]&lt;br /&gt;
&lt;br /&gt;
== Приоритетные очереди ==&lt;br /&gt;
&lt;br /&gt;
* [[Двоичная куча]]&lt;br /&gt;
* [[Биномиальная куча]]&lt;br /&gt;
* [[Фибоначчиева куча]]&lt;br /&gt;
* [[Левосторонняя куча]]&lt;br /&gt;
* [[Тонкая куча]]&lt;br /&gt;
* [[Толстая куча на избыточном счетчике]]&lt;br /&gt;
* [[Куча Бродала-Окасаки]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Система непересекающихся множеств ==&lt;br /&gt;
* [[СНМ (наивные реализации) | Наивные реализации]]&lt;br /&gt;
* [[СНМ (списки с весовой эвристикой) | Списки с весовой эвристикой]]&lt;br /&gt;
* [[СНМ(реализация с помощью леса корневых деревьев) | Реализация с помощью леса корневых деревьев]]&lt;br /&gt;
* [[СНМ с операцией удаления за О(1)]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Поисковые структуры данных ==&lt;br /&gt;
* [[Упорядоченное множество]]&lt;br /&gt;
* [[Дерево поиска, наивная реализация]]&lt;br /&gt;
* [[АВЛ-дерево]]&lt;br /&gt;
* [[2-3 дерево]]&lt;br /&gt;
* [[B-дерево]]&lt;br /&gt;
* [[Красно-черное дерево]]&lt;br /&gt;
* [[Декартово дерево]]&lt;br /&gt;
* [[Декартово дерево по неявному ключу]]&lt;br /&gt;
* [[Splay-дерево]]&lt;br /&gt;
* [[Tango-дерево]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Рандомизированное бинарное дерево поиска]]&lt;br /&gt;
* [[Дерево ван Эмде Боаса]]&lt;br /&gt;
* [[Список с пропусками]]&lt;br /&gt;
* [[Fusion tree]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Сверхбыстрый цифровой бор]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Rope]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Дерево отрезков ==&lt;br /&gt;
&lt;br /&gt;
* [[Статистики на отрезках. Корневая эвристика]]&lt;br /&gt;
* [[Дерево отрезков. Построение]]&lt;br /&gt;
* [[Реализация запроса в дереве отрезков сверху]]&lt;br /&gt;
* [[Реализация запроса в дереве отрезков снизу]]&lt;br /&gt;
* [[Несогласованные поддеревья. Реализация массового обновления]]&lt;br /&gt;
* [[Многомерное дерево отрезков]]&lt;br /&gt;
* [[Сжатое многомерное дерево отрезков]]&lt;br /&gt;
&lt;br /&gt;
== Дерево Фенвика ==&lt;br /&gt;
* [[Дерево Фенвика]]&lt;br /&gt;
* [[Встречное дерево Фенвика]]&lt;br /&gt;
* [[Дерево Фенвика для некоммутативных операций]]&lt;br /&gt;
* [[Многомерное дерево Фенвика]]&lt;br /&gt;
&lt;br /&gt;
== Хеширование ==&lt;br /&gt;
* [[Хеш-таблица]]&lt;br /&gt;
* [[Разрешение коллизий]]&lt;br /&gt;
* [[Хеширование кукушки]]&lt;br /&gt;
* [[Идеальное хеширование]]&lt;br /&gt;
* [[Перехеширование. Амортизационный анализ]]&lt;br /&gt;
* [[Фильтр Блума]]&lt;br /&gt;
* [[Универсальное семейство хеш-функций]]&lt;br /&gt;
&lt;br /&gt;
== [[Сортировка]] ==&lt;br /&gt;
=== Квадратичные сортировки ===&lt;br /&gt;
* [[Сортировка выбором]]&lt;br /&gt;
* [[Сортировка пузырьком]]&lt;br /&gt;
* [[Сортировка вставками]]&lt;br /&gt;
=== Сортировки на сравнениях ===&lt;br /&gt;
* [[Сортировка Шелла]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Сортировка кучей]]&lt;br /&gt;
* [[Быстрая сортировка]]&lt;br /&gt;
* [[Сортировка слиянием]]&lt;br /&gt;
* [[Cортировка слиянием с использованием O(1) дополнительной памяти]]&lt;br /&gt;
* [[Терпеливая сортировка]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Timsort]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Теорема о нижней оценке для сортировки сравнениями]]&lt;br /&gt;
=== Многопоточные сортировки ===&lt;br /&gt;
* [[Многопоточная сортировка слиянием]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[PSRS-сортировка]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
=== Другие сортировки ===&lt;br /&gt;
* [[Поиск k-ой порядковой статистики]]&lt;br /&gt;
* [[Поиск k-ой порядковой статистики за линейное время]]&lt;br /&gt;
* [[Сортировка подсчетом]]&lt;br /&gt;
* [[Сортировка подсчетом сложных объектов]]&lt;br /&gt;
* [[Цифровая сортировка]]&lt;br /&gt;
* [[Карманная сортировка]]&lt;br /&gt;
* [[Сортировка Хана]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сортирующие сети ==&lt;br /&gt;
* [[Сортирующие сети]]&lt;br /&gt;
* [[0-1 принцип | Проверка сети компараторов на то, что она сортирующая. 0-1 принцип]]&lt;br /&gt;
* [[Сортировочные сети с особыми свойствами]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Сортирующие сети для квадратичных сортировок]]&lt;br /&gt;
* [[Сеть Бетчера]]&lt;br /&gt;
&lt;br /&gt;
== Алгоритмы поиска ==&lt;br /&gt;
* [[Целочисленный двоичный поиск]]&lt;br /&gt;
* [[Вещественный двоичный поиск]]&lt;br /&gt;
* [[Троичный поиск]]&lt;br /&gt;
* [[Поиск с помощью золотого сечения]]&lt;br /&gt;
* [[Интерполяционный поиск]]&lt;br /&gt;
&lt;br /&gt;
== Связь между структурами данных ==&lt;br /&gt;
* [[Связь между структурами данных]]&lt;br /&gt;
&lt;br /&gt;
= Третий семестр =&lt;br /&gt;
&lt;br /&gt;
== Основные определения теории графов ==&lt;br /&gt;
* [[Основные определения теории графов|Основные определения: граф, ребро, вершина, степень, петля, путь, цикл]]&lt;br /&gt;
* [[Лемма о рукопожатиях]]&lt;br /&gt;
* [[Теорема о существовании простого пути в случае существования пути]]&lt;br /&gt;
* [[Теорема о существовании простого цикла в случае существования цикла]]&lt;br /&gt;
* [[Матрица смежности графа]]&lt;br /&gt;
* [[Связь степени матрицы смежности и количества путей]]&lt;br /&gt;
* [[Матрица инцидентности графа]]&lt;br /&gt;
* [[Циклическое пространство графа]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Фундаментальные циклы графа]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Дерево, эквивалентные определения]]&lt;br /&gt;
* [[Алгоритмы на деревьях]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Дополнительный, самодополнительный граф]]&lt;br /&gt;
&lt;br /&gt;
== Связность в графах ==&lt;br /&gt;
* [[Отношение связности, компоненты связности]]&lt;br /&gt;
* [[Отношение реберной двусвязности]]&lt;br /&gt;
* [[Отношение вершинной двусвязности]]&lt;br /&gt;
* [[Граф компонент реберной двусвязности]]&lt;br /&gt;
* [[Граф блоков-точек сочленения]]&lt;br /&gt;
* [[Точка сочленения, эквивалентные определения]]&lt;br /&gt;
* [[Мост, эквивалентные определения]]&lt;br /&gt;
* [[k-связность]]&lt;br /&gt;
* [[Теорема Менгера]]&lt;br /&gt;
* [[Теорема Менгера, альтернативное доказательство]]&lt;br /&gt;
* [[Вершинная, реберная связность, связь между ними и минимальной степенью вершины]]&lt;br /&gt;
&lt;br /&gt;
== Остовные деревья ==&lt;br /&gt;
=== Построение остовных деревьев ===&lt;br /&gt;
* [[Остовные деревья: определения, лемма о безопасном ребре]]&lt;br /&gt;
* [[Алгоритм Прима]]&lt;br /&gt;
* [[Алгоритм Краскала]]&lt;br /&gt;
* [[Алгоритм Борувки]]&lt;br /&gt;
* [[Критерий Тарьяна минимальности остовного дерева|Теорема Тарьяна (критерий минимальности остовного дерева)]]&lt;br /&gt;
* [[Алгоритм двух китайцев]]&lt;br /&gt;
&lt;br /&gt;
=== Свойства остовных деревьев ===&lt;br /&gt;
* [[Матрица Кирхгофа]]&lt;br /&gt;
* [[Связь матрицы Кирхгофа и матрицы инцидентности]]&lt;br /&gt;
* [[Подсчет числа остовных деревьев с помощью матрицы Кирхгофа]]&lt;br /&gt;
* [[Количество помеченных деревьев]]&lt;br /&gt;
* [[Коды Прюфера]]&lt;br /&gt;
&lt;br /&gt;
== Обходы графов ==&lt;br /&gt;
=== Эйлеровы графы ===&lt;br /&gt;
* [[Эйлеров цикл, Эйлеров путь, Эйлеровы графы, Эйлеровость орграфов]]&lt;br /&gt;
* [[Покрытие ребер графа путями]]&lt;br /&gt;
* [[Алгоритм построения Эйлерова цикла]]&lt;br /&gt;
* [[Произвольно вычерчиваемые из заданной вершины графы]]&lt;br /&gt;
=== Гамильтоновы графы ===&lt;br /&gt;
* [[Гамильтоновы графы]]&lt;br /&gt;
* [[Теорема Хватала]]&lt;br /&gt;
* [[Теорема Поша]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Теорема Дирака]]&lt;br /&gt;
* [[Теорема Оре]]&lt;br /&gt;
* [[Алгоритм нахождения Гамильтонова цикла в условиях теорем Дирака и Оре]]&lt;br /&gt;
* [[Теорема Гринберга]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Турниры]]&lt;br /&gt;
* [[Теорема Редеи-Камиона]]&lt;br /&gt;
&lt;br /&gt;
== Укладки графов ==&lt;br /&gt;
* [[Укладка графа на плоскости]]&lt;br /&gt;
* [[Формула Эйлера]]&lt;br /&gt;
* [[Непланарность K5 и K3,3|Непланарность &amp;lt;tex&amp;gt;K_5&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;K_{3,3}&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[Укладка дерева]]&lt;br /&gt;
* [[Укладка графа с планарными компонентами реберной двусвязности]]&lt;br /&gt;
* [[Укладка графа с планарными компонентами вершинной двусвязности]]&lt;br /&gt;
* [[Теорема Понтрягина-Куратовского]]&lt;br /&gt;
* [[Двойственный граф планарного графа]]&lt;br /&gt;
* [[Теорема Фари]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Раскраски графов ==&lt;br /&gt;
* [[Раскраска графа]]&lt;br /&gt;
* [[Двудольные графы и раскраска в 2 цвета]]&lt;br /&gt;
* [[Хроматический многочлен]]&lt;br /&gt;
* [[Формула Зыкова]]&lt;br /&gt;
* [[Формула Уитни]]&lt;br /&gt;
* [[Теорема Брукса]]&lt;br /&gt;
* [[Верхние и нижние оценки хроматического числа]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Хроматическое число планарного графа]]&lt;br /&gt;
* [[Многочлен Татта]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Теория Рамсея]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Обход в глубину ==&lt;br /&gt;
* [[Обход в глубину, цвета вершин]]&lt;br /&gt;
* [[Лемма о белых путях]]&lt;br /&gt;
* [[Использование обхода в глубину для проверки связности]]&lt;br /&gt;
* [[Использование обхода в глубину для поиска цикла]]&lt;br /&gt;
* [[Использование обхода в глубину для топологической сортировки]]&lt;br /&gt;
* [[Использование обхода в глубину для поиска компонент сильной связности]]&lt;br /&gt;
* [[Использование обхода в глубину для поиска точек сочленения]]&lt;br /&gt;
* [[Построение компонент вершинной двусвязности]]&lt;br /&gt;
* [[Использование обхода в глубину для поиска мостов]]&lt;br /&gt;
* [[Построение компонент реберной двусвязности]]&lt;br /&gt;
&lt;br /&gt;
== Кратчайшие пути в графах ==&lt;br /&gt;
* [[Обход в ширину]]&lt;br /&gt;
* [[Алгоритм Форда-Беллмана]]&lt;br /&gt;
* [[Алгоритм Дейкстры]]&lt;br /&gt;
* [[Алгоритм Левита]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Алгоритм Флойда]]&lt;br /&gt;
* [[Алгоритм A*]] &amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Алгоритм Джонсона]]&lt;br /&gt;
* [[Эвристики для поиска кратчайших путей]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Алгоритм D*]] &amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Задача о паросочетании ==&lt;br /&gt;
* [[Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях]]&lt;br /&gt;
* [[Алгоритм Форда-Фалкерсона для поиска максимального паросочетания]]&lt;br /&gt;
* [[Алгоритм Куна для поиска максимального паросочетания]]&lt;br /&gt;
* [[Теорема Холла]]&lt;br /&gt;
* [[Связь максимального паросочетания и минимального вершинного покрытия в двудольных графах]]&lt;br /&gt;
* [[Связь вершинного покрытия и независимого множества]]&lt;br /&gt;
* [[Матрица Татта и связь с размером максимального паросочетания в двудольном графе]]&lt;br /&gt;
* [[Теорема Татта о существовании полного паросочетания]]&lt;br /&gt;
* [[Алгоритм вырезания соцветий|Паросочетания в недвудольных графах. Алгоритм вырезания соцветий]]&lt;br /&gt;
* [[Декомпозиция Эдмондса-Галлаи]]&lt;br /&gt;
* [[Задача об устойчивом паросочетании]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Задача о максимальном потоке ==&lt;br /&gt;
* [[Определение сети, потока]]&lt;br /&gt;
* [[Разрез, лемма о потоке через разрез]]&lt;br /&gt;
* [[Дополняющая сеть, дополняющий путь]]&lt;br /&gt;
* [[Лемма о сложении потоков]]&lt;br /&gt;
* [[Теорема Форда-Фалкерсона]]&lt;br /&gt;
* [[Алгоритм Форда-Фалкерсона, реализация с помощью поиска в глубину]]&lt;br /&gt;
* [[Алоритм Эдмондса-Карпа]]&lt;br /&gt;
* [[Алгоритм масштабирования потока]]&lt;br /&gt;
* [[Блокирующий поток]]&lt;br /&gt;
* [[Схема алгоритма Диница]]&lt;br /&gt;
* [[Теоремы Карзанова о числе итераций алгоритма Диница в сети с целочисленными пропускными способностями]]&lt;br /&gt;
* [[Алгоритм поиска блокирующего потока в ациклической сети]]&lt;br /&gt;
* [[Метод проталкивания предпотока]]&lt;br /&gt;
* [[Алгоритм &amp;quot;поднять-в-начало&amp;quot;]]&lt;br /&gt;
* [[Теорема о декомпозиции]]&lt;br /&gt;
* [[Теорема о декомпозиционном барьере]]&lt;br /&gt;
* [[Циркуляция потока]]&lt;br /&gt;
* [[Алгоритм Каргера для нахождения минимального разреза]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Задача о потоке минимальной стоимости ==&lt;br /&gt;
* [[Поток минимальной стоимости]]&lt;br /&gt;
* [[Теорема Форда-Фалкерсона о потоке минимальной стоимости]]&lt;br /&gt;
* [[Лемма об эквивалентности свойства потока быть минимальной стоимости и отсутствии отрицательных циклов в остаточной сети]]&lt;br /&gt;
* [[Поиск потока минимальной стоимости методом дополнения вдоль путей минимальной стоимости]]&lt;br /&gt;
* [[Использование потенциалов Джонсона при поиске потока минимальной стоимости]]&lt;br /&gt;
* [[Сведение задачи о назначениях к задаче о потоке минимальной стоимости]]&lt;br /&gt;
* [[Венгерский алгоритм решения задачи о назначениях]]&lt;br /&gt;
&lt;br /&gt;
= Четвертый семестр =&lt;br /&gt;
&lt;br /&gt;
== Основные определения. Простые комбинаторные свойства слов ==&lt;br /&gt;
* [[Основные определения, связанные со строками]]&lt;br /&gt;
* [[Период и бордер, их связь]]&lt;br /&gt;
* [[Слово Фибоначчи]]&lt;br /&gt;
* [[Слово Туэ-Морса]]&lt;br /&gt;
* [[Декомпозиция Линдона]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Алгоритм Ландау-Шмидта]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Алгоритм Крочемора]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Поиск подстроки в строке]] ==&lt;br /&gt;
* [[Наивный алгоритм поиска подстроки в строке]]&lt;br /&gt;
* [[Поиск подстроки в строке с использованием хеширования. Алгоритм Рабина-Карпа]]&lt;br /&gt;
* [[Поиск наибольшей общей подстроки двух строк с использованием хеширования]]&lt;br /&gt;
* [[Префикс-функция]]&lt;br /&gt;
* [[Алгоритм Кнута-Морриса-Пратта]]&lt;br /&gt;
* [[Алгоритм Бойера-Мура]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Алгоритм Колусси]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Z-функция]]&lt;br /&gt;
* [[Автомат для поиска образца в тексте]]&lt;br /&gt;
* [[Бор]]&lt;br /&gt;
* [[Алгоритм Ахо-Корасик]]&lt;br /&gt;
* [[Алгоритм Ландау-Вишкина (k несовпадений)]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Суффиксное дерево ==&lt;br /&gt;
* [[Суффиксный бор]]&lt;br /&gt;
* [[Сжатое суффиксное дерево]]&lt;br /&gt;
* [[Алгоритм Укконена]]&lt;br /&gt;
* [[Алгоритм МакКрейта]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Алгоритм Фарача]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Суффиксный массив ==&lt;br /&gt;
* [[Суффиксный массив]]&lt;br /&gt;
* [[Построение суффиксного массива с помощью стандартных методов сортировки]]&lt;br /&gt;
* [[Алгоритм цифровой сортировки суффиксов циклической строки]]&lt;br /&gt;
* [[Алгоритм Касаи и др.]]&lt;br /&gt;
* [[Алгоритм Карккайнена-Сандерса]]&lt;br /&gt;
* [[Алгоритм поиска подстроки в строке с помощью суффиксного массива]]&lt;br /&gt;
&lt;br /&gt;
== Задача о наименьшем общем предке ==&lt;br /&gt;
* [[Метод двоичного подъема]]&lt;br /&gt;
* [[Сведение задачи LCA к задаче RMQ]]&lt;br /&gt;
* [[Решение RMQ с помощью разреженной таблицы]]&lt;br /&gt;
* [[Алгоритм Фарака-Колтона и Бендера]] (решение +/-1 RMQ с помощью метода четырех русских)&lt;br /&gt;
* [[Алгоритм Шибера-Вишкина]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Сведение задачи RMQ к задаче LCA]]&lt;br /&gt;
* [[Алгоритм Тарьяна поиска LCA за O(1) в оффлайн]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
* [[Link-Cut Tree]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Матроиды ==&lt;br /&gt;
=== Основные факты теории матроидов ===&lt;br /&gt;
* [[Определение матроида]]&lt;br /&gt;
* [[Примеры матроидов]]&lt;br /&gt;
* [[Прямая сумма матроидов]]&lt;br /&gt;
* [[Теорема Радо-Эдмондса (жадный алгоритм)]]&lt;br /&gt;
* [[Теорема о базах]]&lt;br /&gt;
* [[Аксиоматизация матроида базами]]&lt;br /&gt;
* [[Теорема о циклах]]&lt;br /&gt;
* [[Аксиоматизация матроида циклами]]&lt;br /&gt;
* [[Ранговая функция, полумодулярность]]&lt;br /&gt;
* [[Двойственный матроид]]&lt;br /&gt;
* [[Оператор замыкания для матроидов]]&lt;br /&gt;
* [[Покрытия, закрытые множества]]&lt;br /&gt;
* [[Матроид Вамоса]]&amp;lt;tex&amp;gt;^\star&amp;lt;/tex&amp;gt;&lt;br /&gt;
=== Пересечение матроидов ===&lt;br /&gt;
* [[Пересечение матроидов, определение, примеры]]&lt;br /&gt;
* [[Лемма о паросочетании в графе замен]]&lt;br /&gt;
* [[Лемма о единственном паросочетании в графе замен]]&lt;br /&gt;
* [[Граф замен для двух матроидов]]&lt;br /&gt;
* [[Лемма о единственном паросочетании в подграфе замен, индуцированном кратчайшим путем]]&lt;br /&gt;
* [[Алгоритм построения базы в пересечении матроидов]]&lt;br /&gt;
* [[Теорема Эдмондса-Лоулера]]&lt;br /&gt;
=== Объединение матроидов ===&lt;br /&gt;
* [[Объединение матроидов, проверка множества на независимость]]&lt;br /&gt;
* [[Объединение матроидов, доказательство того, что объединение является матроидом]]&lt;br /&gt;
* [[Алгоритм построения базы в объединении матроидов]]&lt;br /&gt;
&lt;br /&gt;
== Теория расписаний ==&lt;br /&gt;
* [[Классификация задач]]&lt;br /&gt;
* [[Методы решения задач теории расписаний]]&lt;br /&gt;
* [[Правило Лаулера]]&lt;br /&gt;
* [[Flow shop]]&lt;br /&gt;
* [[P1sumu|&amp;lt;tex&amp;gt;1 \mid \mid \sum U_{i}&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[1ripi1sumwc|&amp;lt;tex&amp;gt;1 \mid r_{i}, p_i=1\mid \sum w_{i}C_{i}&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[1ridipi1|&amp;lt;tex&amp;gt;1 \mid r_{i}, d_{i}, p_{i} = 1 \mid -&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[1outtreesumwc | &amp;lt;tex&amp;gt;1 \mid outtree \mid \sum w_i C_i&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[1pi1sumwu|&amp;lt;tex&amp;gt;1 \mid p_{i} = 1 \mid \sum w_{i}U_{i}&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[1precpmtnrifmax|&amp;lt;tex&amp;gt;1 \mid prec, pmtn, r_i \mid f_{\max}&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[1precripi1Lmax|&amp;lt;tex&amp;gt;1 \mid prec; r_i; p_i = 1 \mid L_{max}&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[P2precpi1Lmax|&amp;lt;tex&amp;gt;P2 \mid prec, p_i = 1 \mid L_{\max}&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[PpmtnriLmax|&amp;lt;tex&amp;gt;P \mid pmtn, r_i \mid L_{max}&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[QpmtnCmax|&amp;lt;tex&amp;gt;Q \mid pmtn \mid C_{max}&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[QpmtnriLmax|&amp;lt;tex&amp;gt;Q \mid pmtn, r_{i} \mid L_{max}&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[QSumCi|&amp;lt;tex&amp;gt;Q\mid\mid\sum{C_i}&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[R2Cmax|&amp;lt;tex&amp;gt;R2 \mid \mid C_{max}&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[F2Cmax|&amp;lt;tex&amp;gt;F2 \mid \mid C_{max}&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[Fpij1sumwu|&amp;lt;tex&amp;gt;F \mid p_{ij} = 1 \mid \sum w_i U_i&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[O2Cmax|&amp;lt;tex&amp;gt;O2 \mid \mid C_{max}&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[Opi1sumu|&amp;lt;tex&amp;gt;O \mid p_{ij} = 1 \mid \sum U_i&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[J2ni2Cmax|&amp;lt;tex&amp;gt;J2 \mid n_{i} \le 2 \mid C_{max}&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
* [[J2pij1Lmax| &amp;lt;tex&amp;gt;J2\mid p_{ij} = 1\mid L_{max}&amp;lt;/tex&amp;gt;]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44257</id>
		<title>Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44257"/>
				<updated>2015-01-12T09:59:18Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Источники */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Паросочетание в двудольном графе==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=matching_def&lt;br /&gt;
|definition= '''Паросочетание''' (англ. ''matсhing'') &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе — произвольное множество ребер двудольного графа, такое что никакие два ребра не имеют общей вершины.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Вершины двудольного графа, инцидентные ребрам паросочетания &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, называются '''покрытыми''' (англ. ''matched''), а неинцидентные — '''свободными''' (англ. ''unmatched'').}} &lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Числом реберного покрытия''' (англ. ''edge covering number'') называется размер минимального реберного покрытии графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и обозначается через &amp;lt;tex&amp;gt;\rho(G)&amp;lt;/tex&amp;gt;.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Число ребер в наибольшем паросочетании графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется '''числом паросочетания''' (англ. ''matching number'').}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Максимальное паросочетание''' (англ. ''maximal matching'') — это такое паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, которое не содержится ни в каком другом паросочетании этого графа, то есть к нему невозможно добавить ни одно ребро, которое бы являлось несмежным ко всем ребрам паросочетания.}}&lt;br /&gt;
Другими словами, паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; является максимальным, если любое ребро в &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; имеет непустое пересечение по крайней мере с одним ребром из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется '''совершенным (или полным)''' (англ.''perfect matching''), если оно покрывает все вершины графа.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Чередующаяся цепь''' (англ. ''alternating path'') — путь в двудольном графе, для любых двух соседних ребер которого верно, что одно из них принадлежит паросочетанию &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, а другое нет.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Дополняющая цепь (или увеличивающая цепь)''' (англ. ''augmenting path'') — чередующаяся цепь, у которой оба конца свободны.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Уменьшающая цепь''' (англ. ''reduce path'') — чередующаяся цепь, у которой оба конца покрыты.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Сбалансированная цепь''' (англ. ''balanced path'') — чередующаяся цепь, у которой один конец свободен, а другой покрыт.}}&lt;br /&gt;
&lt;br /&gt;
== Свойства ==&lt;br /&gt;
&lt;br /&gt;
В любом графе без изолированных вершин, число паросочетания и число рёберного покрытия в сумме дают число вершин. Если существует совершенное паросочетание, то оба числа равны &amp;lt;tex&amp;gt;|V|/2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Пример максимального паросочетания ==&lt;br /&gt;
&lt;br /&gt;
[[Файл: Maximal matching.jpg|thumb|210px|center|&amp;lt;font color=red&amp;gt;красные ребра&amp;lt;/font&amp;gt; являются ребрами максимального паросочетания]]&lt;br /&gt;
&lt;br /&gt;
== Теорема о максимальном паросочетании и дополняющих цепях ==&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=theorem1&lt;br /&gt;
|statement=&lt;br /&gt;
Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; является максимальным тогда и только тогда, когда в &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; нет дополняющей цепи.&lt;br /&gt;
|proof=&lt;br /&gt;
&amp;lt;tex&amp;gt;\Rightarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с максимальным паросочетанием &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; существует дополняющая цепь. Тогда пройдя по ней и заменив вдоль нее все ребра, входящие в паросочетание, на невходящие и наоборот, мы получим большее паросочетание. То есть &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; не являлось максимальным. Противоречие.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Leftarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и предположим, что &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; {{---}} не наибольшее. Докажем, что тогда имеется увеличивающая цепь относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; {{---}} другое паросочетание и &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;. Рассмотрим подграф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, образованный теми ребрами, которые входят в одно и только в одно из паросочетаний &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Иначе говоря, множеством ребер графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; является симметрическая разность &amp;lt;tex&amp;gt;M\oplus M'&amp;lt;/tex&amp;gt;. В графе &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; каждая вершина инцидентна не более чем двум ребрам (одному из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и одному из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; ), т.е. имеет степень не более двух. В таком графе каждая компонента связности {{---}} путь или цикл. В каждом из этих путей и циклов чередуются ребра из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;, имеется компонента, в которой ребер из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; содержится больше, чем ребер из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Это может быть только путь, у которого оба концевых ребра принадлежат &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Заметим, что относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; этот путь является увеличивающей (дополняющей) цепью.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Matching_%28graph_theory%29 Wikipedia {{---}} Matching]&lt;br /&gt;
* [https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B5 Википедия {{---}} Паросочетание]&lt;br /&gt;
*  Асанов М. О., Баранский В. А., Расин В. В. — Дискретная математика: Графы, матроиды, алгоритмы. стр. 227-232 '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Задача о паросочетании]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44255</id>
		<title>Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44255"/>
				<updated>2015-01-12T09:54:04Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Паросочетание в двудольном графе==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=matching_def&lt;br /&gt;
|definition= '''Паросочетание''' (англ. ''matсhing'') &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе — произвольное множество ребер двудольного графа, такое что никакие два ребра не имеют общей вершины.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Вершины двудольного графа, инцидентные ребрам паросочетания &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, называются '''покрытыми''' (англ. ''matched''), а неинцидентные — '''свободными''' (англ. ''unmatched'').}} &lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Числом реберного покрытия''' (англ. ''edge covering number'') называется размер минимального реберного покрытии графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и обозначается через &amp;lt;tex&amp;gt;\rho(G)&amp;lt;/tex&amp;gt;.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Число ребер в наибольшем паросочетании графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется '''числом паросочетания''' (англ. ''matching number'').}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Максимальное паросочетание''' (англ. ''maximal matching'') — это такое паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, которое не содержится ни в каком другом паросочетании этого графа, то есть к нему невозможно добавить ни одно ребро, которое бы являлось несмежным ко всем ребрам паросочетания.}}&lt;br /&gt;
Другими словами, паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; является максимальным, если любое ребро в &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; имеет непустое пересечение по крайней мере с одним ребром из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется '''совершенным (или полным)''' (англ.''perfect matching''), если оно покрывает все вершины графа.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Чередующаяся цепь''' (англ. ''alternating path'') — путь в двудольном графе, для любых двух соседних ребер которого верно, что одно из них принадлежит паросочетанию &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, а другое нет.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Дополняющая цепь (или увеличивающая цепь)''' (англ. ''augmenting path'') — чередующаяся цепь, у которой оба конца свободны.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Уменьшающая цепь''' (англ. ''reduce path'') — чередующаяся цепь, у которой оба конца покрыты.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Сбалансированная цепь''' (англ. ''balanced path'') — чередующаяся цепь, у которой один конец свободен, а другой покрыт.}}&lt;br /&gt;
&lt;br /&gt;
== Свойства ==&lt;br /&gt;
&lt;br /&gt;
В любом графе без изолированных вершин, число паросочетания и число рёберного покрытия в сумме дают число вершин. Если существует совершенное паросочетание, то оба числа равны &amp;lt;tex&amp;gt;|V|/2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Пример максимального паросочетания ==&lt;br /&gt;
&lt;br /&gt;
[[Файл: Maximal matching.jpg|thumb|210px|center|&amp;lt;font color=red&amp;gt;красные ребра&amp;lt;/font&amp;gt; являются ребрами максимального паросочетания]]&lt;br /&gt;
&lt;br /&gt;
== Теорема о максимальном паросочетании и дополняющих цепях ==&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=theorem1&lt;br /&gt;
|statement=&lt;br /&gt;
Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; является максимальным тогда и только тогда, когда в &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; нет дополняющей цепи.&lt;br /&gt;
|proof=&lt;br /&gt;
&amp;lt;tex&amp;gt;\Rightarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с максимальным паросочетанием &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; существует дополняющая цепь. Тогда пройдя по ней и заменив вдоль нее все ребра, входящие в паросочетание, на невходящие и наоборот, мы получим большее паросочетание. То есть &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; не являлось максимальным. Противоречие.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Leftarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и предположим, что &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; {{---}} не наибольшее. Докажем, что тогда имеется увеличивающая цепь относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; {{---}} другое паросочетание и &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;. Рассмотрим подграф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, образованный теми ребрами, которые входят в одно и только в одно из паросочетаний &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Иначе говоря, множеством ребер графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; является симметрическая разность &amp;lt;tex&amp;gt;M\oplus M'&amp;lt;/tex&amp;gt;. В графе &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; каждая вершина инцидентна не более чем двум ребрам (одному из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и одному из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; ), т.е. имеет степень не более двух. В таком графе каждая компонента связности {{---}} путь или цикл. В каждом из этих путей и циклов чередуются ребра из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;, имеется компонента, в которой ребер из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; содержится больше, чем ребер из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Это может быть только путь, у которого оба концевых ребра принадлежат &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Заметим, что относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; этот путь является увеличивающей (дополняющей) цепью.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Источники==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Matching_%28graph_theory%29 Wikipedia {{---}} Matching]&lt;br /&gt;
* [https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B5 Википедия {{---}} Паросочетание]&lt;br /&gt;
*  Асанов М. О., Баранский В. А., Расин В. В. — Дискретная математика: Графы, матроиды, алгоритмы. стр. 227-232 '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Задача о паросочетании]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Maximal_matching.jpg&amp;diff=44254</id>
		<title>Файл:Maximal matching.jpg</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Maximal_matching.jpg&amp;diff=44254"/>
				<updated>2015-01-12T09:34:58Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44230</id>
		<title>Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44230"/>
				<updated>2015-01-11T23:32:58Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: переименовал Теорема о максимальном паросочетании и дополняющих цепях в [[Паросочетания: основные определения, теорема о максимальном...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Паросочетание в двудольном графе==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=matching_def&lt;br /&gt;
|definition= '''Паросочетание''' (англ. ''matсhing'') &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе — произвольное множество ребер двудольного графа, такое что никакие два ребра не имеют общей вершины.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Вершины двудольного графа, инцидентные ребрам паросочетания &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, называются '''покрытыми''' (англ. ''matched''), а неинцидентные — '''свободными''' (англ. ''unmatched'').}} &lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Число вершин в наименьшем покрытии графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется '''числом покрытия (или числом вершинного покрытия)''' (англ. ''edge covering number'') графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и обозначается через &amp;lt;tex&amp;gt;\rho(G)&amp;lt;/tex&amp;gt;.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Число ребер в наибольшем паросочетании графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется '''числом паросочетания''' (англ. ''matching number'').}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Максимальное паросочетание''' (англ. ''maximal matching'') — это такое паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, которое не содержится ни в каком другом паросочетании этого графа, то есть к нему невозможно добавить ни одно ребро, которое бы являлось несмежным ко всем ребрам паросочетания.}}&lt;br /&gt;
Другими словами, паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; является максимальным, если любое ребро в &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; имеет непустое пересечение по крайней мере с одним ребром из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется '''совершенным (или полным)''' (англ.''perfect matching''), если оно покрывает все вершины графа.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Чередующаяся цепь''' (англ. ''alternating path'') — путь в двудольном графе, для любых двух соседних ребер которого верно, что одно из них принадлежит паросочетанию &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, а другое нет.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Дополняющая цепь (или увеличивающая цепь)''' (англ. ''augmenting path'') — чередующаяся цепь, у которой оба конца свободны.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Уменьшающая цепь''' (англ. ''reduce path'') — чередующаяся цепь, у которой оба конца покрыты.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Сбалансированная цепь''' (англ. ''balanced path'') — чередующаяся цепь, у которой один конец свободен, а другой покрыт.}}&lt;br /&gt;
&lt;br /&gt;
== Свойства ==&lt;br /&gt;
&lt;br /&gt;
В любом графе без изолированных вершин, число паросочетания и число рёберного покрытия в сумме дают число вершин. Если существует совершенное паросочетание, то оба числа равны &amp;lt;tex&amp;gt;|V|/2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Теорема о максимальном паросочетании и дополняющих цепях ==&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=theorem1&lt;br /&gt;
|statement=&lt;br /&gt;
Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; является максимальным тогда и только тогда, когда в &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; нет дополняющей цепи.&lt;br /&gt;
|proof=&lt;br /&gt;
&amp;lt;tex&amp;gt;\Rightarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с максимальным паросочетанием &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; существует дополняющая цепь. Тогда пройдя по ней и заменив вдоль нее все ребра, входящие в паросочетание, на невходящие и наоборот, мы получим большее паросочетание. То есть &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; не являлось максимальным. Противоречие.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Leftarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и предположим, что &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; {{---}} не наибольшее. Докажем, что тогда имеется увеличивающая цепь относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; {{---}} другое паросочетание и &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;. Рассмотрим подграф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, образованный теми ребрами, которые входят в одно и только в одно из паросочетаний &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Иначе говоря, множеством ребер графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; является симметрическая разность &amp;lt;tex&amp;gt;M\oplus M'&amp;lt;/tex&amp;gt;. В графе &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; каждая вершина инцидентна не более чем двум ребрам (одному из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и одному из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; ), т.е. имеет степень не более двух. В таком графе каждая компонента связности {{---}} путь или цикл. В каждом из этих путей и циклов чередуются ребра из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;, имеется компонента, в которой ребер из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; содержится больше, чем ребер из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Это может быть только путь, у которого оба концевых ребра принадлежат &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Заметим, что относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; этот путь является увеличивающей (дополняющей) цепью.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Источники==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Matching_%28graph_theory%29 Wikipedia {{---}} Matching]&lt;br /&gt;
* [https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B5 Википедия {{---}} Паросочетание]&lt;br /&gt;
*  Асанов М. О., Баранский В. А., Расин В. В. — Дискретная математика: Графы, матроиды, алгоритмы. стр. 227-232 '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Задача о паросочетании]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44231</id>
		<title>Теорема о максимальном паросочетании и дополняющих цепях</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44231"/>
				<updated>2015-01-11T23:32:58Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: переименовал Теорема о максимальном паросочетании и дополняющих цепях в [[Паросочетания: основные определения, теорема о максимальном...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44232</id>
		<title>Обсуждение:Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44232"/>
				<updated>2015-01-11T23:32:58Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: переименовал Обсуждение:Теорема о максимальном паросочетании и дополняющих цепях в [[Обсуждение:Паросочетания: основные определения, ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Вопрос ==&lt;br /&gt;
Почему отменили правку, убирающую 3 лишних определения перед доказательством? ИМХО, надо её вернуть. [[Участник:Nikita.Ofitserov|Nikita.Ofitserov]] 15:19, 25 января 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44233</id>
		<title>Обсуждение:Теорема о максимальном паросочетании и дополняющих цепях</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44233"/>
				<updated>2015-01-11T23:32:58Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: переименовал Обсуждение:Теорема о максимальном паросочетании и дополняющих цепях в [[Обсуждение:Паросочетания: основные определения, ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Обсуждение:Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44218</id>
		<title>Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44218"/>
				<updated>2015-01-11T21:54:35Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Паросочетание в двудольном графе */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Паросочетание в двудольном графе==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=matching_def&lt;br /&gt;
|definition= '''Паросочетание''' (англ. ''matсhing'') &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе — произвольное множество ребер двудольного графа, такое что никакие два ребра не имеют общей вершины.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Вершины двудольного графа, инцидентные ребрам паросочетания &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, называются '''покрытыми''' (англ. ''matched''), а неинцидентные — '''свободными''' (англ. ''unmatched'').}} &lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Число вершин в наименьшем покрытии графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется '''числом покрытия (или числом вершинного покрытия)''' (англ. ''edge covering number'') графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и обозначается через &amp;lt;tex&amp;gt;\rho(G)&amp;lt;/tex&amp;gt;.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Число ребер в наибольшем паросочетании графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется '''числом паросочетания''' (англ. ''matching number'').}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Максимальное паросочетание''' (англ. ''maximal matching'') — это такое паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, которое не содержится ни в каком другом паросочетании этого графа, то есть к нему невозможно добавить ни одно ребро, которое бы являлось несмежным ко всем ребрам паросочетания.}}&lt;br /&gt;
Другими словами, паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; является максимальным, если любое ребро в &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; имеет непустое пересечение по крайней мере с одним ребром из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется '''совершенным (или полным)''' (англ.''perfect matching''), если оно покрывает все вершины графа.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Чередующаяся цепь''' (англ. ''alternating path'') — путь в двудольном графе, для любых двух соседних ребер которого верно, что одно из них принадлежит паросочетанию &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, а другое нет.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Дополняющая цепь (или увеличивающая цепь)''' (англ. ''augmenting path'') — чередующаяся цепь, у которой оба конца свободны.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Уменьшающая цепь''' (англ. ''reduce path'') — чередующаяся цепь, у которой оба конца покрыты.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Сбалансированная цепь''' (англ. ''balanced path'') — чередующаяся цепь, у которой один конец свободен, а другой покрыт.}}&lt;br /&gt;
&lt;br /&gt;
== Свойства ==&lt;br /&gt;
&lt;br /&gt;
В любом графе без изолированных вершин, число паросочетания и число рёберного покрытия в сумме дают число вершин. Если существует совершенное паросочетание, то оба числа равны &amp;lt;tex&amp;gt;|V|/2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Теорема о максимальном паросочетании и дополняющих цепях ==&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=theorem1&lt;br /&gt;
|statement=&lt;br /&gt;
Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; является максимальным тогда и только тогда, когда в &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; нет дополняющей цепи.&lt;br /&gt;
|proof=&lt;br /&gt;
&amp;lt;tex&amp;gt;\Rightarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с максимальным паросочетанием &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; существует дополняющая цепь. Тогда пройдя по ней и заменив вдоль нее все ребра, входящие в паросочетание, на невходящие и наоборот, мы получим большее паросочетание. То есть &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; не являлось максимальным. Противоречие.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Leftarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и предположим, что &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; {{---}} не наибольшее. Докажем, что тогда имеется увеличивающая цепь относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; {{---}} другое паросочетание и &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;. Рассмотрим подграф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, образованный теми ребрами, которые входят в одно и только в одно из паросочетаний &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Иначе говоря, множеством ребер графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; является симметрическая разность &amp;lt;tex&amp;gt;M\oplus M'&amp;lt;/tex&amp;gt;. В графе &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; каждая вершина инцидентна не более чем двум ребрам (одному из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и одному из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; ), т.е. имеет степень не более двух. В таком графе каждая компонента связности {{---}} путь или цикл. В каждом из этих путей и циклов чередуются ребра из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;, имеется компонента, в которой ребер из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; содержится больше, чем ребер из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Это может быть только путь, у которого оба концевых ребра принадлежат &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Заметим, что относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; этот путь является увеличивающей (дополняющей) цепью.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Источники==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Matching_%28graph_theory%29 Wikipedia {{---}} Matching]&lt;br /&gt;
* [https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B5 Википедия {{---}} Паросочетание]&lt;br /&gt;
*  Асанов М. О., Баранский В. А., Расин В. В. — Дискретная математика: Графы, матроиды, алгоритмы. стр. 227-232 '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Задача о паросочетании]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44216</id>
		<title>Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44216"/>
				<updated>2015-01-11T21:53:32Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Паросочетание в двудольном графе */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Паросочетание в двудольном графе==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=matching_def&lt;br /&gt;
|definition= '''Паросочетание''' (англ. ''matсhing'') &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе — произвольное множество ребер двудольного графа, такое что никакие два ребра не имеют общей вершины.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Вершины двудольного графа, инцидентные ребрам паросочетания &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, называются '''покрытыми''' (англ. ''matched''), а неинцидентные — '''свободными''' (англ. ''unmatched'').}} &lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Число вершин в наименьшем покрытии графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется '''числом покрытия (или числом вершинного покрытия)''' (англ. ''edge covering number'') графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и обозначается через &amp;lt;tex&amp;gt;\rho(G)&amp;lt;/tex&amp;gt;.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Число ребер в наибольшем паросочетании графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется '''числом паросочетания''' (англ. ''matching number'').}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Максимальное паросочетание''' (англ. ''maximal matching'') — это такое паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, которое не содержится ни в каком другом паросочетании этого графа, то есть к нему невозможно добавить ни одно ребро, которое бы являлось несмежным ко всем ребрам паросочетания.}}&lt;br /&gt;
Другими словами, паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; является максимальным, если любое ребро в &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; имеет непустое пересечение по крайней мере с одним ребром из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|definition= Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется '''совершенным (или полным)''' (англ.''perfect matching''), если оно покрывает все вершины графа.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Чередующаяся цепь''' (англ. ''alternating path'') — путь в двудольном графе, для любых двух соседних ребер которого верно, что одно из них принадлежит паросочетанию &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, а другое нет.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Дополняющая цепь (или увеличивающая цепь)''' (англ. ''augmenting path'') — чередующаяся цепь, у которой оба конца свободны.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Уменьшающая цепь''' (англ. ''reduce path'') — чередующаяся цепь, у которой оба конца покрыты.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Сбалансированная цепь''' (англ. ''balanced path'') — чередующаяся цепь, у которой один конец свободен, а другой покрыт.}}&lt;br /&gt;
&lt;br /&gt;
== Свойства ==&lt;br /&gt;
&lt;br /&gt;
В любом графе без изолированных вершин, число паросочетания и число рёберного покрытия в сумме дают число вершин. Если существует совершенное паросочетание, то оба числа равны &amp;lt;tex&amp;gt;|V|/2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Теорема о максимальном паросочетании и дополняющих цепях ==&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=theorem1&lt;br /&gt;
|statement=&lt;br /&gt;
Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; является максимальным тогда и только тогда, когда в &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; нет дополняющей цепи.&lt;br /&gt;
|proof=&lt;br /&gt;
&amp;lt;tex&amp;gt;\Rightarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с максимальным паросочетанием &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; существует дополняющая цепь. Тогда пройдя по ней и заменив вдоль нее все ребра, входящие в паросочетание, на невходящие и наоборот, мы получим большее паросочетание. То есть &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; не являлось максимальным. Противоречие.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Leftarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и предположим, что &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; {{---}} не наибольшее. Докажем, что тогда имеется увеличивающая цепь относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; {{---}} другое паросочетание и &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;. Рассмотрим подграф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, образованный теми ребрами, которые входят в одно и только в одно из паросочетаний &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Иначе говоря, множеством ребер графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; является симметрическая разность &amp;lt;tex&amp;gt;M\oplus M'&amp;lt;/tex&amp;gt;. В графе &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; каждая вершина инцидентна не более чем двум ребрам (одному из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и одному из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; ), т.е. имеет степень не более двух. В таком графе каждая компонента связности {{---}} путь или цикл. В каждом из этих путей и циклов чередуются ребра из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;, имеется компонента, в которой ребер из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; содержится больше, чем ребер из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Это может быть только путь, у которого оба концевых ребра принадлежат &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Заметим, что относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; этот путь является увеличивающей (дополняющей) цепью.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Источники==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Matching_%28graph_theory%29 Wikipedia {{---}} Matching]&lt;br /&gt;
* [https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B5 Википедия {{---}} Паросочетание]&lt;br /&gt;
*  Асанов М. О., Баранский В. А., Расин В. В. — Дискретная математика: Графы, матроиды, алгоритмы. стр. 227-232 '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Задача о паросочетании]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44211</id>
		<title>Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44211"/>
				<updated>2015-01-11T21:25:17Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Паросочетание в двудольном графе==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=matching_def&lt;br /&gt;
|definition= '''Паросочетание''' (англ. ''matсhing'') &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе — произвольное множество ребер двудольного графа, такое что никакие два ребра не имеют общей вершины.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Вершины двудольного графа, инцидентные ребрам паросочетания &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, называются '''покрытыми''' (англ. ''matched''), а неинцидентные — '''свободными''' (англ. ''unmatched'').}} &lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется '''совершенным (или полным)''' (англ.''perfect matching''), если оно покрывает все вершины графа.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Чередующаяся цепь''' (англ. ''alternating path'') — путь в двудольном графе, для любых двух соседних ребер которого верно, что одно из них принадлежит паросочетанию &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, а другое нет.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Дополняющая цепь (или увеличивающая цепь)''' (англ. ''augmenting path'') — чередующаяся цепь, у которой оба конца свободны.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Уменьшающая цепь''' (англ. ''reduce path'') — чередующаяся цепь, у которой оба конца покрыты.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Сбалансированная цепь''' (англ. ''balanced path'') — чередующаяся цепь, у которой один конец свободен, а другой покрыт.}}&lt;br /&gt;
&lt;br /&gt;
== Свойства ==&lt;br /&gt;
&lt;br /&gt;
В любом графе без изолированных вершин, число паросочетания и число рёберного покрытия в сумме дают число вершин. Если существует совершенное паросочетание, то оба числа равны &amp;lt;tex&amp;gt;|V|/2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Теорема о максимальном паросочетании и дополняющих цепях ==&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=theorem1&lt;br /&gt;
|statement=&lt;br /&gt;
Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; является максимальным тогда и только тогда, когда в &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; нет дополняющей цепи.&lt;br /&gt;
|proof=&lt;br /&gt;
&amp;lt;tex&amp;gt;\Rightarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с максимальным паросочетанием &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; существует дополняющая цепь. Тогда пройдя по ней и заменив вдоль нее все ребра, входящие в паросочетание, на невходящие и наоборот, мы получим большее паросочетание. То есть &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; не являлось максимальным. Противоречие.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Leftarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и предположим, что &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; {{---}} не наибольшее. Докажем, что тогда имеется увеличивающая цепь относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; {{---}} другое паросочетание и &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;. Рассмотрим подграф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, образованный теми ребрами, которые входят в одно и только в одно из паросочетаний &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Иначе говоря, множеством ребер графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; является симметрическая разность &amp;lt;tex&amp;gt;M\oplus M'&amp;lt;/tex&amp;gt;. В графе &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; каждая вершина инцидентна не более чем двум ребрам (одному из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и одному из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; ), т.е. имеет степень не более двух. В таком графе каждая компонента связности {{---}} путь или цикл. В каждом из этих путей и циклов чередуются ребра из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;, имеется компонента, в которой ребер из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; содержится больше, чем ребер из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Это может быть только путь, у которого оба концевых ребра принадлежат &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Заметим, что относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; этот путь является увеличивающей (дополняющей) цепью.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Источники==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Matching_%28graph_theory%29 Wikipedia {{---}} Matching]&lt;br /&gt;
* [https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B5 Википедия {{---}} Паросочетание]&lt;br /&gt;
*  Асанов М. О., Баранский В. А., Расин В. В. — Дискретная математика: Графы, матроиды, алгоритмы. стр. 227-232 '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Задача о паросочетании]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44191</id>
		<title>Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44191"/>
				<updated>2015-01-11T19:10:40Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Паросочетание в двудольном графе==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=matching_def&lt;br /&gt;
|definition= '''Паросочетание''' (англ. ''mathing'') &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе — произвольное множество ребер двудольного графа, такое что никакие два ребра не имеют общей вершины.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Вершины двудольного графа, инцидентные ребрам паросочетания &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, называются '''покрытыми''', а неинцидентные — '''свободными'''.}} &lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется '''полным''', если оно покрывает все вершины графа.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Чередующаяся цепь''' — путь в двудольном графе, для любых двух соседних ребер которого верно, что одно из них принадлежит паросочетанию &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, а другое нет.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Дополняющая цепь (или увеличивающая цепь)''' — чередующаяся цепь, у которой оба конца свободны.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Уменьшающая цепь''' — чередующаяся цепь, у которой оба конца покрыты.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Сбалансированная цепь''' — чередующаяся цепь, у которой один конец свободен, а другой покрыт.}}&lt;br /&gt;
&lt;br /&gt;
== Свойства ==&lt;br /&gt;
&lt;br /&gt;
В любом графе без изолированных вершин, число паросочетания и число рёберного покрытия в сумме дают число вершин. Если существует совершенное паросочетание, то оба числа равны &amp;lt;tex&amp;gt;|V|&amp;lt;/tex&amp;gt; / 2.&lt;br /&gt;
&lt;br /&gt;
== Теорема о максимальном паросочетании и дополняющих цепях ==&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=theorem1&lt;br /&gt;
|statement=&lt;br /&gt;
Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; является максимальным тогда и только тогда, когда в &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; нет дополняющей цепи.&lt;br /&gt;
|proof=&lt;br /&gt;
&amp;lt;tex&amp;gt;\Rightarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с максимальным паросочетанием &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; существует дополняющая цепь. Тогда пройдя по ней и заменив вдоль нее все ребра, входящие в паросочетание, на невходящие и наоборот, мы получим большее паросочетание. То есть &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; не являлось максимальным. Противоречие.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Leftarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и предположим, что &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; - не наибольшее. Докажем, что тогда имеется увеличивающая цепь относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; - другое паросочетание и &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;. Рассмотрим подграф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, образованный теми ребрами, которые входят в одно и только в одно из паросочетаний &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Иначе говоря, множеством ребер графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; является симметрическая разность &amp;lt;tex&amp;gt;M\oplus M'&amp;lt;/tex&amp;gt;. В графе &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; каждая вершина инцидентна не более чем двум ребрам (одному из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и одному из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; ), т.е. имеет степень не более двух. В таком графе каждая компонента связности - путь или цикл. В каждом из этих путей и циклов чередуются ребра из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;, имеется компонента, в которой ребер из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; содержится больше, чем ребер из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Это может быть только путь, у которого оба концевых ребра принадлежат &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Заметим, что относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; этот путь является увеличивающей (дополняющей) цепью.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Источники==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Matching_%28graph_theory%29 wikipedia.org — Matching (graph theory)]&lt;br /&gt;
*  Асанов М. О., Баранский В. А., Расин В. В. — Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Задача о паросочетании]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44189</id>
		<title>Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44189"/>
				<updated>2015-01-11T18:55:57Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Литература */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Паросочетание в двудольном графе==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=matching_def&lt;br /&gt;
|definition= '''Паросочетание''' (англ. ''mathing'') &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе — произвольное множество ребер двудольного графа, такое что никакие два ребра не имеют общей вершины.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Вершины двудольного графа, инцидентные ребрам паросочетания &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, называются '''покрытыми''', а неинцидентные — '''свободными'''.}} &lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется '''полным''', если оно покрывает все вершины графа.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Чередующаяся цепь''' — путь в двудольном графе, для любых двух соседних ребер которого верно, что одно из них принадлежит паросочетанию &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, а другое нет.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Дополняющая цепь (или увеличивающая цепь)''' — чередующаяся цепь, у которой оба конца свободны.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Уменьшающая цепь''' — чередующаяся цепь, у которой оба конца покрыты.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Сбалансированная цепь''' — чередующаяся цепь, у которой один конец свободен, а другой покрыт.}}&lt;br /&gt;
&lt;br /&gt;
== Теорема о максимальном паросочетании и дополняющих цепях ==&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=theorem1&lt;br /&gt;
|statement=&lt;br /&gt;
Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; является максимальным тогда и только тогда, когда в &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; нет дополняющей цепи.&lt;br /&gt;
|proof=&lt;br /&gt;
&amp;lt;tex&amp;gt;\Rightarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с максимальным паросочетанием &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; существует дополняющая цепь. Тогда пройдя по ней и заменив вдоль нее все ребра, входящие в паросочетание, на невходящие и наоборот, мы получим большее паросочетание. То есть &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; не являлось максимальным. Противоречие.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Leftarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и предположим, что &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; - не наибольшее. Докажем, что тогда имеется увеличивающая цепь относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; - другое паросочетание и &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;. Рассмотрим подграф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, образованный теми ребрами, которые входят в одно и только в одно из паросочетаний &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Иначе говоря, множеством ребер графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; является симметрическая разность &amp;lt;tex&amp;gt;M\oplus M'&amp;lt;/tex&amp;gt;. В графе &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; каждая вершина инцидентна не более чем двум ребрам (одному из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и одному из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; ), т.е. имеет степень не более двух. В таком графе каждая компонента связности - путь или цикл. В каждом из этих путей и циклов чередуются ребра из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;, имеется компонента, в которой ребер из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; содержится больше, чем ребер из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Это может быть только путь, у которого оба концевых ребра принадлежат &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Заметим, что относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; этот путь является увеличивающей (дополняющей) цепью.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Источники==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Matching_%28graph_theory%29 wikipedia.org — Matching (graph theory)]&lt;br /&gt;
*  Асанов М. О., Баранский В. А., Расин В. В. — Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Задача о паросочетании]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44182</id>
		<title>Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=44182"/>
				<updated>2015-01-11T17:37:55Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Паросочетание в двудольном графе */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Паросочетание в двудольном графе==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=matching_def&lt;br /&gt;
|definition= '''Паросочетание''' (англ. ''mathing'') &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе — произвольное множество ребер двудольного графа, такое что никакие два ребра не имеют общей вершины.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Вершины двудольного графа, инцидентные ребрам паросочетания &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, называются '''покрытыми''', а неинцидентные — '''свободными'''.}} &lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется '''полным''', если оно покрывает все вершины графа.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Чередующаяся цепь''' — путь в двудольном графе, для любых двух соседних ребер которого верно, что одно из них принадлежит паросочетанию &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, а другое нет.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Дополняющая цепь (или увеличивающая цепь)''' — чередующаяся цепь, у которой оба конца свободны.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Уменьшающая цепь''' — чередующаяся цепь, у которой оба конца покрыты.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Сбалансированная цепь''' — чередующаяся цепь, у которой один конец свободен, а другой покрыт.}}&lt;br /&gt;
&lt;br /&gt;
== Теорема о максимальном паросочетании и дополняющих цепях ==&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=theorem1&lt;br /&gt;
|statement=&lt;br /&gt;
Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; является максимальным тогда и только тогда, когда в &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; нет дополняющей цепи.&lt;br /&gt;
|proof=&lt;br /&gt;
&amp;lt;tex&amp;gt;\Rightarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с максимальным паросочетанием &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; существует дополняющая цепь. Тогда пройдя по ней и заменив вдоль нее все ребра, входящие в паросочетание, на невходящие и наоборот, мы получим большее паросочетание. То есть &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; не являлось максимальным. Противоречие.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Leftarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и предположим, что &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; - не наибольшее. Докажем, что тогда имеется увеличивающая цепь относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; - другое паросочетание и &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;. Рассмотрим подграф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, образованный теми ребрами, которые входят в одно и только в одно из паросочетаний &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Иначе говоря, множеством ребер графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; является симметрическая разность &amp;lt;tex&amp;gt;M\oplus M'&amp;lt;/tex&amp;gt;. В графе &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; каждая вершина инцидентна не более чем двум ребрам (одному из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и одному из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; ), т.е. имеет степень не более двух. В таком графе каждая компонента связности - путь или цикл. В каждом из этих путей и циклов чередуются ребра из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;, имеется компонента, в которой ребер из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; содержится больше, чем ребер из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Это может быть только путь, у которого оба концевых ребра принадлежат &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Заметим, что относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; этот путь является увеличивающей (дополняющей) цепью.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Литература==&lt;br /&gt;
*  Асанов М. О., Баранский В. А., Расин В. В. — Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Задача о паросочетании]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=43799</id>
		<title>Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=43799"/>
				<updated>2015-01-09T19:25:45Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Паросочетание в двудольном графе */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Паросочетание в двудольном графе==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=matching_def&lt;br /&gt;
|definition= '''Паросочетание''' &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе — произвольное множество ребер двудольного графа, такое что никакие два ребра не имеют общей вершины.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Вершины двудольного графа, инцидентные ребрам паросочетания &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, называются '''покрытыми''', а неинцидентные — '''свободными'''.}} &lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Чередующаяся цепь''' — путь в двудольном графе, для любых двух соседних ребер которого верно, что одно из них принадлежит паросочетанию &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, а другое нет.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Дополняющая цепь (или увеличивающая цепь)''' — чередующаяся цепь, у которой оба конца свободны.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Уменьшающая цепь''' — чередующаяся цепь, у которой оба конца покрыты.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Сбалансированная цепь''' — чередующаяся цепь, у которой один конец свободен, а другой покрыт}}&lt;br /&gt;
&lt;br /&gt;
== Теорема о максимальном паросочетании и дополняющих цепях ==&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=theorem1&lt;br /&gt;
|statement=&lt;br /&gt;
Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; является максимальным тогда и только тогда, когда в &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; нет дополняющей цепи.&lt;br /&gt;
|proof=&lt;br /&gt;
&amp;lt;tex&amp;gt;\Rightarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с максимальным паросочетанием &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; существует дополняющая цепь. Тогда пройдя по ней и заменив вдоль нее все ребра, входящие в паросочетание, на невходящие и наоборот, мы получим большее паросочетание. То есть &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; не являлось максимальным. Противоречие.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Leftarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и предположим, что &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; - не наибольшее. Докажем, что тогда имеется увеличивающая цепь относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; - другое паросочетание и &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;. Рассмотрим подграф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, образованный теми ребрами, которые входят в одно и только в одно из паросочетаний &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Иначе говоря, множеством ребер графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; является симметрическая разность &amp;lt;tex&amp;gt;M\oplus M'&amp;lt;/tex&amp;gt;. В графе &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; каждая вершина инцидентна не более чем двум ребрам (одному из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и одному из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; ), т.е. имеет степень не более двух. В таком графе каждая компонента связности - путь или цикл. В каждом из этих путей и циклов чередуются ребра из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;, имеется компонента, в которой ребер из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; содержится больше, чем ребер из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Это может быть только путь, у которого оба концевых ребра принадлежат &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Заметим, что относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; этот путь является увеличивающей (дополняющей) цепью.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Литература==&lt;br /&gt;
*  Асанов М. О., Баранский В. А., Расин В. В. — Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Задача о паросочетании]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=43798</id>
		<title>Паросочетания: основные определения, теорема о максимальном паросочетании и дополняющих цепях</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F:_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BF%D0%B0%D1%80%D0%BE%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8_%D0%B8_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%8E%D1%89%D0%B8%D1%85_%D1%86%D0%B5%D0%BF%D1%8F%D1%85&amp;diff=43798"/>
				<updated>2015-01-09T19:15:37Z</updated>
		
		<summary type="html">&lt;p&gt;Shiplayer: /* Теорема о максимальном паросочетании и дополняющих цепях */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Паросочетание в двудольном графе==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=matching_def&lt;br /&gt;
|definition= '''Паросочетание''' &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе — произвольное множество ребер двудольного графа, такое что никакие два ребра не имеют общей вершины.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= Вершины двудольного графа, инцидентные ребрам паросочетания &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, называются '''покрытыми''', а неинцидентные — '''свободными'''.}} &lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Чередующаяся цепь''' — путь в двудольном графе, для любых двух соседних ребер которого верно, что одно из них принадлежит паросочетанию &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, а другое нет.}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition= '''Дополняющая цепь''' — чередующаяся цепь, у которой оба конца свободны.}}&lt;br /&gt;
&lt;br /&gt;
== Теорема о максимальном паросочетании и дополняющих цепях ==&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=theorem1&lt;br /&gt;
|statement=&lt;br /&gt;
Паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; является максимальным тогда и только тогда, когда в &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; нет дополняющей цепи.&lt;br /&gt;
|proof=&lt;br /&gt;
&amp;lt;tex&amp;gt;\Rightarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть в двудольном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с максимальным паросочетанием &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; существует дополняющая цепь. Тогда пройдя по ней и заменив вдоль нее все ребра, входящие в паросочетание, на невходящие и наоборот, мы получим большее паросочетание. То есть &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; не являлось максимальным. Противоречие.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Leftarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим паросочетание &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и предположим, что &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; - не наибольшее. Докажем, что тогда имеется увеличивающая цепь относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; - другое паросочетание и &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;. Рассмотрим подграф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, образованный теми ребрами, которые входят в одно и только в одно из паросочетаний &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Иначе говоря, множеством ребер графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; является симметрическая разность &amp;lt;tex&amp;gt;M\oplus M'&amp;lt;/tex&amp;gt;. В графе &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; каждая вершина инцидентна не более чем двум ребрам (одному из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и одному из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; ), т.е. имеет степень не более двух. В таком графе каждая компонента связности - путь или цикл. В каждом из этих путей и циклов чередуются ребра из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M'|&amp;gt;|M|&amp;lt;/tex&amp;gt;, имеется компонента, в которой ребер из &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt; содержится больше, чем ребер из &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. Это может быть только путь, у которого оба концевых ребра принадлежат &amp;lt;tex&amp;gt;M'&amp;lt;/tex&amp;gt;. Заметим, что относительно &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; этот путь является увеличивающей (дополняющей) цепью.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Литература==&lt;br /&gt;
*  Асанов М. О., Баранский В. А., Расин В. В. — Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Задача о паросочетании]]&lt;/div&gt;</summary>
		<author><name>Shiplayer</name></author>	</entry>

	</feed>