Граф замен — различия между версиями
Shevchen (обсуждение | вклад) |
Shevchen (обсуждение | вклад) м |
||
Строка 1: | Строка 1: | ||
{{Теорема | {{Теорема | ||
|id = minsum | |id = minsum | ||
− | |statement = Пусть <tex>M_1 = \langle S, I_1 \rangle</tex> и <tex>M_2 = \langle S, I_2 \rangle</tex> | + | |statement = Пусть <tex>M_1 = \langle S, I_1 \rangle</tex> и <tex>M_2 = \langle S, I_2 \rangle</tex> — [[Определение матроида|матроиды]] с [[Ранговая функция, полумодулярность|ранговыми функциями]] <tex>r_1</tex> и <tex>r_2</tex>, соответственно. Тогда максимальная мощность множества из <tex>I_1 \cap I_2</tex> равна <tex>\min\limits_{U \subset S} (r_1(U) + r_2(S \setminus U))</tex>. |
|proof = | |proof = | ||
Утверждение <tex>|I| \leq r_1(U) + r_2(S \setminus U)</tex> [[Теорема Эдмондса-Лоулера|доказывается]] легко. | Утверждение <tex>|I| \leq r_1(U) + r_2(S \setminus U)</tex> [[Теорема Эдмондса-Лоулера|доказывается]] легко. | ||
Строка 7: | Строка 7: | ||
В другую сторону докажем теорему алгоритмически. На каждом этапе алгоритм получает <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>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>M_1</tex> и <tex>M_2</tex> — граф <tex>D</tex>. Левой долей <tex>D</tex> являются элементы текущего множества <tex>I \in I_1 \cap I_2</tex>, правой — все остальные элементы <tex>S \setminus I</tex>. Проведем ребра <tex>(y, z): y \in I, z \in S \setminus I, I \setminus y \cup z \in I_1</tex>, а также <tex>(z', y'): y' \in I, z' \in S \setminus I, I \setminus y' \cup z' \in I_2</tex>. |
[[Файл:ExchangeGraph.JPG]] | [[Файл:ExchangeGraph.JPG]] | ||
− | Пусть <tex>X_1 = \{z \in S \setminus I | I \cup z \in I_1 \}, X_2 = \{z \in S \setminus I | I \cup z \in I_2 \}, P</tex> | + | Пусть <tex>X_1 = \{z \in S \setminus I | I \cup z \in I_1 \}, X_2 = \{z \in 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>, либо позволяет найти набор большей мощности. |
}} | }} | ||
== Источник == | == Источник == | ||
''Chandra Chekuri'' — [http://www.cs.illinois.edu/class/sp10/cs598csc/Lectures/Lecture17.pdf '''Combinatorial Optimization'''], с. 2-3. | ''Chandra Chekuri'' — [http://www.cs.illinois.edu/class/sp10/cs598csc/Lectures/Lecture17.pdf '''Combinatorial Optimization'''], с. 2-3. |
Версия 01:19, 26 июня 2011
Теорема: |
Пусть матроиды с ранговыми функциями и , соответственно. Тогда максимальная мощность множества из равна . и — |
Доказательство: |
Утверждение доказывается легко. В другую сторону докажем теорему алгоритмически. На каждом этапе алгоритм получает и либо заключает, что множества большей мощности из получить невозможно, либо возвращает .Введем двудольный ориентированный граф замен для и — граф . Левой долей являются элементы текущего множества , правой — все остальные элементы . Проведем ребра , а также . Пусть — кратчайший путь в из в . Тогда алгоритм с помощью этого пути либо определяет максимальность набора , либо позволяет найти набор большей мощности. |
Источник
Chandra Chekuri — Combinatorial Optimization, с. 2-3.