Изменения

Перейти к: навигация, поиск
м
rollbackEdits.php mass rollback
{{Определение
|definition =
Пусть <tex>M_1 = \langle X, \mathcal{I}_1 I_1 \rangle </tex> и <tex> M_2 = \langle X, \mathcal{I}_2 I_2 \rangle </tex> {{---}} два матроида на множестве элементов <tex>X</tex> с наборами независимых множеств <tex>\mathcal{I}_1I_1</tex> и <tex>\mathcal{I}_2I_2</tex>. Положим <tex> \mathcal{I} = \mathcal {f} A \mid A = A_1 \cup A_2, A_1 \in \mathcal{I}_1I_1, A_2 \in \mathcal{I}_2 I_2 \mathcal {g} </tex>. Множество <tex>\mathcal{I}</tex> удовлетворяет [[Объединение матроидов, доказательство того, что объединение является матроидом|аксиомам независимости]], следовательно, <tex>\langle X, \mathcal{I} \rangle </tex> {{---}} матроид, для которого <tex>\mathcal{I}</tex> служит набором независимых множеств. Этот матроид называется '''объединением матроидов''' (англ. ''matroid union'') <tex>M_1</tex> и <tex>M_2</tex>, и обозначается <tex>M = M_1 \cup M_2 </tex>
}}
Обычно термин "объединение" «объединение» применяется, когда носители <tex>X</tex> в обоих матроидах одинаковы, однако это не является необходимым, мы можем дополнить их до объединения, заметим, что от этого <tex>M_1</tex> и <tex>M_2</tex> не перестанут быть матроидами. Если в <tex>M_1</tex> и <tex>M_2</tex> носители непересекающиеся, тогда то это будет являться [[Прямая сумма матроидов|прямой суммой матроидов]].
Верны следующие утверждения про объединение матроидов:
* Операция объединения матроидов ассоциативна, следовательно, можно говорить об объединении нескольких матроидов.
* В отличие от [[Пересечение матроидов, определение, примеры|пересечения матроидов]], объединение двух '''конечных матроидов''' (англ. ''finite matroid'') матроидов всегда является матроидом, однако объединение двух '''бесконечных матроидов ''' (англ. ''infinite matroid'') не обязательно будет им.* Объединение применяется к независимым множествам, а не к матроидам в целом, то есть это операция на другом уровне, по сравнению с пересечение пересечением матроидов.
==Проверка множества на независимость==
Определим функцию {{Задача|definition=Дан матроид <tex>P_1M = M_1 \cup M_2, M = \langle X, I\rangle</tex> : . Необходимо проверить, является ли некоторое множество <tex> U \in X \times Y \rightarrow </tex> независимым, то есть, лежит ли оно в <tex>I</tex>.}} Для решения этой задачи преобразуем каждый элемент множества <tex>X</tex> : в матроиде <tex>M_1</tex> в <tex>P_1((x, y1)) = x</tex>, а для каждый элемент множества <tex>B \in X \times Y</tex> выполняется в матроиде <tex>M_2</tex> в <tex>P_1(Bx, 2) </tex>. Мы получили два матроида <tex>M'_1 = \{A langle (X \subset X times \mid {1\forall x }), I_1 \in A rangle </tex> и <tex> M'_2 = \exists b langle (X \in B : P_1(btimes \{2\}) = x, I_2 \}rangle </tex>.
Преобразуем каждый элемент множества Определим функцию <tex>XP_1</tex> в матроиде : <tex>M_1X \times Y \rightarrow X</tex> в , при этом <tex>P_1((x, 1y))= x</tex>, а каждый элемент для множества <tex>B \in X\times Y</tex> в матроиде выполняется <tex>M_2P_1(B) = \{A \subset X \mid \forall x \in A </tex> в <tex>\exists b \in B : P_1(b) = x, 2)\}</tex>. Мы получили два матроида Тогда функция <tex>M'_1 = \langle (X \times \{1\}), \mathcal{I}_1 \rangle P_1</tex> и на носителях матроидов <tex> M'_2 = \langle (X \times \{2\}), \mathcal{I}_2 \rangle _1</tex>. Наша функция и <tex>P_1M'_2</tex> будет являться естественным отображением <tex>(x, i) \rightarrow x</tex>, где <tex>i \in \{1, 2\}</tex>.
Затем определим два матроида, которые нам далее понадобятся:
# <tex>M_{\oplus} = M'_1 \oplus M'_2 = \langle (X \times \{1\}) \cup (X \times \{2\}),</tex> <tex> \mathcal{I}_I_{\oplus} = \{A \mid A = A_1 \cup A_2, A_1 \in \mathcal{I}_1I_1, A_2 \in \mathcal{I}_2I_2\} \rangle</tex> {{---}} прямая сумма двух матроидов (носители матроидов <tex>M'_1</tex> и <tex>M'_2</tex> при пересечении будут давать пустое множество).# <tex>M_{P_1} = \langle (X \times \{1\}) \cup (X \times \{2\}),</tex> <tex> \mathcal{I}_I_{P_1} = \{A \mid |P_1(A)| = |A|\} \rangle</tex> {{---}} <tex>\mathcal{I}_I_{P_1}</tex> в данном случае будет содержать такие независимые множества, что мощность любого множества <tex>A</tex> из <tex>\mathcal{I}_I_{P_1}</tex> будет равна мощности множества, получаемого функцией <tex>P_1</tex> над <tex>A</tex>, то есть <tex>A</tex> не будет содержать одновременно <tex>(x, 1)</tex> и <tex>(x, 2)</tex>. 
Теперь перейдём к нашей задаче.
Теперь перейдём к нашей задачеМножество <tex>U</tex> является независимым, если [[Ранговая функция, полумодулярность|ранговая функция]] <tex> r(U) = |U|</tex>. У нас есть некоторое множество Можно заметить, что в матроиде <tex>XM</tex>выполняется <tex>r(U) = \max\limits_{A \mid A \in I_{\oplus}, A \in I_{P_1}, и нужно проверить его P_1(A) \subset U} |A|</tex>. Таким образом, мы свели задачу о проверке множества на независимость в объединении к нахождению мощности максимального независимого множества в пересечении матроидов (то есть, лежит ли оно в <tex>M_{\mathcaloplus}</tex> и <tex>M_{IP_1}</tex>. С помощью [[Алгоритм построения базы в пересечении матроидов|алгоритма построения базы в пересечении матроидов]] найдем размер максимального подмножества <tex>U' \mid P_1(U')= U</tex> в пересечении наборов независимых множеств матроидов.
Множество ==Доказательство того, что объединение матроидов является матродидом=={{Определение|definition = <tex>M_1 = \langle X_1, I_1 \rangle </tex> и <tex> M_2 = \langle X_2, I_2 \rangle </tex> — матроиды. Тогда <tex> M_1 \cup M_2 = \langle X = X_1 \cup X_2, I = \{ A \mid A = A_1 \cup A_2, A_1 \in I_1, A_2 \in I_2 \} \rangle </tex>.}}  {{Лемма|statement = <tex>UM = \langle X, I \rangle</tex> является независимым— матроид, если <tex>rf \colon X \to Y</tex>. Тогда <tex>M_1 = \langle Y, I_1 = \{ f(UA) \mid A \in I \} \rangle </tex> является матроидом. |proof = |U|Докажем аксиомы независимости для <tex> I_1 </tex>.Можно заметить, что в матроиде # <tex>M\varnothing \in I_1</tex> выполняется <br /><tex>r\varnothing = f(U\varnothing) = \maxin I_1 </tex># <tex>B \limits_{subset A, A \mid in I_1 \Rightarrow B \in I_1</tex><br /><tex>A \in I_1</tex>, значит <tex>\mathcalexists S, S \in I</tex>, такое, что <tex> A = f(S)</tex>. <tex>B = f(S \setminus f^{I-1}_(A \setminus B)), (S \setminus f^{-1} (A \oplussetminus B)) \subset S \Rightarrow (S \setminus f^{-1}(A \setminus B)) \in I</tex>. Значит <tex>B \in I_1</tex>.# Пусть <tex> A \in I_1, A = f(S), B \in I_1, B = f(T), |A| > |B|</tex>. Докажем, что <tex>\exists y \in A \setminus B, B \cup \mathcal{I}_{P_1y \}\in I_1</tex><br /><tex>A = f(S) \Rightarrow \exists S_1 \subset S, P_1A = f(S_1), |S_1| = |A| </tex>.<br /><tex>B = f(T) \Rightarrow \exists T_1 \subset U} T, B = f(T_1), |T_1| = |AB|</tex>. Таким образом<br /><tex>S_1 \in I, T_1 \in I</tex> по второй аксиоме для <tex>M</tex>.<br /><tex> |S_1| > |T_1| </tex>, значит по третьей аксиоме для <tex>M</tex>, <tex>\exists x \in S_1 \setminus T_1, мы свели задачу о проверке множества на независимость в объединении к нахождению мощности максимального независимого множества в пересечении матроидов T_1 \cup \{ x \} \in I</tex>. Следовательно <tex>M_f(T_1 \cup \{x \oplus}) \in I_1</tex>.<br /><tex> и f(T_1 \cup \{ x \}) = f(T_1) \cup f(x) = B \cup f(x)</tex> Значит <tex>M_\exists y = f(x) \in A \setminus B , B \cup \{P_1y \}\in I_1</tex>}}  {{Теорема|statement = Объединение матроидов является матроидом. |proof = Рассмотрим матроиды <tex>M_1</tex>и <tex>M_2</tex> из определения объединения матроидов. С помощью Из [[Алгоритм построения базы в пересечении Прямая сумма матроидов|алгоритма построения базы в пересечении матроидовлеммы]] мы будем искать размер максимального подсета множества знаем, что <tex>U' M_1 \oplus M_2= \langle X = X_1 \times \{ 1 \} \cup X_2 \times \{ 2 \}, I = \{ A \mid P_1A = A_1 \cup A_2, A_1 \in I_1, A_2 \in I_2 \} \rangle </tex> является матроидом. Пусть <tex>f \colon X_1 \times \{ 1 \} \cup X_2 \times \{ 2 \} \to X_1 \cup X_2 </tex>, такая, что <tex>f(U'x \times \{ 1 \}) \rightarrow x </tex>, <tex>f(x \times \{ 2 \}) \rightarrow x </tex>. Тогда по лемме <tex> M_3 = \langle X_1 \cup X_2, I_3 = U\{ f(A) \mid A \in I \} \rangle</tex> — матроид, в пересечении набора котором независимым множествам соответствуют объединения независимых множеств матроидовв <tex>M_1</tex> и <tex>M_2</tex>. То есть <tex>M_3 = M_1 \cup M_2</tex>.}}
== См. также==
* [[Пересечение матроидов, определение, примеры]]
* [[Алгоритм построения базы в пересечении матроидов]]
== Литература Источники информации ==
* Емеличев В. А., Мельников О. И., Сарванов В. И., Тышкевич Р. И. {{---}} Лекции по теории графов
* Chandra Chekuri {{---}} [https://courses.engr.illinois.edu/cs598csc/sp2010/Lectures/Lecture19.pdf '''Combinatorial Optimization''']* Michel X. Goemans Chandra Chekuri {{---}} Combinatorial Optimization]* [http://math.mit.edu/~goemans/18438F09/lec13.pdf '''Michel X. Goemans {{---}} Advanced Combinatorial Optimization''']* [https://en.wikipedia.org/wiki/MatroidWikipedia {{---}} Matroid]
[[Категория:Алгоритмы и структуры данных]]
[[Категория:Матроиды]]
[[Категория:Объединение матроидов]]
1632
правки

Навигация