Матроиды Лекция 12

реклама
Матроиды
Лекция 12
Введение
• Даны система множеств (E, F), то есть
конечное множество E, F  2E и
стоимостная функция c : F → R, найти
элемент из F, стоимость которого
минимальна или максимальна.
• Далее мы предположим, что c
модулярная функция множества,
то есть c : E → R и c(X) = ΣeX 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) = ΣeX 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} такое, что ΣjS
wj ≤ k и ΣjS cj максимальна.
• E = {1,..., n} и F = {F  E: ΣjS 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):
qE ,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) = ΣeX 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) стоимость решения, найденного
алгоритмом «Бери лучший» для задачи «Максимизация
независимой системы». Тогда
GE,F, c 
qE,F  
1
OPTE,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).
Доказательство


cGn    G j  G j 1 ce j    G j d j
n
j 1
n
j 1
   E j d j  qE , F  r E j d j
n
n
j 1
j 1


 qE , F  O j d j  qE , F  O j  O j 1 ce j 
n
n
j 1
j 1
 qE , F cOn .
Доказательство (окончание)
• Покажем, что нижняя граница точна.
B1
 q E , F .
• Выберем F  E и базы B1 и B2, такие что
B2
1
• Определим ce  : 
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|.

GE,F, c 
 qE,F 
OPTE,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 т ) это матроид.
Скачать