Ранговая функция, полумодулярность — различия между версиями
Kirelagin (обсуждение | вклад) м |
м (rollbackEdits.php mass rollback) |
||
(не показано 18 промежуточных версий 6 участников) | |||
Строка 1: | Строка 1: | ||
{{Определение | {{Определение | ||
− | |definition= Пусть дан [[Определение матроида|матроид]] <tex> M = \langle X, I \rangle</tex>. '''Ранговая функция''' <tex>r: A \ | + | |definition= Пусть дан [[Определение матроида|матроид]] <tex> M = \langle X, I \rangle</tex>. '''Ранговая функция''' (англ. ''rank function'') <tex>r: A \in 2^X \to \mathbb{N}</tex> определяется как: <tex>r(A) = \max \{ |B| : B \subset A, B \in I\}</tex> |
}} | }} | ||
==Полумодулярность ранговой функции== | ==Полумодулярность ранговой функции== | ||
− | Докажем свойство полумодулярности ранговой функции: <tex>\forall A, B \subset X,</tex> <tex>r(A \cup B) + r(A \cap B) \ | + | Докажем свойство полумодулярности (англ: ''submodularity'') ранговой функции: <tex>\forall A, B \subset X,</tex> <tex>r(A \cup B) + r(A \cap B) \leqslant r(A) + r(B)</tex>. Для начала небольшая лемма. |
{{Лемма | {{Лемма | ||
Строка 11: | Строка 11: | ||
|proof= | |proof= | ||
Пусть <tex>E</tex> {{---}} подмножество <tex>A</tex> такое, что <tex>r(A) = |E|, E \in I</tex> (по определению ранговой функции такое <tex>E</tex> всегда существует). | Пусть <tex>E</tex> {{---}} подмножество <tex>A</tex> такое, что <tex>r(A) = |E|, E \in I</tex> (по определению ранговой функции такое <tex>E</tex> всегда существует). | ||
− | Предположим, что лемма неверна и максимальное независимое подмножество, которое мы можем получить из <tex>B</tex> добавляя элементы из <tex>A</tex> {{---}} это <tex>C</tex>, причем <tex>|C| < r(A)</tex>. Тогда имеем: <tex>C \in I, E \in I, |C| < |E|</tex>, следовательно существует элемент <tex>x \in E \setminus C: C \cup \{x\} \in I</tex>. Заметим также что <tex>|C \cup {x}| = |C| + 1 > |C|</tex> и <tex>x \in A</tex>, т.к. <tex>E \setminus C \subset A</tex>, <tex>B | + | Предположим, что лемма неверна и максимальное независимое подмножество, которое мы можем получить из <tex>B</tex> добавляя элементы из <tex>A</tex> {{---}} это <tex>C</tex>, причем <tex>|C| < r(A)</tex>. Тогда имеем: <tex>C \in I, E \in I, |C| < |E|</tex>, следовательно существует элемент <tex>x \in E \setminus C: C \cup \{x\} \in I</tex>. Заметим также что <tex>|C \cup {x}| = |C| + 1 > |C|</tex> и <tex>x \in A</tex>, т.к. <tex>E \setminus C \subset A</tex>, <tex>B \subset C \cup \{x\}</tex>. Итак пришли к противоречию, мы получили множество большее по мощности, чем <tex>C</tex> такое, что <tex>B \subset C \subset A, C \in I</tex>, значит исходное предположение было не верно, и мы можем найти множество <tex>D</tex> удовлетворяющее необходимым условиям. |
}} | }} | ||
Строка 18: | Строка 18: | ||
{{Теорема | {{Теорема | ||
|id=theorem | |id=theorem | ||
− | |statement=Пусть дан матроид <tex> M = \langle X, I \rangle</tex>, тогда <tex>\forall A, B \subset X,</tex> <tex>r(A \cup B) + r(A \cap B) \ | + | |statement=Пусть дан матроид <tex> M = \langle X, I \rangle</tex>, тогда <tex>\forall A, B \subset X,</tex> <tex>r(A \cup B) + r(A \cap B) \leqslant r(A) + r(B)</tex> |
|proof= | |proof= | ||
Рассмотрим множество <tex>D_\cap \subset A \cap B : D_\cap \in I, |D_\cap| = r(A \cap B)</tex>, такое всегда существует по определению <tex>r</tex>. Дополним множество <tex>D_\cap</tex> элементами из <tex>B \setminus D_\cap</tex> до множества <tex>D_B : |D_B| = r (B), D_B \in I</tex> (по [[#lemma|лемме]] такое возможно). | Рассмотрим множество <tex>D_\cap \subset A \cap B : D_\cap \in I, |D_\cap| = r(A \cap B)</tex>, такое всегда существует по определению <tex>r</tex>. Дополним множество <tex>D_\cap</tex> элементами из <tex>B \setminus D_\cap</tex> до множества <tex>D_B : |D_B| = r (B), D_B \in I</tex> (по [[#lemma|лемме]] такое возможно). | ||
− | Далее дополним <tex>D_B</tex> элементами из <tex>A \cup B \setminus D_B</tex> до множества <tex>D_\cup : |D_\cup| = r(A \cup B), D_\cup \in I</tex>. Заметим, что на последнем шаге будут добавляться только элемента из <tex>A</tex>, т.к. пусть на том этапе мы взяли <tex>x \in B</tex>, тогда <tex>\{x\} \cup D_B \subset D_\cup, D_\cup \in I </tex>, следовательно <tex>\{x\} \cup D_B \in I</tex> (по [[Определение матроида]]), а также<tex>|\{x\} \cup D_B| = |D_B| + 1 = r(B) + 1</tex>, что невозможно по определению <tex>r</tex>. | + | Далее дополним <tex>D_B</tex> элементами из <tex>A \cup B \setminus D_B</tex> до множества <tex>D_\cup : |D_\cup| = r(A \cup B), D_\cup \in I</tex>. Заметим, что на последнем шаге будут добавляться только элемента из <tex>A</tex>, т.к. пусть на том этапе мы взяли <tex>x \in B</tex>, тогда <tex>\{x\} \cup D_B \subset D_\cup, D_\cup \in I </tex>, следовательно <tex>\{x\} \cup D_B \in I</tex> (по [[Определение матроида|определению матроида]]), а также<tex>|\{x\} \cup D_B| = |D_B| + 1 = r(B) + 1</tex>, что невозможно по определению <tex>r</tex>. |
Заметим также, что | Заметим также, что | ||
Строка 28: | Строка 28: | ||
<tex>(D_\cup \setminus D_B) \cup D_\cap \subset A</tex>, <tex>(D_\cup \setminus D_B) \cup D_\cap \in I</tex> | <tex>(D_\cup \setminus D_B) \cup D_\cap \subset A</tex>, <tex>(D_\cup \setminus D_B) \cup D_\cap \in I</tex> | ||
− | (по [[Определение матроида]]), значит | + | (по [[Определение матроида|определению матроида]]), значит по определению ранговой функции: |
− | <tex>r(A) \ | + | <tex>r(A) \geqslant |(D_\cup \setminus D_B) \cup D_\cap| = |D_\cup| - |D_B| + |D_\cap|</tex> |
Заменяя мощности на ранги: | Заменяя мощности на ранги: | ||
− | <tex>r(A) + r(B) \ | + | <tex>r(A) + r(B) \geqslant r(A \cup B) + r(A \cap B) </tex> |
+ | }} | ||
+ | |||
− | + | ==Теорема о рангах== | |
+ | {{Теорема | ||
+ | |id=theorem | ||
+ | |statement=Пусть дан матроид <tex> M = \langle X, I \rangle</tex>, и <tex>r: A \in 2^X \to \mathbb{N}</tex> {{---}} его ранговая функция. Тогда для любых <tex>A, B \subseteq 2^X</tex> выполняется следующее: | ||
+ | #<tex> 0 \leqslant r(A) \leqslant |A| </tex> | ||
+ | #<tex> A \subseteq B \Rightarrow r(A) \leqslant r(B) </tex> | ||
+ | #Неравенство полумодулярности: <tex>\forall A, B \subset X,</tex> <tex>r(A \cup B) + r(A \cap B) \leqslant r(A) + r(B)</tex> | ||
+ | |proof= | ||
+ | #Очевидно из определения: максимальное независимое подмножество по мощности не может быть больше самого множества и меньше нуля. | ||
+ | #Пусть <tex>C \subseteq A</tex> {{---}} максимальное независимое подмножество. Т.к. <tex>A \subseteq B</tex>, то <tex>C \subseteq B</tex> {{---}} независимое подмножество. Поэтому <tex>r(B) \geqslant |C|</tex> по определению, а значит <tex>r(B) \geqslant r(A)</tex> | ||
+ | #Доказано выше. | ||
}} | }} | ||
+ | |||
+ | ==См. также== | ||
+ | *[[Теорема о циклах]] | ||
+ | *[[Теорема о базах]] | ||
+ | |||
+ | ==Источники информации== | ||
+ | *Асанов М. О., Баранский В. А., Расин В. В.'' {{---}} Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2''' <br> | ||
+ | *Will Johnson'' {{---}} Mathroids. June 3, 2009. | ||
+ | |||
+ | [[Категория:Алгоритмы и структуры данных]] | ||
+ | [[Категория:Матроиды]] | ||
+ | [[Категория:Основные факты теории матроидов]] |
Текущая версия на 19:22, 4 сентября 2022
Определение: |
Пусть дан матроид . Ранговая функция (англ. rank function) определяется как: |
Содержание
Полумодулярность ранговой функции
Докажем свойство полумодулярности (англ: submodularity) ранговой функции:
. Для начала небольшая лемма.Лемма: |
Дан матроид и множество . Пусть также , , тогда существует . |
Доказательство: |
Пусть Предположим, что лемма неверна и максимальное независимое подмножество, которое мы можем получить из — подмножество такое, что (по определению ранговой функции такое всегда существует). добавляя элементы из — это , причем . Тогда имеем: , следовательно существует элемент . Заметим также что и , т.к. , . Итак пришли к противоречию, мы получили множество большее по мощности, чем такое, что , значит исходное предположение было не верно, и мы можем найти множество удовлетворяющее необходимым условиям. |
Итак теперь мы готовы доказать свойство полумодулярности ранговой функции.
Теорема: |
Пусть дан матроид , тогда |
Доказательство: |
Рассмотрим множество лемме такое возможно). , такое всегда существует по определению . Дополним множество элементами из до множества (поДалее дополним определению матроида), а также , что невозможно по определению . элементами из до множества . Заметим, что на последнем шаге будут добавляться только элемента из , т.к. пусть на том этапе мы взяли , тогда , следовательно (поЗаметим также, что , (по определению матроида), значит по определению ранговой функции:
Заменяя мощности на ранги: |
Теорема о рангах
Теорема: |
Пусть дан матроид , и — его ранговая функция. Тогда для любых выполняется следующее:
|
Доказательство: |
|
См. также
Источники информации
- Асанов М. О., Баранский В. А., Расин В. В. — Дискретная математика: Графы, матроиды, алгоритмы. ISBN 978-5-8114-1068-2
- Will Johnson — Mathroids. June 3, 2009.