logo
shpori (1) / shpori (1)

12.Жадные алгоритмы и матроиды

E – конечное множество, w: E ® R+

Для XÍ E w(X) = , IÍ B(E) , w(X) ® min (max) , XÎ I

Жадный алгоритм

1.Выбираем элемент x1 максимального веса такой, что {x1}Î I.

2.Выбираем элемент x2Î E\{x1} максимального веса такой, что {x1,x2} Î I

i.Выбираем элемент xi Î E\{x1,…,xi-1} максимального веса такой, что

{x1,x2,…,xi-1,xi} Î I

Матроид – это пара (X,B), где X – конечное множество, а B – непустое множество его подмножеств (элементы B - базы), удовлетворяющая следующим условиям:

1.Никакая база не содержится в другой базе (аксиома максимальности);

2.Если B1 и B2 – базы, то для любого элемента bÎ B1 элемент сÎ B2 такой, что B1\{b}È{c} – база.

Матроид – это пара (X,I), где X – конечное множество, а I – непустое множество его подмножеств (элементы I - независимые множества), удовлетворяющая следующим условиям:

1.Для любого I1Î I и I2Í I1 I2 Î I

2.Если I1 и I2 – независимые множества и |I1| < |I2|, то элемент сÎ I2\I1 такой, что I1È{c} Î I

Пара (X,I), для которой выполняется аксиома 1) – система независимости

Примеры матроидов

1/(X,{X})

2.X – конечное множество векторов некотороговекторного пространства, B – максимальные линейно независимые системы векторов из X (базисы X).

3.X – множество ребер некоторого графа G,B – подмножества ребер, составляющих остовные деревья G.

Теорема. Жадный алгоритм, примененный к системе независимости (E,I), всегда находит оптимальное решение тогда и только тогда, когда (E,I) – матроид.