Объединение матроидов, проверка множества на независимость — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м
Строка 22: Строка 22:
 
А можно заметить, что в матроиде <tex>M</tex> выполняется <tex>r(U) = \max\limits_{A \in I, A \in I_{P_1}, P_1(A) \subset U} |A|</tex>.
 
А можно заметить, что в матроиде <tex>M</tex> выполняется <tex>r(U) = \max\limits_{A \in I, A \in I_{P_1}, P_1(A) \subset U} |A|</tex>.
 
Т.е. мы свели задачу о проверке множества на независимость в объединении к нахождению мощности максимального независимого множества в пересечении матроидов <tex>M_{\oplus}</tex> и <tex>M_{P_1}</tex>. Мы это уже умеем делать - [[Алгоритм построения базы в пересечении матроидов]].
 
Т.е. мы свели задачу о проверке множества на независимость в объединении к нахождению мощности максимального независимого множества в пересечении матроидов <tex>M_{\oplus}</tex> и <tex>M_{P_1}</tex>. Мы это уже умеем делать - [[Алгоритм построения базы в пересечении матроидов]].
 +
 +
== См. также==
 +
* [[Пересечение матроидов, определение, примеры]]
  
 
== Литература ==
 
== Литература ==
Строка 27: Строка 30:
 
* Chandra Chekuri {{---}} [https://courses.engr.illinois.edu/cs598csc/sp2010/Lectures/Lecture19.pdf '''Combinatorial Optimization''']
 
* Chandra Chekuri {{---}} [https://courses.engr.illinois.edu/cs598csc/sp2010/Lectures/Lecture19.pdf '''Combinatorial Optimization''']
 
* https://en.wikipedia.org/wiki/Matroid
 
* https://en.wikipedia.org/wiki/Matroid
 +
 +
[[Категория:Алгоритмы и структуры данных]]
 +
[[Категория:Матроиды]]

Версия 03:49, 21 мая 2016

Определение:
Пусть [math]M_1 = \langle X, \mathcal{I}_1 \rangle [/math] и [math] M_2 = \langle X, \mathcal{I}_2 \rangle [/math] — два матроида на множестве элементов [math]X[/math] с наборами независимых множеств [math]\mathcal{I}_1[/math] и [math]\mathcal{I}_2[/math]. Положим [math] \mathcal{I} = \mathcal {f} A \mid A = A_1 \cup A_2, A_1 \in \mathcal{I}_1, A_2 \in \mathcal{I}_2 \mathcal {g} [/math]. Множество [math]\mathcal{I}[/math] удовлетворяет аксиомам независимости, следовательно, [math]\langle X, \mathcal{I} \rangle [/math] — матроид, для которого [math]\mathcal{I}[/math] служит независимым множеством. Этот матроид называется объединением матроидов (англ. matroid union) [math]M_1[/math] и [math]M_2[/math], и обозначается [math] M_1 \cup M_2 [/math]

Обычно термин "объединение" применяется, когда носители [math]X[/math] в обоих матроидах одинаковы, однако это не является необходимым, мы можем дополнить их до объединения, заметим, что от этого [math]M_1[/math] и [math]M_2[/math] не перестанут быть матроидами. Если в [math]M_1[/math] и [math]M_2[/math] носители непересекающиеся, тогда это будет являться прямой суммой матроидов.

  • Операция объединения матроидов ассоциативна, следовательно, можно говорить об объединении нескольких матроидов.
  • В отличие от пересечения матроидов, объединение двух конечных (англ. finite matroid) матроидов всегда является матроидом, однако объединение двух бесконечных матроидов (англ. infinite matroid) не обязательно будет им.
  • Объединение применяется к независимым множествам, а не к матроидам в целом, то есть это операция на другом уровне, по сравнению с пересечение матроидов.


Давайте зададим функцию [math]P_1[/math] : [math] X \times Y \rightarrow X[/math]: [math]P_1((x, y)) = x[/math], а для множества [math]B \in X \times Y[/math] выполняется [math]P_1(B) = \{A \subset X| \forall x \in A[/math] [math]\exists y \in B : P_1(y) = x\}[/math].

Определим ещё несколько матроидов, которые нам понадобятся:

[math]M_{\oplus} = M_1 \oplus M_2 = \langle (X \times \{1\}) \cup (X \times \{2\}),[/math] [math] I = \{A \mid A = A_1 \cup A_2, A_1 \in I_1, A_2 \in I_2\} \rangle[/math].

[math]M_{P_1} = \langle (X \times \{1\}) \cup (X \times \{2\}),[/math] [math] I_{P_1} = \{A \mid |P_1(A)| = |A|\} \rangle[/math].

Теперь перейдём к задаче. У нас есть множество и нужно проверить его независимость в объединении матроидов. Множество [math]U[/math] - независимо, если [math]r(U) = |U|[/math]. А можно заметить, что в матроиде [math]M[/math] выполняется [math]r(U) = \max\limits_{A \in I, A \in I_{P_1}, P_1(A) \subset U} |A|[/math]. Т.е. мы свели задачу о проверке множества на независимость в объединении к нахождению мощности максимального независимого множества в пересечении матроидов [math]M_{\oplus}[/math] и [math]M_{P_1}[/math]. Мы это уже умеем делать - Алгоритм построения базы в пересечении матроидов.

См. также

Литература