Шаг 6.
Матроиды. "Жадные" алгоритмы.
Понятие "жадного" алгоритма

    На этом шаге мы рассмотрим понятие жадного алгоритма.

    Пусть Е - непустое конечное множество и w - функция из Е в множество действительных чисел R. Число w(e) будем называть весом элемента e ∈ E. Для любого непустого A ⊆ E положим

и будем называть w(A) весом множества А.

    Зафиксируем некоторое семейство B ⊆ I(E), в котором имеется хотя бы одно непустое множество. Будем смотреть на B как на частично упорядоченное множество относительно теоретико-множественного включения. Для удобства элементы частично упорядоченного множества I будем называть объектами.

    Будем далее считать, что B удовлетворяет аксиоме независимости (I.1), т.е. подмножество объекта является объектом.

    Рассмотрим следующую задачу: в частично упорядоченном множестве объектов B построить максимальный объект минимально возможного веса.

    Исследуем, при каких условиях на семейство объектов следующий алгоритм решает поставленную задачу.

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

  1. В качестве e1 выберем в Е элемент наименьшего возможного веса такой, что {e1} ∈ B.
  2. Пусть элементы e1, ..., ei-1 уже выбраны. В качестве еi выберем в Е элемент наименьшего возможного веса такой, что

    ei ∉ {e1, e2, ..., ei-1} и {e1, ...,ei} ∈ B

  3. Выполняем 2) до тех пор, пока это возможно. Процесс обязательно завершится, и будет построен максимальный объект B = {e1 ..., er) ∈ B.
Теорема 16.
Пусть семейство объектов B удовлетворяет дополнительно аксиоме независимости (I.2), т. е. B является семейством Ind всех независимых множеств некоторого нетривиального матроида на Е. Тогда любое множество B, построенное жадным алгоритмом, будет максимальным объектом минимально возможного веса.
Доказательство.
Пусть B - семейство независимых множеств некоторого нетривиального матроида М = M(Е) и объект B = {e1, ..., er} построен жадным алгоритмом, как указано выше. Очевидно, B является базой матроида М.

    Пусть, от противного, B не является базой минимального возможного веса. Среди баз минимального возможного веса выберем базу B', для которой число |B∩B'| имеет наибольшее возможное значение. Так как B ≠ B', имеем В ⊄ В'. Возьмем элемент ei с наименьшим номером такой, что ei ∉ B'. Тогда {e1, ..., ei-1} ⊆ B∩B'. Множество В'∪еi содержит точно один цикл C. Поскольку C ⊄ В, существует e ∈ С\В. Положим В" = (В'∪ei)\e. Отбросив e, мы разрушили единственный цикл в B'∪ei. Следовательно, B" - независимое множество матроида М и |В"| = |В'|, т.е. В" - база матроида М. Кроме того, очевидно, |В" ∩ В| > |В' ∩ В|. Поэтому w(B") > w(B') в силу выбора базы В'. Так как w(B") = w(В') + w(ei) - w(e) получаем w(ei) - w(e) > 0, т.е. w(ei) > w(e). Последнее неравенство противоречит тому, что на i-м шаге жадного алгоритма был выбран элемент ei, а не элемент e, хотя в ∉ {e1, ..., ei-1} ⊆ В и множество {e1, ..., ei-1, e} ⊆ В' независимо.

    Пусть G - связный неодноэлементный граф. Рассмотрим на множестве его ребер Е = E(G) некоторую весовую функцию w, которая каждому ребру e ставит в соответствие вес ребра w(e) ∈ R. Семейство G ациклических наборов ребер является семейством независимых множеств матроида циклов M(G) графа G. Базами этого матроида являются, по существу, остовы графа G. В силу доказанной теоремы жадный алгоритм в данном случае строит остов минимально возможного веса в графе G.

    Следующее предложение показывает, что выполнение аксиомы независимости (I.2) необходимо для того, чтобы при любой весовой функции жадный алгоритм всегда строил бы в семействе объектов I максимальный объект минимально возможного веса.

Предложение 1.
Пусть семейство объектов I не удовлетворяет аксиоме независимости (I.2). Тогда существует весовая функция w из E в R, для которой любое применение жадного алгоритма строит в I максимальный объект, не являющийся максимальным объектом минимально возможного веса.
Доказательство.
Пусть семейство объектов I не удовлетворяет аксиоме независимости (I.2). Тогда существуют I, J ∈ I такие, что t = |I| < |J| = t + 1, где е ∈ N, и I ∪ p ∉ I для любого p ∈ J\I. Пусть |I∩J| = s, где s ∈ N∪0. Очевидно s < t.

    В качестве весовой функции рассмотрим следующую функцию

    При такой весовой функции w жадный алгоритм сначала обязательно выберет все элементы множества I, а затем (возможно) выберет элементы из Е\(I∪J) и построит некоторое максимальное множество I1 такое, что I ⊆ I1 и w(I1) = w(I) = -t.

    Заметим, далее, что

    Расширим J до некоторого максимального в I множества J1. Тогда, очевидно, w(J1) ≤ w(J) < w(I1).

    Следовательно, любое построенное жадным алгоритмом максимальное множество I1 не является максимальным объектом минимально возможного веса.

    На следующем шаге мы рассмотрим теорему Радо - Эдмондса.




Предыдущий шаг Содержание Следующий шаг