finale Version des Vorlesungsskripts - ZIB
finale Version des Vorlesungsskripts - ZIB
finale Version des Vorlesungsskripts - ZIB
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
5 Bäume und Wege<br />
Haben wir einen Algorithmus, der einen minimalen aufspannenden Baum in einem<br />
Graphen findet, und wollen wir einen maximalen Wald in einem Graphen G = (V, E)<br />
mit Kantengewichten ce, e ∈ E, bestimmen, so sei Kn = (V, En) der vollständige Graph<br />
mit n = |V | Knoten und folgenden Kantengewichten<br />
wobei wir z. B. setzen<br />
c ′ e := −ce für alle e ∈ E mit ce > 0,<br />
c ′ e := M für alle e ∈ En \ {e ∈ E | ce > 0},<br />
M := n · (max{|ce| | e ∈ E} + 1).<br />
Ist B ein minimaler aufspannender Baum von Kn bezüglich der Kantengewichte c ′ , dann<br />
ist offenbar aufgrund unserer Konstruktion W := B \ {e ∈ B | c ′ e = M} ein Wald in G<br />
maximalen Gewichts.<br />
Der folgende sehr einfache Algorithmus findet einen maximalen Wald.<br />
(5.7) Algorithmus GREEDY-MAX.<br />
Eingabe: Graph G = (V, E) mit Kantengewichten c(e) für alle e ∈ E.<br />
Ausgabe: Wald W ⊆ E mit maximalem Gewicht c(W ).<br />
1. (Sortieren): Ist k die Anzahl der Kanten von G mit positivem Gewicht, so numeriere<br />
diese k Kanten, so dass gilt c(e1) ≥ c(e2) ≥ . . . ≥ c(ek) > 0.<br />
2. Setze W := ∅.<br />
3. FOR i = 1 TO k DO:<br />
Falls W ∪ {ei} keinen Kreis enthält, setze W := W ∪ {ei}.<br />
4. Gib W aus. △<br />
(5.8) Satz. Der Algorithmus GREEDY-MAX arbeitet korrekt. △<br />
Beweis. Hausaufgabe! ✷<br />
Versuchen Sie, einen direkten Beweis für die Korrektheit von Algorithmus (5.7) zu finden.<br />
Im nachfolgenden Teil dieses Abschnitts und in Kapitel 5 werden wir Sätze angeben,<br />
aus denen Satz (5.8) folgt.<br />
Der obige Algorithmus heißt “Greedy-Max” (“greedy” bedeutet “gierig” oder “gefräßig”),<br />
weil er versucht, das bezüglich der Zielfunktionskoeffizienten jeweils “Beste” zu<br />
nehmen, das im Augenblick noch verfügbar ist. Wir werden später noch andere Algorithmen<br />
vom Greedy-Typ kennenlernen, die bezüglich anderer Kriterien das “Beste” wählen.<br />
Der Greedy-Algorithmus funktioniert auf analoge Weise für das Minimum Spanning Tree<br />
Problem.<br />
(5.9) Algorithmus GREEDY-MIN.<br />
82