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.