Komplexitätstheorie, WS 2011/2012 ¨Ubungsblatt 7

Werbung
TU Ilmenau, Fakultät IA
Institut TI, FG Komplexitätstheorie und Effiziente Algorithmen
Univ.-Prof. Dr. Martin Dietzfelbinger, Dipl.-Inf. Martin Aumüller
http://www.tu-ilmenau.de/iti/lehre/lehre-ws-20112012/kt/
Komplexitätstheorie, WS 2011/2012
Übungsblatt 7 (Besprechung: 25.11.2011)
Aufgabe 1
Sie haben in der Vorlesung gesehen, dass das Problem BINPACKING stark NPvollständig ist.
(a) Geben Sie einen pseudopolynomiellen Algorithmus A zur Lösung von 2-BINPACKING
an, also für das BINPACKING-Problem mit genau 2 Eimern.
(b) Können Sie diesen Algorithmus auf k-BINPACKING, k ∈ N fest, erweitern?
(c) Geben Sie einen pseudopolynomiellen Algorithmus B für PARTITION an, der A
als Unterprogramm nutzt.
Aufgabe 2
Wir wollen in dieser Aufgabe das Konzept aus Aufgabe 1(d) verallgemeinern. Wir nehmen dafür an, dass P und P 0 zwei NP-Suchprobleme sind und P 0 einen pseudopolynomiellen Algorithmus besitzt. Bearbeiten Sie die folgenden Teilaufgaben:
(a) Geben Sie zwei Probleme P, P 0 an, so dass P ≤p P 0 gilt, aber nicht folgt, dass P
einen pseudopolynomiellen Algorithmus besitzt.
(b) Geben Sie eine Bedingung für das Funktionspaar (f, h) (wie im Satz 2.8.4 der
Vorlesung) an, so dass wir aus der Existenz eines pseudopolynomiellen Algorithmus
für P 0 und P ≤p P 0 einen pseudopolynomiellen Algorithmus B zur Lösung von P
erhalten.
Aufgabe 3
Die eigentliche Schwierigkeit eines Problems liegt manchmal in möglicherweise kleinen
Teilen des Inputs. Diese Problemkerne“ lassen sich oft durch die Angabe einfacher
”
Regeln bestimmen. Betrachten Sie den folgenden Regelsatz für das VERTEX COVERProblem mit Problemparameter k.
1. Falls G einen isolierten Knoten besitzt, so muss dieser bei einer Knotenüberdeckung nicht beachtet werden.
2. Falls G ein Blatt v besitzt, d.h. v besitzt Grad 1, und v ∈ V 0 für eine Knotenüberdeckung V 0 mit maximal k Knoten gilt, so existiert in G eine Knotenüberdeckung
V 00 mit maximal k Knoten und v ∈
/ V 00 .
3. Falls G einen Knoten v mit mehr als k Nachbarn besitzt, so muss v in jeder
Knotenüberdeckung mit maximal k Knoten vorkommen.
Wenden Sie diese Regeln auf einen Eingabegraphen G und Eingabeparameter k an,
bis Sie entweder einen kleinen (in seiner Größe nur durch k beschränkten) Graphen
erhalten, in dem Sie eine Knotenüberdeckung der maximalen Größe k 0 ≤ k suchen, oder
entscheiden können, dass G keine Knotenüberdeckung mit maximal k Knoten besitzt.
Geben Sie eine Laufzeitabschätzung für Ihren Algorithmus an.
2
Komplexitätstheorie, WS 2011/2012
Übungsblatt 7 (Besprechung: 25.11.2011)
Aufgabe 4
Eine wichtige Technik, um schwierige Probleme beherrschbar zu machen, sind tiefenbeschränkte Suchbäume. Die Grundidee ist wie folgt: Finde in polynomieller Zeit eine
kleine Teilmenge des Inputs, so dass zumindest ein Element dieser Teilmenge in einer
zulässigen Lösung liegt. Dann verzweige rekursiv um alle Möglichkeiten durchzuprobieren. Wir illustrieren diese Grundidee am Beispiel von Vertex Cover:
Für dieses Problem bilden die Endpunkte einer Kante eine solche Teilmenge, da mindestens einer dieser Knoten in einer Knotenüberdeckung liegen muss. Wir betrachten
nun zwei Fälle:
1. Der linke Knoten ist Teil der Knotenüberdeckung.
2. Der rechte Knoten ist Teil der Knotenüberdeckung.
Wir betrachten diese Fälle getrennt und entfernen jeweils den entsprechenden Knoten
und all seine inzidenten Kanten. Dann rufen wir unseren Algorithmus rekursiv auf dem
so modifizierten Graphen mit Problemparameter k − 1 auf (es werden also jeweils 2
kleinere Probleme rekursiv betrachtet).
Beschreiben Sie, basierend auf der oben beschriebenen Idee, einen Algorithmus für VERTEX COVER mit Laufzeit O(2k · (|V | + |E|)). Inwiefern ist dieser Algorithmus besser
als das Durchprobieren aller k-elementigen Teilmengen der Knotenmenge?
Aufgabe 5
Wir betrachten in dieser Aufgabe die folgende NP-vollständige Variante des HITTING
SET-Problems:
3-HITTING SET (3HS)
Eingabe: A = {1, . . . , n}, B = (B1 , . . . , Bm ), Bi ⊆ A, |Bi | ≤ 3, k ∈ N.
Aufgabe: Finde eine Menge J ⊆ A, |J| ≤ k, so dass aus jeder Teilmenge Bi
mindestens ein Element in J liegt.
Betrachten Sie nun die folgenden Reduktionsregeln:
1. Für jedes Paar Bi , Bj ∈ B: Falls Bi ⊆ Bj , dann können wir Bj entfernen.
2. Für jedes Paar i, j ∈ A mit i < j: Falls es mehr als k dreielementige Teilmengen
aus B gibt, die sowohl i als auch j enthalten, dann entferne all diese Teilmengen
aus B und füge {i, j} zu B hinzu.
3. Für jedes Element a ∈ A: Falls mehr als k 2 dreielementige Teilmengen bzw. mehr
als k zweielementige Teilmengen in B existieren, die a enthalten, dann muss a in
jedem 3-HITTING SET der Größe maximal k liegen.
Diese Regeln werden auf eine gegebene Eingabe für 3HS angewendet. Wie groß wird die
resultierende Eingabe, falls es eine Lösung mit maximal k Elementen gibt?
Aufgabe 6
Geben Sie einen Algorithmus auf der Basis von tiefenbeschränkten Suchbäumen (siehe
Aufgabe 4) an, der das 3HS-Problem in Zeit O(3k · m) löst.
Herunterladen