23.06.2013 Aufrufe

finale Version des Vorlesungsskripts - ZIB

finale Version des Vorlesungsskripts - ZIB

finale Version des Vorlesungsskripts - ZIB

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!