Докажите, почему жадный алгоритм оптимален для задач на матроиде: сформулируйте определение матроида, приведите доказательство корректности жадного подхода и два примера матроидов (например, графический и векторный), а также объясните, почему тот же жадный метод может дать неверный результат для задач вне класса матроидов

4 Ноя в 06:56
5 +5
0
Ответы
1
Определение матроида. Матроид M=(E,I)M=(E,\mathcal I)M=(E,I) — это конечное множетсво EEE и система «независимых» подмножеств I⊆2E\mathcal I\subseteq 2^EI2E, удовлетворяющая трём аксиомам:
(I1)∅∈I;(I2)если I∈I и J⊆I, то J∈I(наследственность);(I3)если I,J∈I и ∣I∣>∣J∣, то ∃e∈I∖J: J∪{e}∈I(обменное свойство). \begin{aligned}
&(\text{I1})\quad \varnothing\in\mathcal I;\\
&(\text{I2})\quad \text{если }I\in\mathcal I\text{ и }J\subseteq I,\text{ то }J\in\mathcal I\quad(\text{наследственность});\\
&(\text{I3})\quad \text{если }I,J\in\mathcal I\text{ и }|I|>|J|,\text{ то }\exists e\in I\setminus J:\;J\cup\{e\}\in\mathcal I\quad(\text{обменное свойство}).
\end{aligned}
(I1)I;(I2)если II и JI, то JI(наследственность);(I3)если I,JI и I>J, то eIJ:J{e}I(обменное свойство).

Формулировка задачи и жадный алгоритм. Пусть задана весовая функция w:E→Rw:E\to\mathbb Rw:ER. Цель — найти базис (максимальное по включению независимое множество) максимального суммарного веса. Жадный алгоритм:
1. Упорядочить элементы так, чтобы w(e1)≥w(e2)≥⋯w(e_1)\ge w(e_2)\ge\cdotsw(e1 )w(e2 ).
2. Проходя в этом порядке, добавить текущий элемент в текущее множество GGG, если G∪{ei}∈IG\cup\{e_i\}\in\mathcal IG{ei }I.
3. В конце вернуть GGG (это базис).
Доказательство корректности (идея и формальное доказательство). Пусть жадный алгоритм вернул G={g1,…,gr}G=\{g_1,\dots,g_r\}G={g1 ,,gr } в порядке выбора, и пусть BBB — любой базис (|B|=r) максимального суммарного веса. Покажем, что w(G)≥w(B)w(G)\ge w(B)w(G)w(B).
Определим последовательность базисов B0=B,B1,…,BrB_0=B,B_1,\dots,B_rB0 =B,B1 ,,Br так: для k=1,…,rk=1,\dots,rk=1,,r если gk∈Bk−1g_k\in B_{k-1}gk Bk1 , то Bk=Bk−1B_k=B_{k-1}Bk =Bk1 ; иначе по обменному свойству (I3) применительно к независимым множствам {g1,…,gk}\{g_1,\dots,g_k\}{g1 ,,gk } и Bk−1B_{k-1}Bk1 существует элемент b∈Bk−1∖{g1,…,gk−1}b\in B_{k-1}\setminus\{g_1,\dots,g_{k-1}\}bBk1 {g1 ,,gk1 } такой, что
Bk=Bk−1−{b}+{gk}∈I. B_k=B_{k-1}-\{b\}+\{g_k\}\in\mathcal I.
Bk =Bk1 {b}+{gk }I.
Поскольку жадность выбирала gkg_kgk раньше, чем любой невключённый в текущий GGG элемент (в том числе bbb), выполняется w(gk)≥w(b)w(g_k)\ge w(b)w(gk )w(b). Тогда
w(Bk)=w(Bk−1)−w(b)+w(gk)≥w(Bk−1). w(B_k)=w(B_{k-1})-w(b)+w(g_k)\ge w(B_{k-1}).
w(Bk )=w(Bk1 )w(b)+w(gk )w(Bk1 ).
Итеративно получаем w(Br)≥w(B0)=w(B)w(B_r)\ge w(B_0)=w(B)w(Br )w(B0 )=w(B). Но по построению в конце BrB_rBr содержит все g1,…,grg_1,\dots,g_rg1 ,,gr , а так как размеры равны, получаем Br=GB_r=GBr =G. Значит w(G)≥w(B)w(G)\ge w(B)w(G)w(B). Поскольку BBB был произвольным максимальным базисом, GGG — оптимален.
Два примера матроидов.
1) Графический матроид. Для неориентированного графа G=(V,E)G=(V,E)G=(V,E) положим I\mathcal II — множество всех ациклических подмножеств рёбер (т.е. лесов). Тогда базисы — это максимальные леса (в связном графе — остовные деревья). Жадный алгоритм с сортировкой по неповышающим весам — это алгоритм Краскала для максимального остова (или минимального при обратном порядке).
2) Векторный (линейный) матроид. Пусть EEE — конечное множество векторов в векторном пространстве, а I\mathcal II — все линейно независимые подмножества. Базисы — линейные базы. Жадный выбор по весу даёт базис максимального суммарного веса.
Почему жадный метод может дать неверный результат вне класса матроидов. Ключевой шаг в доказательстве — обменное свойство (I3). Если система независимости его не удовлетворяет, нельзя гарантировать, что любой выбранный жадно элемент можно заменить в оптимальном решении элементом не меньшего веса. Контрпример: E={a,b,c}E=\{a,b,c\}E={a,b,c}, веса w(a)=5,w(b)=4,w(c)=3w(a)=5,w(b)=4,w(c)=3w(a)=5,w(b)=4,w(c)=3. Пусть I={∅,{a},{b},{c},{b,c}}\mathcal I=\{\varnothing,\{a\},\{b\},\{c\},\{b,c\}\}I={,{a},{b},{c},{b,c}} (разрешены все одиночки и только пара {b,c}\{b,c\}{b,c}). Жадный алгоритм возьмёт сначала aaa (вес 5) и затем не сможет добавить ни bbb ни ccc (пары с aaa не независимы), получив вес 5. Но оптимум — {b,c}\{b,c\}{b,c} с весом 777. Здесь нарушено обменное свойство, поэтому жадность провалила.
Вывод: обменное свойство матроидов — необходимое условие, обеспечивающее монотонность суммарного веса при замене элементов и потому корректность жадного алгоритма; вне матроидов такого общего гаранта нет.
4 Ноя в 07:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир