Blatt 9 - Lehrstuhl Informatik 1

Werbung
Lehrstuhl für Informatik 1
Prof. Dr. Berthold Vöcking
Klaus Radke
Marcel Ochel
SS 2011
01.07.2011
Abgabe bis 08.07.2011 (zu Beginn der Vorlesung)
Übung zur Vorlesung
Effiziente Algorithmen
Blatt 9
Aufgabe 9.1
(5 Punkte)
Aufgabe 9.2
(5 Punkte)
Aufgabe 9.3
(5 Punkte)
Gib eine Instanz für das Makespan-Scheduling-Problem auf identischen Maschinen an,
bei welcher der LPT-Algorithmus keinen optimalen Schedule zurückliefert.
Wir betrachten folgenden Algorithmus für das Makespan-Scheduling-Problem auf identischen Maschinen.
(1) Wähle die m gröÿten Jobs aus J und weise jeder Maschine
genau einen davon zu.
(2) Verteile anschlieÿend die restlichen Jobs (in beliebiger Reihenfolge) gemäÿ der Least-Loaded-Heuristik, d.h. alle der verbliebenen n − m Jobs werden der Reihe nach jeweils der Maschine
mit der zum Zuteilungszeitpunkt geringsten Last zugewiesen.
Zeige, dass der Algorithmus eine 3/2-Approximation der optimalen Lösung liefert.
Tipp: Orientiere dich am Beweis des Approximationsfaktors des LPT-Algorithmus.
Analog zum Set-Cover-Problem aus der Vorlesung betrachten wir das folgende Problem:
Gegeben sei eine Grundmenge X = {1, . . . , n} bestehend aus n Elementen mit positiven
Gewichten w , . . . , w , eine Familie von m Teilmengen S , . . . , S ⊆ X und eine Zahl k.
Ziel ist es, k Teilmengen A , . . . , A ∈ {S , . . . , S } so auszuwählen, dass das Gesamtgewicht der überdeckten Elemente maximal ist (ohne Mehrfachzählung).
Wir wollen nun den Greedy-Algorithmus untersuchen, welcher iterativ im Schritt i diejenige Teilmenge A = S auswählt, welche das GesamtgewichtSder durch diese Menge
neu überdeckten Elemente (d.h. welche noch nicht durch
A abgedeckt sind)
maximiert.
Zeige durch folgende Schritte, dass der Algorithmus einen Approximationsfaktor von
mindestens 1 − 1/e aufweist. Die Abschätzung
1/e ≥ (1 − 1/k) kann ohne Beweis
P
genutzt werden. DabeiS bezeichne w(M ) := S w für M ⊆ X .
(a) ∀i ∈ [k]: w(A \ A ) ≥ · w(OP T \ A ) ≥ (w(OP T ) − w(S A ))
(Argumentiere über das Gesamtgewicht der neu überdeckten Elemente, welche
durch eine Menge aus OPT abgedeckt werden könnten.)
(b) w(A ∪ A ∪ · · · ∪ A ) ≥ (1 − (1 − ) ) · w(OP T ) für alle 1 ≤ i ≤ k
(Beweis per Induktion)
bitte wenden 1
n
1
1
i
k
1
m
m
ai
j<i
j
k
x∈M
i
1
2
j<i
i
j
1
k
j<i
1 i
k
x
j
1
k
j<i
j
Die folgenden beiden Aufgaben sind optional um im Zweifelsfall den Punktestand aufzubessern.
(6 Bonuspunkte)
Aufgabe 9.4
Sei G = (V, E) ein ungerichteter Graph mit Kantengewichten w : E → R wobei
keine zwei Kanten das gleiche Gewicht haben. Wir möchten zeigen, dass der folgende
Algorithmus eine 1/2-Approximation mit Laufzeit O(n+m) für das Maximum-SpanningTree-Problem ist:
1. Wähle für jeden Knoten v ∈ V die Kante max(v) := argmax w(e), also die zu v
inzidente Kante mit maximalem Gewicht.
2. Gib S := {max(v) | v ∈ V }, also die Vereinigung aller jeweils maximalen zu einem
Knoten inzidenten Kanten, aus.
Sei T die Kantenmenge des Spannbaums mit maximalem Gesamtgewicht.
(a) Zeige S ⊆ T .
(b) Zeige w(S ) ≥ · w(T ).
+
e3v
G
G
G
G
G
1
2
G
(5 Bonuspunkte)
Aufgabe 9.5
Gegeben sei ein ungerichteter Graph G = (V, E). Wir suchen eine Partitionierung
(S, V \ S) der Knotenmenge, so dass die Anzahl der Kanten zwischen S und V \ S
maximal ist. Da das Problem NP-vollständig ist, versuchen wir eine 1/2-Approximation.
(1) Wähle zwei beliebige Knoten a, b ∈ V mit a 6= b.
Setze A := {a} und B := {b}.
(2) Ordne der Reihe nach jeden Knoten v ∈ V \ {a, b} folgendermaÿen einer der beiden Mengen A, B zu:
Falls d(v, A) ≥ d(v, B) setze B := B ∪ {v},
sonst A := A ∪ {v}.
(3) Gebe die Partitionierung (A, B) zurück.
Dabei bezeichne d(v, X) die Anzahl der Nachbarn von v in der Menge X zum Zeitpunkt
des Vergleichs.
Beweise, dass der obige Algorithmus eine 1/2-Approximation der optimalen Lösung liefert.
Tipp: Zeige, dass für den vom Algorithmus ausgegebenen Schnitt (A, B) gilt:
|{{v, w} ∈ E | v ∈ A, w ∈ B}| ≥
1
· |E|.
2
Beachte dabei aber, dass der im Vergleich herangezogene Wert d(v, A) für einen festen
Knoten v im allgemeinen nicht der endgültigen Zahl der zwischen v und A verlaufenden Kanten nach Beendigung des Algorithmus entspricht, da A bzw. B im Laufe des
Algorithmus verändert werden.
Herunterladen