<?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=Irinagreen</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=Irinagreen"/>
		<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/Irinagreen"/>
		<updated>2026-04-14T20:09:22Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D1%81%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%BE%D0%B8%D0%B4%D0%BE%D0%B2,_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5,_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B&amp;diff=72100</id>
		<title>Пересечение матроидов, определение, примеры</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D1%81%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%BE%D0%B8%D0%B4%D0%BE%D0%B2,_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5,_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B&amp;diff=72100"/>
				<updated>2020-01-11T14:41:46Z</updated>
		
		<summary type="html">&lt;p&gt;Irinagreen: /* Ориентированный лес опечатка */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
Пусть даны два матроида &amp;lt;tex&amp;gt;M_1 = \langle X, \mathcal{I}_1\rangle&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;M_2 = \langle X, \mathcal{I}_2 \rangle&amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
'''Пересечением матроидов''' (англ. ''matroid intersection'') &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;M_2&amp;lt;/tex&amp;gt; называется пара &amp;lt;tex&amp;gt;M_1 \cap M_2 = \langle X, \mathcal{I} \rangle&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; {{---}} носитель исходных матроидов, а &amp;lt;tex&amp;gt; \mathcal{I} = \mathcal{I}_1 \cap \mathcal{I}_2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
* Пересечение матроидов не всегда является матроидом.&lt;br /&gt;
* Пересечение трех и более матроидов является [[Примеры NP-полных языков| NP-полной задачей]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Разноцветный лес ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt; {{---}} [[Примеры_матроидов|графовый матроид]], &amp;lt;tex&amp;gt;M_2&amp;lt;/tex&amp;gt; {{---}} '''разноцветный матроид''' (англ. ''multicolored matroid'') (Множество независимо, если в нём нет двух ребер одного цвета). Тогда их пересечение {{---}} это '''разноцветный лес''' (англ. ''rainbow forests'').&lt;br /&gt;
[[Файл:Rainbow_forest_DY.png|500px|thumb|center|Пересечение матроидов, [[Алгоритм_построения_базы_в_пересечении_матроидов|база]] матроида]]&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement =&lt;br /&gt;
Пересечение данных матроидов не является матроидом.&lt;br /&gt;
|proof =&lt;br /&gt;
Рассмотрим пару &amp;lt;tex&amp;gt;\langle X, \mathcal{I}\rangle&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; {{---}} ребра разноцветного леса, &amp;lt;tex&amp;gt; \mathcal{I} = \mathcal{I}_1 \cap \mathcal{I}_2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Данная пара не является матроидом, так как не выполняется третье свойство матроида, то есть &amp;lt;tex&amp;gt;\exists A, B \in \mathcal{I}, |A| &amp;gt; |B| &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\nexists \, x \in A \setminus B : B \cup \{x\} \in \mathcal{I}&amp;lt;/tex&amp;gt; (См. пример &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;)&lt;br /&gt;
[[Файл:Example2_DY.png|300px|thumb|left|Пример 1]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Двудольный граф ==&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; {{---}} [[Двудольные_графы_и_раскраска_в_2_цвета|двудольный граф]] и заданы два матроида &amp;lt;tex&amp;gt;M_1 = \langle X, \mathcal{I}_1 \rangle&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;M_2 = \langle X, \mathcal{I}_2 \rangle&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; {{---}} множество ребёр графа, &amp;lt;tex&amp;gt;\mathcal{I}_1 = \{F \subseteq X: \deg(v) \leqslant 1 \: \forall v \in L \}&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;\mathcal{I}_2 = \{F \subseteq X: \deg(v) \leqslant 1 \: \forall v \in R \}&amp;lt;/tex&amp;gt;. Тогда их пересечение {{---}} это множество всевозможных паросочетаний графа.&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement =&lt;br /&gt;
Пересечение данных матроидов не является матроидом.&lt;br /&gt;
|proof =&lt;br /&gt;
Рассмотрим пару &amp;lt;tex&amp;gt;\langle X, \mathcal{I}\rangle&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; {{---}} носитель, &amp;lt;tex&amp;gt; \mathcal{I} = \mathcal{I}_1 \cap \mathcal{I}_2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Данная пара не является матроидом, так как не выполняется третье свойство матроида, то есть &amp;lt;tex&amp;gt;\exists A, B \in \mathcal{I}, |A| &amp;gt; |B| &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\nexists \, x \in A \setminus B : B \cup \{x\} \in \mathcal{I}&amp;lt;/tex&amp;gt; (См. пример 2)&lt;br /&gt;
[[Файл:Example_DY.png|300px|thumb|left|Пример 2]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Ориентированный лес ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
'''Ориентированное дерево''' (англ. ''arborescence'') {{---}} ацикличный орграф (ориентированный граф, не содержащий циклов), в котором только одна вершина имеет нулевую степень захода (в неё не ведут дуги), а все остальные вершины имеют степень захода &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; (в них ведёт ровно по одной дуге).&lt;br /&gt;
}}&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;D = \langle V, X \rangle &amp;lt;/tex&amp;gt; {{---}} ориентированнный граф.&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; {{---}} неориентированный граф, соответствующий графу &amp;lt;tex&amp;gt;D&amp;lt;/tex&amp;gt;. &lt;br /&gt;
Тогда рассмотрим два матроида &amp;lt;tex&amp;gt;M_1 = \langle X, \mathcal{I}_1 \rangle, M_2 = \langle X, \mathcal{I}_2 \rangle&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; {{---}} множество ребёр графа.&lt;br /&gt;
&amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt; {{---}} [[Примеры_матроидов|графовый матроид]] &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, &lt;br /&gt;
&amp;lt;tex&amp;gt;\mathcal{I}_1 = \{X' \subseteq X: X'&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_2&amp;lt;/tex&amp;gt; {{---}} [[Примеры_матроидов|матроид разбиений]] графа &amp;lt;tex&amp;gt;D&amp;lt;/tex&amp;gt;, &lt;br /&gt;
&amp;lt;tex&amp;gt;\mathcal{I}_2 = \{X' \subseteq X: |\deg^-(v) \cap X'| \leqslant 1, \forall v \in V \}&amp;lt;/tex&amp;gt;. &lt;br /&gt;
Пересечение данных матроидов являются множества ориентированных лесов.&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement = Пересечение данных матроидов является матроидом.&lt;br /&gt;
|proof =&lt;br /&gt;
Рассмотрим матроид пересечения &amp;lt;tex&amp;gt;M = \langle X, \mathcal{I} \rangle&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt; {{---}} множество ребер, &amp;lt;tex&amp;gt;\mathcal{I} = \mathcal{I}_1 \cap \mathcal{I}_2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверим выполнение аксиом независимости:&lt;br /&gt;
&lt;br /&gt;
1) &amp;lt;tex&amp;gt;\varnothing \in \mathcal{I}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пустое множество является ориентированным деревом, а значит входит в &amp;lt;tex&amp;gt;\mathcal{I}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2) &amp;lt;tex&amp;gt;A \subset B, \ B \in \mathcal{I} \Rightarrow A \in \mathcal{I}&amp;lt;/tex&amp;gt;&lt;br /&gt;
Любой подграф ориентированного леса также является ориентированным лесом, так как во-первых, степень захода каждой вершины в подграфе могла только уменьшится, во-вторых, подграф ацикличного графа {{---}} ацикличен.&lt;br /&gt;
&lt;br /&gt;
3) &amp;lt;tex&amp;gt;A \in \mathcal{I}, \ B \in I, \ \left\vert A \right\vert &amp;lt; \left\vert B \right\vert \Rightarrow \exists \, x \in B \setminus A, \ A \cup \{ x \} \in \mathcal{I}&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;k&amp;lt;/tex&amp;gt;. &lt;br /&gt;
Тогда количество ребер в &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt; равно &amp;lt;tex&amp;gt;k - 1&amp;lt;/tex&amp;gt;. &lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|B| &amp;gt; |A|&amp;lt;/tex&amp;gt;, следовательно количество ребер в множестве &amp;lt;tex&amp;gt;B&amp;lt;/tex&amp;gt; не меньше &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Пусть все ребра из множества &amp;lt;tex&amp;gt;B&amp;lt;/tex&amp;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;B&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;A&amp;lt;/tex&amp;gt;, тогда возьмем то ребро &amp;lt;tex&amp;gt;uv&amp;lt;/tex&amp;gt;, которое указывает в вершину не принадлежащую &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;. Покажем, что оно нам подойдет. &lt;br /&gt;
Если &amp;lt;tex&amp;gt;u \in V(A)&amp;lt;/tex&amp;gt;, тогда наше текущее ориентированное дерево пополнится еще одной вершиной и ведущем к ней ребру.&lt;br /&gt;
Если &amp;lt;tex&amp;gt;u \notin V(A)&amp;lt;/tex&amp;gt;, то мы получим еще одно ориентированное дерево.&lt;br /&gt;
Таким образом, мы нашли ребро в множестве &amp;lt;tex&amp;gt;B \setminus A&amp;lt;/tex&amp;gt;, которое можем добавить в множество &amp;lt;tex&amp;gt;A&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;
* Асанов М. О., Баранский В. А., Расин В. В. {{---}} Дискретная математика: Графы, матроиды, алгоритмы (глава 4. Матроиды)&lt;br /&gt;
* [http://www-math.mit.edu/~goemans/18433S09/matroid-intersect-notes.pdf Lecture notes on matroid intersection]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория:Матроиды]]&lt;/div&gt;</summary>
		<author><name>Irinagreen</name></author>	</entry>

	</feed>