Ранговая функция, полумодулярность — различия между версиями
(→См. так же) |
м (rollbackEdits.php mass rollback) |
||
(не показано 9 промежуточных версий 4 участников) | |||
Строка 1: | Строка 1: | ||
{{Определение | {{Определение | ||
− | |definition= Пусть дан [[Определение матроида|матроид]] <tex> M = \langle X, I \rangle</tex>. '''Ранговая функция''' <tex>r: 2^X \to | + | |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>. Для начала небольшая лемма. |
{{Лемма | {{Лемма | ||
Строка 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> |
− | |||
− | |||
}} | }} | ||
Строка 43: | Строка 41: | ||
{{Теорема | {{Теорема | ||
|id=theorem | |id=theorem | ||
− | |statement=Пусть дан матроид <tex> M = \langle X, I \rangle</tex>, и <tex>r: 2^X \to | + | |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> 0 \leqslant r(A) \leqslant |A| </tex> | ||
− | #<tex> A \ | + | #<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> | #Неравенство полумодулярности: <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>C \ | + | #Пусть <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> | + | *Асанов М. О., Баранский В. А., Расин В. В.'' {{---}} Дискретная математика: Графы, матроиды, алгоритмы. '''ISBN 978-5-8114-1068-2''' <br> |
− | *Will Johnson'' - Mathroids. June 3, 2009. | + | *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.