Blatt 6 - Lehrstuhl für Informatik 12

Werbung
Rolf Wanka
Erlangen, 12. Juni 2017
Übungen zur Vorlesung
Approximationsalgorithmen
SS 2017
Blatt 6
AUFGABE 15:
Beim Optimierungsproblem B IN PACKING (vgl. Aufgabe 14 auf Blatt 5) ist eine Menge M =
{a1 , . . . , an } von n Objekten gegeben. Die Objekte haben rationale Größen s(ai ) mit 1 ≥ s(a1 ) ≥
· · · ≥ s(an ) ≥ 0. Die Aufgabe besteht darin, M disjunkt in möglichst wenig Teilmengen B1 , . . . , Bk
zu zerlegen, so daß für alle Bi gilt: s(Bi ) ≤ 1.
Zeigen Sie, daß der folgende Algorithmus N EXT F IT das Optimierungsproblem B IN PACKING mit
relativer Güte 2 approximiert. Dabei schreiben wir abkürzend s(B) = ∑ s(ai ).
ai ∈B
A LGORITHMUS N EXT F IT
/
k := 1; B1 := 0;
for i := 1 to n do
if s(ai ) + s(Bk ) > 1 then k := k + 1; Bk := 0/ fi;
Bk := Bk ∪ {ai }
done;
gib (B1 , . . . , Bk ) aus.
Hinweis: Begründen Sie, warum folgende Beziehungen gelten:
(a) ds(M)e ≤ OPT(M)
(b) N EXT F IT(M) ≤ 2ds(M)e
Überlegen Sie hierfür, was für s(B1 ) bis s(Bk−1 ) gelten muß.
AUFGABE 16:
Ein ganz streng polynomielles Approximationsschema ist ein streng polynomielles Approximationsschema (FPAS), dessen Laufzeit nur O(poly(|I|, log( 1ε ))) ist.
Zeigen Sie: Gibt es für ein kombinatorisches Optimierungsproblem, dessen Entscheidungsvariante
NP-vollständig ist und bei dem die Werte mit O(poly(|I|)) Bits dargestellt werden können, ein ganz
streng polynomielles Approximationsschema, dann ist P = NP. Lassen Sie sich dabei von Satz 4.2
inspirieren.
AUFGABE 17:
Beim NP-vollständigen Entscheidungsproblem S UBSET S UM ist eine Folge ā = {a1 , . . . , an } von
natürlichen Zahlen und eine einzelne natürliche Zahl S gegeben. Gesucht ist eine Indexmenge U,
U ⊆ {1, . . . , n}, so daß ∑i∈U ai = S gilt.
(a) Entwerfen Sie einen pseudopolynomiellen Algorithmus, der S UBSET S UM in Zeit O(n · S)
löst. Verwandeln Sie Ihren Entscheidungsalgorithmus in einen Algorithmus, der U berechnet,
falls es diese Menge gibt.
Hinweis: Betrachten Sie einen Algorithmus, der dynamische Programmierung benutzt, um
die folgende Funktion f (i, g) zu berechnen: f (i, g) = 1, wenn es eine Menge W ⊆ {a1 , . . . , ai }
gibt mit s(W ) = g. Sonst ist f (i, g) = 0.
(b) Was muß man ändern, um das Entscheidungsproblem PARTITION (vgl. Aufgabe 14 auf
Blatt 5) mit einem pseudopolynomiellen Algorithmus zu lösen?
AUFGABE 18:
Betrachten Sie den folgenden Algorithmus, der das Independent Set Problem IS approximiert.
OBdA sei die Anzahl der Knoten des Eingabegraphen G = (V, E) eine Quadratzahl.
A LGORITHMUS A PPROX IS AUFZ ÄHL
n := |V |;
√
zähle alle Teilmengen der Größe n auf;
if eine dieser Teilmengen U ist unabhängig
then gib U aus
else sei v ein beliebiger Knoten;
gib {v} aus.
Zeigen Sie:
√ A PPROX IS AUFZ ÄHL approximiert IS mit relativer Gütegarantie
∗
von O (2 n log n ).
√
n bei einer Laufzeit
Hinweise:
(a) mn = O(nm ).
(b) Die O∗ -Notation: Für zwei Funktionen f (n) und g(n) schreibt man: f (n) = O∗ (g(n)), falls
f (n) = O(g(n) · poly(n)) ist. Also z. B. für f (n) = 2n · n2 gilt: f (n) = O∗ (2n ).
Herunterladen