Greedy optimal ⇔ Matroid
Transcription
Greedy optimal ⇔ Matroid
Greedy optimal ⇔ Matroid Vorlesung ADS 2, SS 2014 Peter Stadler und Sebastian Will Bioinfo/IZBI Universität Leipzig Definition 1 (Mengensystem) Ein Mengensystem ist ein Paar (E, M), wobei E eine endliche Menge und M eine Menge von Teilmengen von E ist, also M ⊆ P(E). Definition 2 (Unabhängigkeitssystem) Ein Mengensystem (E, M) heißt Unabhängigkeitssystem, genau dann wenn M = 6 ∅ und zu jeder Menge in M auch alle Teilmengen enthalten sind. Letzteres fordert “Abgeschlossenheit unter Teilmengenbildung”: A ∈ M und B ⊆ A impliziert B ∈ M. Anmerkung: Eine äquivalente Definition erhält man wenn man statt M = 6 ∅, (wie in der Vorlesung) ∅ ∈ M fordert, denn in einem unter Teilmengenbildung abgeschlossenen Mengensystem sind beide Aussagen äquivalent. Dies sieht man leicht wie folgt: ⇒ Wenn ∅ ∈ M, dann ist M offensichtlich nicht leer. ⇐ Wenn M 6= ∅, dann enthält M wenigstens eine Menge A und –wegen der Abgeschlossenheit– auch alle Teilmengen von A. Da ∅ ⊆ A, gilt ∅ ∈ M. Definition 3 (Matroid) Ein Unabhängigkeitssystem (E, M) heißt Matroid, genau dann wenn für alle A, B ∈ M die folgende Austauscheigenschaft gilt: Ist |A| > |B|, dann gibt es x ∈ A \ B, so dass B ∪ {x} ∈ M. Satz 1 (Greedy-Optimalität) Sei (E, M) ein Mengensystem. Für jede beliebige Gewichtsfunktion w : E → R+ berechnet der kanonische Greedy-Algorithmus eine optimale Lösung ⇔ (E, M) ist ein Matroid. 1 Beweis: ⇒ Sei (E, M) kein Matroid. Wir zeigen: dann gibt es eine Gewichtsfunktion w : E → R+ für die der Greedy-Algorithmus keine optimale Lösung berechnet. Dies gilt trivialerweise wenn M leer ist, denn dann gibt es keine optimale Lösung; nehme nun an, dass M nicht leer ist. Da (E, M) kein Matroid (aber ein Mengensystem mit M 6= ∅) ist, ist die Abgeschlossenheit unter Teilmengenbildung oder die Austauscheigenschaft verletzt. – Fall “Austauscheigenschaft gilt nicht”. Dann gibt es A, B ∈ M, |A| > |B|, für die es kein x ∈ A \ B gibt, für das B ∪ {x} ∈ M. Sei k := |B|. Wähle eine Gewichtsfunktion k + 2 falls e ∈ B w(e) = k + 1 falls e ∈ A \ B 0 sonst Für diese Funktion wählt der zugehörige kanonische Greedy-Algorithmus zunächst alle Elemente in B aus und liefert dann eine Lösung B 0 ⊇ B, wobei B 0 keine Elemente in A enthaten kann (wie oben festgestellt, gibt es kein Element in A um das B zu einer Menge in M erweitert werden kann!). Deshalb gilt w(B 0 ) = w(B) = k(k + 2) = k 2 + 2. Da |A| > |B| gilt w(A) ≥ (k + 1)(k + 1) = k 2 + 2k + 1. Damit hat die berechnete Lösung B 0 kleineres Gewicht als A, ist also nicht optimal. – Fall “M nicht abgeschlossen unter Teilmengenbildung”. Dann gibt es eine Mengen A ∈ M und B ⊂ A, so dass B 6∈ M. Wähle 2 falls e ∈ B w(e) = 1 falls e ∈ A \ B 0 sonst Die gewichts-maximale Menge in M ist A mit w(A) = 2|B| + |A| − |B| = |A| + |B|. Der Greedy-Algorithmus nimmt zur inital leeren Menge zunächst so viele Elemente aus B auf wie möglich. Daraus ergebe sich die Menge B 0 ⊆ B. Offenbar gilt |B 0 | < |B|, da B 6∈ M. Danach kann der Algorithmus B 0 nur noch um Elemente aus A oder E \ A erweitern. Da die Elemente in E \ A nichts beitragen, kann das Gewicht 2|B 0 | der Menge B 0 so nur noch um |A| − |B 0 | vergrössert werden. Die Lösung hat also maximal ein Gewicht von 2|B 0 | + (|A| − |B 0 |) = |A| + |B 0 |. Das ist kleiner als |A| + |B| = w(A), d.h. die gefundene Lösung ist nicht optimal. 2 ⇐ Sei (E, M) ein Matroid. Weiterhin sei w : E → R+ eine beliebige Gewichtsfunktion. Wir zeigen, dass dann der Greedy-Algorithmus eine optimale Lösung berechnet. Sei B = {b1 , . . . , br } eine optimale Lösung, wobei die bi absteigend nach Gewicht sortiert indiziert sind, d.h. w(b1 ) ≥ w(b2 ) ≥ · · · ≥ w(br ); definiere Bi := {b1 , . . . , bi } für 1 ≤ i ≤ r. Bezeichne ai das i-te vom Greedy-Algorithmus zur Lösung hinzugefügte Element; definiere Ai = {a1 , . . . , ai }. Wir zeigen durch vollständige Induktion über i, dass Ai ∈ M existiert für alle 0 ≤ i ≤ r und für alle 1 ≤ i ≤ r gilt w(ai ) ≥ w(bi ). Induktionsstart i = 0: A0 = ∅ ∈ M. Induktionsschritt i − 1 → i, 1 ≤ i ≤ r: Nach Austauscheigenschaft für die Mengen Ai−1 und Bi gibt es (wegen |Ai−1 | < |Bi |) ein x ∈ Bi \ Ai−1 , so dass (Ai−1 ∪ {x}) ∈ M. Der Greedy-Algorithus kann also Ai−1 um ein Element ai ∈ E erweitern, d.h. Ai existiert und w(ai ) ≥ w(x) da der Algorithmus ein gewichtsmaximales Element wählt. Da x ∈ Bi , gilt w(x) ≥ w(bi ) und damit w(ai ) ≥ w(bi ). Also liefert der Greedy-Algorithmus die Lösung Ar und w(Ar ) ≥ w(B) (da w(ai ) ≥ w(bi ) für alle 1 ≤ i ≤ r). Wegen Gewichtsmaximalität von B folgt w(Ar ) = w(B) und Ar ist optimal. ⇐ 3