Изменения

Перейти к: навигация, поиск

Граф замен

Нет изменений в размере, 23:55, 25 июня 2011
м
Нет описания правки
{{Теорема
|id = minsum
|statement = Пусть <tex>M_1 = <XS, I_1></tex> и <tex>M_2 = <XS, I_2></tex> - [[Определение матроида|матроиды]] с [[Ранговая функция, полумодулярность|ранговыми функциями]] <tex>r_1</tex> и <tex>r_2</tex>, соответственно. Тогда максимальная мощность множества из <tex>I_1 \cap I_2</tex> равна <tex>\min_{U \subset XS} (r_1(U) + r_2(X S \setminus U))</tex>.
|proof =
Пусть <tex>I \in I_1 \cap I_2</tex>. Следовательно, <tex>\forall U \subset XS</tex> верно <tex>I \cap U \in I_1, I \setminus U \in I_2</tex>. Тогда, из определения ранга, <tex>|I| = |I \cap U| + |I \setminus U| \leq r_1(U) + r_2(X S \setminus U)</tex>.
В другую сторону докажем теорему алгоритмически. На каждом этапе алгоритм получает <tex>I \in I_1 \cap I_2</tex> и либо заключает, что множества большей мощности из <tex>I_1 \cap I_2</tex> получить невозможно, либо возвращает <tex>J \in I_1 \cap I_2: |J| = |I| + 1</tex>.
Введем двудольный ориентированный '''граф замен''' для <tex>M_1</tex> и <tex>M_2</tex> - граф <tex>D</tex>. Левой долей <tex>D</tex> являются элементы текущего множества <tex>I \in I_1 \cap I_2</tex>, правой - все остальные элементы <tex>X S \setminus I</tex>. Проведем ребра <tex>(y, z): y \in I, z \in X S \setminus I, I \setminus y \cup z \in I_1</tex>, а также <tex>(z', y'): y' \in I, z' \in X S \setminus I, I \setminus y' \cup z' \in I_2</tex>.
[[Файл:ExchangeGraph.JPG]]
Пусть <tex>X_1 = \{z \in X S \setminus I | I \cup z \in I_1 \}, X_2 = \{z \in X S \setminus I | I \cup z \in I_2 \}, P</tex> - кратчайший путь в <tex>D</tex> из <tex>X_1</tex> в <tex>X_2</tex>. Тогда [[Алгоритм построения базы в пересечении матроидов|алгоритм]] с помощью этого пути либо определяет максимальность набора <tex>I</tex>, либо позволяет найти набор большей мощности.
}}
171
правка

Навигация