Матроиды Лекция 12 Введение • Даны система множеств (E, F), то есть конечное множество E, F 2E и стоимостная функция c : F → R, найти элемент из F, стоимость которого минимальна или максимальна. • Далее мы предположим, что c модулярная функция множества, то есть c : E → R и c(X) = ΣeX c(e). Независимая система Определение 12.1 Система множеств (E, F) называется независимой системой, если (M1) F ; (M2) Если X Y и Y F , то X F . Элементы F называются независимыми, элементы 2E \ F зависимыми. Циклы, базы • Минимальные зависимые множества называются циклами. • Максимальные независимые множества называются базами. • Для X E максимальное независимое подмножество X называется базой X. Ранг, замыкание Определение 12.2 Пусть (E, F) ― независимая система. Для X E определим ранг X как r(X) := max{|Y| : Y X, Y F }. Далее, определим замыкание X как σ(X) := { y E: r(X⋃{y}) = r(X)}. Задача «Максимизация независимой системы» • Дано: (E, F) и c : E → R . • Найти: X F такую, что c(X) = ΣeX c(e) ― максимально. Задача «Минимизация независимой системы» • Дано: (E, F) и c : E → R . • Найти базу B такую, что c(B) ― минимально. Замечание • Отметим, что в определении примеров описанных задач имеется некоторая неопределенность. • Дано: (E, F) и c : E → R . • Предполагается, что множество E и функция c задаются, как обычно списком элементов и списком значений, а подмножество F задается с помощью оракула, который определяет для данного подмножества F E, принадлежит F F или нет. Задача «Независимое множество максимального веса» • Дано: Граф G и веса c : V(G) → R. • Найти: независимое множество X в G максимального веса. • E = V(G) и F = {F E: F − независимое множество X в G}. Задача Коммивояжера • Дано: Полный граф G и веса c : E(G) → R+. • Найти: гамильтонов цикл в G минимального веса. • E = E(G) и F = {F E: F ― подмножество Гамильтонового цикла в G}. Задача «Кратчайший путь» • Дано: Орграф G, веса c : E(G) → R+ и s, t V(G) так что t достижимо из s. • Найти: кратчайший s-t-путь в G относительно c. • E = E(G) и F = {F E: F ― подмножество s-t-пути}. Задача «О рюкзаке» • Дано: Неотрицательные числа ci, wi (1≤ i ≤ n), и k. • Найти: подмножество S {1,..., n} такое, что ΣjS wj ≤ k и ΣjS cj максимальна. • E = {1,..., n} и F = {F E: ΣjS wj ≤ k }. Задача «Минимальное остовное дерево» • Дано: Связный граф G и веса c : E(G) → R. • Найти: остовное дерево в G минимального веса. • E = E(G) и F ― множество лесов в G. Задача «Минимальное дерево Штейнера» • Дано: Связный граф G, веса c : E(G) → R+, и множество T V(G) терминалов. • Найти: Дерево Штейнера для T, то есть дерево S с T V(S) и E(S) E(G) такое, что c(E(S)) минимально. • E = E(G) иF = {F E: F ― подмножество дерева Штейнера для T}. Задача «Максимальный взвешенный ориентированный лес» • Дано: Орграф G и веса c : E(G) → R. • Найти: ориентированный лес в G максимального веса. • E = E(G) иF ― множество ориентированных лесов в G. Задача «Паросочетание максимального веса» • Дано: Граф G и веса c : E(G) → R. • Найти: паросочетание максимального веса в G. • E = E(G) и F ― множество паросочетаний в G. Матроид Определение 12.3 Независимая система называется матроидом, (M3) если X, Y F и |X| > |Y|, то существует x X \ Y с Y⋃{x} F . Матроиды Утверждение 12.4 Следующие системы независимости (E, F) являются матроидами: a) E ― множество столбцов матрицы A над некоторым полем, и F := {F E: столбцы в E линейно независимые над этим полем}. b) E ― множество ребер некоторого графа G и F := {F E: (V(G),F) ― лес}. c) E ― конечное множество , k ― целое и F := {F E: |F| ≤ k}. d) E ― множество ребер некоторого графа G, S ― независимое множество в G, ks ― целые (s S) и F := {F E: |δF(s)| ≤ ks для всех s S }. e) E ― множество ребер некоторого орграфа G, S V(G), ks ― целые (s S) и F := {F E: |δ-F(s)| ≤ ks для всех s S }. Доказательство b) Пусть X, Y F и Y⋃{x} F для всех x X\Y. Покажем, что | X | ≤ | Y |. p – число связных компонент в (V(G), X). q – число связных компонент в (V(G), Y). Для каждого ребра x = {v,w}, v и w лежат в одной компоненте связности (V(G), Y) • каждая компонента связности (V(G), X) лежит в какойто компоненте связности (V(G), Y) p ≥ q. • V(G) – X = p ≥ q = V(G) – Y | X | ≤ | Y |. • • • • • Упражнение 12.1 • Доказать пункты a), c), d), e) утверждения 12.4 . Независимая система Теорема 12.5 Пусть (E, F) ― независимая система. Тогда следующие утверждения эквивалентны: (M3) Если X, Y F и |X| > |Y|, то существует x X \ Y с Y ⋃{x} F. (M3′) Если X, Y F и |X| = |Y| + 1, то существует X \ Y с Y ⋃{x} F. (M3′′) Для любого X E, все базы X имеют одинаковую мощность. x Нижний ранг Определение 12.6 Пусть (E, F) ― независимая система. Для X E определим нижний ранг X как (X) := min{|Y|: Y X, Y F и Y ⋃{x} F для всех x X \ Y}. Ранговое отношение (E, F): qE ,F : min F E F r F . Ранг и нижний ранг 1. E = E(G) и F ― множество лесов в G. r(X) = 3, (X) = 3, q(E, F) = 1 2. E = E(G) и F = {F E: F ― подмножество гамильтонового цикла в G}. r(X) = 4, (X) = 3, q(E, F) = 0.75 1) 2) Ранговое отношение Утверждение 12.7 Пусть (E, F) ― независимая система. • Тогда q(E, F) ≤ 1. • (E, F) ― матроид тогда и только тогда, когда q(E, F) = 1. Задача «Максимизация независимой системы» • Дано: (E, F) и c : E → R . • Найти: X F такую, что c(X) = ΣeX c(e) ― максимально. Независимый оракул (E,F) • Дано множество F E. • Оракул дает ответ принадлежит оно F (F F ) или нет. Жадный алгоритм «Бери Лучший» Input: Независимая система (E, F), заданная независимым оракулом и веса c : E → R+. Output: Множество F F. Упорядочим E = {e1, e2,..., en} так, что c(e1) ≥ ... ≥ c(en). 2) Set F := . 3) For i := 1 to n do: 1) If F ⋃{ei}F then set F := F ⋃{ei}. Базисный Оракул • Дано множество F E. • Оракул дает ответ содержит F базу или нет. Жадный алгоритм «Выбрось худший» Input: Независимая система (E, F), заданная базисным оракулом и веса c : E → R+. Output: Базис F системы (E, F). Упорядочим E = {e1, e2,..., en} так, что c(e1) ≤ ... ≤ c(en). 2) Set F := E. 3) For i := 1 to n do: If F \{ei} содержит базу then F := F\{ei}. 1) Оракулы • Полиномиальная эквивалентность оракулов • Задача «Коммивояжера» • Задача «Кратчайший путь» «Бери Лучший» Theorem 12.8 (Jenkyns [1976], Korte & Hausmann [1978]) Пусть (E, F) ― независимая система. Для c : E → R+ обозначим через G(E,F,c) стоимость решения, найденного алгоритмом «Бери лучший» для задачи «Максимизация независимой системы». Тогда GE,F, c qE,F 1 OPTE,F, c для всех c : E → R+ . Более того, существует стоимостная функция на которой нижняя оценка достигается. Доказательство (определения) • • • • • • E={e1, e2,…, en}, c : E → R+ и c(e1) ≥ c(e2) ≥…≥ c(en). Gn решение найденное алгоритмом «Бери Лучший». On оптимальное решение. Определим Ej = {e1, e2,…, ej}, Gj = Gn∩Ej, Oj = On∩Ej. Положим dn = c(en) и dj = c(ej) – c(ej+1), j = 1,…n – 1. Так как Oj F , то | Oj | ≤ r(Ej). • Так как Gj база Ej, то | Gj | ≥ (Ej). Доказательство cGn G j G j 1 ce j G j d j n j 1 n j 1 E j d j qE , F r E j d j n n j 1 j 1 qE , F O j d j qE , F O j O j 1 ce j n n j 1 j 1 qE , F cOn . Доказательство (окончание) • Покажем, что нижняя граница точна. B1 q E , F . • Выберем F E и базы B1 и B2, такие что B2 1 • Определим ce : 0 for e F . for e E \ F • Упорядочим e1, e2,…, en , так что c(e1) ≥ c(e2) ≥…≥ c(en) и B1 = {e1,…, e |B1|}. • Тогда G(E,F,c) = | B1| и OPT(E,F,c) = | B2|. GE,F, c qE,F OPTE,F, c Теорема Эдмондса-Радо Теорема 12.9 (Rado[1957], Edmonds[1971]) Независимая система является матроидом тогда и только тогда, когда алгоритм «Бери лучший» находит оптимальное решение задачи максимизации независимой системы (E, F, c) для всех стоимостных функций c : E → R+. Упражнение 12.2 • Доказать, что все независимые системы приведенные в лекции кроме введенной для Задачи «Минимальное остовное дерево» не являются матроидами. Упражнение 12.3 • Пусть G – граф, K – натуральное число и пусть F содержит те подмножества ребер E(G), которые являются объединением K лесов. Доказать, что (E(G),F т ) это матроид.