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