Граф замен — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м
Строка 1: Строка 1:
{{Теорема
+
'''Граф замен''' - специальный ориентированный двудольный граф, фигурирующий в [[Теорема Эдмондса-Лоулера|теореме Эдмондса-Лоулера]].
|id = minsum
 
|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 =
 
Утверждение <tex>|I| \leq r_1(U) + r_2(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>I</tex> - текущее независимое множество, построенное [[Алгоритм построения базы в пересечении матроидов|алгоритмом]] для матроидов <tex>M_1 = \langle S, I_1 \rangle</tex>, <tex>M_2 = \langle S, I_2 \rangle</tex>. Введем граф замен <tex>D_{M_1, M_2}(I)</tex>, левой долей которого являются элементы множества <tex>I</tex>, правой — все остальные элементы <tex>S</tex>. Проведем все имеющиеся ребра <tex>(y, z)</tex>: <tex>y \in I</tex>, <tex>z \in S \setminus I</tex>, <tex>I \setminus y \cup z \in I_1</tex>, а также <tex>(z', y')</tex>: <tex>y' \in I</tex>, <tex>z' \in S \setminus I</tex>, <tex>I \setminus y' \cup z' \in I_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>D</tex> из <tex>X_1</tex> в <tex>X_2</tex>. Тогда [[Алгоритм построения базы в пересечении матроидов|алгоритм]] с помощью этого пути либо определяет максимальность набора <tex>I</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_{M_1, M_2}(I)</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.

Версия 07:26, 27 июня 2011

Граф замен - специальный ориентированный двудольный граф, фигурирующий в теореме Эдмондса-Лоулера.

Пусть [math]I[/math] - текущее независимое множество, построенное алгоритмом для матроидов [math]M_1 = \langle S, I_1 \rangle[/math], [math]M_2 = \langle S, I_2 \rangle[/math]. Введем граф замен [math]D_{M_1, M_2}(I)[/math], левой долей которого являются элементы множества [math]I[/math], правой — все остальные элементы [math]S[/math]. Проведем все имеющиеся ребра [math](y, z)[/math]: [math]y \in I[/math], [math]z \in S \setminus I[/math], [math]I \setminus y \cup z \in I_1[/math], а также [math](z', y')[/math]: [math]y' \in I[/math], [math]z' \in S \setminus I[/math], [math]I \setminus y' \cup z' \in I_2[/math].

ExchangeGraph.JPG

Пусть [math]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[/math] — кратчайший путь в [math]D_{M_1, M_2}(I)[/math] из [math]X_1[/math] в [math]X_2[/math]. Тогда алгоритм с помощью этого пути либо определяет максимальность набора [math]I[/math], либо позволяет найти набор большей мощности.

Источник

Chandra ChekuriCombinatorial Optimization, с. 2-3.