Примеры матроидов — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Matching Matroid)
Строка 99: Строка 99:
  
 
}}
 
}}
 
==Матроид с выкинутым элементом==
 
{{Определение
 
|definition=
 
Пусть <tex>M = \langle X, I\rangle</tex> — матроид. Определим <tex>M\setminus x = \langle X \setminus x, \{A | A \in I, x \not\in A\}\rangle</tex>. Для любых <tex>M</tex> и <tex>x</tex> получившаяся конструкция <tex>M\setminus x</tex> является матроидом.
 
 
}}
 
 
==Матроид, стянутый по элементу==
 
{{Определение
 
|definition=
 
Пусть <tex>M = \langle X, I\rangle</tex> — матроид. Определим <tex>M/x = \langle X \setminus x, \{A \setminus x | A \in I, x \in A\}\rangle</tex>. Для любых <tex>M</tex> и <tex>x</tex>, таких что <tex>\{x\}\in I,</tex> получившаяся конструкция <tex>M/x</tex> является матроидом.
 
}}
 
 
==Урезанный матроид==
 
{{Определение
 
|definition=
 
Пусть <tex>M = \langle X, I \rangle</tex> - матроид. Обозначим как <tex>M|_k</tex> следующую констркуцию: <tex>M|_k = \langle X, \{A | A \in I, |A| \le k \}\rangle</tex>, тогда <tex>M|_k</tex> является матроидом.
 
}}
 
 
==Бинарный матроид==
 
  
 
==Разделенный матроид==
 
==Разделенный матроид==
Строка 148: Строка 127:
  
 
}}
 
}}
 
==Laminar Matroid==
 
  
 
==Matching Matroid==
 
==Matching Matroid==
Строка 180: Строка 157:
 
* <tex>\exists xy: y \in B \setminus A \Rightarrow xy \notin P_A</tex>. Мы можем добавить в <tex>A</tex> вершину <tex>x</tex> (или <tex>y</tex>), а в <tex>P_A</tex> ребро <tex>xy</tex>. Тогда паросочетание <tex>P_A \cup xy</tex> покрывает <tex>A \cup \mathcal{f} x \mathcal {g} \Rightarrow A \cup \mathcal{f} x \mathcal{g} \in I</tex>
 
* <tex>\exists xy: y \in B \setminus A \Rightarrow xy \notin P_A</tex>. Мы можем добавить в <tex>A</tex> вершину <tex>x</tex> (или <tex>y</tex>), а в <tex>P_A</tex> ребро <tex>xy</tex>. Тогда паросочетание <tex>P_A \cup xy</tex> покрывает <tex>A \cup \mathcal{f} x \mathcal {g} \Rightarrow A \cup \mathcal{f} x \mathcal{g} \in I</tex>
 
*Если первые два случая не выполнились, значит <tex>\forall x \in B \setminus A</tex>  <tex>\exists y \notin A, \notin B: \exists xy \in P_B</tex>. Обозначим множество таких <tex>y</tex> за <tex>C, \left\vert C \right\vert = \left\vert B \setminus A \right\vert > \left\vert A \setminus B \right\vert</tex>. Таким образом в <tex>C</tex> найдется хотя бы одна вершина <tex>y</tex>, не покрытая паросочетанием <tex>P_A</tex>. Тогда паросочетание <tex>P_A \cup xy</tex> покрывает <tex>A \cup \mathcal{f} x \mathcal {g} \Rightarrow A \cup \mathcal{f} x \mathcal{g} \in I</tex>   
 
*Если первые два случая не выполнились, значит <tex>\forall x \in B \setminus A</tex>  <tex>\exists y \notin A, \notin B: \exists xy \in P_B</tex>. Обозначим множество таких <tex>y</tex> за <tex>C, \left\vert C \right\vert = \left\vert B \setminus A \right\vert > \left\vert A \setminus B \right\vert</tex>. Таким образом в <tex>C</tex> найдется хотя бы одна вершина <tex>y</tex>, не покрытая паросочетанием <tex>P_A</tex>. Тогда паросочетание <tex>P_A \cup xy</tex> покрывает <tex>A \cup \mathcal{f} x \mathcal {g} \Rightarrow A \cup \mathcal{f} x \mathcal{g} \in I</tex>   
 
  
 +
}}
 +
 +
==Бинарный матроид==
 +
{{Определение
 +
|definition=
 +
Матроид <tex>M</tex> на множестве <tex>X</tex> будем называть '''представимым над полем <tex>F</tex>''', если существуют векторное пространство <tex>V</tex> над <tex>F</tex> и отображение <tex>\phi:X \rightarrow V</tex>, обладающее тем свойством, что подмножество <tex>A</tex> независимо тогда и только тогда, когда <tex>\phi</tex> взаимнооднозначно на <tex>A</tex> и <tex>\phi(A)</tex> линейно-независимо в <tex>V</tex>.
 +
}}
 +
 +
{{Определение
 +
|definition=
 +
'''Регулярный матроид(regular matroid)''' - матроид, представимый над любым полем.
 +
}}
 +
 +
{{Определение
 +
|definition=
 +
'''Бинарный матроид(binary matroid)''' - матроид, представимый над полем целых чисел по модулю 2.
 +
}}
 +
 +
==Матроид с выкинутым элементом==
 +
{{Определение
 +
|definition=
 +
Пусть <tex>M = \langle X, I\rangle</tex> — матроид. Определим <tex>M\setminus x = \langle X \setminus x, \{A | A \in I, x \not\in A\}\rangle</tex>. Для любых <tex>M</tex> и <tex>x</tex> получившаяся конструкция <tex>M\setminus x</tex> является матроидом.
 +
 +
}}
 +
 +
==Матроид, стянутый по элементу==
 +
{{Определение
 +
|definition=
 +
Пусть <tex>M = \langle X, I\rangle</tex> — матроид. Определим <tex>M/x = \langle X \setminus x, \{A \setminus x | A \in I, x \in A\}\rangle</tex>. Для любых <tex>M</tex> и <tex>x</tex>, таких что <tex>\{x\}\in I,</tex> получившаяся конструкция <tex>M/x</tex> является матроидом.
 +
}}
 +
 +
==Урезанный матроид==
 +
{{Определение
 +
|definition=
 +
Пусть <tex>M = \langle X, I \rangle</tex> — матроид. Обозначим как <tex>M|_k</tex> следующую констркуцию: <tex>M|_k = \langle X, \{A | A \in I, |A| \le k \}\rangle</tex>, тогда <tex>M|_k</tex> является матроидом.
 
}}
 
}}
  
Строка 190: Строка 201:
  
 
==Источники==
 
==Источники==
* Асанов М. О., Баранский В. А., Расин В. В. - Дискретная математика: Графы, матроиды, алгоритмы (глава 4. Матроиды)
+
* Асанов М. О., Баранский В. А., Расин В. В. Дискретная математика: Графы, матроиды, алгоритмы (глава 4. Матроиды)
 +
* Уилсон Р. — Введение в теорию графов (глава 9. Теория матроидов)  
 
* [http://courses.engr.illinois.edu/cs598csc/sp2010/Lectures/Lecture14.pdf Примеры матроидов]
 
* [http://courses.engr.illinois.edu/cs598csc/sp2010/Lectures/Lecture14.pdf Примеры матроидов]
 
*[[wikipedia:Matroid | Wikipedia {{---}} Matroid]]
 
*[[wikipedia:Matroid | Wikipedia {{---}} Matroid]]

Версия 01:53, 8 июня 2014

Матричный матроид

Определение:
Пусть [math]V[/math] — векторное пространство над телом [math]F[/math], пусть набор векторов [math]V_i = \mathcal{f} v_1,\dots,v_n\mathcal {g}[/math] из пространства [math]V[/math] является носителем [math]X[/math]. Элементами независимого множества [math]I[/math] данного матроида являются множества линейно-независимых векторов из набора [math]v_ 1,\dots,v_n[/math]. Тогда [math]M = \langle V_i, I \rangle [/math], называется матричным матроидом (vector matroid)
Лемма:
Матричный матроид является матроидом.
Доказательство:
[math]\triangleright[/math]

Проверим выполнение аксиом независимости:

1) [math]\varnothing \in I[/math]

Множество в котором нет векторов является линейно-независимым.

2) [math]A \subset B, B \in I \Rightarrow A \in I[/math]

Если из набора линейно-независимых векторов убрать некоторые, то этот набор не станет зависимым.

3) [math]A \in I, B \in I, \left\vert A \right\vert \lt \left\vert B \right\vert \Rightarrow \mathcal {9} x \in B \setminus A, A \cup \mathcal{f} x \mathcal {g} \in I[/math]

Так как [math]A \in I,[/math] то [math]dim \mathcal{L}(A) = \left\vert A \right\vert[/math]. По условию [math]\left\vert A \right\vert \lt \left\vert B \right\vert \Rightarrow \exists x \in B: x \notin \mathcal{L}(A)[/math], то есть [math]x \notin A[/math]. Тогда [math] A \cup \mathcal{f} x \mathcal {g}[/math] линейно-независимо по определению линейной оболочки.
[math]\triangleleft[/math]

Графовый матроид

Определение:
Пусть [math]G = \langle V, E \rangle[/math] — неориентированный граф. Тогда [math]M = \langle E, I \rangle [/math], где [math]I[/math] состоит из всех ацикличных множеств ребер (то есть являющихся лесами), называют графовым (графическим) матроидом (graphic matroid).
Лемма:
Графовый матроид является матроидом.
Доказательство:
[math]\triangleright[/math]

Проверим выполнение аксиом независимости:

1) [math]\varnothing \in I[/math]

Пустое множество является ациклическим, а значит входит в [math]I[/math].

2) [math]A \subset B, B \in I \Rightarrow A \in I[/math]

Очевидно, что любой подграф леса, так же является лесом, а значит входит в [math]I[/math] вследствие своей ацикличности.

3) [math]A \in I, B \in I, \left\vert A \right\vert \lt \left\vert B \right\vert \Rightarrow \mathcal {9} x \in B \setminus A, A \cup \mathcal{f} x \mathcal {g} \in I[/math]

В графе [math]G_A = \langle V, A \rangle [/math] как минимум две компоненты связанности, иначе [math]G_A[/math] являлся бы остовным деревом и не существовало бы ациклического множества с большей мощностью.

Допустим в [math]B[/math] не существует ребра, соединяющего две различные компоненты связанности из [math]G_A[/math], значит любая компонента связанности из [math]G_B[/math] целиком вершинно-входит в какую-либо компоненту из [math]G_A[/math]. Рассмотрим любую компоненту связанности Q из [math]G_A[/math], у неё [math]k[/math] вершин и [math]k - 1[/math] рёбер. Теперь рассмотрим все компоненты связанности [math]P_i[/math] из [math]G_B[/math], вершинно-входящие в [math]Q[/math], пусть их [math]m[/math] штук, тогда суммарное количество рёбер из [math]P_i[/math] равно [math]k - m[/math], что не превосходит [math]k - 1[/math] (количество рёбер в [math]Q[/math]). Просуммируем неравенство по всем компонентам связанности из [math]G_A[/math] и получим [math]\left\vert A \right\vert \geqslant \left\vert B \right\vert[/math], что противоречит условию. Значит предположение не верно, и в [math]B[/math] существует искомое ребро [math]x[/math] из разных компонент связанности [math]G_B[/math].
[math]\triangleleft[/math]

Трансверсальный матроид

Определение:
Пусть [math]G = \langle X, Y, E \rangle[/math] — двудольный граф. [math]I = \mathcal{f} A \subset X \mid \exists [/math] паросочетание [math] P[/math], покрывающее [math]A \mathcal {g} [/math]. Тогда [math]M = \langle X, I \rangle [/math] называют трансверсальным матроидом (transversal matroid).


Лемма:
Трансверсальный матроид является матроидом.
Доказательство:
[math]\triangleright[/math]

Проверим выполнение аксиом независимости:

1) [math]\varnothing \in I[/math]

Пустое паросочетание удовлетворяет условию.

2) [math]A \subset B, B \in I \Rightarrow A \in I[/math]

Подмножество паросочетания также является паросочетанием. Удалим из исходного паросочетания [math]P[/math] ребра, концами которых являются вершины из множества [math]B \setminus A[/math]. Оставшееся множество ребер будет являться паросочетанием, покрывающим [math]A[/math]. Значит [math] A \in I [/math].

3) [math]A \in I, B \in I, \left\vert A \right\vert \lt \left\vert B \right\vert \Rightarrow \mathcal {9} x \in B \setminus A, A \cup \mathcal{f} x \mathcal {g} \in I[/math]

Раскрасим ребра из паросочетания, соответствующего [math] B [/math] в синий цвет, а соответствующего [math] A [/math] — в красный. Причем ребра, соответствующие двум паросочетаниям, будут окрашены в пурпурный цвет. Таким образом, получится [math] \left\vert B \setminus A \right\vert [/math] ребер синего цвета, [math] \left\vert A \setminus B \right\vert [/math] ребер красного цвета, и будет выполняться соотношение [math] \left\vert B \setminus A \right\vert \gt \left\vert A \setminus B \right\vert[/math]. Рассмотрим подграф [math] H [/math], индуцированный красными и синими ребрами из исходного графа. Каждая вершина соответствует либо двум ребрам — синему и красному, либо одному — синему или красному. Любая компонента связности представляет собой либо путь, либо цикл, состоящий из чередующихся красных и синих ребер. Так как граф двудольный, любой цикл состоит из четного числа ребер. Так как синих ребер больше, чем красных, то должен существовать путь, начинающийся и оканчивающийся синим ребром. Обозначим этот путь [math] H' [/math]. Поменяем в [math] H' [/math] синий и красный цвета. Получаем, что ребра, окрашенные в красный и пурпурный цвета образуют паросочетание в графе. Очевидно, что подмножество соответствующее этому новому паросочетанию имеет вид [math]A \cup \mathcal{f} x \mathcal {g} [/math], где [math] x \in B \setminus A [/math]. Что значит, что [math] A \cup \mathcal{f} x \mathcal {g} \in I[/math].
[math]\triangleleft[/math]

Универсальный матроид

Определение:
Универсальным матроидом (uniform matroid) называют объект [math]U_n,_k = \langle X, I \rangle [/math], где [math]X = \{1, 2, 3, \dots, n\}, I = \mathcal{f} A \subset X \mid \left\vert A \right\vert \leqslant k\}[/math]


Лемма:
Универсальный матроид является матроидом.
Доказательство:
[math]\triangleright[/math]

Проверим выполнение аксиом независимости:

1) [math]\varnothing \in I[/math]

[math] \left\vert \varnothing \right\vert = 0 \leqslant k \Rightarrow \varnothing \in I[/math]

2) [math]A \subset B, B \in I \Rightarrow A \in I[/math]

[math] \left\vert A \right\vert \leqslant \left\vert B \right\vert \leqslant k \Rightarrow \left\vert A \right\vert \leqslant k \Rightarrow A \in I [/math]

3) [math]A \in I, B \in I, \left\vert A \right\vert \lt \left\vert B \right\vert \Rightarrow \mathcal {9} x \in B \setminus A, A \cup \mathcal{f} x \mathcal {g} \in I[/math]

Так как [math]\left\vert A \right\vert \lt \left\vert B \right\vert [/math] и числа в каждом множестве различны, найдётся такое число [math] x \in B [/math], которое не будет принадлежать меньшему по мощности множеству [math] A [/math].

Рассмотрим [math] A \cup \mathcal{f} x \mathcal {g} [/math]. [math]\left\vert A \right\vert \lt \left\vert B \right\vert \Rightarrow \left\vert A \cup \mathcal{f} x \mathcal {g} \right\vert = \left\vert A \right\vert + 1 \leqslant \left\vert B \right\vert \leqslant k \Rightarrow A \cup \mathcal{f} x \mathcal {g} \in I[/math]
[math]\triangleleft[/math]

Разделенный матроид

Определение:
Пусть [math]X = \bigcup\limits_{i=_1}^n X_i[/math], при этом [math] X_i \cap X_j = 0[/math], [math]\forall i \neq j,[/math] и [math]k_1 \dots k_n[/math] — положительные целые числа. [math]I = \mathcal{f} A \subset X \mid \left\vert A \cap X_i \right\vert \leqslant k_i, \forall i: 1 \leqslant i \leqslant n \mathcal {g}[/math]. Тогда [math]M = \langle X, I \rangle [/math] называют разделенным матроидом (partition matroid)
Лемма:
Разделенный матроид является матроидом.
Доказательство:
[math]\triangleright[/math]

Проверим выполнение аксиом независимости:

1) [math]\varnothing \in I[/math]

[math]\left\vert \varnothing \cap X_i \right\vert = 0 \leqslant k_i \Rightarrow \varnothing \in I[/math]

2) [math]A \subset B, B \in I \Rightarrow A \in I[/math]

[math]A \subset B, \left\vert A \right\vert \leqslant \left\vert B \right\vert \Rightarrow \left\vert A \cap X_i \right\vert \leqslant \left\vert B \cap X_i \right\vert \leqslant k_i \Rightarrow A \in I[/math]

3) [math]A \in I, B \in I, \left\vert A \right\vert \lt \left\vert B \right\vert \Rightarrow \mathcal {9} x \in B \setminus A, A \cup \mathcal{f} x \mathcal {g} \in I[/math]

Пусть [math]\forall x \in B \setminus A, A \cup \mathcal{f} x \mathcal {g} \notin I \Rightarrow \exists X_j, k_j: \left\vert A \cup \mathcal{f} x \mathcal {g} \cap X_j \right\vert \gt k_j[/math], но так как [math]A \in I[/math], то есть [math] \left\vert A \cap X_j \right\vert \leqslant k_j \Rightarrow \left\vert A \cap X_j \right\vert = k_j[/math] и [math]x \in X_j[/math]. Из последнего следует, что [math]\left\vert B \setminus A \right\vert \subset X_j[/math].

[math]\left\vert A \cap X_j \right\vert = \left\vert ((A \cap B) \cup (B \setminus A)) \cap X_j \right\vert = k_j[/math], а [math]\left\vert B \cap X_j \right\vert = \left\vert B \cap X_j \right\vert = \left\vert ((A \cap B) \cup (A \setminus B)) \cap X_j \right\vert[/math]. Так как [math]\left\vert A \right\vert \lt \left\vert B \right\vert \Rightarrow \left\vert A \setminus B \right\vert \lt \left\vert B \setminus A \right\vert[/math], тогда [math]\left\vert B \cap X_j \right\vert \gt k_j[/math], но [math]B \in I[/math], противоречие.
[math]\triangleleft[/math]

Matching Matroid

Определение:
Пусть [math]G = \langle V, E \rangle[/math] — неориентированный граф. [math]I = \mathcal{f} A \subset V \mid \exists[/math] паросочетание [math]P[/math], покрывающее [math]A \mathcal {g}[/math]. Тогда [math]M = \langle V, I \rangle [/math] называют (matching matroid).
Лемма:
Matching матроид является матроидом.
Доказательство:
[math]\triangleright[/math]

Проверим выполнение аксиом независимости:

1) [math]\varnothing \in I[/math]

Пустое паросочетание удовлетворяет условию.

2) [math]A \subset B, B \in I \Rightarrow A \in I[/math]

Удалим из исходного паросочетания [math]P[/math] ребра, концами которых являются вершины из множества [math]B \setminus A[/math]. Оставшееся множество ребер будет являться паросочетанием, покрывающим [math]A[/math]. Значит [math]A \in I[/math].

3) [math]A \in I, B \in I, \left\vert A \right\vert \lt \left\vert B \right\vert \Rightarrow \mathcal {9} x \in B \setminus A, A \cup \mathcal{f} x \mathcal {g} \in I[/math]

Пусть паросочетание [math]P_A[/math] покрывает множество [math]A[/math], [math]P_B[/math] — множество [math]B[/math]. Все вершины, принадлежащие [math]A \cap B[/math] покроем ребрами из паросочетания [math]P_B[/math].

Так как [math]\left\vert A \right\vert \lt \left\vert B \right\vert \Rightarrow \exists x \in B \setminus A[/math]

Рассмотрим три возможных случая:

  • [math]\exists xy \in P_A, y \in A \Rightarrow P_A[/math] покрывает [math]A \cup \mathcal{f} x \mathcal {g} \Rightarrow A \cup \mathcal{f} x \mathcal {g} \in I[/math]
  • [math]\exists xy: y \in B \setminus A \Rightarrow xy \notin P_A[/math]. Мы можем добавить в [math]A[/math] вершину [math]x[/math] (или [math]y[/math]), а в [math]P_A[/math] ребро [math]xy[/math]. Тогда паросочетание [math]P_A \cup xy[/math] покрывает [math]A \cup \mathcal{f} x \mathcal {g} \Rightarrow A \cup \mathcal{f} x \mathcal{g} \in I[/math]
  • Если первые два случая не выполнились, значит [math]\forall x \in B \setminus A[/math] [math]\exists y \notin A, \notin B: \exists xy \in P_B[/math]. Обозначим множество таких [math]y[/math] за [math]C, \left\vert C \right\vert = \left\vert B \setminus A \right\vert \gt \left\vert A \setminus B \right\vert[/math]. Таким образом в [math]C[/math] найдется хотя бы одна вершина [math]y[/math], не покрытая паросочетанием [math]P_A[/math]. Тогда паросочетание [math]P_A \cup xy[/math] покрывает [math]A \cup \mathcal{f} x \mathcal {g} \Rightarrow A \cup \mathcal{f} x \mathcal{g} \in I[/math]
[math]\triangleleft[/math]

Бинарный матроид

Определение:
Матроид [math]M[/math] на множестве [math]X[/math] будем называть представимым над полем [math]F[/math], если существуют векторное пространство [math]V[/math] над [math]F[/math] и отображение [math]\phi:X \rightarrow V[/math], обладающее тем свойством, что подмножество [math]A[/math] независимо тогда и только тогда, когда [math]\phi[/math] взаимнооднозначно на [math]A[/math] и [math]\phi(A)[/math] линейно-независимо в [math]V[/math].


Определение:
Регулярный матроид(regular matroid) - матроид, представимый над любым полем.


Определение:
Бинарный матроид(binary matroid) - матроид, представимый над полем целых чисел по модулю 2.


Матроид с выкинутым элементом

Определение:
Пусть [math]M = \langle X, I\rangle[/math] — матроид. Определим [math]M\setminus x = \langle X \setminus x, \{A | A \in I, x \not\in A\}\rangle[/math]. Для любых [math]M[/math] и [math]x[/math] получившаяся конструкция [math]M\setminus x[/math] является матроидом.


Матроид, стянутый по элементу

Определение:
Пусть [math]M = \langle X, I\rangle[/math] — матроид. Определим [math]M/x = \langle X \setminus x, \{A \setminus x | A \in I, x \in A\}\rangle[/math]. Для любых [math]M[/math] и [math]x[/math], таких что [math]\{x\}\in I,[/math] получившаяся конструкция [math]M/x[/math] является матроидом.


Урезанный матроид

Определение:
Пусть [math]M = \langle X, I \rangle[/math] — матроид. Обозначим как [math]M|_k[/math] следующую констркуцию: [math]M|_k = \langle X, \{A | A \in I, |A| \le k \}\rangle[/math], тогда [math]M|_k[/math] является матроидом.


См. также

Источники